/* ==========================================================================
   Revymax — "The Diligence Report" design system
   White canvas · navy ink · hairline rules · chamfered frames (from the logo)
   ========================================================================== */

:root {
  --rvx-ink: #0A1B4E;          /* navy — primary text, from logo */
  --rvx-ink-2: #1C2E6E;
  --rvx-ink-soft: #3A4670;
  --rvx-muted: #545C78;        /* secondary text, AA on white */
  --rvx-green: #0E6B25;        /* interaction, from logo */
  --rvx-green-2: #1F8A33;
  --rvx-gold: #E3A21A;         /* logo swoosh gold */
  --rvx-gold-deep: #C98A12;
  --rvx-gold-text: #8F6204;    /* gold for small text on light backgrounds (AA) */
  --rvx-gold-soft: #F3E6C8;
  --rvx-gold-tint: #FCF4E1;
  --rvx-green-tint: #EAF4EC;
  --rvx-navy-tint: #EDF0F8;
  --rvx-navy-deep: #071338;
  --rvx-green-deep: #0B4F1E;
  --rvx-paper: #FFFFFF;
  --rvx-tint: #F6F6F1;         /* warm off-white band */
  --rvx-tint-2: #EEEEE6;
  --rvx-rule: #E3E5EC;
  --rvx-rule-2: #C9CDD9;

  /* Display face: Michroma, closest match to the logo's wide geometric lettering.
     --rvx-serif is kept as the name for secondary headings/quotes (now IBM Plex Sans). */
  --rvx-display: "Michroma", "IBM Plex Sans", system-ui, sans-serif;
  --rvx-serif: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --rvx-sans: "IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
  --rvx-mono: "IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --rvx-wrap: 1240px;
  --rvx-gutter: clamp(16px, 4vw, 40px);
  --rvx-sec: clamp(64px, 9vw, 128px);
  --rvx-c: 14px;               /* chamfer size */
  --rvx-ease: cubic-bezier(.2, .7, .2, 1);
  --rvx-header-h: 76px;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--rvx-header-h) + 16px); }
body {
  margin: 0;
  background: var(--rvx-paper);
  color: var(--rvx-ink);
  font-family: var(--rvx-sans);
  font-size: 1.0625rem;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  font-feature-settings: "kern" 1;
}
body.rvx-menu-open { overflow: hidden; }
*, *::before, *::after { box-sizing: border-box; }
img, svg { max-width: 100%; height: auto; }
a { color: var(--rvx-green); text-decoration-thickness: 1px; text-underline-offset: .18em; }
a:hover { color: var(--rvx-ink); }
::selection { background: var(--rvx-gold-soft); color: var(--rvx-ink); }
:focus-visible { outline: 2px solid var(--rvx-green); outline-offset: 3px; }

h1, h2, h3, h4, h5, h6 {
  font-family: var(--rvx-serif);
  color: var(--rvx-ink);
  font-weight: 400;
  letter-spacing: -0.015em;
  margin: 0 0 .5em;
  font-optical-sizing: auto;
}
p { margin: 0 0 1em; }

.rvx-wrap { width: 100%; max-width: calc(var(--rvx-wrap) + 2 * var(--rvx-gutter)); margin-inline: auto; padding-inline: var(--rvx-gutter); }
.rvx-narrow { max-width: calc(720px + 2 * var(--rvx-gutter)); }
.screen-reader-text, .rvx-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); white-space: nowrap; }
.rvx-skip { position: absolute; left: 16px; top: -60px; z-index: 999; background: var(--rvx-ink); color: #fff; padding: 10px 16px; }
.rvx-skip:focus { top: 12px; color: #fff; }

/* Neutralise Hello Elementor's pink button reset on our controls */
.rvx-nav__toggle, .rvx-nav__toggle:hover, .rvx-nav__toggle:focus,
.rvx-burger:hover, .rvx-burger:focus,
.rvx-search button, .rvx-search button:hover, .rvx-search button:focus { background: none; color: var(--rvx-ink); border-radius: 0; }
.rvx-nav__toggle { border: 0; }
.rvx-burger:hover, .rvx-burger:focus { background: #fff; border-color: var(--rvx-ink); }
.rvx-btn { border-radius: 0; }
button.rvx-btn:focus { background: var(--rvx-green); color: #fff; }

/* Elementor resets: our widgets own their spacing */
.elementor-widget:has(> .elementor-widget-container > .rvx-sec),
.elementor-widget[class*="elementor-widget-rvx-"] { margin-bottom: 0 !important; }
.e-con.rvx-con, .elementor .e-con.rvx-con { --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 0; padding: 0; }
.elementor-widget[class*="elementor-widget-rvx-"] { width: 100%; }

/* ---------- Type helpers ---------- */
.rvx-display { font-size: clamp(2.6rem, 1.5rem + 4.4vw, 5.4rem); line-height: 1.02; letter-spacing: -0.025em; font-weight: 400; }
.rvx-h2 { font-size: clamp(2rem, 1.35rem + 2.3vw, 3.4rem); line-height: 1.06; letter-spacing: -0.02em; }
.rvx-h3 { font-size: clamp(1.3rem, 1.1rem + .7vw, 1.7rem); line-height: 1.2; font-weight: 500; }
.rvx-lede { font-size: clamp(1.1rem, 1rem + .35vw, 1.3rem); line-height: 1.55; color: var(--rvx-ink-soft); max-width: 40em; }
.rvx-label, .rvx-mono {
  font-family: var(--rvx-mono);
  font-size: .75rem;
  letter-spacing: .08em;
  text-transform: uppercase;
  font-weight: 500;
  color: var(--rvx-muted);
  font-variant-numeric: tabular-nums;
}
.rvx-mono { text-transform: none; letter-spacing: 0; font-size: .8125rem; }
.rvx-num { font-family: var(--rvx-mono); font-variant-numeric: tabular-nums; color: var(--rvx-muted); font-size: .8125rem; }
.rvx-em { font-style: italic; color: var(--rvx-green); }
.rvx-rich p:last-child { margin-bottom: 0; }
.rvx-rich ul { padding-left: 1.1em; }
.rvx-rich li { margin-bottom: .35em; }
.rvx-rich li::marker { color: var(--rvx-gold); }

/* ---------- Chamfer (logo frame motif) ---------- */
.rvx-chamfer {
  clip-path: polygon(var(--rvx-c) 0, calc(100% - var(--rvx-c)) 0, 100% var(--rvx-c), 100% calc(100% - var(--rvx-c)), calc(100% - var(--rvx-c)) 100%, var(--rvx-c) 100%, 0 calc(100% - var(--rvx-c)), 0 var(--rvx-c));
}
.rvx-chamfer--lg { --rvx-c: 28px; }
.rvx-chamfer--sm { --rvx-c: 8px; }

/* Framed image: chamfer + optional duotone */
.rvx-frame { position: relative; margin: 0; }
.rvx-frame img { display: block; width: 100%; height: 100%; object-fit: cover; }
.rvx-frame figcaption { margin-top: 10px; }

/* ---------- Buttons ---------- */
.rvx-btn {
  --rvx-c: 9px;
  display: inline-flex; align-items: center; gap: .6em;
  padding: 15px 24px;
  background: var(--rvx-ink); color: #fff !important;
  font-family: var(--rvx-sans); font-weight: 500; font-size: .9375rem; line-height: 1.2;
  text-decoration: none; border: 0; cursor: pointer;
  clip-path: polygon(var(--rvx-c) 0, calc(100% - var(--rvx-c)) 0, 100% var(--rvx-c), 100% calc(100% - var(--rvx-c)), calc(100% - var(--rvx-c)) 100%, var(--rvx-c) 100%, 0 calc(100% - var(--rvx-c)), 0 var(--rvx-c));
  transition: background-color .25s var(--rvx-ease);
}
.rvx-btn:hover, .rvx-btn:focus-visible { background: var(--rvx-green); color: #fff; }
.rvx-btn svg { width: 16px; height: 16px; transition: transform .25s var(--rvx-ease); }
.rvx-btn:hover svg { transform: translateX(3px); }
.rvx-btn--green { background: var(--rvx-green); }
.rvx-btn--green:hover { background: var(--rvx-ink); }
.rvx-link {
  display: inline-flex; align-items: center; gap: .5em;
  font-weight: 500; color: var(--rvx-ink); text-decoration: none;
  border-bottom: 1px solid var(--rvx-rule-2); padding-bottom: 3px;
  transition: border-color .2s, color .2s;
}
.rvx-link:hover { color: var(--rvx-green); border-color: var(--rvx-green); }
.rvx-link svg { width: 14px; height: 14px; }
.rvx-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 32px; }

/* ---------- Sections ---------- */
.rvx-sec { padding-block: var(--rvx-sec); border-top: 1px solid var(--rvx-rule); position: relative; }
.rvx-sec--flush { border-top: 0; }
.rvx-sec--tint { background: var(--rvx-tint); border-top-color: transparent; }
.rvx-sec--tight { padding-block: clamp(48px, 6vw, 80px); }
.rvx-head { display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 24px; margin-bottom: clamp(36px, 5vw, 64px); }
.rvx-head__meta { grid-column: 1 / span 3; padding-top: .7em; }
.rvx-head__meta .rvx-label { display: flex; gap: 10px; align-items: baseline; }
.rvx-head__meta .rvx-label b { color: var(--rvx-gold); font-weight: 500; }
.rvx-head__main { grid-column: 4 / span 9; }
.rvx-head__main h2 { margin-bottom: .35em; max-width: 18em; }
.rvx-head__main .rvx-lede { margin: 0; }
.rvx-head--stack .rvx-head__meta { grid-column: 1 / -1; padding-top: 0; margin-bottom: 18px; }
.rvx-head--stack .rvx-head__main { grid-column: 1 / -1; }
@media (max-width: 900px) {
  .rvx-head__meta, .rvx-head__main { grid-column: 1 / -1; }
  .rvx-head__meta { margin-bottom: 16px; padding-top: 0; }
}

/* ==========================================================================
   Header + mega menu
   ========================================================================== */
.rvx-header {
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid var(--rvx-rule);
}
.admin-bar .rvx-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .rvx-header { top: 0; } }
.rvx-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--rvx-header-h); }
.rvx-logo { display: block; flex: 0 0 auto; line-height: 0; }
.rvx-logo img { width: 168px; height: auto; }
.rvx-nav { display: flex; align-items: center; gap: 4px; height: 100%; }
.rvx-nav > ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: stretch; height: 100%; }
.rvx-nav > ul > li { position: static; display: flex; align-items: center; }
.rvx-nav > ul > li > a, .rvx-nav__toggle {
  display: flex; align-items: center; gap: 6px; height: 100%;
  padding: 0 14px; color: var(--rvx-ink); text-decoration: none;
  font-size: .9375rem; font-weight: 500; background: none; border: 0; cursor: pointer; font-family: inherit;
  position: relative;
}
.rvx-nav > ul > li > a::after, .rvx-nav__toggle::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; background: var(--rvx-green);
  transform: scaleX(0); transform-origin: left; transition: transform .3s var(--rvx-ease);
}
.rvx-nav > ul > li > a:hover::after, .rvx-nav > ul > li.current-menu-item > a::after,
.rvx-nav > ul > li.current-page-ancestor > a::after, .rvx-nav > ul > li.is-open > .rvx-nav__toggle::after,
.rvx-nav > ul > li.current-page-ancestor > .rvx-nav__toggle::after { transform: scaleX(1); }
.rvx-nav__toggle svg { width: 10px; height: 10px; transition: transform .25s; }
.is-open > .rvx-nav__toggle svg { transform: rotate(180deg); }
.rvx-header__cta { margin-left: 12px; }
.rvx-header__cta .rvx-btn { padding: 12px 18px; font-size: .875rem; }

.rvx-mega {
  position: absolute; left: 0; right: 0; top: 100%;
  background: #fff; border-top: 1px solid var(--rvx-rule); border-bottom: 1px solid var(--rvx-rule);
  box-shadow: 0 24px 40px -28px rgba(10,27,78,.25);
  opacity: 0; visibility: hidden; transform: translateY(-6px);
  transition: opacity .2s var(--rvx-ease), transform .2s var(--rvx-ease), visibility 0s .2s;
}
.is-open > .rvx-mega { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
.rvx-mega__inner { display: grid; grid-template-columns: 3fr 9fr; gap: 48px; padding-block: 40px 44px; }
.rvx-mega__intro h3 { font-size: 1.6rem; margin-bottom: 10px; }
.rvx-mega__intro p { color: var(--rvx-muted); font-size: .9375rem; }
.rvx-mega__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 40px; }
.rvx-mega__list a {
  display: grid; grid-template-columns: 34px 1fr; align-items: baseline;
  padding: 13px 0; border-top: 1px solid var(--rvx-rule);
  color: var(--rvx-ink); text-decoration: none; font-size: .9375rem; line-height: 1.35;
  transition: color .2s, padding .25s var(--rvx-ease);
}
.rvx-mega__list a:hover { color: var(--rvx-green); padding-left: 4px; }
.rvx-mega__list .rvx-num { font-size: .75rem; }

.rvx-burger { display: none; width: 44px; height: 44px; border: 1px solid var(--rvx-rule-2); background: #fff; cursor: pointer; padding: 0; align-items: center; justify-content: center; }
.rvx-burger span { display: block; width: 18px; height: 1.5px; background: var(--rvx-ink); position: relative; transition: background .2s; }
.rvx-burger span::before, .rvx-burger span::after { content: ""; position: absolute; left: 0; width: 18px; height: 1.5px; background: var(--rvx-ink); transition: transform .25s var(--rvx-ease); }
.rvx-burger span::before { top: -6px; } .rvx-burger span::after { top: 6px; }
.rvx-menu-open .rvx-burger span { background: transparent; }
.rvx-menu-open .rvx-burger span::before { transform: translateY(6px) rotate(45deg); }
.rvx-menu-open .rvx-burger span::after { transform: translateY(-6px) rotate(-45deg); }

@media (max-width: 1100px) {
  .rvx-burger { display: inline-flex; }
  .rvx-nav {
    position: fixed; inset: var(--rvx-header-h) 0 0 0; background: #fff; z-index: 99;
    flex-direction: column; align-items: stretch; height: auto; overflow-y: auto;
    padding: 8px var(--rvx-gutter) 40px; gap: 0;
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity .2s, transform .2s var(--rvx-ease), visibility 0s .2s;
  }
  .admin-bar .rvx-nav { top: calc(var(--rvx-header-h) + 46px); }
  .rvx-menu-open .rvx-nav { opacity: 1; visibility: visible; transform: none; transition-delay: 0s; }
  .rvx-nav > ul { flex-direction: column; height: auto; }
  .rvx-nav > ul > li { flex-direction: column; align-items: stretch; border-bottom: 1px solid var(--rvx-rule); }
  .rvx-nav > ul > li > a, .rvx-nav__toggle { height: auto; padding: 18px 0; font-family: var(--rvx-serif); font-size: 1.5rem; font-weight: 400; justify-content: space-between; width: 100%; }
  .rvx-nav > ul > li > a::after, .rvx-nav__toggle::after { display: none; }
  .rvx-nav__toggle svg { width: 14px; height: 14px; }
  .rvx-mega { position: static; box-shadow: none; border: 0; opacity: 1; visibility: visible; transform: none; display: none; }
  .is-open > .rvx-mega { display: block; }
  .rvx-mega .rvx-wrap { padding: 0; }
  .rvx-mega__inner { grid-template-columns: 1fr; gap: 0; padding: 0 0 18px; }
  .rvx-mega__intro { display: none; }
  .rvx-mega__list { grid-template-columns: 1fr; }
  .rvx-header__cta { margin: 28px 0 0; }
  .rvx-header__cta .rvx-btn { width: 100%; justify-content: center; padding: 16px; font-size: 1rem; }
}
@media (max-width: 480px) { .rvx-logo img { width: 140px; } }

/* ==========================================================================
   Hero (home)
   ========================================================================== */
.rvx-hero { padding-block: clamp(48px, 7vw, 104px) clamp(56px, 7vw, 96px); border-top: 0; overflow: hidden; }
.rvx-hero__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; align-items: center; }
.rvx-hero__text { grid-column: 1 / span 7; }
.rvx-hero__text .rvx-label { display: block; margin-bottom: 28px; }
.rvx-hero__text h1 { margin-bottom: 28px; max-width: 11.5em; }
.rvx-hero__text h1 em { font-style: italic; color: var(--rvx-green); }
.rvx-hero__art { grid-column: 8 / span 5; position: relative; }
.rvx-ledger {
  display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(48px, 6vw, 88px);
  border-top: 1px solid var(--rvx-ink); border-bottom: 1px solid var(--rvx-rule);
}
.rvx-ledger div { padding: 18px 20px 20px 0; border-right: 1px solid var(--rvx-rule); }
.rvx-ledger div + div { padding-left: 20px; }
.rvx-ledger div:last-child { border-right: 0; }
.rvx-ledger strong { display: block; font-family: var(--rvx-serif); font-weight: 400; font-size: clamp(1.8rem, 1.3rem + 1.6vw, 2.6rem); line-height: 1; margin-bottom: 8px; font-variant-numeric: lining-nums tabular-nums; }
.rvx-ledger span { font-size: .875rem; color: var(--rvx-muted); line-height: 1.4; display: block; }
@media (max-width: 900px) {
  .rvx-hero__text, .rvx-hero__art { grid-column: 1 / -1; }
  .rvx-hero__art { max-width: 520px; }
  .rvx-ledger { grid-template-columns: 1fr 1fr; }
  .rvx-ledger div:nth-child(2) { border-right: 0; }
  .rvx-ledger div:nth-child(3) { padding-left: 0; }
  .rvx-ledger div:nth-child(n+3) { border-top: 1px solid var(--rvx-rule); }
}

/* Value-chain diagram */
.rvx-chain-svg { width: 100%; height: auto; overflow: visible; display: block; }
.rvx-chain-svg .route { fill: none; stroke: var(--rvx-gold); stroke-width: 2; stroke-linecap: round; }
.rvx-chain-svg .route-ghost { fill: none; stroke: var(--rvx-rule-2); stroke-width: 1; stroke-dasharray: 2 5; }
.rvx-chain-svg .node { fill: #fff; stroke: var(--rvx-ink); stroke-width: 1.25; }
.rvx-chain-svg .node-num { font-family: var(--rvx-mono); font-size: 11px; fill: var(--rvx-ink); text-anchor: middle; dominant-baseline: central; }
.rvx-chain-svg .node-label { font-family: var(--rvx-serif); font-size: 19px; fill: var(--rvx-ink); }
.rvx-chain-svg .node-note { font-family: var(--rvx-mono); font-size: 10.5px; fill: var(--rvx-muted); letter-spacing: .04em; text-transform: uppercase; }
.rvx-chain-svg .tag rect { fill: var(--rvx-tint); }
.rvx-chain-svg .tag text { font-family: var(--rvx-mono); font-size: 10px; fill: var(--rvx-green); letter-spacing: .05em; text-transform: uppercase; dominant-baseline: central; }
.rvx-chain-svg .leader { stroke: var(--rvx-green); stroke-width: 1; stroke-dasharray: 2 3; }
.rvx-chain-svg .boundary { fill: none; stroke: var(--rvx-ink); stroke-width: 1; stroke-dasharray: 4 4; opacity: .35; }
.rvx-chain-svg .boundary-label { font-family: var(--rvx-mono); font-size: 10px; fill: var(--rvx-muted); letter-spacing: .06em; text-transform: uppercase; }
.rvx-js .rvx-chain-svg .route { stroke-dasharray: 1; stroke-dashoffset: 1; }
.rvx-js .rvx-chain-svg .node-g, .rvx-js .rvx-chain-svg .tag-g { opacity: 0; transform: translateY(6px); transform-box: fill-box; }
.rvx-chain-svg.is-drawn .route { animation: rvx-draw 2.2s var(--rvx-ease) forwards; }
.rvx-chain-svg.is-drawn .node-g, .rvx-chain-svg.is-drawn .tag-g { animation: rvx-rise .6s var(--rvx-ease) forwards; animation-delay: calc(var(--i, 0) * 280ms + 200ms); }
.rvx-chain-svg.is-drawn .tag-g { animation-delay: calc(var(--i, 0) * 280ms + 650ms); }
@keyframes rvx-draw { to { stroke-dashoffset: 0; } }
@keyframes rvx-rise { to { opacity: 1; transform: none; } }

/* ==========================================================================
   Page hero (inner pages)
   ========================================================================== */
.rvx-phero { padding-block: clamp(48px, 7vw, 96px) clamp(40px, 5vw, 72px); border-top: 0; }
.rvx-phero__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; }
.rvx-phero__main { grid-column: 1 / span 8; }
.rvx-phero__crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.rvx-phero__crumbs a { color: var(--rvx-muted); text-decoration: none; }
.rvx-phero__crumbs a:hover { color: var(--rvx-green); }
.rvx-phero__crumbs span[aria-hidden] { color: var(--rvx-rule-2); }
.rvx-phero h1 { margin-bottom: 24px; max-width: 13em; }
.rvx-phero__facts { grid-column: 10 / span 3; align-self: end; border-top: 1px solid var(--rvx-ink); }
.rvx-phero__facts dl { margin: 0; }
.rvx-phero__facts div { padding: 14px 0; border-bottom: 1px solid var(--rvx-rule); }
.rvx-phero__facts dt { margin-bottom: 4px; }
.rvx-phero__facts dd { margin: 0; font-size: .9375rem; line-height: 1.45; }
.rvx-phero__image { margin-top: clamp(40px, 5vw, 72px); aspect-ratio: 21 / 8; }
.rvx-phero__image img { height: 100%; }
@media (max-width: 900px) {
  .rvx-phero__main, .rvx-phero__facts { grid-column: 1 / -1; }
  .rvx-phero__image { aspect-ratio: 16 / 9; }
}

/* ==========================================================================
   Q&A table
   ========================================================================== */
.rvx-qa { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--rvx-rule); counter-reset: qa; }
.rvx-qa li { display: grid; grid-template-columns: repeat(12, 1fr); gap: 12px 24px; padding: 28px 0; border-top: 1px solid var(--rvx-rule); }
.rvx-qa li:first-child { border-top-color: var(--rvx-ink); }
.rvx-qa .rvx-num { grid-column: 1 / span 1; padding-top: .35em; }
.rvx-qa h3 { grid-column: 2 / span 6; margin: 0; font-size: clamp(1.2rem, 1.05rem + .5vw, 1.5rem); line-height: 1.3; font-weight: 400; }
.rvx-qa p { grid-column: 8 / span 5; margin: 0; color: var(--rvx-ink-soft); font-size: 1rem; }
@media (max-width: 900px) {
  .rvx-qa li { grid-template-columns: 40px 1fr; }
  .rvx-qa .rvx-num { grid-column: 1; }
  .rvx-qa h3, .rvx-qa p { grid-column: 2; }
}

/* ==========================================================================
   Ruled index (practices)
   ========================================================================== */
.rvx-index { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--rvx-rule); }
.rvx-index li { border-top: 1px solid var(--rvx-rule); }
.rvx-index li:first-child { border-top-color: var(--rvx-ink); }
.rvx-index a, .rvx-index .rvx-index__row {
  display: grid; grid-template-columns: repeat(12, 1fr); gap: 8px 24px; align-items: baseline;
  padding: 26px 0; color: var(--rvx-ink); text-decoration: none; position: relative;
  transition: padding .35s var(--rvx-ease), background-color .35s;
}
.rvx-index .rvx-num { grid-column: 1 / span 1; }
.rvx-index h3 { grid-column: 2 / span 5; margin: 0; font-size: clamp(1.3rem, 1.05rem + .9vw, 1.9rem); line-height: 1.15; transition: color .25s; }
.rvx-index p { grid-column: 7 / span 5; margin: 0; color: var(--rvx-muted); font-size: .9688rem; line-height: 1.5; }
.rvx-index .rvx-index__go { grid-column: 12 / span 1; justify-self: end; width: 36px; height: 36px; display: grid; place-items: center; border: 1px solid var(--rvx-rule-2); transition: background .25s, border-color .25s, transform .35s var(--rvx-ease); }
.rvx-index .rvx-index__go svg { width: 14px; height: 14px; }
.rvx-index a:hover h3 { color: var(--rvx-green); }
.rvx-index a:hover .rvx-index__go { background: var(--rvx-ink); border-color: var(--rvx-ink); color: #fff; transform: translateX(4px); }
.rvx-index a:hover { padding-left: 12px; background: linear-gradient(90deg, var(--rvx-tint), transparent 70%); }
.rvx-index__peek {
  position: fixed; left: 0; top: 0; width: 300px; aspect-ratio: 16 / 10; z-index: 50; pointer-events: none;
  opacity: 0; transform: translate(-50%, -50%) scale(.92); transition: opacity .25s var(--rvx-ease), transform .3s var(--rvx-ease);
  --rvx-c: 18px;
}
.rvx-index__peek.is-on { opacity: 1; transform: translate(-50%, -50%) scale(1); }
.rvx-index__peek img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 900px) {
  .rvx-index a, .rvx-index .rvx-index__row { grid-template-columns: 40px 1fr 40px; }
  .rvx-index .rvx-num { grid-column: 1; }
  .rvx-index h3 { grid-column: 2; }
  .rvx-index p { grid-column: 2; grid-row: 2; }
  .rvx-index .rvx-index__go { grid-column: 3; grid-row: 1; }
  .rvx-index__peek { display: none; }
}
@media (hover: none) { .rvx-index__peek { display: none; } }

/* ==========================================================================
   Framework weights
   ========================================================================== */
.rvx-fw__bar { display: flex; width: 100%; height: 64px; gap: 3px; margin-bottom: 14px; }
.rvx-fw__seg {
  position: relative; flex: 0 0 auto; background: var(--rvx-ink); color: #fff; border: 0; padding: 0; cursor: pointer;
  font-family: var(--rvx-mono); font-size: .75rem; display: flex; align-items: flex-end; justify-content: flex-start;
  padding: 8px; border-radius: 0; transition: background .25s, transform .25s var(--rvx-ease);
  transform-origin: left center;
}
.rvx-fw__seg:nth-child(3n+2) { background: var(--rvx-ink-2); }
.rvx-fw__seg:nth-child(3n) { background: #2D3F82; }
.rvx-fw__seg.is-heavy { background: var(--rvx-gold); color: var(--rvx-ink); }
.rvx-fw__seg:hover, .rvx-fw__seg.is-active, .rvx-fw__seg:focus-visible { background: var(--rvx-green); color: #fff; }
.rvx-js .rvx-fw__bar .rvx-fw__seg { transform: scaleX(0); }
.rvx-fw.is-in .rvx-fw__seg { transform: scaleX(1); transition: transform .9s var(--rvx-ease), background .25s; transition-delay: calc(var(--i) * 70ms), 0s; }
.rvx-fw__scale { display: flex; justify-content: space-between; margin-bottom: 48px; }
.rvx-fw__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 40px 24px; }
.rvx-fw__legend { grid-column: 1 / span 7; list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--rvx-rule); }
.rvx-fw__legend li { display: grid; grid-template-columns: 36px 1fr 64px; gap: 4px 12px; padding: 14px 0; border-top: 1px solid var(--rvx-rule); transition: background .2s; }
.rvx-fw__legend li.is-active { background: var(--rvx-tint); }
.rvx-fw__legend b { font-weight: 500; }
.rvx-fw__legend .rvx-fw__w { text-align: right; font-family: var(--rvx-mono); font-variant-numeric: tabular-nums; }
.rvx-fw__legend small { grid-column: 2 / span 2; color: var(--rvx-muted); font-size: .875rem; line-height: 1.45; }
.rvx-fw__side { grid-column: 9 / span 4; }
.rvx-rating { display: grid; grid-template-columns: repeat(7, 1fr); border: 1px solid var(--rvx-rule-2); margin: 12px 0 8px; }
.rvx-rating span { text-align: center; padding: 12px 0; font-family: var(--rvx-mono); font-size: .8125rem; border-right: 1px solid var(--rvx-rule); }
.rvx-rating span:last-child { border-right: 0; }
.rvx-rating span.is-on { background: var(--rvx-ink); color: #fff; }
.rvx-rating-cap { display: flex; justify-content: space-between; margin-bottom: 32px; }
.rvx-memo { --rvx-c: 22px; background: var(--rvx-tint); padding: 28px 28px 30px; }
.rvx-sec--tint .rvx-memo, .rvx-sec--tint .rvx-rating { background: #fff; }
.rvx-sec--tint .rvx-rating span.is-on { background: var(--rvx-ink); }
.rvx-memo__top { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--rvx-rule-2); padding-bottom: 14px; margin-bottom: 18px; }
.rvx-memo__score { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
.rvx-memo__score strong { display: block; font-family: var(--rvx-serif); font-weight: 400; font-size: 2.6rem; line-height: 1; }
.rvx-memo__score strong small { font-size: 1rem; color: var(--rvx-muted); }
.rvx-memo__rec { display: inline-block; font-family: var(--rvx-mono); font-size: .8125rem; background: #fff; border: 1px solid var(--rvx-gold); color: var(--rvx-ink); padding: 6px 10px; margin-bottom: 16px; }
.rvx-memo p { font-size: .9375rem; color: var(--rvx-ink-soft); margin: 0; }
@media (max-width: 900px) {
  .rvx-fw__legend, .rvx-fw__side { grid-column: 1 / -1; }
  .rvx-fw__bar { height: 48px; }
  .rvx-fw__seg { font-size: 0; }
}

/* ==========================================================================
   Delivery chain
   ========================================================================== */
.rvx-chain { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0; border-top: 1px solid var(--rvx-ink); }
.rvx-chain li { flex: 1 1 0; min-width: 120px; padding: 22px 16px 0 0; position: relative; }
.rvx-chain li .rvx-num { display: block; margin-bottom: 14px; }
.rvx-chain li strong { display: block; font-family: var(--rvx-serif); font-weight: 400; font-size: clamp(1.05rem, .95rem + .4vw, 1.3rem); line-height: 1.2; }
.rvx-chain li::before { content: ""; position: absolute; top: -4px; left: 0; width: 7px; height: 7px; background: var(--rvx-ink); transform: rotate(45deg); }
.rvx-chain li:last-child strong { color: var(--rvx-green); font-style: italic; }
.rvx-chain li:last-child::before { background: var(--rvx-gold); width: 9px; height: 9px; top: -5px; }
@media (max-width: 900px) {
  .rvx-chain { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; margin-inline: calc(var(--rvx-gutter) * -1); padding-inline: var(--rvx-gutter); border-top: 0; background: linear-gradient(var(--rvx-ink), var(--rvx-ink)) 0 0 / 100% 1px no-repeat; background-position: 0 0; }
  .rvx-chain li { flex: 0 0 150px; scroll-snap-align: start; }
}

/* ==========================================================================
   List grid (values, segments, outputs …)
   ========================================================================== */
.rvx-list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 0 32px; }
.rvx-list li { border-top: 1px solid var(--rvx-rule); padding: 22px 0 26px; }
.rvx-list li .rvx-num { display: block; margin-bottom: 10px; }
.rvx-list h3 { font-size: 1.25rem; line-height: 1.25; margin-bottom: 8px; font-weight: 500; }
.rvx-list p { margin: 0; color: var(--rvx-muted); font-size: .9688rem; line-height: 1.55; }
.rvx-list--compact li { padding: 14px 0 16px; }
.rvx-list--compact h3 { font-family: var(--rvx-sans); font-size: 1rem; font-weight: 500; margin: 0; letter-spacing: 0; }
.rvx-list--big .rvx-num { font-family: var(--rvx-serif); font-size: 2.6rem; color: var(--rvx-gold); line-height: 1; margin-bottom: 18px; }
.rvx-list--big h3 { font-size: 1.45rem; }
.rvx-list--big h3 em { display: block; font-size: 1.05rem; color: var(--rvx-green); margin-top: 4px; }
.rvx-list--checks li { display: grid; grid-template-columns: 22px 1fr; gap: 0 10px; align-items: baseline; }
.rvx-list--checks li::before { content: ""; width: 8px; height: 8px; background: var(--rvx-gold); transform: rotate(45deg) translateY(-2px); }
.rvx-list--checks.rvx-list--compact h3 { font-weight: 400; }
@media (max-width: 1000px) { .rvx-list { grid-template-columns: repeat(min(var(--cols, 3), 2), 1fr); } }
@media (max-width: 640px) { .rvx-list { grid-template-columns: 1fr; } }

/* ==========================================================================
   Process steps
   ========================================================================== */
.rvx-proc { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(var(--cols, 3), 1fr); gap: 0 24px; counter-reset: proc; }
.rvx-proc li { position: relative; padding: 28px 0 32px; border-top: 1px solid var(--rvx-rule); }
.rvx-proc li::before {
  content: ""; position: absolute; top: -1px; left: 0; width: 48px; height: 2px; background: var(--rvx-ink);
}
.rvx-proc .rvx-proc__n { font-family: var(--rvx-serif); font-size: 2.2rem; line-height: 1; color: var(--rvx-ink); margin-bottom: 14px; display: block; font-variant-numeric: lining-nums; }
.rvx-proc h3 { font-size: 1.2rem; font-weight: 500; line-height: 1.3; margin-bottom: 12px; }
.rvx-proc p { margin: 0 0 10px; color: var(--rvx-muted); font-size: .9375rem; }
.rvx-proc .rvx-proc__out { display: flex; gap: 8px; align-items: baseline; font-size: .9063rem; color: var(--rvx-ink); }
.rvx-proc .rvx-proc__out .rvx-label { color: var(--rvx-green); flex: 0 0 auto; }
@media (max-width: 1000px) { .rvx-proc { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .rvx-proc { grid-template-columns: 1fr; } }

/* ==========================================================================
   Data table
   ========================================================================== */
.rvx-tablewrap { width: 100%; }
.rvx-filter { display: flex; flex-wrap: wrap; gap: 12px 24px; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.rvx-filter input {
  font: inherit; font-size: 1rem; padding: 12px 14px 12px 40px; width: min(100%, 360px);
  border: 1px solid var(--rvx-rule-2); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%23545C78' stroke-width='1.5'%3E%3Ccircle cx='7' cy='7' r='5'/%3E%3Cpath d='m11 11 4 4'/%3E%3C/svg%3E") 14px center no-repeat;
  color: var(--rvx-ink); border-radius: 0;
}
.rvx-filter input:focus { outline: none; border-color: var(--rvx-ink); }
.rvx-table { width: 100%; border-collapse: collapse; font-size: .9688rem; }
.rvx-table th { text-align: left; font-family: var(--rvx-mono); font-weight: 500; font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--rvx-muted); padding: 0 16px 12px 0; border-bottom: 1px solid var(--rvx-ink); vertical-align: bottom; }
.rvx-table td { padding: 18px 16px 18px 0; border-bottom: 1px solid var(--rvx-rule); vertical-align: top; line-height: 1.5; color: var(--rvx-ink-soft); }
.rvx-table td:first-child { color: var(--rvx-ink); font-weight: 500; }
.rvx-table--serif td:first-child { font-family: var(--rvx-serif); font-weight: 400; font-size: 1.15rem; line-height: 1.3; }
.rvx-table tr.is-hidden { display: none; }
/* neutralise Hello Elementor table reset (zebra + boxed cells) */
.rvx-table, .rvx-table th, .rvx-table td, .rvx-prose table, .rvx-prose th, .rvx-prose td { border-left: 0; border-right: 0; border-top: 0; }
.rvx-table tbody > tr:nth-child(odd) > td, .rvx-table tbody > tr:nth-child(odd) > th, .rvx-table tbody tr:hover > td,
.rvx-prose tbody > tr:nth-child(odd) > td { background: transparent; }
.rvx-table { margin: 0; }
.rvx-table__count { font-family: var(--rvx-mono); font-size: .8125rem; color: var(--rvx-muted); }
.rvx-table__empty { display: none; padding: 24px 0; color: var(--rvx-muted); }
@media (max-width: 760px) {
  .rvx-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
  .rvx-table, .rvx-table tbody, .rvx-table tr, .rvx-table td { display: block; width: 100%; }
  .rvx-table tr { border-top: 1px solid var(--rvx-rule); padding: 16px 0; }
  .rvx-table td { border: 0; padding: 4px 0; }
  .rvx-table td[data-label]:not(:first-child)::before { content: attr(data-label); display: block; font-family: var(--rvx-mono); font-size: .6875rem; letter-spacing: .08em; text-transform: uppercase; color: var(--rvx-muted); margin: 8px 0 2px; }
}

/* ==========================================================================
   Split (text + image)
   ========================================================================== */
.rvx-split__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 40px 24px; align-items: center; }
.rvx-split__text { grid-column: 1 / span 6; }
.rvx-split__media { grid-column: 8 / span 5; }
.rvx-split--flip .rvx-split__text { grid-column: 7 / span 6; grid-row: 1; }
.rvx-split--flip .rvx-split__media { grid-column: 1 / span 5; grid-row: 1; }
.rvx-split--wide .rvx-split__media { grid-column: 7 / span 6; }
.rvx-split--wide.rvx-split--flip .rvx-split__media { grid-column: 1 / span 6; }
.rvx-split--wide .rvx-split__text { grid-column: 1 / span 5; }
.rvx-split--wide.rvx-split--flip .rvx-split__text { grid-column: 8 / span 5; }
.rvx-split__text .rvx-label { display: block; margin-bottom: 20px; }
.rvx-split__text h2 { margin-bottom: 24px; }
.rvx-split__media .rvx-frame { aspect-ratio: 4 / 3; }
.rvx-split__media .rvx-frame.is-logo { aspect-ratio: auto; background: #fff; padding: clamp(24px, 4vw, 48px); border: 1px solid var(--rvx-rule); }
.rvx-split__media .rvx-frame.is-logo img { object-fit: contain; height: auto; }
.rvx-split__media .rvx-frame.is-portrait { aspect-ratio: 4 / 5; }
.rvx-split__caption { margin-top: 12px; }
.rvx-split__points { list-style: none; margin: 24px 0 0; padding: 0; border-bottom: 1px solid var(--rvx-rule); }
.rvx-split__points li { padding: 12px 0 12px 22px; border-top: 1px solid var(--rvx-rule); position: relative; font-size: .9688rem; }
.rvx-split__points li::before { content: ""; position: absolute; left: 2px; top: 1.15em; width: 7px; height: 7px; background: var(--rvx-gold); transform: rotate(45deg); }
.rvx-monogram { aspect-ratio: 4 / 5; background: var(--rvx-tint); display: grid; place-items: center; font-family: var(--rvx-serif); font-size: clamp(4rem, 8vw, 7rem); color: var(--rvx-ink); --rvx-c: 28px; }
@media (max-width: 900px) {
  .rvx-split__text, .rvx-split__media,
  .rvx-split--flip .rvx-split__text, .rvx-split--flip .rvx-split__media,
  .rvx-split--wide .rvx-split__text, .rvx-split--wide .rvx-split__media,
  .rvx-split--wide.rvx-split--flip .rvx-split__text, .rvx-split--wide.rvx-split--flip .rvx-split__media { grid-column: 1 / -1; grid-row: auto; }
}

/* ==========================================================================
   Statement / quote
   ========================================================================== */
.rvx-statement { display: grid; grid-template-columns: repeat(12, 1fr); gap: 24px; }
.rvx-statement .rvx-label { grid-column: 1 / span 3; padding-top: .9em; }
.rvx-statement blockquote { grid-column: 4 / span 9; margin: 0; }
.rvx-statement blockquote p { font-family: var(--rvx-serif); font-size: clamp(1.6rem, 1.15rem + 1.8vw, 2.7rem); line-height: 1.2; letter-spacing: -0.015em; margin: 0 0 20px; }
.rvx-statement blockquote p em { color: var(--rvx-green); }
.rvx-statement cite { font-style: normal; }
@media (max-width: 900px) { .rvx-statement .rvx-label, .rvx-statement blockquote { grid-column: 1 / -1; } }

/* ==========================================================================
   CTA
   ========================================================================== */
.rvx-cta { border-top: 1px solid var(--rvx-ink); }
.rvx-cta__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 32px 24px; align-items: end; }
.rvx-cta__main { grid-column: 1 / span 8; }
.rvx-cta__main h2 { font-size: clamp(2.3rem, 1.5rem + 3vw, 4.4rem); line-height: 1.02; margin-bottom: 20px; max-width: 12em; }
.rvx-cta__main h2 em { color: var(--rvx-green); }
.rvx-cta__direct { grid-column: 9 / span 4; border-top: 1px solid var(--rvx-rule); }
.rvx-cta__direct a { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 16px 0; border-bottom: 1px solid var(--rvx-rule); color: var(--rvx-ink); text-decoration: none; font-size: 1.05rem; }
.rvx-cta__direct a:hover { color: var(--rvx-green); }
@media (max-width: 900px) { .rvx-cta__main, .rvx-cta__direct { grid-column: 1 / -1; } }

/* ==========================================================================
   Posts list
   ========================================================================== */
.rvx-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0 32px; }
.rvx-post { border-top: 1px solid var(--rvx-ink); padding-top: 20px; display: flex; flex-direction: column; }
.rvx-post__meta { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.rvx-post__meta a { color: var(--rvx-green); text-decoration: none; }
.rvx-post__img { display: block; aspect-ratio: 16 / 10; margin-bottom: 20px; --rvx-c: 14px; overflow: hidden; background: var(--rvx-tint); }
.rvx-post__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--rvx-ease); }
.rvx-post:hover .rvx-post__img img { transform: scale(1.03); }
.rvx-post h3 { font-size: clamp(1.25rem, 1.1rem + .5vw, 1.55rem); line-height: 1.22; margin-bottom: 12px; }
.rvx-post h3 a { color: var(--rvx-ink); text-decoration: none; background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat; transition: background-size .4s var(--rvx-ease); }
.rvx-post h3 a:hover { background-size: 100% 1px; }
.rvx-post p { color: var(--rvx-muted); font-size: .9688rem; margin-bottom: 18px; }
.rvx-post .rvx-link { margin-top: auto; align-self: flex-start; font-size: .9375rem; }
.rvx-posts--feature { grid-template-columns: repeat(12, 1fr); }
.rvx-posts--feature .rvx-post { grid-column: span 4; }
.rvx-posts--feature .rvx-post:first-child { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(12, 1fr); gap: 0 24px; margin-bottom: 56px; }
.rvx-posts--feature .rvx-post:first-child .rvx-post__img { grid-column: 1 / span 7; grid-row: 1 / span 4; margin: 0; aspect-ratio: 16 / 10; }
.rvx-posts--feature .rvx-post:first-child > :not(.rvx-post__img) { grid-column: 8 / span 5; }
.rvx-posts--feature .rvx-post:first-child h3 { font-size: clamp(1.7rem, 1.3rem + 1.3vw, 2.4rem); }
.rvx-posts .rvx-post { margin-bottom: 48px; }
.rvx-empty { color: var(--rvx-muted); }
@media (max-width: 1000px) {
  .rvx-posts { grid-template-columns: 1fr 1fr; }
  .rvx-posts--feature .rvx-post { grid-column: span 6; }
  .rvx-posts--feature .rvx-post:first-child { display: flex; }
  .rvx-posts--feature .rvx-post:first-child .rvx-post__img { margin-bottom: 20px; }
}
@media (max-width: 640px) { .rvx-posts { grid-template-columns: 1fr; } .rvx-posts--feature .rvx-post { grid-column: 1 / -1; } }

.rvx-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 48px; }
.rvx-chips a { font-family: var(--rvx-mono); font-size: .8125rem; padding: 8px 14px; border: 1px solid var(--rvx-rule-2); color: var(--rvx-ink); text-decoration: none; transition: all .2s; }
.rvx-chips a:hover, .rvx-chips a.is-current { background: var(--rvx-ink); border-color: var(--rvx-ink); color: #fff; }

.rvx-pager { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 24px; }
.rvx-pager .page-numbers { font-family: var(--rvx-mono); font-size: .875rem; min-width: 42px; height: 42px; display: grid; place-items: center; padding: 0 12px; border: 1px solid var(--rvx-rule-2); color: var(--rvx-ink); text-decoration: none; }
.rvx-pager .page-numbers.current, .rvx-pager a.page-numbers:hover { background: var(--rvx-ink); color: #fff; border-color: var(--rvx-ink); }

/* ==========================================================================
   Article (single post) + plain pages
   ========================================================================== */
.rvx-article__head { padding-block: clamp(48px, 7vw, 96px) 40px; }
.rvx-article__head h1 { font-size: clamp(2.2rem, 1.5rem + 2.8vw, 4rem); line-height: 1.06; margin: 20px 0 24px; }
.rvx-article__meta { display: flex; flex-wrap: wrap; gap: 8px 22px; padding-top: 18px; border-top: 1px solid var(--rvx-ink); }
.rvx-article__meta a { color: var(--rvx-green); text-decoration: none; }
.rvx-article__hero { margin-bottom: clamp(40px, 5vw, 64px); aspect-ratio: 21 / 9; overflow: hidden; }
.rvx-article__hero img { width: 100%; height: 100%; object-fit: cover; }
.rvx-prose { font-size: 1.125rem; line-height: 1.72; color: var(--rvx-ink); }
.rvx-prose > * { max-width: 720px; margin-left: auto; margin-right: auto; }
.rvx-prose h2 { font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); margin: 1.8em auto .6em; line-height: 1.15; }
.rvx-prose h3 { font-size: 1.4rem; margin: 1.6em auto .5em; font-weight: 500; }
.rvx-prose p, .rvx-prose ul, .rvx-prose ol { margin-bottom: 1.25em; }
.rvx-prose ul, .rvx-prose ol { padding-left: 1.3em; }
.rvx-prose li { margin-bottom: .45em; }
.rvx-prose li::marker { color: var(--rvx-gold); }
.rvx-prose blockquote { border-left: 2px solid var(--rvx-gold); padding: 4px 0 4px 24px; font-family: var(--rvx-serif); font-size: 1.4rem; line-height: 1.4; color: var(--rvx-ink); margin: 2em auto; }
.rvx-prose blockquote p { margin: 0; }
.rvx-prose img, .rvx-prose figure { max-width: 100%; height: auto; }
.rvx-prose .alignwide { max-width: 1040px; }
.rvx-prose .alignfull { max-width: none; }
.rvx-prose table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.rvx-prose th, .rvx-prose td { border-bottom: 1px solid var(--rvx-rule); padding: 10px 12px 10px 0; text-align: left; }
.rvx-prose th { border-bottom-color: var(--rvx-ink); font-family: var(--rvx-mono); font-size: .75rem; text-transform: uppercase; letter-spacing: .08em; color: var(--rvx-muted); font-weight: 500; }
.rvx-prose a { color: var(--rvx-green); }
.rvx-article__foot { max-width: 720px; margin: 56px auto 0; padding-top: 24px; border-top: 1px solid var(--rvx-rule); display: flex; flex-wrap: wrap; gap: 16px; justify-content: space-between; align-items: center; }
.rvx-share { display: flex; gap: 8px; align-items: center; }
.rvx-share a { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--rvx-rule-2); color: var(--rvx-ink); }
.rvx-share a:hover { background: var(--rvx-ink); color: #fff; border-color: var(--rvx-ink); }
.rvx-share svg { width: 16px; height: 16px; }
.rvx-tags a { font-family: var(--rvx-mono); font-size: .8125rem; color: var(--rvx-muted); margin-right: 10px; }

/* ==========================================================================
   Contact form
   ========================================================================== */
.rvx-contact__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 48px 24px; }
.rvx-contact__form { grid-column: 1 / span 7; }
.rvx-contact__info { grid-column: 9 / span 4; }
.rvx-form { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 24px; }
.rvx-form .rvx-field { display: flex; flex-direction: column; gap: 8px; }
.rvx-form .rvx-field--full { grid-column: 1 / -1; }
.rvx-form label { font-family: var(--rvx-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--rvx-muted); font-weight: 500; }
.rvx-form label .req { color: var(--rvx-green); }
.rvx-form input[type=text], .rvx-form input[type=email], .rvx-form input[type=tel], .rvx-form select, .rvx-form textarea {
  font: inherit; font-size: 1.0625rem; color: var(--rvx-ink); background: transparent;
  border: 0; border-bottom: 1px solid var(--rvx-rule-2); border-radius: 0; padding: 10px 0 12px; width: 100%;
  transition: border-color .2s;
}
.rvx-form select { appearance: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%230A1B4E' stroke-width='1.5'%3E%3Cpath d='m2 4 4 4 4-4'/%3E%3C/svg%3E") right 4px center no-repeat; padding-right: 24px; cursor: pointer; }
.rvx-form textarea { min-height: 140px; resize: vertical; }
.rvx-form input:focus, .rvx-form select:focus, .rvx-form textarea:focus { outline: none; border-bottom-color: var(--rvx-ink); box-shadow: 0 1px 0 0 var(--rvx-ink); }
.rvx-form .rvx-consent { grid-column: 1 / -1; display: grid; grid-template-columns: 20px 1fr; gap: 12px; align-items: start; font-size: .9063rem; color: var(--rvx-muted); text-transform: none; letter-spacing: 0; font-family: var(--rvx-sans); }
.rvx-form .rvx-consent input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--rvx-ink); }
.rvx-form .rvx-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.rvx-form__submit { grid-column: 1 / -1; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.rvx-notice { grid-column: 1 / -1; padding: 16px 18px; border-left: 2px solid var(--rvx-green); background: #EEF6F0; color: var(--rvx-ink); font-size: .9688rem; }
.rvx-notice--err { border-left-color: #B42318; background: #FDF0EF; }
.rvx-info-block { border-top: 1px solid var(--rvx-ink); padding: 18px 0 22px; }
.rvx-info-block + .rvx-info-block { border-top-color: var(--rvx-rule); }
.rvx-info-block .rvx-label { display: block; margin-bottom: 10px; }
.rvx-info-block p, .rvx-info-block address { margin: 0; font-style: normal; font-size: 1rem; line-height: 1.55; }
.rvx-info-block a { color: var(--rvx-ink); text-decoration: none; }
.rvx-info-block a:hover { color: var(--rvx-green); }
.rvx-map { margin-top: clamp(48px, 6vw, 80px); aspect-ratio: 21 / 8; --rvx-c: 24px; background: var(--rvx-tint); overflow: hidden; }
.rvx-map iframe { width: 100%; height: 100%; border: 0; filter: grayscale(1) contrast(.95); }
@media (max-width: 900px) {
  .rvx-contact__form, .rvx-contact__info { grid-column: 1 / -1; }
  .rvx-form { grid-template-columns: 1fr; }
  .rvx-map { aspect-ratio: 4 / 3; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.rvx-footer { border-top: 1px solid var(--rvx-ink); padding-block: clamp(56px, 7vw, 88px) 28px; background: var(--rvx-paper); }
.rvx-footer__grid { display: grid; grid-template-columns: repeat(12, 1fr); gap: 40px 24px; }
.rvx-footer__brand { grid-column: 1 / span 4; }
.rvx-footer__brand img { width: 200px; margin-bottom: 22px; }
.rvx-footer__brand p { color: var(--rvx-muted); font-size: .9375rem; max-width: 26em; }
.rvx-footer__col { grid-column: span 2; }
.rvx-footer__col--wide { grid-column: span 4; }
.rvx-footer h2 { font-family: var(--rvx-mono); font-size: .75rem; letter-spacing: .08em; text-transform: uppercase; color: var(--rvx-muted); font-weight: 500; margin: 0 0 16px; }
.rvx-footer ul { list-style: none; margin: 0; padding: 0; }
.rvx-footer li { margin-bottom: 9px; }
.rvx-footer a { color: var(--rvx-ink); text-decoration: none; font-size: .9375rem; }
.rvx-footer a:hover { color: var(--rvx-green); text-decoration: underline; }
.rvx-footer address { font-style: normal; font-size: .9375rem; line-height: 1.6; color: var(--rvx-ink); margin-bottom: 14px; }
.rvx-social { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 18px; }
.rvx-social a { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--rvx-rule-2); }
.rvx-social a:hover { background: var(--rvx-ink); border-color: var(--rvx-ink); color: #fff; }
.rvx-social svg { width: 16px; height: 16px; }
.rvx-footer__base { display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; margin-top: clamp(48px, 6vw, 72px); padding-top: 20px; border-top: 1px solid var(--rvx-rule); font-size: .8125rem; color: var(--rvx-muted); }
.rvx-footer__base a { font-size: .8125rem; color: var(--rvx-muted); }
.rvx-footer__base ul { display: flex; gap: 20px; flex-wrap: wrap; }
.rvx-footer__base li { margin: 0; }
.rvx-footer__standards { margin-top: 28px; font-family: var(--rvx-mono); font-size: .75rem; color: var(--rvx-muted); line-height: 1.7; }
@media (max-width: 1000px) {
  .rvx-footer__brand, .rvx-footer__col--wide { grid-column: 1 / -1; }
  .rvx-footer__col { grid-column: span 6; }
}

/* ---------- 404 / search ---------- */
.rvx-404 { padding-block: clamp(80px, 12vw, 160px); }
.rvx-404 .rvx-display { margin: 18px 0 24px; }
.rvx-search { display: flex; gap: 0; max-width: 520px; margin-top: 28px; border-bottom: 1px solid var(--rvx-ink); }
.rvx-search input { flex: 1; font: inherit; font-size: 1.125rem; border: 0; padding: 12px 0; background: transparent; color: var(--rvx-ink); }
.rvx-search input:focus { outline: none; }
.rvx-search button { background: none; border: 0; cursor: pointer; color: var(--rvx-ink); padding: 0 6px; }
.rvx-search button svg { width: 18px; height: 18px; }
.rvx-results { list-style: none; margin: 0; padding: 0; }
.rvx-results li { border-top: 1px solid var(--rvx-rule); padding: 22px 0; }
.rvx-results h2 { font-size: 1.5rem; margin: 6px 0 8px; }
.rvx-results h2 a { color: var(--rvx-ink); text-decoration: none; }
.rvx-results h2 a:hover { color: var(--rvx-green); }
.rvx-results p { color: var(--rvx-muted); margin: 0; }

/* ==========================================================================
   Video hero
   ========================================================================== */
.rvx-hero--video { position: relative; background: #08143A; color: #fff; padding-block: clamp(64px, 9vw, 128px) clamp(40px, 5vw, 64px); isolation: isolate; }
.rvx-hero__media { position: absolute; inset: 0; z-index: -1; overflow: hidden; background: #08143A; }
.rvx-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rvx-hero__media::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(8, 20, 58, .74) 0%, rgba(8, 20, 58, .58) 42%, rgba(8, 20, 58, .32) 72%, rgba(8, 20, 58, .24) 100%),
              linear-gradient(0deg, rgba(8, 20, 58, .5) 0%, rgba(8, 20, 58, 0) 30%);
}
.rvx-hero--video h1, .rvx-hero--video .rvx-lede, .rvx-hero--video .rvx-label { text-shadow: 0 1px 18px rgba(8, 20, 58, .45); }
.rvx-hero--video .rvx-chain-svg text { paint-order: stroke; stroke: rgba(8, 20, 58, .55); stroke-width: 3px; stroke-linejoin: round;
}
.rvx-hero--video .rvx-label { color: rgba(255,255,255,.72); }
.rvx-hero--video h1 { color: #fff; }
.rvx-hero--video h1 em { color: #8FD3A0; }
.rvx-hero--video .rvx-lede { color: rgba(255,255,255,.86); }
.rvx-hero--video .rvx-link { color: #fff; border-bottom-color: rgba(255,255,255,.45); }
.rvx-hero--video .rvx-link:hover { color: #8FD3A0; border-color: #8FD3A0; }
.rvx-hero--video .rvx-btn--green:hover { background: #fff; color: var(--rvx-ink) !important; }
.rvx-hero--video .rvx-chain-svg .route-ghost { stroke: rgba(255,255,255,.28); }
.rvx-hero--video .rvx-chain-svg .route { stroke: #E3A21A; stroke-width: 2.5; }
.rvx-hero--video .rvx-chain-svg .node { fill: rgba(8,20,58,.75); stroke: #fff; }
.rvx-hero--video .rvx-chain-svg .node-num, .rvx-hero--video .rvx-chain-svg .node-label { fill: #fff; }
.rvx-hero--video .rvx-chain-svg .node-note, .rvx-hero--video .rvx-chain-svg .boundary-label { fill: rgba(255,255,255,.7); }
.rvx-hero--video .rvx-chain-svg .tag rect { fill: rgba(255,255,255,.12); }
.rvx-hero--video .rvx-chain-svg .tag text { fill: #A8E2B6; }
.rvx-hero--video .rvx-chain-svg .leader { stroke: rgba(168,226,182,.7); }
.rvx-hero--video .rvx-chain-svg .boundary { stroke: #fff; opacity: .5; }
.rvx-hero--video .rvx-ledger { border-top-color: rgba(255,255,255,.7); border-bottom-color: rgba(255,255,255,.18); }
.rvx-hero--video .rvx-ledger div { border-color: rgba(255,255,255,.18) !important; }
.rvx-hero--video .rvx-ledger strong { color: #fff; }
.rvx-hero--video .rvx-ledger span { color: rgba(255,255,255,.72); }
.rvx-hero__credit { position: absolute; right: var(--rvx-gutter); bottom: 10px; color: rgba(255,255,255,.5); font-size: .6875rem; margin: 0; }

/* ==========================================================================
   Photo gallery
   ========================================================================== */
.rvx-gal { display: grid; gap: 12px; }
.rvx-gal__item { position: relative; margin: 0; overflow: hidden; background: var(--rvx-tint); min-height: 0; }
.rvx-gal__item img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; display: block; transition: transform 1.2s var(--rvx-ease); }
.rvx-gal__item:hover img { transform: scale(1.04); }
.rvx-gal__item a { position: absolute; inset: 0; display: block; }
.rvx-gal__tag {
  position: absolute; left: 12px; bottom: 12px; background: rgba(255,255,255,.94); color: var(--rvx-ink);
  font-family: var(--rvx-mono); font-size: .6875rem; letter-spacing: .07em; text-transform: uppercase; padding: 6px 9px; line-height: 1.3; max-width: calc(100% - 24px);
}
.rvx-gal--mosaic { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, minmax(0, 1fr)); aspect-ratio: 21 / 10; }
.rvx-gal--mosaic .rvx-gal__item:first-child { grid-row: span 2; }
.rvx-gal--mosaic .rvx-gal__item:first-child .rvx-gal__tag { left: 20px; bottom: 20px; }
.rvx-gal--trio { grid-template-columns: repeat(3, 1fr); }
.rvx-gal--trio .rvx-gal__item { aspect-ratio: 4 / 5; }
.rvx-gal--duo { grid-template-columns: 7fr 5fr; }
.rvx-gal--duo .rvx-gal__item { aspect-ratio: 16 / 11; }
.rvx-gal--duo .rvx-gal__item:last-child { aspect-ratio: auto; }
.rvx-gal--strip { grid-template-columns: repeat(4, 1fr); }
.rvx-gal--strip .rvx-gal__item { aspect-ratio: 3 / 4; }
@media (max-width: 900px) {
  .rvx-gal--mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: none; aspect-ratio: auto; }
  .rvx-gal--mosaic .rvx-gal__item { aspect-ratio: 4 / 3; }
  .rvx-gal--mosaic .rvx-gal__item:first-child { grid-column: 1 / -1; grid-row: auto; aspect-ratio: 16 / 10; }
  .rvx-gal--trio, .rvx-gal--strip { grid-template-columns: 1fr 1fr; }
  .rvx-gal--trio .rvx-gal__item:first-child { grid-column: 1 / -1; aspect-ratio: 16 / 10; }
  .rvx-gal--duo { grid-template-columns: 1fr; }
  .rvx-gal--duo .rvx-gal__item:last-child { aspect-ratio: 16 / 11; }
}

/* Beat Elementor's `.elementor img { height:auto }` (loads after us, same specificity) */
body .rvx-gal__item img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; }
body .rvx-frame:not(.is-logo) img, body .rvx-post__img img, body .rvx-article__hero img { width: 100%; height: 100%; max-width: none; object-fit: cover; }

/* Photos in split sections: natural colour, chamfered */
.rvx-split__media .rvx-frame:not(.is-logo) { background: var(--rvx-tint); }

/* ==========================================================================
   Logo-matched display type (Michroma) — h1/h2 and key figures
   ========================================================================== */
h1, h2, h3, h4, h5, h6 { font-weight: 500; letter-spacing: -0.01em; }
h1, h2, .rvx-display, .rvx-h2, .rvx-ledger strong, .rvx-memo__score strong, .rvx-monogram,
.rvx-proc .rvx-proc__n, .rvx-list--big .rvx-num, .rvx-rating span.is-on {
  font-family: var(--rvx-display); font-weight: 400; letter-spacing: 0;
}
h1 em, h2 em, .rvx-display em, .rvx-h2 em, .rvx-em { font-style: normal; color: var(--rvx-green); }
.rvx-display { font-size: clamp(1.9rem, 1.1rem + 3vw, 3.9rem); line-height: 1.14; }
.rvx-hero__text h1 { max-width: 13em; }
.rvx-phero h1 { max-width: 16em; }
.rvx-h2 { font-size: clamp(1.45rem, 1.05rem + 1.5vw, 2.4rem); line-height: 1.2; }
.rvx-cta__main h2 { font-size: clamp(1.7rem, 1.1rem + 2.2vw, 3rem); line-height: 1.16; max-width: 15em; }
.rvx-article__head h1 { font-size: clamp(1.7rem, 1.2rem + 2vw, 2.9rem); line-height: 1.18; }
.rvx-prose h2 { font-size: clamp(1.2rem, 1.05rem + .6vw, 1.5rem); line-height: 1.35; }
.rvx-results h2 { font-size: 1.2rem; line-height: 1.35; }
.rvx-ledger strong { font-size: clamp(1.35rem, 1rem + 1.1vw, 1.95rem); }
.rvx-memo__score strong { font-size: 2rem; }
.rvx-proc .rvx-proc__n { font-size: 1.6rem; }
.rvx-list--big .rvx-num { font-size: 2rem; }
.rvx-monogram { font-size: clamp(3rem, 6vw, 5rem); }
.rvx-404 .rvx-display { font-size: clamp(1.9rem, 1.1rem + 3vw, 3.6rem); }

/* Secondary headings, quotes and lists: IBM Plex Sans */
.rvx-qa h3 { font-weight: 500; font-size: clamp(1.1rem, 1rem + .35vw, 1.3rem); line-height: 1.4; }
.rvx-index h3 { font-weight: 500; font-size: clamp(1.15rem, 1rem + .6vw, 1.5rem); line-height: 1.3; }
.rvx-statement blockquote p, .rvx-prose blockquote { font-weight: 300; letter-spacing: -0.015em; }
.rvx-statement blockquote p { font-size: clamp(1.45rem, 1.1rem + 1.4vw, 2.3rem); line-height: 1.3; }
.rvx-statement blockquote p em { font-style: normal; font-weight: 500; }
.rvx-chain li strong { font-weight: 500; font-size: clamp(1rem, .95rem + .25vw, 1.15rem); }
.rvx-chain li:last-child strong { font-style: normal; }
.rvx-post h3 { font-weight: 500; font-size: clamp(1.15rem, 1.05rem + .35vw, 1.35rem); line-height: 1.35; }
.rvx-posts--feature .rvx-post:first-child h3 { font-family: var(--rvx-display); font-weight: 400; font-size: clamp(1.4rem, 1.1rem + 1vw, 1.9rem); line-height: 1.25; }
.rvx-chain-svg .node-label { font-family: var(--rvx-sans); font-size: 16px; font-weight: 500; }
.rvx-table--serif td:first-child { font-weight: 500; font-size: 1.0313rem; }
@media (max-width: 1100px) { .rvx-nav > ul > li > a, .rvx-nav__toggle { font-family: var(--rvx-display); font-size: 1.15rem; } }

/* ==========================================================================
   COLOUR SYSTEM: navy · green · gold from the logo
   ========================================================================== */

/* Brand stripe (the logo tagline's three colours) */
.rvx-stripe, .rvx-header::before, .rvx-footer::before {
  content: ""; display: block; height: 4px;
  background: linear-gradient(90deg, var(--rvx-ink) 0 33.33%, var(--rvx-green) 33.33% 66.66%, var(--rvx-gold) 66.66% 100%);
}
.rvx-header::before { position: absolute; top: 0; left: 0; right: 0; }
.rvx-header { padding-top: 4px; }
.rvx-nav > ul > li > a::after, .rvx-nav__toggle::after { background: var(--rvx-gold); height: 3px; }
.rvx-mega__list .rvx-num { color: var(--rvx-gold-text); }
.rvx-mega { border-top: 3px solid var(--rvx-gold); }

/* Section label number in gold */
.rvx-head__meta .rvx-label b { color: var(--rvx-gold-text); }
.rvx-head__main h2::after {
  content: ""; display: block; width: 56px; height: 4px; margin-top: 18px;
  background: linear-gradient(90deg, var(--rvx-green) 0 50%, var(--rvx-gold) 50% 100%);
}
.rvx-head--stack .rvx-head__main h2::after { margin-top: 16px; }

/* Buttons */
.rvx-btn--gold, .rvx-dark .rvx-btn { background: var(--rvx-gold); color: var(--rvx-navy-deep) !important; }
.rvx-btn--gold:hover, .rvx-dark .rvx-btn:hover { background: #fff; color: var(--rvx-navy-deep) !important; }
.rvx-link:hover { border-color: var(--rvx-gold); }

/* Section backgrounds */
.rvx-sec--navy-tint { background: var(--rvx-navy-tint); border-top-color: transparent; }
.rvx-sec--green-tint { background: var(--rvx-green-tint); border-top-color: transparent; }
.rvx-sec--gold-tint { background: var(--rvx-gold-tint); border-top-color: transparent; }
.rvx-sec--navy { background: #0A1B4E; border-top-color: transparent; }
.rvx-sec--green { background: var(--rvx-green-deep); border-top-color: transparent; }
.rvx-sec--navy::before, .rvx-sec--green::before {
  content: ""; position: absolute; inset: 0; pointer-events: none; opacity: .5;
  background: radial-gradient(60% 80% at 100% 0%, rgba(227,162,26,.16), transparent 60%);
}
.rvx-sec--navy > .rvx-wrap, .rvx-sec--green > .rvx-wrap { position: relative; }

/* Dark sections: redefine tokens so every component adapts */
.rvx-dark {
  --rvx-ink: #FFFFFF;
  --rvx-ink-2: #DDE3F5;
  --rvx-ink-soft: rgba(255,255,255,.84);
  --rvx-muted: rgba(255,255,255,.7);
  --rvx-rule: rgba(255,255,255,.16);
  --rvx-rule-2: rgba(255,255,255,.34);
  --rvx-tint: rgba(255,255,255,.07);
  --rvx-green: #9ADBA9;
  --rvx-gold-text: #F2B53A;
  color: #fff;
}
.rvx-dark h1 em, .rvx-dark h2 em, .rvx-dark .rvx-h2 em, .rvx-dark blockquote em { color: var(--rvx-gold); }
.rvx-dark .rvx-head__main h2::after { background: linear-gradient(90deg, #9ADBA9 0 50%, var(--rvx-gold) 50% 100%); }
.rvx-dark .rvx-index a:hover { background: linear-gradient(90deg, rgba(255,255,255,.08), transparent 70%); }
.rvx-dark .rvx-index a:hover .rvx-index__go { background: var(--rvx-gold); border-color: var(--rvx-gold); color: var(--rvx-navy-deep); }
.rvx-dark .rvx-rating span.is-on { background: var(--rvx-gold); color: var(--rvx-navy-deep); }
.rvx-dark .rvx-chain li::before { background: #fff; }
.rvx-dark .rvx-chain li:last-child::before { background: var(--rvx-gold); }
.rvx-dark .rvx-chain li:last-child strong { color: var(--rvx-gold); }

/* Cards keep light tokens even inside dark sections */
.rvx-card-reset, .rvx-list--cards li, .rvx-memo {
  --rvx-ink: #0A1B4E; --rvx-ink-soft: #3A4670; --rvx-muted: #545C78; --rvx-rule: #E3E5EC; --rvx-green: #0E6B25; --rvx-gold-text: #8F6204;
  color: var(--rvx-ink);
}

/* ---------- Cards list ---------- */
.rvx-list--cards { gap: 20px; }
.rvx-list--cards li {
  background: #fff; border: 0; padding: 28px 26px 30px; position: relative;
  box-shadow: 0 1px 0 rgba(10,27,78,.06), 0 18px 40px -28px rgba(10,27,78,.35);
  border-top: 4px solid var(--rvx-accent, #0A1B4E);
  transition: transform .35s var(--rvx-ease), box-shadow .35s var(--rvx-ease);
}
.rvx-list--cards li:nth-child(3n+1) { --rvx-accent: #0A1B4E; }
.rvx-list--cards li:nth-child(3n+2) { --rvx-accent: #1F8A33; }
.rvx-list--cards li:nth-child(3n)   { --rvx-accent: #E3A21A; }
.rvx-list--cards li:hover { transform: translateY(-4px); box-shadow: 0 1px 0 rgba(10,27,78,.06), 0 26px 50px -26px rgba(10,27,78,.45); }
.rvx-list--cards li .rvx-num {
  display: inline-grid; place-items: center; width: 40px; height: 40px; margin-bottom: 18px;
  background: var(--rvx-accent); color: #fff; font-family: var(--rvx-display); font-size: .875rem;
  clip-path: polygon(10px 0, calc(100% - 10px) 0, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px), 0 10px);
}
.rvx-list--cards li:nth-child(3n) .rvx-num { color: var(--rvx-navy-deep); }
.rvx-list--cards h3 { font-size: 1.15rem; line-height: 1.3; margin-bottom: 10px; }
.rvx-list--cards h3 em { display: block; font-style: normal; font-size: .9375rem; font-weight: 500; color: var(--rvx-green); margin-top: 6px; }
.rvx-list--cards p { color: var(--rvx-muted); }
.rvx-list--cards.rvx-list--nonum h3 { margin-top: 2px; }

/* ---------- Pillars (solid colour cards) ---------- */
.rvx-list--pillars { gap: 20px; }
.rvx-list--pillars li {
  border: 0; padding: clamp(28px, 3vw, 40px); position: relative; overflow: hidden; color: #fff; min-height: 260px;
  display: flex; flex-direction: column;
  --rvx-c: 22px;
  clip-path: polygon(0 0, calc(100% - var(--rvx-c)) 0, 100% var(--rvx-c), 100% 100%, var(--rvx-c) 100%, 0 calc(100% - var(--rvx-c)));
}
.rvx-list--pillars li:nth-child(3n+1) { background: linear-gradient(150deg, #13286B, #0A1B4E 60%); }
.rvx-list--pillars li:nth-child(3n+2) { background: linear-gradient(150deg, #1F8A33, #0E6B25 60%); }
.rvx-list--pillars li:nth-child(3n)   { background: linear-gradient(150deg, #F2B53A, #E3A21A 60%); color: var(--rvx-navy-deep); }
.rvx-list--pillars li::after {
  content: ""; position: absolute; right: -40px; bottom: -40px; width: 180px; height: 180px; border-radius: 50%;
  border: 28px solid rgba(255,255,255,.08); pointer-events: none;
}
.rvx-list--pillars li .rvx-num { display: block; color: inherit; opacity: .75; font-family: var(--rvx-display); font-size: 1rem; margin-bottom: auto; padding-bottom: 36px; }
.rvx-list--pillars h3 { color: inherit; font-family: var(--rvx-display); font-weight: 400; font-size: clamp(1.15rem, 1rem + .6vw, 1.45rem); line-height: 1.25; margin-bottom: 12px; }
.rvx-list--pillars h3 a { color: inherit !important; }
.rvx-list--pillars p { color: inherit; opacity: .88; font-size: .9688rem; }
.rvx-list--pillars li:hover h3 a { text-decoration: underline; text-underline-offset: .2em; }

/* ---------- Q&A as cards ---------- */
.rvx-sec--navy-tint .rvx-qa, .rvx-sec--green-tint .rvx-qa, .rvx-sec--gold-tint .rvx-qa { border: 0; display: grid; gap: 12px; }
.rvx-sec--navy-tint .rvx-qa li, .rvx-sec--green-tint .rvx-qa li, .rvx-sec--gold-tint .rvx-qa li {
  background: #fff; border: 0; border-top: 3px solid var(--rvx-accent, #0A1B4E); padding: 24px 28px 24px 0;
  box-shadow: 0 14px 34px -28px rgba(10,27,78,.4);
}
.rvx-qa li:nth-child(3n+1) { --rvx-accent: #0A1B4E; } .rvx-qa li:nth-child(3n+2) { --rvx-accent: #1F8A33; } .rvx-qa li:nth-child(3n) { --rvx-accent: #E3A21A; }
.rvx-sec--navy-tint .rvx-qa .rvx-num, .rvx-sec--green-tint .rvx-qa .rvx-num, .rvx-sec--gold-tint .rvx-qa .rvx-num { padding-left: 24px; color: var(--rvx-gold-text); font-weight: 500; }

/* ---------- Process as cards ---------- */
.rvx-proc { gap: 20px; }
.rvx-proc li { background: #fff; border: 0; padding: 28px 26px 30px; box-shadow: 0 14px 34px -28px rgba(10,27,78,.4); }
.rvx-proc li::before { width: 100%; height: 4px; top: 0; background: var(--rvx-accent, #0A1B4E); }
.rvx-proc li:nth-child(3n+1) { --rvx-accent: #0A1B4E; } .rvx-proc li:nth-child(3n+2) { --rvx-accent: #1F8A33; } .rvx-proc li:nth-child(3n) { --rvx-accent: #E3A21A; }
.rvx-proc .rvx-proc__n { color: var(--rvx-accent); }
.rvx-proc li:nth-child(3n) .rvx-proc__n { color: var(--rvx-gold-deep); }
.rvx-proc .rvx-proc__out { background: var(--rvx-green-tint); padding: 10px 12px; margin-top: 14px; }

/* ---------- Chain: colour-cycled markers ---------- */
.rvx-chain li:nth-child(3n+2)::before { background: #1F8A33; }
.rvx-chain li:nth-child(3n)::before { background: var(--rvx-gold); }
.rvx-chain li .rvx-num { color: var(--rvx-gold-text); font-weight: 500; }

/* ---------- Index: coloured number badges ---------- */
.rvx-index .rvx-num {
  display: inline-grid; place-items: center; width: 38px; height: 38px; color: #fff; background: var(--rvx-accent, #0A1B4E);
  font-family: var(--rvx-display); font-size: .8125rem; align-self: center;
  clip-path: polygon(9px 0, calc(100% - 9px) 0, 100% 9px, 100% calc(100% - 9px), calc(100% - 9px) 100%, 9px 100%, 0 calc(100% - 9px), 0 9px);
}
.rvx-index li:nth-child(3n+1) { --rvx-accent: #0A1B4E; } .rvx-index li:nth-child(3n+2) { --rvx-accent: #1F8A33; } .rvx-index li:nth-child(3n) { --rvx-accent: #E3A21A; }
.rvx-index li:nth-child(3n) .rvx-num { color: var(--rvx-navy-deep); }
.rvx-index a:hover { background: linear-gradient(90deg, var(--rvx-gold-tint), transparent 75%); }
.rvx-index a:hover .rvx-index__go { background: var(--rvx-gold); border-color: var(--rvx-gold); color: var(--rvx-navy-deep); }

/* ---------- Framework bar: navy / green / gold ---------- */
.rvx-fw__seg:nth-child(3n+2) { background: #1F8A33; }
.rvx-fw__seg:nth-child(3n) { background: #13286B; }
.rvx-fw__seg.is-heavy { background: var(--rvx-gold); color: var(--rvx-navy-deep); }
.rvx-fw__seg:hover, .rvx-fw__seg.is-active { background: var(--rvx-green-deep); color: #fff; }
.rvx-fw__legend li.is-active { background: var(--rvx-gold-tint); }
.rvx-fw__legend .rvx-num { color: var(--rvx-gold-text); }
.rvx-memo { border-top: 4px solid var(--rvx-gold); }
.rvx-memo__rec { background: var(--rvx-gold); border-color: var(--rvx-gold); font-weight: 500; }
.rvx-rating span.is-on { background: var(--rvx-green); color: #fff; }

/* ---------- Tables: navy header band ---------- */
.rvx-table th { background: var(--rvx-ink); color: #fff; padding: 14px 16px; border-bottom: 3px solid var(--rvx-gold); }
.rvx-table td { padding-left: 16px; }
.rvx-table tbody tr:hover > td { background: var(--rvx-gold-tint); }
@media (max-width: 760px) { .rvx-table td { padding-left: 0; } .rvx-table tr { border-top: 3px solid var(--rvx-gold); margin-bottom: 8px; } }

/* ---------- Split checklist + statement ---------- */
.rvx-split__points li::before { background: var(--rvx-gold); }
.rvx-split__points li:nth-child(3n+2)::before { background: #1F8A33; }
.rvx-split__points li:nth-child(3n+1)::before { background: var(--rvx-ink); }
.rvx-dark .rvx-split__points li:nth-child(3n+1)::before { background: #fff; }
.rvx-statement blockquote::before { content: ""; display: block; width: 56px; height: 4px; margin-bottom: 24px; background: linear-gradient(90deg, var(--rvx-green) 0 50%, var(--rvx-gold) 50% 100%); }
.rvx-dark .rvx-statement blockquote::before { background: linear-gradient(90deg, #9ADBA9 0 50%, var(--rvx-gold) 50% 100%); }
.rvx-list--checks li::before { background: var(--rvx-mark, var(--rvx-gold)); }
.rvx-list--checks li:nth-child(3n+1) { --rvx-mark: #0A1B4E; } .rvx-list--checks li:nth-child(3n+2) { --rvx-mark: #1F8A33; }
.rvx-dark .rvx-list--checks li:nth-child(3n+1) { --rvx-mark: #fff; } .rvx-dark .rvx-list--checks li:nth-child(3n+2) { --rvx-mark: #9ADBA9; }

/* ---------- Page hero: coloured facts card ---------- */
.rvx-phero__facts { border-top: 0; padding: 10px 22px 10px;
  background: linear-gradient(90deg, #0A1B4E 0 33.33%, #0E6B25 33.33% 66.66%, #E3A21A 66.66%) top / 100% 4px no-repeat, var(--rvx-navy-tint); }
.rvx-phero__facts div:last-child { border-bottom: 0; }
.rvx-phero__crumbs span[aria-current], .rvx-phero__crumbs > span:last-child { color: var(--rvx-gold-text); }
.rvx-phero h1 em { color: var(--rvx-green); }

/* ---------- Posts: coloured category pill ---------- */
.rvx-post { border-top: 4px solid var(--rvx-accent, #0A1B4E); }
.rvx-posts > .rvx-post:nth-child(3n+2) { --rvx-accent: #1F8A33; } .rvx-posts > .rvx-post:nth-child(3n) { --rvx-accent: #E3A21A; }
.rvx-post__meta a { background: var(--rvx-green-tint); color: var(--rvx-green) !important; padding: 3px 8px; }
.rvx-chips a:hover, .rvx-chips a.is-current { background: var(--rvx-green); border-color: var(--rvx-green); }

/* ---------- Gallery tags in brand colours ---------- */
.rvx-gal__item:nth-child(3n+1) .rvx-gal__tag { background: var(--rvx-ink); color: #fff; }
.rvx-gal__item:nth-child(3n+2) .rvx-gal__tag { background: #1F8A33; color: #fff; }
.rvx-gal__item:nth-child(3n) .rvx-gal__tag { background: var(--rvx-gold); color: var(--rvx-navy-deep); }
.rvx-dark .rvx-gal__item .rvx-gal__tag { --rvx-ink: #0A1B4E; }

/* ---------- CTA ---------- */
.rvx-cta.rvx-dark .rvx-cta__direct a:hover { color: var(--rvx-gold); }
.rvx-cta.rvx-dark .rvx-cta__direct .rvx-label { color: var(--rvx-gold); }

/* ---------- Contact ---------- */
.rvx-info-block { border-top: 3px solid var(--rvx-accent, #0A1B4E) !important; }
.rvx-info-block:nth-child(3n+2) { --rvx-accent: #1F8A33; } .rvx-info-block:nth-child(3n) { --rvx-accent: #E3A21A; }
.rvx-notice { border-left-color: var(--rvx-green); }

/* ---------- Footer: navy ---------- */
.rvx-footer { background: var(--rvx-navy-deep); border-top: 0; padding-top: 0; position: relative;
  --rvx-ink: #fff; --rvx-muted: rgba(255,255,255,.66); --rvx-rule: rgba(255,255,255,.14); --rvx-rule-2: rgba(255,255,255,.3); color: #fff; }
.rvx-footer::before { margin-bottom: clamp(56px, 7vw, 88px); }
.rvx-footer h2 { color: var(--rvx-gold); }
.rvx-footer a:hover { color: var(--rvx-gold); }
.rvx-footer__brand img { background: #fff; padding: 12px 16px; width: 228px; --rvx-c: 10px; clip-path: polygon(var(--rvx-c) 0, calc(100% - var(--rvx-c)) 0, 100% var(--rvx-c), 100% calc(100% - var(--rvx-c)), calc(100% - var(--rvx-c)) 100%, var(--rvx-c) 100%, 0 calc(100% - var(--rvx-c)), 0 var(--rvx-c)); }
.rvx-footer .rvx-social a:hover { background: var(--rvx-gold); border-color: var(--rvx-gold); color: var(--rvx-navy-deep); }

/* ---------- FAQ ---------- */
.rvx-faq { display: grid; gap: 12px; max-width: 980px; margin-left: auto; }
.rvx-faq__item {
  background: #fff; border-top: 3px solid var(--rvx-accent, #0A1B4E);
  box-shadow: 0 14px 34px -28px rgba(10,27,78,.4);
  --rvx-ink: #0A1B4E; --rvx-ink-soft: #3A4670; color: var(--rvx-ink);
}
.rvx-faq__item:nth-child(3n+2) { --rvx-accent: #1F8A33; } .rvx-faq__item:nth-child(3n) { --rvx-accent: #E3A21A; }
.rvx-faq__item summary {
  list-style: none; cursor: pointer; display: grid; grid-template-columns: 44px 1fr 28px; gap: 12px; align-items: center;
  padding: 20px 24px; font-weight: 500; font-size: 1.0625rem; line-height: 1.4;
}
.rvx-faq__item summary::-webkit-details-marker { display: none; }
.rvx-faq__n { font-family: var(--rvx-display); font-size: .8125rem; color: var(--rvx-gold-text); }
.rvx-faq__icon { width: 28px; height: 28px; position: relative; border: 1px solid #C9CDD9; transition: background .25s, border-color .25s; }
.rvx-faq__icon::before, .rvx-faq__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform .3s var(--rvx-ease); }
.rvx-faq__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.rvx-faq__item[open] .rvx-faq__icon { background: var(--rvx-gold); border-color: var(--rvx-gold); }
.rvx-faq__item[open] .rvx-faq__icon::after { transform: translate(-50%, -50%) rotate(0); }
.rvx-faq__item summary:hover .rvx-faq__q { color: #0E6B25; }
.rvx-faq__a { padding: 0 24px 22px 80px; color: var(--rvx-ink-soft); font-size: 1rem; line-height: 1.65; }
.rvx-faq__a p { margin: 0; max-width: 62em; }
@media (max-width: 640px) {
  .rvx-faq__item summary { grid-template-columns: 1fr 28px; padding: 18px; }
  .rvx-faq__n { display: none; }
  .rvx-faq__a { padding: 0 18px 20px; }
}

/* ---------- Reveal ---------- */
.rvx-js .rvx-reveal { opacity: 0; transform: translateY(14px); transition: opacity .8s var(--rvx-ease), transform .8s var(--rvx-ease); }
.rvx-js .rvx-reveal.is-in { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; }
  .rvx-js .rvx-reveal, .rvx-js .rvx-chain-svg .node-g, .rvx-js .rvx-chain-svg .tag-g { opacity: 1; transform: none; }
  .rvx-js .rvx-chain-svg .route { stroke-dashoffset: 0; }
  .rvx-js .rvx-fw__bar .rvx-fw__seg { transform: none; }
  .rvx-index__peek { display: none; }
}

/* Elementor editor: always show animated content */
.elementor-editor-active .rvx-reveal, .elementor-editor-active .rvx-chain-svg .node-g, .elementor-editor-active .rvx-chain-svg .tag-g { opacity: 1 !important; transform: none !important; }
.elementor-editor-active .rvx-chain-svg .route { stroke-dashoffset: 0 !important; }
.elementor-editor-active .rvx-fw__seg { transform: none !important; }

@media print {
  .rvx-header, .rvx-footer, .rvx-cta, .rvx-share { display: none; }
  .rvx-sec { padding-block: 24px; }
}
