.elementor-kit-8{--e-global-color-primary:#002FC6;--e-global-color-secondary:#0B1734;--e-global-color-text:#141B2E;--e-global-color-accent:#0D7C44;--e-global-color-veloz-azul-hover:#0A38D6;--e-global-color-veloz-azul-suave:#EEF2FF;--e-global-color-veloz-azul-linha:#DDE5FF;--e-global-color-veloz-navy-profundo:#071129;--e-global-color-veloz-papel:#F4F6FB;--e-global-color-veloz-linha:#E3E7F1;--e-global-color-veloz-verde-hover:#0F8A4C;--e-global-color-veloz-dourado:#F4B400;--e-global-typography-primary-font-family:"Montserrat";--e-global-typography-primary-font-weight:900;--e-global-typography-primary-line-height:1.1em;--e-global-typography-primary-letter-spacing:-0.015em;--e-global-typography-secondary-font-family:"Montserrat";--e-global-typography-secondary-font-weight:800;--e-global-typography-secondary-line-height:1.25em;--e-global-typography-secondary-letter-spacing:-0.015em;--e-global-typography-text-font-family:"Lato";--e-global-typography-text-font-weight:400;--e-global-typography-text-line-height:1.65em;--e-global-typography-accent-font-family:"Montserrat";--e-global-typography-accent-font-weight:600;--e-global-typography-accent-line-height:1.2em;color:#141B2E;font-family:"Lato", Sans-serif;font-size:16px;font-weight:400;line-height:1.5em;}.elementor-kit-8 button,.elementor-kit-8 input[type="button"],.elementor-kit-8 input[type="submit"],.elementor-kit-8 .elementor-button{background-color:#002FC6;font-family:"Montserrat", Sans-serif;font-size:15px;font-weight:800;font-style:italic;color:#FFFFFF;border-radius:2px 2px 2px 2px;padding:15px 28px 15px 28px;}.elementor-kit-8 button:hover,.elementor-kit-8 button:focus,.elementor-kit-8 input[type="button"]:hover,.elementor-kit-8 input[type="button"]:focus,.elementor-kit-8 input[type="submit"]:hover,.elementor-kit-8 input[type="submit"]:focus,.elementor-kit-8 .elementor-button:hover,.elementor-kit-8 .elementor-button:focus{background-color:#0A38D6;}.elementor-kit-8 e-page-transition{background-color:#FFBC7D;}.elementor-kit-8 a{color:#002FC6;}.elementor-kit-8 a:hover{color:#0A38D6;}.elementor-kit-8 h1{font-family:"Montserrat", Sans-serif;font-weight:900;}.elementor-kit-8 h2{font-family:"Montserrat", Sans-serif;font-weight:900;}.elementor-kit-8 h3{font-family:"Montserrat", Sans-serif;font-weight:800;}.elementor-kit-8 h4{font-family:"Montserrat", Sans-serif;font-weight:800;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1366px;}.e-con{--container-max-width:1366px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-kit-8{font-size:18px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-kit-8{font-size:18px;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ═══ VELOZ — CSS portado da produção (index.html <style> + design-system) ═══ */

/* ── Tipografia base ── */
/* A pilha e o antialiasing são os do site estático aprovado (.veloz-v2):
 * 'Lato','Inter',system-ui + -webkit-font-smoothing:antialiased. Sem o
 * antialiased o mesmo Lato/Montserrat renderiza mais pesado que o site
 * antigo em telas de baixa densidade. */
body { font-family:'Lato','Inter',system-ui,sans-serif; color:#141B2E; background:#fff; -webkit-font-smoothing:antialiased; }
@media (max-width:1023px){ body { padding-bottom:74px; } }
h1,h2,h3,h4 { font-family:'Montserrat',system-ui,sans-serif; letter-spacing:-.015em; }

/* ── QUEBRA DE LINHA É DESIGN (regra permanente do CLAUDE.md) ──
 * O navegador quebra título pela largura, não pelo sentido — e sobra palavra
 * órfã na última linha, artigo solto no fim e uma linha curta depois de uma
 * longa. O valor balance distribui as linhas de um titulo uniformemente; pretty
 * evita a última linha de uma palavra em texto corrido. É a correção na
 * origem: vale para o site inteiro, inclusive páginas futuras, sem CSS por
 * pagina. Onde ha <br> intencional, o balanceamento respeita cada trecho. */
h1,h2,h3,h4,h5,h6,
.elementor-heading-title,
.vcard-tit,.pcard h3,.step h3,.tcard h3,.rel-tit,.sec-head h2 { text-wrap:balance; }
p,li,.hero-lead,.pcard-desc,.tcard-desc,.rel-txt { text-wrap:pretty; }

/* Tokens mantidos também fora do wrapper legado. As regras de compatibilidade
 * ao fim deste arquivo preservam os estados de interação das páginas já
 * migradas sem interferir na direção de arte própria do catálogo Woo. */
:root {
  --vz-navy-deep:#071129; --vz-navy:#0B1734; --vz-navy-2:#12204A;
  --vz-royal:#002FC6; --vz-royal-hover:#0A38D6; --vz-royal-soft:#EEF2FF;
  --vz-royal-line:#DDE5FF; --vz-ink:#141B2E; --vz-paper:#F4F6FB;
  /* Verde do WhatsApp = o canônico de conhecimento/marca/identidade.md
   * (#0F8A4C / hover #13A559), que é o mesmo do site antigo. O #0D7C44 de uma
   * rodada de hardening era mais escuro que a marca e que o original. */
  --vz-line:#E3E7F1; --vz-green:#0F8A4C; --vz-green-hover:#13A559;
  --vz-shadow-soft:0 18px 42px -26px rgba(7,17,41,.28);
  --vz-shadow-card:0 22px 50px -28px rgba(7,17,41,.34);
  --vz-container:1366px;
}

/* ── Display (eco do itálico da logo) ── */
.f-display, .f-display .elementor-heading-title { font-family:'Montserrat',sans-serif !important; font-weight:900 !important; font-style:italic; text-transform:uppercase; letter-spacing:-.015em; line-height:.98; }
.f-label { font-family:'Montserrat',sans-serif; font-weight:800; font-style:italic; text-transform:uppercase; letter-spacing:.14em; font-size:11px; line-height:1.5; }

/* escala dos títulos de seção (utilities tailwind usadas na home) */
.fz-hero .elementor-heading-title, .fz-hero { font-size:30px; line-height:.98 !important; }
.fz-sec .elementor-heading-title, .fz-sec { font-size:30px; line-height:36px; }
.fz-cta .elementor-heading-title, .fz-cta { font-size:36px; }
.fz-sm .elementor-heading-title, .fz-sm { font-size:24px; line-height:30px; }
@media (min-width:640px){
  .fz-hero .elementor-heading-title, .fz-hero { font-size:44px; line-height:.98 !important; }
  .fz-sec .elementor-heading-title, .fz-sec { font-size:36px; line-height:40px; }
  .fz-cta .elementor-heading-title, .fz-cta { font-size:48px; }
  .fz-sm .elementor-heading-title, .fz-sm { font-size:30px; line-height:36px; }
}
@media (min-width:1024px){
  .fz-hero .elementor-heading-title, .fz-hero { font-size:52px; line-height:.98 !important; }
  .fz-sec .elementor-heading-title, .fz-sec { font-size:44px; line-height:40px; }
  .fz-cta .elementor-heading-title, .fz-cta { font-size:56px; line-height:1; }
}
.fz-sm .elementor-heading-title, .fz-sm { line-height:36px; }

/* ── Kicker numerado ── */
.kicker { display:flex; align-items:center; gap:10px; line-height:1; }
.kicker .kicker-num { font-family:'Montserrat'; font-weight:900; font-style:italic; font-size:12px; color:#002FC6; letter-spacing:.06em; line-height:1.5; }
.kicker.on-dark .kicker-num { color:#5B7CFF; }

/* ── Traços de velocidade ── */
.vlz-dash { display:inline-flex; flex-direction:column; gap:4px; }
.vlz-dash i { display:block; height:4px; border-radius:2px; background:#002FC6; transform:skewX(-28deg); }
.vlz-dash i:nth-child(1){ width:30px; margin-left:10px; }
.vlz-dash i:nth-child(2){ width:44px; margin-left:4px; }
.vlz-dash i:nth-child(3){ width:22px; }
.vlz-dash.on-dark i { background:#5B7CFF; }
.vlz-dash.on-royal i { background:#fff; }
.vlz-dash.sm { gap:3px; }
.vlz-dash.sm i { height:3px; }
.vlz-dash.sm i:nth-child(1){ width:20px; margin-left:7px; }
.vlz-dash.sm i:nth-child(2){ width:30px; margin-left:3px; }
.vlz-dash.sm i:nth-child(3){ width:14px; }

/* ── Marca-texto atrás de palavra ── */
.hl { position:relative; display:inline-block; isolation:isolate; }
/* isolation:isolate e o que faz o destaque VOLTAR A APARECER.
 * O realce e um ::before com z-index:-1. No site antigo o H1 ficava dentro de
 * um wrapper Tailwind relative z-10, que criava contexto de empilhamento e
 * segurava o pseudo-elemento ali dentro: ele pintava acima do fundo navy da
 * secao e abaixo do texto. Na arvore do Elementor nenhum ancestral cria esse
 * contexto (todos ficam em position:relative com z-index:auto), entao o
 * z-index:-1 caia para o contexto RAIZ e era pintado ATRAS do fundo do hero —
 * invisivel. A propriedade isolation devolve o contexto no proprio .hl, sem depender de
 * wrapper. Causa: CSS/empilhamento perdido na migracao; nada a ver com
 * Elementor Pro. Provado no browser em 2026-08-29. */
.hl::before { content:''; position:absolute; inset:58% -6px 2% -6px; background:#DDE5FF; transform:skewX(-14deg); z-index:-1; border-radius:3px; }
.hl.on-navy::before { inset:14% -10px 4% -10px; background:#002FC6; border-radius:6px; }

/* ── Botões ──
 * Geometria do SITE ANTIGO (fonte visual de verdade, §2 da missão de correção
 * visual 2026-08-29): raio 12px, sombra colorida sob o botão, Montserrat 800
 * itálico. A rodada de hardening tinha achatado tudo para 2px sem sombra e
 * acrescentado uma lateral inclinada (.vz-skew) que o site antigo nunca teve —
 * era a "linguagem de botão quadrado" reprovada. */
.b-base { font-family:'Montserrat',sans-serif; font-weight:800; font-style:italic; display:inline-flex; align-items:center; justify-content:center; gap:10px; border-radius:12px; padding:15px 28px; font-size:15px; line-height:1.5; transition:transform .15s ease, background .2s ease, box-shadow .2s ease, color .2s ease; text-decoration:none; position:relative; overflow:hidden; cursor:pointer; }
.b-base:active { transform:translateY(1px); }
.b-base svg { transition:transform .2s ease; }
.b-base:hover svg { transform:translateX(4px); }
/* A sombra colorida é metade do botão antigo — sem ela o CTA fica chapado.
 * '.elementor a { box-shadow:none }' (0-1-1) do frontend do Elementor vencia
 * '.b-wa' (0-1-0) por especificidade; o site antigo não tinha esse reset.
 * O !important é compensação de reset de plugin, não decisão de estilo. */
.b-wa { background:var(--vz-green); color:#fff !important; box-shadow:0 14px 34px -12px rgba(15,138,76,.5) !important; }
.b-wa:hover { background:var(--vz-green-hover); transform:translateY(-2px); color:#fff; }
.b-royal { background:#002FC6; color:#fff !important; box-shadow:0 14px 40px -14px rgba(0,47,198,.5) !important; }
.b-royal:hover { background:#0A38D6; transform:translateY(-2px); }
/* No celular o antigo suaviza o raio (design-system, @media 640): 11px. */
@media (max-width:640px){ .b-base { border-radius:11px; } }
.b-ghost-w { border:2px solid rgba(255,255,255,.85); color:#fff !important; }
.b-ghost-w:hover { background:#fff; color:#0B1734 !important; }
.b-ghost-d { border:2px solid #0B1734; color:#0B1734 !important; }
.b-ghost-d:hover { background:#0B1734; color:#fff !important; }
.b-sm { padding:12px 24px; font-size:14px; }
/* O botão do header nunca quebra em duas linhas: a produção consegue isso com
 * utilities com !important (py-2.5 px-5 text-sm); aqui a classe faz o mesmo.
 * nowrap + flex-shrink:0 no ícone: sem isso o SVG era espremido a 0 px de
 * largura e o rótulo quebrava — foi o que aconteceu com "Solicitar orçamento". */
.hdr-cta { padding:10px 20px !important; font-size:14px !important; line-height:20px !important; white-space:nowrap; }
.b-base { white-space:nowrap; }
.b-base svg, .b-base img, .b-base .lucide { flex:0 0 auto; }

/* Ícone do WhatsApp: o SVG é fill=currentColor, então herda a cor do botão.
 * No botão flutuante não havia color — herdava o azul da marca do body e o
 * ícone saía azul dentro do círculo verde. Branco, como na produção. */
.vz-float-wpp, .vz-float-wpp svg { color:#fff; fill:#fff; }
.vz-float-wpp:hover { background:var(--vz-green-hover) !important; }
/* Mobile: só a barra inferior leva ao WhatsApp — sem botão flutuante duplicado. */
@media (max-width:1023px){ .vz-float-wpp { display:none !important; } }
.b-wa svg, .btn-wa svg { fill:#fff; }

/* Cabeçalho de seção centralizado (produção: text-center max-w-2xl mx-auto).
 * .maxw-672 só limita a largura; sem margem automática o bloco encostava na
 * esquerda do wrap — foi o desalinhamento de "Do primeiro oi à equipe vestida". */
.e-con.head-centro { max-width:672px; margin-inline:auto; }
.hdr-cta { padding:10px 20px; font-size:14px; }
.b-base img { width:20px; height:20px; object-fit:contain; }
.hdr-cta img { width:16px; height:16px; }

/* ── Container ── */
.wrap { max-width:var(--vz-container,1366px); margin-inline:auto; padding-inline:24px; }
/* max_width de container não gera CSS pela API — a classe resolve. */
/* wrap da produção: caixa de 1200 COM padding-inline de 24 → conteúdo útil de
 * 1152. O pai já dá 24 de padding, então o miolo limita direto em 1152. */
/* Container global padronizado (pendência 3): conteúdo interno a 1366px em
 * todo o site; fundo de seção continua full-width. O nome da classe fica pelo
 * histórico do fonte. */
.e-con.wrap-1200 { width:100%; max-width:var(--vz-container,1366px); }
.e-con.maxw-448 { max-width:448px; } .e-con.maxw-512 { max-width:512px; }
.e-con.maxw-576 { max-width:576px; } .e-con.maxw-672 { max-width:672px; }
.e-con.maxw-800 { max-width:800px; }

/* Item de flex e de grid nasce com min-width:auto e se recusa a encolher abaixo
 * do próprio conteúdo. Em /contato a coluna do grid virava 427px dentro de um
 * container de 342 e vazava 63px no celular. Zerar o mínimo é o remédio
 * canônico: o texto quebra em vez de empurrar a página. Não afeta o carrossel,
 * que tem width:max-content explícito. */
.elementor .grid > *, .elementor .flex > * { min-width: 0; }
.txt-white { color:#fff; }

/* O heading do Elementor pinta com a Global Color primária; aqui a cor vem do
 * contexto (seção clara/escura), como na produção. */
.elementor-widget-heading .elementor-heading-title { color:inherit; }

/* ── Topbar ── */
.topbar { height:4px; background:linear-gradient(90deg,#002FC6 0%,#2B5CFF 45%,#002FC6 100%); }

/* ── Nav (widget nav-menu do Elementor com a cara do nav-link) ── */
/* Seta do menu desktop: 14x14 e gap 5px, como o .vn-ch/.vn-btn do antigo
 * (media na producao acusava 9x9 — miudo demais ao lado do rotulo). */
.vz-header .elementor-nav-menu a.elementor-item .sub-arrow { margin-left:5px; }
.vz-header .elementor-nav-menu a.elementor-item .sub-arrow i,
.vz-header .elementor-nav-menu a.elementor-item .sub-arrow svg { width:14px; height:14px; font-size:14px; }
.vz-nav .elementor-nav-menu a.elementor-item { font-family:'Montserrat',sans-serif; font-weight:700; font-size:13.5px; letter-spacing:.01em; color:rgba(11,23,52,.72); padding:8px 12px; border-radius:9px; transition:color .15s, background .15s; white-space:nowrap; }
.vz-nav .elementor-nav-menu a.elementor-item:hover, .vz-nav .elementor-nav-menu a.elementor-item.elementor-item-active { color:#002FC6; background:#EEF2FF; }
.vz-nav .elementor-nav-menu--dropdown { border:1px solid #E3E7F1; border-radius:16px; box-shadow:0 24px 60px -18px rgba(7,17,41,.28), 0 4px 16px -6px rgba(7,17,41,.12); padding:8px; overflow:hidden; }
.vz-nav .elementor-nav-menu--dropdown a { font-family:'Montserrat',sans-serif; font-weight:600; font-size:13px; color:#1B2540; border-radius:10px; padding:9px 11px; }
.vz-nav .elementor-nav-menu--dropdown a:hover { background:#F4F6FB; color:#002FC6; }
.vz-nav .elementor-menu-toggle { border:0; }

/* ── Hero navy ── */
.hero-navy { background:linear-gradient(150deg,#071129 0%,#0B1734 48%,#0F2050 100%); }
/* A produção põe overflow-hidden em toda seção com elemento decorativo que
 * sangra (o glow do hero, a palavra de fundo das faixas). Sem isso o glow de
 * 620px empurrava a largura de rolagem do documento para 578 px num viewport
 * de 390 — a página inteira ganhava barra horizontal no celular. */
.hero-navy, .e-con.vz-rel, .faixa-royal, .sec-dark { overflow:hidden; }
.hero-glow { position:absolute; top:-208px; right:-208px; width:620px; height:620px; background:rgba(0,47,198,.25); border-radius:50%; filter:blur(64px); pointer-events:none; }
.hero-badge { display:inline-flex; align-items:center; gap:10px; padding:8px 16px; border-radius:999px; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15); }
.hero-badge svg { color:#5B7CFF; width:14px; height:14px; }
.hero-models { position:relative; width:min(100%,540px); margin-inline:auto; padding-top:14px; isolation:isolate; }
.hero-models::before { content:''; position:absolute; z-index:0; width:76%; aspect-ratio:1; left:12%; top:3%; border-radius:50%; background:radial-gradient(circle,rgba(43,92,255,.42) 0%,rgba(43,92,255,.15) 45%,transparent 70%); filter:blur(14px); }
.hero-models img { position:relative; z-index:1; display:block; width:86%; margin-inline:auto; height:auto; filter:drop-shadow(0 22px 22px rgba(2,8,24,.35)); }
.hero-models .elementor-widget-image, .hero-models .elementor-widget-container { position:static; }
.hero-stage { position:relative; z-index:2; margin-top:-17%; background:linear-gradient(180deg,#FFFFFF 0%,#F2F5FD 100%); border-radius:20px; padding:18px 20px 16px; box-shadow:0 34px 64px -26px rgba(2,8,24,.65), 0 6px 18px -8px rgba(2,8,24,.35); }
.hero-stage::before { content:''; position:absolute; top:0; left:22px; width:64px; height:4px; background:linear-gradient(90deg,#002FC6,#2B5CFF); transform:skewX(-28deg); border-radius:0 0 4px 4px; }
.hero-stage-review { display:flex; align-items:center; gap:12px; text-decoration:none; }
.hero-stage-review .g-badge { width:38px; height:38px; flex:0 0 38px; display:grid; place-items:center; border-radius:12px; background:#fff; border:1px solid #E3E7F1; box-shadow:0 2px 10px -3px rgba(11,23,52,.18); }
.hero-stage-review .rv-title { display:block; font-family:'Montserrat'; font-weight:800; font-size:12.5px; color:#0B1734; line-height:1.25; }
.hero-stage-review .rv-meta { display:flex; align-items:center; gap:7px; margin-top:3px; }
.hero-stage-review .rv-stars { color:#F4B400; font-size:12.5px; letter-spacing:1.5px; line-height:1; }
.hero-stage-review .rv-note { font-family:'Montserrat'; font-weight:700; font-size:11px; color:#5B6574; }
.hero-stage-review .rv-arrow { margin-left:auto; color:#002FC6; transition:transform .2s ease; }
.hero-stage-review:hover .rv-arrow { transform:translate(2px,-2px); }
.hero-stage-chips { display:flex; flex-wrap:nowrap; gap:8px; margin-top:14px; padding-top:14px; border-top:1px solid #E3E7F1; }
.hero-chip { display:inline-flex; align-items:center; gap:7px; background:#fff; border:1px solid #E3E7F1; border-radius:999px; padding:7px 12px; font-family:'Montserrat'; font-weight:700; font-size:11px; line-height:1.5; color:#0B1734; white-space:nowrap; }
.hero-chip svg { color:#002FC6; flex-shrink:0; width:14px; height:14px; }
@media (max-width:1023px){ .hero-models { max-width:420px; margin-top:6px; } }
@media (max-width:640px){ .hero-models { max-width:360px; padding-top:8px; } .hero-stage { margin-top:-15%; padding:15px 15px 13px; border-radius:16px; } .hero-stage-chips { flex-wrap:wrap; } .hero-chip { font-size:10.5px; padding:6px 11px; } }

/* ── Palavra gigante de fundo ── */
.bg-word { position:absolute; inset-inline:0; pointer-events:none; user-select:none; font-family:'Montserrat',sans-serif; font-weight:900; font-style:italic; text-transform:uppercase; line-height:1; letter-spacing:-.02em; color:transparent; -webkit-text-stroke:1px rgba(255,255,255,.06); white-space:nowrap; overflow:hidden; }

/* ── Card de produto ── */
.pcard { position:relative; background:#fff; border:1px solid #E3E7F1; border-radius:16px; overflow:hidden; display:flex; flex-direction:column; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.pcard:hover { transform:translateY(-6px); box-shadow:0 26px 54px -24px rgba(11,23,52,.3); border-color:#002FC6; }
.pcard .pcard-img { aspect-ratio:4/3; overflow:hidden; position:relative; display:block; }
.pcard .pcard-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.pcard:hover .pcard-img img { transform:scale(1.06); }
.pcard .pcard-bar { position:absolute; left:0; top:0; bottom:0; width:4px; background:#002FC6; transform:scaleY(0); transform-origin:top; transition:transform .3s ease; z-index:2; }
.pcard:hover .pcard-bar { transform:scaleY(1); }
.pcard .pcard-num { position:absolute; top:12px; left:12px; z-index:2; font-family:'Montserrat'; font-weight:900; font-style:italic; font-size:12px; letter-spacing:.08em; color:#fff; background:#0B1734; padding:5px 12px 5px 10px; clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%); }
.pcard-body { padding:24px; flex:1; display:flex; flex-direction:column; }
.pcard-body h3, .pcard-body .elementor-heading-title { color:#0B1734 !important; font-family:'Montserrat'; font-weight:900 !important; font-style:italic; font-size:18px !important; line-height:28px !important; letter-spacing:normal !important; margin:0; }
.pcard-desc { font-size:14px; color:#475569; margin-top:6px; flex:1; line-height:1.55; }
.pcard-foot { margin-top:20px; display:flex; align-items:center; justify-content:space-between; gap:12px; }
.pcard-link { font-family:'Montserrat'; font-weight:800; font-style:italic; font-size:13px; color:#002FC6; display:inline-flex; align-items:center; gap:6px; text-decoration:none; }
.pcard-link svg { width:16px; height:16px; transition:transform .2s; }
.pcard:hover .pcard-link svg { transform:translateX(4px); }
.pcard-orc { font-size:12px; font-family:'Montserrat'; font-weight:700; color:#5B6574; text-decoration:none; }
.pcard-orc:hover { color:#002FC6; }

/* ── Passos ── */
.step { position:relative; background:#fff; border:1px solid #E3E7F1; border-radius:16px; padding:26px 22px 24px; transition:transform .2s ease, box-shadow .2s ease; }
.step:hover { transform:translateY(-4px); box-shadow:0 18px 40px -20px rgba(11,23,52,.28); }
.step-num { font-family:'Montserrat'; font-weight:900; font-style:italic; font-size:44px; line-height:1; color:transparent; -webkit-text-stroke:2px #002FC6; }
.step h3, .step .elementor-heading-title { font-family:'Montserrat'; font-weight:900 !important; font-style:italic; color:#0B1734 !important; margin:12px 0 0; font-size:16px !important; line-height:24px !important; letter-spacing:normal !important; }
.step p { font-size:14px; color:#475569; margin:8px 0 0; line-height:1.55; }
.steps-track { position:relative; }
@media (min-width:1024px){
  .steps-track::before { content:''; position:absolute; top:50%; left:2%; right:2%; height:3px; background:repeating-linear-gradient(90deg,#002FC6 0 26px, transparent 26px 44px); opacity:.22; transform:translateY(-50%) skewX(-28deg); }
  .step { z-index:1; }
}

/* ── Card técnica ── */
.tcard { position:relative; border-radius:18px; overflow:hidden; aspect-ratio:4/5; display:flex; align-items:flex-end; text-decoration:none; }
.tcard img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.tcard:hover img { transform:scale(1.05); }
.tcard .tcard-grad { position:absolute; inset:0; background:linear-gradient(to top, rgba(7,17,41,.93) 0%, rgba(7,17,41,.46) 45%, rgba(7,17,41,.05) 75%); }
.tcard .tcard-body { position:relative; z-index:1; padding:22px; width:100%; }
.tcard .tcard-tag { display:inline-block; font-family:'Montserrat'; font-weight:800; font-style:italic; font-size:11px; letter-spacing:.12em; text-transform:uppercase; color:#fff; background:#002FC6; padding:5px 12px 5px 10px; clip-path:polygon(0 0,100% 0,calc(100% - 8px) 100%,0 100%); margin-bottom:10px; }
.tcard h3 { font-weight:900; font-style:italic; color:#fff; font-size:20px; line-height:28px; letter-spacing:normal; }
.tcard .tcard-desc { color:rgba(255,255,255,.75); font-size:14px; margin-top:6px; }
.tcard .tcard-cta { display:inline-flex; align-items:center; gap:6px; margin-top:12px; color:#5B7CFF; font-size:13px; font-family:'Montserrat'; font-weight:700; font-style:italic; }
.tcard .tcard-cta svg { width:16px; height:16px; }

/* ── Mosaico ── */
.works-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; grid-auto-rows:110px; }
@media (min-width:640px){ .works-grid { grid-template-columns:repeat(4,1fr); grid-auto-rows:130px; } }
@media (min-width:1024px){ .works-grid { grid-template-columns:repeat(6,1fr); grid-auto-rows:150px; } }
.work-tile { position:relative; border-radius:12px; overflow:hidden; background:#12204A; }
.work-tile img { width:100%; height:100%; object-fit:cover; transition:transform .45s ease; display:block; }
.work-tile:hover img { transform:scale(1.07); }
.work-tile::after { content:''; position:absolute; inset:0; background:linear-gradient(to top, rgba(7,17,41,.35), transparent 45%); opacity:0; transition:opacity .3s ease; }
.work-tile:hover::after { opacity:1; }
.work-big { grid-column:span 2; grid-row:span 2; }

/* ── Avaliações ── */
.grev { background:#fff; border:1px solid #E3E7F1; border-radius:16px; padding:20px 22px; box-shadow:0 2px 14px -4px rgba(11,23,52,.1); position:relative; }
.grev .grev-stars { color:#FBBC04; font-size:15px; letter-spacing:2px; line-height:1; margin-top:10px; }
.grev .grev-g { position:absolute; top:18px; right:18px; }
.grev .grev-head { display:flex; align-items:center; gap:12px; }
.grev .grev-av { width:40px; height:40px; border-radius:999px; color:#fff; font-family:'Montserrat'; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.grev .grev-nome { font-family:'Montserrat'; font-weight:700; color:#0B1734; font-size:14px; line-height:1.2; }
.grev .grev-data { font-size:11px; color:#5B6574; }
.grev p.grev-texto { color:#334155; font-size:15px; line-height:1.6; margin:8px 0 0; }
.grev .grev-stars { margin:10px 0 0; }
.gscore-stars { color:#FBBC04; font-size:22px; letter-spacing:3px; line-height:1; }
.gscore-card { background:#fff; border:1px solid #E3E7F1; border-radius:16px; padding:24px; box-shadow:0 2px 14px -4px rgba(7,17,41,.12); max-width:384px; }
.gscore-num { font-family:'Montserrat'; font-weight:900; font-style:italic; font-size:60px; line-height:1; color:#0B1734; letter-spacing:-.015em; }
.gscore-link { display:inline-flex; align-items:center; gap:8px; margin-top:20px; color:#002FC6; font-family:'Montserrat'; font-weight:700; font-style:italic; font-size:14px; text-decoration:none; }
.gscore-link svg { width:16px; height:16px; }

/* ── Checklist navy ── */
.vlz-li { display:flex; gap:14px; align-items:flex-start; }
.vlz-li .vlz-li-ico { flex-shrink:0; width:34px; height:34px; border-radius:9px; background:rgba(91,124,255,.16); display:flex; align-items:center; justify-content:center; margin-top:2px; }
.vlz-li .vlz-li-ico svg { width:16px; height:16px; color:#5B7CFF; }
.vlz-li h4 { font-weight:900; font-style:italic; font-size:15px; color:#fff; letter-spacing:-.015em; margin:0; font-family:'Montserrat'; }
.vlz-li p { font-size:14px; color:rgba(255,255,255,.65); margin:4px 0 0; line-height:1.55; }

/* ── FAQ (accordion do Elementor com a cara do faq-item) ── */
.vz-faq .elementor-accordion-item, .vz-faq details.e-n-accordion-item { background:#fff; border:1px solid #E3E7F1 !important; border-radius:14px !important; margin-bottom:12px; overflow:hidden; }
.vz-faq .elementor-tab-title, .vz-faq .e-n-accordion-item-title { padding:16px 18px !important; font-family:'Montserrat',sans-serif !important; font-weight:800 !important; font-style:italic; font-size:14.5px !important; color:#0B1734 !important; }
.vz-faq summary, .vz-faq summary span, .vz-faq .elementor-tab-title a { color:#0B1734 !important; font-family:'Montserrat',sans-serif !important; font-weight:800 !important; font-style:italic; }
.vz-faq .e-n-accordion-item-title-icon { width:26px; height:26px; border-radius:8px; background:#EEF2FF; color:#002FC6; display:flex; align-items:center; justify-content:center; flex-shrink:0; font-size:13px; }
.vz-faq details[open] .e-n-accordion-item-title-icon { background:#002FC6; color:#fff; }
/* Era uma pastilha de raio 999px — o formato que a identidade não usa e que a
 * missão §8 pede para eliminar. Vira rótulo com filete: mesma informação, sem
 * o componente. */
.vz-min-pill { display:inline-block; color:#002FC6; font-family:'Montserrat',sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; padding:0 0 0 12px; border-left:2px solid #002FC6; border-radius:0; background:transparent; }

/* ── FICHA DE ESPECIFICAÇÕES → CAPÍTULOS DE PÁGINA ──
 *
 * A rodada anterior tirou os cartões desta seção e o estilo melhorou, mas a
 * composição continuou errada: cinco assuntos com o mesmo peso, duas colunas
 * densas, tamanho amontoado e a regra de grade escondida numa legenda de 12px.
 * Aqui a seção deixou de existir como seção: virou cinco capítulos com fundo
 * alternado, montados pelo modulo build/ficha.mjs. Rolagem maior, compreensao maior.
 */
.vz-cap { padding:76px 24px; background:#fff; }
.vz-cap-mist { background:#F4F6FB; }
.vz-cap-wrap { max-width:var(--vz-container,1366px); margin-inline:auto; }
.vz-cap-num { display:block; font-family:'Montserrat',sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.16em; color:#002FC6; margin-bottom:14px; }
.vz-cap-num::before { content:""; display:inline-block; width:22px; height:2px; background:#002FC6; vertical-align:middle; margin-right:10px; transform:skewX(-24deg); }
.vz-cap-titulo { font-family:'Montserrat',sans-serif; font-weight:900; font-style:italic; text-transform:uppercase; letter-spacing:-.02em; font-size:clamp(24px,3vw,34px); line-height:1.06; color:#0B1734; margin:0; }
.vz-cap-lead { max-width:62ch; font-size:17px; line-height:1.65; color:#475569; margin:16px 0 0; }
.vz-cap-nota { max-width:70ch; font-size:14px; line-height:1.6; color:#5B6574; margin:28px 0 0; }
.vz-cap-cta { margin:26px 0 0; }
@media (max-width:767px){ .vz-cap { padding:52px 20px; } }

/* tecidos e tipos de peça: três colunas editoriais, sem moldura */
.vz-tecidos { display:grid; grid-template-columns:repeat(3,1fr); gap:44px 56px; margin-top:44px; padding-top:40px; border-top:1px solid #D9E0EC; }
.vz-tecidos article h3 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:17px; line-height:1.3; color:#0B1734; margin:0 0 10px; }
.vz-tecidos article p { font-size:15px; line-height:1.65; color:#475569; margin:0; }
@media (max-width:1023px){ .vz-tecidos { grid-template-columns:repeat(2,1fr); gap:36px 40px; } }
@media (max-width:640px){ .vz-tecidos { grid-template-columns:1fr; gap:28px; margin-top:32px; padding-top:28px; } }

/* lista de opções: filete por linha, nada de pastilha */
.vz-lista-simples { display:grid; grid-template-columns:repeat(3,1fr); gap:0 56px; margin:40px 0 0; padding:0; list-style:none; border-top:1px solid #D9E0EC; }
.vz-lista-simples li { font-family:'Montserrat',sans-serif; font-weight:700; font-size:16px; color:#0B1734; padding:17px 0; border-bottom:1px solid #E7EBF3; }
@media (max-width:900px){ .vz-lista-simples { grid-template-columns:repeat(2,1fr); gap:0 36px; } }
@media (max-width:560px){ .vz-lista-simples { grid-template-columns:1fr; margin-top:30px; } }

/* grades de tamanho: cada grade com nome, e o que é sob consulta parece sob
 * consulta — valor em cinza e nota junto, nunca no mesmo peso do confirmado */
.vz-grades { display:grid; grid-template-columns:repeat(4,1fr); margin-top:44px; border-top:1px solid #D9E0EC; }
.vz-grade { padding:30px 32px 30px 0; border-right:1px solid #E7EBF3; }
.vz-grade:last-child { border-right:0; padding-right:0; }
.vz-grade h3 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:#002FC6; margin:0 0 14px; }
.vz-grade-valores { font-family:'Montserrat',sans-serif; font-weight:800; font-size:17px; line-height:1.55; color:#0B1734; margin:0; }
.vz-grade-nota { font-size:13.5px; line-height:1.55; color:#5B6574; margin:12px 0 0; }
.vz-grade-aviso { border-left:2px solid #002FC6; padding-left:24px; }
.vz-grade-aviso h3 { color:#0B1734; }
.vz-grade-aviso .vz-grade-valores { color:#5B6574; }
@media (max-width:1023px){ .vz-grades { grid-template-columns:repeat(2,1fr); } .vz-grade:nth-child(2n) { border-right:0; padding-right:0; } .vz-grade:nth-child(n+3) { border-top:1px solid #E7EBF3; } }
@media (max-width:560px){ .vz-grades { grid-template-columns:1fr; margin-top:30px; } .vz-grade { border-right:0; padding:24px 0; border-top:1px solid #E7EBF3; } .vz-grade:first-child { border-top:0; } }

/* cartelas de cor confirmadas */
.vz-cartelas { display:grid; grid-template-columns:repeat(3,1fr); gap:48px; margin-top:40px; padding-top:36px; border-top:1px solid #D9E0EC; }
.vz-cartela h3 { font-family:'Montserrat',sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:#002FC6; margin:0; }
.vz-cartela-total { font-family:'Montserrat',sans-serif; font-weight:900; font-style:italic; font-size:clamp(26px,2.6vw,32px); line-height:1; color:#0B1734; margin:10px 0 14px; }
.vz-cartela-nomes { font-size:14px; line-height:1.75; color:#475569; margin:0; }
@media (max-width:900px){ .vz-cartelas { grid-template-columns:1fr; gap:32px; } }

/* ── Prova social: faixa de logos reais ── */
.vz-clientes-titulo { text-align:center; margin:0 0 26px; font-family:'Montserrat',sans-serif; font-weight:700; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:#5B6574; }
.vz-clientes-mist .vz-clientes-titulo { color:#475569; }


/* ── Seção de orçamento: duas colunas, filete, sem caixa dentro de caixa ── */
.vz-cot { display:grid !important; grid-template-columns:.92fr 1.08fr; gap:64px; align-items:start; }
@media (max-width:1023px){ .vz-cot { grid-template-columns:1fr; gap:44px; } }
.vz-cot-fatos { margin:34px 0 0; padding:0; border-top:1px solid #D9E0EC; }
.vz-cot-fatos > div { display:grid; grid-template-columns:132px 1fr; gap:20px; padding:15px 0; border-bottom:1px solid #D9E0EC; }
.vz-cot-fatos dt { margin:0; font-family:'Montserrat',sans-serif; font-weight:800; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:#002FC6; padding-top:2px; }
.vz-cot-fatos dd { margin:0; font-size:15px; line-height:1.55; color:#334155; }
@media (max-width:520px){ .vz-cot-fatos > div { grid-template-columns:1fr; gap:4px; } }
.vz-cot-campos .elementor-field-group { margin-bottom:2px; }
.vz-cot-campos .elementor-field-textual { background:#fff !important; padding:13px 15px !important; font-size:15px !important; }
.vz-cot-campos .elementor-button { width:100%; }
.vz-faq .elementor-tab-content { font-size:14px !important; color:#475569 !important; line-height:1.6; padding:0 18px 16px !important; border-top:0 !important; font-family:'Lato',sans-serif; }
.vz-faq .elementor-accordion-item:has(.elementor-tab-title.elementor-active) { border-color:#002FC6 !important; box-shadow:0 10px 30px -18px rgba(0,47,198,.35); }

/* ── Formulário (Elementor Pro Form com a cara da produção) ── */
.vz-form input[type=text], .vz-form input[type=email], .vz-form input[type=tel], .vz-form input[type=number], .vz-form select, .vz-form textarea { border:1px solid #E3E7F1 !important; border-radius:10px !important; font-family:'Lato',sans-serif; }
.vz-form input:focus, .vz-form select:focus, .vz-form textarea:focus { border-color:#002FC6 !important; box-shadow:0 0 0 3px rgba(0,47,198,.13) !important; outline:none; }
.vz-form .elementor-field-label { font-family:'Montserrat',sans-serif; font-weight:700; font-size:12.5px; color:#0B1734; }
.vz-form .elementor-button { background:#002FC6; border-radius:12px; font-family:'Montserrat',sans-serif; font-weight:800; font-style:italic; font-size:15px; padding:15px 28px; box-shadow:0 14px 40px -14px rgba(0,47,198,.5); }
.vz-form .elementor-button:hover { background:#0A38D6; }
/* O wrapper de campos do Elementor abre com margem NEGATIVA de 10px de cada
 * lado, para compensar a calha das colunas. Com campo de largura 100% não há
 * calha nenhuma, e a margem negativa só produzia 5px de estouro que o
 * overflow:clip do formulário escondia. Zerar os dois resolve na origem —
 * esconder era a maquiagem que a missão §11 proíbe. */
.vz-form .elementor-form-fields-wrapper { margin-left:0 !important; margin-right:0 !important; }
.vz-form .elementor-field-group { padding-left:0 !important; padding-right:0 !important; }
.form-shell { background:#fff; border:1px solid #E3E7F1; border-radius:16px; padding:32px; box-shadow:0 24px 60px -30px rgba(7,17,41,.25); }
@media (min-width:1024px){ .form-shell { padding:40px; position:sticky; top:112px; } }

/* ── Mapa ── */
.map-shell { border-radius:20px; overflow:hidden; border:1px solid #E3E7F1; box-shadow:0 22px 50px -22px rgba(11,23,52,.3); position:relative; height:100%; }
.map-shell iframe { width:100%; height:100%; min-height:380px; border:0; display:block; }

/* ── Contato navy card ── */
.navy-card { background:#0B1734; color:#fff; border-radius:20px; padding:32px; position:relative; overflow:hidden; }
.navy-card .ico-tile { width:40px; height:40px; border-radius:9px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.15); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.navy-card .ico-tile svg { width:18px; height:18px; color:#5B7CFF; }

/* ── Faixa azul de provas ── */
.usp-item { display:flex; align-items:flex-start; gap:14px; }
.usp-item .usp-ico { width:44px; height:44px; border-radius:9px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.usp-item .usp-ico svg { width:20px; height:20px; color:#fff; }
.usp-item h4 { font-family:'Montserrat'; font-weight:900; font-style:italic; font-size:15px; line-height:1.25; color:#fff; letter-spacing:-.015em; margin:0; }
.usp-item p { font-size:12.5px; color:rgba(255,255,255,.75); margin:4px 0 0; }

/* ── Carrossel de logos ── */
.logos-carousel-wrap { overflow:hidden; -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 10%,#000 90%,transparent 100%); mask-image:linear-gradient(to right,transparent 0%,#000 10%,#000 90%,transparent 100%); }
.logos-scroll-track { display:flex; align-items:center; width:max-content; animation:veloz-logos-scroll 32s linear infinite; }
.logos-scroll-track:hover { animation-play-state:paused; }
@keyframes veloz-logos-scroll { from{transform:translateX(0)} to{transform:translateX(-33.333%)} }
.logos-carousel-wrap .logos-client-logo { margin-right:3.5rem; height:40px; width:auto; max-width:140px; object-fit:contain; filter:grayscale(1); opacity:.55; transition:filter .3s,opacity .3s; flex-shrink:0; }
.logos-carousel-wrap .logos-client-logo:hover { filter:grayscale(0); opacity:1; }

/* ── Estatísticas mini ── */
.stat-pill { padding:12px 20px; border-radius:12px; background:#F4F6FB; border:1px solid #E3E7F1; text-align:center; }
.stat-pill .stat-num { font-family:'Montserrat'; font-weight:900; font-style:italic; text-transform:uppercase; font-size:20px; color:#0B1734; letter-spacing:-.015em; }
.stat-pill .stat-lbl { font-size:10.5px; color:#5B6574; line-height:1.3; }

/* ── Footer ── */
/* Footer herda a pilha do corpo, como no site estático (rótulos .f-label
 * continuam Montserrat por regra própria). */
.vz-footer { background:#071129; border-top:1px solid rgba(145,170,255,.2); color:#fff; font-family:'Lato','Inter',system-ui,sans-serif; }
.vz-footer a { color:rgba(255,255,255,.6); text-decoration:none; transition:color .2s; font-size:14px; }
.vz-footer a:hover { color:#fff; }
.vz-footer .f-label { color:rgba(255,255,255,.9); }
.vz-footer li { list-style:none; }
.vz-footer .ft-social { width:40px; height:40px; border-radius:9px; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; transition:background .2s; }
.vz-footer .ft-social:hover { background:#002FC6; }
.vz-footer .ft-social svg { width:18px; height:18px; color:#fff; }
.vz-footer-catalog { margin-bottom:48px; }
.vz-footer-catalog a { display:grid;grid-template-columns:.75fr 1.5fr auto;gap:32px;align-items:center;padding:24px 0;border-top:1px solid rgba(255,255,255,.42);border-bottom:1px solid rgba(255,255,255,.42);color:#fff!important;text-decoration:none; }
.vz-footer-catalog span { color:#8FA8FF;font-size:10.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase; }
.vz-footer-catalog strong { color:#fff;font-size:19px;line-height:1.25;letter-spacing:-.02em; }
.vz-footer-catalog em { color:#fff;font-size:13px;font-style:normal;font-weight:700;white-space:nowrap; }
.vz-footer-catalog a:hover em { color:#8FA8FF; }
@media(max-width:767px){ .vz-footer-catalog a{grid-template-columns:1fr;gap:9px}.vz-footer-catalog{margin-bottom:38px} }

/* ── Compatibilidade de hover das páginas migradas ──
 * O staging usa Elementor no header e novos seletores no catálogo, enquanto
 * páginas editoriais antigas ainda carregam estas classes. Mantê-las garante
 * que hover/foco não desapareça durante a convivência das duas estruturas. */
.logos-client-logo:hover{filter:grayscale(0);opacity:1}
.nav-link:hover,.nav-item:hover .nav-btn{color:var(--vz-royal)!important;background:var(--vz-royal-soft)!important}
.dl:hover{color:var(--vz-royal)!important;background:var(--vz-royal-soft)!important}
.dl-cta:hover{color:var(--vz-royal-hover)!important;background:var(--vz-royal-soft)!important}

.hover\:gap-3:hover{gap:.75rem}
.hover\:bg-paper:hover{--tw-bg-opacity:1;background-color:rgb(244 246 251 / var(--tw-bg-opacity,1))}
.hover\:bg-royal:hover{--tw-bg-opacity:1;background-color:rgb(0 47 198 / var(--tw-bg-opacity,1))}
.hover\:bg-wa-400:hover{--tw-bg-opacity:1;background-color:rgb(19 165 89 / var(--tw-bg-opacity,1))}
.hover\:text-royal:hover{--tw-text-opacity:1;color:rgb(0 47 198 / var(--tw-text-opacity,1))}
.hover\:text-royal-300:hover{--tw-text-opacity:1;color:rgb(91 124 255 / var(--tw-text-opacity,1))}
.hover\:bg-wa-400:hover{background:var(--vz-green-hover)!important;transform:translateY(-2px)}
.hover\:bg-royal:hover{background:var(--vz-royal-hover)!important;transform:translateY(-2px)}
.hover\:bg-paper:hover{background-color:var(--vz-paper)!important}
.hover\:text-royal-300:hover{color:#5B7CFF!important}

.btn-primary:hover{background:var(--vz-royal-hover)!important;transform:translateY(-2px)}
.btn-wa:hover{background:var(--vz-green-hover)!important;transform:translateY(-2px)}
.btn-ghost:hover{background:var(--vz-navy)!important;color:#fff!important}
.btn-ghost-white:hover{background:#fff!important;color:var(--vz-navy)!important}
.card:hover{border-color:rgba(0,47,198,.38)!important;box-shadow:var(--vz-shadow-card)!important;transform:translateY(-4px)}
.filter-pill:hover{border-color:var(--vz-royal)!important;color:var(--vz-royal)!important}
.toc-link:hover,.toc-link.active{color:var(--vz-royal)!important;border-color:var(--vz-royal)!important}

.vn-item:hover .vn-btn,.vn-item:focus-within .vn-btn{color:#002FC6;background:#EEF2FF}
.vn-item:hover .vn-btn .vn-ch,.vn-item:focus-within .vn-btn .vn-ch{transform:rotate(180deg)}
.vn-item:hover .vn-drop,.vn-item:focus-within .vn-drop{opacity:1;visibility:visible;pointer-events:all;transition:opacity .18s ease,transform .18s ease,visibility 0s linear 0s}
.vn-item:hover .vn-drop:not(.left):not(.right),.vn-item:focus-within .vn-drop:not(.left):not(.right){transform:translateX(-50%) translateY(0)}
.vn-item:hover .vn-drop.left,.vn-item:focus-within .vn-drop.left,.vn-item:hover .vn-drop.right,.vn-item:focus-within .vn-drop.right{transform:translateY(0)}
.vn-link:hover .vn-ico{background:#002FC6;color:#fff}
.vn-cta:hover{background:#EEF2FF}
.seg-card-img:hover .seg-thumb img{transform:scale(1.06)}

/* ── Ajustes de widgets Elementor dentro do sistema ── */
.e-con.vz-rel { position:relative; }
.vz-white .elementor-heading-title { color:#fff !important; }
.vz-navy-t .elementor-heading-title { color:#0B1734 !important; }
.vz-royal-t .elementor-heading-title { color:#002FC6 !important; }
.txt-royal { color:#002FC6; }
.txt-royal-300 { color:#5B7CFF; }

/* Margem padrão de widget zerada: o espaçamento vem dos gaps dos containers,
 * como a produção usa margin-top utilitário — não de um 20px genérico. */
.elementor-widget:not(:last-child) { margin-block-end:0; }

/* ── Grids da home (as mesmas frações do fonte) ── */
.g-hero { display:grid !important; grid-template-columns:1.06fr .94fr; gap:40px; align-items:center; }
/* GEOMETRIA DO HERO = a do site antigo. La o hero vivia dentro de .wrap
 * (max-width 1200 com padding-inline 24 = caixa util de 1152). Com o grid
 * 1.06fr/.94fr e gap 40, isso da 589px de texto e 523px de imagem — foi o que
 * medi no antigo. O container global de 1366 alargava a coluna de texto para
 * 703px e mudava o ritmo do hero, o comprimento de linha e o equilibrio com a
 * foto. A excecao e do HERO apenas; o restante do site segue em 1366. */
.hero-navy .e-con.wrap-1200 { max-width:1152px; }
.g-emp  { display:grid !important; grid-template-columns:1fr 1fr; gap:56px; align-items:center; }
.g-aval { display:grid !important; grid-template-columns:.85fr 1.15fr; gap:48px; align-items:start; }
.g-loc  { display:grid !important; grid-template-columns:1.15fr .85fr; gap:32px; align-items:stretch; }
.g-cot  { display:grid !important; grid-template-columns:1fr 1fr; gap:40px; align-items:start; }
.g-prod { display:grid !important; grid-template-columns:repeat(3,1fr); gap:24px; }
.g-tec  { display:grid !important; grid-template-columns:repeat(3,1fr); gap:24px; }
.g-steps{ display:grid !important; grid-template-columns:repeat(4,1fr); gap:20px; }
.g-usp  { display:grid !important; grid-template-columns:repeat(4,1fr); gap:28px 24px; }
@media (max-width:1023px){
  .g-hero,.g-emp,.g-aval,.g-loc,.g-cot { grid-template-columns:1fr; gap:36px; }
  .g-steps { grid-template-columns:repeat(2,1fr); }
  .g-usp { grid-template-columns:repeat(2,1fr); }
}
@media (min-width:640px) and (max-width:1023px){
  .g-prod,.g-tec { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:639px){
  .g-prod,.g-tec,.g-steps { grid-template-columns:1fr; }
}
/* (o padding dos filhos é 0 por default nos builds; zerar via CSS aqui
 *  atropelava o padding legítimo de componentes como .step) */

/* Cabeçalho de seção: título à esquerda, botão à direita (fonte: flex md:row items-end).
 * O widget de botão nasce com width 100% e jogava a linha inteira para baixo —
 * width:auto devolve o layout da produção. */
.sec-head { margin-bottom:40px; }
.sec-head > .e-con { padding:0; }
.sec-head > .elementor-widget-html { width:auto; }

/* ── Shell do header ── */
.vz-header { background:rgba(255,255,255,.95); backdrop-filter:blur(8px); border-bottom:1px solid #E3E7F1; box-shadow:0 2px 14px -4px rgba(7,17,41,.12); }
/* Tipografia do header = a do site estático aprovado: nav em Montserrat 700
 * 13.5px (.nav-link) e CTAs em Montserrat 800 itálico (.b-base). O Archivo
 * que uma rodada de hardening tinha imposto aqui não existia no site antigo
 * (restauração de 2026-08-29 — a estrutura e a geometria do header novo
 * ficam; só a fonte volta a ser a original). */
.vz-header .hdr-bar { min-height:76px; }
@media (max-width:1023px){ .vz-header .hdr-bar { min-height:64px; } }
/* gap 10px = o gap-2.5 do grupo de CTAs do site antigo. */
.vz-header .hdr-ctas { display:flex; align-items:center; gap:10px; }
/* Sem a lateral inclinada os CTAs voltaram à largura do antigo (padding 20px em
 * vez de 30). A coluna deixa de ter largura fixa — que agora sobraria — e passa
 * a abraçar o conteúdo, como o shrink-0 do header antigo. */
.e-con.hdr-ctas-col { width:auto !important; flex:0 0 auto !important; }
.vz-header .elementor-nav-menu a.elementor-item { font-family:'Montserrat',system-ui,sans-serif;border-radius:9px;font-style:normal; }
.vz-header .elementor-nav-menu--dropdown { border-radius:16px; }
.vz-header .elementor-nav-menu--dropdown a { font-family:'Montserrat',system-ui,sans-serif;border-radius:10px;font-style:normal; }
/* Header e barra mobile usam o botão GLOBAL sem alteração de geometria: raio de
 * 12px e sombra colorida, como no site antigo. A regra que os achatava
 * (radius 2px + box-shadow:none) saiu em 2026-08-29. */
/* hide_mobile via API imprime a classe base .elementor-hidden, que o CSS do
 * widget de formulário esconde em QUALQUER viewport — media query própria. */
@media (max-width:1023px){ .e-con.hdr-ctas-col { display:none !important; } }
/* O botão do menu ficava colado no logo, no meio da barra: o widget de nav
 * ocupa a largura toda da coluna e o justify-content do pai não alcança o
 * toggle. Uma margem automática à esquerda encosta o toggle na direita, que é
 * onde o polegar procura. */
@media (max-width:1023px){ .vz-header .elementor-menu-toggle { margin-left:auto !important; margin-right:0 !important; } }
/* ══════ MENU MOBILE — o drawer do site antigo (#fb-drawer), medido ══════
 * Medidas colhidas no drawer antigo rodando a 390px (nao de memoria):
 *   painel ..... 310px (max 92vw), direita, altura de tela, #fff
 *   veu ........ rgba(11,23,52,.55)
 *   item 1 ..... 52px · Montserrat 700 14px · padding 15x22 · filete #EDF0F7
 *                fechado #0B1734 · ABERTO #002FC6
 *   seta ....... 16px · #94A3B8 · a direita · gira 180 ao abrir
 *   submenu .... fundo #F4F6FB · item 45px · Montserrat 600 13px #41506C
 *                padding 12px 24px 12px 30px · filete #E9EDF5
 *   rodape ..... padding 20 · gap 12 · filete #E3E7F1 · CTAs de 50px
 *
 * MECANISMO: painel e acordeao NATIVOS do widget de menu (abrir, fechar,
 * expandir submenu). Zero JS proprio. O popup do Elementor seria a via
 * preferida da missao, mas o tipo de documento nao existe nesta instalacao
 * (licenca do Pro nao confere com o dominio) — registrado no build 40.
 *
 * A barra do header faz as vezes do cabecalho do drawer antigo: logo a
 * esquerda e o proprio toggle virando "X" a direita, na mesma altura. */
@media (max-width:1023px){
  .vz-header { z-index:100; }
  .vz-header nav.elementor-nav-menu--dropdown {
    position:fixed !important; top:64px; right:0; left:auto !important; bottom:auto;
    width:310px !important; max-width:92vw; min-width:0 !important;
    background:#fff; border:0; border-radius:0 !important;
    padding:0 !important; margin:0 !important;
    overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
    /* altura explicita: o slideDown anima height inline e o valor auto fazia o
     * painel nascer com 0px. Espaco reservado embaixo para o rodape de CTAs. */
    height:calc(100vh - 64px) !important; max-height:calc(100vh - 64px) !important;
    padding-bottom:112px !important;
    box-shadow:0 0 0 100vmax rgba(11,23,52,.55), -18px 0 40px -24px rgba(7,17,41,.5);
    z-index:99;
  }
  .vz-header nav.elementor-nav-menu--dropdown::before { content:none !important; }

  /* --- item de primeiro nivel (.fb-acc / .fb-mlink) --- */
  .vz-header nav.elementor-nav-menu--dropdown a.elementor-item {
    font-family:'Montserrat',system-ui,sans-serif; font-size:14px !important; font-weight:700 !important;
    color:#0B1734 !important; background:transparent !important; border-radius:0 !important;
    padding:15px 22px !important; line-height:1.3; letter-spacing:normal;
    display:flex; align-items:center; gap:12px;
  }
  .vz-header nav.elementor-nav-menu--dropdown .sub-arrow { margin-left:auto !important; }
  .vz-header nav.elementor-nav-menu--dropdown > ul > li { border-bottom:1px solid #EDF0F7; }
  /* LACUNA CONHECIDA — icone por item do drawer antigo NAO reproduzido.
   * O widget de menu do Elementor nao emite icone por item, e a tentativa de
   * injeta-lo pelo ::before do link (SVG Lucide em data URI) nao renderizou de
   * forma confiavel: a caixa do pseudo-elemento existe, mas nao entra no fluxo
   * do flex nem desenha o SVG. Preferimos remover a tentar forcar — CSS morto
   * e pior que a lacuna. Registrado na entrega de 2026-08-29. */

  /* Só o ::after do sublinhado é anulado — o ::before agora carrega o ícone. */
  .vz-header nav.elementor-nav-menu--dropdown a.elementor-item::after { content:none !important; }
  /* Aberto/ativo: texto royal, sem pastilha — como no antigo. */
  .vz-header nav.elementor-nav-menu--dropdown a.elementor-item:hover,
  .vz-header nav.elementor-nav-menu--dropdown a.elementor-item:active,
  .vz-header nav.elementor-nav-menu--dropdown a.elementor-item.elementor-item-active,
  .vz-header nav.elementor-nav-menu--dropdown li.highlighted > a.elementor-item {
    color:#002FC6 !important; background:transparent !important;
  }
  /* --- seta --- */
  .vz-header nav.elementor-nav-menu--dropdown .sub-arrow { margin:0; padding:0; display:inline-flex; align-items:center; }
  .vz-header nav.elementor-nav-menu--dropdown .sub-arrow i,
  .vz-header nav.elementor-nav-menu--dropdown .sub-arrow svg { color:#94A3B8; font-size:16px; width:16px; height:16px; transition:transform .2s; }
  /* Aberto: o SmartMenus do Elementor nao marca classe no <li> — so troca o
   * display do submenu. :has() le esse estado direto, sem JS. */
  .vz-header nav.elementor-nav-menu--dropdown li:has(> ul.sub-menu[style*="block"]) > a .sub-arrow i,
  .vz-header nav.elementor-nav-menu--dropdown li:has(> ul.sub-menu[style*="block"]) > a .sub-arrow svg { transform:rotate(180deg); }
  .vz-header nav.elementor-nav-menu--dropdown li:has(> ul.sub-menu[style*="block"]) > a.elementor-item { color:#002FC6 !important; }

  /* --- submenu (.fb-acc-body / .fb-sub) --- */
  .vz-header nav.elementor-nav-menu--dropdown ul.sub-menu {
    background:var(--vz-paper) !important; border:0 !important; border-radius:0 !important;
    box-shadow:none !important; padding:0 !important; margin:0 !important; min-width:0 !important;
  }
  .vz-header nav.elementor-nav-menu--dropdown ul.sub-menu::before { content:none !important; }
  .vz-header nav.elementor-nav-menu--dropdown a.elementor-sub-item {
    font-family:'Montserrat',system-ui,sans-serif; font-size:13px !important; font-weight:600 !important;
    color:#41506C !important; background:transparent !important; border-radius:0 !important;
    padding:12px 24px 12px 30px !important; border-bottom:1px solid #E9EDF5; line-height:1.35;
  }
  .vz-header nav.elementor-nav-menu--dropdown ul.sub-menu li:last-child > a.elementor-sub-item { border-bottom:0; }
  .vz-header nav.elementor-nav-menu--dropdown a.elementor-sub-item:active,
  .vz-header nav.elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active { background:var(--vz-royal-soft) !important; color:#002FC6 !important; }
  /* "Ver todos os uniformes" fecha a lista, como o "Ver catalogo completo". */
  .vz-header nav.elementor-nav-menu--dropdown .mi-todos > a.elementor-sub-item { color:#002FC6 !important; font-weight:800 !important; font-style:italic; }

  /* --- rodape de CTAs dentro do painel ---
   * O drawer antigo terminava com os dois CTAs empilhados no proprio rodape.
   * A barra fixa do site ja tem exatamente esses dois botoes: com o menu
   * aberto ela e recolhida a largura do painel e recebe o padding, o gap e o
   * filete do rodape antigo. :has() le o estado do toggle NATIVO — sem JS. */
  .vz-mob-bar { z-index:101 !important; }
  .vz-header:has(.elementor-menu-toggle[aria-expanded="true"]) ~ * .vz-mob-bar,
  body:has(.vz-header .elementor-menu-toggle[aria-expanded="true"]) .vz-mob-bar {
    left:auto !important; right:0 !important;
    width:310px !important; max-width:92vw !important;
    grid-template-columns:1fr !important;
    padding:20px !important; gap:12px !important;
    background:#fff !important; backdrop-filter:none !important;
    border-top:1px solid var(--vz-line) !important; box-shadow:none !important;
  }
  body:has(.vz-header .elementor-menu-toggle[aria-expanded="true"]) .vz-mob-bar .b-base {
    padding:15px 28px !important; font-size:14px !important;
  }
}

/* TABLET (768–1023): o header ficava com logo e botão de menu e mais nada — o
 * CTA principal e o WhatsApp sumiam da moldura do site inteiro. Os dois voltam:
 * a coluna passa a ter largura de conteúdo (era fixa em 345 e espremia o botão,
 * cortando "orçamento" em 20px) e não encolhe. */
@media (min-width:768px) and (max-width:1023px){
  .e-con.hdr-ctas-col { display:flex !important; width:auto !important; flex:0 0 auto !important; }
  .vz-header .hdr-cta { padding:9px 18px !important; font-size:13.5px !important; flex-shrink:0; }
}

/* ── Identidade do header = a do SITE ANTIGO (.nav-link / .vn-btn) ──
 * 13.5px, Montserrat 700, tracking .01em, padding 8px 12px, raio 9px.
 * O estado de hover/ativo do antigo é uma PÍLULA azul-clara (#EEF2FF) com o
 * texto royal — não o sublinhado de 2px que uma rodada de hardening pôs no
 * lugar. Sublinhado removido: era o principal desvio do menu. */
.vz-header .elementor-nav-menu a.elementor-item { font-size:13.5px; font-weight:700; letter-spacing:.01em; line-height:1.2; color:rgba(11,23,52,.72); background:transparent; padding:8px 12px; position:relative; transition:color .15s, background .15s; }
.vz-header .elementor-nav-menu a.elementor-item::after { content:none; }
.vz-header .elementor-nav-menu a.elementor-item:hover, .vz-header .elementor-nav-menu a.elementor-item.elementor-item-active { color:#002FC6; background:#EEF2FF; }
/* Página atual dentro de um submenu: o PAI acende no primeiro nível (ex.: em
 * /sobre, "A Veloz" fica ativo). O Elementor nem sempre propaga a classe
 * própria ao ancestral; as classes do WordPress (current-menu-ancestor,
 * current-menu-parent) estão sempre no <li> e são a fonte confiável. Mesmo
 * sinal do antigo: texto royal sobre a pílula clara. */
.vz-header .elementor-nav-menu li.current-menu-ancestor > a.elementor-item,
.vz-header .elementor-nav-menu li.current-menu-parent > a.elementor-item { color:#002FC6; background:#EEF2FF; }

/* ── Destaque permanente do BLOG ──
 * O Blog e o unico item do menu sem submenu e sem CTA, e ficava apagado no meio
 * dos demais. O destaque usa a linguagem que ja existe no sistema antigo: o azul
 * Veloz do estado ativo, aplicado de forma permanente. Sem fundo, sem caixa, sem
 * pill, sem borda e sem virar botao — assim ele se le antes de um item comum e
 * continua abaixo dos dois CTAs, que sao os unicos elementos com area de cor.
 * So a COR muda: peso, tamanho, padding e altura ficam iguais aos dos irmaos,
 * para nao deslocar o menu. Vale no menu GLOBAL, desktop e drawer mobile. */
.vz-header .elementor-nav-menu > li > a.elementor-item[href*="/blog"] { color:#002FC6; }
.vz-header nav.elementor-nav-menu--dropdown > ul > li > a.elementor-item[href*="/blog"] { color:#002FC6 !important; }

/* Dropdown do antigo (.vn-drop): cartão branco de raio 16, borda fina em todos
 * os lados, sombra funda e o filete royal inclinado no canto superior esquerdo.
 * min-width acomoda o item mais longo ("Jaquetas e corta-ventos") sem clipar. */
.vz-header .elementor-nav-menu--dropdown { position:relative; border:1px solid #E3E7F1; box-shadow:0 24px 60px -18px rgba(7,17,41,.28), 0 4px 16px -6px rgba(7,17,41,.12); padding:10px; min-width:262px; overflow:visible; }
.vz-header .elementor-nav-menu--dropdown::before { content:''; position:absolute; top:0; left:24px; width:54px; height:4px; background:linear-gradient(90deg,#002FC6,#2B5CFF); transform:skewX(-28deg); border-radius:0 0 4px 4px; }
.vz-header .elementor-nav-menu--dropdown a.elementor-sub-item { width:auto; }
.vz-header .elementor-nav-menu--dropdown a { font-size:13px; font-weight:600; color:#1B2540; padding:9px 11px; line-height:1.3; transition:background .12s, color .12s; }
.vz-header .elementor-nav-menu--dropdown a:hover { background:#F4F6FB; color:#002FC6; }
/* "Ver todos os uniformes" fecha a lista: filete acima e peso maior. É saída
 * para o catálogo inteiro, não mais um irmão da lista de peças. */
.vz-header .mi-todos > a.elementor-sub-item { border-top:1px solid #E3E7F1; margin-top:6px; padding-top:12px; font-weight:700; color:#002FC6; }

/* Respiro do desktop por faixa. A barra tem largura fixa de logo (96) e de CTAs
 * (345); o que sobra é a nav. Abaixo de 1440 o padding de 11px por item
 * aproximava os rótulos até parecerem um bloco só — cada faixa recebe o passo
 * que cabe, em vez de o menu quebrar em burger cedo demais. */
@media (min-width:1440px){ .vz-header .elementor-nav-menu a.elementor-item { padding:8px 15px; } }
@media (max-width:1279px) and (min-width:1024px){ .vz-header .elementor-nav-menu a.elementor-item { padding:8px 9px; font-size:13.5px; } .vz-header .hdr-cta { padding:10px 16px !important; } }

/* ── Sistema de estados da navegação (release audit 2026-08-28) ──
 * O widget de nav do Elementor Pro tem defaults próprios para item ativo —
 * no submenu ele pintava fundo #3F444B sob texto navy, ilegível. Cada estado
 * é declarado aqui explicitamente; nada herda default de widget, de tema ou
 * de link global. */
.vz-header .elementor-nav-menu--dropdown a.elementor-item-active,
.vz-header .elementor-nav-menu--dropdown a.elementor-sub-item.elementor-item-active {
  background:#EEF2FF !important; color:#002FC6 !important; font-weight:700;
}
.vz-header .elementor-nav-menu--dropdown a:focus-visible { outline:2px solid #002FC6; outline-offset:-2px; background:#F4F6FB; }
.vz-header .elementor-nav-menu a.elementor-item:focus-visible { outline:2px solid #002FC6; outline-offset:2px; }
.vz-header .elementor-nav-menu a.elementor-item.elementor-item-active { background:transparent; }
.vz-header .elementor-nav-menu--dropdown a:visited { color:#1B2540; }
.vz-header .elementor-nav-menu--dropdown a.elementor-item-active:visited { color:#002FC6 !important; }
/* WhatsApp no header: mesmo componente do CTA de orçamento (reforma
 * 2026-08-29). O template dá aos dois as MESMAS classes de geometria —
 * b-base + hdr-cta + vz-skew — e só a cor muda: b-wa (verde oficial, texto e
 * ícone brancos) contra b-royal (azul Veloz). O "detalhe semântico" anterior,
 * branco com filete, não parecia par do botão azul. */

/* ── Botões vz-* com estilo-base GLOBAL (release audit 2026-08-28): as regras
   completas viviam só no CSS por página da loja/templates, e em rotas
   utilitárias (carrinho/checkout) o .vz-wa saía branco-sobre-branco. Aqui o
   componente é completo em qualquer rota; o CSS local só compõe por cima. ── */
/* CTA no site antigo é sempre Montserrat 800 itálico (b-base/btn-*); os
 * vz-* saíam na pilha do corpo. Família, peso e estilo restaurados —
 * geometria e cores ficam. */
a.vz-wa { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:var(--vz-green); color:#fff !important; font-family:'Montserrat',system-ui,sans-serif; font-weight:800; font-style:italic; font-size:14px; line-height:1.2; padding:14px 24px; border-radius:12px; text-decoration:none; transition:background .18s; }
a.vz-wa:hover { background:var(--vz-green-hover); color:#fff !important; }
a.vz-primary { display:inline-flex; align-items:center; justify-content:center; gap:8px; background:#002FC6; color:#fff !important; font-family:'Montserrat',system-ui,sans-serif; font-weight:800; font-style:italic; font-size:14px; line-height:1.2; padding:14px 24px; border-radius:12px; text-decoration:none; transition:background .18s; }
a.vz-primary:hover { background:#0A38D6; }

/* Excerpt do arquivo/busca: o default do widget de posts fica a 4,48:1 sobre
 * o card — abaixo do AA por um fio (release audit 2026-08-28). */
.vz-archive-grid .elementor-post__excerpt, .vz-archive-grid .elementor-post__excerpt p { color:#5B6574 !important; }

/* Botões de bloco Gutenberg (carrinho vazio, telas utilitárias do Woo): sem
 * tema que os estilize, saíam texto branco sobre nada (release audit
 * 2026-08-28). Base mínima na identidade. */
.wp-block-button__link { background:#002FC6; color:#fff !important; padding:12px 22px; border-radius:12px; display:inline-block; text-decoration:none; font-family:'Montserrat',system-ui,sans-serif; font-weight:800; font-style:italic; font-size:14px; }
.wp-block-button__link:hover { background:#0A38D6; color:#fff !important; }
/* Carrinho/checkout em bloco: o alignwide empurra o bloco -80px para fora
 * do viewport no mobile (release audit 2026-08-28 — só a inspeção visual
 * pegou; o pai clipava sem gerar overflow de documento). Alinhamento wide/full
 * é neutralizado nesses blocos utilitários. */
.wp-block-woocommerce-cart.alignwide, .wp-block-woocommerce-checkout.alignwide,
.wp-block-woocommerce-cart.alignfull, .wp-block-woocommerce-checkout.alignfull {
  margin-left:auto !important; margin-right:auto !important; max-width:100% !important; width:auto !important;
}
.wc-block-cart__empty-cart__title { margin:0 auto !important; max-width:100% !important; text-align:center; }

/* ── .vz-skew — APOSENTADA em 2026-08-29 ──
 * A lateral inclinada (clip-path de paralelogramo) foi criada numa rodada de
 * hardening e NUNCA existiu no site antigo, que é a fonte visual de verdade.
 * Era a "linguagem de botão quadrado" reprovada pelo proprietário.
 *
 * A classe continua no markup de cinco builds (header, loja, templates Woo,
 * home). Em vez de caçá-la arquivo a arquivo — e correr o risco de deixar uma
 * viva —, ela é NEUTRALIZADA aqui, na origem: quem a carrega volta a ser um
 * .b-base normal. Uma alteração, site inteiro coerente. */
.vz-skew { clip-path:none; border-radius:inherit; }

/* ── Formulários (pendência 10): retos, borda fina, foco azul. ── */
body .elementor-field-group .elementor-field, body input.elementor-field-textual, body textarea.elementor-field-textual, body select.elementor-field-textual { border-radius:10px !important; border:1px solid #CBD5E1; background:#fff; box-shadow:none; }
body .elementor-field-textual:focus, body .elementor-field:focus { border-color:#002FC6 !important; outline:2px solid rgba(0,47,198,.16); outline-offset:0; box-shadow:none !important; }
body .elementor-field-group label { font-weight:700; color:#0B1734; }
body .elementor-button[type="submit"] { border-radius:12px !important; }

/* ══════════════════════════════════════════════════════════════════════════
   PÁGINAS INTERNAS AUTORAIS — mesmo sistema da home, medido nas internas
   da produção (/personalizacao/bordado): grid de 552+552 com gap 48, H1 de
   48/48, lead 18/29, chips 12px em pílula, foto 5:4 com raio 16.
   ══════════════════════════════════════════════════════════════════════════ */
.hero-trilha { display:flex; align-items:center; gap:8px; font-family:'Montserrat',sans-serif; font-size:14px; color:rgba(255,255,255,.5); margin-bottom:32px; }
.hero-trilha a { color:rgba(255,255,255,.5); text-decoration:none; transition:color .2s; }
.hero-trilha a:hover { color:#fff; }
.hero-trilha svg { flex-shrink:0; opacity:.6; }
.hero-h1 .elementor-heading-title, .hero-h1 { font-size:48px !important; line-height:48px !important; font-weight:900 !important; color:#fff !important; margin-bottom:24px; letter-spacing:-.015em; }
@media (max-width:1023px){ .hero-h1 .elementor-heading-title { font-size:38px !important; line-height:40px !important; } }
@media (max-width:767px){ .hero-h1 .elementor-heading-title { font-size:30px !important; line-height:34px !important; } }
/* Sobre navy o azul da marca some. O realce do H1 usa o azul claro do sistema,
 * o mesmo que a home usa em kicker e ícone sobre fundo escuro. */
.hero-h1 .txt-royal, .hero-h1 .elementor-heading-title .txt-royal { color:#5B7CFF !important; }
.hero-lead { font-size:18px; line-height:1.625; color:rgba(255,255,255,.75); margin-bottom:32px; max-width:552px; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:12px; margin-bottom:32px; }
.hero-chips { display:flex; flex-wrap:wrap; gap:8px; }
.hero-chip-w { padding:6px 12px; border-radius:9999px; background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.2); color:rgba(255,255,255,.8); font-size:12px; font-weight:600; }
.e-con.g-hero-int { display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center; }
@media (max-width:1023px){ .e-con.g-hero-int { grid-template-columns:1fr; } .hero-foto-col { display:none; } }
.hero-foto { aspect-ratio:5/4; border-radius:18px; overflow:hidden; border:1px solid rgba(255,255,255,.1); background:rgba(255,255,255,.05); box-shadow:0 25px 50px -12px rgba(0,0,0,.25); }
.hero-foto img { width:100%; height:100%; object-fit:cover; display:block; }

/* Card de conteúdo — o mesmo peso visual do .step da home. */
.e-con.vcard { background:#fff; border:1px solid #E3E7F1; border-radius:16px; box-shadow:0 2px 14px -7px rgba(7,17,41,.12); transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.e-con.vcard:hover { transform:translateY(-4px); box-shadow:0 18px 40px -20px rgba(11,23,52,.28); border-color:rgba(0,47,198,.38); }
.vcard-ico { width:40px; height:40px; border-radius:8px; background:#EEF2FF; color:#002FC6; display:inline-flex; align-items:center; justify-content:center; }
.vcard-tit .elementor-heading-title { font-family:'Montserrat',sans-serif; font-weight:900 !important; font-style:italic; font-size:17px !important; line-height:26px !important; color:#0B1734 !important; letter-spacing:normal !important; }
.vcard-txt { font-size:14.5px; line-height:1.55; color:#475569; }

/* Corpo editorial das páginas autorais: um só bloco de prosa, tipografia da marca. */
.vz-prosa { font-size:16.5px; line-height:1.72; color:#334155; }
.vz-prosa > * + * { margin-top:18px; }
.vz-prosa h3 { font-family:'Montserrat',sans-serif; font-weight:800; font-style:italic; font-size:19px; color:#0B1734; letter-spacing:-.01em; margin-top:30px; }
.vz-prosa a { color:#002FC6; font-weight:700; text-decoration:none; border-bottom:1px solid rgba(0,47,198,.28); }
.vz-prosa a:hover { border-bottom-color:#002FC6; }
.vz-prosa ul, .vz-prosa ol { padding-left:0; list-style:none; display:flex; flex-direction:column; gap:10px; }
.vz-prosa ul > li { position:relative; padding-left:26px; }
.vz-prosa ul > li::before { content:""; position:absolute; left:6px; top:11px; width:7px; height:7px; border-radius:2px; background:#002FC6; transform:skewX(-18deg); }
.vz-prosa ol { counter-reset:vz; }
.vz-prosa ol > li { position:relative; padding-left:34px; counter-increment:vz; }
.vz-prosa ol > li::before { content:counter(vz,decimal-leading-zero); position:absolute; left:0; top:0; font-family:'Montserrat',sans-serif; font-weight:900; font-style:italic; font-size:13px; color:#002FC6; }
.vz-prosa strong { color:#0B1734; font-weight:700; }
.vz-prosa table { width:100%; border-collapse:collapse; font-size:14px; }
.vz-prosa th { background:#0B1734; color:#fff; font-family:'Montserrat',sans-serif; font-style:italic; font-weight:800; text-align:left; padding:10px 12px; }
.vz-prosa td { border-bottom:1px solid #E3E7F1; padding:10px 12px; }

/* Links relacionados — o link-graph visível na página. */
.e-con.g-rel { display:grid; grid-template-columns:repeat(auto-fit,minmax(238px,1fr)); gap:16px; }
@media (max-width:1023px){ .e-con.g-rel { grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .e-con.g-rel { grid-template-columns:1fr; } }
.rel-card { display:flex; flex-direction:column; gap:6px; background:#fff; border:1px solid #E3E7F1; border-radius:16px; padding:20px; text-decoration:none; transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.rel-card:hover { transform:translateY(-4px); box-shadow:0 18px 40px -20px rgba(11,23,52,.28); border-color:#002FC6; }
.rel-kicker { font-family:'Montserrat',sans-serif; font-weight:800; font-style:italic; font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:#002FC6; }
.rel-tit { font-family:'Montserrat',sans-serif; font-weight:900; font-style:italic; font-size:16px; line-height:24px; color:#0B1734; letter-spacing:normal; }
.rel-txt { font-size:13.5px; color:#475569; line-height:1.5; flex:1; }
.rel-link { font-family:'Montserrat',sans-serif; font-weight:800; font-style:italic; font-size:12.5px; color:#002FC6; display:inline-flex; align-items:center; gap:6px; margin-top:6px; }
.rel-card:hover .rel-link svg { transform:translateX(4px); }
.rel-link svg { transition:transform .2s; }

/* CTA azul de fecho — mesma faixa da home, reutilizável em qualquer página. */
.on-royal-t .elementor-heading-title { color:#fff !important; }
.bg-word.on-royal { font-size:10vw; top:0; -webkit-text-stroke-color:rgba(255,255,255,.07); }
.cta-btns { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }

/* ── Arquivos, categorias e busca ── */
.vz-archive-grid .elementor-posts-container {
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:24px !important;
}
.vz-archive-grid .elementor-post {
  display:flex !important;
  flex-direction:column;
  min-width:0;
  overflow:hidden;
  background:#fff;
  border:1px solid #E3E7F1;
  border-radius:16px;
  box-shadow:0 2px 14px -7px rgba(7,17,41,.12);
  transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;
}
.vz-archive-grid .elementor-post:hover {
  transform:translateY(-4px);
  border-color:rgba(0,47,198,.38);
  box-shadow:0 18px 40px -20px rgba(11,23,52,.28);
}
.vz-archive-grid .elementor-post__thumbnail__link { margin:0 !important; }
.vz-archive-grid .elementor-post__thumbnail { padding-bottom:62.5% !important; }
.vz-archive-grid .elementor-post__thumbnail img { width:100%;height:100%;object-fit:cover;transition:transform .45s ease; }
.vz-archive-grid .elementor-post:hover .elementor-post__thumbnail img { transform:scale(1.04); }
.vz-archive-grid .elementor-post__text { display:flex;flex:1;flex-direction:column;padding:24px !important; }
.vz-archive-grid .elementor-post__title { margin:0 0 10px !important; }
.vz-archive-grid .elementor-post__title a {
  color:#0B1734 !important;
  font-family:'Montserrat',sans-serif;
  font-size:20px;
  font-style:italic;
  font-weight:900;
  line-height:1.15;
  letter-spacing:-.015em;
}
.vz-archive-grid .elementor-post__meta-data { color:#5B6574 !important;font-size:12px;margin-bottom:12px !important; }
.vz-archive-grid .elementor-post__excerpt { color:#475569;font-size:14.5px;line-height:1.55; }
.vz-archive-grid .elementor-post__read-more { margin-top:auto;color:#002FC6 !important;font-family:'Montserrat',sans-serif;font-style:italic;font-weight:800; }
.vz-archive-grid .elementor-pagination { grid-column:1/-1;margin-top:24px; }
.vz-archive-grid .page-numbers { display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;border:1px solid #E3E7F1;border-radius:9px;color:#0B1734; }
.vz-archive-grid .page-numbers.current,.vz-archive-grid .page-numbers:hover { border-color:#002FC6;background:#002FC6;color:#fff; }
.vz-search-form { display:flex;gap:10px;width:100%;max-width:720px;margin-top:8px; }
.vz-search-form input { min-width:0;flex:1;border:1px solid rgba(255,255,255,.25);border-radius:10px;background:rgba(255,255,255,.08);color:#fff;padding:14px 16px;outline:none; }
.vz-search-form input::placeholder { color:rgba(255,255,255,.58); }
.vz-search-form input:focus { border-color:#5B7CFF;box-shadow:0 0 0 3px rgba(91,124,255,.2); }
.vz-search-form button { border:0;border-radius:12px;background:#002FC6;color:#fff;font-family:'Montserrat',sans-serif;font-style:italic;font-weight:800;padding:14px 22px;cursor:pointer; }
.vz-search-form button:hover { background:#0A38D6; }
@media (max-width:1023px){ .vz-archive-grid .elementor-posts-container { grid-template-columns:repeat(2,minmax(0,1fr)) !important; } }
@media (max-width:639px){
  .vz-archive-grid .elementor-posts-container { grid-template-columns:1fr !important; }
  .vz-search-form { flex-direction:column; }
}


/* O bloco do card fica no FIM de propósito: as regras globais de formulário
 * e de raio (body .elementor-field-textual, body .elementor-button[type=submit])
 * são !important e vêm depois. Card antes delas = card sem raio. */
/* ── SEÇÃO DE ORÇAMENTO — o card da referência, medido no site em produção ──
 *
 * Todo valor abaixo foi lido do DOM de velozuniformes.com.br/produtos/
 * camisas-polo/, não estimado de screenshot: wrap 672 · card raio 16, borda
 * 1px #E3E7F1, padding 32, sombra 0 2px 14px -7px · H2 36/40 peso 900 SEM
 * itálico e SEM caixa alta · lead 16/24 · pastilha raio 999 azul 12/800 ·
 * label 13/700 com 6px até o campo · campo raio 10, padding 12/14, 15px ·
 * 14px entre campos · 16px até o botão · botão raio 11, #0F8A4C, 15/800, sem
 * itálico, com o ícone do WhatsApp.
 *
 * O raio arredondado contraria a diretriz de raio 0–2 da rodada de hardening.
 * Vale aqui por decisão explícita do proprietário na revisão visual: este card
 * é a referência aprovada, e a referência é o site que já está no ar. */
.vz-cot-cabeca { max-width:672px; margin:0 auto 40px; text-align:center; }
.vz-cot-cabeca .eyebrow { display:block; margin:0 0 8px; font-family:'Montserrat',sans-serif !important; font-size:11px !important; font-weight:800 !important; font-style:italic !important; letter-spacing:.14em !important; text-transform:uppercase !important; color:#002FC6 !important; }
.vz-cot-cabeca h2 { margin:0; font-family:'Montserrat',sans-serif; font-weight:900; font-style:normal; text-transform:none; font-size:clamp(28px,3.4vw,36px); line-height:1.11; letter-spacing:-.015em; color:#0B1734; }
.vz-cot-cabeca p { margin:16px 0 0; font-size:16px; line-height:1.5; color:#475569; }

.e-con.vz-cot-card { max-width:672px; background:#fff; border:1px solid #E3E7F1; border-radius:16px; padding:32px; box-shadow:0 2px 14px -7px rgba(7,17,41,.12); }
@media (max-width:600px){ .e-con.vz-cot-card { padding:24px 20px; border-radius:14px; } }

/* a pastilha é pastilha mesmo: é assim na referência */
body .vz-cot-card .vz-min-pill { display:inline-block; margin:0 0 14px; padding:5px 12px; border:0; border-radius:999px; background:#002FC6; color:#fff; font-family:'Montserrat',sans-serif; font-size:12px; font-weight:800; font-style:normal; letter-spacing:normal; text-transform:none; }

body .vz-cot-card .elementor-field-group { margin-bottom:14px !important; padding:0 !important; }
body .vz-cot-card .elementor-field-group.e-form__buttons { margin-bottom:0 !important; margin-top:1px !important; }
body .vz-cot-card .elementor-field-label { display:block; margin-bottom:6px; font-family:'Montserrat',sans-serif; font-size:13px !important; font-weight:700 !important; color:#0B1734 !important; }
body .vz-cot-card .elementor-field-textual { height:auto; border:1px solid #E3E7F1 !important; border-radius:10px !important; padding:12px 14px !important; font-family:'Lato',sans-serif; font-size:15px !important; line-height:1.5; color:#0B1734; background:#fff !important; }
body .vz-cot-card .elementor-field-textual::placeholder { color:#94A3B8; }
body .vz-cot-card .elementor-field-textual:focus { border-color:#002FC6 !important; outline:2px solid rgba(0,47,198,.16) !important; outline-offset:0; }

body .vz-cot-card .elementor-button { display:flex; align-items:center; justify-content:center; gap:9px; width:100%; padding:14px 18px !important; border-radius:11px !important; background:#0D7C44 !important; color:#fff !important; font-family:'Montserrat',sans-serif !important; font-size:15px !important; font-weight:800 !important; font-style:italic !important; text-transform:none; box-shadow:none !important; transition:background .18s; }
/* O par estava invertido: o botão usava a cor de HOVER (#0F8A4C) como estado
 * normal, e branco sobre ela dá contraste 4,41, abaixo dos 4,5 de AA. O resto
 * do site já usa #0D7C44 como base (5,27) e #0F8A4C como hover. Uma troca na
 * origem corrige as 47 ocorrências e alinha o botão ao design system, sem
 * mexer em identidade, tamanho, copy nem componente. */
body .vz-cot-card .elementor-button:hover { background:#0F8A4C !important; }
/* O ícone do WhatsApp vem por máscara CSS: o widget de formulário do Elementor
 * não aceita SVG dentro do botão de envio, e a referência tem o ícone. Mesma
 * técnica que o wpp-icon do carousel.css já usa no projeto. */
body .vz-cot-card .elementor-button-content-wrapper::before { content:""; width:20px; height:20px; flex:0 0 20px; background-color:currentColor; -webkit-mask:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20d='M380.9%2097.1C339%2055.1%20283.2%2032%20223.9%2032c-122.4%200-222%2099.6-222%20222%200%2039.1%2010.2%2077.3%2029.6%20111L0%20480l117.7-30.9c32.4%2017.7%2068.9%2027%20106.1%2027h.1c122.3%200%20224.1-99.6%20224.1-222%200-59.3-25.2-115-67.1-157zm-157%20341.6c-33.2%200-65.7-8.9-94-25.7l-6.7-4-69.8%2018.3L72%20359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2%200-101.7%2082.8-184.5%20184.6-184.5%2049.3%200%2095.6%2019.2%20130.4%2054.1%2034.8%2034.9%2056.2%2081.2%2056.1%20130.5%200%20101.8-84.9%20184.6-186.6%20184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5%202.8-3.7%205.6-14.3%2018-17.6%2021.8-3.2%203.7-6.5%204.2-12%201.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8%205.7-9.1%2016.3-30.3%201.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7%200-9.7%201.4-14.8%206.9-5.1%205.6-19.4%2019-19.4%2046.3%200%2027.3%2019.9%2053.7%2022.6%2057.4%202.8%203.7%2039.1%2059.7%2094.8%2083.8%2035.2%2015.2%2049%2016.5%2066.6%2013.9%2010.7-1.6%2032.8-13.4%2037.4-26.4%204.6-13%204.6-24.1%203.2-26.4-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E") center/contain no-repeat; mask:url("data:image/svg+xml;charset=utf-8,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20448%20512'%3E%3Cpath%20d='M380.9%2097.1C339%2055.1%20283.2%2032%20223.9%2032c-122.4%200-222%2099.6-222%20222%200%2039.1%2010.2%2077.3%2029.6%20111L0%20480l117.7-30.9c32.4%2017.7%2068.9%2027%20106.1%2027h.1c122.3%200%20224.1-99.6%20224.1-222%200-59.3-25.2-115-67.1-157zm-157%20341.6c-33.2%200-65.7-8.9-94-25.7l-6.7-4-69.8%2018.3L72%20359.2l-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2%200-101.7%2082.8-184.5%20184.6-184.5%2049.3%200%2095.6%2019.2%20130.4%2054.1%2034.8%2034.9%2056.2%2081.2%2056.1%20130.5%200%20101.8-84.9%20184.6-186.6%20184.6zm101.2-138.2c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5%202.8-3.7%205.6-14.3%2018-17.6%2021.8-3.2%203.7-6.5%204.2-12%201.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8%205.7-9.1%2016.3-30.3%201.8-3.7.9-6.9-.5-9.7-1.4-2.8-12.5-30.1-17.1-41.2-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2-3.7%200-9.7%201.4-14.8%206.9-5.1%205.6-19.4%2019-19.4%2046.3%200%2027.3%2019.9%2053.7%2022.6%2057.4%202.8%203.7%2039.1%2059.7%2094.8%2083.8%2035.2%2015.2%2049%2016.5%2066.6%2013.9%2010.7-1.6%2032.8-13.4%2037.4-26.4%204.6-13%204.6-24.1%203.2-26.4-1.3-2.5-5-3.9-10.5-6.6z'/%3E%3C/svg%3E") center/contain no-repeat; }
body .vz-cot-card .elementor-button-content-wrapper { display:flex; align-items:center; justify-content:center; gap:9px; }


/* Formulários de conta do WooCommerce: largura de leitura em desktop.
 * Sem isto, os campos de login herdam os 1092px do container. Em telas
 * pequenas nada muda, porque o max-width só entra quando sobra espaço. */
body .woocommerce-form-login,
body .woocommerce-form-register,
body .woocommerce-ResetPassword,
body .woocommerce-EditAccountForm { max-width:480px; margin-inline:auto; }
body .woocommerce-form-login .woocommerce-Input,
body .woocommerce-form-register .woocommerce-Input,
body .woocommerce-ResetPassword .woocommerce-Input { width:100%; box-sizing:border-box; }


/* ═══ INTERNAS: tailwind congelado + carrossel + design system (build 13) ═══ */
*, ::before, ::after { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; }
::backdrop { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; }
*, ::after, ::before { box-sizing: border-box; border-width: 0px; border-style: solid; border-color: rgb(229, 231, 235); }
::after, ::before { --tw-content: ''; }
:host, html { line-height: 1.5; text-size-adjust: 100%; tab-size: 4; font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; font-feature-settings: normal; font-variation-settings: normal; -webkit-tap-highlight-color: transparent; }
body { margin: 0px; line-height: inherit; }
hr { height: 0px; color: inherit; border-top-width: 1px; }
abbr:where([title]) { text-decoration: underline dotted; }
h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
a { color: inherit; text-decoration: inherit; }
b, strong { font-weight: bolder; }
code, kbd, pre, samp { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-feature-settings: normal; font-variation-settings: normal; font-size: 1em; }
small { font-size: 80%; }
sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; }
sub { bottom: -0.25em; }
sup { top: -0.5em; }
table { text-indent: 0px; border-color: inherit; border-collapse: collapse; }
button, input, optgroup, select, textarea { font-family: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 100%; font-weight: inherit; line-height: inherit; letter-spacing: inherit; color: inherit; margin: 0px; padding: 0px; }
button, select { text-transform: none; }
button, input:where([type="button"]), input:where([type="reset"]), input:where([type="submit"]) { appearance: button; background-color: transparent; background-image: none; }
progress { vertical-align: baseline; }
::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; }
[type="search"] { appearance: textfield; outline-offset: -2px; }
::-webkit-search-decoration { appearance: none; }
::-webkit-file-upload-button { appearance: button; font: inherit; }
summary { display: list-item; }
blockquote, dd, dl, figure, h1, h2, h3, h4, h5, h6, hr, p, pre { margin: 0px; }
fieldset { margin: 0px; padding: 0px; }
legend { padding: 0px; }
menu, ol, ul { list-style: none; margin: 0px; padding: 0px; }
dialog { padding: 0px; }
textarea { resize: vertical; }
input::placeholder, textarea::placeholder { opacity: 1; color: rgb(156, 163, 175); }
[role="button"], button { cursor: pointer; }
:disabled { cursor: default; }
audio, canvas, embed, iframe, img, object, svg, video { display: block; vertical-align: middle; }
img, video { max-width: 100%; height: auto; }
[hidden]:where(:not([hidden="until-found"])) { display: none; }
.pointer-events-none { pointer-events: none; }
.fixed { position: fixed; }
.absolute { position: absolute; }
.relative { position: relative; }
.sticky { position: sticky; }
.inset-0 { inset: 0px; }
.-bottom-10 { bottom: -2.5rem; }
.-right-10 { right: -2.5rem; }
.-right-32 { right: -8rem; }
.-right-6 { right: -1.5rem; }
.-right-8 { right: -2rem; }
.-top-32 { top: -8rem; }
.-top-6 { top: -1.5rem; }
.-top-8 { top: -2rem; }
.bottom-0 { bottom: 0px; }
.bottom-24 { bottom: 6rem; }
.left-0 { left: 0px; }
.left-3 { left: 0.75rem; }
.right-0 { right: 0px; }
.right-5 { right: 1.25rem; }
.top-0 { top: 0px; }
.top-24 { top: 6rem; }
.top-3 { top: 0.75rem; }
.z-10 { z-index: 10; }
.z-40 { z-index: 40; }
.z-50 { z-index: 50; }
.mx-auto { margin-left: auto; margin-right: auto; }
.my-10 { margin-top: 2.5rem; margin-bottom: 2.5rem; }
.my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; }
.-mb-1 { margin-bottom: -0.25rem; }
.-mt-4 { margin-top: -1rem; }
.mb-0 { margin-bottom: 0px; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-12 { margin-bottom: 3rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }
.mb-5 { margin-bottom: 1.25rem; }
.mb-6 { margin-bottom: 1.5rem; }
.mb-8 { margin-bottom: 2rem; }
.mt-0\.5 { margin-top: 0.125rem; }
.mt-1 { margin-top: 0.25rem; }
.mt-10 { margin-top: 2.5rem; }
.mt-12 { margin-top: 3rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-3 { margin-top: 0.75rem; }
.mt-4 { margin-top: 1rem; }
.mt-5 { margin-top: 1.25rem; }
.mt-6 { margin-top: 1.5rem; }
.mt-7 { margin-top: 1.75rem; }
.mt-8 { margin-top: 2rem; }
.mt-auto { margin-top: auto; }
.block { display: block; }
.inline-block { display: inline-block; }
.flex { display: flex; }
.inline-flex { display: inline-flex; }
.grid { display: grid; }
.hidden { display: none; }
.h-0\.5 { height: 0.125rem; }
.h-10 { height: 2.5rem; }
.h-12 { height: 3rem; }
.h-14 { height: 3.5rem; }
.h-16 { height: 4rem; }
.h-20 { height: 5rem; }
.h-24 { height: 6rem; }
.h-3\.5 { height: 0.875rem; }
.h-32 { height: 8rem; }
.h-4 { height: 1rem; }
.h-44 { height: 11rem; }
.h-5 { height: 1.25rem; }
.h-56 { height: 14rem; }
.h-7 { height: 1.75rem; }
.h-8 { height: 2rem; }
.h-80 { height: 20rem; }
.h-9 { height: 2.25rem; }
.h-\[220px\] { height: 220px; }
.h-full { height: 100%; }
.w-10 { width: 2.5rem; }
.w-12 { width: 3rem; }
.w-14 { width: 3.5rem; }
.w-20 { width: 5rem; }
.w-24 { width: 6rem; }
.w-3\.5 { width: 0.875rem; }
.w-32 { width: 8rem; }
.w-4 { width: 1rem; }
.w-5 { width: 1.25rem; }
.w-56 { width: 14rem; }
.w-7 { width: 1.75rem; }
.w-8 { width: 2rem; }
.w-80 { width: 20rem; }
.w-9 { width: 2.25rem; }
.w-auto { width: auto; }
.w-full { width: 100%; }
.max-w-2xl { max-width: 42rem; }
.max-w-3xl { max-width: 48rem; }
.max-w-md { max-width: 28rem; }
.max-w-xl { max-width: 36rem; }
.shrink-0 { flex-shrink: 0; }
@keyframes pulse2 { 0%, 100% { box-shadow: rgba(34, 197, 94, 0.6) 0px 0px 0px 0px; }
  50% { box-shadow: rgba(34, 197, 94, 0) 0px 0px 0px 14px; } }
.animate-pulse2 { animation: 2s ease 0s infinite normal none running pulse2; }
.cursor-pointer { cursor: pointer; }
.grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
.flex-col { flex-direction: column; }
.flex-wrap { flex-wrap: wrap; }
.items-start { align-items: flex-start; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }
.gap-0\.5 { gap: 0.125rem; }
.gap-1\.5 { gap: 0.375rem; }
.gap-10 { gap: 2.5rem; }
.gap-2 { gap: 0.5rem; }
.gap-2\.5 { gap: 0.625rem; }
.gap-3 { gap: 0.75rem; }
.gap-4 { gap: 1rem; }
.gap-5 { gap: 1.25rem; }
.gap-6 { gap: 1.5rem; }
.space-y-0\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.125rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.125rem * var(--tw-space-y-reverse)); }
.space-y-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); }
.space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); }
.space-y-2\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.625rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.625rem * var(--tw-space-y-reverse)); }
.space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); }
.overflow-hidden { overflow: hidden; }
.rounded { border-radius: 0.25rem; }
.rounded-2xl { border-radius: 1rem; }
.rounded-full { border-radius: 9999px; }
.rounded-lg { border-radius: 0.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.border { border-width: 1px; }
.border-b { border-bottom-width: 1px; }
.border-t { border-top-width: 1px; }
.border-line { --tw-border-opacity: 1; border-color: rgb(227 231 241 / var(--tw-border-opacity, 1)); }
.border-orange\/30 { border-color: rgba(0, 47, 198, 0.3); }
.border-slate-100 { --tw-border-opacity: 1; border-color: rgb(241 245 249 / var(--tw-border-opacity, 1)); }
.border-white\/10 { border-color: rgba(255, 255, 255, 0.1); }
.border-white\/15 { border-color: rgba(255, 255, 255, 0.15); }
.bg-blue-100 { --tw-bg-opacity: 1; background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); }
.bg-blue-600 { --tw-bg-opacity: 1; background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); }
.bg-green-100 { --tw-bg-opacity: 1; background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1)); }
.bg-green-500 { --tw-bg-opacity: 1; background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); }
.bg-mist { --tw-bg-opacity: 1; background-color: rgb(244 246 251 / var(--tw-bg-opacity, 1)); }
.bg-navy { --tw-bg-opacity: 1; background-color: rgb(11 23 52 / var(--tw-bg-opacity, 1)); }
.bg-orange { --tw-bg-opacity: 1; background-color: rgb(0 47 198 / var(--tw-bg-opacity, 1)); }
.bg-orange-100 { --tw-bg-opacity: 1; background-color: rgb(221 229 255 / var(--tw-bg-opacity, 1)); }
.bg-orange\/15 { background-color: rgba(0, 47, 198, 0.15); }
.bg-orange\/20 { background-color: rgba(0, 47, 198, 0.2); }
.bg-orange\/5 { background-color: rgba(0, 47, 198, 0.05); }
.bg-purple-100 { --tw-bg-opacity: 1; background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1)); }
.bg-slate-100 { --tw-bg-opacity: 1; background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1)); }
.bg-slate-700 { --tw-bg-opacity: 1; background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1)); }
.bg-white { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); }
.bg-white\/10 { background-color: rgba(255, 255, 255, 0.1); }
.bg-white\/20 { background-color: rgba(255, 255, 255, 0.2); }
.bg-white\/95 { background-color: rgba(255, 255, 255, 0.95); }
.object-contain { object-fit: contain; }
.object-cover { object-fit: cover; }
.p-5 { padding: 1.25rem; }
.p-7 { padding: 1.75rem; }
.p-8 { padding: 2rem; }
.\!px-5 { padding-left: 1.25rem !important; padding-right: 1.25rem !important; }
.\!py-2\.5 { padding-top: 0.625rem !important; padding-bottom: 0.625rem !important; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.px-5 { padding-left: 1.25rem; padding-right: 1.25rem; }
.py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; }
.py-10 { padding-top: 2.5rem; padding-bottom: 2.5rem; }
.py-12 { padding-top: 3rem; padding-bottom: 3rem; }
.py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.py-4 { padding-top: 1rem; padding-bottom: 1rem; }
.pb-8 { padding-bottom: 2rem; }
.pt-16 { padding-top: 4rem; }
.pt-4 { padding-top: 1rem; }
.pt-6 { padding-top: 1.5rem; }
.text-center { text-align: center; }
.font-body { font-family: Lato, system-ui, sans-serif; }
.font-display { font-family: Montserrat, system-ui, sans-serif; }
.text-2xl { font-size: 1.5rem; line-height: 2rem; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-\[15px\] { font-size: 15px; }
.text-\[30px\] { font-size: 30px; }
.text-base { font-size: 1rem; line-height: 1.5rem; }
.text-lg { font-size: 1.125rem; line-height: 1.75rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.text-xs { font-size: 0.75rem; line-height: 1rem; }
.font-black { font-weight: 900; }
.font-bold { font-weight: 700; }
.font-semibold { font-weight: 600; }
.uppercase { text-transform: uppercase; }
.leading-\[1\.08\] { line-height: 1.08; }
.leading-relaxed { line-height: 1.625; }
.leading-snug { line-height: 1.375; }
.tracking-wider { letter-spacing: 0.05em; }
.tracking-widest { letter-spacing: 0.1em; }
.text-blue-800 { --tw-text-opacity: 1; color: rgb(30 64 175 / var(--tw-text-opacity, 1)); }
.text-green-500 { --tw-text-opacity: 1; color: rgb(34 197 94 / var(--tw-text-opacity, 1)); }
.text-green-800 { --tw-text-opacity: 1; color: rgb(22 101 52 / var(--tw-text-opacity, 1)); }
.text-navy { --tw-text-opacity: 1; color: rgb(11 23 52 / var(--tw-text-opacity, 1)); }
.text-orange { --tw-text-opacity: 1; color: rgb(0 47 198 / var(--tw-text-opacity, 1)); }
.text-orange-800 { --tw-text-opacity: 1; color: rgb(154 52 18 / var(--tw-text-opacity, 1)); }
.text-purple-800 { --tw-text-opacity: 1; color: rgb(107 33 168 / var(--tw-text-opacity, 1)); }
.text-red-400 { --tw-text-opacity: 1; color: rgb(248 113 113 / var(--tw-text-opacity, 1)); }
.text-slate-400 { --tw-text-opacity: 1; color: rgb(148 163 184 / var(--tw-text-opacity, 1)); }
.text-slate-500 { --tw-text-opacity: 1; color: rgb(100 116 139 / var(--tw-text-opacity, 1)); }
.text-slate-600 { --tw-text-opacity: 1; color: rgb(71 85 105 / var(--tw-text-opacity, 1)); }
.text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); }
.text-white\/40 { color: rgba(255, 255, 255, 0.4); }
.text-white\/45 { color: rgba(255, 255, 255, 0.45); }
.text-white\/60 { color: rgba(255, 255, 255, 0.6); }
.text-white\/65 { color: rgba(255, 255, 255, 0.65); }
.text-white\/70 { color: rgba(255, 255, 255, 0.7); }
.text-white\/80 { color: rgba(255, 255, 255, 0.8); }
.text-white\/90 { color: rgba(255, 255, 255, 0.9); }
.shadow-\[0_-6px_24px_-12px_rgba\(11\,23\,52\,0\.18\)\] { --tw-shadow: 0 -6px 24px -12px rgba(11,23,52,0.18); --tw-shadow-colored: 0 -6px 24px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-\[0_4px_24px_-8px_rgba\(11\,23\,52\,0\.18\)\] { --tw-shadow: 0 4px 24px -8px rgba(11,23,52,0.18); --tw-shadow-colored: 0 4px 24px -8px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-lg { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.ring-1 { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.ring-white\/30 { --tw-ring-color: rgb(255 255 255 / 0.3); }
.blur-2xl { --tw-blur: blur(40px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.blur-3xl { --tw-blur: blur(64px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.blur-xl { --tw-blur: blur(24px); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.backdrop-blur { --tw-backdrop-blur: blur(8px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
.transition { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-text-decoration-color, -webkit-backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; }
.hover\:bg-green-600:hover { --tw-bg-opacity: 1; background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); }
.hover\:bg-slate-200:hover { --tw-bg-opacity: 1; background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)); }
.hover\:text-navy:hover { --tw-text-opacity: 1; color: rgb(11 23 52 / var(--tw-text-opacity, 1)); }
.hover\:text-white:hover { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); }
.group:hover .group-hover\:gap-2\.5 { gap: 0.625rem; }
.group:hover .group-hover\:text-orange { --tw-text-opacity: 1; color: rgb(0 47 198 / var(--tw-text-opacity, 1)); }
.bottom-4 { bottom: 1rem; }
.left-1\/2 { left: 50%; }
.-mx-0 { margin-left: 0px; margin-right: 0px; }
.mb-0\.5 { margin-bottom: 0.125rem; }
.mb-1\.5 { margin-bottom: 0.375rem; }
.mb-10 { margin-bottom: 2.5rem; }
.mb-16 { margin-bottom: 4rem; }
.aspect-\[4\/3\] { aspect-ratio: 4 / 3; }
.aspect-square { aspect-ratio: 1 / 1; }
.aspect-video { aspect-ratio: 16 / 9; }
.h-36 { height: 9rem; }
.h-40 { height: 10rem; }
.h-52 { height: 13rem; }
.h-6 { height: 1.5rem; }
.h-64 { height: 16rem; }
.h-72 { height: 18rem; }
.w-16 { width: 4rem; }
.w-6 { width: 1.5rem; }
.max-w-4xl { max-width: 56rem; }
.max-w-5xl { max-width: 64rem; }
.-translate-x-1\/2 { --tw-translate-x: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rotate-\[-1deg\] { --tw-rotate: -1deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rotate-\[-2deg\] { --tw-rotate: -2deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rotate-\[1\.5deg\] { --tw-rotate: 1.5deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.rotate-\[2deg\] { --tw-rotate: 2deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
.grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
.gap-1 { gap: 0.25rem; }
.gap-12 { gap: 3rem; }
.gap-14 { gap: 3.5rem; }
.gap-16 { gap: 4rem; }
.gap-8 { gap: 2rem; }
.space-y-10 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2.5rem * var(--tw-space-y-reverse)); }
.space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1rem * var(--tw-space-y-reverse)); }
.divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); }
.divide-line > :not([hidden]) ~ :not([hidden]) { --tw-divide-opacity: 1; border-color: rgb(227 231 241 / var(--tw-divide-opacity, 1)); }
.border-l-4 { border-left-width: 4px; }
.border-dashed { border-style: dashed; }
.border-navy { --tw-border-opacity: 1; border-color: rgb(11 23 52 / var(--tw-border-opacity, 1)); }
.border-orange\/40 { border-color: rgba(0, 47, 198, 0.4); }
.border-red-400 { --tw-border-opacity: 1; border-color: rgb(248 113 113 / var(--tw-border-opacity, 1)); }
.border-white\/20 { border-color: rgba(255, 255, 255, 0.2); }
.bg-indigo-100 { --tw-bg-opacity: 1; background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1)); }
.bg-navy\/10 { background-color: rgba(11, 23, 52, 0.1); }
.bg-navy\/5 { background-color: rgba(11, 23, 52, 0.05); }
.bg-orange\/10 { background-color: rgba(0, 47, 198, 0.1); }
.bg-red-100 { --tw-bg-opacity: 1; background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1)); }
.bg-red-50 { --tw-bg-opacity: 1; background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1)); }
.bg-yellow-100 { --tw-bg-opacity: 1; background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1)); }
.bg-gradient-to-br { background-image: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.bg-gradient-to-r { background-image: linear-gradient(to right, var(--tw-gradient-stops)); }
.from-navy { --tw-gradient-from: #0B1734 var(--tw-gradient-from-position); --tw-gradient-to: rgb(11 23 52 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-navy\/85 { --tw-gradient-from: rgb(11 23 52 / 0.85) var(--tw-gradient-from-position); --tw-gradient-to: rgb(11 23 52 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-purple-500 { --tw-gradient-from: #a855f7 var(--tw-gradient-from-position); --tw-gradient-to: rgb(168 85 247 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.via-navy\/95 { --tw-gradient-to: rgb(11 23 52 / 0)  var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgb(11 23 52 / 0.95) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.to-navy\/20 { --tw-gradient-to: rgb(11 23 52 / 0.2) var(--tw-gradient-to-position); }
.to-navy\/80 { --tw-gradient-to: rgb(11 23 52 / 0.8) var(--tw-gradient-to-position); }
.to-pink-500 { --tw-gradient-to: #ec4899 var(--tw-gradient-to-position); }
.fill-current { fill: currentcolor; }
.object-center { object-position: center center; }
.object-top { object-position: center top; }
.p-3 { padding: 0.75rem; }
.p-4 { padding: 1rem; }
.p-6 { padding: 1.5rem; }
.px-6 { padding-left: 1.5rem; padding-right: 1.5rem; }
.py-0 { padding-top: 0px; padding-bottom: 0px; }
.py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.py-2\.5 { padding-top: 0.625rem; padding-bottom: 0.625rem; }
.py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.pb-16 { padding-bottom: 4rem; }
.pl-10 { padding-left: 2.5rem; }
.pt-14 { padding-top: 3.5rem; }
.font-display { font-family: Montserrat, sans-serif; }
.text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.text-\[11px\] { font-size: 11px; }
.text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.font-medium { font-weight: 500; }
.font-normal { font-weight: 400; }
.leading-tight { line-height: 1.25; }
.tracking-\[0\.18em\] { letter-spacing: 0.18em; }
.text-blue-600 { --tw-text-opacity: 1; color: rgb(37 99 235 / var(--tw-text-opacity, 1)); }
.text-blue-700 { --tw-text-opacity: 1; color: rgb(29 78 216 / var(--tw-text-opacity, 1)); }
.text-green-600 { --tw-text-opacity: 1; color: rgb(22 163 74 / var(--tw-text-opacity, 1)); }
.text-indigo-700 { --tw-text-opacity: 1; color: rgb(67 56 202 / var(--tw-text-opacity, 1)); }
.text-purple-700 { --tw-text-opacity: 1; color: rgb(126 34 206 / var(--tw-text-opacity, 1)); }
.text-red-700 { --tw-text-opacity: 1; color: rgb(185 28 28 / var(--tw-text-opacity, 1)); }
.text-slate-700 { --tw-text-opacity: 1; color: rgb(51 65 85 / var(--tw-text-opacity, 1)); }
.text-white\/50 { color: rgba(255, 255, 255, 0.5); }
.text-white\/75 { color: rgba(255, 255, 255, 0.75); }
.text-yellow-400 { --tw-text-opacity: 1; color: rgb(250 204 21 / var(--tw-text-opacity, 1)); }
.text-yellow-700 { --tw-text-opacity: 1; color: rgb(161 98 7 / var(--tw-text-opacity, 1)); }
.opacity-30 { opacity: 0.3; }
.opacity-70 { opacity: 0.7; }
.shadow { --tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-2xl { --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-sm { --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05); --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-xl { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.ring-white\/20 { --tw-ring-color: rgb(255 255 255 / 0.2); }
.hover\:border-orange:hover { --tw-border-opacity: 1; border-color: rgb(0 47 198 / var(--tw-border-opacity, 1)); }
.hover\:bg-blue-700:hover { --tw-bg-opacity: 1; background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1)); }
.hover\:bg-navy:hover { --tw-bg-opacity: 1; background-color: rgb(11 23 52 / var(--tw-bg-opacity, 1)); }
.hover\:bg-orange:hover { --tw-bg-opacity: 1; background-color: rgb(0 47 198 / var(--tw-bg-opacity, 1)); }
.hover\:text-orange:hover { --tw-text-opacity: 1; color: rgb(0 47 198 / var(--tw-text-opacity, 1)); }
.hover\:underline:hover { text-decoration-line: underline; }
.hover\:opacity-90:hover { opacity: 0.9; }
.hover\:shadow-xl:hover { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.focus\:border-orange:focus { --tw-border-opacity: 1; border-color: rgb(0 47 198 / var(--tw-border-opacity, 1)); }
.focus\:outline-none:focus { outline: transparent solid 2px; outline-offset: 2px; }
.focus\:ring-2:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }
.focus\:ring-orange\/20:focus { --tw-ring-color: rgb(0 47 198 / 0.2); }
.group:hover .group-hover\:bg-orange\/20 { background-color: rgba(0, 47, 198, 0.2); }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0px; margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space: nowrap; border-width: 0px; }
.inset-x-0 { left: 0px; right: 0px; }
.-bottom-24 { bottom: -6rem; }
.-bottom-32 { bottom: -8rem; }
.-bottom-5 { bottom: -1.25rem; }
.-bottom-6 { bottom: -1.5rem; }
.-bottom-8 { bottom: -2rem; }
.-left-10 { left: -2.5rem; }
.-left-24 { left: -6rem; }
.-left-4 { left: -1rem; }
.-left-40 { left: -10rem; }
.-left-6 { left: -1.5rem; }
.-left-8 { left: -2rem; }
.-right-16 { right: -4rem; }
.-right-40 { right: -10rem; }
.-right-48 { right: -12rem; }
.-right-5 { right: -1.25rem; }
.-top-10 { top: -2.5rem; }
.-top-16 { top: -4rem; }
.-top-4 { top: -1rem; }
.-top-40 { top: -10rem; }
.-top-48 { top: -12rem; }
.bottom-10 { bottom: 2.5rem; }
.bottom-36 { bottom: 9rem; }
.bottom-5 { bottom: 1.25rem; }
.left-4 { left: 1rem; }
.left-5 { left: 1.25rem; }
.right-4 { right: 1rem; }
.top-4 { top: 1rem; }
.top-5 { top: 1.25rem; }
.z-20 { z-index: 20; }
.z-\[1100\] { z-index: 1100; }
.z-\[980\] { z-index: 980; }
.z-\[990\] { z-index: 990; }
.mb-14 { margin-bottom: 3.5rem; }
.mt-0 { margin-top: 0px; }
.mt-1\.5 { margin-top: 0.375rem; }
.line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.aspect-\[4\/5\] { aspect-ratio: 4 / 5; }
.h-1\.5 { height: 0.375rem; }
.h-1\/3 { height: 33.3333%; }
.h-11 { height: 2.75rem; }
.h-28 { height: 7rem; }
.h-3 { height: 0.75rem; }
.h-96 { height: 24rem; }
.h-\[440px\] { height: 440px; }
.h-\[520px\] { height: 520px; }
.h-\[600px\] { height: 600px; }
.h-\[620px\] { height: 620px; }
.min-h-\[300px\] { min-height: 300px; }
.w-1\.5 { width: 0.375rem; }
.w-11 { width: 2.75rem; }
.w-28 { width: 7rem; }
.w-3 { width: 0.75rem; }
.w-36 { width: 9rem; }
.w-40 { width: 10rem; }
.w-72 { width: 18rem; }
.w-96 { width: 24rem; }
.w-\[440px\] { width: 440px; }
.w-\[520px\] { width: 520px; }
.w-\[600px\] { width: 600px; }
.w-\[620px\] { width: 620px; }
.w-\[min\(440px\,88\%\)\] { width: min(440px, 88%); }
.min-w-0 { min-width: 0px; }
.max-w-\[280px\] { max-width: 280px; }
.max-w-\[440px\] { max-width: 440px; }
.flex-1 { flex: 1 1 0%; }
.border-separate { border-collapse: separate; }
.border-spacing-0 { --tw-border-spacing-x: 0px; --tw-border-spacing-y: 0px; border-spacing: var(--tw-border-spacing-x) var(--tw-border-spacing-y); }
.-rotate-90 { --tw-rotate: -90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.cursor-default { cursor: default; }
.items-end { align-items: flex-end; }
.gap-x-6 { column-gap: 1.5rem; }
.gap-y-3 { row-gap: 0.75rem; }
.space-y-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); }
.space-y-5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); }
.overflow-x-auto { overflow-x: auto; }
.truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rounded-3xl { border-radius: 1.5rem; }
.rounded-\[26px\] { border-radius: 26px; }
.rounded-bl-2xl { border-bottom-left-radius: 1rem; }
.rounded-br-2xl { border-bottom-right-radius: 1rem; }
.border-none { border-style: none; }
.border-amber-200 { --tw-border-opacity: 1; border-color: rgb(253 230 138 / var(--tw-border-opacity, 1)); }
.border-gray-100 { --tw-border-opacity: 1; border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)); }
.border-gray-200 { --tw-border-opacity: 1; border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); }
.border-green-400\/30 { border-color: rgba(74, 222, 128, 0.3); }
.border-navy\/70 { border-color: rgba(11, 23, 52, 0.7); }
.border-white\/30 { border-color: rgba(255, 255, 255, 0.3); }
.bg-amber-50 { --tw-bg-opacity: 1; background-color: rgb(255 251 235 / var(--tw-bg-opacity, 1)); }
.bg-black\/15 { background-color: rgba(0, 0, 0, 0.15); }
.bg-black\/30 { background-color: rgba(0, 0, 0, 0.3); }
.bg-gray-200 { --tw-bg-opacity: 1; background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); }
.bg-green-500\/20 { background-color: rgba(34, 197, 94, 0.2); }
.bg-navy-600\/40 { background-color: rgba(18, 32, 74, 0.4); }
.bg-navy-600\/60 { background-color: rgba(18, 32, 74, 0.6); }
.bg-navy\/75 { background-color: rgba(11, 23, 52, 0.75); }
.bg-navy\/95 { background-color: rgba(11, 23, 52, 0.95); }
.bg-orange\/90 { background-color: rgba(0, 47, 198, 0.9); }
.bg-orange\/\[0\.08\] { background-color: rgba(0, 47, 198, 0.08); }
.bg-white\/15 { background-color: rgba(255, 255, 255, 0.15); }
.bg-white\/5 { background-color: rgba(255, 255, 255, 0.05); }
.bg-white\/80 { background-color: rgba(255, 255, 255, 0.8); }
.bg-white\/\[0\.04\] { background-color: rgba(255, 255, 255, 0.04); }
.bg-gradient-to-t { background-image: linear-gradient(to top, var(--tw-gradient-stops)); }
.from-black\/20 { --tw-gradient-from: rgb(0 0 0 / 0.2) var(--tw-gradient-from-position); --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-navy\/75 { --tw-gradient-from: rgb(11 23 52 / 0.75) var(--tw-gradient-from-position); --tw-gradient-to: rgb(11 23 52 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-navy\/80 { --tw-gradient-from: rgb(11 23 52 / 0.8) var(--tw-gradient-from-position); --tw-gradient-to: rgb(11 23 52 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.via-navy\/10 { --tw-gradient-to: rgb(11 23 52 / 0)  var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgb(11 23 52 / 0.1) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.to-transparent { --tw-gradient-to: transparent var(--tw-gradient-to-position); }
.px-2\.5 { padding-left: 0.625rem; padding-right: 0.625rem; }
.px-8 { padding-left: 2rem; padding-right: 2rem; }
.py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; }
.py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.py-3\.5 { padding-top: 0.875rem; padding-bottom: 0.875rem; }
.py-8 { padding-top: 2rem; padding-bottom: 2rem; }
.pb-2 { padding-bottom: 0.5rem; }
.pb-6 { padding-bottom: 1.5rem; }
.pb-7 { padding-bottom: 1.75rem; }
.pt-0 { padding-top: 0px; }
.pt-10 { padding-top: 2.5rem; }
.pt-8 { padding-top: 2rem; }
.text-left { text-align: left; }
.text-5xl { font-size: 3rem; line-height: 1; }
.text-\[1\.6rem\] { font-size: 1.6rem; }
.text-\[10px\] { font-size: 10px; }
.text-\[16px\] { font-size: 16px; }
.text-\[17px\] { font-size: 17px; }
.text-\[24px\] { font-size: 24px; }
.text-\[36px\] { font-size: 36px; }
.text-\[40px\] { font-size: 40px; }
.font-extrabold { font-weight: 800; }
.leading-\[1\.04\] { line-height: 1.04; }
.leading-\[1\.06\] { line-height: 1.06; }
.leading-none { line-height: 1; }
.tracking-tight { letter-spacing: -0.025em; }
.text-amber-700 { --tw-text-opacity: 1; color: rgb(180 83 9 / var(--tw-text-opacity, 1)); }
.text-gray-400 { --tw-text-opacity: 1; color: rgb(156 163 175 / var(--tw-text-opacity, 1)); }
.text-gray-500 { --tw-text-opacity: 1; color: rgb(107 114 128 / var(--tw-text-opacity, 1)); }
.text-gray-600 { --tw-text-opacity: 1; color: rgb(75 85 99 / var(--tw-text-opacity, 1)); }
.text-gray-800 { --tw-text-opacity: 1; color: rgb(31 41 55 / var(--tw-text-opacity, 1)); }
.text-green-400 { --tw-text-opacity: 1; color: rgb(74 222 128 / var(--tw-text-opacity, 1)); }
.text-slate-200 { --tw-text-opacity: 1; color: rgb(226 232 240 / var(--tw-text-opacity, 1)); }
.text-slate-300 { --tw-text-opacity: 1; color: rgb(203 213 225 / var(--tw-text-opacity, 1)); }
.text-white\/35 { color: rgba(255, 255, 255, 0.35); }
.underline { text-decoration-line: underline; }
.placeholder-white\/35::placeholder { color: rgba(255, 255, 255, 0.35); }
.opacity-0 { opacity: 0; }
.opacity-15 { opacity: 0.15; }
.opacity-20 { opacity: 0.2; }
.opacity-60 { opacity: 0.6; }
.shadow-\[0_30px_80px_-30px_rgba\(0\,0\,0\,0\.55\)\] { --tw-shadow: 0 30px 80px -30px rgba(0,0,0,0.55); --tw-shadow-colored: 0 30px 80px -30px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-card { --tw-shadow: 0 4px 24px -8px rgba(11,23,52,0.18); --tw-shadow-colored: 0 4px 24px -8px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-md { --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-subtle { --tw-shadow: 0 1px 3px rgba(11,23,52,0.08); --tw-shadow-colored: 0 1px 3px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.ring-white\/15 { --tw-ring-color: rgb(255 255 255 / 0.15); }
.grayscale { --tw-grayscale: grayscale(100%); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.backdrop-blur-sm { --tw-backdrop-blur: blur(4px); backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }
.duration-200 { transition-duration: 200ms; }
.duration-300 { transition-duration: 300ms; }
.hover\:border-navy:hover { --tw-border-opacity: 1; border-color: rgb(11 23 52 / var(--tw-border-opacity, 1)); }
.hover\:bg-white:hover { --tw-bg-opacity: 1; background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); }
.hover\:bg-white\/10:hover { background-color: rgba(255, 255, 255, 0.1); }
.hover\:bg-white\/25:hover { background-color: rgba(255, 255, 255, 0.25); }
.hover\:text-white\/65:hover { color: rgba(255, 255, 255, 0.65); }
.hover\:opacity-100:hover { opacity: 1; }
.hover\:shadow-lg:hover { --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.hover\:brightness-110:hover { --tw-brightness: brightness(1.1); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.hover\:brightness-125:hover { --tw-brightness: brightness(1.25); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.hover\:grayscale-0:hover { --tw-grayscale: grayscale(0); filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }
.focus\:ring-orange\/30:focus { --tw-ring-color: rgb(0 47 198 / 0.3); }
.peer:checked ~ .peer-checked\:bg-orange { --tw-bg-opacity: 1; background-color: rgb(0 47 198 / var(--tw-bg-opacity, 1)); }
.-right-0\.5 { right: -0.125rem; }
.-top-1\.5 { top: -0.375rem; }
.mx-0\.5 { margin-left: 0.125rem; margin-right: 0.125rem; }
.mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; }
.w-px { width: 1px; }
.whitespace-nowrap { white-space: nowrap; }
.border-line { --tw-border-opacity: 1; border-color: rgb(229 233 240 / var(--tw-border-opacity, 1)); }
.border-navy\/70 { border-color: rgba(11, 36, 71, 0.7); }
.border-orange\/30 { border-color: rgba(242, 101, 34, 0.3); }
.border-slate-200 { --tw-border-opacity: 1; border-color: rgb(226 232 240 / var(--tw-border-opacity, 1)); }
.bg-mist { --tw-bg-opacity: 1; background-color: rgb(244 246 250 / var(--tw-bg-opacity, 1)); }
.bg-navy { --tw-bg-opacity: 1; background-color: rgb(11 36 71 / var(--tw-bg-opacity, 1)); }
.bg-navy-600\/40 { background-color: rgba(19, 50, 94, 0.4); }
.bg-navy\/5 { background-color: rgba(11, 36, 71, 0.05); }
.bg-navy\/75 { background-color: rgba(11, 36, 71, 0.75); }
.bg-navy\/95 { background-color: rgba(11, 36, 71, 0.95); }
.bg-orange { --tw-bg-opacity: 1; background-color: rgb(242 101 34 / var(--tw-bg-opacity, 1)); }
.bg-orange\/10 { background-color: rgba(242, 101, 34, 0.1); }
.bg-orange\/15 { background-color: rgba(242, 101, 34, 0.15); }
.bg-orange\/20 { background-color: rgba(242, 101, 34, 0.2); }
.bg-orange\/\[0\.08\] { background-color: rgba(242, 101, 34, 0.08); }
.bg-slate-200 { --tw-bg-opacity: 1; background-color: rgb(226 232 240 / var(--tw-bg-opacity, 1)); }
.from-navy\/80 { --tw-gradient-from: rgb(11 36 71 / 0.8) var(--tw-gradient-from-position); --tw-gradient-to: rgb(11 36 71 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.px-1\.5 { padding-left: 0.375rem; padding-right: 0.375rem; }
.py-px { padding-top: 1px; padding-bottom: 1px; }
.text-\[9px\] { font-size: 9px; }
.tracking-wide { letter-spacing: 0.025em; }
.text-navy { --tw-text-opacity: 1; color: rgb(11 36 71 / var(--tw-text-opacity, 1)); }
.text-navy\/80 { color: rgba(11, 36, 71, 0.8); }
.text-orange { --tw-text-opacity: 1; color: rgb(242 101 34 / var(--tw-text-opacity, 1)); }
.shadow-\[0_-6px_24px_-12px_rgba\(11\,36\,71\,0\.18\)\] { --tw-shadow: 0 -6px 24px -12px rgba(11,36,71,0.18); --tw-shadow-colored: 0 -6px 24px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-\[0_1px_8px_-2px_rgba\(11\,36\,71\,0\.10\)\] { --tw-shadow: 0 1px 8px -2px rgba(11,36,71,0.10); --tw-shadow-colored: 0 1px 8px -2px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-\[0_2px_12px_-4px_rgba\(242\,101\,34\,0\.5\)\] { --tw-shadow: 0 2px 12px -4px rgba(242,101,34,0.5); --tw-shadow-colored: 0 2px 12px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-card { --tw-shadow: 0 4px 24px -8px rgba(11,36,71,0.18); --tw-shadow-colored: 0 4px 24px -8px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-cta { --tw-shadow: 0 6px 20px -6px rgba(242,101,34,0.55); --tw-shadow-colored: 0 6px 20px -6px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-subtle { --tw-shadow: 0 1px 3px rgba(11,36,71,0.08); --tw-shadow-colored: 0 1px 3px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.hover\:gap-3:hover { gap: 0.75rem; }
.hover\:border-navy:hover { --tw-border-opacity: 1; border-color: rgb(11 36 71 / var(--tw-border-opacity, 1)); }
.hover\:bg-orange:hover { --tw-bg-opacity: 1; background-color: rgb(242 101 34 / var(--tw-bg-opacity, 1)); }
.hover\:bg-orange-600:hover { --tw-bg-opacity: 1; background-color: rgb(217 85 26 / var(--tw-bg-opacity, 1)); }
.hover\:bg-slate-100:hover { --tw-bg-opacity: 1; background-color: rgb(241 245 249 / var(--tw-bg-opacity, 1)); }
.hover\:text-navy:hover { --tw-text-opacity: 1; color: rgb(11 36 71 / var(--tw-text-opacity, 1)); }
.hover\:text-orange:hover { --tw-text-opacity: 1; color: rgb(242 101 34 / var(--tw-text-opacity, 1)); }
.peer:checked ~ .peer-checked\:bg-orange { --tw-bg-opacity: 1; background-color: rgb(242 101 34 / var(--tw-bg-opacity, 1)); }
.-inset-3 { inset: -0.75rem; }
.-bottom-44 { bottom: -11rem; }
.-left-44 { left: -11rem; }
.-right-44 { right: -11rem; }
.-right-52 { right: -13rem; }
.-top-44 { top: -11rem; }
.-top-52 { top: -13rem; }
.top-2 { top: 0.5rem; }
.top-6 { top: 1.5rem; }
.col-span-2 { grid-column: span 2 / span 2; }
.row-span-2 { grid-row: span 2 / span 2; }
.mb-9 { margin-bottom: 2.25rem; }
.mt-2\.5 { margin-top: 0.625rem; }
.mt-9 { margin-top: 2.25rem; }
.h-\[560px\] { height: 560px; }
.h-px { height: 1px; }
.w-\[560px\] { width: 560px; }
.max-w-\[330px\] { max-width: 330px; }
.max-w-lg { max-width: 32rem; }
.max-w-sm { max-width: 24rem; }
.-translate-x-4 { --tw-translate-x: -1rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.translate-y-4 { --tw-translate-y: 1rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }
.items-stretch { align-items: stretch; }
.gap-3\.5 { gap: 0.875rem; }
.gap-y-7 { row-gap: 1.75rem; }
.rounded-\[20px\] { border-radius: 20px; }
.border-linec { --tw-border-opacity: 1; border-color: rgb(227 231 241 / var(--tw-border-opacity, 1)); }
.bg-\[\#00695C\] { --tw-bg-opacity: 1; background-color: rgb(0 105 92 / var(--tw-bg-opacity, 1)); }
.bg-\[\#7B1FA2\] { --tw-bg-opacity: 1; background-color: rgb(123 31 162 / var(--tw-bg-opacity, 1)); }
.bg-\[\#C2185B\] { --tw-bg-opacity: 1; background-color: rgb(194 24 91 / var(--tw-bg-opacity, 1)); }
.bg-linec { --tw-bg-opacity: 1; background-color: rgb(227 231 241 / var(--tw-bg-opacity, 1)); }
.bg-navy-900 { --tw-bg-opacity: 1; background-color: rgb(11 23 52 / var(--tw-bg-opacity, 1)); }
.bg-navy-950 { --tw-bg-opacity: 1; background-color: rgb(7 17 41 / var(--tw-bg-opacity, 1)); }
.bg-paper { --tw-bg-opacity: 1; background-color: rgb(244 246 251 / var(--tw-bg-opacity, 1)); }
.bg-royal { --tw-bg-opacity: 1; background-color: rgb(0 47 198 / var(--tw-bg-opacity, 1)); }
.bg-royal-700\/60 { background-color: rgba(0, 38, 160, 0.6); }
.bg-royal\/25 { background-color: rgba(0, 47, 198, 0.25); }
.bg-royal\/35 { background-color: rgba(0, 47, 198, 0.35); }
.bg-wa { --tw-bg-opacity: 1; background-color: rgb(15 138 76 / var(--tw-bg-opacity, 1)); }
.bg-white\/\[\.07\] { background-color: rgba(255, 255, 255, 0.07); }
.from-navy-950\/90 { --tw-gradient-from: rgb(7 17 41 / 0.9) var(--tw-gradient-from-position); --tw-gradient-to: rgb(7 17 41 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.\!px-9 { padding-left: 2.25rem !important; padding-right: 2.25rem !important; }
.\!py-3 { padding-top: 0.75rem !important; padding-bottom: 0.75rem !important; }
.\!py-4 { padding-top: 1rem !important; padding-bottom: 1rem !important; }
.pb-1 { padding-bottom: 0.25rem; }
.pt-12 { padding-top: 3rem; }
.\!text-base { font-size: 1rem !important; line-height: 1.5rem !important; }
.text-6xl { font-size: 3.75rem; line-height: 1; }
.text-\[10\.5px\] { font-size: 10.5px; }
.text-\[10vw\] { font-size: 10vw; }
.text-\[12\.5px\] { font-size: 12.5px; }
.text-\[12px\] { font-size: 12px; }
.text-\[13px\] { font-size: 13px; }
.text-\[18vw\] { font-size: 18vw; }
.text-\[20vw\] { font-size: 20vw; }
.text-\[9vw\] { font-size: 9vw; }
.italic { font-style: italic; }
.text-royal { --tw-text-opacity: 1; color: rgb(0 47 198 / var(--tw-text-opacity, 1)); }
.text-royal-300 { --tw-text-opacity: 1; color: rgb(91 124 255 / var(--tw-text-opacity, 1)); }
.text-white\/85 { color: rgba(255, 255, 255, 0.85); }
.shadow-\[0_-6px_24px_-12px_rgba\(11\,23\,52\,\.25\)\] { --tw-shadow: 0 -6px 24px -12px rgba(11,23,52,.25); --tw-shadow-colored: 0 -6px 24px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-lift { --tw-shadow: 0 22px 50px -22px rgba(11,23,52,.35); --tw-shadow-colored: 0 22px 50px -22px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-soft { --tw-shadow: 0 2px 14px -4px rgba(11,23,52,.12); --tw-shadow-colored: 0 2px 14px -4px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }
.shadow-wa { --tw-shadow-colored: 0 14px 34px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); --tw-shadow-color: #0F8A4C; --tw-shadow: var(--tw-shadow-colored); }
.\[grid-auto-rows\:110px\] { grid-auto-rows: 110px; }
.hover\:bg-paper:hover { --tw-bg-opacity: 1; background-color: rgb(244 246 251 / var(--tw-bg-opacity, 1)); }
.hover\:bg-royal:hover { --tw-bg-opacity: 1; background-color: rgb(0 47 198 / var(--tw-bg-opacity, 1)); }
.hover\:bg-wa-400:hover { --tw-bg-opacity: 1; background-color: rgb(19 165 89 / var(--tw-bg-opacity, 1)); }
.hover\:text-royal:hover { --tw-text-opacity: 1; color: rgb(0 47 198 / var(--tw-text-opacity, 1)); }
.hover\:text-royal-300:hover { --tw-text-opacity: 1; color: rgb(91 124 255 / var(--tw-text-opacity, 1)); }
.-top-3 { top: -0.75rem; }
.left-6 { left: 1.5rem; }
.right-3 { right: 0.75rem; }
.col-span-1 { grid-column: span 1 / span 1; }
.aspect-\[3\/4\] { aspect-ratio: 3 / 4; }
.aspect-\[5\/4\] { aspect-ratio: 5 / 4; }
.h-\[300px\] { height: 300px; }
.border-collapse { border-collapse: collapse; }
.space-y-1\.5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.375rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.375rem * var(--tw-space-y-reverse)); }
.rounded-t-xl { border-top-left-radius: 0.75rem; border-top-right-radius: 0.75rem; }
.border-2 { border-width: 2px; }
.border-orange { --tw-border-opacity: 1; border-color: rgb(0 47 198 / var(--tw-border-opacity, 1)); }
.border-orange\/20 { border-color: rgba(0, 47, 198, 0.2); }
.border-pink-100 { --tw-border-opacity: 1; border-color: rgb(252 231 243 / var(--tw-border-opacity, 1)); }
.border-white { --tw-border-opacity: 1; border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); }
.border-white\/85 { border-color: rgba(255, 255, 255, 0.85); }
.bg-amber-100 { --tw-bg-opacity: 1; background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1)); }
.bg-green-50 { --tw-bg-opacity: 1; background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1)); }
.bg-pink-50 { --tw-bg-opacity: 1; background-color: rgb(253 242 248 / var(--tw-bg-opacity, 1)); }
.from-navy\/95 { --tw-gradient-from: rgb(11 23 52 / 0.95) var(--tw-gradient-from-position); --tw-gradient-to: rgb(11 23 52 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.from-orange\/20 { --tw-gradient-from: rgb(0 47 198 / 0.2) var(--tw-gradient-from-position); --tw-gradient-to: rgb(0 47 198 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }
.via-navy\/60 { --tw-gradient-to: rgb(11 23 52 / 0)  var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), rgb(11 23 52 / 0.6) var(--tw-gradient-via-position), var(--tw-gradient-to); }
.to-navy\/15 { --tw-gradient-to: rgb(11 23 52 / 0.15) var(--tw-gradient-to-position); }
.to-navy\/30 { --tw-gradient-to: rgb(11 23 52 / 0.3) var(--tw-gradient-to-position); }
.p-2\.5 { padding: 0.625rem; }
.px-2 { padding-left: 0.5rem; padding-right: 0.5rem; }
.px-7 { padding-left: 1.75rem; padding-right: 1.75rem; }
.py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; }
.text-amber-600 { --tw-text-opacity: 1; color: rgb(217 119 6 / var(--tw-text-opacity, 1)); }
.text-amber-800 { --tw-text-opacity: 1; color: rgb(146 64 14 / var(--tw-text-opacity, 1)); }
.text-navy\/70 { color: rgba(11, 23, 52, 0.7); }
.text-pink-400 { --tw-text-opacity: 1; color: rgb(244 114 182 / var(--tw-text-opacity, 1)); }
.text-pink-700 { --tw-text-opacity: 1; color: rgb(190 24 93 / var(--tw-text-opacity, 1)); }
.text-white\/20 { color: rgba(255, 255, 255, 0.2); }
.shadow-black\/20 { --tw-shadow-color: rgb(0 0 0 / 0.2); --tw-shadow: var(--tw-shadow-colored); }
.group:hover .group-hover\:bg-orange { --tw-bg-opacity: 1; background-color: rgb(0 47 198 / var(--tw-bg-opacity, 1)); }
.group:hover .group-hover\:text-white { --tw-text-opacity: 1; color: rgb(255 255 255 / var(--tw-text-opacity, 1)); }
@media (min-width: 640px) {
.sm\:h-\[280px\] { height: 280px; }
.sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
.sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
.sm\:text-\[38px\] { font-size: 38px; }
.sm\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
.sm\:flex-row { flex-direction: row; }
.sm\:col-span-2 { grid-column: span 2 / span 2; }
.sm\:h-64 { height: 16rem; }
.sm\:h-\[300px\] { height: 300px; }
.sm\:w-\[calc\(50\%_-_0\.625rem\)\] { width: calc(50% - 0.625rem); }
.sm\:items-center { align-items: center; }
.sm\:text-\[50px\] { font-size: 50px; }
.sm\:text-\[52px\] { font-size: 52px; }
.sm\:text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.sm\:block { display: block; }
.sm\:hidden { display: none; }
.sm\:max-w-none { max-width: none; }
.sm\:max-w-xl { max-width: 36rem; }
.sm\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.sm\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.sm\:text-5xl { font-size: 3rem; line-height: 1; }
.sm\:text-\[44px\] { font-size: 44px; }
.sm\:\[grid-auto-rows\:130px\] { grid-auto-rows: 130px; }
.sm\:h-\[340px\] { height: 340px; }
.sm\:grid-cols-1 { grid-template-columns: repeat(1, minmax(0px, 1fr)); }
.sm\:px-12 { padding-left: 3rem; padding-right: 3rem; }
.sm\:text-base { font-size: 1rem; line-height: 1.5rem; }
}
@media (min-width: 768px) {
.md\:inline-flex { display: inline-flex; }
.md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
.md\:flex-row { flex-direction: row; }
.md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
.md\:flex { display: flex; }
.md\:items-end { align-items: flex-end; }
}
@media (min-width: 1024px) {
.lg\:bottom-6 { bottom: 1.5rem; }
.lg\:right-6 { right: 1.5rem; }
.lg\:block { display: block; }
.lg\:flex { display: flex; }
.lg\:inline-flex { display: inline-flex; }
.lg\:hidden { display: none; }
.lg\:h-11 { height: 2.75rem; }
.lg\:h-\[76px\] { height: 76px; }
.lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0px, 1fr)); }
.lg\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
.lg\:grid-cols-\[1fr_300px\] { grid-template-columns: 1fr 300px; }
.lg\:gap-14 { gap: 3.5rem; }
.lg\:text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.lg\:text-4xl { font-size: 2.25rem; line-height: 2.5rem; }
.lg\:text-\[46px\] { font-size: 46px; }
.lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0px, 1fr)); }
.lg\:grid-cols-5 { grid-template-columns: repeat(5, minmax(0px, 1fr)); }
.lg\:grid-cols-6 { grid-template-columns: repeat(6, minmax(0px, 1fr)); }
.lg\:text-5xl { font-size: 3rem; line-height: 1; }
.lg\:text-base { font-size: 1rem; line-height: 1.5rem; }
.lg\:sticky { position: sticky; }
.lg\:bottom-20 { bottom: 5rem; }
.lg\:left-6 { left: 1.5rem; }
.lg\:top-24 { top: 6rem; }
.lg\:col-span-1 { grid-column: span 1 / span 1; }
.lg\:h-52 { height: 13rem; }
.lg\:min-h-\[440px\] { min-height: 440px; }
.lg\:w-\[calc\(33\.333\%_-_0\.834rem\)\] { width: calc(33.333% - 0.834rem); }
.lg\:grid-cols-\[1\.05fr_0\.95fr\] { grid-template-columns: 1.05fr 0.95fr; }
.lg\:grid-cols-\[1\.1fr_0\.9fr\] { grid-template-columns: 1.1fr 0.9fr; }
.lg\:gap-16 { gap: 4rem; }
.lg\:p-12 { padding: 3rem; }
.lg\:p-7 { padding: 1.75rem; }
.lg\:py-16 { padding-top: 4rem; padding-bottom: 4rem; }
.lg\:py-20 { padding-top: 5rem; padding-bottom: 5rem; }
.lg\:py-24 { padding-top: 6rem; padding-bottom: 6rem; }
.lg\:text-\[30px\] { font-size: 30px; }
.lg\:text-\[60px\] { font-size: 60px; }
.lg\:text-\[62px\] { font-size: 62px; }
.lg\:text-xl { font-size: 1.25rem; line-height: 1.75rem; }
.lg\:h-20 { height: 5rem; }
.lg\:h-9 { height: 2.25rem; }
.lg\:top-28 { top: 7rem; }
.lg\:grid-cols-\[\.85fr_1\.15fr\] { grid-template-columns: 0.85fr 1.15fr; }
.lg\:grid-cols-\[1\.06fr_\.94fr\] { grid-template-columns: 1.06fr 0.94fr; }
.lg\:grid-cols-\[1\.15fr_\.85fr\] { grid-template-columns: 1.15fr 0.85fr; }
.lg\:flex-row { flex-direction: row; }
.lg\:items-center { align-items: center; }
.lg\:gap-10 { gap: 2.5rem; }
.lg\:gap-12 { gap: 3rem; }
.lg\:justify-self-end { justify-self: end; }
.lg\:p-10 { padding: 2.5rem; }
.lg\:py-14 { padding-top: 3.5rem; padding-bottom: 3.5rem; }
.lg\:pb-24 { padding-bottom: 6rem; }
.lg\:pt-20 { padding-top: 5rem; }
.lg\:text-\[44px\] { font-size: 44px; }
.lg\:text-\[52px\] { font-size: 52px; }
.lg\:text-\[56px\] { font-size: 56px; }
.lg\:\[grid-auto-rows\:150px\] { grid-auto-rows: 150px; }
.lg\:grid { display: grid; }
}
@media (min-width: 1280px) {
.xl\:block { display: block; }
.xl\:inline-flex { display: inline-flex; }
.xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0px, 1fr)); }
}
.elementor img.h-0\.5 { height: 0.125rem; }
.elementor img.h-10 { height: 2.5rem; }
.elementor img.h-12 { height: 3rem; }
.elementor img.h-14 { height: 3.5rem; }
.elementor img.h-16 { height: 4rem; }
.elementor img.h-20 { height: 5rem; }
.elementor img.h-24 { height: 6rem; }
.elementor img.h-3\.5 { height: 0.875rem; }
.elementor img.h-32 { height: 8rem; }
.elementor img.h-4 { height: 1rem; }
.elementor img.h-44 { height: 11rem; }
.elementor img.h-5 { height: 1.25rem; }
.elementor img.h-56 { height: 14rem; }
.elementor img.h-7 { height: 1.75rem; }
.elementor img.h-8 { height: 2rem; }
.elementor img.h-80 { height: 20rem; }
.elementor img.h-9 { height: 2.25rem; }
.elementor img.h-\[220px\] { height: 220px; }
.elementor img.h-full { height: 100%; }
.elementor img.w-10 { width: 2.5rem; }
.elementor img.w-12 { width: 3rem; }
.elementor img.w-14 { width: 3.5rem; }
.elementor img.w-20 { width: 5rem; }
.elementor img.w-24 { width: 6rem; }
.elementor img.w-3\.5 { width: 0.875rem; }
.elementor img.w-32 { width: 8rem; }
.elementor img.w-4 { width: 1rem; }
.elementor img.w-5 { width: 1.25rem; }
.elementor img.w-56 { width: 14rem; }
.elementor img.w-7 { width: 1.75rem; }
.elementor img.w-8 { width: 2rem; }
.elementor img.w-80 { width: 20rem; }
.elementor img.w-9 { width: 2.25rem; }
.elementor img.w-auto { width: auto; }
.elementor img.w-full { width: 100%; }
.elementor img.max-w-2xl { max-width: 42rem; }
.elementor img.max-w-3xl { max-width: 48rem; }
.elementor img.max-w-md { max-width: 28rem; }
.elementor img.max-w-xl { max-width: 36rem; }
.elementor img.object-contain { object-fit: contain; }
.elementor img.object-cover { object-fit: cover; }
.elementor img.aspect-\[4\/3\] { aspect-ratio: 4 / 3; }
.elementor img.aspect-square { aspect-ratio: 1 / 1; }
.elementor img.aspect-video { aspect-ratio: 16 / 9; }
.elementor img.h-36 { height: 9rem; }
.elementor img.h-40 { height: 10rem; }
.elementor img.h-52 { height: 13rem; }
.elementor img.h-6 { height: 1.5rem; }
.elementor img.h-64 { height: 16rem; }
.elementor img.h-72 { height: 18rem; }
.elementor img.w-16 { width: 4rem; }
.elementor img.w-6 { width: 1.5rem; }
.elementor img.max-w-4xl { max-width: 56rem; }
.elementor img.max-w-5xl { max-width: 64rem; }
.elementor img.object-center { object-position: center center; }
.elementor img.object-top { object-position: center top; }
.elementor img.aspect-\[4\/5\] { aspect-ratio: 4 / 5; }
.elementor img.h-1\.5 { height: 0.375rem; }
.elementor img.h-1\/3 { height: 33.3333%; }
.elementor img.h-11 { height: 2.75rem; }
.elementor img.h-28 { height: 7rem; }
.elementor img.h-3 { height: 0.75rem; }
.elementor img.h-96 { height: 24rem; }
.elementor img.h-\[440px\] { height: 440px; }
.elementor img.h-\[520px\] { height: 520px; }
.elementor img.h-\[600px\] { height: 600px; }
.elementor img.h-\[620px\] { height: 620px; }
.elementor img.w-1\.5 { width: 0.375rem; }
.elementor img.w-11 { width: 2.75rem; }
.elementor img.w-28 { width: 7rem; }
.elementor img.w-3 { width: 0.75rem; }
.elementor img.w-36 { width: 9rem; }
.elementor img.w-40 { width: 10rem; }
.elementor img.w-72 { width: 18rem; }
.elementor img.w-96 { width: 24rem; }
.elementor img.w-\[440px\] { width: 440px; }
.elementor img.w-\[520px\] { width: 520px; }
.elementor img.w-\[600px\] { width: 600px; }
.elementor img.w-\[620px\] { width: 620px; }
.elementor img.w-\[min\(440px\,88\%\)\] { width: min(440px, 88%); }
.elementor img.max-w-\[280px\] { max-width: 280px; }
.elementor img.max-w-\[440px\] { max-width: 440px; }
.elementor img.w-px { width: 1px; }
.elementor img.h-\[560px\] { height: 560px; }
.elementor img.h-px { height: 1px; }
.elementor img.w-\[560px\] { width: 560px; }
.elementor img.max-w-\[330px\] { max-width: 330px; }
.elementor img.max-w-lg { max-width: 32rem; }
.elementor img.max-w-sm { max-width: 24rem; }
.elementor img.aspect-\[3\/4\] { aspect-ratio: 3 / 4; }
.elementor img.aspect-\[5\/4\] { aspect-ratio: 5 / 4; }
.elementor img.h-\[300px\] { height: 300px; }

/* ── Carrossel de logos infinito ── */
.logos-carousel-wrap{
  overflow:hidden;
  -webkit-mask-image:linear-gradient(to right,transparent 0%,#000 10%,#000 90%,transparent 100%);
  mask-image:linear-gradient(to right,transparent 0%,#000 10%,#000 90%,transparent 100%);
}
/* track: sem gap — cada logo carrega seu próprio margin-right */
.logos-scroll-track{
  display:flex;
  align-items:center;
  width:max-content;
  animation:veloz-logos-scroll 32s linear infinite;
}
.logos-scroll-track:hover{animation-play-state:paused}
/* 3 sets × 7 logos; animar -33.333% = exatamente 1 set → loop matematicamente perfeito */
@keyframes veloz-logos-scroll{
  from{transform:translateX(0)}
  to{transform:translateX(-33.333%)}
}
.logos-client-logo{
  /* margin-right = espaço entre logos; inclui o espaço do último logo de cada set */
  margin-right:3.5rem;
  height:40px;
  width:auto;
  max-width:140px;
  object-fit:contain;
  filter:grayscale(1);
  opacity:.55;
  transition:filter .3s,opacity .3s;
  flex-shrink:0;
}
.logos-client-logo:hover{filter:grayscale(0);opacity:1}

/* ── Ícone WhatsApp adaptável (herda currentColor do botão pai) ── */
.wpp-icon{
  display:inline-block;
  background-color:currentColor;
  -webkit-mask:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2ZmZiI+CiAgPHBhdGggZD0iTTE3LjQ3MiAxNC4zODJjLS4yOTctLjE0OS0xLjc1OC0uODY3LTIuMDMtLjk2Ny0uMjczLS4wOTktLjQ3MS0uMTQ4LS42Ny4xNS0uMTk3LjI5Ny0uNzY3Ljk2Ni0uOTQgMS4xNjQtLjE3My4xOTktLjM0Ny4yMjMtLjY0NC4wNzUtLjI5Ny0uMTUtMS4yNTUtLjQ2My0yLjM5LTEuNDc1LS44ODMtLjc4OC0xLjQ4LTEuNzYxLTEuNjUzLTIuMDU5LS4xNzMtLjI5Ny0uMDE4LS40NTguMTMtLjYwNi4xMzQtLjEzMy4yOTgtLjM0Ny40NDYtLjUyLjE0OS0uMTc0LjE5OC0uMjk4LjI5OC0uNDk3LjA5OS0uMTk4LjA1LS4zNzEtLjAyNS0uNTItLjA3NS0uMTQ5LS42NjktMS42MTItLjkxNi0yLjIwNy0uMjQyLS41NzktLjQ4Ny0uNS0uNjY5LS41MS0uMTczLS4wMDgtLjM3MS0uMDEtLjU3LS4wMS0uMTk4IDAtLjUyLjA3NC0uNzkyLjM3Mi0uMjcyLjI5Ny0xLjA0IDEuMDE2LTEuMDQgMi40NzkgMCAxLjQ2MiAxLjA2NSAyLjg3NSAxLjIxMyAzLjA3NC4xNDkuMTk4IDIuMDk2IDMuMiA1LjA3NyA0LjQ4Ny43MDkuMzA2IDEuMjYyLjQ4OSAxLjY5NC42MjUuNzEyLjIyNyAxLjM2LjE5NSAxLjg3MS4xMTguNTcxLS4wODUgMS43NTgtLjcxOSAyLjAwNi0xLjQxMy4yNDgtLjY5NC4yNDgtMS4yODkuMTczLTEuNDEzLS4wNzQtLjEyNC0uMjcyLS4xOTgtLjU3LS4zNDdtLTUuNDIxIDcuNDAzaC0uMDA0YTkuODcgOS44NyAwIDAxLTUuMDMxLTEuMzc4bC0uMzYxLS4yMTQtMy43NDEuOTgyLjk5OC0zLjY0OC0uMjM1LS4zNzRhOS44NiA5Ljg2IDAgMDEtMS41MS01LjI2Yy4wMDEtNS40NSA0LjQzNi05Ljg4NCA5Ljg4OC05Ljg4NCAyLjY0IDAgNS4xMjIgMS4wMyA2Ljk4OCAyLjg5OGE5LjgyNSA5LjgyNSAwIDAxMi44OTMgNi45OTRjLS4wMDMgNS40NS00LjQzNyA5Ljg4NC05Ljg4NSA5Ljg4NG04LjQxMy0xOC4yOTdBMTEuODE1IDExLjgxNSAwIDAwMTIuMDUgMEM1LjQ5NSAwIC4xNiA1LjMzNS4xNTcgMTEuODkyYzAgMi4wOTYuNTQ3IDQuMTQyIDEuNTg4IDUuOTQ1TC4wNTcgMjRsNi4zMDUtMS42NTRhMTEuODgyIDExLjg4MiAwIDAwNS42ODMgMS40NDhoLjAwNWM2LjU1NCAwIDExLjg5LTUuMzM1IDExLjg5My0xMS44OTNhMTEuODIxIDExLjgyMSAwIDAwLTMuNDgtOC40MTN6Ii8+Cjwvc3ZnPgo=") center/contain no-repeat;
  mask:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNCAyNCIgZmlsbD0iI2ZmZiI+CiAgPHBhdGggZD0iTTE3LjQ3MiAxNC4zODJjLS4yOTctLjE0OS0xLjc1OC0uODY3LTIuMDMtLjk2Ny0uMjczLS4wOTktLjQ3MS0uMTQ4LS42Ny4xNS0uMTk3LjI5Ny0uNzY3Ljk2Ni0uOTQgMS4xNjQtLjE3My4xOTktLjM0Ny4yMjMtLjY0NC4wNzUtLjI5Ny0uMTUtMS4yNTUtLjQ2My0yLjM5LTEuNDc1LS44ODMtLjc4OC0xLjQ4LTEuNzYxLTEuNjUzLTIuMDU5LS4xNzMtLjI5Ny0uMDE4LS40NTguMTMtLjYwNi4xMzQtLjEzMy4yOTgtLjM0Ny40NDYtLjUyLjE0OS0uMTc0LjE5OC0uMjk4LjI5OC0uNDk3LjA5OS0uMTk4LjA1LS4zNzEtLjAyNS0uNTItLjA3NS0uMTQ5LS42NjktMS42MTItLjkxNi0yLjIwNy0uMjQyLS41NzktLjQ4Ny0uNS0uNjY5LS41MS0uMTczLS4wMDgtLjM3MS0uMDEtLjU3LS4wMS0uMTk4IDAtLjUyLjA3NC0uNzkyLjM3Mi0uMjcyLjI5Ny0xLjA0IDEuMDE2LTEuMDQgMi40NzkgMCAxLjQ2MiAxLjA2NSAyLjg3NSAxLjIxMyAzLjA3NC4xNDkuMTk4IDIuMDk2IDMuMiA1LjA3NyA0LjQ4Ny43MDkuMzA2IDEuMjYyLjQ4OSAxLjY5NC42MjUuNzEyLjIyNyAxLjM2LjE5NSAxLjg3MS4xMTguNTcxLS4wODUgMS43NTgtLjcxOSAyLjAwNi0xLjQxMy4yNDgtLjY5NC4yNDgtMS4yODkuMTczLTEuNDEzLS4wNzQtLjEyNC0uMjcyLS4xOTgtLjU3LS4zNDdtLTUuNDIxIDcuNDAzaC0uMDA0YTkuODcgOS44NyAwIDAxLTUuMDMxLTEuMzc4bC0uMzYxLS4yMTQtMy43NDEuOTgyLjk5OC0zLjY0OC0uMjM1LS4zNzRhOS44NiA5Ljg2IDAgMDEtMS41MS01LjI2Yy4wMDEtNS40NSA0LjQzNi05Ljg4NCA5Ljg4OC05Ljg4NCAyLjY0IDAgNS4xMjIgMS4wMyA2Ljk4OCAyLjg5OGE5LjgyNSA5LjgyNSAwIDAxMi44OTMgNi45OTRjLS4wMDMgNS40NS00LjQzNyA5Ljg4NC05Ljg4NSA5Ljg4NG04LjQxMy0xOC4yOTdBMTEuODE1IDExLjgxNSAwIDAwMTIuMDUgMEM1LjQ5NSAwIC4xNiA1LjMzNS4xNTcgMTEuODkyYzAgMi4wOTYuNTQ3IDQuMTQyIDEuNTg4IDUuOTQ1TC4wNTcgMjRsNi4zMDUtMS42NTRhMTEuODgyIDExLjg4MiAwIDAwNS42ODMgMS40NDhoLjAwNWM2LjU1NCAwIDExLjg5LTUuMzM1IDExLjg5My0xMS44OTNhMTEuODIxIDExLjgyMSAwIDAwLTMuNDgtOC40MTN6Ii8+Cjwvc3ZnPgo=") center/contain no-repeat;
  flex-shrink:0;
}
/* Botão flutuante verde: ícone sempre branco */
a[aria-label="WhatsApp"] .wpp-icon,
[data-cta="float-wpp"] .wpp-icon,
#wpp-float .wpp-icon{background-color:white}

/* ── Placeholder de imagem (seções sem foto real ainda) ── */
.photo-placeholder{
  background:linear-gradient(135deg,#F4F6FA,#E8EDF4);
  border:1px solid #E2E8F0;
  border-radius:16px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  color:#7E8CA0;gap:6px;text-align:center;padding:1.25rem;
}


/*
  Veloz Uniformes — sistema visual oficial
  Camada de migração: deve ser carregada após os estilos locais nas páginas
  que possuem a classe no <body>.
*/

:root {
  --vz-navy-deep: #071129;
  --vz-navy: #0B1734;
  --vz-navy-2: #12204A;
  --vz-royal: #002FC6;
  --vz-royal-hover: #0A38D6;
  --vz-royal-soft: #EEF2FF;
  --vz-royal-line: #DDE5FF;
  --vz-ink: #141B2E;
  --vz-paper: #F4F6FB;
  --vz-line: #E3E7F1;
  --vz-green: #0F8A4C;
  --vz-green-hover: #13A559;
  --vz-gold: #F4B400;
  --vz-shadow-soft: 0 18px 42px -26px rgba(7,17,41,.28);
  --vz-shadow-card: 0 22px 50px -28px rgba(7,17,41,.34);
}

body {
  color: var(--vz-ink);
  background: #fff;
  font-family: 'Lato', 'Inter', system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
}

::selection { background: var(--vz-royal); color: #fff; }
h1,
h2,
h3,
h4,
h5,
h6,
.font-display {
  font-family: 'Montserrat', system-ui, sans-serif;
  letter-spacing: -.015em;
}

/* Tokens Tailwind legados convertidos à paleta oficial. */
.bg-navy { background-color: var(--vz-navy) !important; }
.text-navy { color: var(--vz-navy) !important; }
.border-navy { border-color: var(--vz-navy) !important; }
.bg-mist { background-color: var(--vz-paper) !important; }
.border-line { border-color: var(--vz-line) !important; }
.bg-orange { background-color: var(--vz-royal) !important; }
.text-orange { color: var(--vz-royal) !important; }
.border-orange { border-color: var(--vz-royal) !important; }
[class*="bg-orange/"] { background-color: rgba(0,47,198,.18) !important; }
[class*="text-orange/"] { color: rgba(0,47,198,.82) !important; }
[class*="from-navy"] {
  --tw-gradient-from: var(--vz-navy-deep) var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgba(7,17,41,0) var(--tw-gradient-to-position) !important;
}
[class*="via-navy"] {
  --tw-gradient-stops: var(--tw-gradient-from), var(--vz-navy) var(--tw-gradient-via-position), var(--tw-gradient-to) !important;
}
[class*="to-navy"] { --tw-gradient-to: var(--vz-navy-2) var(--tw-gradient-to-position) !important; }
[class*="from-orange"] {
  --tw-gradient-from: var(--vz-royal) var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgba(0,47,198,0) var(--tw-gradient-to-position) !important;
}
[class*="to-orange"] { --tw-gradient-to: var(--vz-royal-hover) var(--tw-gradient-to-position) !important; }

/* Estrutura e navegação. */
.container-pad,
.nav-container { max-width: 1200px; }
.elementor-location-header {
  border-bottom-color: var(--vz-line) !important;
  box-shadow: inset 0 4px 0 var(--vz-royal), 0 2px 14px -8px rgba(7,17,41,.26) !important;
}
.nav-btn {
  color: rgba(11,23,52,.78) !important;
  border-radius: 9px;
  font-weight: 700;
}
.nav-btn:hover,
.nav-item:hover .nav-btn { color: var(--vz-royal) !important; background: var(--vz-royal-soft) !important; }
.nav-btn:focus-visible { outline-color: var(--vz-royal) !important; }
.nav-drop {
  border-color: var(--vz-line) !important;
  border-radius: 16px;
  box-shadow: var(--vz-shadow-card) !important;
}
.dl { color: var(--vz-ink) !important; border-radius: 10px; }
.dl:hover { color: var(--vz-royal) !important; background: var(--vz-royal-soft) !important; }
.dl-icon { color: var(--vz-royal) !important; background: var(--vz-royal-soft) !important; }
.dl-cta,
.mob-sub-cta { color: var(--vz-royal) !important; }
.dl-cta:hover { color: var(--vz-royal-hover) !important; background: var(--vz-royal-soft) !important; }
#mob-overlay { background: rgba(7,17,41,.58) !important; }
#mob-drawer { border-left: 1px solid var(--vz-royal-line); }
.mob-acc-btn,
.mob-plain-link { color: var(--vz-navy) !important; border-color: var(--vz-line) !important; }
.mob-acc-body { background: var(--vz-paper) !important; border-color: var(--vz-line) !important; }
.mob-sub-link { color: #41506c !important; border-color: var(--vz-line) !important; }
.mob-sub-link:active,
.mob-plain-link:active { background: var(--vz-royal-soft) !important; }

/* Shell único: mesmas classes e proporções da home aprovada. */
body { scroll-behavior: smooth; }
@media (max-width: 1023px) { { padding-bottom: 74px; } }
.wrap { max-width: 1200px; margin-inline: auto; padding-inline: 24px; }
.topbar { height: 4px; background: linear-gradient(90deg, var(--vz-royal) 0%, #2B5CFF 45%, var(--vz-royal) 100%); }
.nav-link { font-family: 'Montserrat', system-ui, sans-serif; font-weight: 700; font-size: 13.5px; letter-spacing: .01em; color: rgba(11,23,52,.72); padding: 8px 12px; border-radius: 9px; transition: color .15s, background .15s; white-space: nowrap; text-decoration: none; }
.nav-link:hover { color: var(--vz-royal); background: var(--vz-royal-soft); }
.b-base { font-family: 'Montserrat', system-ui, sans-serif; font-weight: 800; font-style: italic; display: inline-flex; align-items: center; justify-content: center; gap: 10px; border-radius: 12px; padding: 15px 28px; font-size: 15px; transition: transform .15s ease, background .2s ease, box-shadow .2s ease, color .2s ease; text-decoration: none; position: relative; overflow: hidden; }
.b-base:active { transform: translateY(1px); }
.b-base.hidden { display: none !important; }
@media (min-width: 768px) { .b-base.hidden[class*="md:inline-flex"] { display: inline-flex !important; } }
@media (min-width: 1024px) { .b-base.hidden[class*="lg:inline-flex"] { display: inline-flex !important; } }
.b-wa, .bg-wa { background: var(--vz-green) !important; color: #fff !important; box-shadow: 0 14px 34px -12px rgba(15,138,76,.5); }
.b-wa:hover, .hover\:bg-wa-400:hover { background: var(--vz-green-hover) !important; transform: translateY(-2px); }
.b-royal, .bg-royal { background: var(--vz-royal) !important; color: #fff !important; box-shadow: 0 14px 40px -14px rgba(0,47,198,.5); }
.b-royal:hover, .hover\:bg-royal:hover { background: var(--vz-royal-hover) !important; transform: translateY(-2px); }
.f-label { font-family: 'Montserrat', system-ui, sans-serif; font-weight: 800; font-style: italic; text-transform: uppercase; letter-spacing: .14em; font-size: 11px; }
.vlz-dash { display: inline-flex; flex-direction: column; gap: 4px; }
.vlz-dash i { display: block; height: 4px; border-radius: 2px; background: var(--vz-royal); transform: skewX(-28deg); }
.vlz-dash i:nth-child(1) { width: 30px; margin-left: 10px; }
.vlz-dash i:nth-child(2) { width: 44px; margin-left: 4px; }
.vlz-dash i:nth-child(3) { width: 22px; }
.vlz-dash.on-dark i { background: #5B7CFF; }
.vlz-dash.sm { gap: 3px; }
.vlz-dash.sm i { height: 3px; }
.vlz-dash.sm i:nth-child(1) { width: 20px; margin-left: 7px; }
.vlz-dash.sm i:nth-child(2) { width: 30px; margin-left: 3px; }
.vlz-dash.sm i:nth-child(3) { width: 15px; }
.text-royal-300 { color: #5B7CFF !important; }
.border-linec { border-color: var(--vz-line) !important; }
.bg-paper { background-color: var(--vz-paper) !important; }
.bg-navy-950 { background-color: var(--vz-navy-deep) !important; }
.shadow-soft { box-shadow: 0 2px 14px -4px rgba(7,17,41,.12) !important; }
.shadow-wa { box-shadow: 0 14px 34px -12px rgba(15,138,76,.5) !important; }
.hover\:bg-paper:hover { background-color: var(--vz-paper) !important; }
.hover\:text-royal-300:hover { color: #5B7CFF !important; }
#fb-overlay { position: fixed; inset: 0; background: rgba(11,23,52,.55); z-index: 998; opacity: 0; visibility: hidden; transition: opacity .25s, visibility 0s linear .25s; }
#fb-overlay.open { opacity: 1; visibility: visible; transition: opacity .25s, visibility 0s linear 0s; }
#fb-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: 310px; max-width: 92vw; background: #fff; z-index: 999; overflow-y: auto; transform: translateX(100%); transition: transform .3s cubic-bezier(.4,0,.2,1); display: flex; flex-direction: column; }
#fb-drawer.open { transform: translateX(0); }
.fb-mlink { display: flex; align-items: center; gap: 12px; padding: 15px 22px; font-family: 'Montserrat', system-ui, sans-serif; font-weight: 700; font-size: 14px; color: var(--vz-navy); border-bottom: 1px solid #EDF0F7; text-decoration: none; }
.fb-mlink:active { background: var(--vz-paper); }
.fb-mlink .lucide { color: var(--vz-royal); }
@media (max-width: 1023px) { #fb-toggle { display: flex !important; } }
@media (min-width: 1024px) { #fb-toggle { display: none !important; } }

/* Botões e CTA. */
.btn-primary {
  background: var(--vz-royal) !important;
  border-radius: 12px;
  box-shadow: 0 14px 34px -16px rgba(0,47,198,.56) !important;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-style: italic;
  font-weight: 800;
  text-decoration: none;
}
.btn-primary:hover { background: var(--vz-royal-hover) !important; transform: translateY(-2px); }
.btn-wa {
  background: var(--vz-green) !important;
  border-radius: 12px;
  box-shadow: 0 14px 34px -16px rgba(15,138,76,.55) !important;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-style: italic;
  font-weight: 800;
  text-decoration: none;
}
.btn-wa:hover { background: var(--vz-green-hover) !important; transform: translateY(-2px); }
.btn-ghost {
  border-color: var(--vz-navy) !important;
  border-radius: 12px;
  color: var(--vz-navy) !important;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-style: italic;
  font-weight: 800;
  text-decoration: none;
}
.btn-ghost:hover { background: var(--vz-navy) !important; color: #fff !important; }
.btn-ghost-white {
  border-radius: 12px;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-style: italic;
  font-weight: 800;
  text-decoration: none;
}
.btn-ghost-white:hover { background: #fff !important; color: var(--vz-navy) !important; }

/* Seções e componentes comerciais. */
.pattern-grid {
  background-image: radial-gradient(circle, rgba(255,255,255,.11) 1px, transparent 1px) !important;
  background-size: 30px 30px !important;
}
.pattern-grid-light {
  background-image: linear-gradient(135deg, rgba(0,47,198,.045) 0 1px, transparent 1px 100%) !important;
  background-size: 22px 22px !important;
}
.eyebrow {
  color: var(--vz-royal) !important;
  font-family: 'Montserrat', system-ui, sans-serif;
  font-size: 11px;
  font-style: italic;
  font-weight: 800;
  letter-spacing: .14em;
}
.accent-bar {
  background: linear-gradient(90deg, var(--vz-royal), #5B7CFF) !important;
  border-radius: 3px;
  transform: skewX(-24deg);
}
.card {
  border-color: var(--vz-line) !important;
  border-radius: 16px;
  box-shadow: 0 2px 14px -7px rgba(7,17,41,.12);
}
.card:hover {
  border-color: rgba(0,47,198,.38) !important;
  box-shadow: var(--vz-shadow-card) !important;
  transform: translateY(-4px);
}
section.bg-navy.pattern-grid {
  background-color: var(--vz-navy) !important;
  background-image: radial-gradient(circle at 82% 18%, rgba(43,92,255,.24), transparent 28%), radial-gradient(circle, rgba(255,255,255,.09) 1px, transparent 1px) !important;
  background-size: auto, 30px 30px !important;
}
input,
select,
textarea {
  border-color: var(--vz-line) !important;
  border-radius: 10px;
}
input:focus,
select:focus,
textarea:focus {
  border-color: var(--vz-royal) !important;
  box-shadow: 0 0 0 3px rgba(0,47,198,.13) !important;
  outline: none;
}

/* Blog e filtros. */
.filter-pill { border-color: var(--vz-line) !important; color: #52617b !important; }
.filter-pill:hover { border-color: var(--vz-royal) !important; color: var(--vz-royal) !important; }
.filter-pill.active,
.filter-pill.active[data-cat],
.hero-pill.active { background: var(--vz-royal) !important; border-color: var(--vz-royal) !important; color: #fff !important; }
.cat-guias,
.cat-tecnicas,
.cat-negocios,
.cat-tendencias { background: var(--vz-royal-soft) !important; color: var(--vz-royal) !important; }
.img-guias,
.img-tecnicas,
.img-negocios,
.img-tendencias { background: linear-gradient(135deg, var(--vz-navy), var(--vz-royal)) !important; }
.toc-link:hover,
.toc-link.active { color: var(--vz-royal) !important; border-color: var(--vz-royal) !important; }

/* Rodapé e elementos injetados por conversão. */
.vz-footer {
  background: linear-gradient(145deg, var(--vz-navy-deep), var(--vz-navy) 58%, var(--vz-navy-2)) !important;
  border-top: 1px solid rgba(145,170,255,.2);
}
.vz-footer a:hover { color: #fff !important; }
.vz-overlay { background: rgba(7,17,41,.64) !important; }
.vz-modal-head { background: linear-gradient(135deg, var(--vz-green), var(--vz-green-hover)) !important; }
.vz-min,
.vz-req { color: var(--vz-royal) !important; }
.vz-min { background: var(--vz-royal) !important; color: #fff !important; }
.vz-field label,
.vz-final-inner h2,
.vz-final-inner p strong { color: var(--vz-navy) !important; }
.vz-field input:focus,
.vz-field select:focus { border-color: var(--vz-royal) !important; box-shadow: 0 0 0 3px rgba(0,47,198,.13) !important; }
.vz-final-section { background: var(--vz-paper) !important; border-color: var(--vz-line) !important; }
.vz-final-card { border-color: var(--vz-line) !important; box-shadow: var(--vz-shadow-soft) !important; }

@media (max-width: 640px) {
  { overflow-x: clip; }
  .container-pad,
  .nav-container { padding-inline: 20px; }
  .btn-primary,
  .btn-wa,
  .btn-ghost,
  .btn-ghost-white { border-radius: 11px; }
  .card { border-radius: 14px; }
  section.bg-navy h1 { max-width: calc(100% - 20px); font-size: clamp(2rem, 10vw, 2.6rem) !important; line-height: 1.04 !important; letter-spacing: -.025em; overflow-wrap: anywhere; }
  section.bg-navy p { max-width: calc(100% - 20px); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* ══════════════════════════════════════════════════════════════
   NAVEGAÇÃO GLOBAL — mega menu desktop + drawer mobile
   (classes exclusivas vn-* / fb-acc*, valem com ou sem .veloz-v2)
   ══════════════════════════════════════════════════════════════ */

/* ── Mega menu desktop ── */
.vn-item { position: relative; }
.vn-item::after { content: ''; position: absolute; top: 100%; left: -12px; right: -12px; height: 18px; } /* ponte de hover */
.vn-btn { display: inline-flex; align-items: center; gap: 5px; padding: 8px 12px; border-radius: 9px; font-family: 'Montserrat', system-ui, sans-serif; font-weight: 700; font-size: 13.5px; color: rgba(11,23,52,.72); background: none; border: 0; cursor: pointer; white-space: nowrap; transition: color .15s, background .15s; line-height: 1.2; text-decoration: none; }
.vn-btn:hover, .vn-item:hover .vn-btn, .vn-item:focus-within .vn-btn { color: #002FC6; background: #EEF2FF; }
.vn-btn:focus-visible { outline: 2px solid #002FC6; outline-offset: 2px; }
.vn-btn .vn-ch { transition: transform .2s; }
.vn-item:hover .vn-btn .vn-ch, .vn-item:focus-within .vn-btn .vn-ch { transform: rotate(180deg); }
.vn-drop { position: absolute; top: calc(100% + 14px); left: 50%; transform: translateX(-50%) translateY(-6px); background: #fff; border: 1px solid #E3E7F1; border-radius: 16px; box-shadow: 0 24px 60px -18px rgba(7,17,41,.28), 0 4px 16px -6px rgba(7,17,41,.12); padding: 10px; opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .18s ease, transform .18s ease, visibility 0s linear .18s; z-index: 999; }
.vn-drop::before { content: ''; position: absolute; top: 0; left: 24px; width: 54px; height: 4px; background: linear-gradient(90deg, #002FC6, #2B5CFF); transform: skewX(-28deg); border-radius: 0 0 4px 4px; }
.vn-drop.left { left: 0; transform: translateY(-6px); }
.vn-drop.right { right: 0; left: auto; transform: translateY(-6px); }
.vn-item:hover .vn-drop, .vn-item:focus-within .vn-drop { opacity: 1; visibility: visible; pointer-events: all; transition: opacity .18s ease, transform .18s ease, visibility 0s linear 0s; }
.vn-item:hover .vn-drop:not(.left):not(.right), .vn-item:focus-within .vn-drop:not(.left):not(.right) { transform: translateX(-50%) translateY(0); }
.vn-item:hover .vn-drop.left, .vn-item:focus-within .vn-drop.left,
.vn-item:hover .vn-drop.right, .vn-item:focus-within .vn-drop.right { transform: translateY(0); }
.vn-label { font-family: 'Montserrat', system-ui, sans-serif; font-size: 10px; font-weight: 800; font-style: italic; text-transform: uppercase; letter-spacing: .13em; color: #94A3B8; padding: 6px 10px 7px; white-space: nowrap; }
.vn-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.vn-link { display: flex; align-items: center; gap: 10px; padding: 9px 11px; border-radius: 10px; font-family: 'Montserrat', system-ui, sans-serif; font-weight: 600; font-size: 13px; color: #1B2540; transition: background .12s, color .12s; white-space: nowrap; text-decoration: none; }
.vn-link:hover { background: #F4F6FB; color: #002FC6; }
.vn-ico { width: 30px; height: 30px; border-radius: 8px; background: #EEF2FF; display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: #002FC6; transition: background .12s, color .12s; }
.vn-link:hover .vn-ico { background: #002FC6; color: #fff; }
.vn-cta { color: #002FC6 !important; font-weight: 800; font-style: italic; border-top: 1px solid #E3E7F1; margin-top: 6px; padding-top: 12px; border-radius: 0 0 10px 10px; }
.vn-cta:hover { background: #EEF2FF; }
.vn-w-prod { min-width: 470px; }
.vn-w-pers { min-width: 250px; }
.vn-w-seg  { min-width: 280px; }
.vn-w-brand{ min-width: 220px; }

/* ── Drawer mobile: acordeões ── */
.fb-acc { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 22px; font-family: 'Montserrat', system-ui, sans-serif; font-weight: 700; font-size: 14px; color: #0B1734; background: none; border: 0; border-bottom: 1px solid #EDF0F7; cursor: pointer; text-align: left; }
.fb-acc .fb-acc-left { display: flex; align-items: center; gap: 12px; }
.fb-acc .lucide { color: #002FC6; }
.fb-acc .fb-ch { color: #94A3B8; transition: transform .2s; flex-shrink: 0; }
.fb-acc.open .fb-ch { transform: rotate(180deg); }
.fb-acc.open { color: #002FC6; }
.fb-acc-body { display: none; background: #F4F6FB; border-bottom: 1px solid #EDF0F7; }
.fb-acc-body.open { display: block; }
.fb-sub { display: flex; align-items: center; gap: 10px; padding: 12px 24px 12px 30px; font-family: 'Montserrat', system-ui, sans-serif; font-weight: 600; font-size: 13px; color: #41506C; border-bottom: 1px solid #E9EDF5; text-decoration: none; }
.fb-sub:last-child { border-bottom: 0; }
.fb-sub:active { background: #EEF2FF; }
.fb-sub .lucide { color: #7C8DB0; width: 15px; height: 15px; }
.fb-sub-cta { color: #002FC6; font-weight: 800; font-style: italic; }
.fb-sub-cta .lucide { color: #002FC6; }

/* ── Hero interno: figura ilustrativa à direita ── */
.hero-side-img { position: absolute; right: 4%; top: 50%; transform: translateY(-50%) rotate(1.5deg); width: 330px; display: none; }
@media (min-width: 1024px) { .hero-side-img { display: block; } }
@media (min-width: 1280px) { .hero-side-img { width: 380px; } }
.hero-side-img figure { position: relative; border-radius: 18px; overflow: hidden; box-shadow: 0 30px 60px -22px rgba(2,8,24,.65); outline: 1px solid rgba(255,255,255,.16); }
.hero-side-img img { width: 100%; aspect-ratio: 4/3; object-fit: cover; display: block; }
.hero-side-img figcaption { position: absolute; inset-inline: 0; bottom: 0; padding: 30px 16px 12px; background: linear-gradient(to top, rgba(7,17,41,.88), transparent); color: #fff; font-family: 'Montserrat', system-ui, sans-serif; font-weight: 800; font-style: italic; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; display: flex; align-items: center; gap: 8px; }
.hero-side-img .hs-dash { display: inline-flex; flex-direction: column; gap: 3px; }
.hero-side-img .hs-dash i { display: block; height: 3px; border-radius: 2px; background: #5B7CFF; transform: skewX(-28deg); }
.hero-side-img .hs-dash i:nth-child(1) { width: 18px; margin-left: 6px; }
.hero-side-img .hs-dash i:nth-child(2) { width: 26px; }

/* ── Cards de segmento com imagem (hub segmentos e afins) ── */
.seg-card-img { padding: 0 !important; overflow: hidden; }
.seg-card-img .seg-thumb { position: relative; aspect-ratio: 16/9; overflow: hidden; }
.seg-card-img .seg-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .45s ease; }
.seg-card-img:hover .seg-thumb img { transform: scale(1.06); }
.seg-card-img .seg-thumb::after { content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(7,17,41,.42), transparent 55%); }
.seg-card-img .seg-tag { position: absolute; left: 12px; bottom: 10px; z-index: 1; display: inline-flex; align-items: center; gap: 6px; background: rgba(255,255,255,.94); color: #0B1734; font-family: 'Montserrat', system-ui, sans-serif; font-weight: 800; font-style: italic; font-size: 11px; padding: 5px 11px; border-radius: 999px; }
.seg-card-img .seg-tag .lucide { color: #002FC6; }
.seg-card-img .seg-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 10px; flex: 1; }


.btn-wa, .b-wa { background:#0F8A4C !important; }
.btn-wa:hover, .b-wa:hover { background:#13A559 !important; }
.vz-float-wpp { background:#0F8A4C !important; color:#fff !important; }
.vz-float-wpp:hover { background:#13A559 !important; }

.elementor-form { overflow:clip; }
.container-pad, .nav-container { max-width:var(--vz-container,1366px) !important; }
.article-body, .article-body > p, .article-body > ul, .article-body > ol { max-width:74ch; }
@media (max-width:767px) { .elementor-widget-html table.w-full { width:100% !important; max-width:100% !important; table-layout:fixed; } }
@media (max-width:1023px) { .vz-mob-bar { left:0 !important; right:auto !important; width:100vw !important; max-width:100vw !important; box-sizing:border-box; } .vz-float-wpp { display:none !important; } }
.elementor-kit-8 a.btn-primary, .elementor-kit-8 a.btn-primary:hover, .elementor-kit-8 a.btn-primary:focus, .elementor-kit-8 a.btn-primary:visited, .elementor-kit-8 a.btn-wa, .elementor-kit-8 a.btn-wa:hover, .elementor-kit-8 a.btn-wa:focus, .elementor-kit-8 a.btn-wa:visited, .elementor-kit-8 a.btn-ghost, .elementor-kit-8 a.btn-ghost:visited { color:#fff; }
.elementor-kit-8 a.btn-ghost-white, .elementor-kit-8 a.btn-ghost-white:visited { color:#fff; }
.elementor-kit-8 a.btn-ghost:hover { color:#0B1734; }
.elementor-kit-8 a.btn-ghost-white:hover { color:#0B1734; }
.elementor-kit-8 a.text-white { color:#fff; }
.eyebrow, .text-orange, span.text-orange { color:#002FC6 !important; }
section.bg-navy .eyebrow, .bg-navy .text-orange { color:#8FA8FF !important; }
[class*="text-orange"] { color:#002FC6 !important; }
.bg-navy [class*="text-orange"], section.bg-navy [class*="text-orange"], .bg-navy .formula-text, .formula-box .formula-text { color:#8FA8FF !important; }
.text-slate-400 { color:#5B6574 !important; }
.text-slate-500 { color:#5B6574 !important; }
.bg-green-500 { background-color:#0D7C44 !important; }
.hover\:bg-green-600:hover { background-color:#0B6E3C !important; }
.bg-white\/8 { background-color:rgba(255,255,255,.08) !important; }
.bg-navy\/70 { background-color:rgba(11,23,52,.7) !important; }
.bg-navy\/95 { background-color:rgba(11,23,52,.95) !important; }
.bg-navy\/5 { background-color:rgba(11,23,52,.05) !important; }
.elementor-kit-8 button.btn-ghost { background:transparent; }
.elementor-kit-8 button.faq-btn { background:transparent; color:inherit; text-align:left; }
.elementor-kit-8 button.filter-pill { background:transparent; }
.elementor-kit-8 button.filter-pill.active, .elementor-kit-8 button.hero-pill.active { background:#002FC6; color:#fff; }
.elementor-kit-8 section.bg-navy a:not([class*="btn"]):not([class*="cta"]), .elementor-kit-8 .bg-navy a:not([class*="btn"]):not([class*="cta"]) { color:#fff; }
.elementor-kit-8 a.btn-ghost.text-white, .elementor-kit-8 a.btn-ghost.border-white { color:#fff; border-color:rgba(255,255,255,.85); }
section.bg-navy .btn-ghost, .bg-navy .btn-ghost { color:#fff !important; border-color:rgba(255,255,255,.85) !important; }
section.bg-navy .btn-ghost:hover, .bg-navy .btn-ghost:hover { background:#fff !important; color:#0B1734 !important; }
.vz-form input:focus, .vz-form select:focus, .vz-form textarea:focus, body input.elementor-field-textual:focus, body textarea.elementor-field-textual:focus { border-color:#002FC6 !important; outline:2px solid rgba(0,47,198,.16) !important; outline-offset:0; }
/* ═══ /INTERNAS ═══ *//* End custom CSS */