/* ═══════════════════════════════════════════════════════════════════════
   BQ Revamp — component layer.
   Authored components consumed by <x-bq.*> Blade tags. Everything here is
   scoped to body.site-theme-revamp so the standard skin is untouched.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Layout rail ───────────────────────────────────────────────────────── */
body.site-theme-revamp .bq-rail{
  max-width:var(--rv-max); margin-inline:auto;
  padding-inline:clamp(20px,4vw,var(--rv-gutter));
}
body.site-theme-revamp .bq-bleed{ width:100%; }

/* ── Section shell ─────────────────────────────────────────────────────── */
body.site-theme-revamp .bq-section{ position:relative; }
body.site-theme-revamp .bq-section--pad-lg{ padding-block:clamp(56px,7vw,100px); }
body.site-theme-revamp .bq-section--pad-md{ padding-block:clamp(44px,5vw,70px); }
body.site-theme-revamp .bq-section--pad-sm{ padding-block:clamp(32px,3.6vw,48px); }
body.site-theme-revamp .bq-section--light{ background:var(--rv-white); }
body.site-theme-revamp .bq-section--soft { background:var(--rv-soft); }
body.site-theme-revamp .bq-section--dark {
  background:var(--rv-wine-deep); color:var(--rv-white);
}
body.site-theme-revamp .bq-section--dark :is(h1,h2,h3,h4){ color:var(--rv-white); }
body.site-theme-revamp .bq-section--dark p{ color:var(--rv-on-dark); }
/* The design rounds the TOP corners of dark bands only. */
body.site-theme-revamp .bq-section--topround{
  border-radius:var(--rv-radius) var(--rv-radius) 0 0;
}
body.site-theme-revamp .bq-section--silk{
  background-image:var(--bq-grain),var(--bq-silk);
  background-size:180px,cover; background-repeat:repeat,no-repeat; background-position:center,center;
}

/* ── Split button — pill + separate square (the signature component) ───── */
body.site-theme-revamp .bq-split{
  display:inline-grid; grid-template-columns:minmax(134px,auto) 48px;
  align-items:stretch; gap:6px; min-height:48px;
  padding:0; border:0; background:none; box-shadow:none;
  text-decoration:none; vertical-align:middle; cursor:pointer;
  font:inherit; color:inherit;
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
  transition:gap var(--rv-dur-tap) var(--rv-ease-settle);
}
/* The 6px gap becomes a hinge on press: two masses on a linkage, not styling.
   translate (not transform) — transform is already owned by the RTL arrow mirror. */
body.site-theme-revamp .bq-split:active{ gap:3px; }
body.site-theme-revamp .bq-split:active .bq-split__label{ translate:0 1px; }
body.site-theme-revamp .bq-split:active .bq-split__square{ translate:0 1px; transition-delay:25ms; }
body.site-theme-revamp .bq-split--block{ grid-template-columns:1fr 48px; width:100%; }
body.site-theme-revamp .bq-split--nosquare{ grid-template-columns:minmax(134px,auto); }

body.site-theme-revamp .bq-split__label{
  display:flex; align-items:center; justify-content:center;
  padding-inline:22px; border-radius:var(--rv-radius-ctl);
  font-family:var(--rv-font-mono);
  font-size:var(--rv-mono); font-weight:600;
  letter-spacing:var(--rv-mono-ls); text-transform:uppercase;
  white-space:nowrap; line-height:1;
  transition:background .25s ease,color .25s ease;
}
body.site-theme-revamp .bq-split__square{
  display:grid; place-items:center; width:48px;
  border-radius:var(--rv-squircle);
  background:var(--rv-gold); color:var(--rv-white);
  transition:background .25s ease;
}
html[dir="rtl"] body.site-theme-revamp .bq-split__square{ border-radius:var(--rv-squircle-rtl); }
html[dir="rtl"] body.site-theme-revamp .bq-split__square .bq-arrow{ transform:scaleX(-1); }
body.site-theme-revamp .bq-split__square .bq-arrow{ width:22px; height:22px; }

body.site-theme-revamp .bq-split--burgundy .bq-split__label{ background:var(--rv-wine); color:var(--rv-white); }
body.site-theme-revamp .bq-split--burgundy:hover .bq-split__label{ background:#500722; }
/* The white variant is what the design uses on every dark surface. */
body.site-theme-revamp .bq-split--white .bq-split__label{ background:var(--rv-white); color:var(--rv-wine); }
body.site-theme-revamp .bq-split--white:hover .bq-split__label{ background:var(--rv-soft); }
body.site-theme-revamp .bq-split--ghost .bq-split__label{ background:none; color:currentColor; padding-inline:0; }
body.site-theme-revamp .bq-split:hover .bq-split__square{ background:#c39c42; }
body.site-theme-revamp .bq-split--outline .bq-split__square{
  background:none; border:1px solid var(--rv-gold); color:var(--rv-gold);
}
body.site-theme-revamp .bq-split:focus-visible{
  outline:3px solid var(--rv-focus); outline-offset:4px; border-radius:var(--rv-radius-ctl);
}

/* ── Standalone gold square ────────────────────────────────────────────── */
body.site-theme-revamp .bq-square{
  display:inline-grid; place-items:center; width:48px; height:48px;
  padding:0; border:0; cursor:pointer;
  border-radius:var(--rv-squircle);
  transition:background .25s ease,border-color .25s ease;
}
html[dir="rtl"] body.site-theme-revamp .bq-square{ border-radius:var(--rv-squircle-rtl); }
body.site-theme-revamp .bq-square--solid  { background:var(--rv-gold); color:var(--rv-white); }
body.site-theme-revamp .bq-square--solid:hover{ background:#c39c42; }
body.site-theme-revamp .bq-square--outline{ background:none; border:1px solid var(--rv-gold); color:var(--rv-gold); }
body.site-theme-revamp .bq-square--outline:hover{ background:rgba(214,176,84,.12); }
body.site-theme-revamp .bq-square--ghost  { background:var(--rv-ctl-dark); border:1px solid var(--rv-ctl-dark-b); color:var(--rv-white); }
body.site-theme-revamp .bq-square:focus-visible{ outline:3px solid var(--rv-focus); outline-offset:4px; }
body.site-theme-revamp .bq-square .bq-arrow{ width:22px; height:22px; }
html[dir="rtl"] body.site-theme-revamp .bq-square .bq-arrow{ transform:scaleX(-1); }
html[dir="rtl"] body.site-theme-revamp .bq-square--ghost .bq-arrow{ transform:none; }

/* ── Cards ─────────────────────────────────────────────────────────────── */
body.site-theme-revamp .bq-card{
  display:flex; flex-direction:column; position:relative; overflow:hidden;
  padding:clamp(20px,2.2vw,28px); text-decoration:none; color:inherit;
}
body.site-theme-revamp .bq-card--r-card{ border-radius:var(--rv-radius-card); }
body.site-theme-revamp .bq-card--r-form{ border-radius:var(--rv-radius-form); }
body.site-theme-revamp .bq-card--plain{ background:var(--rv-white); border:1px solid var(--rv-line); }
body.site-theme-revamp .bq-card--soft { background:var(--rv-soft);  border:1px solid transparent; }
body.site-theme-revamp .bq-card--dark { background:var(--rv-wine-deep); color:var(--rv-white); border:0; }
body.site-theme-revamp .bq-card--dark :is(h2,h3,h4){ color:var(--rv-white); }
body.site-theme-revamp .bq-card--dark p{ color:var(--rv-on-dark); }
body.site-theme-revamp .bq-card--image{
  background:var(--bq-card-img) center/cover no-repeat, var(--rv-wine-deep);
  color:var(--rv-white); border:0; min-height:424px;
}
body.site-theme-revamp .bq-card--image :is(h2,h3,h4){ color:var(--rv-white); }
body.site-theme-revamp .bq-card--pin > :last-child{ margin-top:auto; margin-bottom:0; }

/* ── Stat card ─────────────────────────────────────────────────────────── */
body.site-theme-revamp .bq-stat{ min-height:322px; gap:24px; }
body.site-theme-revamp .bq-stat__value{
  font-family:var(--rv-font-numeral); font-weight:500; line-height:1;
  color:var(--rv-gold-text); margin:0; font-variant-numeric:tabular-nums;
}
body.site-theme-revamp .bq-stat--lg .bq-stat__value{ font-size:clamp(42px,4.4vw,var(--rv-num-lg)); }
body.site-theme-revamp .bq-stat--md .bq-stat__value{ font-size:clamp(36px,3.6vw,var(--rv-num-md)); }
body.site-theme-revamp .bq-stat--sm .bq-stat__value{ font-size:clamp(32px,3vw,var(--rv-num-sm)); }
body.site-theme-revamp .bq-stat__caption{
  margin:0; font-size:var(--rv-body-sm); line-height:1.6; color:var(--rv-muted);
}

/* ── Underline fields (dark form panel) ────────────────────────────────── */
body.site-theme-revamp .bq-field{ margin:0; }
body.site-theme-revamp .bq-field__input{
  width:100%; height:54px; padding:0 4px;
  background:transparent; border:0; border-bottom:1px solid var(--rv-field-rule);
  border-start-start-radius:12px; border-start-end-radius:12px;
  color:var(--rv-white); font:inherit; font-size:var(--rv-body-sm);
  transition:border-color .25s ease;
}
body.site-theme-revamp .bq-field__input--area{ height:auto; min-height:150px; padding-top:16px; resize:vertical; }
body.site-theme-revamp .bq-field__input::placeholder{ color:var(--rv-placeholder); opacity:1; }
body.site-theme-revamp .bq-field__input:focus{ outline:0; border-bottom-color:var(--rv-gold); }
body.site-theme-revamp .bq-field__input:focus-visible{ outline:2px solid var(--rv-focus); outline-offset:3px; }
body.site-theme-revamp .bq-field__error{
  margin:6px 0 0; font-size:var(--rv-caption); color:#ffc2d2;
}

/* ── Mono link ─────────────────────────────────────────────────────────── */
body.site-theme-revamp .bq-monolink{
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--rv-font-mono); font-size:var(--rv-mono); font-weight:500;
  letter-spacing:var(--rv-mono-ls); text-transform:uppercase;
  color:var(--rv-ink); text-decoration:none;
}
body.site-theme-revamp .bq-monolink .bq-arrow{ width:20px; height:20px; color:var(--rv-gold-text); }
html[dir="rtl"] body.site-theme-revamp .bq-monolink .bq-arrow{ transform:scaleX(-1); }
body.site-theme-revamp .bq-card--image .bq-monolink,
body.site-theme-revamp .bq-card--dark .bq-monolink,
body.site-theme-revamp .bq-section--dark .bq-monolink{ color:var(--rv-white); }
body.site-theme-revamp .bq-card--image .bq-monolink .bq-arrow{ color:var(--rv-white); }

/* ── Start a Conversation band ─────────────────────────────────────────── */
body.site-theme-revamp .bq-contact{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(28px,4vw,64px); align-items:start;
}
body.site-theme-revamp .bq-contact__note{ color:var(--rv-muted); margin-bottom:34px; }
body.site-theme-revamp .bq-contact__item{ margin-bottom:22px; }
body.site-theme-revamp .bq-contact__label{
  margin:0 0 2px; font-weight:600; font-size:var(--rv-body-sm); color:var(--rv-ink);
}
body.site-theme-revamp .bq-contact__item a{ color:var(--rv-muted); text-decoration:none; }
body.site-theme-revamp .bq-contact__item a:hover{ color:var(--rv-wine); }
body.site-theme-revamp .bq-contact__panel{
  background:var(--rv-wine-deep); border-radius:var(--rv-radius-form);
  padding:clamp(24px,3vw,40px);
}
body.site-theme-revamp .bq-contact__form{ display:grid; gap:15px; }
body.site-theme-revamp .bq-contact__form .bq-split{ margin-top:18px; }
body.site-theme-revamp .bq-contact__flash{
  margin:0 0 18px; padding:12px 16px; border-radius:10px;
  background:rgba(214,176,84,.14); color:var(--rv-white); font-size:var(--rv-body-sm);
}

@media (max-width:900px){
  body.site-theme-revamp .bq-contact{ grid-template-columns:1fr; }
}
@media (prefers-reduced-motion:reduce){
  body.site-theme-revamp :is(.bq-split,.bq-square,.bq-split__label,.bq-split__square){ transition:none; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Global chrome — two floating nav islands + the footer.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Navigation ────────────────────────────────────────────────────────── */
body.site-theme-revamp .bq-nav{ position:relative; z-index:100; }
body.site-theme-revamp .bq-nav__rail{
  max-width:var(--rv-max); margin-inline:auto;
  padding:32px clamp(20px,4vw,var(--rv-gutter));
  display:flex; align-items:center; justify-content:space-between; gap:16px;
}
/* Over the hero the islands float; on inner pages they cap the white shell. */
body.site-theme-revamp.is-home .bq-nav{ position:absolute; inset-inline:0; inset-block-start:0; }
body.site-theme-revamp.is-inner .bq-nav{
  background:var(--rv-white); max-width:var(--rv-max); margin-inline:auto;
}

body.site-theme-revamp .bq-nav__brand{
  display:inline-flex; align-items:center; justify-content:center;
  min-width:178px; height:46px; padding-inline:16px;
  border:1px solid rgba(0,0,0,.06); border-radius:var(--rv-radius-card);
  background:var(--rv-white); text-decoration:none;
}
body.site-theme-revamp.is-home .bq-nav__brand{ background:rgba(255,255,255,.92); }
/* The raster lock-up is already brand gold — no sepia filter needed. */
body.site-theme-revamp .bq-logo{ display:block; height:auto; max-width:100%; filter:none; }
body.site-theme-revamp .bq-logo--nav{ width:auto; max-height:26px; }
body.site-theme-revamp .bq-logo--footer{ width:auto; max-height:44px; }

body.site-theme-revamp .bq-nav__island{
  display:flex; align-items:stretch; gap:8px;
  height:46px; padding-inline-start:8px;
  border-radius:var(--rv-radius-card);
  background:var(--rv-nav-inner);
}
body.site-theme-revamp.is-home .bq-nav__island{ background:var(--rv-nav); }
body.site-theme-revamp .bq-nav__list{
  display:flex; align-items:stretch; gap:8px; margin:0; padding:0; list-style:none;
}
body.site-theme-revamp .bq-nav__list li{ display:flex; }
body.site-theme-revamp .bq-nav__link{
  display:flex; align-items:center; padding:0 18px;
  font-family:var(--rv-font-mono); font-size:var(--rv-mono-nav); font-weight:500;
  letter-spacing:.04em; text-transform:uppercase; white-space:nowrap;
  color:var(--rv-ink); text-decoration:none; border-radius:9px;
  transition:background .2s ease;
}
body.site-theme-revamp .bq-nav__link:hover{ background:rgba(34,47,48,.07); }
/* The design marks no active state — a wine fill would read as a second CTA. */
body.site-theme-revamp .bq-nav__link.is-current{ background:none; text-decoration:underline; text-underline-offset:5px; }
body.site-theme-revamp .bq-nav__lang{
  display:flex; align-items:center; padding:0 10px;
  font-family:var(--rv-font-mono); font-size:var(--rv-mono); font-weight:600;
  letter-spacing:.06em; color:var(--rv-ink); text-decoration:none; border-radius:9px;
}
body.site-theme-revamp .bq-nav__lang:hover{ background:rgba(34,47,48,.07); }
body.site-theme-revamp .bq-nav__cta{
  display:flex; align-items:center; justify-content:center;
  min-width:128px; padding-inline:20px;
  background:var(--rv-wine); color:var(--rv-white); text-decoration:none;
  border-radius:var(--rv-radius-card);
  font-family:var(--rv-font-mono); font-size:var(--rv-mono-nav); font-weight:600;
  letter-spacing:.04em; text-transform:uppercase; white-space:nowrap;
  transition:background .2s ease;
}
body.site-theme-revamp .bq-nav__cta:hover{ background:#500722; }
body.site-theme-revamp .bq-nav__link:focus-visible,
body.site-theme-revamp .bq-nav__cta:focus-visible,
body.site-theme-revamp .bq-nav__lang:focus-visible{ outline:3px solid var(--rv-focus); outline-offset:3px; }

body.site-theme-revamp .bq-nav__burger{
  display:none; width:46px; height:46px; padding:0; gap:5px;
  flex-direction:column; align-items:center; justify-content:center;
  border:1px solid rgba(0,0,0,.06); border-radius:var(--rv-radius-card);
  background:var(--rv-white); cursor:pointer;
}
body.site-theme-revamp .bq-nav__burger span{ display:block; width:18px; height:1.5px; background:var(--rv-ink); }
body.site-theme-revamp .bq-nav__panel{ background:var(--rv-wine-deep); color:var(--rv-white); }
body.site-theme-revamp .bq-nav__panel-list{ list-style:none; margin:0 0 28px; padding:0; display:grid; gap:4px; }
body.site-theme-revamp .bq-nav__panel-list a{
  display:block; padding:12px 0; color:var(--rv-white); text-decoration:none;
  font-family:var(--rv-font-mono); font-size:var(--rv-mono-nav);
  letter-spacing:.04em; text-transform:uppercase;
  border-bottom:1px solid var(--rv-rule-dark);
}
body.site-theme-revamp .bq-nav__panel-foot{ display:flex; align-items:center; gap:10px; }
body.site-theme-revamp .bq-nav__panel-foot .bq-nav__lang{ color:var(--rv-white); border:1px solid var(--rv-ctl-dark-b); height:46px; }

@media (max-width:991.98px){
  body.site-theme-revamp .bq-nav__island{ display:none; }
  body.site-theme-revamp .bq-nav__burger{ display:flex; }
  body.site-theme-revamp .bq-nav__rail{ padding-block:20px; }
}

/* ── Footer ────────────────────────────────────────────────────────────── */
body.site-theme-revamp .bq-footer{
  position:relative; background:var(--rv-wine-deep); color:var(--rv-white);
  padding-block:clamp(48px,6vw,74px);
}
body.site-theme-revamp .bq-footer[style*="--bq-silk"]{
  background-image:var(--bq-grain),var(--bq-silk);
  background-size:180px,cover; background-repeat:repeat,no-repeat; background-position:center,center;
}
body.site-theme-revamp .bq-footer__rail{
  position:relative;
  max-width:var(--rv-max); margin-inline:auto;
  padding-inline:clamp(20px,4vw,var(--rv-gutter));
}
body.site-theme-revamp .bq-footer__top{
  position:absolute; inset-block-start:0; inset-inline-end:clamp(20px,4vw,var(--rv-gutter));
  border-radius:var(--rv-radius-card);
}
body.site-theme-revamp .bq-footer__grid{
  display:grid; grid-template-columns:minmax(0,1.7fr) minmax(0,.65fr) minmax(0,.65fr);
  gap:clamp(28px,4vw,56px); padding-block:clamp(24px,3vw,40px) clamp(40px,6vw,88px);
}
body.site-theme-revamp .bq-footer__brand{ display:grid; gap:26px; align-content:start; }
body.site-theme-revamp .bq-footer__statement{
  margin:0; max-width:620px;
  /* Beats the global heading weight — the design sets this at 400. */
  font-weight:400; font-size:clamp(20px,2.1vw,30px); line-height:1.45; color:var(--rv-white);
}
body.site-theme-revamp .bq-footer__col{ padding-inline-start:24px; border-inline-start:1px solid var(--rv-line-dark); }
body.site-theme-revamp .bq-footer__label{
  margin:0 0 18px; font-family:var(--rv-font-mono); font-size:var(--rv-mono);
  letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.7);
}
body.site-theme-revamp .bq-footer__col ul{ list-style:none; margin:0; padding:0; display:grid; gap:12px; }
body.site-theme-revamp .bq-footer__col a{ color:var(--rv-white); text-decoration:none; font-size:16px; }
body.site-theme-revamp .bq-footer__col a:hover{ color:var(--rv-gold); }
body.site-theme-revamp .bq-footer__legal{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px;
}
body.site-theme-revamp .bq-footer__legal p{
  margin:0; font-family:var(--rv-font-mono); font-size:var(--rv-mono);
  letter-spacing:.05em; text-transform:uppercase; color:rgba(255,255,255,.7);
}
body.site-theme-revamp .bq-footer__legal a{ color:inherit; text-decoration:none; }
body.site-theme-revamp .bq-footer__legal a:hover{ color:var(--rv-gold); }

@media (max-width:900px){
  body.site-theme-revamp .bq-footer__grid{ grid-template-columns:1fr 1fr; }
  body.site-theme-revamp .bq-footer__brand{ grid-column:1 / -1; }
}
@media (max-width:560px){
  body.site-theme-revamp .bq-footer__grid{ grid-template-columns:1fr; }
  body.site-theme-revamp .bq-footer__col{ padding-inline-start:0; border-inline-start:0; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Contact page — flat four-field form; the three-step wizard is gone.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .rv-contact{ background:var(--rv-white); }
body.site-theme-revamp .rv-contact__rail{
  max-width:var(--rv-max); margin-inline:auto;
  padding:clamp(48px,7vw,94px) clamp(20px,4vw,var(--rv-gutter)) clamp(44px,6vw,78px);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,655px);
  gap:clamp(32px,6vw,97px); align-items:start;
}
body.site-theme-revamp .rv-contact__title{
  margin:0 0 22px; color:var(--rv-ink-max); font-weight:700;
  font-size:clamp(2.1rem,5vw,72px); line-height:1.18; letter-spacing:-.02em;
}
body.site-theme-revamp .rv-contact__intro{
  margin:0 0 46px; max-width:500px; color:var(--rv-muted);
  font-size:clamp(17px,1.6vw,22px); line-height:1.32;
}
body.site-theme-revamp .rv-contact__items{ display:grid; gap:30px; }
body.site-theme-revamp .rv-contact__label{
  margin:0 0 6px; font-weight:600; font-size:var(--rv-body-sm); color:var(--rv-ink);
}
body.site-theme-revamp .rv-contact__value{
  margin:0; color:var(--rv-muted); text-decoration:none; font-size:var(--rv-body);
}
body.site-theme-revamp a.rv-contact__value:hover{ color:var(--rv-wine); }

body.site-theme-revamp .rv-contact__panel{
  background:var(--rv-wine-deep); border-radius:var(--rv-radius-card);
  padding:clamp(22px,2.6vw,32px); color:var(--rv-white);
}
body.site-theme-revamp .rv-contact__panel[style*="--bq-silk"]{
  background-image:var(--bq-grain),var(--bq-silk);
  background-size:180px,cover; background-repeat:repeat,no-repeat; background-position:center,center;
}
body.site-theme-revamp .rv-contact__form{ display:grid; gap:15px; }
body.site-theme-revamp .rv-contact__form .bq-split{ margin-top:20px; }
body.site-theme-revamp .rv-contact__flash{
  margin:0 0 18px; padding:12px 16px; border-radius:10px;
  background:rgba(214,176,84,.16); color:var(--rv-white); font-size:var(--rv-body-sm);
}
body.site-theme-revamp .rv-contact__flash--error{ background:rgba(255,120,150,.16); }
body.site-theme-revamp .rv-contact__flash ul{ margin:0; padding-inline-start:1.1em; }

@media (max-width:900px){
  body.site-theme-revamp .rv-contact__rail{ grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════
   Home page — the eight sections of the approved design.
   ═══════════════════════════════════════════════════════════════════════ */

/* 1 · Hero — silk render, content bottom-aligned in two columns */
body.site-theme-revamp .rv-hero{
  position:relative; min-height:min(910px,100vh); display:flex; align-items:flex-end;
  color:var(--rv-white); overflow:hidden;
  /* Flat, sampled from the plate's darkest lobe: the swap to the silk is then
     invisible instead of a magenta placeholder snapping to a photograph. */
  background:var(--rv-black);
}
body.site-theme-revamp .rv-hero[style*="--bq-silk"]{
  background-image:var(--bq-grain),var(--bq-silk);
  background-size:180px,cover;
  background-position:center,center top;
  background-repeat:repeat,no-repeat;
}
/* Retina plate. Falls back silently where image-set is unsupported. */
@media (min-resolution:1.5dppx){
  body.site-theme-revamp .rv-hero[style*="--bq-silk"]{
    background-image:var(--bq-grain),image-set(var(--bq-silk-2x) 2x, var(--bq-silk) 1x);
  }
}
body.site-theme-revamp .rv-hero__rail{
  position:relative; z-index:2; width:100%;
  max-width:var(--rv-max); margin-inline:auto;
  padding:clamp(150px,17vw,190px) clamp(20px,4vw,var(--rv-gutter)) clamp(56px,7vw,90px);
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,630px);
  gap:clamp(28px,5vw,72px); align-items:end;
}
body.site-theme-revamp .rv-hero__title{
  margin:0; color:var(--rv-white); font-weight:600;
  font-size:clamp(2.4rem,5.3vw,var(--rv-h1-home)); line-height:var(--rv-h1-home-lh);
  letter-spacing:-.02em;
}
body.site-theme-revamp .rv-hero__aside{ display:grid; gap:26px; justify-items:start; }
body.site-theme-revamp .rv-hero__intro{
  margin:0; color:rgba(255,255,255,.92); font-size:clamp(15px,1.35vw,19px); line-height:1.47;
}

/* 2 · Statement with gold-highlighted words */
body.site-theme-revamp .rv-statement{
  max-width:980px; margin:0 0 30px;
  font-weight:500; font-size:clamp(20px,2.1vw,30px); line-height:1.57; color:var(--rv-ink);
}
body.site-theme-revamp .rv-hl{ color:var(--rv-gold-text); }

/* 3 · Stat cards */
body.site-theme-revamp .rv-stats{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--rv-gap);
}
@media (max-width:1100px){ body.site-theme-revamp .rv-stats{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ body.site-theme-revamp .rv-stats{ grid-template-columns:1fr; } }

/* 4 · Dark numbered practice band */
body.site-theme-revamp .rv-band__grid{
  display:grid; grid-template-columns:minmax(0,560px) minmax(0,1fr);
  gap:clamp(30px,5vw,64px); align-items:start;
}
body.site-theme-revamp .rv-band__aside{ display:grid; gap:30px; justify-items:start; }
body.site-theme-revamp .rv-band__aside h2{
  margin:0; font-size:clamp(20px,2.2vw,27px); line-height:1.4; font-weight:600;
}
body.site-theme-revamp .rv-band__list{ list-style:none; margin:0; padding:0; }
body.site-theme-revamp .rv-band__row{ border-bottom:1px solid var(--rv-rule-dark); }
body.site-theme-revamp .rv-band__row a{
  display:grid; grid-template-columns:1fr; gap:8px;
  padding-block:22px; text-decoration:none; color:inherit;
}
body.site-theme-revamp .rv-band__row h3{
  margin:0; color:var(--rv-white); font-weight:600; font-size:clamp(17px,1.7vw,23px);
}
body.site-theme-revamp .rv-band__num{ font-variant-numeric:tabular-nums; }
body.site-theme-revamp .rv-band__row p{
  margin:0; color:rgba(255,255,255,.8); font-size:var(--rv-body-sm); line-height:1.5;
}
body.site-theme-revamp .rv-band__row .bq-arrow{ width:20px; height:20px; color:var(--rv-gold); }
html[dir="rtl"] body.site-theme-revamp .rv-band__row .bq-arrow{ transform:scaleX(-1); }

body.site-theme-revamp .rv-band__more{ margin-top:26px; justify-self:center; grid-column:2; }
@media (max-width:900px){
  body.site-theme-revamp .rv-band__grid{ grid-template-columns:1fr; }
  body.site-theme-revamp .rv-band__more{ grid-column:1; }
}

/* 5 · Our Approach */
body.site-theme-revamp .rv-approach__head{ display:grid; gap:14px; justify-items:start; margin-bottom:clamp(28px,4vw,52px); }
body.site-theme-revamp .rv-approach__head h2{ margin:0; }
body.site-theme-revamp .rv-approach__lead{ margin:0; font-weight:600; font-size:clamp(16px,1.5vw,19px); color:var(--rv-ink); }
body.site-theme-revamp .rv-approach__text{ margin:0 0 12px; max-width:1180px; color:var(--rv-muted); }
body.site-theme-revamp .rv-approach__grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--rv-gap);
}
body.site-theme-revamp .rv-approach__card{ min-height:420px; gap:40px; }
body.site-theme-revamp .rv-approach__card h3{ margin:0 0 10px; }
body.site-theme-revamp .rv-approach__card p{ margin:0; font-size:var(--rv-body-sm); line-height:1.55; }
@media (max-width:900px){ body.site-theme-revamp .rv-approach__grid{ grid-template-columns:1fr; } }

/* Mono eyebrow used for 01. / dates */
body.site-theme-revamp .rv-eyebrow{
  margin:0; font-family:var(--rv-font-mono); font-size:var(--rv-mono); font-weight:500;
  letter-spacing:var(--rv-mono-ls); text-transform:uppercase; color:var(--rv-gold-text);
}

/* 6 · Legal Insights — the only centre-aligned head in the design */
body.site-theme-revamp .rv-insights__head{
  display:grid; justify-items:center; gap:12px; text-align:center;
  margin-bottom:clamp(28px,4vw,50px);
}
body.site-theme-revamp .rv-insights__head h2{ margin:0; }
body.site-theme-revamp .rv-insights__head p{ margin:0 0 10px; color:var(--rv-muted); }
body.site-theme-revamp .rv-insights__grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:var(--rv-gap);
}
body.site-theme-revamp .rv-insight{ min-height:424px; gap:26px; }
body.site-theme-revamp .rv-insight h3{ margin:0; font-size:clamp(16px,1.4vw,19px); line-height:1.37; }
body.site-theme-revamp .rv-insight.bq-card--image{ justify-content:space-between; }
body.site-theme-revamp .rv-insight.bq-card--image::before{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(20,4,11,.62),rgba(20,4,11,.12) 45%,rgba(20,4,11,.55));
}
body.site-theme-revamp .rv-insight.bq-card--image > *{ position:relative; z-index:1; }
body.site-theme-revamp .rv-insight.bq-card--image .rv-eyebrow{ color:var(--rv-white); }
@media (max-width:1100px){ body.site-theme-revamp .rv-insights__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ body.site-theme-revamp .rv-insights__grid{ grid-template-columns:1fr; } }

/* ═══════════════════════════════════════════════════════════════════════
   Practice areas — directory (practice-alt) and detail.
   ═══════════════════════════════════════════════════════════════════════ */

/* ── Directory head ────────────────────────────────────────────────────── */
body.site-theme-revamp .rv-dir__head{ margin-bottom:clamp(28px,4vw,46px); }
body.site-theme-revamp .rv-dir__head h1{
  margin:0 0 16px; font-size:clamp(2rem,4.5vw,64px); line-height:1.1; font-weight:700;
}
body.site-theme-revamp .rv-dir__head > p{ margin:0 0 30px; max-width:570px; color:var(--rv-muted); font-size:18px; line-height:1.61; }
body.site-theme-revamp .rv-dir__tools{
  display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:16px;
}
body.site-theme-revamp .rv-dir__search{
  display:flex; align-items:center; gap:10px;
  width:min(475px,100%); height:48px; padding-inline:16px;
  background:#f6f4f3; border:1px solid #f0ede8; border-radius:var(--rv-radius-card);
  color:var(--rv-wine);
}
body.site-theme-revamp .rv-dir__search input{
  flex:1; min-width:0; border:0; background:none; color:var(--rv-ink);
  font:inherit; font-size:var(--rv-body-sm);
}
body.site-theme-revamp .rv-dir__search input:focus{ outline:0; }
body.site-theme-revamp .rv-dir__search:focus-within{ border-color:rgba(105,10,46,.35); }
body.site-theme-revamp .rv-dir__empty{ margin-top:26px; color:var(--rv-muted); }

/* ── Directory grid: uniform 231px rows, no icons, no hover lift ───────── */
body.site-theme-revamp .rv-dir__grid{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--rv-gap);
}
body.site-theme-revamp .rv-tile{
  display:flex; flex-direction:column; min-height:231px;
  padding:18px; border:1px solid var(--rv-line); border-radius:var(--rv-radius-card);
  background:var(--rv-white); color:inherit; text-decoration:none;
}
body.site-theme-revamp .rv-tile--featured{ background:var(--rv-soft); border-color:#f1eee9; }
body.site-theme-revamp .rv-tile__body{ margin-top:auto; }
body.site-theme-revamp .rv-tile h2{
  margin:0 0 8px; font-size:clamp(17px,1.6vw,22px); line-height:1.25; font-weight:700;
}
body.site-theme-revamp .rv-tile p{ margin:0; font-size:15px; line-height:1.53; color:var(--rv-muted); }
body.site-theme-revamp .rv-tile__link{ margin-top:14px; }
body.site-theme-revamp .rv-tile:hover{ border-color:rgba(105,10,46,.28); }
@media (max-width:1000px){ body.site-theme-revamp .rv-dir__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:620px){ body.site-theme-revamp .rv-dir__grid{ grid-template-columns:1fr; } }

/* ── Detail: masthead + media band ─────────────────────────────────────── */
body.site-theme-revamp .rv-pd__mast{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(24px,4vw,56px); align-items:start;
}
body.site-theme-revamp .rv-pd__mast h1{
  margin:0; font-size:clamp(2rem,4.4vw,62px); line-height:1.1; font-weight:700; color:var(--rv-ink-max);
}
body.site-theme-revamp .rv-pd__mast p{ margin:0; color:var(--rv-muted); font-size:19px; line-height:1.47; }
body.site-theme-revamp .rv-pd__band{ max-width:var(--rv-max); margin-inline:auto; }
body.site-theme-revamp .rv-pd__band img{
  display:block; width:100%; height:clamp(220px,32vw,463px); object-fit:cover;
  border-radius:var(--rv-radius-band) var(--rv-radius-band) 0 0;
}

/* ── Detail body: bare text + dark rail ────────────────────────────────── */
body.site-theme-revamp .rv-pd{ background:var(--rv-white); }
body.site-theme-revamp .rv-pd__grid{
  max-width:var(--rv-max); margin-inline:auto;
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,529px); align-items:start;
}
body.site-theme-revamp .rv-pd__main{
  padding:clamp(40px,5vw,72px) clamp(20px,4vw,var(--rv-gutter));
}
body.site-theme-revamp .rv-pd__main h2{ margin:0 0 18px; }
body.site-theme-revamp .rv-pd__main p{ margin:0 0 16px; font-size:16px; line-height:1.81; color:#2a2a2a; }
body.site-theme-revamp .rv-pd__subhead{ margin-top:38px !important; }
body.site-theme-revamp .rv-pd__items{ list-style:none; margin:0; padding:0; display:grid; gap:21px; }
body.site-theme-revamp .rv-pd__items li{
  display:flex; align-items:center; gap:14px; min-height:56px; padding:0 18px;
  border:1px solid #eae7e3; border-radius:14px; background:var(--rv-white);
}
body.site-theme-revamp .rv-pd__items li:first-child{ background:var(--rv-list-active); border-color:transparent; }
body.site-theme-revamp .rv-pd__items strong{ font-size:15px; font-weight:700; }

body.site-theme-revamp .rv-pd__rail{
  position:relative; align-self:stretch;
  padding:clamp(40px,6vw,114px) clamp(20px,3vw,40px) clamp(60px,10vw,330px);
  background:#16050f;
}
/* cover on a stretch rail scales the fold out of existence on long pages —
   pin the plate at natural width and dissolve its tail into the declared
   fallback so the handoff is seamless at any height */
body.site-theme-revamp .rv-pd__rail[style*="--bq-silk"]{
  background-image:var(--bq-grain),
    linear-gradient(180deg,transparent 0 60%,var(--rv-wine-deep) 96%),
    var(--bq-silk);
  background-size:180px,100% 100%,100% auto;
  background-repeat:repeat,no-repeat,no-repeat;
  background-position:center,center,center top;
}
/* the plate is lit from its top-right; in Arabic the rail sits on the other
   side, so mirror the MATERIAL and un-flip the card riding on it */
html[dir="rtl"] body.site-theme-revamp .rv-pd__rail[style*="--bq-silk"]{ transform:scaleX(-1); }
html[dir="rtl"] body.site-theme-revamp .rv-pd__rail[style*="--bq-silk"] .rv-pd__card{ transform:scaleX(-1); }
body.site-theme-revamp .rv-pd__card{
  position:relative; z-index:1;
  background:var(--rv-wine-deep); border-radius:22px;
  padding:clamp(22px,2.4vw,30px); color:var(--rv-white);
}
body.site-theme-revamp .rv-pd__card h2{ margin:0 0 20px; color:var(--rv-white); font-size:22px; }
body.site-theme-revamp .rv-pd__card form{ display:grid; gap:14px; }
body.site-theme-revamp .rv-pd__card .bq-split{ margin-top:18px; }
body.site-theme-revamp .rv-pd__flash{
  margin:0 0 14px; padding:11px 14px; border-radius:10px;
  background:rgba(214,176,84,.16); font-size:var(--rv-body-sm);
}
body.site-theme-revamp .rv-pd__flash--error{ background:rgba(255,120,150,.16); }
body.site-theme-revamp .rv-pd__flash ul{ margin:0; padding-inline-start:1.1em; }

/* ── Your Key Contact — a single partner ───────────────────────────────── */
body.site-theme-revamp .rv-pd__contact{
  display:grid; grid-template-columns:346px minmax(0,1fr); gap:clamp(24px,4vw,52px); align-items:start;
}
body.site-theme-revamp .rv-pd__contact img{
  width:346px; max-width:100%; height:352px; object-fit:cover; border-radius:10px;
}
body.site-theme-revamp .rv-pd__contact h2{ margin:6px 0 4px; font-size:22px; font-weight:700; }
body.site-theme-revamp .rv-pd__role{ margin:0 0 16px; font-size:15px; font-weight:700; color:var(--rv-wine); }
body.site-theme-revamp .rv-pd__contact p{ color:var(--rv-muted); }
body.site-theme-revamp .rv-pd__contact .bq-split{ margin-top:20px; }

@media (max-width:1000px){
  body.site-theme-revamp .rv-pd__grid{ grid-template-columns:1fr; }
  body.site-theme-revamp .rv-pd__mast{ grid-template-columns:1fr; }
  body.site-theme-revamp .rv-pd__contact{ grid-template-columns:1fr; }
  body.site-theme-revamp .rv-pd__contact img{ width:100%; height:auto; aspect-ratio:346/352; }
}

/* The practice filter toggles the [hidden] attribute. Author display rules
   (.rv-tile is display:flex) outrank the UA sheet, so restate it here. */
body.site-theme-revamp [hidden]{ display:none !important; }

/* Dark surfaces keep the full-strength gold — it is 8.8:1 there, already AA. */
body.site-theme-revamp :is(.rv-hero,.bq-section--dark,.bq-card--dark,.bq-card--image,.bq-footer,.rv-pd__rail,.rv-pd__card,.bq-contact__panel,.rv-contact__panel){
  --rv-gold-text:var(--rv-gold);
  --rv-focus:var(--rv-gold);
}

/* ═══════════════════════════════════════════════════════════════════════
   Team — roster and profile.
   ═══════════════════════════════════════════════════════════════════════ */

/* Hero + feature */
body.site-theme-revamp .rv-team__hero{
  display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(24px,4vw,64px); align-items:end;
}
body.site-theme-revamp .rv-team__hero h1{
  margin:0; font-size:clamp(2rem,4.4vw,62px); line-height:1.16; font-weight:700; color:var(--rv-ink-max);
}
body.site-theme-revamp .rv-team__hero p{ margin:0 0 34px; color:var(--rv-muted); font-size:18px; line-height:1.61; }
body.site-theme-revamp .rv-team__feature{
  display:grid; grid-template-columns:minmax(0,629px) minmax(0,1fr);
  gap:clamp(24px,4vw,58px); align-items:center;
}
body.site-theme-revamp .rv-team__feature img{
  width:100%; height:clamp(260px,34vw,480px); object-fit:cover; border-radius:8px;
}
body.site-theme-revamp .rv-team__feature h2{ margin:0 0 14px; font-size:clamp(1.4rem,2.2vw,30px); }
body.site-theme-revamp .rv-team__feature p{ margin:0 0 26px; color:var(--rv-muted); line-height:1.63; }

/* Roster head + grid */
body.site-theme-revamp .rv-team__head{ margin-bottom:clamp(28px,4vw,48px); }
body.site-theme-revamp .rv-team__head h2{ margin:0 0 10px; font-size:clamp(1.4rem,2.2vw,30px); }
body.site-theme-revamp .rv-team__head p{ margin:0; max-width:690px; color:var(--rv-muted); }
body.site-theme-revamp .rv-team__grid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
  column-gap:34px; row-gap:70px;
}
/* No card, no border, no background — the design puts the text on the page. */
body.site-theme-revamp .rv-person{ display:block; text-decoration:none; color:inherit; }
body.site-theme-revamp .rv-person img{
  width:100%; aspect-ratio:310/295; object-fit:cover;
  border-radius:10px !important; border:0; margin-bottom:18px;
}
body.site-theme-revamp .rv-person h3{ margin:0 0 4px; font-size:20px; font-weight:700; color:var(--rv-ink); }
body.site-theme-revamp .rv-person__role{ margin:0 0 10px; font-size:15px; color:var(--rv-wine); }
body.site-theme-revamp .rv-person__bio{ margin:0; font-size:14px; line-height:1.57; color:var(--rv-muted); }
@media (max-width:1100px){ body.site-theme-revamp .rv-team__grid{ grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:820px){
  body.site-theme-revamp .rv-team__grid{ grid-template-columns:repeat(2,minmax(0,1fr)); row-gap:44px; }
  body.site-theme-revamp .rv-team__hero,
  body.site-theme-revamp .rv-team__feature{ grid-template-columns:1fr; }
}
@media (max-width:480px){ body.site-theme-revamp .rv-team__grid{ grid-template-columns:1fr; } }

/* ── Profile ───────────────────────────────────────────────────────────── */
body.site-theme-revamp .rv-profile{
  display:grid; grid-template-columns:346px minmax(0,1fr); gap:25px; align-items:start;
}
body.site-theme-revamp .rv-profile__portrait{
  width:346px; max-width:100%; height:477px; object-fit:cover;
  /* beats bq-ui.css's bordered avatar and the global main img radius */
  border:0 !important; border-radius:8px !important;
}
body.site-theme-revamp .rv-profile__card{
  margin-top:28px; padding:24px 20px;
  background:var(--rv-soft); border-radius:14px;
}
body.site-theme-revamp .rv-profile__card a{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  min-height:40px; color:var(--rv-ink); text-decoration:none; font-size:15px;
  border-bottom:1px solid var(--rv-line);
}
body.site-theme-revamp .rv-profile__card a:last-child{ border-bottom:0; }
body.site-theme-revamp .rv-profile__card a:hover{ color:var(--rv-wine); }
body.site-theme-revamp .rv-profile__view{
  font-family:var(--rv-font-mono); font-size:var(--rv-mono); color:var(--rv-wine);
}
body.site-theme-revamp .rv-profile__body h1{
  margin:0 0 6px; font-size:clamp(1.6rem,2.6vw,34px); font-weight:700; color:var(--rv-ink);
}
body.site-theme-revamp .rv-profile__role{
  margin:0 0 26px; font-size:15px; font-weight:700; color:var(--rv-wine);
}
body.site-theme-revamp .rv-profile__body h2{ margin:38px 0 16px; font-size:clamp(1.2rem,1.8vw,24px); }
body.site-theme-revamp .rv-profile__body p{ margin:0 0 16px; line-height:1.75; color:#2a2a2a; }

/* Expertise chips — the one place a true pill radius is correct */
body.site-theme-revamp .rv-chips{
  list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px;
}
body.site-theme-revamp .rv-chips li{
  display:inline-flex; align-items:center; height:28px; padding-inline:14px;
  border:1px solid var(--rv-wine); border-radius:var(--rv-radius-pill);
  background:#f8eef1; color:var(--rv-wine); font-size:13.5px;
}
body.site-theme-revamp .rv-profile__stats{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--rv-gap); margin-top:30px;
}
body.site-theme-revamp .rv-profile__stat{ min-height:146px; gap:12px; border-radius:var(--rv-radius-form); }
body.site-theme-revamp .rv-profile__edu{
  list-style:none; margin:0; padding:24px;
  background:var(--rv-soft); border-radius:var(--rv-radius-form);
}
body.site-theme-revamp .rv-profile__edu li{
  display:flex; align-items:center; min-height:48px;
  border-bottom:1px solid var(--rv-line); font-size:15px;
}
body.site-theme-revamp .rv-profile__edu li:last-child{ border-bottom:0; }
@media (max-width:900px){
  body.site-theme-revamp .rv-profile{ grid-template-columns:1fr; }
  body.site-theme-revamp .rv-profile__portrait{ width:100%; height:auto; aspect-ratio:346/477; }
  body.site-theme-revamp .rv-profile__stats{ grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════════════════
   About — seven sections.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .rv-about__intro{
  display:grid; grid-template-columns:minmax(0,627px) minmax(0,1fr);
  gap:clamp(24px,4vw,58px); align-items:start;
}
body.site-theme-revamp .rv-about__intro img{
  width:100%; height:clamp(300px,42vw,647px); object-fit:cover; border-radius:var(--rv-radius-form);
}
body.site-theme-revamp .rv-about__intro h2{ margin:0 0 16px; font-size:clamp(1.4rem,2.3vw,32px); }
body.site-theme-revamp .rv-about__intro p{ margin:0 0 16px; color:var(--rv-muted); line-height:1.81; }
body.site-theme-revamp .rv-about__stats{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; margin-top:34px;
}
body.site-theme-revamp .rv-about__stat{ min-height:220px; gap:16px; border-radius:14px; }

body.site-theme-revamp .rv-about__apart-title{
  margin:0 0 clamp(26px,4vw,48px); text-align:center; font-size:clamp(1.5rem,2.6vw,34px);
}
body.site-theme-revamp .rv-about__apart{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; align-items:start;
}
body.site-theme-revamp .rv-about__apart-col{ display:grid; gap:18px; }
body.site-theme-revamp .rv-about__apart-card{ min-height:155px; padding:24px; }
body.site-theme-revamp .rv-about__apart-card h3{ margin:0 0 8px; font-size:17px; }
body.site-theme-revamp .rv-about__apart-card p{ margin:0; font-size:14.5px; line-height:1.55; color:var(--rv-muted); }
body.site-theme-revamp .rv-about__apart > img{
  width:100%; height:505px; object-fit:cover; border-radius:14px;
}
@media (max-width:900px){
  body.site-theme-revamp .rv-about__intro,
  body.site-theme-revamp .rv-about__apart{ grid-template-columns:1fr; }
  body.site-theme-revamp .rv-about__apart > img{ height:clamp(220px,40vw,360px); order:-1; }
  body.site-theme-revamp .rv-about__stats{ grid-template-columns:1fr; }
}

/* Team band + partner selector */
body.site-theme-revamp .rv-about__team-head{
  display:grid; gap:14px; justify-items:start; margin-bottom:clamp(28px,4vw,52px); max-width:760px;
}
body.site-theme-revamp .rv-about__team-head h2{ margin:0; font-size:clamp(1.5rem,2.5vw,34px); }
body.site-theme-revamp .rv-about__team-head p{ margin:0 0 8px; }
body.site-theme-revamp .rv-partners{
  display:grid; grid-template-columns:344px minmax(0,1fr); gap:clamp(24px,4vw,48px); align-items:start;
}
body.site-theme-revamp .rv-partners__portrait figure{ margin:0; }
body.site-theme-revamp .rv-partners__portrait img{
  width:100%; height:330px; object-fit:cover; border-radius:12px;
}
body.site-theme-revamp .rv-partners__portrait figcaption{
  margin-top:12px; color:var(--rv-on-dark); font-size:var(--rv-body-sm);
}
body.site-theme-revamp .rv-partners__list{ list-style:none; margin:0; padding:0; display:grid; gap:8px; }
body.site-theme-revamp .rv-partners__row{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-height:76px; padding:0 14px 0 22px;
  background:none; border:0; border-radius:10px; cursor:pointer;
  color:var(--rv-white); text-align:start;
  transition:background .2s ease;
}
html[dir="rtl"] body.site-theme-revamp .rv-partners__row{ padding:0 22px 0 14px; }
body.site-theme-revamp .rv-partners__row.is-active{ background:var(--rv-wine); }
body.site-theme-revamp .rv-partners__row:hover{ background:rgba(255,255,255,.06); }
body.site-theme-revamp .rv-partners__row.is-active:hover{ background:var(--rv-wine); }
body.site-theme-revamp .rv-partners__row:focus-visible{ outline:3px solid var(--rv-focus); outline-offset:2px; }
body.site-theme-revamp .rv-partners__meta{ display:grid; gap:2px; }
body.site-theme-revamp .rv-partners__meta strong{ font-size:20px; font-weight:700; color:var(--rv-white); }
body.site-theme-revamp .rv-partners__meta em{ font-style:normal; font-size:14px; color:var(--rv-on-dark); }
body.site-theme-revamp .rv-partners__list > li{ position:relative; }
body.site-theme-revamp .rv-partners__row{ padding-inline-end:190px; }
body.site-theme-revamp .rv-partners__go{
  position:absolute; inset-inline-end:14px; inset-block-start:50%; translate:0 -50%;
  color:var(--rv-white); text-decoration:none;
  display:flex; align-items:center; gap:12px; flex:0 0 auto;
  font-family:var(--rv-font-mono); font-size:var(--rv-mono); letter-spacing:var(--rv-mono-ls);
  text-transform:uppercase; opacity:0; transition:opacity .2s ease;
}
body.site-theme-revamp .rv-partners__row.is-active + .rv-partners__go{ opacity:1; }
body.site-theme-revamp .rv-partners__go .bq-square{ width:46px; height:46px; }
@media (max-width:900px){
  body.site-theme-revamp .rv-partners{ grid-template-columns:1fr; }
  body.site-theme-revamp .rv-partners__go{ opacity:1; }   /* on touch it is now a real link */
}

/* Client quotes */
body.site-theme-revamp .rv-about__clients-head{
  display:grid; gap:18px; justify-items:start; margin-bottom:clamp(26px,4vw,44px);
}
body.site-theme-revamp .rv-about__clients-head h2{ margin:0; font-size:clamp(1.5rem,2.5vw,34px); }
body.site-theme-revamp .rv-quotes{
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px;
}
body.site-theme-revamp .rv-quote{ min-height:330px; gap:clamp(40px,8vw,130px); }
body.site-theme-revamp .rv-quote__stars{ margin:0; color:var(--rv-gold); font-size:17px; letter-spacing:2px; }
body.site-theme-revamp .rv-quote__text{ margin:0; font-size:15.5px; line-height:1.61; }
body.site-theme-revamp .rv-quote hr{ margin:18px 0 14px; border:0; border-top:1px solid var(--rv-line); }
body.site-theme-revamp .rv-quote.bq-card--dark hr{ border-top-color:var(--rv-rule-dark); }
body.site-theme-revamp .rv-quote__by{ margin:0; font-size:14.5px; font-weight:700; }
@media (max-width:900px){ body.site-theme-revamp .rv-quotes{ grid-template-columns:1fr; } }

/* ═══════════════════════════════════════════════════════════════════════
   Insights — index and article.
   ═══════════════════════════════════════════════════════════════════════ */

/* Topic chips — true pills, the second and last place they belong */
body.site-theme-revamp .rv-topics{
  list-style:none; margin:0 0 clamp(24px,3vw,38px); padding:0;
  display:flex; flex-wrap:wrap; gap:13px;
}
body.site-theme-revamp .rv-topics a{
  display:inline-flex; align-items:center; height:28px; padding-inline:12px;
  border:1px solid var(--rv-line); border-radius:var(--rv-radius-pill);
  color:var(--rv-muted); text-decoration:none; font-size:13.5px;
  transition:color .2s ease,border-color .2s ease,background .2s ease;
}
body.site-theme-revamp .rv-topics a:hover{ border-color:rgba(105,10,46,.35); color:var(--rv-wine); }
body.site-theme-revamp .rv-topics a.is-active{
  background:var(--rv-chip-active); border-color:var(--rv-wine); color:var(--rv-wine);
}

/* One grid; the featured card sits in the first row, not above it */
body.site-theme-revamp .rv-insights{
  display:grid; grid-template-columns:1.5fr 1fr 1fr; column-gap:22px; row-gap:24px;
}
body.site-theme-revamp .rv-ins{
  display:flex; flex-direction:column; min-height:510px;
  padding:22px; background:var(--rv-white);
  border:1px solid var(--rv-line); border-radius:var(--rv-radius-card);
  color:inherit; text-decoration:none;
}
body.site-theme-revamp .rv-ins h2{ margin:0; font-size:20px; line-height:1.35; font-weight:700; }
body.site-theme-revamp .rv-ins .rv-eyebrow{ margin-bottom:14px; }
body.site-theme-revamp .rv-ins__foot{ margin-top:auto; justify-content:space-between; width:100%; }
body.site-theme-revamp .rv-ins:hover{ border-color:rgba(105,10,46,.28); }

body.site-theme-revamp .rv-ins--featured{
  grid-row:span 1; padding:0; overflow:hidden;
  background:var(--rv-soft); border:0; border-radius:var(--rv-radius-form);
}
body.site-theme-revamp .rv-ins--featured img{
  width:100%; height:260px; object-fit:cover; border-radius:0;
}
body.site-theme-revamp .rv-ins__body{ display:flex; flex-direction:column; gap:12px; padding:22px; flex:1; }
body.site-theme-revamp .rv-ins--featured h2{ font-size:22px; line-height:1.3; }
body.site-theme-revamp .rv-ins__byline{
  margin:0; font-family:var(--rv-font-mono); font-size:13px; font-weight:700;
  color:var(--rv-wine); letter-spacing:.02em;
}
body.site-theme-revamp .rv-ins__excerpt{ margin:0; font-size:15px; line-height:1.55; color:var(--rv-muted); }
body.site-theme-revamp .rv-ins__body .bq-monolink{ margin-top:auto; }
body.site-theme-revamp .rv-ins__empty{ grid-column:1 / -1; color:var(--rv-muted); }
@media (max-width:1000px){ body.site-theme-revamp .rv-insights{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:640px){
  body.site-theme-revamp .rv-insights{ grid-template-columns:1fr; }
  body.site-theme-revamp .rv-ins{ min-height:0; }
}

/* ── Article ───────────────────────────────────────────────────────────── */
body.site-theme-revamp .rv-article h1{
  margin:0 0 18px; max-width:1000px;
  font-size:clamp(2rem,4.6vw,66px); line-height:1.29; font-weight:700; color:var(--rv-ink-max);
}
body.site-theme-revamp .rv-article__dek{
  margin:0 0 39px; max-width:960px; font-size:20px; line-height:1.43; color:var(--rv-muted-warm);
}
body.site-theme-revamp .rv-article__meta{
  margin:0 0 37px; display:flex; align-items:center; gap:8px;
  font-family:var(--rv-font-mono); font-size:13px; letter-spacing:var(--rv-mono-ls);
  text-transform:uppercase; color:var(--rv-muted);
}
body.site-theme-revamp .rv-article__date{ color:var(--rv-gold-text); }

body.site-theme-revamp .rv-byline{
  display:flex; align-items:center; gap:16px;
  min-height:89px; padding:22px 24px; margin-bottom:32px;
  background:var(--rv-white); border:1px solid #f0ede9; border-radius:var(--rv-radius-form);
}
body.site-theme-revamp .rv-byline img,
body.site-theme-revamp .rv-byline__initial{
  width:44px; height:44px; flex:0 0 44px;
  border-radius:50% !important; object-fit:cover;
  display:grid; place-items:center;
  background:var(--rv-soft); color:var(--rv-wine); font-weight:700;
}
body.site-theme-revamp .rv-byline__meta{ display:grid; gap:2px; }
body.site-theme-revamp .rv-byline__meta strong{ font-size:17px; font-weight:700; }
body.site-theme-revamp .rv-byline__meta span{
  font-family:var(--rv-font-mono); font-size:var(--rv-mono);
  letter-spacing:var(--rv-mono-ls); text-transform:uppercase; color:var(--rv-muted);
}

body.site-theme-revamp .rv-takeaways{
  margin:0 0 38px; padding:29px 24px 24px;
  background:var(--rv-soft); border-radius:var(--rv-radius-form);
}
body.site-theme-revamp .rv-takeaways h2{ margin:0 0 16px; font-size:20px; font-weight:700; }
body.site-theme-revamp .rv-takeaways ul{ list-style:none; margin:0; padding:0; }
body.site-theme-revamp .rv-takeaways li{
  position:relative; padding:0 0 12px; margin-bottom:12px;
  padding-inline-start:20px; font-size:15.5px; line-height:1.55;
  border-bottom:1px solid #efeae4;   /* the design rules under the last item too */
}
body.site-theme-revamp .rv-takeaways li::before{
  content:""; position:absolute; inset-inline-start:0; inset-block-start:.62em;
  width:6px; height:6px; border-radius:50%; background:var(--rv-ink-max);
}
body.site-theme-revamp .rv-article__body{ max-width:none; }
body.site-theme-revamp .rv-article__body :is(p,li){ font-size:16px; line-height:1.88; color:var(--rv-ink-max); }
body.site-theme-revamp .rv-article__body h2{ margin:38px 0 30px; font-size:clamp(1.5rem,2.6vw,38px); }
body.site-theme-revamp .rv-article__body ul{ padding-inline-start:1.2em; }
body.site-theme-revamp .rv-article__body li{ margin-bottom:10px; }
body.site-theme-revamp .rv-article__body img{ max-width:100%; height:auto; }

/* ═══════════════════════════════════════════════════════════════════════
   Overflow guards. Grid and flex children default to min-width:auto, so a
   long unbroken string (an email, a URL, an Arabic title without spaces)
   pushes the track wider than its share and scrolls the page sideways.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp :is(
  .bq-contact, .rv-contact__rail, .rv-hero__rail, .rv-team__hero, .rv-team__feature,
  .rv-about__intro, .rv-about__apart, .rv-band__grid, .rv-pd__grid, .rv-pd__mast,
  .rv-pd__contact, .rv-profile, .rv-partners, .rv-insights, .rv-stats,
  .rv-approach__grid, .rv-quotes, .rv-team__grid, .rv-dir__grid
) > *{ min-width:0; }

body.site-theme-revamp :is(
  .rv-contact__value, .bq-contact__item a, .rv-profile__card a, .rv-ins h2,
  .rv-article h1, .rv-team__hero h1, .rv-partners__meta strong
){ overflow-wrap:anywhere; }

/* The split button must never be the thing that widens a narrow column. */
@media (max-width:420px){
  body.site-theme-revamp .bq-split{ grid-template-columns:minmax(0,1fr) 48px; width:100%; }
  body.site-theme-revamp .bq-split__label{ padding-inline:14px; }
}

/* Skip link — visible only when focused. */
body.site-theme-revamp .bq-skip{
  position:absolute; inset-inline-start:-9999px; inset-block-start:0; z-index:200;
  padding:12px 18px; background:var(--rv-wine); color:var(--rv-white);
  border-radius:0 0 var(--rv-radius-card) var(--rv-radius-card); text-decoration:none;
  font-family:var(--rv-font-mono); font-size:var(--rv-mono); text-transform:uppercase;
}
body.site-theme-revamp .bq-skip:focus{ inset-inline-start:16px; }
body.site-theme-revamp #bq-main:focus{ outline:none; }

/* Legal links on the footer's bottom line — same mono register, quieter. */
body.site-theme-revamp .bq-footer__legal-links{ display:flex; flex-wrap:wrap; gap:18px; }
body.site-theme-revamp .bq-footer__legal-links a{ color:inherit; text-decoration:none; opacity:.85; }
body.site-theme-revamp .bq-footer__legal-links a:hover{ color:var(--rv-gold); opacity:1; }

/* Article share row — mono register, no gold circles. */
body.site-theme-revamp .rv-share{
  display:flex; flex-wrap:wrap; align-items:center; gap:18px;
  margin-top:44px; padding-top:22px; border-top:1px solid var(--rv-line);
  font-family:var(--rv-font-mono); font-size:var(--rv-mono);
  letter-spacing:var(--rv-mono-ls); text-transform:uppercase;
}
body.site-theme-revamp .rv-share__label{ color:var(--rv-muted); }
body.site-theme-revamp .rv-share a,
body.site-theme-revamp .rv-share button{
  padding:0; border:0; background:none; cursor:pointer;
  font:inherit; color:var(--rv-ink); text-decoration:none;
  border-bottom:1px solid var(--rv-line);
}
body.site-theme-revamp .rv-share a:hover,
body.site-theme-revamp .rv-share button:hover{ color:var(--rv-wine); border-bottom-color:var(--rv-wine); }

/* Silk plates recovered from the design exports. */
body.site-theme-revamp .bq-contact__panel[style*="--bq-silk"]{
  background-image:var(--bq-grain),var(--bq-silk);
  background-size:180px,cover; background-repeat:repeat,no-repeat; background-position:center,center;
}

/* ═══════════════════════════════════════════════════════════════════════
   Phone corrections.
   The hero rail had no single-column rule, so its headline and intro were
   painted on top of each other. The tall card minimums are a desktop device —
   on a narrow screen they leave a void instead of a composition.
   ═══════════════════════════════════════════════════════════════════════ */
@media (max-width:820px){
  body.site-theme-revamp .rv-hero__rail{
    grid-template-columns:1fr;
    align-items:start;
    gap:26px;
    padding-block:clamp(120px,26vw,150px) clamp(40px,9vw,64px);
  }
  body.site-theme-revamp .rv-hero{ min-height:auto; }
  body.site-theme-revamp .rv-hero__title{ font-size:clamp(2rem,9.6vw,2.9rem); }
  body.site-theme-revamp .rv-hero__aside{ gap:20px; }

  /* pinned-content cards: keep the rhythm, drop the void */
  body.site-theme-revamp .bq-stat{ min-height:0; gap:14px; }
  body.site-theme-revamp .rv-approach__card{ min-height:0; gap:18px; }
  body.site-theme-revamp .rv-insight{ min-height:0; gap:16px; }
  body.site-theme-revamp .rv-insight.bq-card--image{ min-height:300px; }
  body.site-theme-revamp .rv-quote{ min-height:0; gap:22px; }
  body.site-theme-revamp .rv-tile{ min-height:0; }
  body.site-theme-revamp .rv-about__stat{ min-height:0; }
  body.site-theme-revamp .rv-profile__stat{ min-height:0; }
  body.site-theme-revamp .bq-card--image{ min-height:300px; }

  /* the nav islands must not crowd each other */
  body.site-theme-revamp .bq-nav__rail{ gap:12px; }
  body.site-theme-revamp .bq-nav__brand{ min-width:0; flex:0 1 auto; padding-inline:12px; }
  body.site-theme-revamp .bq-logo--nav{ max-height:22px; }
}

@media (max-width:520px){
  body.site-theme-revamp .rv-statement{ font-size:clamp(18px,5.4vw,22px); }
  body.site-theme-revamp .rv-band__aside h2,
  body.site-theme-revamp .rv-about__team-head h2,
  body.site-theme-revamp .rv-about__clients-head h2{ font-size:clamp(19px,5.6vw,24px); }
  body.site-theme-revamp .bq-section--pad-lg{ padding-block:clamp(40px,11vw,56px); }
  body.site-theme-revamp .rv-contact__rail{ padding-block:clamp(36px,10vw,48px) clamp(32px,9vw,44px); }
}

/* Gold reads as printed ink on white and as lit gilt on the silk. Everything
   derives from --rv-gold, so re-theming from Admin re-lights all 31 controls. */
body.site-theme-revamp :is(.rv-hero,.bq-section--dark,.bq-card--dark,.bq-card--image,.bq-footer,
  .rv-pd__rail,.rv-pd__card,.bq-contact__panel,.rv-contact__panel) :is(.bq-split__square,.bq-square--solid){
  background:linear-gradient(var(--bq-sq-angle),
    color-mix(in oklab,var(--rv-gold) 88%,white),
    var(--rv-gold) 55%,
    color-mix(in oklab,var(--rv-gold) 92%,black));
}
html[dir="rtl"] body.site-theme-revamp{ --bq-sq-angle:208deg; }
body.site-theme-revamp .bq-split:hover .bq-split__square,
body.site-theme-revamp .bq-square--solid:hover{ background:color-mix(in oklab,var(--rv-gold) 82%,black); }

/* ═══════════════════════════════════════════════════════════════════════
   What holds still while everything passes.
   Enabled by overflow:clip on main — overflow:hidden made main a scroll
   container, which silently disabled position:sticky site-wide.
   ═══════════════════════════════════════════════════════════════════════ */

/* The argument scrolls; the way to act on it does not. */
@media (min-width:1001px){
  body.site-theme-revamp .rv-pd__card{
    position:sticky; inset-block-start:clamp(24px,6vh,88px);
  }
  body.site-theme-revamp .rv-pd__rail{
    padding-block-end:clamp(40px,6vw,120px);   /* the 330px only pushed a static card up */
  }
}

/* The white document lifts away and the silk footer is revealed beneath it —
   arriving at the end of a page feels like reaching the ground. */
@media (min-width:992px) and (min-height:760px){
  body.site-theme-revamp{ position:relative; }
  /* a page shorter than the viewport would leave the footer floating mid-screen */
  body.site-theme-revamp main{ min-block-size:calc(100svh - 340px); }
  body.site-theme-revamp .bq-footer{
    position:sticky; inset-block-end:0; z-index:0; margin-block-start:-1px;
  }
}

/* The faded practice tail dissolves instead of dimming. */
body.site-theme-revamp .rv-band__row:nth-child(n+5){
  opacity:1;
  mask-image:linear-gradient(to bottom,#000 45%,transparent 96%);
}
body.site-theme-revamp .rv-insights__more{ display:grid; place-items:center; margin-top:26px; }

/* ═══════════════════════════════════════════════════════════════════════
   Cross-document view transitions. Chromium/Safari only; Firefox ignores
   @view-transition entirely and keeps today's behaviour.
   ═══════════════════════════════════════════════════════════════════════ */
@view-transition{ navigation:auto; }
::view-transition-old(root),
::view-transition-new(root){
  animation-duration:.18s;
  animation-timing-function:cubic-bezier(.22,.61,.36,1);
}
/* pin the group so the default 250ms size-morph never runs between pages
   of different height */
::view-transition-group(root){ animation-duration:.18s; }
/* The blanket reduce rule is scoped to body.site-theme-revamp * and cannot
   reach the top layer — this must be written separately. */
@media (prefers-reduced-motion:reduce){
  ::view-transition-group(*),
  ::view-transition-old(*),
  ::view-transition-new(*){ animation:none !important; }
}

/* ═══════════════════════════════════════════════════════════════════════
   8 · A scrim shaped like the cloth's own shadow.
   cover crops move with the viewport, and at some widths the white h1 lands
   on the bright lobe (247/255 luminance). The scrim is built from the
   plate's own darkest value, so it reads as the shadow side of the fold.
   A legibility floor — never conditional on motion preference.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .rv-hero{ isolation:isolate; }
body.site-theme-revamp .rv-hero::before{
  content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:linear-gradient(105deg, rgba(9,0,4,.55) 0 34%, rgba(9,0,4,.18) 52%, transparent 66%);
}
/* In Arabic the headline sits on the right — mirror the angle, not the inset. */
html[dir="rtl"] body.site-theme-revamp .rv-hero::before{
  background:linear-gradient(255deg, rgba(9,0,4,.55) 0 34%, rgba(9,0,4,.18) 52%, transparent 66%);
}

/* ═══════════════════════════════════════════════════════════════════════
   9 · Every navigational surface acknowledges the tap.
   :hover sticks after a tap on iOS and never fires on Android — each surface
   gets a press state stronger than its hover, from tokens already in the
   palette. The roster card also gains its first-ever focus ring.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .rv-tile:where(:hover,:focus-visible),
body.site-theme-revamp .rv-ins:where(:hover,:focus-visible){
  border-color:rgba(105,10,46,.28);
}
body.site-theme-revamp .rv-tile:active,
body.site-theme-revamp .rv-ins:active{ background:var(--rv-list-active); }
body.site-theme-revamp .rv-topics a:active{
  background:var(--rv-chip-active); border-color:var(--rv-wine); color:var(--rv-wine);
}
body.site-theme-revamp .rv-person:focus-visible{
  outline:3px solid var(--rv-focus); outline-offset:8px; border-radius:12px;
}
body.site-theme-revamp .rv-person:active h3{ color:var(--rv-wine); }
/* Optimistic paint while a chip's navigation is in flight. */
body.site-theme-revamp .rv-topics:has(a[aria-busy]) a:not([aria-busy]){ opacity:.55; }

/* ═══════════════════════════════════════════════════════════════════════
   10 · The hero silk holds: the plate drifts at half page speed while the
   headline leaves at full speed. scroll(root) names the document scroller,
   so main's overflow is irrelevant. Firefox (flagged) keeps the static
   hero, which is the approved design.
   ═══════════════════════════════════════════════════════════════════════ */
@supports (animation-timeline: scroll(root)) {
  @media (prefers-reduced-motion:no-preference){
    body.site-theme-revamp .rv-hero[style*="--bq-silk"]{
      background-image:var(--bq-grain);   /* grain stays put; the silk moves below */
      background-size:180px;
      background-repeat:repeat;
    }
    body.site-theme-revamp .rv-hero[style*="--bq-silk"]::after{
      content:""; position:absolute; inset:-10% 0 0; z-index:-1;
      background-image:var(--bq-silk);
      background-size:cover; background-position:center top; background-repeat:no-repeat;
      will-change:transform;
      animation:bq-hero-drift linear both;
      animation-timeline:scroll(root block);
      animation-range:0 100vh;
    }
    @media (min-resolution:1.5dppx){
      body.site-theme-revamp .rv-hero[style*="--bq-silk"]::after{
        background-image:image-set(var(--bq-silk-2x) 2x, var(--bq-silk) 1x);
      }
    }
    @media (max-width:900px){
      /* min-height already crops the plate hard here — cap the travel */
      body.site-theme-revamp .rv-hero[style*="--bq-silk"]::after{
        animation-name:bq-hero-drift-sm;
      }
    }
  }
}
@keyframes bq-hero-drift{ from{ translate:0 0; } to{ translate:0 7%; } }
@keyframes bq-hero-drift-sm{ from{ translate:0 0; } to{ translate:0 4%; } }

/* ═══════════════════════════════════════════════════════════════════════
   11 · The gold words fill from their leading edge as the statement enters
   view. A paint effect over an unsplit text node — Arabic joining is
   untouched by construction.
   ═══════════════════════════════════════════════════════════════════════ */
@supports ((-webkit-background-clip:text) or (background-clip:text)){
  @media (prefers-reduced-motion:no-preference){
    body.site-theme-revamp .rv-hl{
      background:linear-gradient(90deg,var(--rv-gold-text) 50%,var(--rv-ink) 50%) 100% 0/200% 100% no-repeat;
      -webkit-background-clip:text; background-clip:text; color:transparent;
      transition:background-position .7s var(--rv-ease-settle);
    }
    body.site-theme-revamp .rv-statement.is-visible .rv-hl{ background-position:0 0; }
    html[dir="rtl"] body.site-theme-revamp .rv-hl{ background-position:0 0; }
    html[dir="rtl"] body.site-theme-revamp .rv-statement.is-visible .rv-hl{ background-position:100% 0; }
  }
}
@media (forced-colors:active){
  body.site-theme-revamp .rv-hl{ background:none; color:CanvasText; }
}

body.site-theme-revamp .rv-partners__go:focus-visible{ outline:3px solid var(--rv-gold); outline-offset:3px; border-radius:8px; }

/* ═══════════════════════════════════════════════════════════════════════
   13 · The 01..06 numerals become the actor. Pointing at a row turns its
   numeral gold, brightens the hairline, slides the arrow — and the faded
   tail comes back to full strength while pointed at.
   translate, never transform: the RTL arrow mirror already owns transform.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .rv-band__num{ transition:color .28s var(--rv-ease-settle); }
body.site-theme-revamp .rv-band__row a:is(:hover,:focus-visible) .rv-band__num{ color:var(--rv-gold); }
body.site-theme-revamp .rv-band__row:is(:hover,:focus-within){ border-bottom-color:var(--rv-line-dark); }
body.site-theme-revamp .rv-band__row:nth-child(n+5):is(:hover,:focus-within){
  mask-image:none;   /* the dissolving tail is reachable, not merely decorative */
}
body.site-theme-revamp .rv-band__row .bq-arrow{ transition:translate .28s var(--rv-ease-settle); }
body.site-theme-revamp .rv-band__row a:is(:hover,:focus-visible) .bq-arrow{ translate:6px 0; }
html[dir="rtl"] body.site-theme-revamp .rv-band__row a:is(:hover,:focus-visible) .bq-arrow{ translate:-6px 0; }
/* the touch answer: on a phone every numeral is simply gold, the tail lifted */
@media (hover:none){
  body.site-theme-revamp .rv-band__num{ color:var(--rv-gold); }
  body.site-theme-revamp .rv-band__row:nth-child(n+5){
    mask-image:linear-gradient(to bottom,#000 70%,rgba(0,0,0,.55));
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   14 · Hero line curtain: the three lines rise out of a tight mask 90ms
   apart; the gold full stop lands last. The page composes itself.
   The .14em bleed is not decoration — Almarai's final-form ج ع م hang below
   the em box and an untuned mask shears them.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .rv-hero__line{
  display:block; overflow:hidden;
  padding-block:.14em; margin-block:-.14em;
}
body.site-theme-revamp .rv-hero__line > span{ display:block; }
body.site-theme-revamp .rv-hero__stop{ color:var(--rv-gold); }
@media (prefers-reduced-motion:no-preference){
  body.site-theme-revamp .rv-hero__line > span{
    translate:0 .9em; opacity:0;
    transition:translate .6s var(--rv-ease-settle), opacity .6s var(--rv-ease-settle);
  }
  body.site-theme-revamp .rv-hero__line:nth-child(2) > span{ transition-delay:90ms; }
  body.site-theme-revamp .rv-hero__line:nth-child(3) > span{ transition-delay:180ms; }
  body.site-theme-revamp .rv-hero__stop{
    opacity:0; transition:opacity .45s ease .42s;   /* colour+opacity only — a
      transform needs inline-block, which bidi reorders on an RTL line */
  }
  body.site-theme-revamp .rv-hero.is-ready .rv-hero__line > span{ translate:0 0; opacity:1; }
  body.site-theme-revamp .rv-hero.is-ready .rv-hero__stop{ opacity:1; }
}
body.site-theme-revamp .rv-dir__count{
  color:var(--rv-muted); font-variant-numeric:tabular-nums; white-space:nowrap;
}

/* ═══════════════════════════════════════════════════════════════════════
   12 · The dark band closes over the page: corners open 4px→30px and the
   surface settles 18px as it enters, a gold hairline brightening along the
   top edge. clip-path, not border-radius: Chromium composites it, so the
   cover-sized silk is not repainted every frame.
   Requires overflow:clip on main (item 16) or view() never resolves.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .bq-section--topround{ position:relative; }
body.site-theme-revamp .bq-section--topround::before{
  content:""; position:absolute; inset:0 0 auto; height:30px; z-index:1;
  pointer-events:none; border-radius:inherit;
  background:linear-gradient(90deg,transparent,
    color-mix(in oklab,var(--rv-gold) 70%,transparent) 28% 72%,transparent);
  /* a masked 1px strip — border-image on a rounded box is unreliable in Safari */
  mask-image:linear-gradient(to bottom,#000 0,#000 1px,transparent 1px);
  opacity:.45;
}
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion:no-preference){
    body.site-theme-revamp .bq-section--topround{
      animation:bq-band-close linear both;
      animation-timeline:view(block);
      animation-range:entry 0% entry 60%;
    }
    body.site-theme-revamp .bq-section--topround::before{
      animation:bq-seam linear both;
      animation-timeline:view(block);
      animation-range:entry 0% entry 60%;
    }
  }
}
@keyframes bq-band-close{
  from{ clip-path:inset(0 0 0 0 round 4px 4px 0 0); translate:0 18px; }
  to  { clip-path:inset(0 0 0 0 round 30px 30px 0 0); translate:0 0; }
}
@keyframes bq-seam{ from{ opacity:.2; } to{ opacity:.75; } }

/* ═══════════════════════════════════════════════════════════════════════
   18 · The enquiry form tells the truth. SMTP runs inside the request, so
   the page is inert for seconds after send — the button must say so.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .bq-split[aria-busy="true"]{ pointer-events:none; }
body.site-theme-revamp .bq-split[aria-busy="true"] .bq-split__label{ opacity:.85; }
body.site-theme-revamp .bq-split[disabled] .bq-split__label,
body.site-theme-revamp .bq-split:disabled .bq-split__label{ opacity:.7; }
@media (prefers-reduced-motion:no-preference){
  body.site-theme-revamp .bq-split[aria-busy="true"] .bq-arrow path{
    stroke-dasharray:31; stroke-dashoffset:31;
    animation:bq-draw 1.1s var(--rv-ease-settle) infinite;
  }
}
@keyframes bq-draw{ to{ stroke-dashoffset:0; } }
/* a mirrored check reads as a wrong-answer mark */
html[dir="rtl"] body.site-theme-revamp .bq-arrow[data-dir="check"]{ transform:none; }
body.site-theme-revamp .bq-field__input[aria-invalid="true"]{ border-bottom-color:#ffc2d2; }

/* 20 · tile→masthead morph. Cap the tween: past ~300ms a long-distance box
   morph reads as a product catalogue, not a law firm. */
::view-transition-group(bq-svc){ animation-duration:.28s; }

/* ═══════════════════════════════════════════════════════════════════════
   Pointer & scroll round — 1 · seeking gets the page as-built.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .is-instant{ transition:none !important; transition-delay:0ms !important; }

/* ═══════════════════════════════════════════════════════════════════════
   5 · The nav returns when sought. Reading down, it stays out of the way;
   seeking up after real depth recalls a condensed bar with a gold seam.
   Leaves fast (120ms), arrives settled (420ms).
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .bq-nav.is-recalled{
  position:fixed; inset-inline:0; inset-block-start:0; z-index:120;
  translate:0 -110%;
  background:rgba(255,255,255,.94);
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px);
  border-block-end:1px solid color-mix(in oklab, var(--rv-gold) 55%, transparent);
  box-shadow:0 10px 35px rgba(22,6,12,.08);
  transition:translate var(--rv-dur-tap) var(--rv-ease-lift);
  max-width:none; margin-inline:0;
}
body.site-theme-revamp .bq-nav.is-recalled .bq-nav__rail{ padding-block:14px; }
body.site-theme-revamp .bq-nav.is-recalled.is-shown{
  translate:0 0;
  transition:translate var(--rv-dur-settle) var(--rv-ease-settle);
}
/* The recalled bar sits on white — the home hero's transparent islands regain
   their inner-page fills while recalled. */
body.site-theme-revamp.is-home .bq-nav.is-recalled .bq-nav__brand{ background:var(--rv-white); }
body.site-theme-revamp.is-home .bq-nav.is-recalled .bq-nav__island{ background:var(--rv-nav-inner); }
@media (prefers-reduced-motion:reduce){
  body.site-theme-revamp .bq-nav.is-recalled{ transition:none; }
}

/* ═══════════════════════════════════════════════════════════════════════
   2 · Warmth before arrival: the numeral the pointer is about to reach
   begins warming toward gold before the hand lands. Colour only — the RTL
   mirror's transform channel is untouched.
   ═══════════════════════════════════════════════════════════════════════ */
@media (hover:hover) and (pointer:fine){
  body.site-theme-revamp .rv-band__num{
    color:color-mix(in oklab, var(--rv-gold) calc(var(--rv-near,0)*100%), rgba(255,255,255,.92));
  }
  body.site-theme-revamp .rv-band__row{
    border-bottom-color:color-mix(in oklab, rgba(255,255,255,.30) calc(var(--rv-near,0)*100%), var(--rv-rule-dark));
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   3 · The room answers: considering one person dims the others 4-6% —
   attention moves through the grid like light, nothing jumps.
   ═══════════════════════════════════════════════════════════════════════ */
@media (hover:hover) and (pointer:fine){
  body.site-theme-revamp .rv-person img{
    transition:filter var(--rv-dur-settle) var(--rv-ease-settle);
  }
  body.site-theme-revamp .rv-team__grid:is(:has(.rv-person:hover),:has(.rv-person:focus-within))
    .rv-person:not(:hover):not(:focus-within) img{
    filter:brightness(.94) saturate(.92);
  }
  body.site-theme-revamp .rv-person:is(:hover,:focus-within) img{ filter:brightness(1.03); }
  body.site-theme-revamp .rv-insights__grid:is(:has(.rv-ins:hover),:has(.rv-ins:focus-within))
    .rv-ins--featured:not(:hover):not(:focus-within)::before{
    background:linear-gradient(180deg,rgba(20,4,11,.70),rgba(20,4,11,.20) 45%,rgba(20,4,11,.62));
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   6 · Arrival: the ground settles. Reaching the end of a page is a felt
   conclusion — the footer content settles 18px and its top seam warms.
   Inner elements only; never the sticky .bq-footer itself.
   ═══════════════════════════════════════════════════════════════════════ */
@supports (animation-timeline: scroll(root)){
  @media (min-width:992px) and (min-height:760px) and (prefers-reduced-motion:no-preference){
    body.site-theme-revamp .bq-footer__grid,
    body.site-theme-revamp .bq-footer__legal{
      animation:bq-ground linear both;
      animation-timeline:scroll(root block);
      animation-range:calc(100% - 90vh) calc(100% - 20vh);
    }
    body.site-theme-revamp .bq-footer::before{
      content:""; position:absolute; inset:0 0 auto; height:1px;
      background:linear-gradient(90deg,transparent,
        color-mix(in oklab,var(--rv-gold) 65%,transparent) 30% 70%,transparent);
      animation:bq-seam linear both;
      animation-timeline:scroll(root block);
      animation-range:calc(100% - 60vh) 100%;
    }
  }
}
@keyframes bq-ground{ from{ translate:0 18px; opacity:.55; } to{ translate:0 0; opacity:1; } }

/* ═══════════════════════════════════════════════════════════════════════
   7 · Stat numerals rise from the baseline — the honest version: no
   counting, no parsing of editor text. clip-path only; Arabic-Indic
   digits are untouched text.
   ═══════════════════════════════════════════════════════════════════════ */
@supports (animation-timeline: view()){
  @media (prefers-reduced-motion:no-preference){
    body.site-theme-revamp .bq-stat__value{
      animation:bq-stat-rise linear both;
      animation-timeline:view(block);
      animation-range:entry 15% entry 70%;
    }
  }
}
@keyframes bq-stat-rise{
  from{ clip-path:inset(100% 0 -0.15em 0); translate:0 .22em; }
  to  { clip-path:inset(-0.15em 0 -0.15em 0); translate:0 0; }
}

/* ═══════════════════════════════════════════════════════════════════════
   4 · A reading seam on articles: a hairline of gold tracking progress
   through the article BODY only. Information, not celebration. Grows from
   the reading edge in both scripts. Direct per-frame write, no transition.
   ═══════════════════════════════════════════════════════════════════════ */
body.site-theme-revamp .rv-article__progress{
  position:fixed; inset-block-start:0; inset-inline:0; height:2px; z-index:110;
  background:var(--rv-gold);
  transform-origin:0 50%;
  scale:var(--bq-read,0) 1;
  opacity:var(--bq-read-op,1);
  pointer-events:none;
}
html[dir="rtl"] body.site-theme-revamp .rv-article__progress{ transform-origin:100% 50%; }

/* ═══════════════════════════════════════════════════════════════════════
   8 · The parked sheen: a quiet gold radial anchored at the fold vertex
   (43%/61%). Ships everywhere as a static paint layer; only the small lean
   toward the pointer is desktop-only. The lamp owns the room — the hand
   merely sways it.
   ═══════════════════════════════════════════════════════════════════════ */
@property --rv-sheen-x{ syntax:'<percentage>'; inherits:false; initial-value:43%; }
@property --rv-sheen-y{ syntax:'<percentage>'; inherits:false; initial-value:61%; }
body.site-theme-revamp .rv-hero[style*="--bq-silk"] .rv-hero__sheen{
  content:""; position:absolute; inset:0; z-index:1; pointer-events:none;
  mix-blend-mode:soft-light;
  background:radial-gradient(620px 440px at var(--rv-sheen-x) var(--rv-sheen-y),
    color-mix(in oklab, var(--rv-gold) 100%, transparent) 0%,
    transparent 70%);
  opacity:.10;
  transition:--rv-sheen-x .42s var(--rv-ease-settle), --rv-sheen-y .42s var(--rv-ease-settle);
}

/* ═══════════════════════════════════════════════════════════════════════
   9 · --bq-sq-angle becomes a bearing: every gold square on screen agrees
   on one light source that moves gently with the hand. Background only —
   the RTL transform mirror is untouched by construction.
   ═══════════════════════════════════════════════════════════════════════ */
@property --bq-sq-angle{ syntax:'<angle>'; inherits:true; initial-value:152deg; }
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
  body.site-theme-revamp :is(.bq-split__square,.bq-square--solid){
    transition:--bq-sq-angle .42s var(--rv-ease-settle);
  }
}

/* ═══════════════════════════════════════════════════════════════════════
   10 · Practice-rail silk creep: the cloth behind the pinned enquiry card
   slides very slowly with the scroll while the card and the grain hold
   still — the material breathes behind the stillness. Firefox and mobile
   keep today's exact static stack (the guard never applies there).
   ═══════════════════════════════════════════════════════════════════════ */
@supports (animation-timeline: view()){
  @media (min-width:1001px) and (prefers-reduced-motion:no-preference){
    body.site-theme-revamp .rv-pd__rail[style*="--bq-silk"]{
      background:#16050f; overflow:clip;
    }
    body.site-theme-revamp .rv-pd__rail[style*="--bq-silk"]::before{
      content:""; position:absolute; inset:-3% 0; z-index:0;
      background-image:var(--bq-silk);
      background-size:100% auto; background-position:center top; background-repeat:no-repeat;
      will-change:transform;
      animation:bq-rail-creep linear both;
      animation-timeline:view(block);
      animation-range:cover 0% cover 100%;
    }
    /* grain + dissolve pinned ABOVE the moving plate by DOM paint order */
    body.site-theme-revamp .rv-pd__rail[style*="--bq-silk"]::after{
      content:""; position:absolute; inset:0; z-index:0;
      background-image:var(--bq-grain),
        linear-gradient(180deg,transparent 0 60%,var(--rv-wine-deep) 96%);
      background-size:180px,100% 100%;
      background-repeat:repeat,no-repeat;
    }
    /* the RTL material mirror carries over to the moving plate */
    html[dir="rtl"] body.site-theme-revamp .rv-pd__rail[style*="--bq-silk"]::before{
      transform:scaleX(-1);
    }
  }
}
@keyframes bq-rail-creep{ from{ translate:0 -2.2%; } to{ translate:0 2.2%; } }
