/* site.css */
/* VISU site v5 — overrides locais aplicados sobre o visu.network na prévia (visuwordpress, :4202).
   Escopo atual: home EN, header + hero. Prefixo `body` para vencer o CSS do header-v1 e o <style>
   inline do widget #visu-home-v4, que carregam depois deste arquivo. */

:root {
  --v5-bg: #080808;
  --v5-bar: #090d10;
  --v5-ink: #f1f0ea;
  --v5-muted: #a3acb3;
  --v5-line: rgba(255, 255, 255, 0.09);
  --v5-accent: #44c7f4;
  --v5-accent-ink: #06101a;
}

/* ---------- Header: desktop ---------- */

/* Nav encosta no logo em vez de flutuar no centro; o lado direito fica com as duas ações. */
body .elementor-1494 .elementor-element-b2f28d2 > .elementor-container {
  gap: 8px;
}
body .elementor-1494 .elementor-element-b2f28d2 .elementor-nav-menu__align-center .elementor-nav-menu--main > .elementor-nav-menu {
  justify-content: flex-start;
  margin-inline: 0;
}
body .elementor-1494 .elementor-element-b2f28d2 .elementor-element-e9a1d56 {
  padding-left: 28px;
}
/* Logo respira mais antes do primeiro item quando há espaço (abaixo disso o menu encosta no Log in). */
@media (min-width: 1200px) {
  body .elementor-1494 .elementor-element-b2f28d2 .elementor-element-e9a1d56 {
    padding-left: 44px;
  }
}
body .elementor-1494 .elementor-element-b2f28d2 .elementor-column:has(.elementor-element-e9a1d56) {
  flex: 1 1 auto;
}
/* "Home" duplica o logo. */
body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li.menu-item-home {
  display: none;
}
body .elementor-1494 .elementor-nav-menu--main .elementor-item {
  font-size: 15px;
  font-weight: 500;
  color: #c3cad0;
}
body .elementor-1494 .elementor-nav-menu--main .elementor-item:is(:hover, :focus-visible, .highlighted),
body .elementor-1494 .elementor-nav-menu--main .elementor-item.elementor-item-active {
  color: #fff;
}

/* Log in vira link de texto; o botão cheio passa a ser o cadastro. */
/* Log in = mesmo ghost do "Talk to VISU" do hero. header-v1 declara esses botões com !important. */
body .elementor-1494 .elementor-element-b2f28d2 .elementor-widget-button .elementor-button {
  display: inline-flex !important;
  align-items: center;
  height: 40px !important;
  min-height: 0 !important;
  padding: 0 16px !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  border-radius: 10px !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #eee !important;
  transition: background 0.18s, border-color 0.18s !important;
}
/* Valores medidos do hover do .r4-secondary ("Talk to VISU"). */
body .elementor-1494 .elementor-element-b2f28d2 .elementor-widget-button .elementor-button:is(:hover, :focus-visible) {
  border-color: rgba(255, 255, 255, 0.4) !important;
  background: #192932 !important;
  box-shadow: none !important;
  color: #eee !important;
}
body .elementor-1494 .elementor-element-b2f28d2 .elementor-widget-button {
  width: auto !important;
}
body .elementor-1494 .v5-signup {
  display: inline-flex;
  align-items: center;
  height: 40px;
  padding: 0 18px;
  margin-left: 4px;
  border-radius: 10px;
  background: var(--v5-accent);
  font: 600 14px/1 Inter, system-ui, sans-serif;
  text-decoration: none;
  white-space: nowrap;
  transition: background-color 0.18s ease;
}
/* Tema pinta todo `a` (e a:hover) com cor de link: travar tinta escura em todos os estados. */
body .elementor-1494 .v5-signup:is(:link, :visited, :hover, :focus-visible, :active) {
  color: var(--v5-accent-ink) !important;
}
body .elementor-1494 .v5-signup:hover { background: #6fd5f7; }
body .elementor-1494 .v5-signup:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
body .elementor-1494 .elementor-element-b2f28d2 .elementor-column:has(.v5-signup) {
  justify-content: flex-end !important;
}
body .elementor-1494 .elementor-element-b2f28d2 .elementor-widget-wrap:has(> .v5-signup) {
  width: 100%;
  margin-right: 0 !important; /* UiCore ui-col-align-right empurra o wrap com --ui-e-align-offset */
  align-items: center !important;
  justify-content: flex-end !important;
  flex-wrap: nowrap !important;
}

/* Dropdown: o item da página atual (vhdr-current-item) só mudava a cor do <a>, e o nome/descrição internos
   têm cor própria, então nada se destacava. Mesma pílula do item ativo do menu e da sub-barra. */
body .elementor-1494 .elementor-nav-menu--main .sub-menu li.vhdr-current-item > a {
  background: rgba(255, 255, 255, 0.07) !important;
  border-radius: 10px;
}
body .elementor-1494 .elementor-nav-menu--main .sub-menu li.vhdr-current-item > a .vhdr-product-name {
  color: #fff !important;
}
body .elementor-1494 .elementor-nav-menu--main .sub-menu li.vhdr-current-item > a .vhdr-product-desc {
  color: #c3cad0 !important;
}

/* ---------- Header: mobile ---------- */

@media (max-width: 1024px) {
  /* Log in e hambúrguer sem caixa: menos peso na barra. */
  /* Mesmo ghost do Log in desktop / "Talk to VISU". */
  body .elementor-1494.elementor-location-header a.vhdr-mobile-login {
    display: inline-flex !important;
    align-items: center;
    height: 40px !important;
    min-height: 0 !important;
    padding: 0 14px !important;
    border: 1px solid rgba(255, 255, 255, 0.2) !important;
    border-radius: 10px !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #eee !important;
    transition: background 0.18s, border-color 0.18s !important;
  }
  body .elementor-1494.elementor-location-header a.vhdr-mobile-login:is(:hover, :focus-visible, :active) {
    border-color: rgba(255, 255, 255, 0.4) !important;
    background: #192932 !important;
    color: #eee !important;
  }
  body .elementor-1494 .elementor-menu-toggle {
    background: transparent !important;
    border-color: transparent !important;
  }
  /* Menu ocupa a tela abaixo da barra, opaco: a página não vaza por baixo. */
  body .elementor-1494 .elementor-element-9185a30 nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    position: fixed !important;
    top: 64px !important;
    left: 0 !important;
    right: 0 !important;
    margin: 0 !important;
    width: auto !important;
    max-height: calc(100dvh - 64px) !important;
    height: calc(100dvh - 64px) !important;
    border: 0 !important;
    border-top: 1px solid var(--v5-line) !important;
    border-radius: 0 !important;
    background: var(--v5-bar) !important;
    box-shadow: 0 32px 64px rgba(0, 0, 0, 0.6) !important;
    overflow-y: auto !important;
    /* O scaleY do Elementor num painel de tela cheia arrasta o conteúdo ao fechar: abre/fecha seco. */
    transition: none !important;
  }
  body .elementor-1494 .elementor-element-9185a30 .elementor-menu-toggle.elementor-active {
    background: transparent !important;
  }
  /* "Home" duplica o logo também no menu mobile. */
  body .elementor-1494 .elementor-element-9185a30 nav.elementor-nav-menu--dropdown > .elementor-nav-menu > li:first-child:has(> a[href$=":4202/"], > a[href$="visu.network/"]) {
    display: none;
  }
  body .elementor-1494 .v5-menu-signup {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 48px;
    margin: 16px 24px 24px;
    border-radius: 10px;
    background: var(--v5-accent);
    color: var(--v5-accent-ink) !important;
    font: 600 15px/1 Inter, system-ui, sans-serif;
    text-decoration: none;
  }
}
@media (min-width: 1025px) {
  body .elementor-1494 .v5-menu-signup { display: none; }
}

/* ---------- Hero ---------- */

/* Fundo liso: sai a grade e o brilho radial. */
body #visu-home-v4 .r4-hero::before,
body #visu-home-v4 .r4-hero::after {
  display: none;
}
body #visu-home-v4 .r4-hero {
  padding-top: 56px;
  padding-bottom: 72px;
}

/* Título numa cor só, peso e tracking menos apertados. */
body #visu-home-v4 .r4-hero h1 {
  font-size: clamp(40px, 4.4vw, 64px);
  font-weight: 700;
  line-height: 1.04;
  letter-spacing: -0.032em;
  color: var(--v5-ink);
}
body #visu-home-v4 .r4-hero h1 em {
  color: inherit;
}
body #visu-home-v4 .r4-hero .r4-intro {
  max-width: 30em;
  color: var(--v5-muted);
}

/* CTAs: sem seta, altura normal, secundário como contorno. */
body #visu-home-v4 .r4-actions a {
  height: 52px;
  min-height: 0;
  padding: 0 22px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
}
body #visu-home-v4 .r4-primary > span {
  display: none;
}
body #visu-home-v4 .r4-secondary {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
}
body #visu-home-v4 .r4-secondary:hover {
  border-color: rgba(255, 255, 255, 0.4);
}

/* Checkmarks abaixo dos CTAs saem; a faixa com as lojas logo abaixo do hero já cobre isso. */
body #visu-home-v4 .r4-assurance {
  display: none;
}

/* Celulares retos, sem leque 3D nem brilho ciano. */
body #visu-home-v4 .r4-screen {
  transform: none !important;
  box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5);
  border-color: rgba(255, 255, 255, 0.12);
}
body #visu-home-v4 .r4-screen-local,
body #visu-home-v4 .r4-screen-replay {
  opacity: 0.9;
}
body #visu-home-v4 .r4-stage-controls .r4-real-note {
  color: #7d868d;
}

@media (max-width: 767px) {
  body #visu-home-v4 .r4-hero {
    padding-top: 32px;
  }
  body #visu-home-v4 .r4-hero h1 {
    font-size: 38px;
    letter-spacing: -0.03em;
  }
  body #visu-home-v4 .r4-actions {
    flex-direction: column;
    align-items: stretch;
    gap: 10px;
  }
  body #visu-home-v4 .r4-actions a {
    flex: 0 0 auto; /* flex:1 do widget zera a altura em coluna */
    width: 100%;
    justify-content: center;
    height: 50px;
    font-size: 15px;
  }
}

@media (prefers-reduced-motion: reduce) {
  body .elementor-1494 .v5-signup { transition: none; }
}

/* ---------- Produtos (cards abaixo do hero) ---------- */

/* Cor identifica o produto (nome, link, demo); não pinta o card. Mesmo fundo neutro nos quatro. */
body #visu-home-v4 .r4-card {
  background: #0e1114 !important;
  border: 1px solid rgba(255, 255, 255, 0.08) !important;
  box-shadow: none !important;
}
body #visu-home-v4 .r4-card:hover {
  border-color: rgba(255, 255, 255, 0.14) !important;
}
/* Eyebrow em caixa alta acima de cada nome: sai (limpeza de eyebrows sitewide). */
body #visu-home-v4 .r4-card-kicker {
  display: none;
}
body #visu-home-v4 .r4-demo-label {
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
}
/* Demo do Ads no mesmo painel neutro dos demos Local/Replay; roxo só em ícones e nome. */
body #visu-home-v4 .r4-ads-demo {
  background: #0d141b !important;
  border-color: rgba(255, 255, 255, 0.13) !important;
}
body #visu-home-v4 :is(.r4-ad-campaign, .r4-ad-reward, .r4-ad-entry > *) {
  background: rgba(255, 255, 255, 0.04) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
body #visu-home-v4 .r4-demo-label {
  color: var(--v5-muted);
}
/* Brilho azul atrás do celular do Link. */
body #visu-home-v4 .r4-link-demo {
  background-image: none !important;
}
/* Eyebrow "VISU QR" acima do título do bloco QR. */
body #visu-home-v4 .r4-qr-bridge div > span:first-child {
  display: none;
}

/* ---------- How (3 passos) ---------- */

/* É sequência de verdade: numeração fica, mas neutra e maior, sem o ciano miúdo de template. */
body #visu-home-v4 .p5-steps li > span {
  color: #6b747b;
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0;
  font-variant-numeric: tabular-nums;
}
body #visu-home-v4 .p5-steps li {
  border-top-color: rgba(255, 255, 255, 0.12) !important;
}

/* pages/00-foundation.css */
/* 00-foundation.css — fundação mínima das páginas EN sem o CSS global do tema.
 *
 * Substitui o que as 48 páginas migradas realmente herdavam de uicore-global.css
 * (+ bdt-uikit, ep-helper, wp-custom-css), medido por diff de DOM/estilo computado
 * (strip.txt ligado x desligado, 1440 e 390). Só entra aqui o que mudou algo medido.
 * Escopo `:where(body.page)` = especificidade 0 extra: qualquer CSS de página vence.
 * Produção: enfileirar este arquivo só onde o mu-plugin tirar o tema (páginas da allowlist).
 */

/* Reset: o tema dava border-box global e zerava a margem do body (sem isso: 8px de UA). */
:where(body.page) *, :where(body.page) ::before, :where(body.page) ::after { box-sizing: border-box; }
html:has(> body.page) { -webkit-text-size-adjust: 100%; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }

/* Base de texto: Inter 16/15/14px, entrelinha 1.875em (valor do tema, herdado em px pelos filhos). */
:where(body.page) {
  margin: 0;
  background-color: #080808;
  color: #e5e7eb;
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", sans-serif;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.875em;
  --page-title-display: block;
}
/* Casca UiCore que continua no HTML: corta overflow lateral e define texto branco do conteúdo. */
:where(body.page) .uicore-body-content { position: relative; width: 100%; max-width: 100vw; overflow-x: clip; color: #fff; background-color: #090909; }
:where(body.page) #uicore-page { position: relative; z-index: 0; }

/* Títulos: escala do tema (desktop / <=1024 / <=767). O par `.elementor-widget-heading hN.elementor-heading-title`
   repete a especificidade do tema, que vencia o line-height:1 do widget de heading (títulos do footer). */
:where(body.page) :is(h1, h2, h3, h4, h5, h6),
:where(body.page) .elementor-widget-heading :is(h1, h2, h3, h4, h5, h6).elementor-heading-title {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", sans-serif;
  color: #fff;
  font-weight: 500;
  letter-spacing: -0.027em;
}
:where(body.page) h1 { margin: 0.67em 0; }
:where(body.page) h1, :where(body.page) .elementor-widget-heading h1.elementor-heading-title { font-size: 60px; line-height: 1.2em; }
:where(body.page) h2, :where(body.page) .elementor-widget-heading h2.elementor-heading-title { font-size: 48px; line-height: 1.175em; font-weight: 400; }
:where(body.page) h3, :where(body.page) .elementor-widget-heading h3.elementor-heading-title { font-size: 24px; line-height: 1.2em; }
:where(body.page) h4, :where(body.page) .elementor-widget-heading h4.elementor-heading-title { font-size: 20px; line-height: 1.42em; }
:where(body.page) h5, :where(body.page) .elementor-widget-heading h5.elementor-heading-title { font-size: 18px; line-height: 1.187em; letter-spacing: -0.015em; }
:where(body.page) h6, :where(body.page) .elementor-widget-heading h6.elementor-heading-title { font-size: 14px; line-height: 1.2em; }
@media (max-width: 1024px) {
  :where(body.page) { font-size: 15px; }
  :where(body.page) h2, :where(body.page) .elementor-widget-heading h2.elementor-heading-title { font-size: 34px; }
  :where(body.page) h3, :where(body.page) .elementor-widget-heading h3.elementor-heading-title { font-size: 21px; }
  :where(body.page) h4, :where(body.page) .elementor-widget-heading h4.elementor-heading-title { font-size: 18px; }
  :where(body.page) h5, :where(body.page) .elementor-widget-heading h5.elementor-heading-title { font-size: 15px; }
  :where(body.page) h6, :where(body.page) .elementor-widget-heading h6.elementor-heading-title { font-size: 13px; }
}
@media (max-width: 767px) {
  :where(body.page) { font-size: 14px; }
  :where(body.page) h1, :where(body.page) .elementor-widget-heading h1.elementor-heading-title { font-size: 40px; }
  :where(body.page) h2, :where(body.page) .elementor-widget-heading h2.elementor-heading-title { font-size: 26px; }
  :where(body.page) h3, :where(body.page) .elementor-widget-heading h3.elementor-heading-title { font-size: 20px; }
  :where(body.page) h4, :where(body.page) .elementor-widget-heading h4.elementor-heading-title { font-size: 16px; }
  :where(body.page) h5, :where(body.page) .elementor-widget-heading h5.elementor-heading-title { font-size: 14px; }
  :where(body.page) h6, :where(body.page) .elementor-widget-heading h6.elementor-heading-title { font-size: 12px; }
}

/* Texto corrido e listas: margens do tema (parágrafo 0 0 1em; primeiro/último do text-editor sem sobra). */
:where(body.page) p { margin: 0 0 1em; }
:where(body.page) .elementor-widget-text-editor p:first-child { margin-top: 0; }
:where(body.page) .elementor-widget-text-editor p:last-child { margin-bottom: 0; }
:where(body.page) :is(ul, ol)[class]:not(.wp-block-list) { list-style: none; }
:where(body.page) dd { margin-left: 0; }
:where(body.page) small { font-size: 80%; }
:where(body.page) :is(b, strong) { font-weight: bolder; }
:where(body.page) [hidden] { display: none; }

/* Link: herda a cor de quem o contém. Acaba com o vazamento do tema (todo `a` e `a:hover` em ciano
   #00BFFF/#00ADEE, e `main a:not(...)` com !important pintando até botão). Cor de link é decisão da página. */
:where(body.page) a { color: inherit; text-decoration: none; }
/* Link sem classe dentro de texto corrido: como agora herda a cor do texto, ganha sublinhado discreto para
   continuar reconhecível (páginas legais, FAQs). Especificidade (0,1,1) = empata com `.elementor a{text-decoration:none}` do Elementor e vence por ordem. */
:where(body.page) .elementor :where(p, dd, td, li:not([class])) a:where(:not([class])) {
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: .2em;
  text-decoration-color: color-mix(in srgb, currentColor 45%, transparent);
}
:where(body.page) .elementor :where(p, dd, td, li:not([class])) a:where(:not([class])):hover { text-decoration-color: currentColor; }

/* Formulários: tema herdava fonte e empilhava campo em bloco (form input/select/textarea). */
:where(body.page) :is(button, input, select, textarea) { font-family: inherit; font-size: 100%; line-height: 1.15; margin: 0; }
:where(body.page) button { border: 0; }
:where(body.page) form :is(input:not([type="checkbox"], [type="radio"], [type="submit"], [type="button"]), select, textarea) { display: block; }

/* Ícones Elementor (redes sociais do footer): o tema os pintava na cor primária. Mantido para o footer não mudar. */
:where(body.page) .uicore-body-content .elementor-icon { color: #00bfff; }
:where(body.page) .uicore-body-content .elementor-icon:hover { color: #00adee; }

/* Variáveis globais do kit (cores/tipos "uicore_*") que o CSS do header 1494 e do footer 6625 consomem. */
.elementor-kit-5 {
  --e-global-color-uicore_primary: #00BFFF;
  --e-global-color-uicore_secondary: #00ADEE;
  --e-global-color-uicore_accent: #FFFFFF;
  --e-global-color-uicore_headline: #FFFFFF;
  --e-global-color-uicore_body: #FFFFFF;
  --e-global-color-uicore_dark: #181818;
  --e-global-color-uicore_light: #181818;
  --e-global-color-uicore_white: #FFFFFF;
  --e-global-typography-uicore_primary-font-family: "Inter";
  --e-global-typography-uicore_primary-font-weight: 600;
  --e-global-typography-uicore_secondary-font-family: "Inter";
  --e-global-typography-uicore_secondary-font-weight: 500;
  --e-global-typography-uicore_text-font-family: "Inter";
  --e-global-typography-uicore_text-font-weight: normal;
  --e-global-typography-uicore_accent-font-family: "Inter";
  --e-global-typography-uicore_accent-font-weight: 500;
}

/* Espaçamento e largura dos containers Elementor: o tema definia 20px entre widgets e caixa de min(95%, 1150px).
   Sem isso o Elementor cai em 0px e 1140px. */
:where(body.page) .elementor-element { --widgets-spacing: 20px 20px; --widgets-spacing-row: 20px; --widgets-spacing-column: 20px; }
:where(body.page) .elementor-widget:not(:last-child) { --kit-widget-spacing: 20px; }
:where(body.page) :is(.elementor-section, .elementor > .e-con) { --container-max-width: min(95%, 1150px); }

/* ===== Código VISU que morava no CSS custom do tema (uicore-global) =====
 * Usado por /products/visulink, /visulocal, /visu-ads (+ qr/push/link-ads), /network, /roadmap, /uses, /locations.
 * Portado como estava (inclusive !important: sem ele as regras antigas de página reaparecem, medido).
 * Candidato a ir para o CSS dessas páginas quando cada uma for revisada. */
:where(body.page) {
  --visu-radius: 12px;
  --app-primary: #44C7F4;
  --app-primary-hover: #5ED0F6;
  --btn-text-dark: #06101a;
  --btn-lift: -1px;
  --btn-shadow-hover: 0 4px 12px rgba(0, 0, 0, .3);
}
/* Seção "full-bleed" das páginas visu-page-scope: 100vw, fundo e tinta próprios. */
.visu-page-scope {
  --visu-primary: #22d3ee; --visu-accent: #3b82f6; --visu-ink: #e5f0ff; --visu-sub: #9fb3c8; --visu-bg: #0b0f17;
  --visu-border: #1f2937; --wa-green: #25D366; --rad: 18px; --transition: .3s cubic-bezier(.4, 0, .2, 1);
  --shadow-card: 0 8px 32px rgba(0, 0, 0, .25); --shadow-glow: 0 15px 50px rgba(34, 211, 238, .3);
  background: var(--visu-bg);
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--visu-ink);
  line-height: 1.6;
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  overflow-x: clip;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.visu-page-scope * { box-sizing: border-box; }
.e-con.e-flex:has(.visu-page-scope) > .e-con-inner { padding: 0 !important; gap: 0 !important; min-height: auto !important; }
.elementor-section:has(.visu-page-scope), .e-con:has(.visu-page-scope) { padding: 0 !important; margin: 0 !important; }
.visu-page-scope .v-wrap { max-width: 1180px; margin: 0 auto; padding: 48px 20px; }
@media (max-width: 740px) {
  .visu-page-scope .v-wrap { padding: 32px 16px; }
  .visu-page-scope { --svc-ic-size: 40px; --svc-ic-pad: 8px; }
}
/* Botões sol-btn / v-btn dessas páginas: primário ciano cheio, ghost com borda. */
.sol-btn {
  appearance: none; border: 2px solid transparent; border-radius: var(--visu-radius); padding: .875rem 2rem;
  font-weight: 600; cursor: pointer; font-size: 1rem; display: inline-flex; align-items: center; justify-content: center;
  gap: 8px; text-decoration: none; white-space: nowrap; transform: translateY(0); box-shadow: none;
  transition: transform .2s, background-color .2s, box-shadow .2s;
  background: var(--app-primary) !important; color: var(--btn-text-dark) !important; -webkit-text-fill-color: var(--btn-text-dark) !important;
}
.sol-btn:hover {
  background: var(--app-primary-hover) !important; color: var(--btn-text-dark) !important;
  transform: translateY(var(--btn-lift)) !important; box-shadow: var(--btn-shadow-hover) !important;
}
.v-btn--secondary, .sol-btn-ghost {
  border-radius: var(--visu-radius); padding: .875rem 2rem; font-weight: 600; cursor: pointer; display: inline-flex;
  align-items: center; justify-content: center; gap: 8px; transition: .2s; transform: translateY(0);
  background: transparent !important; border: 1.5px solid rgba(255, 255, 255, .6) !important;
  color: #fff !important; -webkit-text-fill-color: #fff !important;
}
.v-btn--secondary:hover, .sol-btn-ghost:hover {
  background: rgba(255, 255, 255, .1) !important; border-color: #fff !important; color: #fff !important;
  -webkit-text-fill-color: #fff !important; transform: translateY(var(--btn-lift)) !important;
}
.sol-plan-badge { background: var(--app-primary) !important; }

/* pages/05-fonts.css */
/* 05-fonts.css - Inter FOUT fix (metric-matched fallback).
 *
 * Problema medido (Chrome, Fast 3G + woff2 atrasado 3s, 26/09):
 *  - Blog/posts/paginas UiCore: font-family computado = "Inter" SEM generico
 *    (vars --uicore-*-font-family = "Inter"). Ate a Inter chegar o texto pinta em
 *    Times New Roman (serif, ~15-19% mais estreito) -> "espremido" -> estica.
 *    H1 do post 895px -> 1084px (+21%).
 *  - Home/paginas custom: "Inter, system-ui, ..." -> Segoe UI/Arial, 6-8% mais estreitos.
 * Correcao: familia "Inter Fallback" = Arial local com size-adjust e overrides
 * verticais calibrados contra a Inter 4 (UPM 2048, ascender 1984, descender 494,
 * lineGap 0) medindo largura real do texto do site (canvas, ~21k chars) por peso.
 *   ascent-override = 96.875% / size-adjust, descent-override = 24.12% / size-adjust.
 * "Inter Fallback Android" = mesmo calculo contra Roboto (Android nao tem Arial).
 *   Nao testado em device; se local('Roboto') nao casar, cai no proximo da pilha.
 *
 * Producao: estes @font-face + overrides vao pro CSS global (UiCore custom CSS ou
 * mu-plugin que imprime <style> no wp_head com prioridade 1, antes do primeiro texto).
 */

/* ---------- Arial (Windows / macOS / iOS) ---------- */
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial"), local("ArialMT");
  font-weight: 100 449;
  font-style: normal;
  size-adjust: 105.96%;   /* Inter 400 / Arial 400 */
  ascent-override: 91.43%;
  descent-override: 22.76%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial"), local("ArialMT");
  font-weight: 450 549;
  font-style: normal;
  size-adjust: 106.87%;   /* Inter 500 / Arial 400 */
  ascent-override: 90.65%;
  descent-override: 22.57%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial Bold"), local("Arial-BoldMT");
  font-weight: 550 649;
  font-style: normal;
  size-adjust: 100.88%;   /* Inter 600 / Arial Bold */
  ascent-override: 96.03%;
  descent-override: 23.91%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial Bold"), local("Arial-BoldMT");
  font-weight: 650 749;
  font-style: normal;
  size-adjust: 101.72%;   /* Inter 700 / Arial Bold */
  ascent-override: 95.24%;
  descent-override: 23.71%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial Bold"), local("Arial-BoldMT");
  font-weight: 750 1000;
  font-style: normal;
  size-adjust: 102.75%;   /* Inter 800 / Arial Bold */
  ascent-override: 94.28%;
  descent-override: 23.47%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial Italic"), local("Arial-ItalicMT");
  font-weight: 100 549;
  font-style: italic;
  size-adjust: 105.96%;
  ascent-override: 91.43%;
  descent-override: 22.76%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback";
  src: local("Arial Bold Italic"), local("Arial-BoldItalicMT");
  font-weight: 550 1000;
  font-style: italic;
  size-adjust: 101.72%;
  ascent-override: 95.24%;
  descent-override: 23.71%;
  line-gap-override: 0%;
}

/* ---------- Roboto (Android) ---------- */
@font-face {
  font-family: "Inter Fallback Android";
  src: local("Roboto"), local("Roboto-Regular");
  font-weight: 100 449;
  size-adjust: 106.88%;   /* Inter 400 / Roboto 400 */
  ascent-override: 90.64%;
  descent-override: 22.57%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback Android";
  src: local("Roboto"), local("Roboto-Regular");
  font-weight: 450 549;
  size-adjust: 107.80%;   /* Inter 500 / Roboto 400 */
  ascent-override: 89.87%;
  descent-override: 22.37%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback Android";
  src: local("Roboto Bold"), local("Roboto-Bold");
  font-weight: 550 649;
  size-adjust: 107.37%;   /* Inter 600 / Roboto 700 */
  ascent-override: 90.22%;
  descent-override: 22.46%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback Android";
  src: local("Roboto Bold"), local("Roboto-Bold");
  font-weight: 650 749;
  size-adjust: 108.26%;   /* Inter 700 / Roboto 700 */
  ascent-override: 89.48%;
  descent-override: 22.28%;
  line-gap-override: 0%;
}
@font-face {
  font-family: "Inter Fallback Android";
  src: local("Roboto Bold"), local("Roboto-Bold");
  font-weight: 750 1000;
  size-adjust: 109.36%;   /* Inter 800 / Roboto 700 */
  ascent-override: 88.58%;
  descent-override: 22.06%;
  line-gap-override: 0%;
}

/* ---------- 1) Variaveis globais (UiCore + Elementor kit) ----------
 * Cobrem body, h1-h6, p, blog (blog_h*, blog_p, blog_title) e widgets Elementor que
 * usam var(--e-global-typography-uicore_*). Sem isto o fallback e Times New Roman.
 * Especificidade (0,1,2) > original (:root body = 0,1,1; .elementor-kit-5 = 0,1,0). */
html:root body,
html body.elementor-kit-5 {
  --uicore-primary-font-family: "Inter", "Inter Fallback", "Inter Fallback Android", sans-serif;
  --uicore-secondary-font-family: "Inter", "Inter Fallback", "Inter Fallback Android", sans-serif;
  --uicore-accent-font-family: "Inter", "Inter Fallback", "Inter Fallback Android", sans-serif;
  --uicore-text-font-family: "Inter", "Inter Fallback", "Inter Fallback Android", sans-serif;
  --e-global-typography-uicore_primary-font-family: "Inter", "Inter Fallback", "Inter Fallback Android", sans-serif;
  --e-global-typography-uicore_secondary-font-family: "Inter", "Inter Fallback", "Inter Fallback Android", sans-serif;
  --e-global-typography-uicore_text-font-family: "Inter", "Inter Fallback", "Inter Fallback Android", sans-serif;
  --e-global-typography-uicore_accent-font-family: "Inter", "Inter Fallback", "Inter Fallback Android", sans-serif;
}

/* ---------- 2) Pilhas literais "Inter, ..." ----------
 * Gerado por varredura do CSSOM em 15 paginas da previa (26/09): toda regra cujo
 * font-family comeca com Inter e nao tem fallback metrico. Mesmo seletor com prefixo
 * `html` (ou `html:root`) para vencer o empate; !important onde o original tinha.
 * Comentario = arquivo de origem (onde corrigir na fonte em producao).
 * Nenhum seletor de icone entra aqui (so regras cujo 1o family e Inter).
 * Camadas pages/*.css de outras frentes que mudarem depois precisam trazer o
 * fallback na propria pilha: Inter, "Inter Fallback", "Inter Fallback Android", ... */

html .elementor-1494 .elementor-nav-menu--main .elementor-item,  /* elementor e7d9c876 */
html .elementor-1494 .elementor-nav-menu--main .elementor-sub-item,  /* elementor e7d9c876 */
html .elementor-1494 :is(.elementor-widget-button .elementor-button, .vhdr-mobile-login),  /* elementor e7d9c876 */
html .elementor-1494 .elementor-nav-menu--dropdown .elementor-item,  /* elementor e7d9c876 */
html .elementor-1494 .elementor-nav-menu--dropdown .elementor-sub-item,  /* elementor e7d9c876 */
html #pv-design :is(.pv-button, .sol-btn, .loc-btn, .rep-btn)  /* elementor a11d2251 */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", sans-serif !important;
}

html .elementor-1494 .vhdr-products-heading > span,  /* elementor e7d9c876 */
html .elementor-1494 .vhdr-products-menu > .vhdr-formats-heading,  /* elementor e7d9c876 */
html .elementor-kit-5 input[type="button"],  /* uicore-global.css */
html .elementor-kit-5 input[type="submit"],  /* uicore-global.css */
html .elementor-kit-5 [type="submit"],  /* uicore-global.css */
html .elementor-kit-5 .wp-block-button__link,  /* uicore-global.css */
html .uicore-mobile-menu-wrapper .uicore-cta-wrapper a,  /* uicore-global.css */
html .uicore-left-menu .uicore-cta-wrapper a,  /* uicore-global.css */
html .wc-block-components-button:not(.is-link),  /* uicore-global.css */
html .elementor-kit-5 .elementor-button.elementor-button,  /* uicore-global.css */
html .elementor-kit-5 .elementor-button:not(.bdt-offcanvas-button),  /* uicore-global.css */
html .elementor-kit-5 .bdt-button-primary,  /* uicore-global.css */
html .elementor-kit-5 .bdt-ep-button,  /* uicore-global.css */
html button.metform-btn,  /* uicore-global.css */
html button.metform-btn:not(.toggle),  /* uicore-global.css */
html .elementor-kit-5 .bdt-callout a.bdt-callout-button,  /* uicore-global.css */
html .elementor-kit-5 .tutor-button,  /* uicore-global.css */
html .elementor-kit-5 .tutor-login-form-wrap input[type="submit"],  /* uicore-global.css */
html .uicore-navbar a.uicore-btn,  /* uicore-global.css */
html .elementor-kit-5 .bdt-contact-form .elementor-button,  /* uicore-global.css */
html #visu-home-v4 .r4-screen-top,  /* home.3addec9833.css */
html #visu-home-v4 .r4-stage-controls button,  /* home.3addec9833.css */
html #visu-home-v4 .r4-profile-selector button,  /* home.3addec9833.css */
html #visu-home-v4 .r4-qr-bridge h4,  /* home.3addec9833.css */
html #home-product-preview .home-preview-close,  /* home.3addec9833.css */
html #pv-design .pv-tabs button  /* elementor a11d2251 */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", sans-serif;
}

html #visu-products-scope,  /* uicore-global.css */
html .visu-page-scope  /* uicore-global.css */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, "Segoe UI", Roboto, Arial, sans-serif;
}

html .visu-page-scope .fluentform .ff-btn-submit  /* uicore-global.css */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, -apple-system, sans-serif !important;
}

html body .elementor-1494 .v5-signup,  /* site.css */
html body .elementor-1494 .v5-menu-signup,  /* site.css */
html:root:lang(en) body.page-id-6959 .valt-lead,  /* site.css */
html:root:lang(en) body.page-id-6959 .valt-jump a,  /* site.css */
html:root:lang(en) body.page-id-6959 .valt .valt-btn,  /* site.css */
html #visu-home-v4 .r4-hero,  /* home.3addec9833.css */
html #visu-home-v4 .r4-products,  /* home.3addec9833.css */
html #visu-home-v4 #how.p5-how,  /* home.3addec9833.css */
html #visu-home-v4 #in-use.p5-cases,  /* home.3addec9833.css */
html #visu-home-v4 #segments.p5-audiences,  /* home.3addec9833.css */
html #home-product-preview,  /* home.3addec9833.css */
html #home-product-preview h2,  /* home.3addec9833.css */
html #pv-design,  /* elementor a11d2251 */
html #pv-design .pv-page :is(h1, h2, h3),  /* elementor a11d2251 */
html #sv-solutions,  /* elementor ecdd5289 */
html #visu-guides-v1,  /* elementor 29609f3c */
html #visu-guides-v1 .vg-category-number,  /* elementor 29609f3c */
html #visu-guides-v1 .vg-select-trigger,  /* elementor 29609f3c */
html #visu-guides-v1 .vg-select-option,  /* elementor 29609f3c */
html #cv-contact,  /* elementor 4a40c44f */
html #visu-hub[data-version="attention-hub-v1"]  /* elementor dbb80ca1 */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, sans-serif;
}

html:root:lang(en) body.page-id-1202 #visu-solutions,  /* site.css */
html:root:lang(en) body.page-id-6959 .valt,  /* site.css */
html #visu-home-v4  /* home.3addec9833.css */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, -apple-system, "Segoe UI", sans-serif;
}

html:root:lang(en) body.page-id-6959.valt-on header.uicore-page-title h1  /* site.css */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, -apple-system, "Segoe UI", sans-serif !important;
}

html:root:lang(en) body.page-id-6959 .valt :is(h2, h3),  /* site.css */
html #sv-solutions :is(h1, h2, h3, h4),  /* elementor ecdd5289 */
html #cv-contact :is(h1, h2, h3)  /* elementor 4a40c44f */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, sans-serif !important;
}

html .visu-float-widget  /* inline */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, -apple-system, sans-serif;
}

html #visu-products-page  /* inline */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif !important;
}

html #visu-country,  /* inline */
html #visu-hub  /* inline */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;
}

html #visu-partners-v2,  /* inline */
html #visu-partners-v2 .pv-phone-bar,  /* inline */
html #visu-partners-v2 figcaption,  /* inline */
html #visu-partners-v2 summary  /* inline */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", Arial, sans-serif;
}

html #visu-uses  /* inline */ {
  font-family: Inter, "Inter Fallback", "Inter Fallback Android", -apple-system, BlinkMacSystemFont, sans-serif;
}

/* pages/06-light-chrome.css */
/* 06-light-chrome.css: light header, dropdowns, mega menus and footer on every page (site-wide light, 2026-10-04).
   Moved from home-v9/header-light.css. site.css and header-v1 use !important on most of these, hence the !important here. */

body .elementor-1494 {
  --h-ink: #0a1324;
  --h-ink-2: #3a4860;
  --h-muted: #5d6a7e;
  --h-line: rgba(10, 19, 36, 0.08);
  --h-accent: #19b4ef;
  --h-accent-text: #0670a6;
}

/* Bar */
body .elementor-1494 :is(.elementor-element-b2f28d2, .elementor-element-9185a30) {
  background: var(--vl-surface) !important; /* solid: a translucent bar went grey over dark sections */
  border-bottom: 1px solid var(--h-line) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.6) inset, 0 8px 24px -18px rgba(10, 19, 36, 0.25) !important;
}

/* Top-level nav */
body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item {
  color: var(--h-ink-2) !important;
  fill: var(--h-ink-2) !important;
}
body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:is(:hover, :focus-visible, .highlighted, .elementor-item-active) {
  color: var(--h-ink) !important;
}
body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item.highlighted { color: var(--h-accent-text) !important; }
body .elementor-1494 .elementor-nav-menu--main .elementor-item::after,
body .elementor-1494 .elementor-nav-menu--main .elementor-item::before { background-color: var(--h-accent) !important; }
body .elementor-1494 .elementor-nav-menu--main .sub-arrow svg { fill: currentColor !important; }

/* Log in ghost */
body .elementor-1494 .elementor-element-b2f28d2 .elementor-widget-button .elementor-button,
body .elementor-1494.elementor-location-header a.vhdr-mobile-login {
  border-color: rgba(10, 19, 36, 0.16) !important;
  background: var(--vl-surface) !important;
  color: var(--h-ink) !important;
  box-shadow: 0 1px 2px rgba(10, 19, 36, 0.05) !important;
}
body .elementor-1494 .elementor-element-b2f28d2 .elementor-widget-button .elementor-button:is(:hover, :focus-visible),
body .elementor-1494.elementor-location-header a.vhdr-mobile-login:is(:hover, :focus-visible, :active) {
  border-color: rgba(10, 19, 36, 0.32) !important;
  background: var(--vl-surface) !important;
  color: var(--h-ink) !important;
}
body .elementor-1494 .elementor-widget-button .elementor-button,
body .elementor-1494 .elementor-widget-button .elementor-button *,
body .elementor-1494 a.vhdr-mobile-login { color: #0a1324 !important; -webkit-text-fill-color: #0a1324 !important; }
body .elementor-1494 .v5-signup {
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset, 0 8px 20px -10px rgba(25, 180, 239, 0.7);
}
body .elementor-1494 .v5-signup:hover { background: #0ea3dd; }
body .elementor-1494 .v5-signup:is(:link, :visited, :hover, :focus-visible, :active) { color: #03121d !important; }

/* Dropdown panels */
body .elementor-1494 .elementor-nav-menu--main .sub-menu {
  background: var(--vl-surface) !important;
  border: 1px solid var(--h-line) !important;
  box-shadow: 0 2px 6px rgba(10, 19, 36, 0.04), 0 32px 64px -24px rgba(10, 19, 36, 0.22) !important;
}
body .elementor-1494 .elementor-nav-menu--main .sub-menu a.elementor-sub-item {
  color: var(--h-ink) !important;
  background: transparent !important;
}
body .elementor-1494 .elementor-nav-menu--main .sub-menu a.elementor-sub-item:is(:hover, :focus-visible) {
  background: #f3f7fb !important;
  color: var(--h-ink) !important;
}
body .elementor-1494 .elementor-nav-menu--main .sub-menu li.vhdr-current-item > a { background: #eef6fc !important; }
body .elementor-1494 .sub-menu .vhdr-product-name,
body .elementor-1494 .elementor-nav-menu--main .sub-menu li.vhdr-current-item > a .vhdr-product-name { color: var(--h-ink) !important; }
body .elementor-1494 .sub-menu .vhdr-product-desc,
body .elementor-1494 .elementor-nav-menu--main .sub-menu li.vhdr-current-item > a .vhdr-product-desc { color: var(--h-muted) !important; }
body .elementor-1494 .sub-menu :is(.vhdr-products-heading, .vhdr-formats-heading) { border-color: var(--h-line) !important; }
body .elementor-1494 .sub-menu :is(.vhdr-products-heading, .vhdr-formats-heading) span { color: var(--h-ink) !important; }
body .elementor-1494 .sub-menu .vhdr-formats-heading span { color: var(--h-muted) !important; }
body .elementor-1494 .sub-menu .vhdr-products-heading a.elementor-sub-item { color: var(--h-accent-text) !important; background: transparent !important; }
body .elementor-1494 .sub-menu .vhdr-format { border-color: var(--h-line) !important; }
body .elementor-1494 .sub-menu .vhdr-product-icon {
  background: #f1f7fc !important;
  border-color: rgba(10, 19, 36, 0.06) !important;
}
body .elementor-1494 .sub-menu li { border-color: var(--h-line) !important; }

/* Mobile */
body .elementor-1494 .elementor-menu-toggle { color: var(--h-ink) !important; }
body .elementor-1494 .elementor-menu-toggle svg { fill: var(--h-ink) !important; }
@media (max-width: 1024px) {
  body .elementor-1494 .elementor-element-9185a30 nav.elementor-nav-menu--dropdown.elementor-nav-menu__container {
    background: var(--vl-surface) !important;
    border-top-color: var(--h-line) !important;
    box-shadow: 0 32px 64px rgba(10, 19, 36, 0.18) !important;
  }
  body .elementor-1494 .elementor-element-9185a30 nav.elementor-nav-menu--dropdown :is(a, span, button) { color: var(--h-ink) !important; }
  body .elementor-1494 .elementor-element-9185a30 nav.elementor-nav-menu--dropdown :is(li, .sub-menu) { background: transparent !important; border-color: var(--h-line) !important; }
  body .elementor-1494 .elementor-element-9185a30 nav.elementor-nav-menu--dropdown .vhdr-product-desc { color: var(--h-muted) !important; }
  body .elementor-1494 .elementor-element-9185a30 nav.elementor-nav-menu--dropdown .v5-menu-signup { color: #03121d !important; }
}


/* Products dropdown, matching the light header prototype: sentence-case headings, tinted product
   tiles in each product's color, compact rows, formats as an even row split by hairlines. */
body .elementor-1494 .sub-menu .vhdr-products-heading span {
  text-transform: none !important;
  letter-spacing: -0.01em !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  color: #0a1324 !important;
}
body .elementor-1494 .sub-menu .vhdr-formats-heading {
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  color: #5d6a7e !important;
}
body .elementor-1494 .sub-menu .vhdr-product > a { min-height: 0 !important; align-items: center !important; padding: 12px 14px !important; border-radius: 12px !important; }
body .elementor-1494 .sub-menu .vhdr-product-name { font-size: 15px !important; font-weight: 600 !important; }
body .elementor-1494 .sub-menu .vhdr-product-icon { border-radius: 11px !important; box-shadow: none !important; }
body .elementor-1494 .sub-menu a[data-product="visulink"] .vhdr-product-icon { background: #e8f6fd !important; color: #0a8fd0 !important; }
body .elementor-1494 .sub-menu a[data-product="visulocal"] .vhdr-product-icon { background: #e8f6ee !important; color: #15924a !important; }
body .elementor-1494 .sub-menu a[data-product="visureplay"] .vhdr-product-icon { background: #fdf0e4 !important; color: #d9690f !important; }
body .elementor-1494 .sub-menu a[data-product^="visu-ads"] .vhdr-product-icon,
body .elementor-1494 .sub-menu a[data-product="visuads"] .vhdr-product-icon { background: #f0ecfd !important; color: #6a4fd6 !important; }
body .elementor-1494 .sub-menu .vhdr-format > a { justify-content: center !important; text-align: center; }
body .elementor-1494 .sub-menu .vhdr-format + .vhdr-format > a { box-shadow: inset 1px 0 0 rgba(10, 19, 36, 0.08) !important; }

/* ---------- Mega menus (Solutions, Guides), Hub icons, caret, active item ---------- */

@media (min-width: 1025px) {
  /* Active top-level item: accent text + underline on the bar's bottom edge, no pill. */
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item { position: relative; background: transparent !important; }
  /* Same accent + underline for an open dropdown, hover/focus on any item (incl. Locations, Partners) and the current section. */
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:is(.highlighted, :hover, :focus-visible, .elementor-item-active),
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li:is(.current-menu-item, .current-menu-ancestor, .vhdr-ancestor) > .elementor-item { color: #0670a6 !important; }
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:is(.highlighted, :hover, :focus-visible, .elementor-item-active)::after,
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li:is(.current-menu-item, .current-menu-ancestor, .vhdr-ancestor) > .elementor-item::after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    left: 14px !important;
    right: 14px !important;
    bottom: 4px !important; /* ~10px under the text; the text itself is already centered in the bar */
    top: auto !important;
    height: 2px !important;
    width: auto !important;
    border-radius: 2px;
    background: #19b4ef !important;
    opacity: 1 !important;
    transform: none !important;
  }

  /* Caret: a rotated square on the panel's top edge, aimed by JS (--vhdr-caret-x). */
  body .elementor-1494 .elementor-nav-menu--main .sub-menu.vhdr-panel { overflow: visible !important; }
  body .elementor-1494 .elementor-nav-menu--main .sub-menu.vhdr-panel::before {
    content: "";
    position: absolute;
    top: -7px;
    left: var(--vhdr-caret-x, 40px);
    width: 12px;
    height: 12px;
    margin-left: -6px;
    background: var(--vl-surface);
    border-left: 1px solid rgba(10, 19, 36, 0.08);
    border-top: 1px solid rgba(10, 19, 36, 0.08);
    border-top-left-radius: 3px;
    transform: rotate(45deg);
    pointer-events: none;
  }

  /* Mega panel: fixed like Products, three grouped columns. */
  body .elementor-1494.elementor-location-header .elementor-nav-menu--main .vhdr-mega-menu {
    position: fixed !important;
    top: var(--vhdr-menu-top, 84px) !important;
    width: 600px !important;
    min-width: 600px !important;
    max-width: calc(100vw - 48px) !important;
    margin: 0 !important;
    padding: 22px 24px 18px !important;
    border-radius: 18px !important;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: min-content;
    column-gap: 0;
  }
  body .elementor-1494 .elementor-nav-menu--main .vhdr-mega-menu[aria-hidden="false"] { display: grid !important; }
  body .elementor-1494 .elementor-nav-menu--main .vhdr-mega-menu[aria-hidden="true"] { display: none !important; }
  body .elementor-1494 .vhdr-mega-menu > .vhdr-mega-heading {
    grid-column: 1 / -1;
    grid-row: 1;
    display: flex !important;
    justify-content: space-between !important;
    align-items: center;
    gap: 16px;
    width: 100% !important;
    padding: 0 0 16px !important;
    border-bottom: 1px solid rgba(10, 19, 36, 0.08);
  }
  body .elementor-1494 .vhdr-mega-heading span { color: #0a1324 !important; font: 600 15px/1.3 "VISU Inter", Inter, system-ui, sans-serif; letter-spacing: -0.01em; }
  body .elementor-1494 .vhdr-mega-heading a.elementor-sub-item { padding: 0 !important; margin-left: auto !important; color: #0670a6 !important; font-size: 13px !important; font-weight: 500 !important; background: transparent !important; }
  body .elementor-1494 .vhdr-mega-menu > .vhdr-mega-label {
    padding: 16px 16px 8px !important;
    color: #5d6a7e !important;
    font: 600 12.5px/1.3 "VISU Inter", Inter, system-ui, sans-serif;
  }
  body .elementor-1494 .vhdr-mega-menu > li:is(.vhdr-mega-label, .vhdr-mega-item) { border-left: 1px solid rgba(10, 19, 36, 0.08); }
  body .elementor-1494 .vhdr-mega-menu > li.vhdr-col-1:is(.vhdr-mega-label, .vhdr-mega-item) { border-left: 0; }
  body .elementor-1494 .vhdr-mega-menu > li.vhdr-col-1.vhdr-mega-label { padding-left: 0 !important; }
  /* Column 1 keeps the same inner padding as the others (hover/active pill no longer touches the text);
     the negative margin keeps its text aligned with the group label. */
  body .elementor-1494 .vhdr-mega-menu > li.vhdr-col-1.vhdr-mega-item > a.elementor-sub-item { padding-left: 8px !important; margin-left: -8px !important; }
  body .elementor-1494 .vhdr-mega-menu > .vhdr-mega-item { padding: 0 8px; }
  body .elementor-1494 .vhdr-mega-menu > li.vhdr-col-1.vhdr-mega-item { padding-left: 0; }
  body .elementor-1494 .vhdr-mega-menu > .vhdr-mega-item > a.elementor-sub-item {
    display: block !important;
    padding: 7px 8px !important;
    border-radius: 8px !important;
    font-size: 14.5px !important;
    font-weight: 500 !important;
    line-height: 1.35 !important;
    white-space: nowrap;
    min-height: 0 !important;
  }
  body .elementor-1494 .vhdr-mega-menu > li { min-height: 0 !important; margin: 0 !important; }

  /* Hub: small list with icons. */
  body .elementor-1494 .vhdr-hub-menu { padding: 8px !important; border-radius: 14px !important; min-width: 200px !important; }
  body .elementor-1494 .vhdr-hub-menu a.elementor-sub-item { display: flex !important; align-items: center; gap: 12px; padding: 9px 12px !important; border-radius: 9px !important; font-size: 14.5px !important; }
  body .elementor-1494 .vhdr-hub-icon { display: inline-grid; place-items: center; width: 20px; height: 20px; color: #3a4860; }
  body .elementor-1494 .vhdr-hub-icon svg { width: 19px; height: 19px; }
}

@media (min-width: 1025px) {
  /* Elementor's own pointer draws a second underline; ours replaces it. */
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item::before { display: none !important; }
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li:not(.current-menu-item, .current-menu-ancestor, .vhdr-ancestor) > .elementor-item:not(.highlighted, :hover, :focus-visible, .elementor-item-active)::after { opacity: 0 !important; }
}

@media (min-width: 1025px) {
  /* "All …" links: content width, text-only hover (they inherited flex-grow and a full-row hover fill). */
  body .elementor-1494 .sub-menu :is(.vhdr-products-heading, .vhdr-mega-heading) > a.elementor-sub-item {
    flex: 0 0 auto !important;
    width: auto !important;
    min-height: 0 !important;
    margin-left: auto !important;
    padding: 4px 0 !important;
    background: transparent !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    color: #0670a6 !important;
  }
  body .elementor-1494 .sub-menu :is(.vhdr-products-heading, .vhdr-mega-heading) > a.elementor-sub-item:is(:hover, :focus-visible) {
    background: transparent !important;
    color: #0a1324 !important;
    text-decoration: underline !important;
    text-underline-offset: 3px;
  }
  /* Panels sit 10px lower so the caret clears the active underline on the bar edge. */
  body .elementor-1494.elementor-location-header .elementor-nav-menu--main :is(.vhdr-products-menu, .vhdr-mega-menu) {
    top: calc(var(--vhdr-menu-top, 84px) + 10px) !important;
  }
  body .elementor-1494 .elementor-nav-menu--main .sub-menu.vhdr-hub-menu { margin-top: 30px !important; }
}

@media (min-width: 1025px) {
  /* Pill instead of underline (owner's call): same 40px height and 10px radius as Log in / Get started. */
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item {
    padding-top: 10px !important;
    padding-bottom: 10px !important;
    border-radius: 10px !important;
    transition: background-color 0.18s ease, color 0.18s ease !important;
  }
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item::after { display: none !important; }
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:is(.highlighted, :hover, :focus-visible, .elementor-item-active),
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li:is(.current-menu-item, .current-menu-ancestor, .vhdr-ancestor) > .elementor-item {
    background: rgba(25, 180, 239, 0.1) !important;
    color: #0670a6 !important;
  }
  /* Panel 12px under the bar line; caret tip stays below the line. */
  body .elementor-1494.elementor-location-header .elementor-nav-menu--main :is(.vhdr-products-menu, .vhdr-mega-menu) {
    top: calc(var(--vhdr-menu-top, 84px) + 8px) !important;
  }
  body .elementor-1494 .elementor-nav-menu--main .sub-menu.vhdr-hub-menu { margin-top: 26px !important; }
}
@media (min-width: 1025px) {
  /* Matches the specificity of the old underline rules so the pill fully replaces them. */
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li > .elementor-item:is(.highlighted, :hover, :focus-visible, .elementor-item-active, :not(.x))::after,
  body .elementor-1494 .elementor-nav-menu--main .elementor-nav-menu > li:is(.current-menu-item, .current-menu-ancestor, .vhdr-ancestor, :not(.x)) > .elementor-item::after { display: none !important; content: none !important; }
}


/* BR/ES login widget carries Elementor's default 20px bottom margin; zero it so it centers with the signup pill. */
body .elementor-1494 .elementor-element-b2f28d2 .elementor-widget-button { margin-bottom: 0 !important; }

/* ---------- Footer, light to match the body ---------- */

body #uicore-tb-footer { background: var(--vl-surface) !important; border-top: 1px solid rgba(10, 19, 36, 0.08); }
body #uicore-tb-footer .elementor-element { background-color: transparent !important; background-image: none !important; }
body #uicore-tb-footer :is(p, a, span, li) { color: #4a5870 !important; }
body #uicore-tb-footer a:hover { color: #0a1324 !important; }
body #uicore-tb-footer :is(h2, h3, h4, h5, .elementor-heading-title) { color: #0a1324 !important; }
body #uicore-tb-footer :is(svg, i) { color: #0a1324 !important; fill: currentColor; }
body #uicore-tb-footer .elementor-social-icon { background: #f1f5f9 !important; }
body #uicore-tb-footer hr,
body #uicore-tb-footer .elementor-divider-separator { border-color: rgba(10, 19, 36, 0.08) !important; }

/* ---------- Polish v9.1: annotations, section color rhythm, less repetition ---------- */

@font-face {
  font-family: "VISU Hand";
  src: url("home-v9/caveat.woff2") format("woff2");
  font-weight: 400 700;
  font-display: swap;
}

/* Handwritten notes with a drawn arrow, used only twice (hero, Link) so they stay special. */
#visu-home-v9 .v9-note {
  position: absolute;
  z-index: 3;
  max-width: 150px;
  font-family: "VISU Hand", "Segoe Print", cursive;
  font-size: 23px;
  font-weight: 500;
  line-height: 1.12;
  letter-spacing: 0;
  pointer-events: none;
}
#visu-home-v9 .v9-note svg { display: block; width: 52px; height: 60px; margin-top: 6px; stroke-width: 2; }
/* Hero note lives in its own right-hand column (art leaves room for it), arrow drops onto the Replay card. */
#visu-home-v9 .v9-note-hero { top: 11%; right: -70px; width: 132px; color: #334a63; text-align: center; transform: rotate(-4deg); }
#visu-home-v9 .v9-note-hero svg { width: 46px; height: 54px; margin: 6px 0 0 14px; color: var(--accent); }
#visu-home-v9 .v9-orbit {
  position: absolute;
  z-index: 1;
  /* Ends land exactly on the profile card edge (11.24% of the art), so the orbit reads as passing behind it. */
  left: -2.27%;
  top: 30%;
  width: 13.51%;
  height: 44%;
  color: var(--accent);
  stroke-width: 1.6;
  stroke-dasharray: 6 7;
  opacity: 0.6;
}
#visu-home-v9 .v9-hero-art { isolation: isolate; }

/* Link: full-bleed pale blue band, photo reaches the band edges. */
#visu-home-v9 .v9-link {
  margin-top: 72px;
  padding: 112px 0;
  min-height: 700px;
  background: linear-gradient(180deg, #edf5fb 0%, #e3eef8 100%);
}
#visu-home-v9 .v9-link-photo {
  width: 60%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 24%);
  mask-image: linear-gradient(90deg, transparent 0, #000 24%);
}
#visu-home-v9 .v9-note-link { top: 17%; left: calc(46% + 30px); color: var(--ink); transform: rotate(-4deg); text-shadow: 0 0 10px rgba(255, 255, 255, 0.95), 0 0 2px rgba(255, 255, 255, 0.9); }
#visu-home-v9 .v9-note-link svg { filter: drop-shadow(0 0 3px rgba(255, 255, 255, 0.9)); }
#visu-home-v9 .v9-note-link svg { margin-left: 46px; }
#visu-home-v9 .v9-link-copy { max-width: 560px; }
#visu-home-v9 .v9-features { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; }
#visu-home-v9 .v9-features li { font-size: 15px; }
#visu-home-v9 .v9-features svg { background: rgba(255, 255, 255, 0.8); }

/* Local: panel lifts into the end of the blue band. */
#visu-home-v9 .v9-local { padding-top: 96px; }

/* Replay: white band; art feathered into it. */
#visu-home-v9 .v9-replay {
  margin-top: 104px;
  background: var(--vl-surface);
  border-block: 1px solid var(--line);
}
#visu-home-v9 .v9-feather {
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%), linear-gradient(180deg, transparent 0, #000 9%, #000 91%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0, #000 7%, #000 93%, transparent 100%), linear-gradient(180deg, transparent 0, #000 9%, #000 91%, transparent 100%);
  mask-composite: intersect;
}
#visu-home-v9 .v9-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 28px; }
#visu-home-v9 .v9-chips li {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  height: 38px;
  padding: 0 14px 0 12px;
  border: 1px solid var(--line-2);
  border-radius: 999px;
  background: var(--vl-bg);
  color: var(--ink);
  font-size: 14px;
  font-weight: 550;
}
#visu-home-v9 .v9-chips svg { width: 16px; height: 16px; color: #d9690f; stroke-width: 1.9; }

/* Ads: three columns (copy, campaign, benefits) on a lavender field. */
#visu-home-v9 .v9-ads { padding-top: 104px; }
#visu-home-v9 .v9-panel-tint {
  background: linear-gradient(135deg, #f4f1fe 0%, #eef5fd 100%);
  border-color: rgba(106, 79, 214, 0.1);
}
#visu-home-v9 .v9-ads-grid {
  grid-template-columns: minmax(0, 4.4fr) minmax(0, 4.4fr) minmax(0, 3.2fr);
  column-gap: 8px;
  padding: 56px 48px 40px 64px;
}
#visu-home-v9 .v9-ads-art { margin: -40px -32px; }
#visu-home-v9 .v9-ads-art img { width: 150%; margin-left: -25%; }
#visu-home-v9 .v9-benefits {
  grid-column: auto;
  grid-template-columns: minmax(0, 1fr);
  margin-top: 0;
  box-shadow: var(--shadow-md);
}
#visu-home-v9 .v9-benefits li { padding: 22px 22px; }
#visu-home-v9 .v9-benefits li + li { border-left: 0; border-top: 1px solid var(--line); }
#visu-home-v9 .v9-benefits .v9-icon { background: #f0ecfd; border-color: rgba(106, 79, 214, 0.14); color: #6a4fd6; }
#visu-home-v9 .v9-ads-note { margin-top: 24px; }
#visu-home-v9 .v9-ads h2 { font-size: clamp(32px, 3.2vw, 46px); }

/* Audiences: which products serve each world. */
#visu-home-v9 .v9-uses { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 16px; }
#visu-home-v9 .v9-uses span {
  padding: 5px 10px;
  border-radius: 999px;
  font-size: 12.5px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--p-color);
  background: var(--p-bg);
}
#visu-home-v9 .v9-uses-link { --p-color: #0a7fba; --p-bg: #e8f6fd; }
#visu-home-v9 .v9-uses-local { --p-color: #13813f; --p-bg: #e8f6ee; }
#visu-home-v9 .v9-uses-replay { --p-color: #b9580b; --p-bg: #fdf0e4; }
#visu-home-v9 .v9-uses-ads { --p-color: #5a3fc4; --p-bg: #f0ecfd; }

/* FAQ + closing on one white band. */
#visu-home-v9 .v9-faq { margin-top: var(--section); background: var(--vl-surface); border-top: 1px solid var(--line); }
#visu-home-v9 .v9-faq-head .v9-body { margin-top: 20px; max-width: 34ch; }
#visu-home-v9 .v9-faq-head .v9-text-link { margin-top: 24px; }
#visu-home-v9 .v9-closing { background: var(--vl-surface); }


/* Dark-lettering logo from the first paint (the JS swap alone flashed the white "isu" on every navigation).
   Release: point this at the uploaded file, and switch the Elementor header/footer image itself so no override is needed. */
.elementor-location-header .elementor-widget-image img,
#uicore-tb-footer .elementor-widget-image img {
  content: url("home-v9/visu-logo-light.png");
}

/* Log in label: the theme sets a near-white text-fill on .elementor-button-text (0,4,0 !important); outrank it in every state. */
body .elementor-1494 .elementor-widget-button .elementor-button :is(.elementor-button-text, .elementor-button-content-wrapper),
body .elementor-1494 .elementor-widget-button .elementor-button:is(:hover, :focus-visible, :active) :is(.elementor-button-text, .elementor-button-content-wrapper) {
  color: #0a1324 !important;
  -webkit-text-fill-color: #0a1324 !important;
}

/* Log in and Get started: 8px apart like the prototype (site.css had 4px). */
body .elementor-1494 .v5-signup { margin-left: 8px !important; }

/* Footer text links: soft hover (ink + underline), keyboard focus too. */
body #uicore-tb-footer a { transition: color 0.18s ease, text-decoration-color 0.18s ease; text-decoration: underline !important; text-decoration-color: transparent !important; text-underline-offset: 3px; }
body #uicore-tb-footer a:is(:hover, :focus-visible) { color: #0670a6 !important; text-decoration-color: currentColor !important; }
body #uicore-tb-footer .elementor-social-icon { transition: background-color 0.18s ease, transform 0.18s ease; }
body #uicore-tb-footer .elementor-social-icon:hover { background: #e3eef8 !important; transform: translateY(-1px); }

/* Mobile hamburger: no tap flash (theme focus/hover background + transition:all + tap highlight).
   Instead the icon morphs: the incoming icon turns in from -90deg with a fade. */
body .elementor-1494 .elementor-menu-toggle,
body .elementor-1494 .elementor-menu-toggle:is(:hover, :focus, :focus-visible, :active, .elementor-active) {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  -webkit-tap-highlight-color: transparent !important;
  transition: none !important;
}
body .elementor-1494 .elementor-menu-toggle:is(:focus, :focus-visible) { outline: 0 !important; }
@media (hover: hover) { body .elementor-1494 .elementor-menu-toggle:focus-visible { outline: 2px solid #19b4ef !important; outline-offset: 2px; border-radius: 10px; } }
@keyframes vhdr-icon-in { from { opacity: 0; transform: rotate(-90deg) scale(0.7); } to { opacity: 1; transform: none; } }
body .elementor-1494 .elementor-menu-toggle:not(.elementor-active) .elementor-menu-toggle__icon--open,
body .elementor-1494 .elementor-menu-toggle.elementor-active .elementor-menu-toggle__icon--close {
  animation: vhdr-icon-in 0.22s cubic-bezier(0.22, 1, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  body .elementor-1494 .elementor-menu-toggle [class*="elementor-menu-toggle__icon"] { animation: none !important; }
}

/* ---------- Mobile menu submenus (light) ----------
   The dark-era rail (border-left on every sub-item) read as broken curves around the product rows.
   Clean rows instead: products as icon rows, ad formats as a 2x2 chip grid, other lists as plain rows. */
@media (max-width: 1024px) {
  body .elementor-1494 .elementor-nav-menu--dropdown .sub-menu { padding: 2px 0 14px !important; border: 0 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item {
    border: 0 !important;
    border-left: 0 !important;
    margin: 0 !important;
    border-radius: 12px !important;
    padding: 11px 12px !important;
    color: #0a1324 !important;
    -webkit-tap-highlight-color: transparent;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown .sub-menu a.elementor-sub-item:is(:hover, :active, :focus-visible) { background: #f3f7fb !important; }

  /* Products panel */
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-products-heading { display: flex !important; justify-content: flex-end; padding: 0 !important; border: 0 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-products-heading > span { display: none !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-products-heading a.elementor-sub-item {
    padding: 4px 12px 8px !important; font-size: 13.5px !important; font-weight: 600 !important; color: #0670a6 !important; background: transparent !important;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-product > a.elementor-sub-item { display: flex !important; align-items: center !important; gap: 14px !important; padding: 10px 12px !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-product-icon {
    flex: none; display: grid !important; place-items: center; width: 40px !important; height: 40px !important;
    border: 0 !important; border-radius: 11px !important; box-shadow: none !important;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown a[data-product="visulink"] .vhdr-product-icon { background: #e8f6fd !important; color: #0a8fd0 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown a[data-product="visulocal"] .vhdr-product-icon { background: #e8f6ee !important; color: #15924a !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown a[data-product="visureplay"] .vhdr-product-icon { background: #fdf0e4 !important; color: #d9690f !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown a[data-product^="visu-ads"] .vhdr-product-icon { background: #f0ecfd !important; color: #6a4fd6 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-product-name { font-size: 15.5px !important; font-weight: 600 !important; color: #0a1324 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-product-desc { font-size: 13px !important; color: #5d6a7e !important; }

  /* Ad formats: label + 2x2 chips */
  body .elementor-1494 .elementor-nav-menu--dropdown .sub-menu:has(.vhdr-format) { display: grid; grid-template-columns: 1fr 1fr; column-gap: 8px; }
  body .elementor-1494 .elementor-nav-menu--dropdown .sub-menu:has(.vhdr-format) > li:not(.vhdr-format) { grid-column: 1 / -1; }
  body .elementor-1494 .elementor-nav-menu--dropdown .sub-menu[data-vhdr-open="false"],
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-mobile-branch[data-vhdr-open="false"] > .sub-menu { display: none !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-mobile-branch[data-vhdr-open="true"] > .sub-menu:has(.vhdr-format) { display: grid !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-formats-heading {
    margin: 10px 12px 8px !important; padding: 14px 0 0 !important; border-top: 1px solid rgba(10, 19, 36, 0.08) !important;
    font-size: 12.5px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: #5d6a7e !important;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-format { margin-bottom: 8px; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-format > a.elementor-sub-item {
    display: flex !important; justify-content: center; padding: 10px 8px !important;
    border: 1px solid rgba(10, 19, 36, 0.12) !important; border-radius: 10px !important; background: var(--vl-surface) !important;
    font-size: 14px !important; font-weight: 500 !important;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-format:nth-of-type(odd) { margin-left: 12px; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-format:nth-of-type(even) { margin-right: 12px; }
}
@media (max-width: 1024px) {
  body .elementor-1494 .elementor-nav-menu--dropdown .sub-menu > li.vhdr-formats-heading { display: block !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-format > a.elementor-sub-item { justify-content: center !important; text-align: center !important; }
}
@media (max-width: 1024px) {
  body .elementor-1494.elementor-location-header .elementor-element-9185a30 nav.elementor-nav-menu--dropdown .sub-menu li.vhdr-format > a.elementor-sub-item { justify-content: center !important; text-align: center !important; }
}

/* Mobile Solutions / Guides (tiles) and Hub (icon rows), built by 07-header-mega.js (2026-10-05) */
@media (max-width: 1024px) {
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-mobile-branch[data-vhdr-open="true"] > .sub-menu.vhdr-m-tiles { display: grid !important; grid-template-columns: 1fr 1fr; gap: 6px 8px; padding: 2px 12px 14px !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-mobile-branch[data-vhdr-open="false"] > .sub-menu.vhdr-m-tiles { display: none !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .sub-menu.vhdr-m-tiles > li:not(.vhdr-m-tile) { grid-column: 1 / -1; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-all { display: flex !important; justify-content: flex-end; border: 0 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-all a.elementor-sub-item {
    padding: 4px 12px 8px !important; font-size: 13.5px !important; font-weight: 600 !important; color: #0670a6 !important; background: transparent !important;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-tiles .vhdr-m-all a.elementor-sub-item { padding-right: 0 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-label {
    display: block !important; margin: 6px 0 2px !important; padding: 10px 0 0 !important; border: 0 !important; border-top: 1px solid rgba(10, 19, 36, 0.08) !important;
    font-size: 12.5px !important; font-weight: 600 !important; letter-spacing: 0 !important; text-transform: none !important; color: #5d6a7e !important;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-all + .vhdr-m-label { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-tile { border: 0 !important; min-width: 0; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-tile > a.elementor-sub-item {
    display: flex !important; align-items: center !important; gap: 10px !important; height: 100%;
    padding: 9px 10px !important; border: 1px solid rgba(10, 19, 36, 0.10) !important; border-radius: 12px !important;
    background: var(--vl-surface, #fff) !important; font-size: 14px !important; font-weight: 500 !important; line-height: 1.25 !important; white-space: normal !important;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown :is(.vhdr-m-tile, .vhdr-m-row) .vhdr-m-icon {
    flex: none; display: grid !important; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: #eef6fc; color: #0670a6 !important;
  }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-icon svg { width: 17px; height: 17px; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-row { border: 0 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-row > a.elementor-sub-item { display: flex !important; align-items: center !important; gap: 14px !important; padding: 10px 12px !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-row .vhdr-m-icon { width: 40px; height: 40px; border-radius: 11px; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-row .vhdr-m-icon svg { width: 20px; height: 20px; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-text { display: grid; gap: 2px; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-name { font-size: 15.5px !important; font-weight: 600 !important; color: #0a1324 !important; }
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-desc { font-size: 13px !important; color: #5d6a7e !important; }
}

/* The site is light by design: opt out of browser-forced dark (Chrome Auto Dark Mode, Samsung Internet),
   which inverted the light pages into a muddy palette. The mu-plugin also prints the matching meta tag. */
:root { color-scheme: only light; }
@media (max-width: 1024px) {
  body .elementor-1494 .elementor-nav-menu--dropdown .vhdr-m-hub .vhdr-m-all a.elementor-sub-item { padding-right: 22px !important; }
}

/* pages/07-header-tools.css */
/* 07-header-tools.css: global (every page has the header). The rest of the tools CSS lives in design/tools-v1/tools.css
   and only loads on tool pages. */
/* Header "Tools" panel (07-header-mega.js retargetHub): name over a one-line description, desktop panel only.
   The mobile drawer reuses the .vhdr-m-row / .vhdr-m-text styles of the old Hub rows. */
.elementor-nav-menu--main .vhdr-tools-menu { min-width: 340px; }
.elementor-nav-menu--main .vhdr-tools-menu .vhdr-tools-item > a { align-items: center !important; padding-top: 9px !important; padding-bottom: 9px !important; }
.elementor-nav-menu--main .vhdr-tools-menu .vhdr-m-text { display: grid; gap: 1px; line-height: 1.3; }
.elementor-nav-menu--main .vhdr-tools-menu .vhdr-m-name { font-weight: 600; }
.elementor-nav-menu--main .vhdr-tools-menu .vhdr-m-desc { font-size: 12.5px; font-weight: 400; color: var(--vl-muted, #5d6a7e); }

/* pages/08-light-base.css */
/* 08-light-base.css: light shell for every WordPress page (2026-10-04, matches home v9).
 * Rhythm rule (owner): the page shell is light (background, type, ordinary cards, header/footer);
 * product showcases and app-screen mockups stay dark as accent panels, like the home's Local panel.
 * Per-group layers (2x-light-*.css) convert each widget; this file only sets the shell and tokens.
 * Scope body.page: blog posts (body.single-post) keep their body and only get the light chrome. */

:root {
  --vl-bg: #f7fafd;
  --vl-surface: #ffffff;
  --vl-ink: #0a1324;
  --vl-ink-2: #33415a;
  --vl-muted: #5d6a7e;
  --vl-line: rgba(10, 19, 36, 0.08);
  --vl-line-2: rgba(10, 19, 36, 0.14);
  --vl-accent: #19b4ef;
  --vl-accent-text: #0670a6;
  --vl-accent-ink: #03121d;
  --vl-tint: #eef6fc;
  --vl-navy: #06131f;
  --vl-shadow-sm: 0 1px 2px rgba(10, 19, 36, 0.04), 0 4px 16px rgba(10, 19, 36, 0.04);
  --vl-shadow-md: 0 2px 6px rgba(10, 19, 36, 0.04), 0 24px 56px -24px rgba(10, 19, 36, 0.18);
  --vl-radius: 20px;
}

/* Dimmed light (owner 2026-10-05): devices in dark mode keep the light site, but pure white glared and
   flattened the layers. Page bg steps down to grey-ice and surfaces sit just above it, so cards still
   separate from the page. Never a dark theme: visu.network stays light (color-scheme: only light).
   The home is excluded: its artwork has the #f7fafd / #fff backgrounds baked into the image edges. */
@media (prefers-color-scheme: dark) {
  :root {
    --vl-bg: #e6eaf0;
    --vl-surface: #f3f5f8;
    --vl-tint: #e0eaf3;
    --vl-line: rgba(10, 19, 36, 0.10);
    --vl-line-2: rgba(10, 19, 36, 0.17);
  }
  body:has(#visu-home-v9) {
    --vl-bg: #f7fafd;
    --vl-surface: #ffffff;
    --vl-tint: #eef6fc;
    --vl-line: rgba(10, 19, 36, 0.08);
    --vl-line-2: rgba(10, 19, 36, 0.14);
  }
  /* White set by the widgets' own CSS (network/uses), outside the 2x/3x/4x/5x light layers */
  body.page :is(.sol-stat-card, .sol-feature-card, .sol-why-card) { background: var(--vl-surface) !important; }
}

/* Shell */
html:has(> body.page) { background: var(--vl-bg); }
body.page,
body.page .uicore-body-content,
body.page :is(#primary, .content-area, .site-main, #uicore-page) {
  background-color: var(--vl-bg) !important;
  color: var(--vl-ink-2);
}

/* Type defaults (widget layers override where a panel stays dark) */
body.page .uicore-body-content :is(h1, h2, h3, h4, h5, h6),
body.page .uicore-body-content .elementor-widget-heading .elementor-heading-title {
  color: var(--vl-ink);
}
body.page .uicore-body-content .elementor-widget-text-editor { color: var(--vl-ink-2); }

/* Dark panels opt back into dark type. Widget layers add `.vl-dark` (or match their own panel class). */
body.page .vl-dark { background: var(--vl-navy) !important; color: rgba(226, 236, 246, 0.8); border-color: rgba(255, 255, 255, 0.08) !important; }
body.page .vl-dark :is(h1, h2, h3, h4, h5, h6) { color: #fff !important; }

/* Selection and focus in the light palette */
body.page ::selection { background: rgba(25, 180, 239, 0.22); color: var(--vl-ink); }
body.page :focus-visible { outline-color: var(--vl-accent); }

/* pages/09-buttons.css */
/* 09-buttons.css: one primary button across visu.network (owner 2026-10-05). Audit found 22 blue buttons on 12 pages
 * with four hover behaviours (darker, lighter, none, and two unreadable: blue text on blue / dark text on dark blue).
 * Standard: accent #19b4ef + ink #03121d; hover darkens to #0ea3dd, active #0b93c8; text never changes colour.
 * Page layers win with ID selectors (some triple), so this rule carries four :not(#id) to outrank them. */
html body :is(
  a.v5-signup, .v9-btn-primary, .pv-button, .vpp-btn--dark, .sol-btn-primary, a.vps-cta, .v3-button,
  .ff-btn-submit, .vp-btn--primary, .vg-button, .v-btn--primary, .vls-btn, .v-partner-card__invite-btn,
  .ah-button, a.vb-card-cta, .visu-btn-primary
):not(#vbtn-a):not(#vbtn-b):not(#vbtn-c):not(#vbtn-d):not(.pv-button-secondary, .vg-ghost, .ah-ghost, .v-btn--secondary, .v-btn--ghost, .sol-btn-ghost) {
  background: #19b4ef !important;
  background-image: none !important;
  color: #03121d !important;
  -webkit-text-fill-color: #03121d !important;
  border-color: transparent !important;
  filter: none !important;
  transition: background-color .15s ease, box-shadow .15s ease !important;
}
html body :is(
  a.v5-signup, .v9-btn-primary, .pv-button, .vpp-btn--dark, .sol-btn-primary, a.vps-cta, .v3-button,
  .ff-btn-submit, .vp-btn--primary, .vg-button, .v-btn--primary, .vls-btn, .v-partner-card__invite-btn,
  .ah-button, a.vb-card-cta, .visu-btn-primary
):not(#vbtn-a):not(#vbtn-b):not(#vbtn-c):not(#vbtn-d):not(.pv-button-secondary, .vg-ghost, .ah-ghost, .v-btn--secondary, .v-btn--ghost, .sol-btn-ghost):is(:hover, :focus-visible) {
  background: #0ea3dd !important;
  color: #03121d !important;
  -webkit-text-fill-color: #03121d !important;
  filter: none !important;
}
html body :is(
  a.v5-signup, .v9-btn-primary, .pv-button, .vpp-btn--dark, .sol-btn-primary, a.vps-cta, .v3-button,
  .ff-btn-submit, .vp-btn--primary, .vg-button, .v-btn--primary, .vls-btn, .v-partner-card__invite-btn,
  .ah-button, a.vb-card-cta, .visu-btn-primary
):not(#vbtn-a):not(#vbtn-b):not(#vbtn-c):not(#vbtn-d):not(.pv-button-secondary, .vg-ghost, .ah-ghost, .v-btn--secondary, .v-btn--ghost, .sol-btn-ghost):active {
  background: #0b93c8 !important;
}
html body :is(
  a.v5-signup, .v9-btn-primary, .pv-button, .vpp-btn--dark, .sol-btn-primary, a.vps-cta, .v3-button,
  .ff-btn-submit, .vp-btn--primary, .vg-button, .v-btn--primary, .vls-btn, .v-partner-card__invite-btn,
  .ah-button, a.vb-card-cta, .visu-btn-primary
):not(#vbtn-a):not(#vbtn-b):not(#vbtn-c):not(#vbtn-d):not(.pv-button-secondary, .vg-ghost, .ah-ghost, .v-btn--secondary, .v-btn--ghost, .sol-btn-ghost) * { color: inherit !important; -webkit-text-fill-color: inherit !important; }

/* pages/15-contact-routing.css */
/* Contato: WhatsApp flutuante do /products/visulink/ sai (gerava "I have a question about VISU Link" genérico
   direto no WhatsApp do dono). Volta quando houver atendimento automático. */
html:lang(en) #vl-wa-float {
  display: none !important;
}

/* pages/16-fixes.css */
/* Correções de bugs pré-existentes (também presentes no ar). */

/* /products/: o container raiz (81b289f) fica sem --display; `display: var(--display)` do Elementor cai no
   valor inicial (inline) e a linha inline abre um vão de ~30px entre o header e a sub-barra de produtos.
   As outras páginas de produto recebem flex e encostam no header. */
/* Mesmo bug em /products/ (81b289f), /products/visu-ads/, /attention-economy/, calculadora e /locations/:
   regra genérica para todo container flex do Elementor, que é o valor que o próprio Elementor pretende. */
.elementor .e-con.e-flex {
  --display: flex;
}

/* Sem o CSS do tema (strip.txt): o tema dava raio 12px ao campo de busca dos Guides e 46px ao select de moeda da
   calculadora; sem ele caem para 5px/43px. Mantém os valores de antes. */
html:lang(en) #visu-guides-v1 form input {
  border-radius: 12px;
}
html:lang(en) body.page-id-24854 select#currency {
  min-height: 46px;
}

/* pages/21-products.css */
/* Revisao site-v5: grupo Produtos (EN). /products/ (5440), VISU Link (5536), VISU Local (32994), VISU Replay (36763),
   VISU Ads (5546) e formatos QR (5554), Push (5563), Link (5573), Replay Ads (41366). Par de pages/20-products.js (textos)
   e pages/21-products.js (emoji no inicio das pills do hero QR/Push/Link).
   Todas as paginas rodam dentro de #pv-design (folha visu-products-v1) + <style> inline do widget
   (#visu-solutions .sol-*, #visu-local .loc-*, #visu-replay .rep-*, #visu-products-page .vpp-*, #visu-qr-ads-page).
   Escopo: html:lang(en) + page-id do grupo + #pv-design. Especificidade (1,2,2) + !important vence as duas folhas;
   regras com dois IDs (#pv-design #visu-local ...) repetem o segundo ID.
   Linguagem: ciano so em acao, cor de produto so identifica, sem glow/gradiente, sem caixa alta decorativa,
   numeracao so em passo de verdade (cinza #6b747b). */

/* ---------- Titulos numa cor so, sem glow ---------- */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-hero-copy h1,
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-hero-copy h1 :is(em, span),
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-page h2 :is(em, span:not([class])) {
  color: #f1f0ea !important;
  -webkit-text-fill-color: #f1f0ea !important;
  background: none !important;
  text-shadow: none !important;
}
/* Sombra de texto do hero e da caixa final (fundo ja e escuro e liso). As faixas com foto (loc-mid-banner,
   rep-mid-banner) mantem a sombra: la ela segura a leitura sobre a imagem. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-hero, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final) :is(h1, h2, h3, p, span) {
  text-shadow: none !important;
}

/* ---------- Fundos: sem gradiente radial nem brilho ---------- */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-page .pv-hero {
  background: #080b0d !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.sol-cta-box, .loc-cta-box, .vpp-cta, .vpp-cta__box, .rep-final, .sol-local-banner, .sol-usecase-card)::before,
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.sol-cta-box, .loc-cta-box, .vpp-cta__box, .rep-final, .sol-local-banner)::after {
  content: none !important;
  display: none !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .sol-local-banner {
  background: #121b21 !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
}
/* Paineis dos demos: mesmo fundo neutro nos quatro (o do Ads era roxo, o do Link tinha brilho azul). */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-diagram {
  background: #10181e !important;
  border-color: #2a3943 !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-flow-step {
  background: rgba(255, 255, 255, 0.03) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-flow-arrow {
  color: #6b747b !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-flow-footer {
  color: #a3acb3 !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-proof-link {
  background: #10212b !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .ra-placement {
  background: #111b24 !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .ra-product-note {
  background: #111b22 !important;
  border-color: #2a3943 !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .ra-product-note p {
  color: #a3acb3 !important;
}
/* Caixa final do Replay Ads no mesmo painel das outras paginas do grupo (era marrom). */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-page .ra-final {
  background: #12212a !important;
  border-color: #30434e !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .ra-final p {
  color: #a3acb3 !important;
}

/* ---------- Eyebrows e rotulos em caixa alta ---------- */
/* Linha de contexto acima do H1 (QR/Push/Link/Replay Ads): fica, mas discreta, sem ponto e sem caixa alta. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-eyebrow, .sol-hero-eyebrow, .rep-eyebrow) {
  color: #a3acb3 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-eyebrow, .sol-hero-eyebrow, .rep-eyebrow)::before {
  content: none !important;
  display: none !important;
}
/* "VISU LINK" dentro do demo e "VISU ADS" no diagrama: texto ja em caixa alta no HTML e repete o titulo ao lado. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-proof-kicker, .pv-diagram-label) {
  display: none !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-proof-note h3 {
  margin-top: 0 !important;
}
/* "Pro feature. Optional.": vira linha de contexto, sem pill ciano. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .sol-local-tag {
  background: none !important;
  border: 0 !important;
  padding: 0 !important;
  color: #a3acb3 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.sol-plan-badge, .ra-ad-label) {
  letter-spacing: 0 !important;
  text-transform: none !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .ra-ad-label {
  font-size: 12px !important;
}
/* "Most popular": selo neutro, destaque do plano fica na borda do card. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .sol-plan-badge {
  background: #1b2a33 !important;
  color: #f1f0ea !important;
  -webkit-text-fill-color: #f1f0ea !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .sol-plan-card.featured {
  box-shadow: none !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .sol-price-amount.accent {
  color: #f1f0ea !important;
  -webkit-text-fill-color: #f1f0ea !important;
}

/* ---------- Pills e tags coloridas: neutras ---------- */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.vpp-plans-cta__pill, .loc-tag, .loc-niche-tag) {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.14) !important;
  color: #a3acb3 !important;
  -webkit-text-fill-color: #a3acb3 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  box-shadow: none !important;
}

/* ---------- Numeros: stats neutros, indice falso fora, passos em cinza ---------- */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.loc-stat-val, .sol-local-stat .val) {
  color: #f1f0ea !important;
  -webkit-text-fill-color: #f1f0ea !important;
  background: none !important;
  text-shadow: none !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.loc-stat-card, .sol-local-stat) {
  background: rgba(255, 255, 255, 0.03) !important;
  border-color: rgba(255, 255, 255, 0.1) !important;
  box-shadow: none !important;
}
/* 01-04 nos cards de produto, 01-03 nos cards "por que" do Replay Ads e no diagrama: nao sao sequencia. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-card-index, .ra-index, .pv-flow-number) {
  display: none !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-product-card h3 {
  margin-top: 0 !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .ra-card h3 {
  margin-top: 0 !important;
}
/* Passos reais (How it works / How credits work): numero fica, circulo neutro, cinza. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.sol-step-num, .loc-step-num, .rep-step-num) {
  background: #0c1115 !important;
  border: 1px solid rgba(255, 255, 255, 0.16) !important;
  color: #6b747b !important;
  -webkit-text-fill-color: #6b747b !important;
  box-shadow: none !important;
  font-weight: 600 !important;
  font-variant-numeric: tabular-nums;
}

/* ---------- Icones: sem caixa colorida; emoji como icone sai ---------- */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .sol-usecase-icon {
  background: rgba(255, 255, 255, 0.05) !important;
  box-shadow: none !important;
}
/* QR/Push/Link Ads: emoji antes do titulo dos cards e dos usos; titulo sozinho fica mais limpo. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.sol-card-icon, .sol-use-icon) {
  display: none !important;
}
/* "How it works" do QR/Push/Link e sequencia de verdade: o emoji do topo vira o numero do passo, em cinza. */
html:lang(en) body:is(.page-id-5554,.page-id-5563,.page-id-5573) #pv-design .sol-how-grid,
html:lang(en) body:is(.page-id-5554,.page-id-5563,.page-id-5573) #pv-design :has(> .sol-how-card) {
  counter-reset: pv-how;
}
html:lang(en) body:is(.page-id-5554,.page-id-5563,.page-id-5573) #pv-design .sol-how-card {
  counter-increment: pv-how;
}
html:lang(en) body:is(.page-id-5554,.page-id-5563,.page-id-5573) #pv-design .sol-how-icon {
  font-size: 0 !important;
  line-height: 1 !important;
}
html:lang(en) body:is(.page-id-5554,.page-id-5563,.page-id-5573) #pv-design .sol-how-icon::before {
  content: counter(pv-how);
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: 50%;
  color: #6b747b;
  font-size: 15px;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
}
/* Replay: emoji de cada esporte; o nome ja basta. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .rep-sport > span {
  display: none !important;
}

/* ---------- Botoes ---------- */
/* Fonte 15px (era 14 no desktop e 12 no mobile), radius 10, sem seta no botao cheio. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-button, .sol-btn, .loc-btn, .rep-btn, .vpp-btn, .sol-btn-wa, .loc-btn-wa) {
  font-size: 15px !important;
  font-weight: 600 !important;
  border-radius: 10px !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-button:not(.pv-button-secondary), .sol-btn-primary, .loc-btn-primary, .rep-btn--primary, .vpp-btn--dark) > svg {
  display: none !important;
}
/* Secundario = contorno, igual a home. */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-button-secondary, .sol-btn-ghost, .loc-btn-ghost, .rep-btn--ghost) {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #f1f0ea !important;
  -webkit-text-fill-color: #f1f0ea !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design :is(.pv-button-secondary, .sol-btn-ghost, .loc-btn-ghost, .rep-btn--ghost):hover {
  background: #192932 !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  filter: none !important;
}
/* VISU Ads: quatro "Explore X Ads" cheios em ciano na mesma grade viravam ruido; ficam como secundario. */
html:lang(en) body.page-id-5546 #pv-design .pv-four-formats .sol-btn-primary {
  background: transparent !important;
  border: 1px solid rgba(255, 255, 255, 0.2) !important;
  color: #f1f0ea !important;
  -webkit-text-fill-color: #f1f0ea !important;
}
html:lang(en) body.page-id-5546 #pv-design .pv-four-formats .sol-btn-primary:hover {
  background: #192932 !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
  filter: none !important;
}

/* ---------- Seletores: alvo de toque 44px ---------- */
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-tabs button {
  min-height: 44px !important;
  font-size: 14px !important;
}
html:lang(en) body:is(.page-id-5440,.page-id-5536,.page-id-32994,.page-id-36763,.page-id-5546,.page-id-5554,.page-id-5563,.page-id-5573,.page-id-41366) #pv-design .pv-tabs button[aria-selected="true"] {
  background: rgba(255, 255, 255, 0.08) !important;
  color: #f1f0ea !important;
}
html:lang(en) body.page-id-5536 #visu-plans-grid .vpg-toggle-btn {
  min-height: 44px !important;
}

/* ---------- VISU Ads: tabela comparativa ---------- */
html:lang(en) body.page-id-5546 #pv-design .sol-compare-table thead th {
  background: rgba(255, 255, 255, 0.04) !important;
  color: #a3acb3 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
/* Nome do formato: texto forte, sem pill em gradiente ciano. */
html:lang(en) body.page-id-5546 #pv-design .sol-compare-table .sol-tag {
  background: none !important;
  padding: 0 !important;
  border: 0 !important;
  color: #f1f0ea !important;
  -webkit-text-fill-color: #f1f0ea !important;
  font-size: 15px !important;
  font-weight: 600 !important;
  letter-spacing: 0 !important;
}
html:lang(en) body.page-id-5546 #pv-design .sol-compare-table td:first-child {
  color: #f1f0ea !important;
  font-weight: 600 !important;
}
html:lang(en) body.page-id-5546 #pv-design .sol-compare-table tbody tr:hover {
  background: rgba(255, 255, 255, 0.02) !important;
}
@media (max-width: 768px) {
  /* Em cartoes, a tabela nao precisa dos 600px minimos: cabia 358px e estourava ate x=616. */
  html:lang(en) body.page-id-5546 #pv-design .pv-table-scroll table {
    min-width: 0 !important;
  }
  html:lang(en) body.page-id-5546 #pv-design .sol-compare-table td:first-child {
    background: rgba(255, 255, 255, 0.03) !important;
    text-align: left !important;
  }
  /* Rotulos por posicao: a linha Replay Ads veio sem data-label e aparecia sem rotulo. */
  html:lang(en) body.page-id-5546 #pv-design .sol-compare-table td:not(:first-child)::before {
    color: #6b747b !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
    display: block;
    margin-bottom: 4px;
  }
  html:lang(en) body.page-id-5546 #pv-design .sol-compare-table td:nth-child(2)::before { content: "Best for" !important; }
  html:lang(en) body.page-id-5546 #pv-design .sol-compare-table td:nth-child(3)::before { content: "Strengths" !important; }
  html:lang(en) body.page-id-5546 #pv-design .sol-compare-table td:nth-child(4)::before { content: "Where it shines" !important; }
}

/* ---------- VISU Local: captura do mapa ---------- */
/* object-position center cortava a esquerda ("l Local · New York"); a captura comeca pelo titulo da lista. */
html:lang(en) body.page-id-32994 #pv-design .pv-proof-local > img {
  object-position: left center !important;
}

/* ---------- Replay Ads: "+" do FAQ em cinza (era laranja) ---------- */
html:lang(en) body.page-id-41366 #pv-design .ra-faq summary span {
  color: #a3acb3 !important;
}

/* ---------- Hub: filete em gradiente no topo das secoes vpp ---------- */
html:lang(en) body.page-id-5440 #pv-design :is(.vpp-section, .vpp-product)::before {
  content: none !important;
  display: none !important;
}

/* ---------- Pills do hero QR/Push/Link no mobile: linha que quebra, alinhada a esquerda (era coluna centralizada) ---------- */
@media (max-width: 767px) {
  html:lang(en) body:is(.page-id-5554,.page-id-5563,.page-id-5573) #pv-design .sol-stack {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
  }
}

/* ---------- VISU Ads, tabela em cartoes: mesmo divisor em todas as linhas (Replay Ads vinha sem) ---------- */
@media (max-width: 768px) {
  html:lang(en) body.page-id-5546 #pv-design .sol-compare-table td:not(:last-child) {
    border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
  }
}

/* pages/22-light-products.css */
/* 22-light-products.css: Products group in the light look (2026-10-04, matches home v9 + 08-light-base tokens).
 * Pages: /products/ hub (5440), VISU Link (5536), VISU Local (32994), VISU Replay (36763), VISU Ads (5546),
 * QR (5554), Push (5563), Link (5573), Replay Ads (41366) + BR/ES twins. Every page renders inside #pv-design
 * (products-v1 sheet + inline widget <style>), so #pv-design is the scope; it exists on no other page.
 * Specificity: `body.page #pv-design#pv-design#pv-design` (3 IDs) + !important beats products.css, the widget
 * styles and 21-products.css (max 2 IDs). Colors, borders, shadows, text-transform only: no layout.
 * Rhythm: shell light; product showcases (.pv-proof, .pv-diagram, .ra-placement), photo banners and the
 * one closing CTA box stay dark navy accent panels. */

/* ============ Shell ============ */
body.page #pv-design#pv-design#pv-design,
body.page #pv-design#pv-design#pv-design .pv-page {
  background: var(--vl-bg) !important;
  color: var(--vl-ink-2) !important;
}
body.page #pv-design#pv-design#pv-design .pv-page > section,
body.page #pv-design#pv-design#pv-design .pv-page .pv-hero {
  background: var(--vl-bg) !important;
  border-top: 1px solid var(--vl-line) !important;
}
body.page #pv-design#pv-design#pv-design .pv-page > section:nth-of-type(even) {
  background: var(--vl-surface) !important;
}
body.page #pv-design#pv-design#pv-design .pv-page .pv-hero { border-top: 0 !important; }
/* Decorative glows / gradient hairlines of the dark build */
body.page #pv-design#pv-design#pv-design .pv-page > section::before,
body.page #pv-design#pv-design#pv-design .pv-page > section::after,
body.page #pv-design#pv-design#pv-design :is(.vpp-section, .vpp-product, .sol-usecase-card, .sol-local-banner, .vpp-plans-cta)::before,
body.page #pv-design#pv-design#pv-design :is(.sol-local-banner, .vpp-plans-cta)::after {
  background: none !important;
  box-shadow: none !important;
  opacity: 0 !important;
}

/* ============ Type ============ */
body.page #pv-design#pv-design#pv-design :is(h1, h2, h3, h4, h5, h6):not(:is(.pv-proof, .pv-diagram, .ra-placement, .vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final, .loc-mid-banner, .rep-mid-banner) *),
body.page #pv-design#pv-design#pv-design :is(h1, h2, h3, h4) :is(em, span, strong):not(:is(.pv-proof, .pv-diagram, .ra-placement, .vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final, .loc-mid-banner, .rep-mid-banner) *) {
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
  background: none !important;
  text-shadow: none !important;
}
body.page #pv-design#pv-design#pv-design :is(p, li, td, dd, blockquote, figcaption, label):not(:is(.pv-proof, .pv-diagram, .ra-placement, .vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final, .loc-mid-banner, .rep-mid-banner) *) {
  color: var(--vl-ink-2) !important;
  -webkit-text-fill-color: var(--vl-ink-2) !important;
  text-shadow: none !important;
}
body.page #pv-design#pv-design#pv-design :is(p, li) strong:not(:is(.pv-proof, .pv-diagram, .ra-placement, .vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final, .loc-mid-banner, .rep-mid-banner) *) {
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
}
body.page #pv-design#pv-design#pv-design .pv-hero-copy h1 { letter-spacing: -0.045em !important; }
body.page #pv-design#pv-design#pv-design .pv-hero-copy :is(.pv-lead, .sol-hero-lead, .loc-hero-lead, .rep-sub),
body.page #pv-design#pv-design#pv-design :is(.pv-section-intro, .sol-section-title, .loc-section-title, .sol-section-head, .loc-section-head, .sol-section-header, .loc-section-header, .vpp-section-head, .rep-section-head) p {
  color: var(--vl-ink-2) !important;
  -webkit-text-fill-color: var(--vl-ink-2) !important;
}
body.page #pv-design#pv-design#pv-design .pv-demo figcaption,
body.page #pv-design#pv-design#pv-design .pv-flow-footer:not(.pv-diagram *) {
  color: var(--pl-muted) !important;
  -webkit-text-fill-color: var(--pl-muted) !important;
}
/* Links in light areas */
body.page #pv-design#pv-design#pv-design :is(p, li, td) a:not([class*="btn"]):not([class*="button"]):not(:is(.pv-proof, .pv-diagram, .ra-placement, .vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final) *) {
  color: var(--vl-accent-text) !important;
  -webkit-text-fill-color: var(--vl-accent-text) !important;
}

/* ============ Eyebrows / uppercase labels: sentence case (all languages) ============ */
body.page #pv-design#pv-design#pv-design :is(.pv-eyebrow, .sol-hero-eyebrow, .rep-eyebrow, .sol-local-tag) {
  color: var(--pl-muted) !important;
  -webkit-text-fill-color: var(--pl-muted) !important;
  background: none !important;
  border: 0 !important;
  font-size: 14px !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
body.page #pv-design#pv-design#pv-design :is(.pv-eyebrow, .sol-hero-eyebrow, .rep-eyebrow)::before { content: none !important; display: none !important; }
body.page #pv-design#pv-design#pv-design :is(.sol-plan-badge, .sol-plan-local-tag, .ra-ad-label, .pv-card-index, .ra-index, .pv-flow-number, .pv-proof-kicker, .pv-diagram-label, .sol-tag, .loc-tag, .loc-niche-tag, .vpp-plans-cta__pill, .vpp-format__tag, .sol-compare-table th) {
  letter-spacing: normal !important;
  text-transform: none !important;
}

/* ============ Family bar + format bar ============ */
body.page #pv-design#pv-design#pv-design :is(.pv-family, .pv-format-nav) {
  background: var(--vl-surface) !important;
  border-bottom: 1px solid var(--vl-line) !important;
  border-top: 0 !important;
}
body.page #pv-design#pv-design#pv-design .pv-format-nav { background: var(--vl-bg) !important; }
body.page #pv-design#pv-design#pv-design :is(.pv-family, .pv-format-nav) a {
  color: var(--pl-muted) !important;
  -webkit-text-fill-color: var(--pl-muted) !important;
  background: transparent !important;
}
body.page #pv-design#pv-design#pv-design .pv-family .pv-family-home { color: var(--vl-ink) !important; -webkit-text-fill-color: var(--vl-ink) !important; }
body.page #pv-design#pv-design#pv-design :is(.pv-family, .pv-format-nav) a:is(:hover, [aria-current]) {
  background: var(--vl-tint) !important;
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
}
body.page #pv-design#pv-design#pv-design .pv-dot { background: #0a8fd0 !important; }
body.page #pv-design#pv-design#pv-design .pv-dot-1 { background: #15924a !important; }
body.page #pv-design#pv-design#pv-design .pv-dot-2 { background: #d9690f !important; }
body.page #pv-design#pv-design#pv-design .pv-dot-3 { background: #6a4fd6 !important; }

/* ============ Buttons ============ */
body.page #pv-design#pv-design#pv-design :is(.pv-button:not(.pv-button-secondary), .sol-btn-primary, .loc-btn-primary, .rep-btn--primary, .vpp-btn--primary, .vpp-btn--dark) {
  background: var(--vl-accent) !important;
  border: 1px solid var(--vl-accent) !important;
  color: var(--vl-accent-ink) !important;
  -webkit-text-fill-color: var(--vl-accent-ink) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 10px 24px -14px rgba(25, 180, 239, 0.9) !important;
}
body.page #pv-design#pv-design#pv-design :is(.pv-button:not(.pv-button-secondary), .sol-btn-primary, .loc-btn-primary, .rep-btn--primary, .vpp-btn--primary, .vpp-btn--dark):hover {
  background: #0ea3dd !important;
  border-color: #0ea3dd !important;
  filter: none !important;
}
body.page #pv-design#pv-design#pv-design :is(.pv-button-secondary, .sol-btn-ghost, .loc-btn-ghost, .rep-btn--ghost, .vpp-btn--ghost, .vpp-btn--outline),
body.page.page-id-5546 #pv-design#pv-design#pv-design .pv-four-formats .sol-btn-primary {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line-2) !important;
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
  box-shadow: var(--vl-shadow-sm) !important;
}
body.page #pv-design#pv-design#pv-design :is(.pv-button-secondary, .sol-btn-ghost, .loc-btn-ghost, .rep-btn--ghost, .vpp-btn--ghost, .vpp-btn--outline):hover,
body.page.page-id-5546 #pv-design#pv-design#pv-design .pv-four-formats .sol-btn-primary:hover {
  background: var(--vl-surface) !important;
  border-color: rgba(10, 19, 36, 0.3) !important;
  filter: none !important;
}
/* Ghost buttons inside the dark closing panel keep the on-dark treatment */
body.page #pv-design#pv-design#pv-design :is(.vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final) :is(.pv-button-secondary, .sol-btn-ghost, .loc-btn-ghost, .rep-btn--ghost, .vpp-btn--ghost, .vpp-btn--outline) {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.24) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
  box-shadow: none !important;
}

/* ============ Product switcher tabs (hub hero) ============ */
body.page #pv-design#pv-design#pv-design .pv-tabs {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: var(--vl-shadow-sm) !important;
}
body.page #pv-design#pv-design#pv-design .pv-tabs button { color: var(--pl-muted) !important; background: transparent !important; }
body.page #pv-design#pv-design#pv-design .pv-tabs button[aria-selected="true"] {
  background: var(--vl-tint) !important;
  color: var(--vl-accent-text) !important;
}

/* ============ Dark accent panels (showcases) ============ */
body.page #pv-design#pv-design#pv-design :is(.pv-proof, .pv-diagram, .ra-placement) {
  background: var(--vl-navy) !important;
  border: 1px solid rgba(10, 19, 36, 0.12) !important;
  box-shadow: var(--vl-shadow-md) !important;
}
body.page #pv-design#pv-design#pv-design .pv-proof-link { background: radial-gradient(ellipse at 100% 70%, rgba(25, 180, 239, 0.18), transparent 70%), var(--vl-navy) !important; }

/* ============ Ordinary cards ============ */
body.page #pv-design#pv-design#pv-design :is(.pv-product-card, .vpp-format, .sol-card, .sol-feature-card, .sol-step-card, .sol-usecase-card, .sol-use-card, .sol-how-card, .sol-addon-card, .sol-plan-card, .sol-local-banner, .loc-photo-card, .loc-step-card, .loc-card, .loc-stat-card, .rep-card, .ra-card, .ra-product-note, .vpp-plans-cta) {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: var(--vl-shadow-sm) !important;
  color: var(--vl-ink-2) !important;
}
body.page #pv-design#pv-design#pv-design :is(.pv-product-card, .vpp-plans-cta, .sol-local-banner, .ra-product-note) { border-radius: var(--vl-radius) !important; }
body.page #pv-design#pv-design#pv-design .pv-product-card-copy a {
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
  border-top-color: var(--vl-line) !important;
}
body.page #pv-design#pv-design#pv-design .pv-product-card-copy a:hover { color: var(--vl-accent-text) !important; -webkit-text-fill-color: var(--vl-accent-text) !important; }
body.page #pv-design#pv-design#pv-design .pv-card-index { color: var(--pl-muted) !important; }
body.page #pv-design#pv-design#pv-design :is(.loc-stat-val, .sol-local-stat .val) {
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
  text-shadow: none !important;
}
body.page #pv-design#pv-design#pv-design .sol-local-stat {
  background: var(--vl-bg) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: none !important;
}

/* Step numbers: neutral light circle */
body.page #pv-design#pv-design#pv-design :is(.sol-step-num, .loc-step-num, .rep-step-num) {
  background: var(--vl-tint) !important;
  border: 1px solid rgba(25, 180, 239, 0.2) !important;
  color: var(--vl-accent-text) !important;
  -webkit-text-fill-color: var(--vl-accent-text) !important;
  box-shadow: none !important;
}
body.page #pv-design#pv-design#pv-design .sol-how-icon::before {
  border-color: rgba(25, 180, 239, 0.2) !important;
  background: var(--vl-tint) !important;
  color: var(--vl-accent-text) !important;
}

/* Chips / pills / tags */
body.page #pv-design#pv-design#pv-design :is(.sol-hero-pill, .sol-stat-pill, .sol-stack-item, .rep-chip, .rep-sport, .vpp-plans-cta__pill, .loc-tag, .loc-niche-tag, .ra-audience-list > span, .vpp-format__tag, .vpp-tag) {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line-2) !important;
  color: var(--vl-ink-2) !important;
  -webkit-text-fill-color: var(--vl-ink-2) !important;
  box-shadow: none !important;
}

/* Icons */
body.page #pv-design#pv-design#pv-design :is(.sol-usecase-icon, .sol-card-icon, .sol-use-icon, .sol-feature-icon, .loc-card-icon) {
  background: var(--vl-tint) !important;
  border-color: rgba(25, 180, 239, 0.16) !important;
  box-shadow: none !important;
}

/* Plans (VISU Link) */
body.page #pv-design#pv-design#pv-design .sol-plan-card.featured {
  border: 1px solid rgba(25, 180, 239, 0.55) !important;
  box-shadow: var(--vl-shadow-md) !important;
}
body.page #pv-design#pv-design#pv-design .sol-plan-badge {
  background: var(--vl-tint) !important;
  border: 1px solid rgba(25, 180, 239, 0.24) !important;
  color: var(--vl-accent-text) !important;
  -webkit-text-fill-color: var(--vl-accent-text) !important;
}
body.page #pv-design#pv-design#pv-design :is(.sol-price-amount, .sol-price-amount.accent, .sol-plan-price, .sol-plan-name) {
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
}
body.page #pv-design#pv-design#pv-design .vpg-toggle {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: var(--vl-shadow-sm) !important;
}
body.page #pv-design#pv-design#pv-design .vpg-toggle-btn { color: var(--pl-muted) !important; -webkit-text-fill-color: var(--pl-muted) !important; background: transparent !important; }
body.page #pv-design#pv-design#pv-design .vpg-toggle-btn:is(.active, [aria-pressed="true"], [aria-selected="true"]) {
  background: var(--vl-ink) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff !important;
}

/* Compare table (VISU Ads) */
body.page #pv-design#pv-design#pv-design .sol-compare-table {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: var(--vl-shadow-sm) !important;
}
body.page #pv-design#pv-design#pv-design .sol-compare-table thead th {
  background: var(--vl-bg) !important;
  color: var(--pl-muted) !important;
  -webkit-text-fill-color: var(--pl-muted) !important;
}
body.page #pv-design#pv-design#pv-design .sol-compare-table :is(th, td) { border-color: var(--vl-line) !important; }
body.page #pv-design#pv-design#pv-design .sol-compare-table :is(td:first-child, .sol-tag) {
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
  background: none !important;
}
body.page #pv-design#pv-design#pv-design .sol-compare-table tbody tr:hover { background: var(--vl-bg) !important; }

/* FAQ */
body.page #pv-design#pv-design#pv-design :is(.sol-faq-item, .loc-faq-item, .ra-faq details) {
  background: transparent !important;
  border-color: var(--vl-line-2) !important;
}
body.page #pv-design#pv-design#pv-design .rep-faq > details {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: var(--vl-shadow-sm) !important;
}
body.page #pv-design#pv-design#pv-design :is(.sol-faq-item, .loc-faq-item, .rep-faq details, .ra-faq details) :is(summary, button, .sol-faq-q, .loc-faq-q, h3, h4) {
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
  background: transparent !important;
}
body.page #pv-design#pv-design#pv-design .ra-faq summary span { color: var(--pl-muted) !important; }

/* ============ Closing CTA: the one dark panel per page ============ */
body.page #pv-design#pv-design#pv-design :is(.vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .pv-page .ra-final) {
  background: var(--vl-navy) !important;
  border: 1px solid rgba(255, 255, 255, 0.06) !important;
  box-shadow: var(--vl-shadow-md) !important;
}
body.page #pv-design#pv-design#pv-design :is(.vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final) :is(h2, h3) { color: #fff !important; -webkit-text-fill-color: #fff !important; }
body.page #pv-design#pv-design#pv-design :is(.vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final) :is(p, li, .rep-sub) { color: rgba(226, 236, 246, 0.78) !important; -webkit-text-fill-color: rgba(226, 236, 246, 0.78) !important; }

/* ============ Contrast pass ============ */
/* Contrast aliases: point at the 08 tokens (muted/accent-text were deepened there to clear 4.5:1 on bg and tint).
   Kept as aliases so this layer can be retuned without touching 08. */
body.page #pv-design#pv-design#pv-design { --pl-muted: var(--vl-muted); --pl-accent: var(--vl-accent-text); --pl-green: #13803f; }
body.page #pv-design#pv-design#pv-design :is(.sol-step-num, .loc-step-num, .rep-step-num, .sol-plan-badge, .pv-tabs button[aria-selected="true"]),
body.page #pv-design#pv-design#pv-design .sol-how-icon,
body.page #pv-design#pv-design#pv-design .sol-how-icon::before,
body.page #pv-design#pv-design#pv-design :is(p, li, td, .rep-sub) a:not([class*="btn"]):not([class*="button"]):not(:is(.pv-proof, .pv-diagram, .ra-placement, .vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final) *),
body.page #pv-design#pv-design#pv-design :is(p, li, td, .rep-sub) a .__cf_email__:not(:is(.vpp-cta__box, .sol-cta-box, .loc-cta-box, .rep-final, .ra-final) *) {
  color: var(--pl-accent) !important;
  -webkit-text-fill-color: var(--pl-accent) !important;
}
body.page #pv-design#pv-design#pv-design :is(.sol-plan-desc, .sol-price-period, .sol-local-chip, .sol-local-stat .lbl, .sol-addon-price span, .sol-addon-desc, .loc-stat-lbl, .vpp-format__link, .vpp-format a) {
  color: var(--pl-muted) !important;
  -webkit-text-fill-color: var(--pl-muted) !important;
}
body.page #pv-design#pv-design#pv-design :is(.sol-hero-pill, .sol-stat-pill, .sol-stack-item) strong,
body.page #pv-design#pv-design#pv-design :is(.sol-addon-name, .sol-addon-price) {
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
}
body.page #pv-design#pv-design#pv-design :is(.sol-check, .vpg-save-badge, .sol-addon-save) {
  color: var(--pl-green) !important;
  -webkit-text-fill-color: var(--pl-green) !important;
}
body.page #pv-design#pv-design#pv-design :is(.vpg-save-badge, .sol-addon-save) {
  background: #e8f6ee !important;
  border-color: rgba(21, 146, 74, 0.2) !important;
}
body.page #pv-design#pv-design#pv-design .vpg-toggle-btn--active .vpg-save-badge { background: #e8f6ee !important; }
body.page #pv-design#pv-design#pv-design .vpg-toggle-btn--active { background: var(--vl-ink) !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
body.page #pv-design#pv-design#pv-design .pv-diagram .pv-flow-arrow { color: #8796a8 !important; }

/* ============ Photo banners (VISU Local / VISU Replay mid banners): image + dark scrim, light type ============ */
body.page #pv-design#pv-design#pv-design :is(.loc-mid-banner, .rep-mid-banner) { color: rgba(236, 242, 248, 0.88) !important; }
body.page #pv-design#pv-design#pv-design :is(.loc-mid-banner, .rep-mid-banner) :is(h2, h3) { color: #fff !important; -webkit-text-fill-color: #fff !important; }
body.page #pv-design#pv-design#pv-design :is(.loc-mid-banner, .rep-mid-banner) p { color: rgba(236, 242, 248, 0.88) !important; -webkit-text-fill-color: rgba(236, 242, 248, 0.88) !important; }
body.page #pv-design#pv-design#pv-design :is(.loc-mid-banner, .rep-mid-banner) { border-radius: var(--vl-radius); box-shadow: var(--vl-shadow-md) !important; }

/* VISU Local closing section: the dark photo backdrop behind the CTA box goes; the box itself stays the dark panel.
   .loc-cta-bg is absolutely positioned, so hiding it does not move anything. */
body.page #pv-design#pv-design#pv-design #cta-local .loc-cta-bg { opacity: 0 !important; }

/* FAQ rows read as white cards on both section tones */
body.page #pv-design#pv-design#pv-design :is(.sol-faq-item, .loc-faq-item) {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: var(--vl-shadow-sm) !important;
}

@media (max-width: 768px) {
  /* VISU Ads compare table turns into stacked row cards on mobile: white cards, label column tinted */
  body.page #pv-design#pv-design#pv-design .sol-compare-table { background: transparent !important; border: 0 !important; box-shadow: none !important; }
  body.page #pv-design#pv-design#pv-design .sol-compare-table tbody tr {
    background: var(--vl-surface) !important;
    border: 1px solid var(--vl-line) !important;
    box-shadow: var(--vl-shadow-sm) !important;
  }
  body.page #pv-design#pv-design#pv-design .sol-compare-table td:first-child { background: var(--vl-tint) !important; }
  body.page #pv-design#pv-design#pv-design .sol-compare-table td:not(:last-child) { border-bottom: 1px solid var(--vl-line) !important; }
  body.page #pv-design#pv-design#pv-design .sol-compare-table td:not(:first-child)::before {
    color: var(--pl-muted) !important;
    letter-spacing: normal !important;
    text-transform: none !important;
  }
}

/* BR/ES keep the 01-03 indexes that 21-products hides for EN: Replay orange, deepened for contrast on white */
body.page #pv-design#pv-design#pv-design .ra-index { color: #a8520b !important; -webkit-text-fill-color: #a8520b !important; }

/* Hub product cards: title weight to match the page's heading voice (was 400 and read thin on white) */
body.page #pv-design#pv-design#pv-design .pv-product-card h3 { font-weight: 700 !important; letter-spacing: -0.03em !important; }

/* pages/23-products-compact.css */
/* 23-products-compact.css: Products hub restructure (owner review 2026-10-05, preview first).
   - #core-products: the four product mockups repeated the hero tabs; cards become compact (icon, name, line,
     explore), 4 across on desktop, 2x2 on tablet, rows on mobile. Whole card clickable.
   - #ad-formats: horizontal snap carousel on mobile instead of four tall stacked cards.
   - #plans-overview: plan names as plain text (they are not buttons); "Compare plans" stays the only action. */

/* ---------- Core products */
#core-products .pv-product-grid { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 16px !important; }
#core-products .pv-product-card.vpc-card {
  position: relative; display: flex !important; flex-direction: column; min-height: 0 !important; height: auto !important;
  padding: 26px 24px 22px !important; border-radius: 20px !important; transition: border-color .2s, box-shadow .2s, transform .2s;
}
#core-products .vpc-card .pv-demo { display: none !important; }
#core-products .vpc-card .pv-product-card-copy { display: flex !important; flex-direction: column; flex: 1; padding: 0 !important; width: auto !important; min-height: 0 !important; }
body.page #pv-design#pv-design#pv-design #core-products .vpc-card .pv-card-index {
  display: grid !important; place-items: center; width: 44px !important; height: 44px !important; margin: 0 0 18px !important;
  border-radius: 12px; position: static !important;
}
#core-products .vpc-card .pv-card-index .pv-dot { display: none !important; }
#core-products .vpc-card .pv-card-index svg { width: 22px; height: 22px; }
#core-products .vpc-visulink .pv-card-index { background: #e8f6fd; color: #0a8fd0; }
#core-products .vpc-visulocal .pv-card-index { background: #e8f6ee; color: #15924a; }
#core-products .vpc-visureplay .pv-card-index { background: #fdf0e4; color: #d9690f; }
#core-products .vpc-visu-ads .pv-card-index { background: #f0ecfd; color: #6a4fd6; }
#core-products .vpc-card h3 { font-size: 22px !important; line-height: 1.2 !important; margin: 0 0 8px !important; }
#core-products .vpc-card .pv-product-card-copy > p { font-size: 15px !important; line-height: 1.55 !important; margin: 0 0 20px !important; max-width: none !important; }
#core-products .vpc-card .pv-product-card-copy > a {
  margin-top: auto !important; padding: 14px 0 0 !important; border-top: 1px solid var(--vl-line, rgba(10, 19, 36, .08)) !important;
  font-size: 14.5px !important;
}
/* Whole card is the link */
#core-products .vpc-card .pv-product-card-copy > a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
#core-products .vpc-card:hover { transform: translateY(-2px); box-shadow: var(--vl-shadow-md) !important; border-color: var(--vl-line-2) !important; }
#core-products .vpc-card:hover .pv-product-card-copy > a span { transform: translateX(3px); }
#core-products .vpc-card .pv-product-card-copy > a span { transition: transform .2s; }
#core-products .pv-section-intro { margin-bottom: 36px !important; }
#core-products.vpp-section { padding-bottom: 88px !important; }

@media (max-width: 1100px) {
  #core-products .pv-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 640px) {
  #core-products .pv-product-grid { grid-template-columns: minmax(0, 1fr) !important; gap: 10px !important; }
  #core-products .pv-product-card.vpc-card { padding: 16px !important; border-radius: 16px !important; }
  #core-products .vpc-card .pv-product-card-copy { display: grid !important; grid-template-columns: 44px minmax(0, 1fr) 20px; column-gap: 14px; align-items: center; }
  #core-products .vpc-card .pv-card-index { grid-row: 1 / 3; margin: 0 !important; }
  #core-products .vpc-card h3 { grid-column: 2; font-size: 18px !important; margin: 0 0 2px !important; }
  #core-products .vpc-card .pv-product-card-copy > p { grid-column: 2; font-size: 14px !important; margin: 0 !important; }
  #core-products .vpc-card .pv-product-card-copy > a { grid-column: 3; grid-row: 1 / 3; margin: 0 !important; padding: 0 !important; border: 0 !important; font-size: 0 !important; }
  #core-products .vpc-card .pv-product-card-copy > a span { font-size: 18px; }
  #core-products.vpp-section { padding-bottom: 56px !important; }
}

/* ---------- Ad formats: mobile carousel */
@media (max-width: 767px) {
  #ad-formats .vpp-formats {
    display: flex !important; gap: 12px !important; overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-x: contain;
    margin: 0 -16px !important; padding: 4px 16px 14px !important; scrollbar-width: none;
  }
  #ad-formats .vpp-formats::-webkit-scrollbar { display: none; }
  #ad-formats .vpp-format { flex: 0 0 80% !important; max-width: 80% !important; scroll-snap-align: start; scroll-margin-left: 16px; }
}

/* ---------- Plans: names as text, one action */
body.page #pv-design#pv-design#pv-design #plans-overview .vpp-plans-cta__pills { gap: 0 !important; }
body.page #pv-design#pv-design#pv-design #plans-overview .vpp-plans-cta__pill {
  padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important;
  font-size: 15px !important; font-weight: 600 !important; color: var(--vl-ink-2, #33415a) !important;
}
body.page #pv-design#pv-design#pv-design #plans-overview .vpp-plans-cta__pill + .vpp-plans-cta__pill::before { content: "·"; margin: 0 10px; color: rgba(10, 19, 36, .3); font-weight: 400; }
/* Legacy "01..04" numbering inside the index chip */
body.page #pv-design#pv-design#pv-design #core-products .vpc-card .pv-card-index { font-size: 0 !important; line-height: 0 !important; color: inherit; }
body.page #pv-design#pv-design#pv-design #core-products .vpc-card .pv-card-index::before,
body.page #pv-design#pv-design#pv-design #core-products .vpc-card .pv-card-index::after { content: none !important; display: none !important; }
body.page #pv-design#pv-design#pv-design #core-products .vpc-card .pv-card-index svg { width: 22px !important; height: 22px !important; }
body.page #pv-design#pv-design#pv-design #core-products .vpc-card .pv-card-index svg { display: block !important; margin: 0 !important; }

/* Hero Link tab: fresh 390x844 capture, top-anchored inside the phone frame */
body.page #pv-design#pv-design#pv-design .pv-hero .pv-proof-link img.vpc-link-shot { object-fit: cover !important; object-position: top center !important; aspect-ratio: 390 / 844; height: auto; }

/* Hero Ads tab: coded app-style phone (same frame as the captured screens) */
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone {
  width: 100%; aspect-ratio: 390 / 844; margin-top: 8px; box-sizing: border-box; overflow: hidden;
  border: 5px solid #354b58; border-bottom: 0; border-radius: 18px 18px 0 0; box-shadow: 0 22px 40px rgba(0, 0, 0, .4);
  background: #0b1117; color: #e7eef5; font-family: inherit; padding: 14px 12px 0;
}
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-top { display: grid; grid-template-columns: 26px 1fr 26px; align-items: center; margin-bottom: 18px; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-back { width: 26px; height: 26px; border-radius: 8px; background: #1a232c; position: relative; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-back::after { content: ""; position: absolute; left: 10px; top: 9px; width: 6px; height: 6px; border-left: 2px solid #9fb3c4; border-bottom: 2px solid #9fb3c4; transform: rotate(45deg); }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-title { text-align: center; font-size: 13px; font-weight: 700; color: #fff; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-dots { text-align: center; font-size: 10px; letter-spacing: 1px; color: #9fb3c4; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-label { margin: 0 2px 10px !important; font-size: 10.5px !important; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8aa0b3 !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-rows { display: grid; gap: 8px; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-row { display: grid; grid-template-columns: 30px 1fr 16px; gap: 9px; align-items: center; padding: 9px; border-radius: 12px; background: #151d25; border: 1px solid #1f2a34; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-row.is-on { border-color: #2fb8ec; background: #11212c; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-icon { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-icon svg { width: 16px; height: 16px; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-f0 .vpc-app-icon { background: rgba(168, 85, 247, .18); color: #c084fc; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-f1 .vpc-app-icon { background: rgba(245, 158, 11, .18); color: #fbbf24; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-f2 .vpc-app-icon { background: rgba(244, 63, 94, .18); color: #fb7185; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-f3 .vpc-app-icon { background: rgba(249, 115, 22, .18); color: #fb923c; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-icon svg * { stroke: currentColor !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-text { display: grid; gap: 1px; min-width: 0; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-text b { font-size: 12px; color: #fff; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-text small { font-size: 9.5px; line-height: 1.3; color: #8aa0b3; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-check { width: 14px; height: 14px; border-radius: 50%; border: 1.5px solid #3a4a57; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .is-on .vpc-app-check { border-color: #2fb8ec; background: #2fb8ec; box-shadow: inset 0 0 0 3px #11212c; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-cta { margin-top: 14px; padding: 10px; border-radius: 999px; background: #4fc3f7; color: #03121d; text-align: center; font-size: 12px; font-weight: 700; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone * { margin: 0; letter-spacing: normal; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-top { margin-bottom: 16px !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-label { margin: 0 2px 10px !important; letter-spacing: .06em !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-row { padding: 10px !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-text b { font-size: 12px !important; line-height: 1.25 !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-text small { font-size: 9.5px !important; line-height: 1.3 !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-cta { margin-top: 16px !important; padding: 11px !important; font-size: 12px !important; line-height: 1.2 !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-phone .vpc-app-title { font-size: 13px !important; }

/* VISU Ads page hero: navy stage with the coded phone (replaces the conceptual flow boxes) */
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-ads-stage {
  height: 410px; border-radius: 22px; overflow: hidden; display: flex; justify-content: center; padding: 28px 28px 0; box-sizing: border-box;
  background: radial-gradient(ellipse at 100% 70%, rgba(25, 180, 239, 0.18), transparent 70%), var(--vl-navy, #06131f);
}
body.page #pv-design#pv-design#pv-design .pv-hero .vpc-ads-stage .vpc-phone { width: 270px; flex: none; }
@media (max-width: 767px) {
  body.page #pv-design#pv-design#pv-design .pv-hero .vpc-ads-stage { height: 360px; }
  body.page #pv-design#pv-design#pv-design .pv-hero .vpc-ads-stage .vpc-phone { width: 240px; }
}

/* pages/24-plans-strip.css */
/* 24-plans-strip.css: the short plans strip that replaces the plans grid on product pages (see 24-plans-strip.js). */
body.page #pv-design#pv-design#pv-design .vps-strip { padding: 72px 0 !important; background: var(--vl-bg, #f7fafd) !important; border-top: 1px solid var(--vl-line); border-bottom: 1px solid var(--vl-line); }
body.page #pv-design#pv-design#pv-design .vps-inner {
  max-width: 1280px; margin: 0 auto; padding: 32px 40px; box-sizing: border-box;
  display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 32px; align-items: center;
  background: var(--vl-surface, #fff); border: 1px solid var(--vl-line); border-radius: 20px; box-shadow: var(--vl-shadow-sm);
}
body.page #pv-design#pv-design#pv-design .vps-strip h2 { margin: 0 0 6px !important; font-size: clamp(26px, 2.6vw, 36px) !important; line-height: 1.15 !important; color: var(--vl-ink) !important; letter-spacing: -0.02em !important; text-transform: none !important; }
body.page #pv-design#pv-design#pv-design .vps-strip .vps-text p { margin: 0 !important; font-size: 15px !important; line-height: 1.55 !important; color: var(--vl-ink-2) !important; }
body.page #pv-design#pv-design#pv-design .vps-strip .vps-tiers { margin: 0 !important; font-size: 15px !important; font-weight: 600 !important; color: var(--vl-ink-2) !important; white-space: nowrap; }
body.page #pv-design#pv-design#pv-design .vps-strip .vps-tiers i { font-style: normal; margin: 0 8px; color: rgba(10, 19, 36, .3); font-weight: 400; }
body.page #pv-design#pv-design#pv-design .vps-strip a.vps-cta {
  display: inline-flex; align-items: center; padding: 14px 24px; border-radius: 12px; white-space: nowrap;
  background: var(--vl-accent, #19b4ef); color: var(--vl-accent-ink, #03121d) !important; font-weight: 600; font-size: 16px; text-decoration: none !important;
}
body.page #pv-design#pv-design#pv-design .vps-strip a.vps-cta:hover { filter: brightness(1.06); }
@media (max-width: 1100px) {
  body.page #pv-design#pv-design#pv-design .vps-strip { padding: 48px 0 !important; }
  body.page #pv-design#pv-design#pv-design .vps-inner { grid-template-columns: 1fr; gap: 16px; margin: 0 16px; padding: 24px; }
  body.page #pv-design#pv-design#pv-design .vps-strip a.vps-cta { justify-content: center; }
}

/* pages/25-ads-formats.css */
/* 25-ads-formats.css: coded phones for the QR / Push / Link Ads heroes (see 25-ads-formats.js).
 * Frame and stage come from 23-products-compact.css (.vpc-phone, .vpc-ads-stage). */
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone { display: flex; flex-direction: column; gap: 10px; padding: 16px 14px 0 !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone * { margin: 0 !important; letter-spacing: normal; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-url { align-self: center; padding: 5px 12px; border-radius: 999px; background: #1a232c; color: #9fb3c4 !important; font-size: 10.5px !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-chip { align-self: flex-start; padding: 3px 9px; border-radius: 999px; background: rgba(251, 191, 36, .14); color: #fbbf24; font-size: 10px; font-weight: 700; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-creative {
  display: grid; gap: 4px; padding: 16px 14px; border-radius: 16px; min-height: 150px; align-content: end;
  background: radial-gradient(circle at 80% 15%, rgba(251, 146, 60, .55), transparent 55%), linear-gradient(160deg, #3b2416, #1a120d);
}
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-cup { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 10px; background: rgba(255, 255, 255, .12); color: #fde68a; margin-bottom: 18px !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-cup svg { width: 20px; height: 20px; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-creative b { font-size: 14px !important; color: #fff !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-creative span:last-child { font-size: 11.5px !important; line-height: 1.35 !important; color: rgba(255, 255, 255, .8) !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-reward { padding: 9px 10px; border-radius: 12px; background: rgba(47, 184, 236, .12); border: 1px solid rgba(47, 184, 236, .35); color: #7fd3f7 !important; font-size: 11px !important; font-weight: 600; text-align: center; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-btn { padding: 11px; border-radius: 999px; background: #4fc3f7; color: #03121d; text-align: center; font-size: 11.5px; font-weight: 700; }
/* Push: lock screen */
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone.vaf-push { background: radial-gradient(ellipse at 50% 0%, #1d3a52, #0b1117 70%) !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-push .vaf-clock { text-align: center; font-size: 46px !important; font-weight: 300; color: #fff !important; line-height: 1 !important; margin-top: 14px !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-push .vaf-date { text-align: center; font-size: 11px !important; color: #c7d5e2 !important; margin-bottom: 18px !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-notif { display: grid; gap: 2px; padding: 10px 11px; border-radius: 14px; background: rgba(255, 255, 255, .12); backdrop-filter: blur(6px); }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-notif:not(.is-main) { opacity: .55; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-notif-top { display: flex; align-items: center; gap: 6px; margin-bottom: 3px !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-app { display: grid; place-items: center; width: 16px; height: 16px; border-radius: 4px; background: #19b4ef; color: #03121d; font-size: 9px; font-weight: 800; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-app-name { font-size: 9.5px; font-weight: 700; color: #dbe7f1; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-when { margin-left: auto !important; font-size: 9px; color: #9fb3c4; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-notif b { font-size: 11.5px !important; color: #fff !important; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-notif > span { font-size: 10.5px !important; line-height: 1.35 !important; color: #dbe7f1 !important; }
/* Link: interstitial */
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-progress { height: 3px; border-radius: 3px; background: linear-gradient(90deg, #4fc3f7 40%, #1f2a34 40%); }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-row { display: grid; grid-template-columns: 34px 1fr; gap: 8px; align-items: center; }
body.page #pv-design#pv-design#pv-design .pv-hero .vaf-phone .vaf-count { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; border: 2px solid #2fb8ec; color: #7fd3f7; font-size: 12px; font-weight: 700; }

/* pages/31-solutions.css */
/* Revisao site-v5: grupo Solutions (EN). Hub /solutions/ (page-id-1690) + 10 segmentos, todos no
   template v3 do widget visu-solutions-v1 (raiz #sv-solutions[data-v3]). Par de pages/30-solutions.js (so textos).
   Escopo: html:lang(en) + raiz do template. PT-BR/ES usam o mesmo template com html lang diferente: ficam intactos.
   Linguagem: ciano so em acao (botao primario, foco), resto neutro. Ambar fica so dentro dos mocks impressos. */

html:lang(en) #sv-solutions[data-v3] {
  /* Ambar do template pinta os mocks (style inline background:var(--v3-amber)). Menos saturado: continua
     reconhecivel como peca impressa, sem ser a cor mais forte da pagina. */
  --v3-amber: #d3a55c;
  --v3-amber-soft: #dcb679;
  --s31-accent: #44c7f4;
  --s31-accent-hover: #6fd5f7;
  --s31-accent-ink: #06101a;
  --s31-ink: #f1f0ea;
  --s31-muted: #a3acb3;
  --s31-dim: #6b747b;
  --s31-line: rgba(255, 255, 255, 0.09);
  --s31-ghost-edge: rgba(255, 255, 255, 0.2);
  --s31-ghost-edge-hover: rgba(255, 255, 255, 0.4);
  --s31-ghost-hover: #192932;
}

/* ---------- Sub-barra: mesma posicao, sem ambar no hover ---------- */
html:lang(en) #sv-solutions[data-v3] .v3-nav a {
  font-size: 13px;
}
html:lang(en) #sv-solutions[data-v3] .v3-nav a:hover {
  color: #fff !important;
}

/* ---------- Hero ---------- */
html:lang(en) #sv-solutions[data-v3] .v3-hero {
  background: #080d10; /* sem glow ambar */
}
/* Eyebrow "VISU + Food trucks": sai a caixa alta e o ponto, fica uma linha discreta de contexto. */
html:lang(en) #sv-solutions[data-v3] .v3-eyebrow {
  color: var(--s31-muted);
  font-size: 14px;
  font-weight: 500;
  letter-spacing: 0 !important; /* folha do tema trava caixa alta com !important */
  text-transform: none !important;
}
html:lang(en) #sv-solutions[data-v3] .v3-eyebrow::before {
  content: none !important;
  display: none !important;
}

/* Botao primario: ciano cheio, sem seta. */
html:lang(en) #sv-solutions[data-v3] .v3-button {
  min-height: 52px;
  padding: 0 22px;
  gap: 0;
  justify-content: center;
  border-radius: 10px;
  border-color: var(--s31-accent);
  background: var(--s31-accent);
  -webkit-text-fill-color: var(--s31-accent-ink);
  color: var(--s31-accent-ink) !important;
  font-size: 15px;
  font-weight: 600;
  transition: background-color 0.18s ease, border-color 0.18s ease;
}
html:lang(en) #sv-solutions[data-v3] .v3-button:hover {
  border-color: var(--s31-accent-hover);
  background: var(--s31-accent-hover);
}
html:lang(en) #sv-solutions[data-v3] .v3-button:focus-visible {
  outline: 2px solid #fff;
  outline-offset: 2px;
}
html:lang(en) #sv-solutions[data-v3] .v3-button .v3-mark {
  display: none;
}
/* Link de texto do hero ("See the example"): mantem a seta, fonte legivel. */
html:lang(en) #sv-solutions[data-v3] .v3-quiet {
  font-size: 15px;
  border-bottom-color: var(--s31-ghost-edge);
}
html:lang(en) #sv-solutions[data-v3] .v3-quiet:hover {
  border-bottom-color: var(--s31-ghost-edge-hover);
}

/* ---------- Mocks: menos peso de card em volta, tag em sentence case ---------- */
html:lang(en) #sv-solutions[data-v3] .v3-application .v3-panel .v3-stage {
  border-color: transparent;
  border-radius: 12px;
  background: #0d161c;
}
html:lang(en) #sv-solutions[data-v3] .v3-tag {
  color: var(--s31-dim);
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
}
html:lang(en) #sv-solutions[data-v3] .v3-tag::before {
  background: rgba(255, 255, 255, 0.16);
}
html:lang(en) #sv-solutions[data-v3] .v3-panel-copy {
  border-top-color: var(--s31-line);
}

/* ---------- Builds vs stays: rotulos sem caixa alta, sem ambar ---------- */
html:lang(en) #sv-solutions[data-v3] .v3-column h3 {
  color: var(--s31-ink);
  font-size: 17px;
  font-weight: 650;
  letter-spacing: -0.01em;
  text-transform: none;
  border-bottom-color: rgba(255, 255, 255, 0.12);
}
html:lang(en) #sv-solutions[data-v3] .v3-column-1 h3 {
  color: var(--s31-muted);
}
html:lang(en) #sv-solutions[data-v3] .v3-column-0 li::before {
  background: rgba(255, 255, 255, 0.35);
}

/* ---------- Escopos (accordion) ---------- */
html:lang(en) #sv-solutions[data-v3] .v3-offer[open] summary h3 {
  color: var(--s31-ink);
}
html:lang(en) #sv-solutions[data-v3] .v3-offer[open] .sv-offer-toggle {
  border-color: var(--s31-ghost-edge-hover);
  color: var(--s31-ink);
}
/* CTA do escopo: ghost do site (contorno, sem seta). */
html:lang(en) #sv-solutions[data-v3] .v3-offer-cta {
  min-height: 48px;
  padding: 0 20px;
  gap: 0;
  justify-content: center;
  border: 1px solid var(--s31-ghost-edge);
  border-radius: 10px;
  background: transparent;
  color: var(--s31-ink) !important;
  font-size: 15px;
  font-weight: 600;
  transition: background-color 0.18s ease, border-color 0.18s ease;
}
html:lang(en) #sv-solutions[data-v3] .v3-offer-cta:hover,
html:lang(en) #sv-solutions[data-v3] .v3-offer-cta:focus-visible {
  border-color: var(--s31-ghost-edge-hover);
  background: var(--s31-ghost-hover);
}
html:lang(en) #sv-solutions[data-v3] .v3-offer-cta .v3-mark {
  display: none;
}

/* ---------- FAQ ---------- */
html:lang(en) #sv-solutions[data-v3] .v3-faq-list details[open] summary span {
  color: var(--s31-ink);
}

/* ---------- Contato (so cor; campos e validacao intactos) ---------- */
html:lang(en) #sv-solutions[data-v3] .v3-contact-copy li::before {
  background: rgba(255, 255, 255, 0.35);
}
html:lang(en) #sv-solutions[data-v3] .v3-form-panel {
  box-shadow: none;
}
html:lang(en) #sv-solutions[data-v3] .sv-context,
html:lang(en) #sv-solutions[data-v3] .v3-form-panel .sv-context {
  color: var(--s31-muted);
  border-left-color: rgba(255, 255, 255, 0.16);
}
html:lang(en) #sv-solutions[data-v3] .vi-form .vi-req {
  color: var(--s31-muted);
}
html:lang(en) #sv-solutions[data-v3] .vi-form .ff-el-form-control:focus,
html:lang(en) #sv-solutions[data-v3] .vi-form .ff-el-form-control:focus-visible,
html:lang(en) #sv-solutions[data-v3] .vi-form :is(input, textarea, select):focus,
html:lang(en) #sv-solutions[data-v3] .vi-form :is(input, textarea, select):focus-visible {
  border-color: var(--s31-accent) !important;
  box-shadow: 0 0 0 3px rgba(68, 199, 244, 0.22) !important;
}
html:lang(en) #sv-solutions[data-v3] .vi-form :is(input, textarea, select):-webkit-autofill:focus {
  box-shadow: 0 0 0 1000px var(--v3-field) inset, 0 0 0 3px rgba(68, 199, 244, 0.22) !important;
}
/* "Send message": primario ciano, sem icone. */
html:lang(en) #sv-solutions[data-v3] .vi-form .ff-btn-submit,
html:lang(en) #sv-solutions[data-v3] .fluentform .ff-btn-submit {
  justify-content: center;
  border-color: var(--s31-accent) !important;
  border-radius: 10px !important;
  background: var(--s31-accent) !important;
  -webkit-text-fill-color: var(--s31-accent-ink);
  color: var(--s31-accent-ink) !important;
  font-size: 15px !important;
  font-weight: 600 !important;
}
html:lang(en) #sv-solutions[data-v3] .vi-form .ff-btn-submit::after {
  content: none;
  display: none;
}
html:lang(en) #sv-solutions[data-v3] .vi-form .ff-btn-submit:hover:not(:disabled),
html:lang(en) #sv-solutions[data-v3] .vi-form .ff-btn-submit:active:not(:disabled) {
  border-color: var(--s31-accent-hover) !important;
  background: var(--s31-accent-hover) !important;
}
html:lang(en) #sv-solutions[data-v3] .vi-form button[type="submit"]:focus-visible,
html:lang(en) #sv-solutions[data-v3] :is(.sv-whatsapp, .v3-hub-whatsapp) a:focus-visible {
  outline: 2px solid #fff !important;
  outline-offset: 3px;
}

/* WhatsApp ("Talk to VISU"): ghost do site. */
html:lang(en) #sv-solutions[data-v3] :is(.sv-whatsapp, .v3-hub-whatsapp) a {
  min-height: 48px;
  padding: 0 20px;
  border: 1px solid var(--s31-ghost-edge);
  border-radius: 10px;
  color: var(--s31-ink) !important;
  font-size: 15px;
  font-weight: 600;
}
html:lang(en) #sv-solutions[data-v3] :is(.sv-whatsapp, .v3-hub-whatsapp) a:hover {
  border-color: var(--s31-ghost-edge-hover);
  background: var(--s31-ghost-hover);
  color: var(--s31-ink) !important;
}

/* ---------- Hub: grade de 10 cards ---------- */
html:lang(en) #sv-solutions[data-v3] .v3-hub-card {
  border-color: var(--s31-line);
  border-radius: 12px;
  background: #0c1419;
}
html:lang(en) #sv-solutions[data-v3] .v3-hub-card:hover {
  border-color: rgba(255, 255, 255, 0.2);
}
html:lang(en) #sv-solutions[data-v3] .v3-hub-card-copy {
  border-top-color: var(--s31-line);
}
html:lang(en) #sv-solutions[data-v3] .v3-hub-thumb .v3-stage {
  background: #0f191f;
}
/* "See the industry": link de texto, uma seta discreta. */
html:lang(en) #sv-solutions[data-v3] .v3-hub-card-action {
  min-height: 24px;
  color: var(--s31-ink);
  font-size: 14px;
  font-weight: 600;
}
html:lang(en) #sv-solutions[data-v3] .v3-hub-card-action > [aria-hidden="true"] {
  color: var(--s31-muted);
}
html:lang(en) #sv-solutions[data-v3] .v3-hub-card:hover .v3-hub-card-action {
  color: #fff;
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  html:lang(en) #sv-solutions[data-v3] .v3-nav a {
    min-height: 44px;
    font-size: 14px;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-button {
    justify-content: center;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-quiet {
    min-height: 44px;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-offer-cta {
    width: 100%;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-faq-list summary {
    font-size: 16px;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-hub-card-action {
    min-height: 44px;
    margin-top: 12px;
    font-size: 15px;
  }
}

/* Escopo aberto em coluna unica: a lista colava no paragrafo de cima. */
@media (max-width: 880px) {
  html:lang(en) #sv-solutions[data-v3] .v3-offer .sv-offer-content ul {
    margin-top: 18px;
  }
}

/* ==========================================================================
   Estrutura e ritmo do corpo (modelo: Guides). Depois do hero, todas as secoes no mesmo fundo,
   separadas por filete de largura total e respiro regular; cabecalho de secao em duas colunas
   (titulo | intro); FAQ compacto ao lado do titulo; contato como unico bloco elevado no fim.
   So layout: textos, campos, links e ordem das secoes intactos.
   ========================================================================== */
html:lang(en) #sv-solutions[data-v3] {
  --s31-body: #0a1115;
  --s31-rule: rgba(255, 255, 255, 0.09);
  --s31-raised: #0f1a21;
}
html:lang(en) #sv-solutions[data-v3] section:not(.v3-hero) {
  padding-top: 72px;
  padding-bottom: 76px;
  border-top: 1px solid var(--s31-rule);
  border-bottom: 0;
  background: var(--s31-body);
}
html:lang(en) #sv-solutions[data-v3] section.v3-hero {
  border-bottom: 0;
}

/* Cabecalho de secao: titulo a esquerda, intro a direita (como "Browse by collection"). */
html:lang(en) #sv-solutions[data-v3] .v3-head {
  max-width: none;
  margin-bottom: 40px;
}
html:lang(en) #sv-solutions[data-v3] .v3-head h2 {
  max-width: 22ch;
  font-size: clamp(28px, 2.7vw, 38px) !important;
  font-weight: 650;
  line-height: 1.18;
  letter-spacing: -0.035em;
}
html:lang(en) #sv-solutions[data-v3] .v3-head p {
  color: var(--s31-muted);
  font-size: 15.5px;
  line-height: 1.7;
}
@media (min-width: 1025px) {
  html:lang(en) #sv-solutions[data-v3] .v3-head:has(> p) {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 70px;
    align-items: end;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-head:has(> p) p {
    margin-top: 0;
    max-width: 46ch;
  }
}

/* Mocks: palco mais baixo e sem caixa, a peca impressa e o foco, nao o card. */
html:lang(en) #sv-solutions[data-v3] .v3-application .v3-panel .v3-stage {
  height: 400px;
  border: 0;
  background: #0d161c;
}
@media (max-width: 1180px) {
  html:lang(en) #sv-solutions[data-v3] .v3-application .v3-panel .v3-stage {
    height: 380px;
  }
}
@media (max-width: 880px) {
  html:lang(en) #sv-solutions[data-v3] .v3-application .v3-panel .v3-stage {
    height: auto;
  }
}

/* Builds x stays: rotulo da coluna com o mesmo filete das linhas. */
html:lang(en) #sv-solutions[data-v3] .v3-columns {
  max-width: none;
  column-gap: 70px;
}
html:lang(en) #sv-solutions[data-v3] .v3-column li {
  border-bottom-color: var(--s31-rule);
  color: #b4bcc2;
  font-size: 15px;
}

/* Escopos: linhas como a lista de colecoes do Guides. */
html:lang(en) #sv-solutions[data-v3] .v3-offer,
html:lang(en) #sv-solutions[data-v3] .v3-offers {
  border-top-color: var(--s31-rule);
}
html:lang(en) #sv-solutions[data-v3] .v3-offer:last-of-type {
  border-bottom-color: var(--s31-rule);
}

/* FAQ: titulo a esquerda, perguntas a direita. Fica secundario, sem competir com os blocos principais. */
html:lang(en) #sv-solutions[data-v3] .v3-faq .v3-head h2 {
  font-size: clamp(24px, 2.2vw, 30px) !important;
}
@media (min-width: 1025px) {
  html:lang(en) #sv-solutions[data-v3] .v3-faq > .sv-wrap {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
    gap: 70px;
    align-items: start;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-faq .v3-head {
    margin-bottom: 0;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-faq-list {
    max-width: none;
    border-top: 1px solid var(--s31-rule);
  }
}

/* Contato: o unico bloco elevado da pagina, fecha o percurso. */
html:lang(en) #sv-solutions[data-v3] section.v3-contact {
  padding-top: 88px;
  padding-bottom: 88px;
  border-top-color: rgba(255, 255, 255, 0.12);
  background: var(--s31-raised);
}
html:lang(en) #sv-solutions[data-v3] .v3-contact-copy h2 {
  font-size: clamp(30px, 3vw, 44px) !important;
  font-weight: 650;
  letter-spacing: -0.035em;
}
html:lang(en) #sv-solutions[data-v3] section.v3-contact .v3-form-panel {
  border-color: rgba(255, 255, 255, 0.12);
  background: #0a1115;
}

@media (max-width: 767px) {
  html:lang(en) #sv-solutions[data-v3] section:not(.v3-hero) {
    padding-top: 56px;
    padding-bottom: 60px;
  }
  html:lang(en) #sv-solutions[data-v3] section.v3-contact {
    padding-top: 64px;
    padding-bottom: 64px;
  }
  html:lang(en) #sv-solutions[data-v3] .v3-head {
    margin-bottom: 30px;
  }
}

/* pages/32-light-solutions.css */
/* 32-light-solutions.css: Solutions group (hub + 10 sectors, EN/BR/ES) in the light shell (2026-10-04).
 * Scope: the v3 widget root #sv-solutions[data-v3], used by every Solutions page in the three languages.
 * Prefix `:root body.page` lifts specificity over 31-solutions.css (html:lang(en) ...) and the widget sheet.
 * Rhythm: sub-nav white, then light bands alternating #f7fafd / #fff with hairlines; printed-piece stages become
 * soft tinted media inside white cards; the contact block is the page's one dark navy panel (with a white form card).
 * Colors, borders, shadows and text-transform only: layout, copy and links untouched. */

:root body.page #sv-solutions[data-v3] {
  /* Widget tokens re-pointed to the light palette (headings, body, form fields follow them). */
  --sv-bg: var(--vl-bg);
  --sv-surface: var(--vl-surface);
  --sv-line: var(--vl-line);
  --sv-text: var(--vl-ink);
  --sv-muted: var(--vl-muted);
  --sv-accent: var(--vl-accent);
  --s31-ink: var(--vl-ink);
  --s31-muted: var(--vl-muted);
  --s31-dim: #5d6a7e;
  --s31-line: var(--vl-line);
  --s31-rule: var(--vl-line);
  --s31-body: var(--vl-bg);
  --s31-accent: var(--vl-accent);
  --s31-accent-hover: #3cc2f3;
  --s31-accent-ink: var(--vl-accent-ink);
  --s32-small: #5d6a7e; /* muted for 11-13px text: keeps >= 4.5:1 on #f7fafd */
  --s32-stage: linear-gradient(180deg, #eef4f9 0%, #e6eef5 100%);
  --s32-paper-shadow: 0 2px 6px rgba(10, 19, 36, 0.06), 0 18px 34px -12px rgba(10, 19, 36, 0.28);
  background: var(--vl-bg) !important;
  color: var(--vl-ink-2);
}
/* Shortcode wrapper paints the old dark background behind the widget. */
body.page div:has(> #sv-solutions[data-v3]) { background: transparent !important; }

/* ---------- Sub-nav (Industries / Deliverables / Scopes / Contact) ---------- */
:root body.page #sv-solutions[data-v3] .v3-nav {
  background: var(--vl-surface) !important;
  border-bottom: 1px solid var(--vl-line) !important;
}
:root body.page #sv-solutions[data-v3] .v3-nav a { color: var(--vl-ink-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-nav .sv-back-link { border-right-color: var(--vl-line-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-nav a:hover,
:root body.page #sv-solutions[data-v3] .v3-nav a:focus-visible { color: var(--vl-accent-text) !important; }

/* ---------- Section rhythm: light bands with hairlines ---------- */
:root body.page #sv-solutions[data-v3] > section {
  border-top: 1px solid var(--vl-line) !important;
  border-bottom: 0 !important;
  background: var(--vl-bg) !important;
  background-image: none !important;
  color: var(--vl-ink-2);
}
:root body.page #sv-solutions[data-v3] > section.v3-hero {
  border-top: 0 !important;
  background: radial-gradient(ellipse 70% 90% at 85% 10%, rgba(25, 180, 239, 0.08), transparent 65%), var(--vl-bg) !important;
}
:root body.page #sv-solutions[data-v3] > section:is(.v3-application, .v3-scopes) { background: var(--vl-surface) !important; }
:root body.page #sv-solutions[data-v3] > section:is(.v3-delivery, .v3-faq) { background: var(--vl-bg) !important; }

/* ---------- Type ---------- */
:root body.page #sv-solutions[data-v3] :is(h1, h2, h3, h4) { color: var(--vl-ink) !important; }
:root body.page #sv-solutions[data-v3] .v3-hero h1 { letter-spacing: -0.04em; }
:root body.page #sv-solutions[data-v3] .v3-lead { color: var(--vl-ink-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-head p { color: var(--s32-small) !important; } /* #5d6a7e is 4.4:1 on #f7fafd */
:root body.page #sv-solutions[data-v3] .v3-credit { color: var(--s32-small) !important; }

/* Eyebrow ("VISU + Food trucks"): sentence case, no dot, quiet context line. */
:root body.page #sv-solutions[data-v3] .v3-eyebrow {
  color: var(--vl-accent-text) !important;
  font-weight: 600 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
:root body.page #sv-solutions[data-v3] .v3-eyebrow::before { content: none !important; display: none !important; }

/* ---------- Buttons ---------- */
:root body.page #sv-solutions[data-v3] .v3-button {
  border: 1px solid var(--vl-accent) !important;
  border-radius: 14px !important;
  background: var(--vl-accent) !important;
  color: var(--vl-accent-ink) !important;
  -webkit-text-fill-color: var(--vl-accent-ink) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset, 0 10px 24px -10px rgba(25, 180, 239, 0.7);
}
:root body.page #sv-solutions[data-v3] .v3-button:hover {
  border-color: var(--s31-accent-hover) !important;
  background: var(--s31-accent-hover) !important;
}
:root body.page #sv-solutions[data-v3] .v3-button:focus-visible { outline: 2px solid var(--vl-accent-text) !important; outline-offset: 3px; }
:root body.page #sv-solutions[data-v3] .v3-button .v3-mark { display: none; }

/* Text link in the hero ("See the industries"). */
:root body.page #sv-solutions[data-v3] .v3-quiet {
  color: var(--vl-ink) !important;
  border-bottom-color: var(--vl-line-2) !important;
}
:root body.page #sv-solutions[data-v3] .v3-quiet:hover {
  color: var(--vl-accent-text) !important;
  border-bottom-color: var(--vl-accent-text) !important;
}

/* ---------- Printed-piece stages: soft tinted media, light shadows ---------- */
:root body.page #sv-solutions[data-v3] .v3-application .v3-panel .v3-stage,
:root body.page #sv-solutions[data-v3] .v3-stage:not(.v3-hero-shot .v3-stage) {
  border: 1px solid var(--vl-line) !important;
  border-radius: 18px !important;
  background: var(--s32-stage) !important;
}
:root body.page #sv-solutions[data-v3] .v3-hub-thumb .v3-stage {
  border: 0 !important;
  border-radius: 0 !important;
  background: var(--s32-stage) !important;
}
:root body.page #sv-solutions[data-v3] .v3-hero-shot .v3-stage { border: 0 !important; background: none !important; }
:root body.page #sv-solutions[data-v3] :is(.v3-card, .v3-poster, .v3-badge-face, .v3-label, .v3-sign, .v3-bcard, .v3-slide) {
  box-shadow: var(--s32-paper-shadow) !important;
}
:root body.page #sv-solutions[data-v3] :is(.v3-tent, .v3-counter, .v3-folder) {
  filter: drop-shadow(0 16px 22px rgba(10, 19, 36, 0.2)) !important;
}
:root body.page #sv-solutions[data-v3] .v3-phone { box-shadow: 0 2px 6px rgba(10, 19, 36, 0.08), 0 24px 48px -18px rgba(10, 19, 36, 0.4) !important; }
:root body.page #sv-solutions[data-v3] .v3-hero-shot .v3-phone { box-shadow: 0 4px 12px rgba(10, 19, 36, 0.08), 0 40px 80px -28px rgba(10, 19, 36, 0.45) !important; }
:root body.page #sv-solutions[data-v3] .v3-screen-frame { box-shadow: 0 18px 34px -12px rgba(10, 19, 36, 0.35) !important; }
:root body.page #sv-solutions[data-v3] .v3-badge-lanyard { border-color: #9aa6b6 !important; }

/* "Sample artwork" tag: sentence case, muted. */
:root body.page #sv-solutions[data-v3] .v3-tag {
  color: var(--s32-small) !important;
  font-weight: 500 !important;
  letter-spacing: normal !important;
  text-transform: none !important;
}
:root body.page #sv-solutions[data-v3] .v3-tag::before { background: var(--vl-line-2) !important; }

/* Panel copy under each stage (sector pages). */
:root body.page #sv-solutions[data-v3] .v3-panel-copy { border-top-color: var(--vl-line) !important; }
:root body.page #sv-solutions[data-v3] .v3-utility { color: var(--vl-ink-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-line { color: var(--s32-small) !important; }

/* ---------- Hub: 10 industry cards ---------- */
:root body.page #sv-solutions[data-v3] .v3-hub-card {
  border: 1px solid var(--vl-line) !important;
  border-radius: 18px !important;
  background: var(--vl-surface) !important;
  box-shadow: var(--vl-shadow-sm);
  transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
:root body.page #sv-solutions[data-v3] .v3-hub-card:hover {
  border-color: var(--vl-line-2) !important;
  box-shadow: var(--vl-shadow-md);
}
:root body.page #sv-solutions[data-v3] .v3-hub-card:focus-visible { outline: 2px solid var(--vl-accent) !important; outline-offset: 3px; }
:root body.page #sv-solutions[data-v3] .v3-hub-card-copy { border-top: 1px solid var(--vl-line) !important; }
:root body.page #sv-solutions[data-v3] .v3-hub-card-copy h3 { color: var(--vl-ink) !important; }
:root body.page #sv-solutions[data-v3] .v3-hub-card-copy .v3-utility { color: var(--vl-ink-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-hub-card-action { color: var(--vl-accent-text) !important; }
:root body.page #sv-solutions[data-v3] .v3-hub-card-action > [aria-hidden="true"] { color: var(--vl-accent-text) !important; }
:root body.page #sv-solutions[data-v3] .v3-hub-card:hover .v3-hub-card-action { color: #056a9c !important; }

/* ---------- What VISU builds / what stays ---------- */
:root body.page #sv-solutions[data-v3] .v3-column h3 {
  color: var(--vl-ink) !important;
  border-bottom-color: var(--vl-line-2) !important;
  letter-spacing: -0.01em !important;
  text-transform: none !important;
}
:root body.page #sv-solutions[data-v3] .v3-column-1 h3 { color: var(--vl-ink-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-column li {
  color: var(--vl-ink-2) !important;
  border-bottom-color: var(--vl-line) !important;
}
:root body.page #sv-solutions[data-v3] .v3-column li::before { background: rgba(10, 19, 36, 0.28) !important; }
:root body.page #sv-solutions[data-v3] .v3-column-0 li::before { background: var(--vl-accent) !important; }

/* ---------- Scopes (accordion rows) ---------- */
:root body.page #sv-solutions[data-v3] :is(.v3-offer, .v3-offers) { border-top-color: var(--vl-line-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-offer,
:root body.page #sv-solutions[data-v3] .v3-offer:last-of-type { border-bottom-color: var(--vl-line-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-offer summary h3,
:root body.page #sv-solutions[data-v3] .v3-offer[open] summary h3 { color: var(--vl-ink) !important; }
:root body.page #sv-solutions[data-v3] .v3-offer .sv-offer-toggle {
  border-color: var(--vl-line-2) !important;
  background: var(--vl-surface);
  color: var(--vl-ink-2) !important;
}
:root body.page #sv-solutions[data-v3] .v3-offer summary:hover .sv-offer-toggle { border-color: rgba(10, 19, 36, 0.28) !important; }
:root body.page #sv-solutions[data-v3] .v3-offer[open] .sv-offer-toggle {
  border-color: var(--vl-accent) !important;
  color: var(--vl-accent-text) !important;
}
:root body.page #sv-solutions[data-v3] .v3-offer .sv-offer-content > p { color: var(--vl-ink-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-offer li { color: var(--vl-ink-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-offer li::before { border-color: var(--vl-accent) !important; }
/* Scope CTA: site ghost button (white, hairline, ink). */
:root body.page #sv-solutions[data-v3] .v3-offer-cta {
  border: 1px solid var(--vl-line-2) !important;
  border-radius: 14px !important;
  background: var(--vl-surface) !important;
  box-shadow: var(--vl-shadow-sm) !important;
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink);
}
:root body.page #sv-solutions[data-v3] .v3-offer-cta:hover,
:root body.page #sv-solutions[data-v3] .v3-offer-cta:focus-visible {
  border-color: rgba(10, 19, 36, 0.28) !important;
  background: var(--vl-surface) !important;
}
:root body.page #sv-solutions[data-v3] .v3-offer-cta .v3-mark { display: none; }
:root body.page #sv-solutions[data-v3] .v3-note { color: var(--s32-small) !important; }

/* ---------- FAQ ---------- */
:root body.page #sv-solutions[data-v3] .v3-faq-list { border-top-color: var(--vl-line-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-faq-list details { border-top-color: var(--vl-line-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-faq-list details:last-child { border-bottom-color: var(--vl-line-2) !important; }
:root body.page #sv-solutions[data-v3] .v3-faq-list summary { color: var(--vl-ink) !important; }
:root body.page #sv-solutions[data-v3] .v3-faq-list summary:hover { color: var(--vl-accent-text) !important; }
:root body.page #sv-solutions[data-v3] .v3-faq-list summary span { color: var(--vl-muted) !important; }
:root body.page #sv-solutions[data-v3] .v3-faq-list details[open] summary span { color: var(--vl-accent-text) !important; }
:root body.page #sv-solutions[data-v3] .v3-faq-list details[open] summary { color: var(--vl-ink) !important; }
:root body.page #sv-solutions[data-v3] .v3-faq-list p { color: var(--vl-ink-2) !important; }

/* ==========================================================================
   Contact: the one dark navy panel of the page, closing the path. The form sits in a white card.
   ========================================================================== */
:root body.page #sv-solutions[data-v3] > section.v3-contact {
  border-top: 0 !important;
  background: radial-gradient(ellipse 60% 80% at 10% 90%, rgba(25, 180, 239, 0.12), transparent 70%), var(--vl-navy) !important;
  color: rgba(226, 236, 246, 0.8);
}
:root body.page #sv-solutions[data-v3] .v3-contact-copy :is(h2, h3) { color: #fff !important; }
:root body.page #sv-solutions[data-v3] .v3-contact-copy > p { color: rgba(226, 236, 246, 0.8) !important; }
:root body.page #sv-solutions[data-v3] .v3-contact-copy ul { border-color: rgba(255, 255, 255, 0.1) !important; }
:root body.page #sv-solutions[data-v3] .v3-contact-copy li {
  border-top-color: rgba(255, 255, 255, 0.1) !important;
  border-bottom-color: rgba(255, 255, 255, 0.1) !important;
  color: rgba(226, 236, 246, 0.82) !important;
}
:root body.page #sv-solutions[data-v3] .v3-contact-copy li::before { background: var(--vl-accent) !important; }
:root body.page #sv-solutions[data-v3] .v3-contact-copy :is(hr, .sv-whatsapp, .v3-hub-whatsapp) { border-color: rgba(255, 255, 255, 0.1) !important; }

/* WhatsApp: on-dark ghost. */
:root body.page #sv-solutions[data-v3] :is(.sv-whatsapp, .v3-hub-whatsapp) p { color: rgba(226, 236, 246, 0.7) !important; }
:root body.page #sv-solutions[data-v3] :is(.sv-whatsapp, .v3-hub-whatsapp) a {
  border: 1px solid rgba(255, 255, 255, 0.24) !important;
  border-radius: 14px !important;
  background: rgba(255, 255, 255, 0.06) !important;
  color: #fff !important;
  -webkit-text-fill-color: #fff;
}
:root body.page #sv-solutions[data-v3] :is(.sv-whatsapp, .v3-hub-whatsapp) a:hover {
  border-color: rgba(255, 255, 255, 0.4) !important;
  background: rgba(255, 255, 255, 0.12) !important;
  color: #fff !important;
}
:root body.page #sv-solutions[data-v3] :is(.sv-whatsapp, .v3-hub-whatsapp) a:focus-visible { outline: 2px solid var(--vl-accent) !important; outline-offset: 3px; }

/* Form card: white on navy, fields in the light palette. */
:root body.page #sv-solutions[data-v3] {
  --v3-field: var(--vl-surface);
  --v3-field-edge: var(--vl-line-2);
  --v3-field-edge-hover: rgba(10, 19, 36, 0.28);
  --v3-ink: var(--vl-ink);
  --v3-ink-mute: var(--vl-ink-2);
  --v3-panel: var(--vl-surface);
  --v3-panel-edge: transparent;
}
:root body.page #sv-solutions[data-v3] .v3-form-panel,
:root body.page #sv-solutions[data-v3] > section.v3-contact .v3-form-panel {
  border: 1px solid rgba(255, 255, 255, 0.1) !important;
  border-radius: var(--vl-radius) !important;
  background: var(--vl-surface) !important;
  box-shadow: 0 30px 70px -30px rgba(0, 0, 0, 0.55) !important;
  color: var(--vl-ink-2);
}
:root body.page #sv-solutions[data-v3] .v3-form-panel .vi-intake { background: transparent !important; color: var(--vl-ink-2); }
:root body.page #sv-solutions[data-v3] .v3-form-panel .sv-context,
:root body.page #sv-solutions[data-v3] .sv-context {
  color: var(--vl-accent-text) !important;
  border-left-color: rgba(25, 180, 239, 0.45) !important;
}
:root body.page #sv-solutions[data-v3] .vi-form label { color: var(--vl-ink-2) !important; }
:root body.page #sv-solutions[data-v3] .vi-form .vi-req { color: var(--vl-accent-text) !important; }
:root body.page #sv-solutions[data-v3] .vi-form :is(.vi-required-legend, .vi-field-hint, .vi-privacy) { color: var(--s32-small) !important; }
:root body.page #sv-solutions[data-v3] .vi-form :is(.ff-el-form-control, input:not([type="hidden"]), textarea, select) {
  border: 1px solid var(--vl-line-2) !important;
  background-color: var(--vl-bg) !important;
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink);
}
:root body.page #sv-solutions[data-v3] .vi-form .ff-el-form-control::placeholder,
:root body.page #sv-solutions[data-v3] .vi-form :is(input, textarea)::placeholder { color: #7a8699 !important; -webkit-text-fill-color: #7a8699; }
:root body.page #sv-solutions[data-v3] .vi-form .ff-el-form-control:hover:not(:focus) { border-color: rgba(10, 19, 36, 0.28) !important; }
:root body.page #sv-solutions[data-v3] .vi-form select.ff-el-form-control option { background: var(--vl-surface) !important; color: var(--vl-ink) !important; }
:root body.page #sv-solutions[data-v3] .vi-form .ff-el-form-control:focus,
:root body.page #sv-solutions[data-v3] .vi-form .ff-el-form-control:focus-visible,
:root body.page #sv-solutions[data-v3] .vi-form :is(input, textarea, select):focus,
:root body.page #sv-solutions[data-v3] .vi-form :is(input, textarea, select):focus-visible {
  border-color: var(--vl-accent) !important;
  background-color: var(--vl-surface) !important;
  box-shadow: 0 0 0 3px rgba(25, 180, 239, 0.2) !important;
}
:root body.page #sv-solutions[data-v3] .vi-form :is(input, textarea, select):-webkit-autofill,
:root body.page #sv-solutions[data-v3] .vi-form :is(input, textarea, select):-webkit-autofill:hover {
  -webkit-box-shadow: 0 0 0 1000px var(--vl-tint) inset !important;
  box-shadow: 0 0 0 1000px var(--vl-tint) inset !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
  caret-color: var(--vl-ink);
}
:root body.page #sv-solutions[data-v3] .vi-form :is(input, textarea, select):-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--vl-tint) inset, 0 0 0 3px rgba(25, 180, 239, 0.2) !important;
  box-shadow: 0 0 0 1000px var(--vl-tint) inset, 0 0 0 3px rgba(25, 180, 239, 0.2) !important;
}
/* Submit: primary cyan. */
:root body.page #sv-solutions[data-v3] .vi-form .ff-btn-submit,
:root body.page #sv-solutions[data-v3] .fluentform .ff-btn-submit {
  border: 1px solid var(--vl-accent) !important;
  border-radius: 14px !important;
  background: var(--vl-accent) !important;
  color: var(--vl-accent-ink) !important;
  -webkit-text-fill-color: var(--vl-accent-ink) !important;
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset, 0 10px 24px -10px rgba(25, 180, 239, 0.7) !important;
}
:root body.page #sv-solutions[data-v3] .vi-form .ff-btn-submit:hover:not(:disabled),
:root body.page #sv-solutions[data-v3] .vi-form .ff-btn-submit:active:not(:disabled) {
  border-color: var(--s31-accent-hover) !important;
  background: var(--s31-accent-hover) !important;
}
:root body.page #sv-solutions[data-v3] .vi-form button[type="submit"]:focus-visible { outline: 2px solid var(--vl-accent-text) !important; outline-offset: 3px; }
/* Result messages in the light palette. */
:root body.page #sv-solutions[data-v3] .vi-form .vi-result {
  border-color: #b9e2cb !important;
  background: #e8f6ee !important;
  color: #0f6b37 !important;
}
:root body.page #sv-solutions[data-v3] .vi-form .vi-result.vi-error {
  border-color: #f2c4bc !important;
  background: #fdf0ee !important;
  color: #a2321f !important;
}

/* BR/ES: 31-solutions.css only pads the ghost buttons on EN; without it the hairline hugs the text. */
:root body.page #sv-solutions[data-v3]:not([lang="en"]) :is(.v3-offer-cta, .sv-whatsapp a, .v3-hub-whatsapp a) {
  min-height: 48px;
  padding: 0 20px !important;
  justify-content: center;
  font-size: 15px;
  font-weight: 600;
}

/* pages/33-solutions-v4.css */
/* 33-solutions-v4.css: "How it works" steps and "Ways to start" cards (see 33-solutions-v4.js). Light shell. */
body.page #sv-solutions#sv-solutions .sv4-steps {
  list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; counter-reset: none;
}
body.page #sv-solutions#sv-solutions .sv4-step {
  position: relative; margin: 0 !important; padding: 26px 24px 24px !important; border-radius: 20px;
  background: var(--vl-surface, #fff); border: 1px solid var(--vl-line, rgba(10, 19, 36, .08)); box-shadow: var(--vl-shadow-sm);
}
body.page #sv-solutions#sv-solutions .sv4-step::before, body.page #sv-solutions#sv-solutions .sv4-step::marker { content: none !important; display: none !important; }
body.page #sv-solutions#sv-solutions .sv4-num {
  display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; margin-bottom: 16px;
  background: var(--vl-ink, #0a1324); color: #fff; font-weight: 700; font-size: 15px;
}
body.page #sv-solutions#sv-solutions .sv4-step h3 { margin: 0 0 8px !important; font-size: 20px !important; line-height: 1.25 !important; color: var(--vl-ink) !important; }
body.page #sv-solutions#sv-solutions .sv4-step p { margin: 0 !important; font-size: 15px !important; line-height: 1.55 !important; color: var(--vl-ink-2) !important; }
body.page #sv-solutions#sv-solutions .sv4-included-label { margin-bottom: 8px !important; font-weight: 600; color: var(--vl-muted, #5d6a7e) !important; font-size: 13.5px !important; }
body.page #sv-solutions#sv-solutions .sv4-included { list-style: none; margin: 0 !important; padding: 0 !important; display: grid; gap: 8px; }
body.page #sv-solutions#sv-solutions .sv4-included li {
  position: relative; margin: 0 !important; padding: 0 0 0 24px !important; border: 0 !important;
  font-size: 14.5px !important; line-height: 1.45 !important; color: var(--vl-ink-2) !important;
}
body.page #sv-solutions#sv-solutions .sv4-included li::before {
  content: "" !important; display: block !important; position: absolute; left: 2px; top: 5px; width: 12px; height: 7px;
  border-left: 2px solid #15924a; border-bottom: 2px solid #15924a; transform: rotate(-45deg); background: none !important;
}

/* Ways to start */
body.page #sv-solutions#sv-solutions .sv4-ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
body.page #sv-solutions#sv-solutions .sv4-way {
  display: flex; flex-direction: column; gap: 10px; padding: 26px 24px 22px; border-radius: 20px;
  background: var(--vl-surface, #fff); border: 1px solid var(--vl-line-2, rgba(10, 19, 36, .14));
}
body.page #sv-solutions#sv-solutions .sv4-way:first-child { border: 2px solid var(--vl-accent, #19b4ef); }
body.page #sv-solutions#sv-solutions .sv4-way h3 { margin: 0 !important; font-size: 21px !important; line-height: 1.25 !important; color: var(--vl-ink) !important; }
body.page #sv-solutions#sv-solutions .sv4-way p { margin: 0 0 8px !important; font-size: 15px !important; line-height: 1.55 !important; color: var(--vl-ink-2) !important; flex: 1; }
body.page #sv-solutions#sv-solutions .sv4-way .v3-offer-cta { align-self: flex-start; margin-top: auto !important; }

@media (max-width: 1024px) {
  body.page #sv-solutions#sv-solutions :is(.sv4-steps, .sv4-ways) { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  body.page #sv-solutions#sv-solutions :is(.sv4-step, .sv4-way) { padding: 20px 18px !important; }
}

/* Fresh profile captures inside the existing phone frames */
body.page #sv-solutions#sv-solutions img.sv4-shot { object-fit: cover !important; object-position: top center !important; }

/* Hub: compact industry cards */
body.page #sv-solutions#sv-solutions .sv4-compact .v3-hub-thumb { display: none !important; }
body.page #sv-solutions#sv-solutions .sv4-compact .v3-hub-card { min-height: 0 !important; height: auto !important; }
body.page #sv-solutions#sv-solutions .sv4-compact .v3-hub-card-copy { padding: 22px 20px 20px !important; display: flex; flex-direction: column; height: 100%; }
body.page #sv-solutions#sv-solutions .sv4-compact .v3-hub-card-action { margin-top: auto !important; padding-top: 12px; }
body.page #sv-solutions#sv-solutions .sv4-icon {
  display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; margin-bottom: 14px;
  background: var(--vl-tint, #eef6fc); color: var(--vl-accent-text, #0670a6);
}
body.page #sv-solutions#sv-solutions .sv4-icon svg { width: 21px; height: 21px; }

/* Hub: real businesses */
body.page #sv-solutions#sv-solutions .sv4-real { padding: 88px 0; background: var(--vl-surface, #fff); border-top: 1px solid var(--vl-line); }
body.page #sv-solutions#sv-solutions .sv4-real-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
body.page #sv-solutions#sv-solutions .sv4-real-item { display: flex; flex-direction: column; gap: 14px; text-decoration: none !important; color: inherit !important; }
body.page #sv-solutions#sv-solutions .sv4-real-shot {
  width: 100%; height: auto; aspect-ratio: 390 / 600; object-fit: cover; object-position: top; display: block;
  border-radius: 22px; border: 5px solid #1b2733; box-shadow: var(--vl-shadow-md); background: #0b1117;
  transition: transform .2s;
}
body.page #sv-solutions#sv-solutions .sv4-real-item:hover .sv4-real-shot { transform: translateY(-3px); }
body.page #sv-solutions#sv-solutions .sv4-real-meta { display: grid; gap: 2px; }
body.page #sv-solutions#sv-solutions .sv4-real-meta b { font-size: 17px; color: var(--vl-ink) !important; }
body.page #sv-solutions#sv-solutions .sv4-real-meta span { font-size: 14px; color: var(--vl-muted, #5d6a7e) !important; }
body.page #sv-solutions#sv-solutions .sv4-real-open { color: var(--vl-accent-text, #0670a6) !important; font-weight: 600; margin-top: 4px; }
@media (max-width: 1024px) {
  body.page #sv-solutions#sv-solutions .sv4-real { padding: 56px 0; }
  body.page #sv-solutions#sv-solutions .sv4-real-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 12px; }
}
body.page #sv-solutions#sv-solutions .sv4-real .sv-wrap { box-sizing: border-box; }
body.page #sv-solutions#sv-solutions .sv4-real-meta span { overflow-wrap: anywhere; }
@media (max-width: 1024px) {
  body.page #sv-solutions#sv-solutions .sv4-real .sv-wrap { padding-left: 16px !important; padding-right: 16px !important; }
  body.page #sv-solutions#sv-solutions .sv4-real-meta b { font-size: 15px; }
  body.page #sv-solutions#sv-solutions .sv4-real-meta span { font-size: 12.5px; }
}

/* pages/41-guides.css */
/* Revisao site-v5: Guides (EN) = hub /guides/ + 10 colecoes (template visu-guides-v1, classes .vg-*).
   Par visual de pages/40-guides.js (textos). So acabamento: titulo numa cor so, kicker discreto,
   sem seta em botao cheio, sem numeracao falsa, icone de categoria sem fundo tinto, CTA final integrado.
   NAO toca: cards de artigo, paginacao (Load more / Showing X of N / Open the full collection),
   busca (so tira a seta do botao), filtros por colecao, breadcrumb, links.
   Id repetido no seletor = vencer o tema (#visu-guides-v1[data-palette]:not():not() h1) sem !important. */

/* ---------- Titulo: uma cor so ---------- */
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 h1,
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 h1 em { color: #f1f0ea; }

/* ---------- Kicker "Collection": sentence case discreto, sem ponto verde ---------- */
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-kicker {
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  color: #a3acb3;
}
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-kicker::before { content: none; }

/* ---------- Botoes: sem seta, texto centrado, radius/fonte do site ---------- */
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-hero .vg-button .vg-arrow,
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-search .vg-button .vg-arrow,
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing .vg-button .vg-arrow { display: none; }

html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-hero .vg-button,
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-search > .vg-button,
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing .vg-button {
  justify-content: center;
  text-align: center;
  font-size: 15px;
  border-radius: 10px;
}
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing .vg-ghost {
  border-color: rgba(255, 255, 255, 0.2);
  background: transparent;
}
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing .vg-ghost:hover {
  border-color: rgba(255, 255, 255, 0.4);
  background: #192932;
}

/* ---------- Categorias: sem 01..10, icone com cor so no traco, seta neutra ---------- */
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-category-number { display: none; }
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1[data-palette] .vg-category-mark {
  background: rgba(255, 255, 255, 0.04);
  border-radius: 10px;
}
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-category > span:last-child { color: #6b747b; transition: color 0.15s; }
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-category:hover > span:last-child { color: #44c7f4; }

/* ---------- Destaque: selo "Start here" sem caixa alta miuda ---------- */
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-feature-label {
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 0;
  text-transform: none;
  border-left: 0;
  border-radius: 6px;
}

/* ---------- CTA final das colecoes: sem caixa propria, so um filete como as outras secoes ---------- */
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing { padding: 0 0 56px; }
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing-inner {
  padding: 40px 0 0;
  background: transparent;
  border: 0;
  border-top: 1px solid var(--vg-line);
  border-radius: 0;
}
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing .vg-actions { justify-content: flex-end; }

@media (max-width: 1000px) {
  html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-hero .vg-button { font-size: 15px; }
  html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing .vg-actions { justify-content: stretch; }
}
@media (max-width: 700px) {
  html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing { padding: 0 0 40px; }
  html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-closing-inner { padding: 32px 0 0; }
}

/* ---------- Breadcrumb: alvo de toque 44px sem mudar o desenho ---------- */
html:lang(en) body:is(.page-id-15384,.page-id-15143,.page-id-15374,.page-id-15606,.page-id-15648,.page-id-15581,.page-id-15596,.page-id-15634,.page-id-15622,.page-id-15659,.page-id-15672) #visu-guides-v1#visu-guides-v1 .vg-breadcrumb a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-block: -12.5px;
}

/* pages/42-light-guides-hub.css */
/* 42-light-guides-hub.css: Guides (#visu-guides-v1) + Attention Economy hub and tools
 * (#visu-hub, #visu-calculator, #visu-quiz, #visu-comparison, #visu-glossary) on the light shell.
 * Scoped by widget root, so EN/BR/ES share it. Colors, borders, shadows and text-transform only.
 * Stays dark (accent panels): hub "30 minutes less" scenario (.ah-scenario) and the quiz share card (.aq-card).
 * The calculator receipt is already a light paper card (HTML, not canvas) and keeps its own palette. */

/* Text-safe variants of --vl-muted / --vl-accent-text: the tokens measure 4.3:1 and 3.8:1 on --vl-bg,
   so small text in these widgets uses slightly deeper shades to clear 4.5:1. */
body.page { --lg-muted: #5d6a7e; --lg-link: #0670a6; }

/* ================================================================== GUIDES */
body.page #visu-guides-v1#visu-guides-v1 {
  --vg-bg: var(--vl-bg);
  --vg-ink: var(--vl-ink);
  --vg-muted: #5d6a7e;
  --vg-line: var(--vl-line-2);
  --vg-blue: var(--lg-link);
  --vg-dot: var(--vl-accent);
  background: var(--vl-bg) !important;
  color: var(--vl-ink);
  color-scheme: only light;
}
body.page #visu-guides-v1#visu-guides-v1 p { color: var(--vl-ink-2); }
body.page #visu-guides-v1#visu-guides-v1 :is(h1, h1 em, h2, h3) { color: var(--vl-ink) !important; }
body.page #visu-guides-v1#visu-guides-v1 :is(a, button, input, select):focus-visible { outline: 2px solid var(--vl-accent); }

/* Hero band: white surface over the page bg */
body.page #visu-guides-v1#visu-guides-v1 .vg-hero { background: var(--vl-surface); border-bottom-color: var(--vl-line); }
body.page #visu-guides-v1#visu-guides-v1 .vg-kicker { color: var(--lg-muted) !important; text-transform: none !important; letter-spacing: normal !important; font-weight: 600 !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-identity-symbol,
body.page #visu-guides-v1#visu-guides-v1[data-palette="accents"] .vg-identity-symbol { color: var(--lg-link); }
body.page #visu-guides-v1#visu-guides-v1[data-palette="accents"] .vg-identity-symbol { color: color-mix(in srgb, var(--vg-accent, #19b4ef) 70%, #0a1324); }
body.page #visu-guides-v1#visu-guides-v1 .vg-scope { color: var(--vl-ink-2); }
body.page #visu-guides-v1#visu-guides-v1 .vg-hero-topics { border-left-color: var(--vl-line-2) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-hero-topics > span { color: var(--vl-ink); }
body.page #visu-guides-v1#visu-guides-v1 .vg-hero-topics li::before { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-hero-text-link,
body.page #visu-guides-v1#visu-guides-v1 .vg-collection-link { border-bottom-color: var(--vl-line-2); }
body.page #visu-guides-v1#visu-guides-v1 .vg-collection-link > span { color: var(--lg-link); }
body.page #visu-guides-v1#visu-guides-v1 .vg-breadcrumb { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-library-note { border-left-color: var(--vl-line-2); }
body.page #visu-guides-v1#visu-guides-v1 .vg-library-note > span { color: var(--lg-muted); letter-spacing: normal; font-weight: 600; text-transform: none; }

/* Buttons */
body.page #visu-guides-v1#visu-guides-v1 .vg-button { background: var(--vl-accent); border-color: transparent; color: var(--vl-accent-ink) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-button:hover { background: #4cc6f4; }
body.page #visu-guides-v1#visu-guides-v1 .vg-ghost,
body.page #visu-guides-v1#visu-guides-v1 .vg-closing .vg-ghost,
body.page #visu-guides-v1#visu-guides-v1 .vg-reading-footer > .vg-button {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line-2) !important;
  color: var(--vl-ink) !important;
  box-shadow: var(--vl-shadow-sm);
}
body.page #visu-guides-v1#visu-guides-v1 .vg-ghost:hover,
body.page #visu-guides-v1#visu-guides-v1 .vg-closing .vg-ghost:hover,
body.page #visu-guides-v1#visu-guides-v1 .vg-reading-footer > .vg-button:hover { background: var(--vl-tint) !important; border-color: rgba(10, 19, 36, 0.24) !important; }

/* Featured read */
body.page #visu-guides-v1#visu-guides-v1 .vg-feature-image { background: #e6eef5; box-shadow: var(--vl-shadow-sm); }
body.page #visu-guides-v1#visu-guides-v1 .vg-feature-label {
  background: rgba(255, 255, 255, 0.94) !important;
  color: var(--vl-ink) !important;
  border-left: 0 !important;
  text-transform: none;
  letter-spacing: normal;
  font-weight: 600;
  box-shadow: var(--vl-shadow-sm);
}
body.page #visu-guides-v1#visu-guides-v1 .vg-feature-arrow { border-color: var(--vl-line-2); color: var(--lg-link); background: var(--vl-surface); }
body.page #visu-guides-v1#visu-guides-v1 .vg-secondary-reads a { border-top-color: var(--vl-line-2); }
body.page #visu-guides-v1#visu-guides-v1 .vg-secondary-reads a > span:last-child { color: var(--lg-link); }

/* Collection directory */
body.page #visu-guides-v1#visu-guides-v1 .vg-category-mark,
body.page #visu-guides-v1#visu-guides-v1[data-palette] .vg-category-mark { background: var(--vl-tint) !important; color: var(--lg-link); }
body.page #visu-guides-v1#visu-guides-v1[data-palette="accents"] .vg-category-mark { color: color-mix(in srgb, var(--vg-accent, #19b4ef) 72%, #0a1324); }
body.page #visu-guides-v1#visu-guides-v1 .vg-category > span:last-child { color: var(--lg-muted) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-category:hover > span:last-child,
body.page #visu-guides-v1#visu-guides-v1 .vg-category:hover h3 { color: var(--lg-link) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-category-number { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-collection-nav { background: var(--vl-surface); border-bottom-color: var(--vl-line); }
body.page #visu-guides-v1#visu-guides-v1 .vg-collection-scroll { scrollbar-color: #c4ceda transparent; }
body.page #visu-guides-v1#visu-guides-v1 .vg-collection-scroll a { color: var(--lg-muted) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-collection-scroll a:hover,
body.page #visu-guides-v1#visu-guides-v1 .vg-collection-scroll a[aria-current] { color: var(--vl-ink) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-collection-scroll a[aria-current],
body.page #visu-guides-v1#visu-guides-v1[data-palette="accents"] .vg-collection-scroll a[aria-current] { border-bottom-color: var(--vl-accent); }

/* Search + filter */
body.page #visu-guides-v1#visu-guides-v1 .vg-search label { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-search :is(input, select),
body.page #visu-guides-v1#visu-guides-v1 .vg-select-trigger {
  background-color: var(--vl-surface) !important;
  border: 1px solid var(--vl-line-2) !important;
  color: var(--vl-ink) !important;
  -webkit-text-fill-color: var(--vl-ink) !important;
  caret-color: var(--vl-ink);
  color-scheme: only light;
  box-shadow: var(--vl-shadow-sm) !important;
}
body.page #visu-guides-v1#visu-guides-v1 .vg-search :is(input, select):focus,
body.page #visu-guides-v1#visu-guides-v1 .vg-select-trigger:is(:focus-visible, [aria-expanded="true"]) { border-color: var(--vl-accent) !important; box-shadow: 0 0 0 3px rgba(25, 180, 239, 0.18) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-search input:is(:autofill, :-webkit-autofill) { -webkit-box-shadow: 0 0 0 1000px #fff inset !important; box-shadow: 0 0 0 1000px #fff inset !important; border-color: var(--vl-line-2) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-search input::placeholder { color: var(--lg-muted); -webkit-text-fill-color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-clear { color: var(--lg-muted) !important; }
body.page #visu-guides-v1#visu-guides-v1 .vg-select-trigger > svg { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-select-menu { background: var(--vl-surface); border-color: var(--vl-line); box-shadow: var(--vl-shadow-md); scrollbar-color: #c4ceda transparent; }
body.page #visu-guides-v1#visu-guides-v1 .vg-select-option { color: var(--vl-ink-2); }
body.page #visu-guides-v1#visu-guides-v1 .vg-select-option.vg-option-active { background: var(--vl-tint); color: var(--vl-ink); }
body.page #visu-guides-v1#visu-guides-v1 .vg-select-option[aria-selected="true"] { background: var(--vl-tint); color: var(--vl-ink); }
body.page #visu-guides-v1#visu-guides-v1 .vg-option-check { color: var(--lg-link); }
body.page #visu-guides-v1#visu-guides-v1 .vg-status { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-error { background: #fff6ed; border-left-color: #d9822b; }
body.page #visu-guides-v1#visu-guides-v1 .vg-error p { color: #7a3d0a; }
body.page #visu-guides-v1#visu-guides-v1 .vg-retry { color: var(--vl-ink); border-color: #d9a066; background: var(--vl-surface); }

/* Article list */
body.page #visu-guides-v1#visu-guides-v1 .vg-result-summary p { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-result-summary .vg-result-title,
body.page #visu-guides-v1#visu-guides-v1 .vg-result-summary p.vg-result-title { color: var(--vl-ink); }
body.page #visu-guides-v1#visu-guides-v1 .vg-card-image { background: #e6eef5; }
body.page #visu-guides-v1#visu-guides-v1 .vg-card .vg-card-meta { color: var(--lg-link); text-transform: none; letter-spacing: normal; font-size: 12px; }
body.page #visu-guides-v1#visu-guides-v1 .vg-card-foot { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-card-foot > span { color: var(--vl-ink); }
body.page #visu-guides-v1#visu-guides-v1 .vg-card-foot > span > span { color: var(--lg-link); }
body.page #visu-guides-v1#visu-guides-v1 .vg-pagination [aria-current] { color: var(--vl-ink); background: var(--vl-surface); border-color: var(--vl-line-2); }
body.page #visu-guides-v1#visu-guides-v1 .vg-pagination a:hover { background: var(--vl-tint); }
body.page #visu-guides-v1#visu-guides-v1 .vg-progress-track { background: #dfe6ee; }
body.page #visu-guides-v1#visu-guides-v1 .vg-progress-track > span { background: var(--vl-accent); }

/* FAQ, related, closing */
body.page #visu-guides-v1#visu-guides-v1 .vg-faq summary > span { color: var(--lg-muted); }
body.page #visu-guides-v1#visu-guides-v1 .vg-closing-inner { background: var(--vl-surface); border-color: var(--vl-line); box-shadow: var(--vl-shadow-sm); border-radius: var(--vl-radius); }
html:lang(en) body.page #visu-guides-v1#visu-guides-v1 .vg-closing-inner { box-shadow: none; }

/* ================================================================== ATTENTION HUB */
body.page #visu-hub#visu-hub {
  --ah-bg: var(--vl-bg);
  --ah-ink: var(--vl-ink);
  --ah-muted: var(--vl-ink-2);
  --ah-line: var(--vl-line-2);
  --ah-blue: var(--lg-link);
  --ah-green: #2d7656;
  background: var(--vl-bg) !important;
  color: var(--vl-ink);
  color-scheme: only light;
}
body.page #visu-hub#visu-hub :is(h1, h2, h3) { color: var(--vl-ink); }
body.page #visu-hub#visu-hub :is(h1, h2, h3) a { color: inherit !important; }
/* ES page: a theme link color (#00bfff, 2:1 on light) reaches the hub's text links */
body.page #visu-hub#visu-hub a:not(.ah-button):not(.ah-ghost) { color: var(--vl-ink) !important; }
body.page #visu-hub#visu-hub a:not(.ah-button):not(.ah-ghost):hover { color: var(--lg-link) !important; }
body.page #visu-hub#visu-hub :is(h1, h2, h3) a:hover { color: var(--lg-link) !important; }
body.page #visu-hub#visu-hub :is(a, summary):focus-visible { outline: 2px solid var(--vl-accent); }
body.page #visu-hub#visu-hub .ah-button { background: var(--vl-accent); color: var(--vl-accent-ink) !important; }
body.page #visu-hub#visu-hub .ah-button:hover { background: #4cc6f4; }
body.page #visu-hub#visu-hub :is(.ah-hero, .ah-closing) .ah-ghost { background: var(--vl-surface); border: 1px solid var(--vl-line-2); color: var(--vl-ink) !important; box-shadow: var(--vl-shadow-sm); }
body.page #visu-hub#visu-hub :is(.ah-hero, .ah-closing) .ah-ghost:hover { background: var(--vl-tint); border-color: rgba(10, 19, 36, 0.24); }
body.page #visu-hub#visu-hub .ah-hero-method p { color: var(--lg-muted); }
body.page #visu-hub#visu-hub .ah-hero-receipt figcaption { letter-spacing: normal; text-transform: none; }
body.page #visu-hub#visu-hub .ah-hero-receipt figcaption span:last-child,
body.page #visu-hub#visu-hub .ah-hero-receipt > p { color: var(--lg-muted); }
body.page #visu-hub#visu-hub .ah-hero-receipt img { box-shadow: var(--vl-shadow-md); border: 1px solid var(--vl-line); }
body.page #visu-hub#visu-hub .ah-index { color: var(--lg-muted); }
body.page #visu-hub#visu-hub .ah-tool-example,
body.page #visu-hub#visu-hub .ah-tool--quiz .ah-tool-example { border-left-color: var(--vl-line-2); border-color: var(--vl-line-2); }
body.page #visu-hub#visu-hub .ah-tag { color: var(--lg-muted); letter-spacing: normal; text-transform: none; }
body.page #visu-hub#visu-hub .ah-example-label,
body.page #visu-hub#visu-hub .ah-example-note { color: var(--lg-muted); letter-spacing: normal; }
body.page #visu-hub#visu-hub .ah-example-value,
body.page #visu-hub#visu-hub :is(.ah-tool--quiz, .ah-tool--comparison, .ah-tool--glossary) .ah-example-value { color: var(--vl-ink); }
body.page #visu-hub#visu-hub .ah-tool--calculator .ah-example-value { color: var(--ah-green); }
body.page #visu-hub#visu-hub .ah-example-unit { color: var(--vl-ink-2); }
body.page #visu-hub#visu-hub .ah-time-track { background: #e1ece6; }
body.page #visu-hub#visu-hub .ah-time-track span { background: #2fa36c; }
body.page #visu-hub#visu-hub .ah-compare-lines span { background: #8aa4b0; }
body.page #visu-hub#visu-hub .ah-compare-lines span:nth-child(2) { background: #6fa587; }
body.page #visu-hub#visu-hub .ah-compare-lines span:nth-child(3) { background: #9db09f; }
body.page #visu-hub#visu-hub .ah-principle { color: var(--vl-ink); border-left-color: rgba(45, 118, 86, 0.35); }
body.page #visu-hub#visu-hub .ah-context { border-left-color: var(--vl-line-2); }
body.page #visu-hub#visu-hub .ah-context dt { color: var(--vl-ink); }
body.page #visu-hub#visu-hub .ah-context dd { color: var(--vl-ink-2); }
body.page #visu-hub#visu-hub .ah-flow li { border-top-color: var(--vl-line-2); }

/* Scenario stays a dark accent panel */
body.page #visu-hub#visu-hub .ah-scenario { background: var(--vl-navy); border-color: rgba(255, 255, 255, 0.08); border-radius: var(--vl-radius); box-shadow: var(--vl-shadow-md); }
body.page #visu-hub#visu-hub .ah-scenario > p { color: rgba(226, 236, 246, 0.74); }
body.page #visu-hub#visu-hub .ah-scenario > div > span,
body.page #visu-hub#visu-hub .ah-scenario strong small { color: rgba(226, 236, 246, 0.72); letter-spacing: normal; }
body.page #visu-hub#visu-hub .ah-scenario strong { color: #fff; }
body.page #visu-hub#visu-hub .ah-scenario-bar { background: rgba(255, 255, 255, 0.1); }
body.page #visu-hub#visu-hub .ah-scenario-bar > span { background: #6fc39a; }
body.page #visu-hub#visu-hub .ah-scenario-bar--less > span { background: var(--vl-accent); }
body.page #visu-hub#visu-hub .ah-scenario > p.ah-scenario-gain { color: #7fd8ab; }
body.page #visu-hub#visu-hub .ah-scenario-gain small { color: rgba(226, 236, 246, 0.72); }

/* ================================================================== CALCULATOR */
body.page #visu-calculator#visu-calculator {
  --ar-bg: var(--vl-bg);
  --ar-ink: var(--vl-ink);
  --ar-muted: var(--vl-ink-2);
  --ar-line: var(--vl-line-2);
  --ar-blue: var(--lg-link);
  --ar-green: #2d7656;
  background: var(--vl-bg) !important;
  color: var(--vl-ink);
  color-scheme: only light;
}
body.page #visu-calculator#visu-calculator :is(h1, h2, h3) { color: var(--vl-ink); }
body.page #visu-calculator#visu-calculator .ar-receipt :is(h2, h3) { color: #182f29; }
body.page #visu-calculator#visu-calculator :is(a, button, input, select, summary, textarea):focus-visible { outline: 2px solid var(--vl-accent) !important; outline-offset: 2px; }
body.page #visu-calculator#visu-calculator .ar-breadcrumb { color: var(--lg-muted); }
body.page #visu-calculator#visu-calculator .ar-step { text-transform: none; letter-spacing: normal; font-weight: 600; }
body.page #visu-calculator#visu-calculator .ar-fields label { color: var(--lg-muted); }
body.page #visu-calculator#visu-calculator :is(.ar-fields input, .ar-fields select, textarea),
body.page #visu-calculator#visu-calculator :is(#daily-hours, #daily-minutes, #hourly-rate, #currency) {
  background-color: var(--vl-surface) !important;
  color: var(--vl-ink) !important;
  border: 1px solid var(--vl-line-2) !important;
  border-radius: 12px;
  box-shadow: var(--vl-shadow-sm) !important;
  color-scheme: only light;
}
body.page #visu-calculator#visu-calculator :is(.ar-fields input, .ar-fields select, textarea):focus { border-color: var(--vl-accent) !important; box-shadow: 0 0 0 3px rgba(25, 180, 239, 0.18) !important; }
body.page #visu-calculator#visu-calculator .ar-colon { color: var(--lg-muted); }
body.page #visu-calculator#visu-calculator .ar-error { color: #b42318; }
body.page #visu-calculator#visu-calculator .ar-button { background: var(--vl-accent); color: var(--vl-accent-ink) !important; }
body.page #visu-calculator#visu-calculator .ar-button:hover { background: #4cc6f4; }
body.page #visu-calculator#visu-calculator .ar-ghost { background: var(--vl-surface); border-color: var(--vl-line-2); color: var(--vl-ink) !important; box-shadow: var(--vl-shadow-sm); }
body.page #visu-calculator#visu-calculator .ar-ghost:hover { background: var(--vl-tint); border-color: rgba(10, 19, 36, 0.24); }
body.page #visu-calculator#visu-calculator .ar-text-button { color: var(--lg-link); }
body.page #visu-calculator#visu-calculator .ar-money summary small { color: var(--lg-link); letter-spacing: normal; text-transform: none; font-weight: 600; font-size: 12px; }
body.page #visu-calculator#visu-calculator .ar-money summary > span:last-child { color: var(--lg-muted); }
body.page #visu-calculator#visu-calculator .ar-result-label { color: var(--lg-muted); }
body.page #visu-calculator#visu-calculator .ar-receipt { box-shadow: var(--vl-shadow-md); border-radius: 4px 4px 0 0; }
body.page #visu-calculator#visu-calculator .ar-receipt-edition { letter-spacing: normal; }
body.page #visu-calculator#visu-calculator .ar-concepts article { border-top-color: var(--vl-line-2); }
body.page #visu-calculator#visu-calculator .ar-sources { background: var(--vl-surface); border-color: var(--vl-line); border-radius: 16px; box-shadow: var(--vl-shadow-sm); }
body.page #visu-calculator#visu-calculator .ar-notice { border-color: var(--vl-line-2); background: var(--vl-surface); border-radius: 12px; }
body.page #visu-calculator#visu-calculator .ar-dialog { background: var(--vl-surface); color: var(--vl-ink); border-color: var(--vl-line); border-radius: var(--vl-radius); box-shadow: var(--vl-shadow-md); }
body.page #visu-calculator#visu-calculator .ar-dialog::backdrop { background: rgba(6, 19, 31, 0.6); }

/* ================================================================== QUIZ */
body.page #visu-quiz#visu-quiz {
  --aq-bg: var(--vl-bg);
  --aq-ink: var(--vl-ink);
  --aq-muted: var(--vl-ink-2);
  --aq-line: var(--vl-line-2);
  --aq-blue: var(--lg-link);
  --aq-green: #2d7656;
  --aq-dot: var(--vl-accent);
  background: var(--vl-bg) !important;
  color: var(--vl-ink);
  color-scheme: only light;
}
body.page #visu-quiz#visu-quiz :is(h1, h2, h3, legend) { color: var(--vl-ink); }
body.page #visu-quiz#visu-quiz :is(a, button, input, summary, textarea):focus-visible { outline: 2px solid var(--vl-accent); }
body.page #visu-quiz#visu-quiz .aq-breadcrumb,
body.page #visu-quiz#visu-quiz #step-indicator { color: var(--lg-muted); }
body.page #visu-quiz#visu-quiz :is(.aq-kicker, .aq-step, .aq-output-label) { text-transform: none; letter-spacing: normal; font-weight: 600; }
body.page #visu-quiz#visu-quiz .aq-kicker::before { box-shadow: 0 0 0 4px rgba(25, 180, 239, 0.14); }
body.page #visu-quiz#visu-quiz .aq-button { background: var(--vl-accent); color: var(--vl-accent-ink) !important; }
body.page #visu-quiz#visu-quiz .aq-button:hover { background: #4cc6f4; }
body.page #visu-quiz#visu-quiz .aq-next .aq-ghost { background: var(--vl-surface); border: 1px solid var(--vl-line-2); color: var(--vl-ink) !important; box-shadow: var(--vl-shadow-sm); }
body.page #visu-quiz#visu-quiz .aq-next .aq-ghost:hover { background: var(--vl-tint); border-color: rgba(10, 19, 36, 0.24); }
body.page #visu-quiz#visu-quiz .aq-link { color: var(--lg-link); }
body.page #visu-quiz#visu-quiz .aq-progress > div,
body.page #visu-quiz#visu-quiz .aq-score > div { background: #e1e8ef; }
body.page #visu-quiz#visu-quiz #progress-bar,
body.page #visu-quiz#visu-quiz .aq-score > div > span { background: #2fa36c; }
body.page #visu-quiz#visu-quiz .aq-option { background: var(--vl-surface); border-color: var(--vl-line-2); color: var(--vl-ink-2); border-radius: 12px; box-shadow: var(--vl-shadow-sm); }
body.page #visu-quiz#visu-quiz .aq-option:hover { border-color: rgba(10, 19, 36, 0.26); }
body.page #visu-quiz#visu-quiz .aq-option:has(input:checked) { background: #eaf6f0; border-color: #2d7656; color: var(--vl-ink); box-shadow: 0 0 0 1px #2d7656; }
body.page #visu-quiz#visu-quiz .aq-option input { accent-color: #2d7656; }
body.page #visu-quiz#visu-quiz textarea { background: var(--vl-surface); color: var(--vl-ink); border-color: var(--vl-line-2); border-radius: 12px; }
body.page #visu-quiz#visu-quiz .aq-styles summary { color: var(--vl-ink); }
body.page #visu-quiz#visu-quiz .aq-styles summary span { color: #2d7656; }
body.page #visu-quiz#visu-quiz .aq-styles details ul { color: var(--vl-ink-2); }
body.page #visu-quiz#visu-quiz .aq-notice { border-color: var(--vl-line-2); background: var(--vl-surface); border-radius: 12px; }
body.page #visu-quiz#visu-quiz .aq-dialog { background: var(--vl-surface); color: var(--vl-ink); border-color: var(--vl-line); border-radius: var(--vl-radius); box-shadow: var(--vl-shadow-md); }
body.page #visu-quiz#visu-quiz .aq-dialog::backdrop { background: rgba(6, 19, 31, 0.6); }
/* Share card stays dark (mirrors the downloadable image) */
body.page #visu-quiz#visu-quiz .aq-card { box-shadow: var(--vl-shadow-md); border-radius: var(--vl-radius); }
body.page #visu-quiz#visu-quiz .aq-card h2 { color: #dbefe1; }
body.page #visu-quiz#visu-quiz .aq-card p:not([class]) { color: #b8d4c3; }

/* ================================================================== COMPARISON + GLOSSARY */
body.page :is(#visu-comparison, #visu-glossary)[data-version] {
  --rf-bg: var(--vl-bg);
  --rf-ink: var(--vl-ink);
  --rf-muted: var(--vl-ink-2);
  --rf-line: var(--vl-line-2);
  --rf-blue: var(--lg-link);
  --rf-green: #2d7656;
  background: var(--vl-bg) !important;
  color: var(--vl-ink);
  color-scheme: only light;
}
body.page :is(#visu-comparison, #visu-glossary) :is(h1, h2, h3) { color: var(--vl-ink); }
body.page :is(#visu-comparison, #visu-glossary) :is(a, button, input, select, summary):focus-visible { outline: 2px solid var(--vl-accent); }
body.page :is(#visu-comparison, #visu-glossary) :is(.rf-breadcrumb, .rf-filters label, .rf-date) { color: var(--lg-muted); }
body.page :is(#visu-comparison, #visu-glossary) .rf-filters :is(input, select) {
  background-color: var(--vl-surface) !important;
  color: var(--vl-ink) !important;
  border: 1px solid var(--vl-line-2) !important;
  border-radius: 12px;
  box-shadow: var(--vl-shadow-sm) !important;
  color-scheme: only light;
}
body.page :is(#visu-comparison, #visu-glossary) .rf-filters :is(input, select):focus { border-color: var(--vl-accent) !important; box-shadow: 0 0 0 3px rgba(25, 180, 239, 0.18) !important; }
body.page :is(#visu-comparison, #visu-glossary) :is(.rf-clear, .rf-copy) { color: var(--lg-link); }
body.page :is(#visu-comparison, #visu-glossary) :is(.rf-empty, .rf-nojs) { background: var(--vl-surface); border-color: var(--vl-line); border-radius: 12px; }
body.page #visu-comparison .rf-table-wrap table { background: var(--vl-surface); box-shadow: var(--vl-shadow-sm); }
body.page #visu-comparison .rf-table-wrap thead th { background: var(--vl-tint); color: var(--vl-ink-2); border-color: var(--vl-line-2); }
body.page #visu-comparison .rf-table-wrap tbody :is(th, td) { color: var(--vl-ink-2); border-bottom-color: var(--vl-line); }
body.page #visu-comparison .rf-table-wrap small,
body.page #visu-comparison .rf-table-wrap tbody td[data-label]::before { color: var(--lg-muted); }
body.page #visu-comparison .rf-table-wrap details summary { color: var(--lg-link); }
body.page #visu-comparison .rf-table-wrap tr[data-status="closed"] { background: #faf6ee; }
body.page #visu-comparison .rf-badge { border-color: #d6b47f; color: #7a5717; background: #fff8ea; }
body.page :is(#visu-comparison, #visu-glossary)[data-version] .rf-next a { background: var(--vl-surface); border: 1px solid var(--vl-line-2); color: var(--vl-ink) !important; box-shadow: var(--vl-shadow-sm); }
body.page :is(#visu-comparison, #visu-glossary)[data-version] .rf-next a:hover { background: var(--vl-tint); border-color: rgba(10, 19, 36, 0.24); }
body.page #visu-glossary .rf-glossary-layout nav > span { color: var(--lg-muted); }
body.page #visu-glossary .rf-glossary-layout nav a { background: var(--vl-surface); border-color: var(--vl-line-2); color: var(--vl-ink); border-radius: 8px; }
body.page #visu-glossary .rf-glossary-layout nav a:hover { color: var(--lg-link); border-color: var(--vl-accent); }
body.page #visu-glossary .rf-term-heading h2 { color: var(--vl-ink); }
body.page #visu-glossary .rf-term-category { letter-spacing: normal; text-transform: none; font-weight: 600; font-size: 12px; }
body.page #visu-glossary .rf-term-link { color: var(--lg-muted) !important; }
body.page #visu-glossary .rf-example { border-left-color: rgba(45, 118, 86, 0.35); }
body.page #visu-glossary .rf-example strong { color: var(--vl-ink); }

/* Guides article cards: open layout (no box), so the hover highlight lives inside it: title + link turn accent,
   image brightens a touch inside its own rounded frame. Nothing moves. */
#visu-guides-v1 .vg-card { transition: none; transform: none !important; box-shadow: none !important; }
#visu-guides-v1 .vg-card :is(h2, h3) { transition: color 0.18s ease; }
#visu-guides-v1 .vg-card:hover :is(h2, h3),
#visu-guides-v1 .vg-card a:focus-visible :is(h2, h3) { color: #0670a6 !important; }
#visu-guides-v1 .vg-card img { transition: filter 0.25s ease; }
#visu-guides-v1 .vg-card:hover img { filter: brightness(1.05) saturate(1.05); }
#visu-guides-v1 .vg-card:hover :is(.vg-card-link, [class*='read']) { color: #0670a6 !important; }
#visu-guides-v1 :is(.vg-arrow, .vg-feature-arrow) { transform: none !important; }
#visu-guides-v1 a:not([class*='btn']):not([class*='button']):is(:hover, :focus-visible) { text-underline-offset: 3px; }

/* Hover title tint must outrank `#visu-guides-v1#visu-guides-v1 :is(h1, h2, h3)` above. */
body.page #visu-guides-v1#visu-guides-v1 .vg-card:hover :is(h2, h3),
body.page #visu-guides-v1#visu-guides-v1 .vg-card a:focus-visible :is(h2, h3),
body.page #visu-guides-v1#visu-guides-v1 .vg-card:hover .vg-card-foot :is(a, span) { color: #0670a6 !important; }

/* Search: visible label removed (kept for screen readers); the placeholder says what to type, the button says Search. */
body.page #visu-guides-v1 .vg-search label[for="vg-q"] { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* pages/51-roadmap.css */
/* Revisao site-v5: /roadmap/ (EN, page-id-1202). Par de pages/51-roadmap.js (markup .rm-*).
   Escopo proprio: nao depende do tema nem da fundacao global. Prefixo com #visu-solutions para
   vencer o <style> inline do widget (que usa #visu-solutions .sol-*). */

html:lang(en) body.page-id-1202 #visu-solutions {
  --rm-bg: #080808;
  --rm-ink: #f1f0ea;
  --rm-muted: #a3acb3;
  --rm-dim: #6b747b;
  --rm-line: rgba(255, 255, 255, 0.09);
  --rm-accent: #44c7f4;
  --rm-accent-ink: #06101a;
  background: var(--rm-bg);
  color: var(--rm-ink);
  font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  overflow-x: clip;
}

/* ---------- Hero: sem glow, altura natural, alinhado com a lista ---------- */
html:lang(en) body.page-id-1202 #visu-solutions .sol-hero {
  min-height: 0;
  display: block;
  text-align: left;
  padding: 112px 0 40px;
  background: none;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-hero::before,
html:lang(en) body.page-id-1202 #visu-solutions .sol-hero::after {
  content: none;
  display: none;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-hero h1 {
  font-size: clamp(2.2rem, 5vw, 3.2rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
  margin: 0 0 16px;
  color: var(--rm-ink);
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-hero-lead {
  max-width: 620px;
  margin: 0;
  font-size: 1.125rem;
  line-height: 1.55;
  color: var(--rm-muted);
}

/* ---------- Roadmap ---------- */
html:lang(en) body.page-id-1202 #visu-solutions section.rm-section {
  padding: 0 0 72px;
  background: none;
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-updated {
  margin: 0 0 40px;
  font-size: 0.875rem;
  line-height: 1.5;
  color: var(--rm-dim);
}

html:lang(en) body.page-id-1202 #visu-solutions .rm-group {
  display: grid;
  grid-template-columns: 240px minmax(0, 1fr);
  gap: 16px 48px;
  padding: 40px 0;
  border-top: 1px solid var(--rm-line);
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-group-head h2 {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 6px;
  font-size: 1.375rem;
  font-weight: 650;
  line-height: 1.3;
  letter-spacing: -0.01em;
  color: var(--rm-ink);
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-group-head p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--rm-muted);
}

/* Status: forma, nao cor. Cheio = no ar, metade = em andamento, anel = planejado. */
html:lang(en) body.page-id-1202 #visu-solutions .rm-status {
  flex: none;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 1.5px solid var(--rm-ink);
  box-sizing: border-box;
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-status--live { background: var(--rm-ink); }
html:lang(en) body.page-id-1202 #visu-solutions .rm-status--now { background: linear-gradient(90deg, var(--rm-ink) 50%, transparent 50%); }
html:lang(en) body.page-id-1202 #visu-solutions .rm-status--next { border-color: var(--rm-muted); }

html:lang(en) body.page-id-1202 #visu-solutions .rm-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 40px;
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-item {
  margin: 0;
  padding: 18px 0 22px;
  border-top: 1px solid var(--rm-line);
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-item:nth-child(-n + 2) {
  border-top: 0;
  padding-top: 2px;
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-product {
  display: block;
  margin-bottom: 6px;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--rm-muted);
}
/* Cor de produto so no nome, para identificar. */
html:lang(en) body.page-id-1202 #visu-solutions .rm-item[data-product="link"] .rm-product { color: #44c7f4; }
html:lang(en) body.page-id-1202 #visu-solutions .rm-item[data-product="local"] .rm-product { color: #62cd9b; }
html:lang(en) body.page-id-1202 #visu-solutions .rm-item[data-product="replay"] .rm-product { color: #f6a15b; }
html:lang(en) body.page-id-1202 #visu-solutions .rm-item[data-product="ads"] .rm-product { color: #b39cf5; }

html:lang(en) body.page-id-1202 #visu-solutions .rm-item h3,
html:lang(en) body.page-id-1202 #visu-solutions .rm-principles h3 {
  margin: 0 0 6px;
  font-size: 1.0625rem;
  font-weight: 600;
  line-height: 1.35;
  color: var(--rm-ink);
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-item p,
html:lang(en) body.page-id-1202 #visu-solutions .rm-principles p {
  margin: 0;
  font-size: 0.9375rem;
  line-height: 1.55;
  color: var(--rm-muted);
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-more {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  margin-top: 2px;
  margin-bottom: -12px;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--rm-ink);
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.3);
  text-underline-offset: 4px;
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-more:is(:hover, :focus-visible),
html:lang(en) body.page-id-1202 #visu-solutions .rm-principles a:is(:hover, :focus-visible) {
  text-decoration-color: currentColor;
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-when {
  display: block;
  margin-top: 8px;
  font-size: 0.8125rem;
  color: var(--rm-dim);
}

html:lang(en) body.page-id-1202 #visu-solutions .rm-principles {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 24px 40px;
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-principles li { margin: 0; }
html:lang(en) body.page-id-1202 #visu-solutions .rm-principles a {
  color: var(--rm-ink);
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.3);
  text-underline-offset: 3px;
}

/* ---------- CTA: sem glow nem gradiente, botoes do sistema ---------- */
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-section {
  background: none;
  padding: 0 0 96px;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-box {
  background: #0e1114;
  border: 1px solid var(--rm-line);
  border-radius: 14px;
  padding: 48px 40px;
  text-align: left;
  box-shadow: none;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-box::before,
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-box::after {
  content: none;
  display: none;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-box h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 700;
  letter-spacing: -0.01em;
  margin: 0 0 10px;
  color: var(--rm-ink);
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-box p {
  max-width: 560px;
  margin: 0 0 28px;
  font-size: 1rem;
  line-height: 1.55;
  color: var(--rm-muted);
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: flex-start;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn {
  min-height: 48px;
  padding: 0 22px;
  border-radius: 10px;
  font-size: 15px;
  font-weight: 600;
  box-shadow: none;
  transform: none;
  transition: background 0.18s, border-color 0.18s;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn-primary,
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn-primary:hover {
  background: var(--rm-accent);
  border: 1px solid var(--rm-accent);
  color: var(--rm-accent-ink) !important;
  box-shadow: none;
  transform: none;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn-primary:hover { background: #5ed0f6; border-color: #5ed0f6; }
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn-ghost {
  background: transparent;
  border: 1px solid rgba(255, 255, 255, 0.2);
  color: var(--rm-ink) !important;
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn-ghost:hover {
  background: #192932;
  border-color: rgba(255, 255, 255, 0.4);
  transform: none;
}

/* ---------- Tablet / mobile ---------- */
@media (max-width: 900px) {
  html:lang(en) body.page-id-1202 #visu-solutions .rm-group {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 32px 0;
  }
  html:lang(en) body.page-id-1202 #visu-solutions .rm-principles {
    grid-template-columns: minmax(0, 1fr);
  }
}
@media (max-width: 640px) {
  html:lang(en) body.page-id-1202 #visu-solutions .sol-hero { padding: 96px 0 32px; }
  html:lang(en) body.page-id-1202 #visu-solutions .rm-list { grid-template-columns: minmax(0, 1fr); }
  html:lang(en) body.page-id-1202 #visu-solutions .rm-item:nth-child(2) {
    border-top: 1px solid var(--rm-line);
    padding-top: 18px;
  }
  html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-section { padding-bottom: 64px; }
  html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-box { padding: 32px 20px; }
  html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions { flex-direction: column; }
  html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn { width: 100%; }
}

/* pages/52-alternatives.css */
/* Revisao site-v5: /alternatives/ (EN, page-id-6959). Par de pages/52-alternatives.js (markup .valt-*).
   Escopo proprio: nao depende do tema nem da fundacao global. Cor de produto so no nome do produto. */

html:lang(en) body.page-id-6959 {
  --valt-bg: #080808;
  --valt-ink: #f1f0ea;
  --valt-muted: #a3acb3;
  --valt-dim: #6b747b;
  --valt-line: rgba(255, 255, 255, 0.09);
  --valt-accent: #44c7f4;
  --valt-accent-ink: #06101a;
  --valt-link: #44c7f4;
  --valt-local: #62cd9b;
  --valt-replay: #ff9a4d;
  --valt-ads: #a98bff;
}

/* Corpo Elementor antigo sai quando o novo monta (JS poe body.valt-on so se o markup bater). */
html:lang(en) body.page-id-6959.valt-on .elementor-6959 { display: none !important; }
html:lang(en) body.page-id-6959.valt-on #content,
html:lang(en) body.page-id-6959.valt-on .uicore-body-content { background: var(--valt-bg); }

/* ---------- Hero: sem foto stock, H1 alinhado ao conteudo ---------- */
html:lang(en) body.page-id-6959.valt-on header.uicore-page-title {
  background: var(--valt-bg) !important;
  background-image: none !important;
  padding: 112px 0 40px !important;
  min-height: 0 !important;
  border-bottom: 1px solid var(--valt-line);
}
html:lang(en) body.page-id-6959.valt-on header.uicore-page-title .uicore-overlay { display: none !important; }
html:lang(en) body.page-id-6959.valt-on header.uicore-page-title > .uicore-container {
  max-width: 1120px !important;
  margin: 0 auto !important;
  padding: 0 24px !important;
  text-align: left !important;
  display: block !important;
}
html:lang(en) body.page-id-6959.valt-on header.uicore-page-title h1 {
  font: 700 clamp(2.2rem, 5vw, 3.2rem)/1.1 Inter, system-ui, -apple-system, "Segoe UI", sans-serif !important;
  letter-spacing: -0.02em;
  color: var(--valt-ink) !important;
  margin: 0 0 16px !important;
  opacity: 1 !important;
  transform: none !important;
}
html:lang(en) body.page-id-6959 .valt-lead {
  max-width: 720px;
  margin: 0 0 28px;
  font: 400 18px/1.6 Inter, system-ui, sans-serif;
  color: var(--valt-muted);
}
html:lang(en) body.page-id-6959 .valt-jump {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
html:lang(en) body.page-id-6959 .valt-jump a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  padding: 0 16px;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 10px;
  font: 500 15px/1 Inter, system-ui, sans-serif;
  color: var(--valt-ink) !important;
  text-decoration: none !important;
  transition: background 0.18s, border-color 0.18s;
}
html:lang(en) body.page-id-6959 .valt-jump a:is(:hover, :focus-visible) {
  border-color: rgba(255, 255, 255, 0.4);
  background: #192932;
}

/* ---------- Corpo ---------- */
html:lang(en) body.page-id-6959 .valt {
  background: var(--valt-bg);
  color: var(--valt-ink);
  font-family: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
  overflow-x: clip;
}
html:lang(en) body.page-id-6959 .valt-wrap {
  max-width: 1120px;
  margin: 0 auto;
  padding: 16px 24px 96px;
}
html:lang(en) body.page-id-6959 .valt :is(h2, h3) {
  font-family: Inter, system-ui, sans-serif !important;
  color: var(--valt-ink) !important;
  text-transform: none !important;
  letter-spacing: -0.01em;
}
html:lang(en) body.page-id-6959 .valt h2 {
  font-size: clamp(1.6rem, 3vw, 2rem) !important;
  font-weight: 700 !important;
  line-height: 1.2 !important;
  margin: 0 !important;
}
html:lang(en) body.page-id-6959 .valt h3 {
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  margin: 0 0 12px !important;
}
html:lang(en) body.page-id-6959 .valt p { margin: 0; }
html:lang(en) body.page-id-6959 .valt a:not(.valt-btn):not(.valt-p) {
  color: var(--valt-ink) !important;
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.3);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.18s;
}
html:lang(en) body.page-id-6959 .valt a:not(.valt-btn):not(.valt-p):is(:hover, :focus-visible) {
  color: #fff !important;
  text-decoration-color: currentColor;
}
html:lang(en) body.page-id-6959 .valt a:focus-visible,
html:lang(en) body.page-id-6959 .valt summary:focus-visible,
html:lang(en) body.page-id-6959 .valt-jump a:focus-visible {
  outline: 2px solid var(--valt-accent);
  outline-offset: 2px;
}

/* Categoria */
html:lang(en) body.page-id-6959 .valt-cat {
  padding: 56px 0;
  border-bottom: 1px solid var(--valt-line);
  scroll-margin-top: 88px;
}
html:lang(en) body.page-id-6959 .valt-cat-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px 24px;
  margin-bottom: 14px;
}
html:lang(en) body.page-id-6959 .valt-cat-product {
  font-size: 15px;
  color: var(--valt-muted);
}
html:lang(en) body.page-id-6959 .valt .valt-p {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-weight: 600;
  text-decoration: none;
}
html:lang(en) body.page-id-6959 .valt .valt-p--link { color: var(--valt-link) !important; }
html:lang(en) body.page-id-6959 .valt .valt-p--local { color: var(--valt-local) !important; }
html:lang(en) body.page-id-6959 .valt .valt-p--replay { color: var(--valt-replay) !important; }
html:lang(en) body.page-id-6959 .valt .valt-p--ads { color: var(--valt-ads) !important; }
html:lang(en) body.page-id-6959 .valt .valt-p:is(:hover, :focus-visible) { text-decoration: underline; }
html:lang(en) body.page-id-6959 .valt-cat-intro {
  max-width: 760px;
  font-size: 17px;
  line-height: 1.65;
  color: var(--valt-muted);
}
html:lang(en) body.page-id-6959 .valt-fit {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin-top: 28px;
}
html:lang(en) body.page-id-6959 .valt-fit-col {
  padding: 22px 24px;
  border: 1px solid var(--valt-line);
  border-radius: 12px;
  background: #0e1114;
}
html:lang(en) body.page-id-6959 .valt-fit-col ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 10px;
}
html:lang(en) body.page-id-6959 .valt-fit-col li {
  position: relative;
  padding-left: 18px;
  font-size: 15.5px;
  line-height: 1.55;
  color: #d5d9dc;
}
html:lang(en) body.page-id-6959 .valt-fit-col li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.68em;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--valt-dim);
}
html:lang(en) body.page-id-6959 .valt-note {
  margin-top: 18px !important;
  font-size: 15px;
  color: var(--valt-muted);
}
html:lang(en) body.page-id-6959 .valt-compare { margin-top: 28px; }
html:lang(en) body.page-id-6959 .valt-compare h3 { color: var(--valt-muted) !important; font-weight: 500 !important; font-size: 15px !important; }
html:lang(en) body.page-id-6959 .valt-compare-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0 24px;
}
html:lang(en) body.page-id-6959 .valt-compare-list li { margin: 0; }
html:lang(en) body.page-id-6959 .valt .valt-compare-list a {
  display: flex;
  align-items: center;
  min-height: 44px;
  font-size: 15.5px;
}

/* Tabela */
html:lang(en) body.page-id-6959 .valt-table-sec { padding: 64px 0 56px; border-bottom: 1px solid var(--valt-line); }
html:lang(en) body.page-id-6959 .valt-table-sec h2 { margin-bottom: 10px !important; }
html:lang(en) body.page-id-6959 .valt-table {
  width: 100%;
  margin: 28px 0 0;
  border-collapse: collapse;
  font-size: 15.5px;
  line-height: 1.5;
  border: 0;
}
html:lang(en) body.page-id-6959 .valt-table :is(th, td) {
  padding: 16px 20px 16px 0;
  border: 0;
  border-bottom: 1px solid var(--valt-line);
  background: transparent !important;
  text-align: left;
  vertical-align: top;
  color: #d5d9dc;
}
html:lang(en) body.page-id-6959 .valt-table thead th {
  font-size: 14px;
  font-weight: 500;
  color: var(--valt-muted);
  border-bottom-color: rgba(255, 255, 255, 0.2);
}
html:lang(en) body.page-id-6959 .valt-table tbody th {
  width: 22%;
  font-weight: 600;
  color: var(--valt-ink);
}

/* FAQ */
html:lang(en) body.page-id-6959 .valt-faq { padding: 64px 0 56px; border-bottom: 1px solid var(--valt-line); }
html:lang(en) body.page-id-6959 .valt-faq h2 { margin-bottom: 20px !important; }
html:lang(en) body.page-id-6959 .valt-faq details { border-bottom: 1px solid var(--valt-line); max-width: 860px; }
html:lang(en) body.page-id-6959 .valt-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  min-height: 56px;
  padding: 12px 0;
  cursor: pointer;
  list-style: none;
  font-size: 17px;
  font-weight: 600;
  color: var(--valt-ink);
}
html:lang(en) body.page-id-6959 .valt-faq summary::-webkit-details-marker { display: none; }
html:lang(en) body.page-id-6959 .valt-faq summary::after {
  content: "+";
  flex: none;
  font-size: 22px;
  font-weight: 400;
  color: var(--valt-muted);
}
html:lang(en) body.page-id-6959 .valt-faq details[open] summary::after { content: "\2212"; }
html:lang(en) body.page-id-6959 .valt-faq details p {
  padding: 0 0 20px;
  max-width: 760px;
  font-size: 16px;
  line-height: 1.65;
  color: var(--valt-muted);
}

/* CTA */
html:lang(en) body.page-id-6959 .valt-cta { padding: 64px 0 48px; }
html:lang(en) body.page-id-6959 .valt-cta p {
  max-width: 620px;
  margin-top: 12px;
  font-size: 17px;
  line-height: 1.6;
  color: var(--valt-muted);
}
html:lang(en) body.page-id-6959 .valt-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 24px;
}
html:lang(en) body.page-id-6959 .valt .valt-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 48px;
  padding: 0 22px;
  border-radius: 10px;
  font: 600 15px/1 Inter, system-ui, sans-serif;
  text-decoration: none !important;
  transition: background 0.18s, border-color 0.18s;
}
html:lang(en) body.page-id-6959 .valt .valt-btn--primary { background: var(--valt-accent); }
html:lang(en) body.page-id-6959 .valt .valt-btn--primary:is(:link, :visited, :hover, :focus-visible, :active) { color: var(--valt-accent-ink) !important; }
html:lang(en) body.page-id-6959 .valt .valt-btn--primary:hover { background: #6fd5f7; }
html:lang(en) body.page-id-6959 .valt .valt-btn--ghost {
  border: 1px solid rgba(255, 255, 255, 0.2);
  background: transparent;
}
html:lang(en) body.page-id-6959 .valt .valt-btn--ghost:is(:link, :visited, :hover, :focus-visible, :active) { color: #eee !important; }
html:lang(en) body.page-id-6959 .valt .valt-btn--ghost:is(:hover, :focus-visible) {
  border-color: rgba(255, 255, 255, 0.4);
  background: #192932;
}
html:lang(en) body.page-id-6959 .valt-legal {
  margin-top: 32px !important;
  padding-top: 20px;
  border-top: 1px solid var(--valt-line);
  font-size: 13px;
  line-height: 1.6;
  color: var(--valt-dim);
}
html:lang(en) body.page-id-6959 .valt .valt-legal a {
  display: inline-block;
  min-height: 24px;
  color: var(--valt-muted) !important;
}

/* ---------- Mobile ---------- */
@media (max-width: 767px) {
  html:lang(en) body.page-id-6959.valt-on header.uicore-page-title { padding: 88px 0 28px !important; }
  html:lang(en) body.page-id-6959.valt-on header.uicore-page-title > .uicore-container,
  html:lang(en) body.page-id-6959 .valt-wrap { padding-left: 16px !important; padding-right: 16px !important; }
  html:lang(en) body.page-id-6959 .valt-lead { font-size: 16.5px; }
  html:lang(en) body.page-id-6959 .valt-jump a { flex: 1 1 calc(50% - 4px); justify-content: center; padding: 0 8px; white-space: nowrap; }
  html:lang(en) body.page-id-6959 .valt-cat { padding: 44px 0; }
  html:lang(en) body.page-id-6959 .valt-cat-intro { font-size: 16px; }
  html:lang(en) body.page-id-6959 .valt-fit { grid-template-columns: 1fr; gap: 12px; margin-top: 22px; }
  html:lang(en) body.page-id-6959 .valt-fit-col { padding: 18px; }
  html:lang(en) body.page-id-6959 .valt-compare-list { grid-template-columns: 1fr 1fr; gap: 0 12px; }
  html:lang(en) body.page-id-6959 .valt .valt-compare-list a { font-size: 15px; }
  /* Tabela vira blocos empilhados */
  html:lang(en) body.page-id-6959 .valt-table thead { display: none; }
  html:lang(en) body.page-id-6959 .valt-table :is(tbody, tr, th, td) { display: block; width: auto; }
  html:lang(en) body.page-id-6959 .valt-table tr { padding: 16px 0; border-bottom: 1px solid var(--valt-line); }
  html:lang(en) body.page-id-6959 .valt-table tr:last-child { border-bottom: 0; }
  html:lang(en) body.page-id-6959 .valt-table :is(th, td) { padding: 0; border: 0; }
  html:lang(en) body.page-id-6959 .valt-table tbody th { width: auto; margin-bottom: 8px; font-size: 16px; }
  html:lang(en) body.page-id-6959 .valt-table td { margin-top: 6px; }
  html:lang(en) body.page-id-6959 .valt-table td::before {
    content: attr(data-label) ": ";
    color: var(--valt-muted);
    font-weight: 500;
  }
  html:lang(en) body.page-id-6959 .valt-actions { flex-direction: column; }
  html:lang(en) body.page-id-6959 .valt .valt-btn { width: 100%; }
}

/* pages/53-other.css */
/* Revisao site-v5: Attention Economy (hub, calculadora, quiz, comparador, glossario), /partners/, /network/, /uses/.
   Somente EN. Cada bloco escopado por page-id + wrapper do widget (#visu-*) para vencer o <style> inline do widget.
   Attention Economy: familia aprovada (NEXT.md). Setas fixas a direita dos botoes e larguras iguais por grupo
   ficam como estao; aqui so sai o que conflita com a linguagem da home (titulo pintado, caixa alta, 01-04 que
   nao e sequencia). Calculadora/quiz: comportamento intocado, receipt e card de perfil intocados.
   Caixa alta que vem do HTML (texto digitado em maiusculas): lowercase + ::first-letter uppercase = sentence case
   sem trocar texto (troca de texto fica no banco depois). */

/* =====================================================================
   ATTENTION ECONOMY: comum aos 5
   ===================================================================== */

/* Segunda linha do H1 em ciano -> mesma cor do titulo (ciano so em acao). */
html:lang(en) body.page-id-24850 #visu-hub h1 em,
html:lang(en) body.page-id-24854 #visu-calculator h1 em,
html:lang(en) body.page-id-24903 #visu-quiz h1 em,
html:lang(en) body.page-id-24889 #visu-comparison h1 em,
html:lang(en) body.page-id-24909 #visu-glossary h1 em {
  color: inherit;
  -webkit-text-fill-color: currentColor;
  background: none;
}

/* ---------- Hub (/attention-economy/) ---------- */

/* 01-04 nas ferramentas nao e sequencia: some a coluna do numero. */
html:lang(en) body.page-id-24850 #visu-hub .ah-tool .ah-index { display: none; }
html:lang(en) body.page-id-24850 #visu-hub .ah-tool { grid-template-columns: minmax(0, 1fr) minmax(0, 0.95fr); }
@media (max-width: 700px) {
  html:lang(en) body.page-id-24850 #visu-hub .ah-tool { grid-template-columns: minmax(0, 1fr); }
  html:lang(en) body.page-id-24850 #visu-hub .ah-tool-example { grid-column: 1; }
}

/* Titulo da ferramenta: link em tom de texto, ciano so no hover/foco (o CTA abaixo ja e a acao).
   !important porque o tema pinta todo "main a" com !important. */
html:lang(en) body.page-id-24850 #visu-hub .ah-tool h3 a { color: #f1f0ea !important; text-decoration: none; }
html:lang(en) body.page-id-24850 #visu-hub .ah-tool h3 a:hover,
html:lang(en) body.page-id-24850 #visu-hub .ah-tool h3 a:focus-visible { color: #44c7f4 !important; }

/* Rotulos em caixa alta (texto digitado assim) -> sentence case, sem tracking. */
html:lang(en) body.page-id-24850 #visu-hub .ah-hero-receipt figcaption span,
html:lang(en) body.page-id-24850 #visu-hub .ah-example-label,
html:lang(en) body.page-id-24850 #visu-hub .ah-scenario span {
  display: inline-block;
  text-transform: lowercase;
  letter-spacing: 0;
  font-size: 12px;
}
html:lang(en) body.page-id-24850 #visu-hub .ah-example-label { display: block; }
html:lang(en) body.page-id-24850 #visu-hub .ah-hero-receipt figcaption span::first-letter,
html:lang(en) body.page-id-24850 #visu-hub .ah-example-label::first-letter,
html:lang(en) body.page-id-24850 #visu-hub .ah-scenario span::first-letter { text-transform: uppercase; }

/* ---------- Calculadora ---------- */

/* "One receipt. Four different ideas.": 01-04 nao e sequencia. Os passos 01/02 do fluxo ficam. */
html:lang(en) body.page-id-24854 #visu-calculator .ar-concepts .ar-index { display: none; }
html:lang(en) body.page-id-24854 #visu-calculator details.ar-money summary small {
  text-transform: lowercase;
  letter-spacing: 0;
  font-size: 12px;
}
html:lang(en) body.page-id-24854 #visu-calculator details.ar-money summary small::first-letter { text-transform: uppercase; }

/* ---------- Quiz ---------- */

/* Eyebrow acima do H1 repete o breadcrumb: sai. */
html:lang(en) body.page-id-24903 #visu-quiz .aq-kicker { display: none; }

/* Breadcrumb "/ EARNING PERSONALITY QUIZ": o "/ " impede ::first-letter de pegar o E, entao fica como esta
   (troca de texto e pendencia para 50-other.js). */

html:lang(en) body.page-id-24903 #visu-quiz .aq-step,
html:lang(en) body.page-id-24903 #visu-quiz .aq-output-label {
  text-transform: lowercase;
  letter-spacing: 0;
  font-size: 12px;
}
html:lang(en) body.page-id-24903 #visu-quiz .aq-step::first-letter,
html:lang(en) body.page-id-24903 #visu-quiz .aq-output-label::first-letter { text-transform: uppercase; }

/* Os cinco estilos sao uma lista, nao uma sequencia: 01-05 sai. */
html:lang(en) body.page-id-24903 #visu-quiz .aq-styles summary > span:first-child { display: none; }

/* =====================================================================
   /partners/ (page-id-33693)
   ===================================================================== */

/* "VISU" pintado no H1 -> cor do titulo. */
html:lang(en) body.page-id-33693 #visu-partners-v2 #partners-hero h1 em {
  color: inherit;
  -webkit-text-fill-color: currentColor;
  font-style: normal;
}

/* Kickers em caixa alta -> sentence case (identificam o papel, entao ficam). */
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-role .pv-kicker,
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-stage .pv-stage-label {
  display: inline-block;
  text-transform: lowercase;
  letter-spacing: 0;
  font-size: 13px;
}
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-stage .pv-stage-label { font-size: 12px; }
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-role .pv-kicker::first-letter,
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-stage .pv-stage-label::first-letter { text-transform: uppercase; }

/* 01/02 em "Understand where earnings come from" nao e sequencia. */
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-earnings .pv-earn-number { display: none; }
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-earnings article { grid-template-columns: minmax(0, 1fr); }

/* Botoes: fonte >= 15px, radius 10. Primario cheio sem seta; secundario mantem a seta (indica salto/destino). */
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-button {
  font-size: 15px;
  border-radius: 10px;
}
/* Texto centrado nos dois (no mobile os botoes empilham em 100% e o secundario ficava alinhado a esquerda). */
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-button { justify-content: center; gap: 12px; }
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-button:not(.pv-button-secondary) > span[aria-hidden="true"] { display: none; }
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-button.pv-button-secondary { border-color: rgba(255, 255, 255, 0.2); }
html:lang(en) body.page-id-33693 #visu-partners-v2 .pv-button.pv-button-secondary:hover {
  border-color: rgba(255, 255, 255, 0.4);
  background: #192932;
}

/* =====================================================================
   /network/ (page-id-5968, widget #visu-solutions)
   ===================================================================== */

/* Sem glow: hero, CTA e sombras coloridas. */
html:lang(en) body.page-id-5968 #visu-solutions .sol-hero::before,
html:lang(en) body.page-id-5968 #visu-solutions .sol-hero::after,
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-box::before,
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-box::after,
html:lang(en) body.page-id-5968 #visu-solutions .sol-feature-card::before,
html:lang(en) body.page-id-5968 #visu-solutions .sol-feature-card::after {
  content: none;
  display: none;
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-section { background-image: none; }
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-box {
  background: #0d1216;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 14px;
}

/* Imagens stock: sem sombra pesada. A do "About" (placa neon, sem informacao) sai e a secao vira coluna de texto. */
html:lang(en) body.page-id-5968 #visu-solutions .sol-hero-visual img {
  box-shadow: none;
  border-radius: 14px;
  border: 1px solid rgba(255, 255, 255, 0.08);
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-about-image { display: none; }
html:lang(en) body.page-id-5968 #visu-solutions .sol-grid-2 {
  grid-template-columns: minmax(0, 1fr);
  max-width: 720px;
}

/* Eyebrow "ABOUT VISU" acima do H2: sai. */
/* !important: regra antiga do tema forca "display: inline-flex !important" em .sol-hero-eyebrow. */
html:lang(en) body.page-id-5968 #visu-solutions .sol-hero-eyebrow { display: none !important; }

/* Botoes na linguagem da home. */
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn { border-radius: 10px; }
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn-primary {
  box-shadow: none !important;
  border-color: transparent;
  color: #06101a;
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn-primary svg { display: none; }
/* !important: regra global antiga do tema forca borda .6 e hover branco com translateY. */
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn-ghost { border-color: rgba(255, 255, 255, 0.2) !important; }
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn-ghost:hover {
  border-color: rgba(255, 255, 255, 0.4) !important;
  background: #192932 !important;
  transform: none !important;
}

/* Quatro grades de cards iguais seguidas: "How we build" e "VISU products" viram listas abertas
   (linha no topo, sem caixa); "Who VISU is for" e "What we offer" seguem em card. */
html:lang(en) body.page-id-5968 #visu-solutions #values .sol-feature-card,
html:lang(en) body.page-id-5968 #visu-solutions #ecosystem .sol-feature-card {
  background: none;
  border: 0;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0;
  padding: 24px 0 8px;
  box-shadow: none;
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-feature-card { box-shadow: none; }

/* =====================================================================
   /uses/ (page-id-19936, widget #visu-uses)
   ===================================================================== */

/* Palavra pintada em gradiente no H1 e no "Why VISU Works" -> cor do titulo. */
html body:is(.page-id-19936, .page-id-20164) #visu-uses h1 span,
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-section-title h2 span {
  background: none;
  -webkit-background-clip: border-box;
  background-clip: border-box;
  -webkit-text-fill-color: currentColor;
  color: inherit;
}

/* Sem glow no hero, CTA sem gradiente, cards sem sombra. */
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-hero::before,
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-hero::after {
  content: none;
  display: none;
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-cta-box {
  background: #0d1216;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 14px;
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-case-card { box-shadow: none; }

/* Barra de gradiente/ciano no topo do bloco de servico -> borda neutra. */
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-service-header {
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

/* 01/02/03 ciano nos cards "Why" nao e sequencia. */
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-why-num { display: none; }

/* Botoes na linguagem da home. "View All": fonte 15px e alvo 44px. */
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn { border-radius: 10px; }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn-primary {
  box-shadow: none !important;
  border-color: transparent;
  color: #06101a;
}
/* !important: regra global antiga do tema forca borda .6 e hover branco com translateY. */
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn-ghost { border-color: rgba(255, 255, 255, 0.2) !important; }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn-ghost:hover {
  border-color: rgba(255, 255, 255, 0.4) !important;
  background: #192932 !important;
  transform: none !important;
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn-small {
  font-size: 15px;
  min-height: 44px;
  padding-inline: 16px;
}

/* pages/54-legal.css */
/* Legais sincronizados (Terms 6771, Privacy 6783, Cookies 6791): leitura confortável no padrão do site.
   Produção: equivale ao CSS embutido do plugin (visu_legal_css) em wp-legal-sync. */
html:lang(en) .visu-legal-doc[data-visu-legal] {
  max-width: 760px;
  margin: 0 auto;
  padding: 72px 0 96px;
  color: #c0cdd4;
  font-size: 16px;
  line-height: 1.7;
}
html:lang(en) .visu-legal-doc .visu-legal-title {
  margin: 0 0 12px;
  font-size: clamp(34px, 4vw, 48px);
  font-weight: 700;
  line-height: 1.08;
  letter-spacing: -0.028em;
  color: #f1f0ea;
}
html:lang(en) .visu-legal-doc .visu-legal-meta {
  margin: 0 0 40px;
  padding-bottom: 28px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  font-size: 14px;
  color: #7d868d;
}
html:lang(en) .visu-legal-doc .visu-legal-meta :is(strong, b) {
  color: inherit;
  font-weight: 500;
}
html:lang(en) .visu-legal-doc .visu-legal-rule {
  display: none;
}
html:lang(en) .visu-legal-doc :is(p, li) {
  color: #c0cdd4;
}
html:lang(en) .visu-legal-doc h2 {
  margin: 48px 0 12px;
  font-size: 26px;
  font-weight: 600;
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: #f1f0ea;
}
html:lang(en) .visu-legal-doc h3 {
  margin: 36px 0 10px;
  font-size: 19px;
  font-weight: 600;
  line-height: 1.35;
  color: #f1f0ea;
}
html:lang(en) .visu-legal-doc :is(strong, b) {
  color: #e6ebee;
}
html:lang(en) .visu-legal-doc a {
  color: #f1f0ea !important; /* tema pinta todo link de ciano com !important */
  text-decoration: underline;
  text-decoration-color: rgba(255, 255, 255, 0.3);
  text-underline-offset: 3px;
}
/* Tabela: o plugin põe display:block + overflow e corta a 3ª coluna em 390px. */
html:lang(en) .visu-legal-doc table {
  display: table;
  width: 100%;
  margin: 20px 0 28px;
  border-collapse: collapse;
  font-size: 14px;
}
html:lang(en) .visu-legal-doc :is(th, td) {
  padding: 10px 12px 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.09);
  text-align: left;
  vertical-align: top;
  overflow-wrap: anywhere;
}
html:lang(en) .visu-legal-doc th {
  color: #f1f0ea;
  font-weight: 600;
}
@media (max-width: 767px) {
  html:lang(en) .visu-legal-doc[data-visu-legal] {
    padding: 40px 16px 72px;
    font-size: 15px;
  }
  html:lang(en) .visu-legal-doc h2 { font-size: 22px; }
  html:lang(en) .visu-legal-doc table { font-size: 13px; }
}

/* pages/56-light-other.css */
/* 56-light-other.css: light conversion for Partners, Locations, Contact + Network, Uses, Roadmap, Alternatives
 * and the legal docs (Terms/Privacy/Cookies; /legal/ redirects to /terms/). 2026-10-04, tokens from 08-light-base.css.
 * Rhythm: shell light; dark accent panels kept = Partners showcase stage + closing CTA, Locations world map + photo
 * cards, closing CTA box on Network/Uses/Roadmap. Colors, borders, shadows and text-transform only, no layout.
 * Partners/Contact/Locations are scoped by widget root (all languages); the rest by EN page-id like their layers. */

/* =====================================================================
   /partners/ (#visu-partners-v2)
   ===================================================================== */
html body.page #visu-partners-v2 {
  --pv-bg: var(--vl-bg);
  --pv-surface: var(--vl-surface);
  --pv-ink: var(--vl-ink);
  --pv-muted: var(--vl-ink-2);
  --pv-line: var(--vl-line);
  --pv-blue: var(--vl-accent-text);
  background: var(--vl-bg);
  color: var(--vl-ink);
}
html body.page #visu-partners-v2 h1 em { color: inherit; -webkit-text-fill-color: currentColor; }
html body.page #visu-partners-v2 p { color: var(--vl-ink-2); }

/* Buttons */
html body.page #visu-partners-v2 .pv-button {
  background: var(--vl-accent);
  border-color: var(--vl-accent);
  color: var(--vl-accent-ink) !important;
  box-shadow: 0 1px 2px rgba(10, 19, 36, 0.08), 0 6px 18px -8px rgba(25, 180, 239, 0.55);
}
html body.page #visu-partners-v2 .pv-button:hover { background: #3fc2f3; border-color: #3fc2f3; }
html body.page #visu-partners-v2 .pv-button.pv-button-secondary {
  background: var(--vl-surface) !important;
  border-color: var(--vl-line-2) !important;
  color: var(--vl-ink) !important;
  box-shadow: var(--vl-shadow-sm);
}
html body.page #visu-partners-v2 .pv-button.pv-button-secondary:hover {
  background: var(--vl-tint) !important;
  border-color: rgba(10, 19, 36, 0.24) !important;
}

/* Hero showcase stays dark (accent panel); caption below it goes light */
html body.page #visu-partners-v2 .pv-stage {
  background: var(--vl-navy);
  border-color: rgba(255, 255, 255, 0.08);
  border-radius: 18px;
  box-shadow: var(--vl-shadow-md);
}
html body.page #visu-partners-v2 .pv-stage .pv-stage-label { color: #a9b8c8; }
html body.page #visu-partners-v2 figcaption { color: var(--vl-muted); }
html body.page #visu-partners-v2 figcaption a { color: var(--vl-accent-text) !important; }
html body.page #visu-partners-v2 figcaption a:hover { color: #055a86 !important; }

/* Kickers: sentence case in every language (text is typed in caps, so lowercase + first letter) */
html body.page #visu-partners-v2 .pv-kicker,
html body.page #visu-partners-v2 .pv-role > .pv-kicker {
  display: inline-block;
  text-transform: lowercase;
  letter-spacing: normal;
  font-size: 13px;
  font-weight: 600;
  color: var(--vl-muted);
}
html body.page #visu-partners-v2 .pv-stage .pv-stage-label {
  display: inline-block;
  text-transform: lowercase;
  letter-spacing: normal;
  font-size: 12px;
  font-weight: 600;
}
html body.page #visu-partners-v2 .pv-kicker::first-letter,
html body.page #visu-partners-v2 .pv-stage .pv-stage-label::first-letter { text-transform: uppercase; }

/* Paths */
html body.page #visu-partners-v2 .pv-role { border-top-color: var(--vl-line-2); }
html body.page #visu-partners-v2 .pv-role li { border-top-color: var(--vl-line); }
html body.page #visu-partners-v2 .pv-step-number { color: var(--vl-muted); }
html body.page #visu-partners-v2 .pv-role li p { color: var(--vl-ink-2); }
html body.page #visu-partners-v2 .pv-text-link { color: var(--vl-accent-text) !important; }
html body.page #visu-partners-v2 .pv-text-link:hover { color: #055a86 !important; }
html body.page #visu-partners-v2 .pv-note { color: var(--vl-muted); }

/* Earnings: white band */
html body.page #visu-partners-v2 .pv-earnings { background: var(--vl-surface); border-color: var(--vl-line); }
html body.page #visu-partners-v2 .pv-earnings article + article { border-top-color: var(--vl-line); }
html body.page #visu-partners-v2 .pv-earn-number { color: var(--vl-muted); }

/* Segments + FAQ */
html body.page #visu-partners-v2 .pv-segment-list a { color: var(--vl-ink) !important; border-bottom-color: var(--vl-line); }
html body.page #visu-partners-v2 .pv-segment-list a > span:last-child { color: var(--vl-muted); }
html body.page #visu-partners-v2 .pv-segment-list a:hover { color: var(--vl-accent-text) !important; }
html body.page #visu-partners-v2 .pv-segment-list a:hover > span:last-child { color: var(--vl-accent-text); }
html body.page #visu-partners-v2 summary { color: var(--vl-ink); }
html body.page #visu-partners-v2 summary > span { color: var(--vl-muted); }
html body.page #visu-partners-v2 details > p { color: var(--vl-ink-2); }

/* Closing CTA: the page's one dark panel */
html body.page #visu-partners-v2 .pv-closing-inner {
  background: var(--vl-navy);
  border-color: rgba(255, 255, 255, 0.08);
  border-radius: var(--vl-radius);
  box-shadow: var(--vl-shadow-md);
}
html body.page #visu-partners-v2 .pv-closing-inner h2 { color: #fff; }
html body.page #visu-partners-v2 .pv-closing-inner p { color: rgba(226, 236, 246, 0.78); }
html body.page #visu-partners-v2 .pv-closing-inner .pv-button.pv-button-secondary {
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.24) !important;
  color: #fff !important;
  box-shadow: none;
}
html body.page #visu-partners-v2 .pv-closing-inner .pv-button.pv-button-secondary:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}
html body.page #visu-partners-v2 .pv-return { color: var(--vl-muted); }
html body.page #visu-partners-v2 .pv-return a { color: var(--vl-ink) !important; }
html body.page #visu-partners-v2 .pv-closing-inner .pv-return { color: rgba(226, 236, 246, 0.72) !important; }
html body.page #visu-partners-v2 .pv-closing-inner .pv-return a { color: #fff !important; }

/* =====================================================================
   /contact/ (#cv-contact)
   ===================================================================== */
html body.page #cv-contact {
  --cv-bg: var(--vl-bg);
  --cv-text: var(--vl-ink);
  --cv-muted: var(--vl-muted);
  --cv-accent: var(--vl-accent-text);
  background: var(--vl-bg);
  color: var(--vl-ink);
}
html body.page #cv-contact .cv-hero { background: radial-gradient(ellipse at 0% 10%, rgba(25, 180, 239, 0.09), transparent 55%); }
html body.page #cv-contact h1 em { color: var(--vl-accent-text); }
html body.page #cv-contact .cv-intro { color: var(--vl-ink-2); }
html body.page #cv-contact .cv-direct { border-top-color: var(--vl-line-2); }
html body.page #cv-contact .cv-whatsapp {
  background: var(--vl-surface);
  border-color: var(--vl-line-2);
  border-radius: 12px;
  color: var(--vl-ink) !important;
  box-shadow: var(--vl-shadow-sm);
}
html body.page #cv-contact .cv-whatsapp:hover { background: var(--vl-tint); border-color: rgba(10, 19, 36, 0.24); }
html body.page #cv-contact .cv-whatsapp svg { color: #128c4b; }
html body.page #cv-contact .cv-whatsapp .cv-arrow { color: var(--vl-muted); }
html body.page #cv-contact .cv-hours { color: var(--vl-muted); }
html body.page #cv-contact .cv-response { color: var(--vl-muted); }
html body.page #cv-contact .cv-response strong { color: var(--vl-ink); }
html body.page #cv-contact .cv-response p { color: var(--vl-muted); }

/* Form panel: white card */
html body.page #cv-contact .cv-panel {
  background: var(--vl-surface);
  border-color: var(--vl-line);
  border-radius: var(--vl-radius);
  color: var(--vl-ink);
  box-shadow: var(--vl-shadow-md);
}
html body.page #cv-contact .cv-panel h2 { color: var(--vl-ink) !important; }
html body.page #cv-contact .cv-panel-head p { color: var(--vl-muted); }
html body.page #cv-contact .cv-form-mark { border-color: var(--vl-line-2); color: var(--vl-ink-2); }
html body.page #cv-contact .cv-topics legend,
html body.page #cv-contact .fluentform label { color: var(--vl-ink-2) !important; }
html body.page #cv-contact .cv-optional { color: var(--vl-muted); }
html body.page #cv-contact .cv-topic-options button {
  background: var(--vl-surface);
  border-color: var(--vl-line-2);
  border-radius: 999px;
  color: var(--vl-ink-2);
}
html body.page #cv-contact .cv-topic-options button:hover { background: var(--vl-tint); border-color: rgba(10, 19, 36, 0.24); }
html body.page #cv-contact .cv-topic-options button[aria-pressed="true"] {
  background: var(--vl-ink);
  border-color: var(--vl-ink);
  color: #fff;
}
html body.page #cv-contact .fluentform .ff-el-form-control {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line-2) !important;
  border-radius: 12px !important;
  color: var(--vl-ink) !important;
}
html body.page #cv-contact .fluentform .ff-el-form-control::placeholder { color: #7c889b !important; }
html body.page #cv-contact .fluentform .ff-el-form-control:hover { border-color: rgba(10, 19, 36, 0.24) !important; }
html body.page #cv-contact .fluentform .ff-el-form-control:focus,
html body.page #cv-contact .fluentform .ff-el-form-control:focus-visible {
  border-color: var(--vl-accent) !important;
  box-shadow: 0 0 0 3px rgba(25, 180, 239, 0.22) !important;
}
html body.page #cv-contact .fluentform .ff-btn-submit {
  background: var(--vl-accent) !important;
  border-color: var(--vl-accent) !important;
  border-radius: 12px !important;
  color: var(--vl-accent-ink) !important;
  -webkit-text-fill-color: var(--vl-accent-ink);
  box-shadow: 0 1px 2px rgba(10, 19, 36, 0.08), 0 6px 18px -8px rgba(25, 180, 239, 0.55) !important;
}
html body.page #cv-contact .fluentform .ff-btn-submit:hover { background: #3fc2f3 !important; border-color: #3fc2f3 !important; }
html body.page #cv-contact .cv-privacy { color: var(--vl-muted); }
html body.page #cv-contact .cv-privacy a { color: var(--vl-accent-text) !important; }
html body.page #cv-contact .cv-preview-result { color: var(--vl-ink-2); }

/* Global strip */
html body.page #cv-contact .cv-global { border-top-color: var(--vl-line-2); }
html body.page #cv-contact .cv-global-title { color: var(--vl-muted); }
html body.page #cv-contact .cv-countries li { color: var(--vl-ink-2); }
html body.page #cv-contact .cv-countries li::before { background: var(--vl-accent); }

/* FAQ: white band */
html body.page #cv-contact .cv-faq { background: var(--vl-surface); border-color: var(--vl-line); }
html body.page #cv-contact .cv-faq h2 { color: var(--vl-ink); }
html body.page #cv-contact .cv-faq-intro { color: var(--vl-muted); }
html body.page #cv-contact details { border-bottom-color: var(--vl-line); }
html body.page #cv-contact summary { color: var(--vl-ink); }
html body.page #cv-contact summary span { color: var(--vl-accent-text); }
html body.page #cv-contact details p { color: var(--vl-ink-2); }

/* Explore strip */
html body.page #cv-contact .cv-explore h2 { color: var(--vl-ink); }
html body.page #cv-contact .cv-explore p { color: var(--vl-muted); }
html body.page #cv-contact .cv-explore a { color: var(--vl-accent-text) !important; font-weight: 600; }
html body.page #cv-contact .cv-explore a:hover { color: #055a86 !important; }

/* =====================================================================
   /locations/ (#visu-hub with .v-* markup; the Attention Economy hub shares the id but uses .ah-*)
   ===================================================================== */
html body.page #visu-hub:has(.v-hero) {
  --primary: #19b4ef;
  --primary-light: var(--vl-accent-text);
  --primary-dark: #055a86;
  --glow: rgba(25, 180, 239, 0.12);
  --glow-strong: rgba(25, 180, 239, 0.25);
  --success: #10b981;
  --success-light: #047857;
  --reward: #b45309;
  --bg-primary: #03121d;
  --bg-secondary: #ffffff;
  --bg-tertiary: #eef6fc;
  --bg-card: #ffffff;
  --bg-blur: rgba(255, 255, 255, 0.92);
  --text-primary: #0a1324;
  --text-secondary: #33415a;
  --text-muted: var(--vl-muted);
  --border-subtle: rgba(10, 19, 36, 0.08);
  --border-hover: rgba(25, 180, 239, 0.45);
  color: var(--vl-ink);
}

/* Hero: light wash over the globe art, light chips */
html body.page #visu-hub .v-hero { background: var(--vl-bg); }
html body.page #visu-hub .v-hero__overlay {
  background: radial-gradient(ellipse at center, rgba(247, 250, 253, 0.94) 0%, rgba(247, 250, 253, 0.88) 55%, #f7fafd 100%);
}
html body.page #visu-hub .v-hero__grid {
  background-image:
    linear-gradient(rgba(10, 19, 36, 0.035) 1px, transparent 1px),
    linear-gradient(90deg, rgba(10, 19, 36, 0.035) 1px, transparent 1px);
}
html body.page #visu-hub .v-hero__badge {
  background: var(--vl-surface);
  border-color: var(--vl-line-2);
  color: var(--vl-ink-2);
  text-transform: none;
  letter-spacing: normal;
  box-shadow: var(--vl-shadow-sm);
}
html body.page #visu-hub .v-hero__title { color: var(--vl-ink); }
html body.page #visu-hub .v-hero__title-highlight { color: var(--vl-accent-text); }
html body.page #visu-hub .v-stats-bar {
  background: var(--vl-surface);
  border-color: var(--vl-line);
  box-shadow: var(--vl-shadow-sm);
}

/* Buttons */
html body.page #visu-hub .v-btn--primary,
html body.page #visu-hub .v-invite-popup__btn--primary {
  background: var(--vl-accent) !important;
  border-color: var(--vl-accent) !important;
  color: var(--vl-accent-ink) !important;
  box-shadow: 0 1px 2px rgba(10, 19, 36, 0.08), 0 6px 18px -8px rgba(25, 180, 239, 0.55);
}
html body.page #visu-hub .v-btn--primary:hover,
html body.page #visu-hub .v-invite-popup__btn--primary:hover { background: #3fc2f3 !important; border-color: #3fc2f3 !important; }
html body.page #visu-hub .v-btn--secondary,
html body.page #visu-hub .v-invite-popup__btn--secondary {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line-2) !important;
  color: var(--vl-ink) !important;
  box-shadow: var(--vl-shadow-sm);
}
html body.page #visu-hub .v-btn--secondary:hover,
html body.page #visu-hub .v-invite-popup__btn--secondary:hover {
  background: var(--vl-tint) !important;
  border-color: rgba(10, 19, 36, 0.24) !important;
  color: var(--vl-ink) !important;
  box-shadow: var(--vl-shadow-sm);
}

/* Search bar (sibling widget, id vls_<hash>; its rules are id-scoped, hence !important) */
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-bar {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: var(--vl-shadow-md) !important;
}
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-dd-btn,
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-input {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line-2) !important;
  border-radius: 12px !important;
  color: var(--vl-ink) !important;
  box-shadow: none !important;
}
body.page:has(#visu-hub .v-hero) .vls-wrap :is(.vls-dd-btn, .vls-input):hover { border-color: rgba(10, 19, 36, 0.24) !important; }
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-input:focus,
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-dd.open .vls-dd-btn {
  background: var(--vl-surface) !important;
  border-color: var(--vl-accent) !important;
  box-shadow: 0 0 0 3px rgba(25, 180, 239, 0.22) !important;
}
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-input::placeholder { color: #7c889b !important; }
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-dd-btn :is(.text, .flag) { color: var(--vl-ink) !important; }
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-dd-btn .text.ph { color: var(--vl-muted) !important; }
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-dd-btn .arrow { color: var(--vl-muted) !important; }
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-btn {
  background: var(--vl-accent) !important;
  border-radius: 12px !important;
  color: var(--vl-accent-ink) !important;
  box-shadow: none !important;
}
body.page:has(#visu-hub .v-hero) .vls-wrap .vls-btn:hover { background: #3fc2f3 !important; }
body.page:has(#visu-hub .v-hero) :is(.vls-wrap .vls-menu, .vls-menu.vls-floating) {
  background: var(--vl-surface) !important;
  border: 1px solid var(--vl-line) !important;
  box-shadow: var(--vl-shadow-md) !important;
}
body.page:has(#visu-hub .v-hero) :is(.vls-wrap .vls-menu, .vls-menu.vls-floating) .vls-item { color: var(--vl-ink-2) !important; }
body.page:has(#visu-hub .v-hero) :is(.vls-wrap .vls-menu, .vls-menu.vls-floating) .vls-item:hover { background: var(--vl-tint) !important; color: var(--vl-ink) !important; }
body.page:has(#visu-hub .v-hero) :is(.vls-wrap .vls-menu, .vls-menu.vls-floating) .vls-item.sel { background: var(--vl-tint) !important; color: var(--vl-accent-text) !important; }
body.page:has(#visu-hub .v-hero) .vls-backdrop { background: rgba(6, 19, 31, 0.35) !important; }

/* Section titles */
html body.page #visu-hub .v-section__title { color: var(--vl-ink); }
html body.page #visu-hub .v-section__link { color: var(--vl-accent-text); }

/* Country photo cards stay dark (image + overlay); chips on them stay readable */
html body.page #visu-hub .v-country-card { border-color: var(--vl-line); box-shadow: var(--vl-shadow-sm); }
html body.page #visu-hub .v-country-card:hover { box-shadow: var(--vl-shadow-md); }
html body.page #visu-hub .v-country-card__rank { color: #8fdcfb; text-transform: none; letter-spacing: normal; }
html body.page #visu-hub .v-country-card__status { text-transform: none; letter-spacing: normal; }
html body.page #visu-hub .v-country-card--coming {
  background: var(--vl-surface);
  border: 1.5px dashed rgba(25, 180, 239, 0.55);
  box-shadow: var(--vl-shadow-sm);
}
html body.page #visu-hub .v-country-card--coming:hover { border-color: var(--vl-accent); box-shadow: var(--vl-shadow-md); }

/* Partner cards: white */
html body.page #visu-hub .v-partner-card {
  background: var(--vl-surface);
  border: 1px solid var(--vl-line);
  box-shadow: var(--vl-shadow-sm);
}
html body.page #visu-hub .v-partner-card:hover { border-color: rgba(25, 180, 239, 0.45); box-shadow: var(--vl-shadow-md); }
html body.page #visu-hub .v-partner-card__category {
  color: var(--vl-ink);
  text-transform: none;
  letter-spacing: normal;
  box-shadow: var(--vl-shadow-sm);
}
html body.page #visu-hub .v-partner-card__reward--invite { background: var(--vl-tint); border-color: rgba(25, 180, 239, 0.22); }
html body.page #visu-hub .v-partner-card__reward-label { text-transform: none; letter-spacing: normal; }
html body.page #visu-hub .v-partner-card__badge--invite { background: var(--vl-tint); border-color: rgba(25, 180, 239, 0.3); color: var(--vl-accent-text); }
html body.page #visu-hub .v-partner-card__badge--invite:hover { background: var(--vl-accent); border-color: var(--vl-accent); color: var(--vl-accent-ink); }

/* World map: dark accent panel (restore the dark palette inside it) */
html body.page #visu-hub .v-world-map {
  --bg-secondary: #06131f;
  --text-primary: #f8fafc;
  --text-secondary: #a9b8c8;
  --text-muted: #8b9bb0;
  --primary-light: #5fcff6;
  --success-light: #34d399;
  --border-subtle: rgba(255, 255, 255, 0.08);
  background: var(--vl-navy);
  border-color: transparent;
  box-shadow: var(--vl-shadow-md);
  color: #f8fafc;
}

/* Join: white band, light CTA cards */
html body.page #visu-hub .v-section--alt {
  background: var(--vl-surface);
  border-top: 1px solid var(--vl-line);
  border-bottom: 1px solid var(--vl-line);
}
html body.page #visu-hub .v-cta-card { box-shadow: var(--vl-shadow-sm); }
html body.page #visu-hub .v-cta-card--users { background: linear-gradient(160deg, #eef6fc 0%, #ffffff 100%); border-color: rgba(25, 180, 239, 0.22); }
html body.page #visu-hub .v-cta-card--business { background: linear-gradient(160deg, #fff6e8 0%, #ffffff 100%); border-color: rgba(245, 158, 11, 0.28); }
html body.page #visu-hub .v-cta-card__eyebrow,
html body.page #visu-hub .v-cta-card__stat-label {
  text-transform: none;
  letter-spacing: normal;
  font-weight: 600;
  color: var(--vl-muted);
}
html body.page #visu-hub .v-cta-card__list li::before { color: #047857; }

/* SEO text, FAQ, final CTA */
html body.page #visu-hub .v-seo-content__text { color: var(--vl-ink-2); }
html body.page #visu-hub .v-faq-item { background: var(--vl-surface); border-color: var(--vl-line); box-shadow: var(--vl-shadow-sm); }
html body.page #visu-hub .v-faq-item[open] { border-color: rgba(25, 180, 239, 0.4); box-shadow: var(--vl-shadow-md); }
html body.page #visu-hub .v-faq-item summary::after { color: var(--vl-accent-text); }
html body.page #visu-hub .v-faq-item summary:hover { color: var(--vl-accent-text); }
html body.page #visu-hub .v-faq-body a { color: var(--vl-accent-text); }
html body.page #visu-hub .v-final-cta {
  background: linear-gradient(160deg, #eef6fc 0%, #ffffff 100%);
  border-color: var(--vl-line);
  box-shadow: var(--vl-shadow-sm);
}
html body.page #visu-hub .v-final-cta::before { opacity: 0.5; }
html body.page #visu-hub .v-final-cta__title { color: var(--vl-ink); }

/* Popups (open on click): light */
html body.page #visu-hub :is(.v-popup-overlay, .v-invite-overlay) { background: rgba(6, 19, 31, 0.55); }
html body.page #visu-hub :is(.v-popup, .v-invite-popup) { box-shadow: var(--vl-shadow-md); }
html body.page #visu-hub .v-invite-popup { border-color: var(--vl-line); }
html body.page #visu-hub :is(.v-popup__category, .v-popup__qr-label, .v-invite-popup__steps-title) {
  text-transform: none;
  letter-spacing: normal;
}

/* =====================================================================
   /network/ (EN page-id-5968, #visu-solutions)
   ===================================================================== */
html:lang(en) body.page-id-5968 #visu-solutions {
  --sol-bg: #f7fafd;
  --sol-text: #0a1324;
  --sol-text-muted: #33415a;
  --sol-text-dark: var(--vl-muted);
  --sol-primary: var(--vl-accent-text);
  --sol-primary-hover: #3fc2f3;
  --sol-accent: #19b4ef;
  --sol-money: #047857;
  --sol-bg-card: #ffffff;
  --sol-bg-card-solid: #ffffff;
  --sol-border: rgba(10, 19, 36, 0.08);
  --sol-border-hover: rgba(25, 180, 239, 0.45);
  background: var(--vl-bg);
  color: var(--vl-ink-2);
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-section-dark {
  background: var(--vl-surface);
  border-top: 1px solid var(--vl-line);
  border-bottom: 1px solid var(--vl-line);
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-stat-card,
html:lang(en) body.page-id-5968 #visu-solutions .sol-feature-card { box-shadow: var(--vl-shadow-sm); }
html:lang(en) body.page-id-5968 #visu-solutions .sol-feature-card:hover { box-shadow: var(--vl-shadow-md); }
html:lang(en) body.page-id-5968 #visu-solutions #values .sol-feature-card,
html:lang(en) body.page-id-5968 #visu-solutions #ecosystem .sol-feature-card {
  background: none;
  border-top: 1px solid var(--vl-line-2);
  box-shadow: none;
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-feature-icon { background: var(--vl-tint); }
html:lang(en) body.page-id-5968 #visu-solutions .sol-feature-card:hover .sol-feature-icon { color: #fff; }
html:lang(en) body.page-id-5968 #visu-solutions .sol-hero-visual img { border-color: var(--vl-line); box-shadow: var(--vl-shadow-md); }
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-section { background: none; }
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn-primary {
  background: var(--vl-accent) !important;
  border-color: var(--vl-accent) !important;
  color: var(--vl-accent-ink) !important;
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn-primary:hover { background: #3fc2f3 !important; border-color: #3fc2f3 !important; }
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn-ghost {
  background: var(--vl-surface) !important;
  border-color: var(--vl-line-2) !important;
  color: var(--vl-ink) !important;
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn-ghost:hover {
  background: var(--vl-tint) !important;
  border-color: rgba(10, 19, 36, 0.24) !important;
  color: var(--vl-ink) !important;
}
/* Closing CTA: dark panel */
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-box {
  --sol-text: #ffffff;
  --sol-text-muted: rgba(226, 236, 246, 0.78);
  background: var(--vl-navy);
  border-color: transparent;
  border-radius: var(--vl-radius);
  box-shadow: var(--vl-shadow-md);
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-box h2 { color: #fff !important; }
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-box .sol-btn-ghost {
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.24) !important;
  color: #fff !important;
}
html:lang(en) body.page-id-5968 #visu-solutions .sol-cta-box .sol-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

/* =====================================================================
   /uses/ (EN page-id-19936, #visu-uses)
   ===================================================================== */
html body:is(.page-id-19936, .page-id-20164) #visu-uses {
  --sol-bg: #f7fafd;
  --sol-text: #0a1324;
  --sol-text-muted: #33415a;
  --sol-text-desc: #33415a;
  --sol-primary: var(--vl-accent-text);
  --sol-primary-hover: #3fc2f3;
  --sol-accent: #19b4ef;
  --sol-bg-card: #ffffff;
  --sol-bg-card-solid: #ffffff;
  --sol-border: rgba(10, 19, 36, 0.08);
  --sol-border-hover: rgba(25, 180, 239, 0.45);
  --hub-card-border: rgba(10, 19, 36, 0.08);
  --qr-color: var(--vl-accent-text);
  --push-color: #5b4fd6;
  --link-color: #0f7f72;
  background: var(--vl-bg);
  color: var(--vl-ink-2);
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses :is(h1, h2, h3) { color: var(--vl-ink); }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-section { background: none; }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-service-header {
  background: var(--vl-surface);
  border-color: var(--vl-line);
  border-top-color: var(--vl-line);
  box-shadow: var(--vl-shadow-sm);
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-service-header p { color: var(--vl-ink); }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-case-card,
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-cases-grid .sol-case-card {
  background: var(--vl-surface);
  border: 1px solid var(--vl-line);
  box-shadow: var(--vl-shadow-sm);
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-case-card:hover { background: var(--vl-surface); border-color: rgba(25, 180, 239, 0.45); box-shadow: var(--vl-shadow-md); }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-case-icon { border-color: var(--vl-line); }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-why-card { box-shadow: var(--vl-shadow-sm); }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn-primary {
  background: var(--vl-accent) !important;
  border-color: var(--vl-accent) !important;
  color: var(--vl-accent-ink) !important;
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn-primary:hover { background: #3fc2f3 !important; border-color: #3fc2f3 !important; }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn-ghost {
  background: var(--vl-surface) !important;
  border-color: var(--vl-line-2) !important;
  color: var(--vl-ink) !important;
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn-ghost:hover {
  background: var(--vl-tint) !important;
  border-color: rgba(10, 19, 36, 0.24) !important;
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-cta-box {
  --sol-text: #ffffff;
  --sol-text-muted: rgba(226, 236, 246, 0.78);
  background: var(--vl-navy);
  border-color: transparent;
  border-radius: var(--vl-radius);
  box-shadow: var(--vl-shadow-md);
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-cta-box :is(h2, h3) { color: #fff !important; }
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-cta-box .sol-btn-ghost {
  background: transparent !important;
  border-color: rgba(255, 255, 255, 0.24) !important;
  color: #fff !important;
}
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-cta-box .sol-btn-ghost:hover {
  background: rgba(255, 255, 255, 0.06) !important;
  border-color: rgba(255, 255, 255, 0.4) !important;
}

/* =====================================================================
   /roadmap/ (EN page-id-1202, 51-roadmap.* markup)
   ===================================================================== */
html:lang(en) body.page-id-1202 #visu-solutions {
  --rm-bg: #f7fafd;
  --rm-ink: #0a1324;
  --rm-muted: #33415a;
  --rm-dim: var(--vl-muted);
  --rm-line: rgba(10, 19, 36, 0.1);
  --rm-accent: #19b4ef;
  --rm-accent-ink: #03121d;
}
html:lang(en) body.page-id-1202 #visu-solutions .rm-item[data-product="link"] .rm-product { color: var(--vl-accent-text); }
html:lang(en) body.page-id-1202 #visu-solutions .rm-item[data-product="local"] .rm-product { color: #047857; }
html:lang(en) body.page-id-1202 #visu-solutions .rm-item[data-product="replay"] .rm-product { color: #c2410c; }
html:lang(en) body.page-id-1202 #visu-solutions .rm-item[data-product="ads"] .rm-product { color: #6d4fd8; }
html:lang(en) body.page-id-1202 #visu-solutions .rm-item a,
html:lang(en) body.page-id-1202 #visu-solutions .rm-principles a { text-decoration-color: rgba(10, 19, 36, 0.3); }
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-box {
  --rm-ink: #ffffff;
  --rm-muted: rgba(226, 236, 246, 0.78);
  --rm-line: rgba(255, 255, 255, 0.08);
  background: var(--vl-navy);
  border-radius: var(--vl-radius);
  box-shadow: var(--vl-shadow-md);
}
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-box h2 { color: #fff !important; }
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn-primary:hover { background: #3fc2f3; border-color: #3fc2f3; }
html:lang(en) body.page-id-1202 #visu-solutions .sol-cta-actions .sol-btn-ghost:hover { background: rgba(255, 255, 255, 0.06); }

/* =====================================================================
   /alternatives/ (EN page-id-6959, 52-alternatives.* markup)
   ===================================================================== */
html:lang(en) body.page-id-6959 {
  --valt-bg: #f7fafd;
  --valt-ink: #0a1324;
  --valt-muted: #33415a;
  --valt-dim: var(--vl-muted);
  --valt-line: rgba(10, 19, 36, 0.1);
  --valt-accent: #19b4ef;
  --valt-accent-ink: #03121d;
  --valt-link: var(--vl-accent-text);
  --valt-local: #047857;
  --valt-replay: #c2410c;
  --valt-ads: #6d4fd8;
}
html:lang(en) body.page-id-6959 .valt-jump a {
  background: var(--vl-surface);
  border-color: var(--vl-line-2);
  box-shadow: var(--vl-shadow-sm);
}
html:lang(en) body.page-id-6959 .valt-jump a:hover { background: var(--vl-tint); border-color: rgba(10, 19, 36, 0.24); }
html:lang(en) body.page-id-6959 .valt a:not(.valt-btn):not(.valt-p) { text-decoration-color: rgba(10, 19, 36, 0.3); }
html:lang(en) body.page-id-6959 .valt a:not(.valt-btn):not(.valt-p):is(:hover, :focus-visible) { color: var(--vl-accent-text) !important; }
html:lang(en) body.page-id-6959 .valt-fit-col {
  background: var(--vl-surface);
  border-color: var(--vl-line);
  border-radius: 16px;
  box-shadow: var(--vl-shadow-sm);
}
html:lang(en) body.page-id-6959 .valt-fit-col li,
html:lang(en) body.page-id-6959 .valt-table :is(td, tbody td) { color: var(--vl-ink-2); }
html:lang(en) body.page-id-6959 .valt-table thead th { border-bottom-color: var(--vl-line-2); }
html:lang(en) body.page-id-6959 .valt .valt-btn--primary:hover { background: #3fc2f3; }
html:lang(en) body.page-id-6959 .valt .valt-btn--ghost {
  background: var(--vl-surface);
  border-color: var(--vl-line-2);
  box-shadow: var(--vl-shadow-sm);
}
html:lang(en) body.page-id-6959 .valt .valt-btn--ghost:is(:link, :visited, :hover, :focus-visible, :active) { color: var(--vl-ink) !important; }
html:lang(en) body.page-id-6959 .valt .valt-btn--ghost:is(:hover, :focus-visible) { background: var(--vl-tint); border-color: rgba(10, 19, 36, 0.24); }

/* =====================================================================
   Legal docs (Terms 6771, Privacy 6783, Cookies 6791; any language)
   ===================================================================== */
html body.page .visu-legal-doc[data-visu-legal] { color: var(--vl-ink-2); }
html body.page .visu-legal-doc[data-visu-legal] .visu-legal-title,
html body.page .visu-legal-doc[data-visu-legal] :is(h1, h2, h3, h4, th) { color: var(--vl-ink); }
html body.page .visu-legal-doc[data-visu-legal] :is(p, li, td) { color: var(--vl-ink-2); }
html body.page .visu-legal-doc[data-visu-legal] :is(strong, b) { color: var(--vl-ink); }
html body.page .visu-legal-doc[data-visu-legal] .visu-legal-meta { color: var(--vl-muted); border-bottom-color: var(--vl-line-2); }
html body.page .visu-legal-doc[data-visu-legal] .visu-legal-meta :is(strong, b) { color: inherit; }
html body.page .visu-legal-doc[data-visu-legal] .visu-legal-version { color: var(--vl-muted); opacity: 1; border-top-color: var(--vl-line-2); }
html body.page .visu-legal-doc[data-visu-legal] a {
  color: var(--vl-accent-text) !important;
  text-decoration-color: rgba(7, 134, 196, 0.35);
}
html body.page .visu-legal-doc[data-visu-legal] a:hover { text-decoration-color: currentColor; }
html body.page .visu-legal-doc[data-visu-legal] :is(th, td) { border-color: var(--vl-line); border-bottom-color: var(--vl-line-2); }

/* Locations fixes after first pass */
html body.page #visu-hub :is(.v-btn--secondary, .v-invite-popup__btn--secondary) { -webkit-text-fill-color: currentColor !important; }
html body.page #visu-hub .v-country-card:not(.v-country-card--coming) .v-country-card__name { color: #fff !important; -webkit-text-fill-color: #fff; }
html body.page #visu-hub .v-country-card--coming .v-country-card__name { color: var(--vl-ink) !important; text-shadow: none; }
html body.page #visu-hub .v-country-card--coming .v-country-card__cities { color: var(--vl-ink-2); }
html body.page #visu-hub .v-world-map__title { color: #fff !important; }
html body.page #visu-hub .v-partner-card__image { background: var(--vl-tint); }

/* Network/Uses fixes: theme paints button text via -webkit-text-fill-color; grey section tint */
html:lang(en) body.page-id-5968 #visu-solutions .sol-btn,
html body:is(.page-id-19936, .page-id-20164) #visu-uses .sol-btn { -webkit-text-fill-color: currentColor !important; }
html body:is(.page-id-19936, .page-id-20164) #visu-uses section.sol-section { background: none !important; }

/* pages/57-light-plans.css */
/* 57-light-plans.css: plans page (#visu-plans widget + wp-plans-sync grid #visu-plans-grid) on the light shell
 * (2026-10-05). EN/BR/ES share the widget, so everything is scoped by #visu-plans. Rhythm rule: light shell, plan
 * cards on white, Pro lifted with the accent; the final CTA is the one navy panel. Data stays from the plans API. */

body.page #visu-plans#visu-plans {
  --vpl-card: var(--vl-surface, #fff);
  --vpl-line: var(--vl-line, rgba(10, 19, 36, .08));
  --vpl-line-2: var(--vl-line-2, rgba(10, 19, 36, .14));
  background: var(--vl-bg, #f7fafd) !important;
  color: var(--vl-ink-2, #33415a) !important;
  color-scheme: only light;
}
body.page #visu-plans#visu-plans :is(h1, h2, h3) { color: var(--vl-ink, #0a1324) !important; text-transform: none !important; }
body.page #visu-plans#visu-plans p { color: var(--vl-ink-2, #33415a); }

/* ---------- Hero */
body.page #visu-plans#visu-plans .vp-hero { background: transparent !important; padding-bottom: 8px !important; }
body.page #visu-plans#visu-plans .vp-hero-blob { display: none !important; }
body.page #visu-plans#visu-plans .vp-hero h1 { letter-spacing: -0.03em !important; }
body.page #visu-plans#visu-plans .vp-hero h1 span { color: var(--vl-accent-text, #0670a6) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
body.page #visu-plans#visu-plans .vp-hero-sub { color: var(--vl-muted, #5d6a7e) !important; }

/* ---------- Billing toggle */
body.page #visu-plans#visu-plans .vpg-toggle { background: var(--vpl-card) !important; border: 1px solid var(--vpl-line-2) !important; box-shadow: var(--vl-shadow-sm) !important; }
body.page #visu-plans#visu-plans .vpg-toggle-btn { color: var(--vl-muted, #5d6a7e) !important; background: transparent !important; }
body.page #visu-plans#visu-plans .vpg-toggle-btn--active { background: var(--vl-ink, #0a1324) !important; color: #fff !important; }
body.page #visu-plans#visu-plans .vpg-save-badge { background: #e7f7ee !important; color: #15803d !important; border-color: transparent !important; }

/* ---------- Plan cards */
body.page #visu-plans#visu-plans .sol-plan-card {
  background: var(--vpl-card) !important; border: 1px solid var(--vpl-line-2) !important; border-radius: 20px !important;
  box-shadow: var(--vl-shadow-sm) !important; color: var(--vl-ink-2) !important;
}
body.page #visu-plans#visu-plans .sol-plan-card.featured {
  border: 2px solid var(--vl-accent, #19b4ef) !important; box-shadow: var(--vl-shadow-md) !important; transform: translateY(-6px);
}
body.page #visu-plans#visu-plans .sol-plan-badge {
  background: var(--vl-accent, #19b4ef) !important; color: var(--vl-accent-ink, #03121d) !important;
  text-transform: none !important; letter-spacing: 0 !important; font-weight: 600 !important; font-size: 13px !important; border-radius: 999px !important;
}
body.page #visu-plans#visu-plans .sol-plan-name { color: var(--vl-ink) !important; }
body.page #visu-plans#visu-plans .sol-plan-desc { color: var(--vl-muted, #5d6a7e) !important; }
body.page #visu-plans#visu-plans .sol-price-amount { color: var(--vl-ink) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
body.page #visu-plans#visu-plans .featured .sol-price-amount { color: var(--vl-accent-text, #0670a6) !important; }
body.page #visu-plans#visu-plans :is(.sol-price-period, .sol-price-annual) { color: var(--vl-muted, #5d6a7e) !important; }
body.page #visu-plans#visu-plans .sol-plan-features { border-top: 1px solid var(--vpl-line) !important; }
body.page #visu-plans#visu-plans .sol-plan-features li { color: var(--vl-ink-2) !important; border-bottom-color: var(--vpl-line) !important; }
body.page #visu-plans#visu-plans .sol-plan-features li strong { color: var(--vl-ink) !important; }
body.page #visu-plans#visu-plans .sol-plan-check { color: #15924a !important; background: #e8f6ee !important; }
/* The VISU Credits promo is the strongest line on a paid plan: tinted note instead of one more bullet */
body.page #visu-plans#visu-plans .sol-plan-features li.vpl-promo {
  margin-top: 10px; padding: 10px 12px !important; border: 0 !important; border-radius: 12px;
  background: var(--vl-tint, #eef6fc) !important; color: var(--vl-ink) !important; font-weight: 500;
}
body.page #visu-plans#visu-plans .sol-plan-features li.vpl-promo .sol-plan-check { color: var(--vl-accent-text) !important; background: #fff !important; }

/* Buttons */
body.page #visu-plans#visu-plans .sol-btn-ghost { background: var(--vpl-card) !important; color: var(--vl-ink) !important; border: 1px solid var(--vpl-line-2) !important; }
body.page #visu-plans#visu-plans .sol-btn-ghost:hover { border-color: var(--vl-ink) !important; }
body.page #visu-plans#visu-plans .sol-btn-primary { background: var(--vl-accent, #19b4ef) !important; color: var(--vl-accent-ink, #03121d) !important; border: 0 !important; box-shadow: none !important; }

/* ---------- Managed services */
body.page #visu-plans#visu-plans #vp-services { background: var(--vpl-card) !important; border-top: 1px solid var(--vpl-line); border-bottom: 1px solid var(--vpl-line); }
body.page #visu-plans#visu-plans .vp-section-header p { color: var(--vl-muted, #5d6a7e) !important; }
body.page #visu-plans#visu-plans .vp-service-card { background: var(--vl-bg, #f7fafd) !important; border: 1px solid var(--vpl-line) !important; box-shadow: none !important; }
body.page #visu-plans#visu-plans .vp-service-name { color: var(--vl-ink) !important; }
body.page #visu-plans#visu-plans .vp-service-price { color: var(--vl-accent-text, #0670a6) !important; }
body.page #visu-plans#visu-plans .vp-service-desc { color: var(--vl-ink-2) !important; }
body.page #visu-plans#visu-plans .vp-service-tag { background: #e7f7ee !important; color: #15803d !important; }
body.page #visu-plans#visu-plans .vp-btn-wa { background: #fff !important; color: #128c4b !important; border: 1px solid rgba(18, 140, 75, .35) !important; }

/* ---------- FAQ */
body.page #visu-plans#visu-plans #vp-faq { background: transparent !important; }
body.page #visu-plans#visu-plans .vp-faq-item { background: var(--vpl-card) !important; border: 1px solid var(--vpl-line) !important; box-shadow: none !important; }
body.page #visu-plans#visu-plans .vp-faq-item summary { color: var(--vl-ink) !important; }
body.page #visu-plans#visu-plans .vp-faq-body { color: var(--vl-ink-2) !important; }

/* ---------- Final CTA: the one navy panel */
body.page #visu-plans#visu-plans .vp-cta { background: transparent !important; padding: 24px 0 72px !important; }
body.page #visu-plans#visu-plans .vp-cta > .vp-wrap {
  max-width: 980px; margin: 0 auto; padding: 56px 40px 44px !important; border-radius: 24px;
  background: radial-gradient(ellipse at 50% 0%, rgba(25, 180, 239, .16), transparent 60%), var(--vl-navy, #06131f) !important;
}
body.page #visu-plans#visu-plans .vp-cta h2 { color: #fff !important; }
body.page #visu-plans#visu-plans .vp-cta h2 span { color: #7fd3f7 !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
body.page #visu-plans#visu-plans .vp-cta > .vp-wrap > p,
body.page #visu-plans#visu-plans .vp-cta p { color: rgba(226, 236, 246, .72) !important; }
body.page #visu-plans#visu-plans .vp-cta p a { color: #7fd3f7 !important; }
body.page #visu-plans#visu-plans .vp-cta .vp-btn--primary { background: var(--vl-accent, #19b4ef) !important; color: var(--vl-accent-ink, #03121d) !important; box-shadow: none !important; }
body.page #visu-plans#visu-plans .vp-cta .vp-btn-wa { background: transparent !important; color: #4ade80 !important; border-color: rgba(74, 222, 128, .4) !important; }

@media (max-width: 1100px) {
  body.page #visu-plans#visu-plans .sol-plan-card.featured { transform: none; }
}
@media (max-width: 767px) {
  body.page #visu-plans#visu-plans .vp-cta > .vp-wrap { margin: 0 16px; padding: 40px 22px 32px !important; }
}
/* Hero -> toggle gap (was ~180px of empty band) */
body.page #visu-plans#visu-plans .vp-hero { padding-bottom: 0 !important; min-height: 0 !important; }
body.page #visu-plans#visu-plans #vp-pricing { padding-top: 28px !important; }
body.page #visu-plans#visu-plans a.sol-btn.sol-btn-ghost { -webkit-text-fill-color: currentColor !important; }
/* Same height for plan descriptions on desktop, so prices and feature lists line up across the four cards */
@media (min-width: 1101px) {
  body.page #visu-plans#visu-plans .sol-plan-desc { min-height: 6em; }
}
@media (max-width: 1100px) {
  body.page #visu-plans#visu-plans .sol-plan-price { min-height: 0 !important; margin-bottom: 16px !important; }
}

/* pages/58-about.css */
/* 58-about.css: About VISU (fragment from design/about-v1/about.cjs). Light shell, real app screens in the hero,
 * the final CTA is the one navy panel. The fragment sits inside the old boxed Elementor container, so bands are
 * painted full-bleed with box-shadow + clip-path. */
#visu-about { --vab-ink: var(--vl-ink, #0a1324); --vab-text: var(--vl-ink-2, #33415a); --vab-muted: var(--vl-muted, #5d6a7e); --vab-line: var(--vl-line, rgba(10, 19, 36, .08));
  color: var(--vab-text); color-scheme: only light; }
#visu-about *, #visu-about *::before, #visu-about *::after { box-sizing: border-box; }
#visu-about .vab-wrap { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
#visu-about :is(h1, h2, h3) { color: var(--vab-ink) !important; text-transform: none !important; margin: 0 !important; }
#visu-about p { margin: 0 !important; }
#visu-about .vab-btn { display: inline-flex; align-items: center; padding: 15px 24px; border-radius: 12px; font-weight: 600; font-size: 16px; text-decoration: none !important; }
#visu-about .vab-btn-ghost { background: var(--vl-surface, #fff) !important; color: var(--vab-ink) !important; border: 1px solid var(--vl-line-2, rgba(10, 19, 36, .14)); }
#visu-about .vab-btn-ghost:hover { border-color: var(--vab-ink); }

/* Hero */
#visu-about .vab-hero { position: relative; padding: 88px 0 80px; overflow: hidden;
  box-shadow: 0 0 0 100vmax var(--vl-bg, #f7fafd); clip-path: inset(0 -100vmax); }
#visu-about .vab-hero-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: 48px; align-items: center; }
#visu-about .vab-kicker { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--vl-accent-text, #0670a6) !important; margin-bottom: 18px !important; }
#visu-about .vab-kicker::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--vl-accent, #19b4ef); }
#visu-about .vab-hero h1 { font-size: clamp(38px, 4.4vw, 60px) !important; line-height: 1.04 !important; font-weight: 750 !important; letter-spacing: -0.035em !important; text-wrap: balance; }
#visu-about .vab-lead { margin-top: 22px !important; max-width: 56ch; font-size: 18px; line-height: 1.62; color: var(--vab-text) !important; }
#visu-about .vab-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 30px; }

#visu-about .vab-collage { position: relative; height: 520px; margin: 0; }
#visu-about .vab-collage::before { content: ""; position: absolute; inset: 8% 4% 2% 4%; border-radius: 40px;
  background: radial-gradient(ellipse at 60% 30%, rgba(25, 180, 239, .28), transparent 60%), radial-gradient(ellipse at 20% 80%, rgba(106, 79, 214, .18), transparent 60%); filter: blur(10px); }
#visu-about .vab-shot { position: absolute; width: 41%; height: auto; aspect-ratio: 390 / 844; object-fit: cover; object-position: top;
  border: 6px solid #0f1922; border-radius: 30px; box-shadow: 0 30px 60px -20px rgba(6, 19, 31, .45), 0 2px 6px rgba(6, 19, 31, .12); background: #0b1117; }
#visu-about .vab-shot-1 { left: 0; top: 64px; transform: rotate(-6deg); z-index: 1; }
#visu-about .vab-shot-2 { left: 29.5%; top: 0; z-index: 3; }
#visu-about .vab-shot-3 { right: 0; top: 72px; transform: rotate(6deg); z-index: 2; }
#visu-about .vab-collage figcaption { position: absolute; left: 0; right: 0; bottom: -6px; text-align: center; font-size: 12.5px; color: var(--vab-muted); }

/* Sections */
#visu-about .vab-section { padding: 84px 0; }
#visu-about .vab-alt { background: var(--vl-surface, #fff); box-shadow: 0 0 0 100vmax var(--vl-surface, #fff); clip-path: inset(0 -100vmax); }
#visu-about .vab-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 32px; align-items: end; margin-bottom: 40px; }
#visu-about .vab-head h2, #visu-about .vab-split h2 { font-size: clamp(30px, 3.2vw, 44px) !important; line-height: 1.08 !important; font-weight: 720 !important; letter-spacing: -0.03em !important; }
#visu-about .vab-head p { color: var(--vab-muted) !important; font-size: 17px; line-height: 1.55; max-width: 46ch; }

#visu-about .vab-products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
#visu-about .vab-product { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 26px 24px 22px; border-radius: 22px; text-decoration: none !important; overflow: hidden;
  background: var(--vl-surface, #fff); border: 1px solid var(--vab-line); box-shadow: var(--vl-shadow-sm); transition: transform .25s ease, box-shadow .25s ease, border-color .25s; }
#visu-about .vab-product::after { content: ""; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--vab-c, var(--vl-accent)); opacity: 0; transition: opacity .25s; }
#visu-about .vab-product:hover { transform: translateY(-4px); box-shadow: var(--vl-shadow-md); border-color: transparent; }
#visu-about .vab-product:hover::after { opacity: 1; }
#visu-about .vab-icon { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; margin-bottom: 10px; background: var(--vab-t); color: var(--vab-c); }
#visu-about .vab-visulink { --vab-t: #e8f6fd; --vab-c: #0a8fd0; }
#visu-about .vab-visulocal { --vab-t: #e8f6ee; --vab-c: #15924a; }
#visu-about .vab-visureplay { --vab-t: #fdf0e4; --vab-c: #d9690f; }
#visu-about .vab-visu-ads { --vab-t: #f0ecfd; --vab-c: #6a4fd6; }
#visu-about .vab-product h3 { font-size: 21px !important; font-weight: 650 !important; }
#visu-about .vab-product p { font-size: 15px; line-height: 1.55; color: var(--vab-text) !important; flex: 1; }
#visu-about .vab-arrow { color: var(--vab-c) !important; font-weight: 600; font-size: 14.5px; margin-top: 8px; }

#visu-about .vab-cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--vab-line); }
#visu-about .vab-col { padding: 32px 32px 8px 0; }
#visu-about .vab-col + .vab-col { padding-left: 32px; border-left: 1px solid var(--vab-line); }
#visu-about .vab-num { display: block; font-size: 15px; font-weight: 700; color: var(--vl-accent-text, #0670a6); margin-bottom: 18px; letter-spacing: .02em; }
#visu-about .vab-col h3 { font-size: 26px !important; font-weight: 700 !important; letter-spacing: -0.02em !important; margin-bottom: 10px !important; }
#visu-about .vab-col p { font-size: 16.5px; line-height: 1.6; color: var(--vab-text) !important; }

#visu-about .vab-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 40px; align-items: start; }
#visu-about .vab-where { list-style: none; margin: 0 !important; padding: 0 !important; }
#visu-about .vab-where li { display: grid; grid-template-columns: 190px minmax(0, 1fr); gap: 20px; padding: 18px 0 !important; margin: 0 !important; border-bottom: 1px solid var(--vab-line); }
#visu-about .vab-where li:first-child { padding-top: 6px !important; }
#visu-about .vab-where li::before { display: none !important; }
#visu-about .vab-where b { color: var(--vab-ink); font-size: 17px; }
#visu-about .vab-where span { color: var(--vab-text); font-size: 16.5px; line-height: 1.5; }
#visu-about .vab-more { padding-top: 0; }
#visu-about .vab-links { display: flex; flex-wrap: wrap; gap: 10px; }
#visu-about .vab-link { padding: 11px 18px; border-radius: 999px; border: 1px solid var(--vl-line-2, rgba(10, 19, 36, .14)); background: var(--vl-surface, #fff); color: var(--vab-ink) !important; font-weight: 500; font-size: 15px; text-decoration: none !important; transition: border-color .2s; }
#visu-about .vab-link:hover { border-color: var(--vab-ink); }

#visu-about .vab-cta { padding: 16px 0 96px; }
#visu-about .vab-panel { padding: 64px 40px; border-radius: 28px; text-align: center;
  background: radial-gradient(ellipse at 50% 0%, rgba(25, 180, 239, .2), transparent 60%), var(--vl-navy, #06131f); }
#visu-about .vab-panel h2 { color: #fff !important; font-size: clamp(30px, 3.2vw, 44px) !important; font-weight: 720 !important; letter-spacing: -0.03em !important; }
#visu-about .vab-panel p { color: rgba(226, 236, 246, .75) !important; margin: 12px auto 28px !important; max-width: 52ch; font-size: 17px; line-height: 1.55; }

@media (max-width: 1024px) {
  #visu-about .vab-wrap { padding: 0 16px; }
  #visu-about .vab-hero { padding: 48px 0 40px; }
  #visu-about .vab-hero-grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  #visu-about .vab-collage { height: 400px; max-width: 520px; width: 100%; margin: 0 auto; }
  #visu-about .vab-section { padding: 56px 0; }
  #visu-about :is(.vab-head, .vab-split) { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  #visu-about .vab-head { margin-bottom: 28px; }
  #visu-about .vab-products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  #visu-about .vab-cols { grid-template-columns: minmax(0, 1fr); }
  #visu-about .vab-col, #visu-about .vab-col + .vab-col { padding: 24px 0 !important; border-left: 0; border-bottom: 1px solid var(--vab-line); }
  #visu-about .vab-where li { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  #visu-about .vab-lead { font-size: 17px; }
  #visu-about .vab-panel { padding: 44px 22px; }
}
@media (max-width: 560px) {
  #visu-about .vab-products { grid-template-columns: minmax(0, 1fr); }
  #visu-about .vab-collage { height: 330px; }
  #visu-about .vab-actions .vab-btn { flex: 1; justify-content: center; }
}
#visu-about .vab-num { width: auto !important; height: auto !important; background: none !important; border-radius: 0 !important; display: block !important; }
@media (max-width: 1024px) { #visu-about .vab-collage figcaption { display: none; } }
#visu-about .vab-collage figcaption { display: none !important; }

/* pages/59-alternatives.css */
/* 59-alternatives.css: Alternatives v1 (fragments from design/alternatives-v1/render.cjs) on the hub and competitor pages,
 * EN/PT/ES. Light only, everything scoped to #visu-alt. Same shell as 58-about.css: bands painted full-bleed with
 * box-shadow + clip-path because the fragment sits inside the theme's content column. Final CTA is the one navy panel. */
#visu-alt { --va-ink: var(--vl-ink, #0a1324); --va-text: var(--vl-ink-2, #33415a); --va-muted: var(--vl-muted, #5d6a7e);
  --va-line: var(--vl-line, rgba(10, 19, 36, .08)); --va-line-2: var(--vl-line-2, rgba(10, 19, 36, .14)); --va-surface: var(--vl-surface, #fff);
  --va-bg: var(--vl-bg, #f7fafd); --va-accent: var(--vl-accent, #19b4ef); --va-accent-text: var(--vl-accent-text, #0670a6);
  --va-yes: #047857; --va-no: #b42318; --va-tone: var(--va-accent-text);
  color: var(--va-text); color-scheme: only light; font-family: Inter, "Inter Fallback", "Inter Fallback Android", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 16px; line-height: 1.6; overflow-wrap: anywhere; }
#visu-alt *, #visu-alt *::before, #visu-alt *::after { box-sizing: border-box; }
#visu-alt :is(h1, h2, h3, h4) { color: var(--va-ink) !important; text-transform: none !important; margin: 0 !important; font-family: inherit !important; letter-spacing: -0.02em; }
#visu-alt :is(p, ul, ol) { margin: 0 !important; }
#visu-alt ul, #visu-alt ol { padding: 0 !important; }
#visu-alt li { margin: 0 !important; }
#visu-alt a { color: var(--va-accent-text); text-decoration-color: rgba(6, 112, 166, .35); text-underline-offset: 3px; }
#visu-alt a:hover { color: var(--va-ink); }
#visu-alt .va-wrap { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
#visu-alt .va-narrow { max-width: 880px; }

/* Hero */
#visu-alt .va-hero { padding: 72px 0 56px; box-shadow: 0 0 0 100vmax var(--va-bg); clip-path: inset(0 -100vmax); background: var(--va-bg); }
#visu-alt .va-kicker { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 600; color: var(--va-accent-text) !important; margin-bottom: 16px !important; }
#visu-alt .va-kicker::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--va-accent); }
#visu-alt .va-hero h1 { font-size: clamp(32px, 4.2vw, 54px) !important; line-height: 1.06 !important; font-weight: 750 !important; letter-spacing: -0.035em !important; text-wrap: balance; max-width: 20ch; }
#visu-alt.va-comp .va-hero h1 { max-width: none; }
#visu-alt .va-lead { margin-top: 20px !important; max-width: 64ch; font-size: 18px; line-height: 1.62; }
#visu-alt .va-crumb { display: flex; flex-wrap: wrap; gap: 8px; font-size: 14px; color: var(--va-muted); margin-bottom: 18px; }
#visu-alt .va-crumb a { font-weight: 600; }
#visu-alt .va-jump { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
#visu-alt .va-jump a { padding: 10px 16px; border-radius: 999px; border: 1px solid var(--va-line-2); background: var(--va-surface); color: var(--va-ink) !important;
  font-weight: 500; font-size: 15px; text-decoration: none !important; box-shadow: var(--vl-shadow-sm); transition: border-color .2s; }
#visu-alt .va-jump a:hover { border-color: var(--va-ink); }
#visu-alt .va-verdict { margin-top: 28px; padding: 22px 24px; border-radius: 18px; background: var(--va-surface); border: 1px solid var(--va-line); border-left: 4px solid var(--va-accent); box-shadow: var(--vl-shadow-sm); }
#visu-alt .va-verdict h2 { font-size: 15px !important; font-weight: 700 !important; letter-spacing: 0; margin-bottom: 6px !important; }
#visu-alt .va-verdict p { font-size: 17px; line-height: 1.6; color: var(--va-ink); }

/* Sections */
#visu-alt .va-section { padding: 64px 0; }
#visu-alt .va-section h2 { font-size: clamp(26px, 2.8vw, 38px) !important; line-height: 1.12 !important; font-weight: 720 !important; letter-spacing: -0.03em !important; margin-bottom: 22px !important; }
#visu-alt .va-alt-bg, #visu-alt .va-cat:nth-of-type(even) { background: var(--va-surface); box-shadow: 0 0 0 100vmax var(--va-surface); clip-path: inset(0 -100vmax); }
#visu-alt .va-tint, #visu-alt .va-cat:nth-of-type(odd) { background: var(--va-bg); box-shadow: 0 0 0 100vmax var(--va-bg); clip-path: inset(0 -100vmax); }

/* Hub categories */
#visu-alt .va-tone-link { --va-tone: #0a8fd0; }
#visu-alt .va-tone-local { --va-tone: #15924a; }
#visu-alt .va-tone-ads { --va-tone: #6a4fd6; }
#visu-alt .va-cat-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; }
#visu-alt .va-cat-head h2 { margin-bottom: 8px !important; }
#visu-alt .va-cat-product { font-size: 15px; color: var(--va-muted); }
#visu-alt .va-cat-product a { color: var(--va-tone) !important; font-weight: 650; }
#visu-alt .va-cat-intro { max-width: 70ch; font-size: 17px; margin-bottom: 28px !important; }
#visu-alt .va-fit { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
#visu-alt .va-fit-col { padding: 22px 24px; border-radius: 18px; background: var(--va-surface); border: 1px solid var(--va-line); box-shadow: var(--vl-shadow-sm); }
#visu-alt .va-fit-visu { border-top: 3px solid var(--va-tone); }
#visu-alt .va-fit-col h3 { font-size: 17px !important; font-weight: 680 !important; margin-bottom: 12px !important; }
#visu-alt :is(.va-fit-col, .va-stay, .va-pc) ul { list-style: none; display: grid; gap: 10px; }
#visu-alt :is(.va-fit-col, .va-stay, .va-pc) li { position: relative; padding-left: 20px !important; font-size: 15.5px; line-height: 1.55; }
#visu-alt :is(.va-fit-col, .va-stay, .va-pc) li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 7px; height: 7px; border-radius: 50%; background: var(--va-line-2); }
#visu-alt .va-fit-visu li::before { background: var(--va-tone); }
#visu-alt .va-pages-title { font-size: 15px !important; font-weight: 650 !important; color: var(--va-muted) !important; margin: 28px 0 12px !important; letter-spacing: 0; }
#visu-alt .va-pages > summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 8px; }
#visu-alt .va-pages > summary::-webkit-details-marker { display: none; }
#visu-alt .va-pages > summary::after { content: ""; width: 8px; height: 8px; border: solid currentColor; border-width: 0 1.5px 1.5px 0; transform: rotate(45deg) translateY(-2px); margin-left: 4px; transition: transform .2s; }
#visu-alt .va-pages[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
#visu-alt .va-pages-n { font-size: 12px; font-weight: 600; padding: 1px 8px; border-radius: 999px; background: var(--va-chip-bg, rgba(25,180,239,.12)); color: var(--va-muted); }
#visu-alt .va-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 10px; }
#visu-alt .va-chip { display: inline-flex; align-items: baseline; gap: 6px; padding: 10px 16px; border-radius: 12px; border: 1px solid var(--va-line-2); background: var(--va-surface);
  color: var(--va-ink) !important; font-weight: 600; font-size: 15px; text-decoration: none !important; transition: border-color .2s, transform .2s; }
#visu-alt .va-chip:hover { border-color: var(--va-tone); transform: translateY(-1px); }
#visu-alt .va-chip-sub { font-weight: 400; font-size: 13.5px; color: var(--va-muted); }

/* Competitor page */
#visu-alt .va-stay { list-style: none; display: grid; gap: 12px; }
#visu-alt .va-stay li { font-size: 17px; }
#visu-alt .va-items { list-style: none; display: grid; gap: 16px; }
#visu-alt .va-item { padding: 24px; border-radius: 20px; background: var(--va-surface); border: 1px solid var(--va-line); }
#visu-alt .va-item-visu { background: var(--va-surface); border: 1px solid var(--va-line-2); border-top: 3px solid var(--va-accent); box-shadow: var(--vl-shadow-md); }
#visu-alt .va-item-head { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 12px; margin-bottom: 10px; }
#visu-alt .va-item-head h3 { font-size: 22px !important; font-weight: 700 !important; }
#visu-alt .va-num { display: inline-grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: var(--va-ink); color: #fff; font-size: 14px; font-weight: 700; flex: none; }
#visu-alt .va-tag { padding: 3px 10px; border-radius: 999px; background: #e8f6fd; color: var(--va-accent-text); font-size: 12.5px; font-weight: 650; }
#visu-alt .va-item > p { font-size: 16px; }
#visu-alt .va-pc { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; margin-top: 16px; }
#visu-alt .va-pc h4 { font-size: 14px !important; font-weight: 700 !important; color: var(--va-muted) !important; margin-bottom: 8px !important; letter-spacing: 0; }
#visu-alt .va-pc > div:first-child li::before { background: var(--va-yes); }
#visu-alt .va-links { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 16px !important; }
#visu-alt .va-more { display: inline-flex; gap: 6px; margin-top: 12px; font-weight: 600; font-size: 15px; }
#visu-alt .va-links .va-more { margin-top: 0; }

#visu-alt .va-table-wrap { border-radius: 18px; border: 1px solid var(--va-line-2); background: var(--va-surface); overflow: hidden; }
#visu-alt .va-table { width: 100%; border-collapse: collapse; margin: 0 !important; border: 0 !important; table-layout: fixed; font-size: 15px; }
#visu-alt .va-table :is(th, td) { padding: 14px 16px !important; border: 0 !important; border-bottom: 1px solid var(--va-line) !important; text-align: left; vertical-align: top; background: none !important; color: var(--va-text); }
#visu-alt .va-table tr:last-child :is(th, td) { border-bottom: 0 !important; }
#visu-alt .va-table thead th { font-size: 13.5px; font-weight: 700; color: var(--va-muted); background: var(--va-bg) !important; }
#visu-alt .va-table thead th:first-child { width: 46%; }
#visu-alt .va-table tbody th { font-weight: 600; color: var(--va-ink); }
#visu-alt .va-c { line-height: 1.35; }
#visu-alt .va-c svg { vertical-align: -3px; margin-right: 6px; }
#visu-alt .va-c-yes { color: var(--va-yes) !important; font-weight: 600; }
#visu-alt .va-c-no { color: var(--va-no) !important; font-weight: 600; }
#visu-alt .va-c-unknown { color: var(--va-muted) !important; }
#visu-alt .va-c small { display: block; margin-top: 4px; font-size: 13px; font-weight: 400; color: var(--va-muted); }
#visu-alt .va-note { margin-top: 12px !important; font-size: 13.5px; color: var(--va-muted); }

/* FAQ */
#visu-alt .va-faq details { border-bottom: 1px solid var(--va-line-2); }
#visu-alt .va-faq summary { cursor: pointer; list-style: none; padding: 18px 36px 18px 0; position: relative; font-weight: 650; font-size: 17px; color: var(--va-ink); }
#visu-alt .va-faq summary::-webkit-details-marker { display: none; }
#visu-alt .va-faq summary::after { content: "+"; position: absolute; right: 4px; top: 14px; font-size: 24px; font-weight: 400; color: var(--va-muted); }
#visu-alt .va-faq details[open] summary::after { content: "−"; }
#visu-alt .va-faq details p { padding: 0 0 20px !important; font-size: 16px; max-width: 70ch; }

/* CTA */
#visu-alt .va-cta { padding-top: 8px; }
#visu-alt .va-panel { padding: 56px 40px; border-radius: 28px; text-align: center;
  background: radial-gradient(ellipse at 50% 0%, rgba(25, 180, 239, .2), transparent 60%), var(--vl-navy, #06131f); }
#visu-alt .va-panel h2 { color: #fff !important; margin-bottom: 0 !important; }
#visu-alt .va-panel > p { color: rgba(226, 236, 246, .78) !important; margin: 12px auto 0 !important; max-width: 56ch; font-size: 17px; line-height: 1.55; }
#visu-alt .va-panel .va-plans { font-size: 15px; margin-top: 18px !important; }
#visu-alt .va-panel .va-plans b { color: #fff; }
#visu-alt .va-panel .va-plans a { color: #8fdcfa !important; }
#visu-alt .va-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin-top: 28px; }
#visu-alt .va-btn { display: inline-flex; align-items: center; justify-content: center; padding: 15px 24px; border-radius: 12px; font-weight: 600; font-size: 16px; text-decoration: none !important; }
#visu-alt .va-btn-ghost { background: transparent !important; color: #fff !important; border: 1px solid rgba(255, 255, 255, .3); }
#visu-alt .va-btn-ghost:hover { border-color: #fff; }
#visu-alt .va-legal { padding-bottom: 72px !important; padding-top: 8px !important; font-size: 13px; color: var(--va-muted); }

@media (max-width: 900px) {
  #visu-alt .va-wrap { padding: 0 16px; }
  #visu-alt .va-hero { padding: 40px 0 36px; }
  #visu-alt .va-lead { font-size: 17px; }
  #visu-alt .va-section { padding: 44px 0; }
  #visu-alt :is(.va-fit, .va-pc) { grid-template-columns: minmax(0, 1fr); }
  #visu-alt .va-panel { padding: 40px 20px; border-radius: 22px; }
  #visu-alt .va-item { padding: 20px 18px; }
}
@media (max-width: 560px) {
  #visu-alt .va-table { font-size: 14px; }
  #visu-alt .va-table :is(th, td) { padding: 12px 10px !important; }
  #visu-alt .va-table thead th:first-child { width: 42%; }
  #visu-alt .va-c svg { display: block; margin: 0 0 4px; }
  #visu-alt .va-actions .va-btn { flex: 1 1 100%; }
  #visu-alt .va-jump a { padding: 8px 13px; font-size: 14px; }
}

/* pages/60-blog.css */
/* 60-blog.css: single post on the light shell (PROTOTYPE, preview only, 2026-10-05).
 * Pairs with 60-blog.js (hero + grid + aside). Scope body.single-post.vb-on, so nothing changes if the JS
 * did not run. Reading surface = --vl-surface, hero band = --vl-bg; CTA panels stay navy (rhythm rule).
 * Post HTML components (pipeline SEO): .visu-blog-scope, .v-subtitle, nav.toc, .v-section, .v-img, .v-cta,
 * .v-cta-block, .v-pro-tip, .v-faq details, .v-comparison-table, .internal-links, .v-references. */

body.single-post.vb-on {
  --vb-max: 1160px;
  --vb-read: 700px;
  --vb-aside: 300px;
  --vb-gap: 64px;
  --vb-ink: var(--vl-ink, #0a1324);
  --vb-text: #2b3850;
  --vb-muted: #5d6a7e;
  --vb-line: var(--vl-line, rgba(10, 19, 36, .08));
  --vb-link: #0670a6;
  background: var(--vl-surface, #fff) !important;
  color: var(--vb-text);
}
html:has(> body.single-post.vb-on) { background: var(--vl-surface, #fff); }
body.single-post.vb-on :is(.uicore-body-content, #uicore-page, #content, #primary, main#main, .uicore-section, .uicore-box, .uicore-container) {
  background: transparent !important;
}

/* UiCore header pieces replaced by .vb-hero */
body.single-post.vb-on header.uicore-page-title,
body.single-post.vb-on #primary > .uicore-section:has(.uicore-single-header) { display: none !important; }

/* ------------------------------------------------------------------ hero */
.vb-hero {
  background: var(--vl-bg, #f7fafd);
  border-bottom: 1px solid var(--vb-line);
  padding: 56px 24px 56px;
}
.vb-hero-in {
  max-width: var(--vb-max); margin: 0 auto;
  display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: 56px; align-items: center;
}
.vb-hero--noimg .vb-hero-in { grid-template-columns: minmax(0, 820px); }
body.single-post.vb-on .vb-cat {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 14px; font-weight: 600; color: var(--vb-link) !important; text-decoration: none !important;
  margin-bottom: 18px;
}
body.single-post.vb-on .vb-cat::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--vl-accent, #19b4ef); }
.vb-title {
  margin: 0 0 20px !important; padding: 0 !important;
  font-size: clamp(30px, 3.4vw, 46px) !important; line-height: 1.12 !important; letter-spacing: -0.022em !important;
  font-weight: 700 !important; color: var(--vb-ink) !important; text-align: left !important; text-wrap: balance;
}
body.single-post.vb-on .vb-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin: 0 !important; font-size: 14px; color: var(--vb-muted); }
body.single-post.vb-on .vb-meta span + span::before { content: "·"; margin-right: 18px; color: rgba(10, 19, 36, .3); }
body.single-post.vb-on .vb-meta a { color: var(--vb-ink) !important; font-weight: 600; text-decoration: none !important; }
.vb-hero-img { margin: 0; border-radius: 20px; overflow: hidden; aspect-ratio: 4 / 3; background: #e6ebf1; box-shadow: var(--vl-shadow-md); }
.vb-hero-img img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ------------------------------------------------------------------ grid */
body.single-post.vb-on main#main { padding-top: 48px !important; }
body.single-post.vb-on .vb-grid {
  max-width: var(--vb-max) !important; width: auto !important; margin: 0 auto !important; padding: 0 24px !important;
  display: grid !important; grid-template-columns: minmax(0, var(--vb-read)) var(--vb-aside);
  gap: var(--vb-gap); justify-content: space-between; align-items: start;
}
body.single-post.vb-on .vb-grid > .uicore-post-content { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; flex: none !important; }
.vb-aside { position: relative; align-self: stretch; }
.vb-aside-in { display: flex; flex-direction: column; gap: 20px; flex: 1 1 auto; }

/* TOC */
body.single-post.vb-on .vb-toc { padding: 4px 0 4px; }
body.single-post.vb-on .vb-toc-title { margin: 0 0 12px !important; font-size: 13px; font-weight: 600; color: var(--vb-muted); }
body.single-post.vb-on .vb-toc ol { list-style: none; margin: 0 !important; padding: 0 !important; border-left: 2px solid var(--vb-line); max-height: 46vh; overflow: auto; }
body.single-post.vb-on .vb-toc li { margin: 0 !important; padding: 0 !important; }
body.single-post.vb-on .vb-toc li::before { display: none !important; }
body.single-post.vb-on .vb-toc a {
  display: block; margin-left: -2px; padding: 7px 0 7px 14px; border-left: 2px solid transparent;
  font-size: 14px; line-height: 1.4; color: var(--vb-muted) !important; text-decoration: none !important;
  transition: color .15s, border-color .15s;
}
body.single-post.vb-on .vb-toc a:hover { color: var(--vb-ink) !important; }
body.single-post.vb-on .vb-toc a.is-on { color: var(--vb-ink) !important; font-weight: 600; border-left-color: var(--vl-accent, #19b4ef); }

/* VISU card */
body.single-post.vb-on .vb-card { background: var(--vl-navy, #06131f); color: rgba(226, 236, 246, .78); border-radius: 18px; padding: 22px 22px 24px; }
body.single-post.vb-on .vb-card-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 10px !important; font-size: 13px; font-weight: 600; color: #7fd3f7; }
.vb-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--vl-accent, #19b4ef); }
body.single-post.vb-on .vb-card-title { margin: 0 0 8px !important; font-size: 19px; line-height: 1.3; font-weight: 650; color: #fff; }
body.single-post.vb-on .vb-card-text { margin: 0 0 18px !important; font-size: 14px; line-height: 1.55; }
body.single-post.vb-on .vb-card-cta {
  display: inline-flex; width: 100%; justify-content: center; padding: 12px 16px; border-radius: 12px;
  background: var(--vl-accent, #19b4ef); color: var(--vl-accent-ink, #03121d) !important; font-weight: 600; font-size: 15px; text-decoration: none !important;
}
body.single-post.vb-on .vb-card-cta:hover { filter: brightness(1.06); }

/* Ad slot (placeholder in preview) */
body.single-post.vb-on .vb-ad span { display: block; font-size: 11px; color: var(--vb-muted); margin-bottom: 6px; text-align: center; }
body.single-post.vb-on .vb-ad-box { height: 250px; border-radius: 12px; border: 1px dashed rgba(10, 19, 36, .18); display: grid; place-items: center; font-size: 13px; color: var(--vb-muted); background: var(--vl-bg, #f7fafd); }

/* progress */
.vb-progress { position: fixed; left: 0; right: 0; top: 0; height: 3px; background: var(--vl-accent, #19b4ef); transform-origin: 0 50%; transform: scaleX(0); z-index: 100000; pointer-events: none; }

/* ------------------------------------------------------------------ article typography */
body.single-post.vb-on #primary .visu-blog-scope { color: var(--vb-text) !important; font-size: 18px; line-height: 1.72; }
body.single-post.vb-on #primary .visu-blog-scope :is(p, li) { color: var(--vb-text) !important; font-size: 18px !important; line-height: 1.72 !important; }
body.single-post.vb-on #primary .visu-blog-scope p { margin: 0 0 1.15em !important; }
body.single-post.vb-on #primary .visu-blog-scope :is(h2, h3, h4) { color: var(--vb-ink) !important; text-transform: none !important; letter-spacing: -0.015em !important; scroll-margin-top: 110px; }
body.single-post.vb-on #primary .visu-blog-scope h2 { font-size: 30px !important; line-height: 1.22 !important; font-weight: 700 !important; margin: 2.1em 0 .6em !important; }
body.single-post.vb-on #primary .visu-blog-scope h3 { font-size: 22px !important; line-height: 1.3 !important; font-weight: 650 !important; margin: 1.7em 0 .5em !important; }
body.single-post.vb-on #primary .visu-blog-scope strong { color: var(--vb-ink) !important; }
body.single-post.vb-on #primary .visu-blog-scope a:not(.visu-btn) { color: var(--vb-link) !important; text-decoration: underline !important; text-decoration-color: rgba(6, 112, 166, .35) !important; text-underline-offset: 3px; }
body.single-post.vb-on #primary .visu-blog-scope a:not(.visu-btn):hover { text-decoration-color: currentColor !important; }
body.single-post.vb-on #primary .visu-blog-scope :is(ul, ol) { padding-left: 1.3em !important; margin: 0 0 1.3em !important; }
body.single-post.vb-on #primary .visu-blog-scope li { margin: .35em 0 !important; }
body.single-post.vb-on #primary .visu-blog-scope li::marker { color: var(--vl-accent, #19b4ef); }
body.single-post.vb-on #primary .visu-blog-scope .v-section:first-of-type h2,
body.single-post.vb-on #primary .visu-blog-scope .v-section > h2:first-child { margin-top: 1.6em !important; }

/* Lead */
body.single-post.vb-on #primary .visu-blog-scope .v-subtitle { font-size: 21px !important; line-height: 1.6 !important; color: var(--vb-ink) !important; margin-bottom: 1.2em !important; }

/* Figures */
body.single-post.vb-on #primary .visu-blog-scope .v-img { margin: 2em 0 !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-img img { width: 100%; height: auto; border-radius: 16px; display: block; }
body.single-post.vb-on #primary .visu-blog-scope figcaption { margin-top: 10px !important; font-size: 14px !important; line-height: 1.5 !important; color: var(--vb-muted) !important; text-align: left !important; font-style: normal !important; }

/* Post's own TOC: hidden on desktop (aside replaces it), collapsible card on mobile */
body.single-post.vb-on #primary .visu-blog-scope nav.toc { background: var(--vl-bg, #f7fafd) !important; border: 1px solid var(--vb-line) !important; border-radius: 14px !important; padding: 0 !important; margin: 1.6em 0 !important; overflow: hidden; }
body.single-post.vb-on #primary .visu-blog-scope nav.toc h2 {
  margin: 0 !important; padding: 14px 18px !important; font-size: 16px !important; font-weight: 600 !important; cursor: pointer;
  display: flex; justify-content: space-between; align-items: center;
}
body.single-post.vb-on #primary .visu-blog-scope nav.toc h2::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-135deg) translateY(-2px); transition: transform .2s; }
body.single-post.vb-on #primary .visu-blog-scope nav.toc:not(.is-open) h2::after { transform: rotate(45deg) translateY(-2px); }
body.single-post.vb-on #primary .visu-blog-scope nav.toc ul { list-style: none !important; margin: 0 !important; padding: 0 18px 14px !important; }
body.single-post.vb-on #primary .visu-blog-scope nav.toc:not(.is-open) ul { display: none; }
body.single-post.vb-on #primary .visu-blog-scope nav.toc li { margin: 0 !important; font-size: 16px !important; }
body.single-post.vb-on #primary .visu-blog-scope nav.toc li a { display: block; padding: 6px 0; text-decoration: none !important; color: var(--vb-text) !important; }

/* Inline CTA (title + text + button): navy accent panel */
body.single-post.vb-on #primary .visu-blog-scope .v-cta {
  background: var(--vl-navy, #06131f) !important; border: 0 !important; border-radius: 18px !important;
  padding: 26px 28px !important; margin: 2em 0 !important; color: rgba(226, 236, 246, .8) !important; box-shadow: none !important;
}
body.single-post.vb-on #primary .visu-blog-scope .v-cta :is(p, li) { color: rgba(226, 236, 246, .8) !important; font-size: 16px !important; line-height: 1.6 !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-cta .v-cta-title { color: #fff !important; font-size: 20px !important; font-weight: 650 !important; margin-bottom: .4em !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-cta-block { margin: 1.4em 0 !important; padding: 0 !important; background: none !important; border: 0 !important; text-align: left !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-cta .v-cta-block { margin: 16px 0 0 !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-cta-micro:empty { display: none; }
body.single-post.vb-on #primary .visu-blog-scope .visu-btn.visu-btn-primary {
  display: inline-flex !important; align-items: center; padding: 13px 22px !important; border-radius: 12px !important; border: 0 !important;
  background: var(--vl-accent, #19b4ef) !important; color: var(--vl-accent-ink, #03121d) !important;
  font-size: 16px !important; font-weight: 600 !important; text-decoration: none !important; box-shadow: none !important;
}
body.single-post.vb-on #primary .visu-blog-scope .visu-btn.visu-btn-primary:hover { filter: brightness(1.06); }

/* Pro tip */
body.single-post.vb-on #primary .visu-blog-scope .v-pro-tip {
  background: var(--vl-tint, #eef6fc) !important; border: 0 !important; border-left: 3px solid var(--vl-accent, #19b4ef) !important;
  border-radius: 0 14px 14px 0 !important; padding: 18px 22px !important; margin: 1.8em 0 !important; color: var(--vb-text) !important;
}
body.single-post.vb-on #primary .visu-blog-scope .v-pro-tip :is(p, li) { font-size: 16px !important; }

/* FAQ */
body.single-post.vb-on #primary .visu-blog-scope details {
  background: var(--vl-surface, #fff) !important; border: 1px solid var(--vb-line) !important; border-radius: 14px !important;
  margin: 0 0 10px !important; padding: 0 !important; color: var(--vb-text) !important;
}
body.single-post.vb-on #primary .visu-blog-scope summary {
  list-style: none; cursor: pointer; padding: 16px 48px 16px 20px !important; position: relative;
  font-size: 17px !important; font-weight: 600 !important; color: var(--vb-ink) !important; background: none !important;
}
body.single-post.vb-on #primary .visu-blog-scope summary::-webkit-details-marker { display: none; }
body.single-post.vb-on #primary .visu-blog-scope summary::after { content: "+"; position: absolute; right: 20px; top: 50%; transform: translateY(-50%); font-size: 22px; font-weight: 400; color: var(--vb-muted); }
body.single-post.vb-on #primary .visu-blog-scope details[open] summary::after { content: "−"; }
body.single-post.vb-on #primary .visu-blog-scope details > :not(summary) { padding: 0 20px !important; }
body.single-post.vb-on #primary .visu-blog-scope details > p:last-child { padding-bottom: 6px !important; }
body.single-post.vb-on #primary .visu-blog-scope details p { font-size: 16px !important; }

/* Tables */
body.single-post.vb-on #primary .visu-blog-scope :is(.v-comparison-table-wrapper, .v-table-responsive) { overflow-x: auto; border: 1px solid var(--vb-line) !important; border-radius: 14px !important; margin: 1.8em 0 !important; background: var(--vl-surface, #fff) !important; }
body.single-post.vb-on #primary .visu-blog-scope table { width: 100%; border-collapse: collapse !important; margin: 0 !important; background: transparent !important; font-size: 15px !important; }
body.single-post.vb-on #primary .visu-blog-scope :is(th, td) { padding: 12px 14px !important; border: 0 !important; border-bottom: 1px solid var(--vb-line) !important; color: var(--vb-text) !important; background: transparent !important; text-align: left; vertical-align: top; font-size: 15px !important; line-height: 1.5 !important; }
body.single-post.vb-on #primary .visu-blog-scope th { background: var(--vl-bg, #f7fafd) !important; color: var(--vb-ink) !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; }
body.single-post.vb-on #primary .visu-blog-scope tr:last-child td { border-bottom: 0 !important; }

/* Blockquote */
body.single-post.vb-on #primary .visu-blog-scope blockquote { margin: 1.8em 0 !important; padding: 4px 0 4px 22px !important; border-left: 3px solid var(--vb-ink) !important; background: none !important; font-size: 20px; color: var(--vb-ink) !important; }

/* Internal links + references */
body.single-post.vb-on #primary .visu-blog-scope .internal-links { background: var(--vl-bg, #f7fafd) !important; border: 1px solid var(--vb-line) !important; border-radius: 14px !important; padding: 18px 22px !important; margin: 2em 0 !important; }
body.single-post.vb-on #primary .visu-blog-scope .internal-links :is(h2, h3, h4, p:first-child) { font-size: 16px !important; margin: 0 0 8px !important; }
body.single-post.vb-on #primary .visu-blog-scope .internal-links li { font-size: 16px !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-references { margin-top: 2.6em !important; padding-top: 1.4em !important; border-top: 1px solid var(--vb-line) !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-references .refs-title { font-size: 15px !important; font-weight: 600 !important; color: var(--vb-muted) !important; margin: 0 0 8px !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-references li { font-size: 14px !important; line-height: 1.55 !important; color: var(--vb-muted) !important; }

/* In-article ads: neutral frame, label above */
body.single-post.vb-on .visu-ad-block, body.single-post.vb-on .entry-content > .code-block { margin: 2em 0 !important; }

/* Tags footer → chips */
body.single-post.vb-on footer.entry-footer { margin-top: 2.4em !important; padding-top: 1.4em !important; border-top: 1px solid var(--vb-line); background: none !important; }
body.single-post.vb-on footer.entry-footer a { display: inline-block; margin: 0 6px 8px 0; padding: 5px 12px; border-radius: 999px; background: var(--vl-bg, #f7fafd); border: 1px solid var(--vb-line); font-size: 13px !important; color: var(--vb-text) !important; text-decoration: none !important; text-transform: none !important; }

/* ------------------------------------------------------------------ related posts */
body.single-post.vb-on .ui-related-posts { background: var(--vl-bg, #f7fafd) !important; border-top: 1px solid var(--vb-line); padding: 64px 0 72px !important; margin-top: 64px; }
body.single-post.vb-on .ui-related-posts .uicore-container { max-width: var(--vb-max) !important; }
body.single-post.vb-on .ui-related-posts h3 { color: var(--vb-ink) !important; font-size: 26px !important; font-weight: 700 !important; text-transform: none !important; letter-spacing: -0.015em !important; margin-bottom: 24px !important; }
body.single-post.vb-on .ui-related-posts .uicore-post { background: var(--vl-surface, #fff) !important; border: 1px solid var(--vb-line) !important; border-radius: 18px !important; overflow: hidden; height: 100%; }
body.single-post.vb-on .ui-related-posts .uicore-blog-img-container { border-radius: 0 !important; }
body.single-post.vb-on .ui-related-posts :is(h4, h3.uicore-post-title, .uicore-post-title, .uicore-post-title a) { color: var(--vb-ink) !important; font-size: 18px !important; line-height: 1.35 !important; text-transform: none !important; }
body.single-post.vb-on .ui-related-posts :is(.uicore-entry-meta, .uicore-entry-meta a, p) { color: var(--vb-muted) !important; text-transform: none !important; letter-spacing: 0 !important; }
body.single-post.vb-on .ui-related-posts .uicore-post-info { padding: 18px 20px 22px !important; background: transparent !important; }

/* ------------------------------------------------------------------ desktop vs mobile */
@media (min-width: 1100px) {
  body.single-post.vb-on #primary .visu-blog-scope nav.toc { display: none !important; }
}
@media (max-width: 1099px) {
  body.single-post.vb-on .vb-grid { grid-template-columns: minmax(0, var(--vb-read)); justify-content: center; }
  .vb-aside { display: none; }
  .vb-hero-in { grid-template-columns: minmax(0, var(--vb-read)); justify-content: center; gap: 28px; }
  .vb-hero-img { aspect-ratio: 16 / 9; }
}
@media (max-width: 767px) {
  .vb-hero { padding: 28px 16px 32px; }
  .vb-hero-in { gap: 22px; }
  .vb-cat { margin-bottom: 12px; font-size: 13px; }
  .vb-title { font-size: 29px !important; line-height: 1.16 !important; margin-bottom: 14px !important; }
  .vb-meta { font-size: 13px; gap: 4px 12px; }
  .vb-meta span + span::before { margin-right: 12px; }
  .vb-hero-img { border-radius: 16px; aspect-ratio: 16 / 10; }
  body.single-post.vb-on main#main { padding-top: 28px !important; }
  body.single-post.vb-on .vb-grid { padding: 0 16px !important; }
  body.single-post.vb-on #primary .visu-blog-scope :is(p, li) { font-size: 17px !important; line-height: 1.7 !important; }
  body.single-post.vb-on #primary .visu-blog-scope .v-subtitle { font-size: 19px !important; }
  body.single-post.vb-on #primary .visu-blog-scope h2 { font-size: 25px !important; }
  body.single-post.vb-on #primary .visu-blog-scope h3 { font-size: 20px !important; }
  body.single-post.vb-on #primary .visu-blog-scope .v-img { margin-left: -16px !important; margin-right: -16px !important; }
  body.single-post.vb-on #primary .visu-blog-scope .v-img img { border-radius: 0; }
  body.single-post.vb-on #primary .visu-blog-scope figcaption { padding: 0 16px; }
  body.single-post.vb-on #primary .visu-blog-scope .v-cta { padding: 22px 20px !important; }
  body.single-post.vb-on #primary .visu-blog-scope .visu-btn.visu-btn-primary { width: 100%; justify-content: center; }
  body.single-post.vb-on .ui-related-posts { padding: 44px 0 52px !important; margin-top: 44px; }
}

/* ------------------------------------------------------------------ v1.1 (owner review 05/10) */
/* Floating "Join the community" widget (2025): off on posts; app links live in the aside card instead */
body.single-post.vb-on #visuFloatWidget { display: none !important; }
body.single-post.vb-on main#main { padding-top: 36px !important; }
body.single-post.vb-on .uicore-post-content article { margin-top: 0 !important; padding-top: 0 !important; }
body.single-post.vb-on .entry-content > .code-block:first-child,
body.single-post.vb-on .entry-content > .code-block:first-child .visu-ad-block { margin-top: 0 !important; }
body.single-post.vb-on #primary .visu-blog-scope .v-cta, body.single-post.vb-on #primary .visu-blog-scope .v-cta :is(p, .v-cta-title) { text-align: left !important; }
body.single-post.vb-on #primary .visu-blog-scope h2 { border: 0 !important; padding-bottom: 0 !important; }
body.single-post.vb-on #primary .visu-blog-scope summary::before { display: none !important; }

/* ------------------------------------------------------------------ v1.2 (owner review 05/10) */
/* Theme paints every `main a:not(...)` with !important and a long :not() chain; #primary outranks it */
body.single-post.vb-on #primary .vb-aside a.vb-card-cta { color: var(--vl-accent-ink, #03121d) !important; }
body.single-post.vb-on #primary .vb-aside .vb-toc a { color: var(--vb-muted) !important; }
body.single-post.vb-on #primary .vb-aside .vb-toc a:hover,
body.single-post.vb-on #primary .vb-aside .vb-toc a.is-on { color: var(--vb-ink) !important; }

/* Aside: TOC + card in the flow, only the ad is pinned (card + 300x600 never fit a laptop viewport together) */
body.single-post.vb-on .vb-aside { display: flex; flex-direction: column; gap: 28px; }
body.single-post.vb-on .vb-aside .vb-toc ol { max-height: none; }
body.single-post.vb-on .vb-aside-in { display: flex; flex-direction: column; gap: 20px; flex: 1 1 auto; }

/* App links (aside card on navy, sheet on light) */
body.single-post.vb-on .vb-apps, body.single-post.vb-on .vb-sheet-apps { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
body.single-post.vb-on .vb-apps { margin-top: 10px; }
body.single-post.vb-on a.vb-app { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 10px; border-radius: 10px; font-size: 14px; font-weight: 600; text-decoration: none !important; }
body.single-post.vb-on a.vb-app svg { width: 16px; height: 16px; fill: currentColor; }
body.single-post.vb-on #primary .vb-apps a.vb-app { color: #fff !important; border: 1px solid rgba(255, 255, 255, .16); }
body.single-post.vb-on #primary .vb-apps a.vb-app:hover { border-color: rgba(255, 255, 255, .4); }

/* Floating app button + bottom sheet: below 1100px only (desktop has the aside) */
.vb-fab, .vb-sheet { display: none; }
@media (max-width: 1099px) {
  body.single-post.vb-on .vb-fab {
    display: inline-flex; align-items: center; gap: 8px; position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom));
    z-index: 9990; padding: 11px 16px 11px 13px; border: 0; border-radius: 999px; cursor: pointer;
    background: var(--vl-navy, #06131f); color: #fff; font: 600 14px/1 inherit; font-family: inherit;
    box-shadow: 0 8px 24px rgba(6, 19, 31, .28);
    opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .2s, transform .2s;
  }
  body.single-post.vb-on .vb-fab.is-on { opacity: 1; transform: none; pointer-events: auto; }
  body.single-post.vb-on .vb-fab svg { width: 18px; height: 18px; fill: var(--vl-accent, #19b4ef); }
  body.single-post.vb-on .vb-sheet { display: block; position: fixed; inset: 0; z-index: 99999; visibility: hidden; }
  body.single-post.vb-on .vb-sheet.is-open { visibility: visible; }
  .vb-sheet-back { position: absolute; inset: 0; background: rgba(6, 19, 31, .45); opacity: 0; transition: opacity .2s; }
  .vb-sheet.is-open .vb-sheet-back { opacity: 1; }
  .vb-sheet-panel {
    position: absolute; left: 0; right: 0; bottom: 0; background: var(--vl-surface, #fff); color: var(--vb-text);
    border-radius: 22px 22px 0 0; padding: 10px 20px calc(24px + env(safe-area-inset-bottom));
    transform: translateY(100%); transition: transform .25s ease-out; max-width: 560px; margin: 0 auto;
  }
  .vb-sheet.is-open .vb-sheet-panel { transform: none; }
  .vb-sheet-bar { display: flex; justify-content: flex-start; margin-bottom: 6px; }
  .vb-sheet-x { width: 36px; height: 36px; border: 0; border-radius: 50%; background: var(--vl-bg, #f7fafd); color: var(--vb-ink); font-size: 22px; line-height: 1; cursor: pointer; }
  .vb-sheet-title { margin: 4px 0 6px !important; font-size: 22px; font-weight: 700; color: var(--vb-ink); letter-spacing: -0.015em; }
  .vb-sheet-text { margin: 0 0 18px !important; font-size: 15px; line-height: 1.5; color: var(--vb-muted); }
  body.single-post.vb-on .vb-sheet a.vb-app { background: var(--vl-navy, #06131f); color: #fff !important; padding: 14px; font-size: 15px; }
  .vb-sheet-follow { margin: 20px 0 10px !important; font-size: 13px; font-weight: 600; color: var(--vb-muted); }
  .vb-sheet-social { display: flex; gap: 8px; }
  body.single-post.vb-on .vb-sheet-social a { flex: 1; text-align: center; padding: 11px; border-radius: 10px; border: 1px solid var(--vb-line); color: var(--vb-ink) !important; font-size: 14px; font-weight: 600; text-decoration: none !important; }
  body.vb-sheet-lock { overflow: hidden; }
}
/* UiCore sets overflow:hidden on main#main, which kills position:sticky; clip keeps the crop without a scroll container */
body.single-post.vb-on main#main { overflow: clip !important; overflow-clip-margin: 0; }
body.single-post.vb-on #primary .visu-blog-scope .v-img, body.single-post.vb-on #primary .visu-blog-scope .v-img img { box-shadow: none !important; }

/* Related posts on mobile: compact list (thumb + category + title), no excerpt */
@media (max-width: 767px) {
  body.single-post.vb-on .ui-related-posts .uicore-grid-container { display: grid !important; gap: 12px !important; margin: 0 !important; }
  body.single-post.vb-on .ui-related-posts .uicore-grid-item { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
  body.single-post.vb-on .ui-related-posts .uicore-post-wrapper { display: grid !important; grid-template-columns: 104px minmax(0, 1fr); align-items: center; }
  body.single-post.vb-on .ui-related-posts .uicore-blog-img-container { width: 104px !important; height: 100% !important; min-height: 92px; padding: 0 !important; }
  body.single-post.vb-on .ui-related-posts .uicore-cover-img { height: 100% !important; min-height: 92px; padding: 0 !important; }
  body.single-post.vb-on .ui-related-posts .uicore-post-info { padding: 12px 14px !important; }
  body.single-post.vb-on .ui-related-posts .uicore-post-info :is(p, .uicore-post-excerpt, .uicore-entry-meta:last-child) { display: none !important; }
  body.single-post.vb-on .ui-related-posts :is(h4, .uicore-post-title, .uicore-post-title a) { font-size: 15px !important; line-height: 1.35 !important; margin: 0 !important; }
  body.single-post.vb-on .ui-related-posts .uicore-post-category, body.single-post.vb-on .ui-related-posts .uicore-post-category a { font-size: 11px !important; margin-bottom: 4px !important; }
  body.single-post.vb-on .ui-related-posts h3 { font-size: 22px !important; margin-bottom: 16px !important; }
}

/* Server-rendered aside comes first in the wrapper: keep it in the right column */
body.single-post.vb-on .vb-grid > .vb-aside { order: 2; }
/* Real sidebar ad. Slot 2908425478 is a FIXED 300x600 unit: AdSense always serves 300x600 whatever box it gets,
   so the box is never shrunk and nothing around it clips (policy: no hidden/cropped ads). Only the ad is sticky;
   .vb-aside-in fills the aside (= the article row of the grid), so the pin releases before the related posts. */
body.single-post.vb-on .vb-ad ins { display: block; width: 300px; height: 600px; margin: 0 auto; }
body.single-post.vb-on .vb-ad { position: sticky; top: 108px; }
body.single-post.vb-on .vb-ad:has(ins[data-ad-status="unfilled"]) { display: none; }
/* Viewport too short for label + 600 below the header: ad scrolls with the page instead of pinning half off-screen */
@media (max-height: 760px) {
  body.single-post.vb-on .vb-ad { position: static; }
}
body.single-post.vb-on .vb-grid > .vb-aside { padding-bottom: 24px; }
/* Below 1100px the aside never shows (mobile/tablet get the app button + sheet instead) */
@media (max-width: 1099px) {
  body.single-post.vb-on .vb-grid > .vb-aside { display: none !important; }
}
/* Theme gives tables a 1px dark border; inside the rounded wrapper its square corners showed clipped */
body.single-post.vb-on #primary .visu-blog-scope table,
body.single-post.vb-on #primary .visu-blog-scope :is(.v-comparison-table-wrapper, .v-table-responsive) table { border: 0 !important; outline: 0 !important; box-shadow: none !important; }
body.single-post.vb-on #primary .visu-blog-scope :is(.v-comparison-table-wrapper, .v-table-responsive) { overflow: hidden auto !important; }

/* ------------------------------------------------------------------ ad labels + header spacing (07/10) */
/* Since layout v1 the header ad sat right under the hero meta, where the thumb lands to start scrolling:
   from 06/10 header CTR doubled (2.1% -> 4%+) while CPC fell 0.26 -> 0.10 (accidental-click discount).
   Label every Ad Inserter block and give the header air on mobile. Label reserves its line from first paint
   (no shift when the ad fills) but only shows once AdSense fills the slot, so adblock / unfilled never
   leave a lone "Advertisement" behind. */
body.single-post.vb-on .visu-ad-block::before { content: 'Advertisement'; display: block; font-size: 11px; line-height: 16px; font-weight: 500; letter-spacing: .02em; color: var(--vb-muted); text-align: center; margin-bottom: 6px; visibility: hidden; }
html:lang(pt) body.single-post.vb-on .visu-ad-block::before { content: 'Publicidade'; }
html:lang(es) body.single-post.vb-on .visu-ad-block::before { content: 'Publicidad'; }
body.single-post.vb-on .visu-ad-block:has(ins[data-ad-status="filled"])::before { visibility: visible; }
@media (max-width: 1099px) {
  body.single-post.vb-on .entry-content > .code-block:first-child .visu-ad-header { margin-top: 28px !important; margin-bottom: 32px !important; }
}
/* Sidebar: same rule for its label (adblock hid the ins and left only the label) */
body.single-post.vb-on .vb-ad span { visibility: hidden; }
body.single-post.vb-on .vb-ad:has(ins[data-ad-status="filled"]) span { visibility: visible; }

/* 9 food-truck posts (6 BR, 3 ES) were generated with two identical signup blocks inside one .v-cta-actions
   (cta_3 + cta_4, same label). Hide the repeat in CSS instead of editing post content during the Sept 2026
   spam-update freeze. List: seo/reports/ads-20261007/cta-actions-dupes.txt */
body.single-post.vb-on .v-cta-actions > .v-cta-block + .v-cta-block { display: none !important; }

/* home-v9/home.css */
/* VISU home v9 — light, premium body for the visu.network home (preview only).
   Everything is scoped to #visu-home-v9; theme rules (UiCore/Elementor) paint every `a` and
   heading, so link colors are locked with !important where the theme would otherwise win. */

/* Type: the site-wide Inter (theme/Elementor file) so the home shares the browser cache with every other page;
   a separate home-only Inter file meant a second download and a visible font swap when navigating. */

#visu-home-v9 {
  --bg: #f7fafd;
  --surface: #ffffff;
  --ink: #0a1324;
  --ink-2: #33415a;
  --muted: #5d6a7e;
  --line: rgba(10, 19, 36, 0.08);
  --line-2: rgba(10, 19, 36, 0.14);
  --accent: #19b4ef;
  --accent-hover: #0ea3dd;
  --accent-text: #0670a6;
  --accent-ink: #03121d;
  --navy: #06131f;
  --tint: #f2f9fd;
  --radius-lg: 32px;
  --radius-md: 20px;
  --radius-sm: 12px;
  --shadow-sm: 0 1px 2px rgba(10, 19, 36, 0.04), 0 4px 16px rgba(10, 19, 36, 0.04);
  --shadow-md: 0 2px 6px rgba(10, 19, 36, 0.04), 0 24px 56px -24px rgba(10, 19, 36, 0.18);
  --gutter: 32px;
  --section: 128px;
  --ease: cubic-bezier(0.22, 1, 0.36, 1);

  display: block;
  width: 100%;
  overflow: clip;
  background: var(--bg);
  color: var(--ink-2);
  font-family: "VISU Inter", Inter, "Inter Fallback", system-ui, -apple-system, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.6;
  font-feature-settings: "cv11", "ss01", "ss03";
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
#visu-home-v9 *,
#visu-home-v9 *::before,
#visu-home-v9 *::after { box-sizing: border-box; }
#visu-home-v9 :is(h1, h2, h3, p, ul, ol, figure) { margin: 0; padding: 0; }
#visu-home-v9 ul { list-style: none; }
#visu-home-v9 img { display: block; max-width: 100%; height: auto; }
#visu-home-v9 svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; flex: none; }
#visu-home-v9 .v9-symbols { position: absolute; width: 0; height: 0; overflow: hidden; }

/* Clipped, not just moved off-screen: the header backdrop blur would sample it otherwise. */
#visu-home-v9 .v9-skip {
  position: fixed; left: 16px; top: 16px; z-index: 10000; clip-path: inset(50%); opacity: 0;
  padding: 10px 14px; border-radius: 10px; background: var(--ink); color: #fff !important;
}
#visu-home-v9 .v9-skip:focus { clip-path: none; opacity: 1; }

#visu-home-v9 .v9-shell {
  width: 100%;
  max-width: calc(1280px + var(--gutter) * 2);
  margin-inline: auto;
  padding-inline: var(--gutter);
}

/* ---------- Type ---------- */

#visu-home-v9 :is(h1, h2, h3) {
  color: var(--ink);
  font-family: inherit;
  font-weight: 650;
  text-transform: none;
}
#visu-home-v9 h1 {
  font-size: clamp(48px, 6.1vw, 88px);
  line-height: 0.98;
  letter-spacing: -0.042em;
  font-weight: 700;
}
#visu-home-v9 h2 {
  font-size: clamp(34px, 3.75vw, 54px);
  line-height: 1.04;
  letter-spacing: -0.034em;
}
#visu-home-v9 :is(h1, h2) span { display: block; }
#visu-home-v9 h1 span,
#visu-home-v9 .v9-link h2 span {
  background: linear-gradient(92deg, #0fb2f0 0%, #19b4ef 45%, #3cc6f5 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  padding-bottom: 0.06em; /* descenders keep the gradient */
}
#visu-home-v9 h3 {
  font-size: 18px;
  line-height: 1.3;
  letter-spacing: -0.012em;
}
/* Product label: the product's own icon and color (same set as the header dropdown), sentence case. */
#visu-home-v9 .v9-product {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 22px;
  color: var(--ink);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1;
}
#visu-home-v9 .v9-product-icon {
  display: inline-grid;
  place-items: center;
  width: 32px;
  height: 32px;
  border-radius: 9px;
  color: var(--p-color);
  background: var(--p-bg);
  box-shadow: inset 0 0 0 1px var(--p-ring);
}
#visu-home-v9 .v9-product-icon svg { width: 17px; height: 17px; stroke-width: 1.8; }
#visu-home-v9 .v9-product-link { --p-color: #0a8fd0; --p-bg: #e8f6fd; --p-ring: rgba(10, 143, 208, 0.14); }
#visu-home-v9 .v9-product-local { --p-color: #15924a; --p-bg: #e8f6ee; --p-ring: rgba(21, 146, 74, 0.14); }
#visu-home-v9 .v9-product-replay { --p-color: #d9690f; --p-bg: #fdf0e4; --p-ring: rgba(217, 105, 15, 0.16); }
#visu-home-v9 .v9-product-ads { --p-color: #6a4fd6; --p-bg: #f0ecfd; --p-ring: rgba(106, 79, 214, 0.16); }
#visu-home-v9 .v9-panel-dark .v9-product { color: #fff; }
#visu-home-v9 .v9-panel-dark .v9-product-local { --p-color: #4ade80; --p-bg: rgba(74, 222, 128, 0.1); --p-ring: rgba(74, 222, 128, 0.22); }
#visu-home-v9 .v9-lead {
  margin-top: 28px;
  color: var(--ink);
  font-size: 21px;
  font-weight: 550;
  line-height: 1.42;
  letter-spacing: -0.014em;
  max-width: 30ch;
}
#visu-home-v9 .v9-body {
  margin-top: 20px;
  color: var(--ink-2);
  font-size: 17px;
  line-height: 1.65;
  max-width: 46ch;
}
#visu-home-v9 .v9-fine {
  margin-top: 20px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

/* ---------- Actions ---------- */

#visu-home-v9 .v9-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 36px;
}
#visu-home-v9 .v9-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 52px;
  padding: 0 24px;
  border: 1px solid transparent;
  border-radius: 14px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
  line-height: 1;
  text-decoration: none !important;
  white-space: nowrap;
  transition: background-color 0.2s var(--ease), border-color 0.2s var(--ease), box-shadow 0.2s var(--ease), transform 0.2s var(--ease);
}
#visu-home-v9 .v9-btn:active { transform: translateY(1px); }
#visu-home-v9 .v9-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
#visu-home-v9 .v9-btn-primary {
  background: var(--accent);
  box-shadow: 0 1px 0 rgba(255, 255, 255, 0.35) inset, 0 10px 24px -10px rgba(25, 180, 239, 0.7);
}
#visu-home-v9 .v9-btn-primary:is(:link, :visited, :hover, :focus-visible, :active) { color: var(--accent-ink) !important; }
#visu-home-v9 .v9-btn-primary:hover { background: var(--accent-hover); box-shadow: 0 1px 0 rgba(255, 255, 255, 0.3) inset, 0 14px 30px -12px rgba(25, 180, 239, 0.8); }
#visu-home-v9 .v9-btn-ghost {
  background: var(--surface);
  border-color: var(--line-2);
  box-shadow: var(--shadow-sm);
}
#visu-home-v9 .v9-btn-ghost:is(:link, :visited, :hover, :focus-visible, :active) { color: var(--ink) !important; }
#visu-home-v9 .v9-btn-ghost:hover { border-color: rgba(10, 19, 36, 0.28); }
#visu-home-v9 .v9-btn-on-dark {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.24);
  box-shadow: none;
  backdrop-filter: blur(8px);
}
#visu-home-v9 .v9-btn-on-dark:is(:link, :visited, :hover, :focus-visible, :active) { color: #fff !important; }
#visu-home-v9 .v9-btn-on-dark:hover { background: rgba(255, 255, 255, 0.12); border-color: rgba(255, 255, 255, 0.4); }

#visu-home-v9 .v9-text-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 32px;
  font-size: 16px;
  font-weight: 600;
  letter-spacing: -0.01em;
  text-decoration: none !important;
}
#visu-home-v9 .v9-text-link:is(:link, :visited, :hover, :focus-visible, :active) { color: var(--accent-text) !important; }
#visu-home-v9 .v9-text-link svg { width: 18px; height: 18px; stroke-width: 2; transition: transform 0.25s var(--ease); }
#visu-home-v9 .v9-text-link:hover svg { transform: translateX(4px); }

#visu-home-v9 .v9-icon {
  display: inline-grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--ink);
  box-shadow: var(--shadow-sm);
}

/* ---------- Hero ---------- */

#visu-home-v9 .v9-hero {
  position: relative;
  padding: 72px 0 0;
  background: var(--bg);
}
#visu-home-v9 .v9-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 4.7fr) minmax(0, 7.3fr);
  align-items: center;
  gap: 24px;
}
#visu-home-v9 .v9-hero-copy { position: relative; z-index: 2; padding-bottom: 24px; }
#visu-home-v9 .v9-hero-art {
  position: relative;
  /* Art carries its own whitespace: enlarge and let it reach toward the viewport edge. */
  margin: -48px 84px -48px -7%;
}
#visu-home-v9 .v9-hero-art img { width: 100%; }

#visu-home-v9 .v9-pillars {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 2fr);
  align-items: center;
  margin-top: 40px;
  padding: 22px 28px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: rgba(255, 255, 255, 0.72);
  backdrop-filter: blur(12px);
  box-shadow: var(--shadow-md);
}
#visu-home-v9 .v9-pillars > li {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  column-gap: 14px;
  align-items: center;
  padding-inline: 16px;
}
#visu-home-v9 .v9-pillars > li:first-child { padding-left: 0; }
#visu-home-v9 .v9-pillars > li + li { border-left: 1px solid var(--line); }
#visu-home-v9 .v9-pillars .v9-icon { grid-row: span 2; width: 40px; height: 40px; box-shadow: none; background: var(--bg); }
#visu-home-v9 .v9-pillars .v9-icon svg { width: 19px; height: 19px; }
#visu-home-v9 .v9-pillars strong { color: var(--ink); font-size: 15px; font-weight: 600; line-height: 1.3; }
#visu-home-v9 .v9-pillars li > span:not(.v9-icon) { color: var(--muted); font-size: 13px; line-height: 1.35; }
#visu-home-v9 .v9-pillars .v9-trust {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  padding-right: 0;
}
#visu-home-v9 .v9-trust-stat { display: grid; }
#visu-home-v9 .v9-trust-stat strong { font-size: 20px; letter-spacing: -0.02em; }
#visu-home-v9 .v9-trust-stat span { color: var(--muted); font-size: 13px; line-height: 1.35; }
#visu-home-v9 .v9-stores { display: flex; gap: 8px; }
#visu-home-v9 .v9-stores a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  height: 40px;
  padding: 0 13px 0 11px;
  border-radius: 10px;
  background: var(--ink);
  font-size: 13px;
  font-weight: 600;
  letter-spacing: -0.005em;
  white-space: nowrap;
  text-decoration: none !important;
  transition: transform 0.2s var(--ease), background-color 0.2s var(--ease);
}
#visu-home-v9 .v9-stores a:is(:link, :visited, :hover, :focus-visible, :active) { color: #fff !important; }
#visu-home-v9 .v9-stores a:hover { background: #1b2840; transform: translateY(-1px); }
#visu-home-v9 .v9-stores svg { width: 16px; height: 16px; }
#visu-home-v9 .v9-stores a:last-child svg { width: 15px; height: 15px; } /* Play mark is optically larger than the Apple glyph */

/* ---------- Link ---------- */

#visu-home-v9 .v9-link {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 680px;
  margin-top: 56px;
  padding: 96px 0;
}
#visu-home-v9 .v9-link-photo {
  position: absolute;
  inset: 0 0 0 auto;
  width: 62%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 26%), linear-gradient(180deg, transparent 0, #000 12%, #000 88%, transparent 100%);
  -webkit-mask-composite: source-in;
  mask-image: linear-gradient(90deg, transparent 0, #000 26%), linear-gradient(180deg, transparent 0, #000 12%, #000 88%, transparent 100%);
  mask-composite: intersect;
}
#visu-home-v9 .v9-link-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 40% 50%; }
#visu-home-v9 .v9-link-copy { position: relative; z-index: 1; max-width: 500px; }
#visu-home-v9 .v9-features { display: grid; gap: 14px; margin-top: 32px; }
#visu-home-v9 .v9-features li {
  display: flex;
  align-items: center;
  gap: 14px;
  color: var(--ink);
  font-size: 16px;
  font-weight: 500;
}
#visu-home-v9 .v9-features svg {
  box-sizing: content-box;
  width: 18px;
  height: 18px;
  padding: 9px;
  border-radius: 10px;
  background: var(--surface);
  border: 1px solid var(--line);
  color: var(--ink);
}

/* ---------- Panels ---------- */

#visu-home-v9 .v9-panel {
  position: relative;
  border-radius: var(--radius-lg);
  overflow: hidden;
}
#visu-home-v9 .v9-panel-dark {
  background: var(--navy); /* solid: the art carries the same navy, a gradient would show its edges */
  box-shadow: 0 40px 80px -40px rgba(6, 19, 31, 0.55);
}
#visu-home-v9 .v9-panel-dark :is(h2, h3) { color: #fff; }
#visu-home-v9 .v9-panel-dark .v9-body { color: rgba(226, 236, 246, 0.78); }
#visu-home-v9 .v9-panel-tint {
  background: var(--tint);
  border: 1px solid rgba(25, 180, 239, 0.12);
}

/* ---------- Local ---------- */

#visu-home-v9 .v9-local { padding: 24px 0 0; }
#visu-home-v9 .v9-local-grid {
  display: grid;
  grid-template-columns: minmax(0, 7.4fr) minmax(0, 4.6fr);
  align-items: center;
  gap: 16px;
  padding: 24px 72px 24px 0;
}
#visu-home-v9 .v9-local-art { margin: -40px -16px -40px -40px; }
#visu-home-v9 .v9-local-art img { width: 108%; max-width: none; }
#visu-home-v9 .v9-local .v9-btn { margin-top: 36px; }

/* ---------- Replay ---------- */

#visu-home-v9 .v9-replay { padding: var(--section) 0 calc(var(--section) - 24px); }
#visu-home-v9 .v9-replay-grid {
  display: grid;
  grid-template-columns: minmax(0, 4.5fr) minmax(0, 7.5fr);
  align-items: center;
  gap: 32px;
}
#visu-home-v9 .v9-replay-art { margin: -40px calc(var(--gutter) * -1) -40px 0; }

/* ---------- Ads ---------- */

#visu-home-v9 .v9-ads-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  align-items: center;
  column-gap: 24px;
  padding: 56px 40px 40px 72px;
}
#visu-home-v9 .v9-ads-art { margin: -72px -40px -32px 0; }
#visu-home-v9 .v9-ads-art img { width: 122%; max-width: none; margin-left: -8%; }
#visu-home-v9 .v9-ads-grid > .v9-copy { position: relative; z-index: 1; }
#visu-home-v9 .v9-benefits {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin-top: 32px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
}
#visu-home-v9 .v9-benefits li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 24px 28px;
}
#visu-home-v9 .v9-benefits li + li { border-left: 1px solid var(--line); }
#visu-home-v9 .v9-benefits .v9-icon { background: var(--tint); border-color: rgba(25, 180, 239, 0.16); color: var(--accent-text); box-shadow: none; }
#visu-home-v9 .v9-benefits h3 { font-size: 16px; }
#visu-home-v9 .v9-benefits p { margin-top: 2px; color: var(--muted); font-size: 14px; line-height: 1.45; }
#visu-home-v9 .v9-ads-note { grid-column: 1 / -1; margin-top: 16px; padding-left: 4px; }

/* ---------- Audiences ---------- */

#visu-home-v9 .v9-audiences { padding: var(--section) 0 0; }
#visu-home-v9 .v9-section-head {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 5fr);
  align-items: end;
  gap: 48px;
}
#visu-home-v9 .v9-section-head .v9-body { margin: 0; max-width: 44ch; justify-self: end; }
#visu-home-v9 .v9-audience-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 28px;
  margin-top: 56px;
}
#visu-home-v9 .v9-audience { display: block; text-decoration: none !important; }
#visu-home-v9 .v9-audience:is(:link, :visited, :hover, :focus-visible, :active) { color: inherit !important; }
#visu-home-v9 .v9-audience:focus-visible { outline: 2px solid var(--accent); outline-offset: 6px; border-radius: var(--radius-md); }
#visu-home-v9 .v9-audience-photo {
  display: block;
  aspect-ratio: 4 / 3;
  border-radius: var(--radius-md);
  overflow: hidden;
  background: #e8eef4;
  box-shadow: var(--shadow-md);
}
#visu-home-v9 .v9-audience-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
#visu-home-v9 .v9-audience:hover .v9-audience-photo img { transform: scale(1.04); }
#visu-home-v9 .v9-audience h3 {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 24px;
  font-size: 20px;
}
#visu-home-v9 .v9-audience h3 svg { width: 18px; height: 18px; stroke-width: 2; color: var(--accent-text); transition: transform 0.25s var(--ease); }
#visu-home-v9 .v9-audience:hover h3 svg { transform: translateX(4px); }
#visu-home-v9 .v9-audience p { margin-top: 8px; color: var(--ink-2); font-size: 16px; line-height: 1.55; max-width: 36ch; }
#visu-home-v9 .v9-demo-note { margin-top: 40px; }

/* ---------- FAQ ---------- */

#visu-home-v9 .v9-faq { padding: var(--section) 0; }
#visu-home-v9 .v9-faq-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: 48px;
  align-items: start;
}
#visu-home-v9 .v9-faq-list { border-top: 1px solid var(--line-2); }
#visu-home-v9 .v9-faq details { border-bottom: 1px solid var(--line-2); }
#visu-home-v9 .v9-faq summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  padding: 24px 0;
  color: var(--ink);
  font-size: 18px;
  font-weight: 600;
  letter-spacing: -0.012em;
  line-height: 1.35;
  list-style: none;
  cursor: pointer;
}
#visu-home-v9 .v9-faq summary::-webkit-details-marker { display: none; }
#visu-home-v9 .v9-faq summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 4px; border-radius: 6px; }
#visu-home-v9 .v9-faq summary svg {
  box-sizing: content-box;
  width: 16px;
  height: 16px;
  padding: 8px;
  border-radius: 999px;
  border: 1px solid var(--line-2);
  color: var(--ink);
  stroke-width: 2;
  transition: transform 0.3s var(--ease), background-color 0.2s, color 0.2s, border-color 0.2s;
}
#visu-home-v9 .v9-faq summary:hover svg { border-color: var(--ink); }
#visu-home-v9 .v9-faq details[open] summary svg { transform: rotate(45deg); background: var(--ink); border-color: var(--ink); color: #fff; }
#visu-home-v9 .v9-faq details p { padding: 0 64px 28px 0; color: var(--ink-2); font-size: 16px; line-height: 1.65; }

/* ---------- Closing ---------- */

#visu-home-v9 .v9-closing { padding: 0 0 96px; }
#visu-home-v9 .v9-closing-card {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 460px;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: #0a141f;
  box-shadow: 0 40px 80px -40px rgba(6, 19, 31, 0.6);
  isolation: isolate;
}
#visu-home-v9 .v9-closing-photo {
  position: absolute;
  inset: 0 0 0 auto;
  z-index: -1;
  width: 78%;
  height: 100%;
  object-fit: cover;
  object-position: 100% 50%;
  -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 30%);
  mask-image: linear-gradient(90deg, transparent 0, #000 30%);
}
#visu-home-v9 .v9-closing-copy { max-width: 520px; padding: 64px 72px; }
#visu-home-v9 .v9-closing h2 { color: #fff; }
#visu-home-v9 .v9-closing .v9-body { color: rgba(226, 236, 246, 0.8); }

/* ---------- Motion ---------- */

html.v9-js #visu-home-v9 .v9-reveal {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.9s var(--ease), transform 0.9s var(--ease);
  transition-delay: var(--v9-delay, 0ms);
}
html.v9-js #visu-home-v9 .v9-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html.v9-js #visu-home-v9 .v9-reveal { opacity: 1; transform: none; transition: none; }
  #visu-home-v9 * { transition-duration: 0.01ms !important; }
}


/* ---------- Responsive ---------- */

@media (max-width: 1180px) {
  #visu-home-v9 { --section: 104px; }
  #visu-home-v9 .v9-pillars { grid-template-columns: repeat(4, minmax(0, 1fr)); row-gap: 20px; }
  #visu-home-v9 .v9-pillars .v9-trust { grid-column: 1 / -1; border-left: 0 !important; border-top: 1px solid var(--line); padding: 20px 0 0; }
  #visu-home-v9 .v9-local-grid { padding: 32px 48px 32px 16px; }
  #visu-home-v9 .v9-ads-grid { padding: 48px 32px 32px 48px; }
  #visu-home-v9 .v9-benefits li { padding: 20px; }
}

@media (max-width: 900px) {
  #visu-home-v9 { --gutter: 20px; --section: 88px; --radius-lg: 24px; }
  #visu-home-v9 .v9-hero { padding-top: 40px; }
  #visu-home-v9 .v9-product { margin-bottom: 18px; }
  #visu-home-v9 .v9-hero-grid,
  #visu-home-v9 .v9-local-grid,
  #visu-home-v9 .v9-replay-grid,
  #visu-home-v9 .v9-ads-grid,
  #visu-home-v9 .v9-section-head,
  #visu-home-v9 .v9-faq-grid { grid-template-columns: minmax(0, 1fr); }
  #visu-home-v9 .v9-hero-art { margin: 0 calc(var(--gutter) * -1 - 4vw); }
  #visu-home-v9 .v9-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); padding: 20px; margin-top: 16px; }
  #visu-home-v9 .v9-pillars > li { padding: 0; border-left: 0 !important; }
  #visu-home-v9 .v9-pillars .v9-trust { grid-column: 1 / -1; }

  #visu-home-v9 .v9-link { flex-direction: column-reverse; align-items: stretch; min-height: 0; margin-top: 40px; padding: 0; }
  #visu-home-v9 .v9-link-photo {
    position: relative;
    inset: auto;
    width: 100%;
    aspect-ratio: 4 / 3;
    margin-top: 32px;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 18%, #000 88%, transparent 100%);
    mask-image: linear-gradient(180deg, transparent 0, #000 18%, #000 88%, transparent 100%);
  }
  #visu-home-v9 .v9-link-photo img { object-position: 62% 50%; }

  #visu-home-v9 .v9-local { padding-top: 16px; }
  #visu-home-v9 .v9-local-grid { padding: 8px 24px 36px; gap: 8px; }
  #visu-home-v9 .v9-local-art { margin: 0 -24px; }
  #visu-home-v9 .v9-local-art img { width: 100%; }

  #visu-home-v9 .v9-replay-grid { gap: 24px; }
  #visu-home-v9 .v9-replay-art { margin: 0 calc(var(--gutter) * -1); }

  #visu-home-v9 .v9-ads-grid { padding: 36px 24px 24px; }
  #visu-home-v9 .v9-ads-art { margin: 8px -24px 0; overflow: hidden; }
  #visu-home-v9 .v9-ads-art img { width: 150%; margin-left: -25%; }
  #visu-home-v9 .v9-benefits { grid-template-columns: minmax(0, 1fr); margin-top: 16px; }
  #visu-home-v9 .v9-benefits li + li { border-left: 0; border-top: 1px solid var(--line); }

  #visu-home-v9 .v9-section-head { gap: 16px; }
  #visu-home-v9 .v9-section-head .v9-body { justify-self: start; }
  #visu-home-v9 .v9-audience-list { grid-template-columns: minmax(0, 1fr); gap: 40px; margin-top: 40px; }
  #visu-home-v9 .v9-faq-grid { gap: 24px; }
  #visu-home-v9 .v9-faq details p { padding-right: 0; }

  #visu-home-v9 .v9-closing { padding-bottom: 64px; }
  #visu-home-v9 .v9-closing-card { flex-direction: column; align-items: stretch; min-height: 0; }
  #visu-home-v9 .v9-closing-photo {
    position: relative;
    width: 100%;
    height: auto;
    aspect-ratio: 4 / 3;
    order: -1;
    object-position: 82% 50%;
    -webkit-mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
    mask-image: linear-gradient(180deg, #000 60%, transparent 100%);
  }
  #visu-home-v9 .v9-closing-copy { margin-top: -48px; padding: 0 24px 32px; }
}

@media (max-width: 520px) {
  #visu-home-v9 .v9-actions { flex-direction: column; }
  #visu-home-v9 .v9-btn { width: 100%; }
  #visu-home-v9 .v9-lead { font-size: 19px; }
  #visu-home-v9 .v9-pillars { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); column-gap: 12px; }
  #visu-home-v9 .v9-pillars > li { column-gap: 10px; }
  #visu-home-v9 .v9-pillars .v9-icon { width: 36px; height: 36px; }
}

@media (max-width: 1180px) {
  #visu-home-v9 .v9-ads-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); }
  #visu-home-v9 .v9-benefits { grid-column: 1 / -1; grid-template-columns: repeat(3, minmax(0, 1fr)); margin-top: 24px; }
  #visu-home-v9 .v9-benefits li + li { border-top: 0; border-left: 1px solid var(--line); }
  #visu-home-v9 .v9-ads-art img { width: 125%; margin-left: -12%; }
  #visu-home-v9 .v9-note-link { left: 44%; top: 12%; }
}
@media (max-width: 900px) {
  #visu-home-v9 .v9-note { font-size: 20px; }
  #visu-home-v9 .v9-note-hero { display: none; } /* no free space above the art on phones */
  #visu-home-v9 .v9-orbit { display: none; }
  #visu-home-v9 .v9-note-link { display: none; }
  #visu-home-v9 .v9-link { padding: 64px 0 0; margin-top: 48px; }
  #visu-home-v9 .v9-link-photo { width: 100%; -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 22%); mask-image: linear-gradient(180deg, transparent 0, #000 22%); }
  #visu-home-v9 .v9-features { grid-template-columns: minmax(0, 1fr); }
  #visu-home-v9 .v9-local { padding-top: 56px; }
  #visu-home-v9 .v9-replay { margin-top: 64px; }
  #visu-home-v9 .v9-ads { padding-top: 64px; }
  #visu-home-v9 .v9-ads-grid { grid-template-columns: minmax(0, 1fr); padding: 36px 24px 24px; }
  #visu-home-v9 .v9-ads-art { margin: 8px -24px 0; }
  #visu-home-v9 .v9-ads-art img { width: 150%; margin-left: -25%; }
  #visu-home-v9 .v9-benefits { grid-template-columns: minmax(0, 1fr); }
  #visu-home-v9 .v9-benefits li + li { border-left: 0; border-top: 1px solid var(--line); }
}

@media (max-width: 1279px) {
  #visu-home-v9 .v9-hero-art { margin: -32px calc(var(--gutter) * -1) -32px -8%; }
  #visu-home-v9 .v9-note-hero { display: none; }
}

/* Trust bar fit: tighter cells so labels stay on one line at 1440; on phones the stat sits above the store buttons. */
#visu-home-v9 .v9-pillars > li { padding-inline: 12px; column-gap: 12px; }
#visu-home-v9 .v9-pillars > li:first-child { padding-left: 0; }
#visu-home-v9 .v9-pillars .v9-trust { padding-left: 20px; }
@media (max-width: 900px) {
  #visu-home-v9 .v9-pillars > li { padding-inline: 0; }
  #visu-home-v9 .v9-pillars .v9-trust { flex-direction: column; align-items: stretch; gap: 14px; padding-left: 0; }
  #visu-home-v9 .v9-stores { display: grid; grid-template-columns: 1fr 1fr; }
  #visu-home-v9 .v9-stores a { height: 44px; }
}

/* Local panel breathing room: art inset from the panel edge, clear gap before the copy. */
@media (min-width: 901px) {
  #visu-home-v9 .v9-local-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 56px; padding: 40px 72px 40px 40px; }
  #visu-home-v9 .v9-local-art { margin: -16px 0; }
  #visu-home-v9 .v9-local-art img { width: 100%; }
}
@media (min-width: 901px) and (max-width: 1180px) {
  #visu-home-v9 .v9-local-grid { gap: 36px; padding: 32px 48px 32px 32px; }
}

/* Store buttons back to compact squares (labels pushed the trust copy to 3 lines); names stay for screen readers. */
#visu-home-v9 .v9-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
#visu-home-v9 .v9-pillars { grid-template-columns: repeat(4, minmax(0, 1fr)) minmax(0, 1.5fr); }
#visu-home-v9 .v9-stores a { width: 42px; height: 42px; padding: 0; gap: 0; }
#visu-home-v9 .v9-stores a svg { width: 18px; height: 18px; }
#visu-home-v9 .v9-stores a:last-child svg { width: 16px; height: 16px; margin-left: 2px; } /* optical center of the Play mark */
@media (max-width: 1180px) {
  #visu-home-v9 .v9-pillars { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
  #visu-home-v9 .v9-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  #visu-home-v9 .v9-pillars .v9-trust { flex-direction: row; align-items: center; }
  #visu-home-v9 .v9-stores { display: flex; }
  #visu-home-v9 .v9-stores a { height: 42px; }
}

/* Phones: small breathing gap between the hero art and the pillars card (they touched). */
@media (max-width: 900px) {
  #visu-home-v9 .v9-pillars { margin-top: 20px; }
}
@media (max-width: 900px) {
  #visu-home-v9 .v9-hero-art { margin: 12px 0 0 !important; } /* same width as the pillars card below, so both share one axis */
}

/* Phones, final word: the 1180px tablet rules above were appended later and leaked into phones (Ads went 3 columns). */
@media (max-width: 900px) {
  #visu-home-v9 .v9-ads-grid { grid-template-columns: minmax(0, 1fr) !important; padding: 36px 24px 24px !important; }
  #visu-home-v9 .v9-ads-art { margin: 8px -24px 0 !important; overflow: hidden; }
  #visu-home-v9 .v9-ads-art img { width: 150% !important; margin-left: -25% !important; }
  #visu-home-v9 .v9-benefits { grid-column: auto !important; grid-template-columns: minmax(0, 1fr) !important; margin-top: 16px !important; }
  #visu-home-v9 .v9-benefits li + li { border-left: 0 !important; border-top: 1px solid var(--line) !important; }
  #visu-home-v9 .v9-local-grid { grid-template-columns: minmax(0, 1fr) !important; }
  #visu-home-v9 .v9-pillars { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 900px) {
  #visu-home-v9 .v9-link-photo {
    position: relative !important; inset: auto !important; width: 100% !important; aspect-ratio: 4 / 3; margin-top: 32px;
    -webkit-mask-image: linear-gradient(180deg, transparent 0, #000 22%) !important;
    mask-image: linear-gradient(180deg, transparent 0, #000 22%) !important;
  }
  #visu-home-v9 .v9-link-photo img { width: 100% !important; height: 100% !important; object-fit: cover; object-position: 62% 50%; }
}
/* Phones: text links stay left on the copy's axis, but get a real tap target. */
@media (max-width: 900px) {
  #visu-home-v9 .v9-text-link { min-height: 44px; margin-top: 20px; font-size: 16.5px; }
}

/* home-v9/header-light.css */
/* Home-only page background under the translucent light header (chrome itself lives in site-v5/pages/06-light-chrome.css). */
body:has(#visu-home-v9) { background: #f7fafd !important; }
html:has(#visu-home-v9) { background: #f7fafd; }
body:has(#visu-home-v9) :is(#primary, .content-area, .site-main) { background: #f7fafd !important; }
