/* 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: #ffffff !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: #fff !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: #fff !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: #fff !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: #fff !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: #fff;
    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,
  body .elementor-1494 .vhdr-mega-menu > li.vhdr-col-1.vhdr-mega-item > a { padding-left: 0 !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: #ffffff !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: #ffffff;
  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: #f7fafd;
  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: #ffffff; 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: #ffffff; }


/* 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: #fff !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; }
}

/* 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; }

/* 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;
}

/* 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/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/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: #fff !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/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: 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: 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: 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: 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: 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: 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: 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: 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:lang(en) body.page-id-19936 #visu-uses h1 span,
html:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #visu-uses .sol-hero::before,
html:lang(en) body.page-id-19936 #visu-uses .sol-hero::after {
  content: none;
  display: none;
}
html:lang(en) body.page-id-19936 #visu-uses .sol-cta-box {
  background: #0d1216;
  border: 1px solid rgba(255, 255, 255, 0.09);
  border-radius: 14px;
}
html:lang(en) body.page-id-19936 #visu-uses .sol-case-card { box-shadow: none; }

/* Barra de gradiente/ciano no topo do bloco de servico -> borda neutra. */
html:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #visu-uses .sol-why-num { display: none; }

/* Botoes na linguagem da home. "View All": fonte 15px e alvo 44px. */
html:lang(en) body.page-id-19936 #visu-uses .sol-btn { border-radius: 10px; }
html:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #visu-uses .sol-btn-ghost { border-color: rgba(255, 255, 255, 0.2) !important; }
html:lang(en) body.page-id-19936 #visu-uses .sol-btn-ghost:hover {
  border-color: rgba(255, 255, 255, 0.4) !important;
  background: #192932 !important;
  transform: none !important;
}
html:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #visu-uses :is(h1, h2, h3) { color: var(--vl-ink); }
html:lang(en) body.page-id-19936 #visu-uses .sol-section { background: none; }
html:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #visu-uses .sol-service-header p { color: var(--vl-ink); }
html:lang(en) body.page-id-19936 #visu-uses .sol-case-card,
html:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #visu-uses .sol-case-icon { border-color: var(--vl-line); }
html:lang(en) body.page-id-19936 #visu-uses .sol-why-card { box-shadow: var(--vl-shadow-sm); }
html:lang(en) body.page-id-19936 #visu-uses .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-19936 #visu-uses .sol-btn-primary:hover { background: #3fc2f3 !important; border-color: #3fc2f3 !important; }
html:lang(en) body.page-id-19936 #visu-uses .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-19936 #visu-uses .sol-btn-ghost:hover {
  background: var(--vl-tint) !important;
  border-color: rgba(10, 19, 36, 0.24) !important;
}
html:lang(en) body.page-id-19936 #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:lang(en) body.page-id-19936 #visu-uses .sol-cta-box :is(h2, h3) { color: #fff !important; }
html:lang(en) body.page-id-19936 #visu-uses .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-19936 #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:lang(en) body.page-id-19936 #visu-uses .sol-btn { -webkit-text-fill-color: currentColor !important; }
html:lang(en) body.page-id-19936 #visu-uses section.sol-section { background: 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; }
