/* Landing do César. Mesma identidade do app (Cesar.Web/wwwroot/css/app.css), mas folha
   independente: a landing não compartilha componentes com o chat e precisa carregar o
   mínimo — uma folha só, sem webfont, tudo em cima da pilha de fontes do sistema. */

:root {
    color-scheme: light;

    --canvas: #f3f1eb;
    --surface: #fffefa;
    --surface-strong: #ffffff;
    --ink: #17201b;
    --ink-muted: #5c665e;
    --line: #d9dcd5;
    --panel-line: #c8cec8;

    --green: #176b45;
    --green-dark: #0f4d32;
    --green-soft: #e4f0e8;
    --on-accent: #ffffff;
    --accent-ink: #0f4d32;
    --user-bubble: #0f4d32;
    --on-user-bubble: #ffffff;
    --glow-accent: rgba(23, 107, 69, 0.26);

    --shadow-1: 0 2px 8px rgba(23, 32, 27, 0.06);
    --shadow-2: 0 12px 36px rgba(23, 32, 27, 0.09);

    /* Texto pequeno; em toque sobe um degrau (ver pointer: coarse abaixo). */
    --text-xs: 0.78rem;
    --text-sm: 0.88rem;
    --radius: 14px;
    --max-width: 68rem;
}

/* Tema: sem escolha guardada segue o sistema; com data-theme no <html> (gravado pelo botão
   do header em localStorage e aplicado antes da pintura) a escolha vence nos dois sentidos. */
@media (pointer: coarse) {
    :root {
        --text-xs: 0.85rem;
        --text-sm: 0.94rem;
    }
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
        color-scheme: dark;

        --canvas: #12181a;
        --surface: #1a2124;
        --surface-strong: #20282b;
        --ink: #e8ebe6;
        --ink-muted: #9aa69c;
        --line: #2c3538;
        --panel-line: #364043;

        --green: #3ba873;
        --green-dark: #2c9161;
        --green-soft: #1c2f26;
        --on-accent: #0c1512;
        --accent-ink: #64c295;
        --user-bubble: #2c9161;
        --on-user-bubble: #0c1512;
        --glow-accent: rgba(59, 168, 115, 0.22);

        --shadow-1: 0 2px 8px rgba(0, 0, 0, 0.35);
        --shadow-2: 0 12px 36px rgba(0, 0, 0, 0.45);
    }
}

:root[data-theme="dark"] {
    color-scheme: dark;

    --canvas: #12181a;
    --surface: #1a2124;
    --surface-strong: #20282b;
    --ink: #e8ebe6;
    --ink-muted: #9aa69c;
    --line: #2c3538;
    --panel-line: #364043;

    --green: #3ba873;
    --green-dark: #2c9161;
    --green-soft: #1c2f26;
    --on-accent: #0c1512;
    --accent-ink: #64c295;
    --user-bubble: #2c9161;
    --on-user-bubble: #0c1512;
    --glow-accent: rgba(59, 168, 115, 0.22);

    --shadow-1: 0 2px 8px rgba(0, 0, 0, 0.35);
    --shadow-2: 0 12px 36px rgba(0, 0, 0, 0.45);
}

*,
*::before,
*::after {
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }
}

body {
    margin: 0;
    background: var(--canvas);
    color: var(--ink);
    font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    font-size: 1.0625rem;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
}

h1,
h2,
h3 {
    line-height: 1.15;
    margin: 0 0 0.75rem;
    text-wrap: balance;
    letter-spacing: -0.015em;
}

p {
    margin: 0 0 1rem;
}

a {
    color: var(--accent-ink);
}

/* Anel de foco único para todo controle: sem isto cada navegador desenha o seu (e o Safari
   quase nada), e quem navega por teclado perde o rastro entre botões, links e o <select>. */
a:focus-visible,
button:focus-visible,
select:focus-visible,
input:focus-visible,
summary:focus-visible {
    outline: 3px solid var(--accent-ink);
    outline-offset: 2px;
}

/* Toque: sem o atraso/zoom de duplo toque e sem o realce azul do WebKit; o :active de cada
   controle é quem responde. */
a,
button,
select,
summary,
label {
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}

/* Sem ponteiro que paira, o "levantar" ficaria preso após o toque. */
@media (hover: none) {
    .button:hover,
    .card:hover,
    .integration-tile:hover {
        transform: none;
    }
}

/* ---------- utilidades ---------- */

.skip-link {
    position: absolute;
    left: -999px;
    top: 0;
    background: var(--green-dark);
    color: var(--on-accent);
    padding: 0.6rem 1rem;
    border-radius: 0 0 var(--radius) 0;
    z-index: 10;
}

.skip-link:focus {
    left: 0;
}

.eyebrow {
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--accent-ink);
    margin: 0 0 0.6rem;
}

.button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0.6rem 1.5rem;
    border-radius: 999px;
    font-weight: 600;
    text-decoration: none;
    transition: transform 120ms ease, box-shadow 120ms ease, background-color 120ms ease;
}

.button:hover {
    transform: translateY(-1px);
}

.button-primary {
    background: var(--green-dark);
    color: var(--on-accent);
    box-shadow: 0 8px 24px var(--glow-accent);
}

.button-primary:hover {
    background: var(--green);
}

.button-ghost {
    border: 1px solid var(--panel-line);
    color: var(--ink);
}

.button-ghost:hover {
    border-color: var(--green);
    color: var(--accent-ink);
}

.button-lg {
    padding: 0.95rem 2.2rem;
    font-size: 1.1rem;
}

/* ---------- header ---------- */

.site-header {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 1.1rem 1.5rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.brand {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
    color: var(--ink);
}

/* Três <img> e o CSS escolhe: o tema pode vir da preferência do sistema ou do data-theme
   salvo pelo botão, e o <picture> só saberia da primeira. */
.brand-logo {
    display: block;
    height: 36px;
    width: auto;
}

.brand-logo-dark,
.brand-logo-mark {
    display: none;
}

:root[data-theme="dark"] .brand-logo-light {
    display: none;
}

:root[data-theme="dark"] .brand-logo-dark {
    display: block;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .brand-logo-light {
        display: none;
    }

    :root:not([data-theme="light"]) .brand-logo-dark {
        display: block;
    }
}

/* Cabeçalho estreito: só o círculo, para sobrar espaço às ações. O rodapé mantém o wordmark. */
@media (max-width: 640px) {
    .site-header .brand-logo-light,
    .site-header .brand-logo-dark {
        display: none !important;
    }

    .site-header .brand-logo-mark {
        display: block;
    }
}

.header-nav {
    display: flex;
    align-items: center;
    gap: 1.4rem;
}

.nav-link {
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 500;
}

.nav-link:hover {
    color: var(--accent-ink);
}

/* Celular: em vez de sumir com a navegação (o visitante perdia Integrações e Contato sem
   nenhum menu para recuperá-los), o cabeçalho vira duas linhas — marca e ações em cima, os
   links numa faixa discreta embaixo. Sem JS e sem hambúrguer para dois links. */
@media (max-width: 640px) {
    .site-header {
        flex-wrap: wrap;
        padding: 0.8rem 1rem 0.5rem;
        row-gap: 0.15rem;
    }

    /* Os filhos do <nav> passam a ser itens do próprio cabeçalho, para os links poderem
       cair numa segunda linha e as ações continuarem ao lado da marca. */
    .header-nav {
        display: contents;
    }

    /* Quebra de linha forçada entre as ações (order 1) e os links (order 10). */
    .site-header::after {
        content: "";
        order: 5;
        flex-basis: 100%;
    }

    .header-nav > :not(.nav-link) {
        order: 1;
    }

    .theme-toggle {
        margin-left: auto;
    }

    .nav-link {
        order: 10;
        display: inline-flex;
        align-items: center;
        min-height: 44px;
        margin-right: 1.4rem;
        font-size: 0.95rem;
    }

    .nav-link:last-of-type {
        margin-right: auto;
    }
}

/* ---------- hero ---------- */

.hero {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 3.5rem 1.5rem 4.5rem;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 3rem;
    align-items: center;
}

@media (max-width: 860px) {
    /* minmax(0, 1fr), não 1fr: com 1fr a coluna nunca encolhe abaixo do min-content do
       conteúdo, e a fileira de bolinhas da demo (12 alvos de 44px) esticava o hero para
       ~500px numa tela de 390 — a página inteira ganhava rolagem horizontal. */
    .hero {
        grid-template-columns: minmax(0, 1fr);
        padding-top: 2rem;
    }
}

.hero h1 {
    font-size: clamp(2.25rem, 5.5vw, 3.4rem);
}

.hero h1 em {
    font-style: normal;
    color: var(--accent-ink);
}

.hero-lede {
    font-size: 1.2rem;
    color: var(--ink-muted);
    max-width: 34rem;
}

.hero-actions {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    margin-top: 1.6rem;
}

.hero-note {
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

/* ---------- mock do chat (a casca de app está em "hero: tela de app") ---------- */

.chat-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--green);
}

.chat-body {
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.bubble {
    margin: 0;
    padding: 0.7rem 1rem;
    border-radius: var(--radius);
    max-width: 88%;
    font-size: 0.98rem;
}

.bubble-user {
    align-self: flex-end;
    background: var(--user-bubble);
    color: var(--on-user-bubble);
    border-bottom-right-radius: 4px;
}

.bubble-assistant {
    align-self: flex-start;
    background: var(--green-soft);
    color: var(--ink);
    border-bottom-left-radius: 4px;
}

/* ---------- seções ---------- */

.section {
    padding: 4.25rem 1.5rem;
}

.section > .eyebrow,
.section > h2,
.section > .card-grid,
.section > .steps,
.section > .trust-grid,
.section > .faq-list,
.section > .plans-lede,
.section > .plans-grid,
.section > .plans-note {
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
}

.section > h2 {
    font-size: clamp(1.7rem, 3.5vw, 2.35rem);
    margin-bottom: 2rem;
}

.section-alt {
    background: var(--surface);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

/* ---------- três gerações ---------- */

.section-generations {
    padding-top: 1rem;
}

.section > .generations-lede,
.section > .generations {
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
}

.section-generations > h2 {
    margin-bottom: 0.75rem;
}

.generations-lede {
    color: var(--ink-muted);
    font-size: 1.1rem;
    margin-top: 0;
    margin-bottom: 2.25rem;
}

.generations {
    list-style: none;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1.25rem;
    align-items: stretch;
}

@media (max-width: 860px) {
    .generations {
        grid-template-columns: 1fr;
    }
}

.generation {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1.6rem 1.5rem 1.5rem;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    background: var(--surface);
    box-shadow: var(--shadow-1);
    /* As gerações antigas ficam desbotadas: o olho vai direto para a atual. */
    opacity: 0.78;
    transition: opacity 0.2s ease;
}

.generation:hover {
    opacity: 1;
}

.generation h3 {
    margin: 0;
    font-size: 1.2rem;
}

.generation-tag {
    margin: 0;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.14em;
    color: var(--ink-muted);
}

.generation-quote {
    margin: 0.35rem 0 0.4rem;
    padding: 0.8rem 1rem;
    border-radius: var(--radius);
    border-bottom-left-radius: 4px;
    background: var(--canvas);
    color: var(--ink-muted);
    font-style: italic;
    line-height: 1.5;
}

.generation-text {
    margin: 0;
    color: var(--ink-muted);
}

/* Geração atual: cor, borda forte, um leve salto e um brilho — é o César. */
.generation-current {
    opacity: 1;
    border-color: var(--green);
    background: var(--surface-strong);
    box-shadow: 0 0 0 1px var(--green), 0 18px 48px var(--glow-accent), var(--shadow-2);
    transform: translateY(-0.4rem);
}

@media (max-width: 860px) {
    .generation-current {
        transform: none;
    }
}

.generation-current .generation-tag,
.generation-current h3 {
    color: var(--accent-ink);
}

.generation-current .generation-quote {
    background: var(--green-soft);
    color: var(--ink);
    font-style: normal;
    font-weight: 500;
}

.generation-current .generation-text {
    color: var(--ink);
}

@media (prefers-reduced-motion: reduce) {
    .generation {
        transition: none;
    }
}

/* O pedido único que as duas colunas respondem: uma bolha do usuário, centralizada. */
.section > .generations-request {
    max-width: var(--max-width);
    margin: -1.25rem auto 1.5rem;
    display: flex;
    justify-content: center;
}

.generations-request .bubble {
    font-weight: 600;
    font-size: 1.05rem;
    border-bottom-right-radius: var(--radius);
    border-bottom-left-radius: 4px;
}

/* Sem contexto × com contexto: duas colunas, e o César ligeiramente mais largo. */
.generations-two {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
    max-width: 58rem;
}

@media (max-width: 860px) {
    .generations-two {
        grid-template-columns: 1fr;
    }
}

/* ---------- o que ele sabe de você ---------- */

.section > .knows-lede,
.section > .knows-grid {
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
}

.knows-lede {
    color: var(--ink-muted);
    font-size: 1.15rem;
    max-width: 44rem;
    margin-top: 0;
    margin-bottom: 2.5rem;
}

.knows-grid {
    list-style: none;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: 1.25rem;
}

.knows-card {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1.4rem 1.5rem 1.5rem;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    background: var(--surface-strong);
    box-shadow: var(--shadow-1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.knows-card:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-2);
}

.knows-source {
    margin: 0 0 0.2rem;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: var(--accent-ink);
}

.knows-line {
    margin: 0;
    color: var(--ink-muted);
    line-height: 1.5;
}

.knows-label {
    display: inline-block;
    margin-right: 0.35rem;
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: var(--canvas);
    color: var(--ink-muted);
    font-size: 0.8rem;
    font-weight: 700;
}

/* "Então ele…" é a linha que vende: cor e peso. */
.knows-does {
    color: var(--ink);
    font-weight: 500;
    padding-top: 0.5rem;
    border-top: 1px dashed var(--line);
}

.knows-does .knows-label {
    background: var(--green-soft);
    color: var(--accent-ink);
}

@media (prefers-reduced-motion: reduce) {
    .knows-card {
        transition: none;
    }
}

/* ---------- o contexto cresce ---------- */

.section > .grows-lede,
.section > .grows-timeline,
.section > .privacy-strip,
.section > .grows-cta {
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
}

.grows-lede {
    color: var(--ink-muted);
    font-size: 1.15rem;
    max-width: 44rem;
    margin-top: 0;
    margin-bottom: 2.5rem;
}

.grows-timeline {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 2rem;
    position: relative;
}

.grows-step {
    position: relative;
    padding-top: 1.4rem;
    border-top: 2px solid var(--line);
}

.grows-dot {
    position: absolute;
    top: -0.55rem;
    left: 0;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: var(--green-dark);
    box-shadow: 0 0 0 4px var(--green-soft);
}

.grows-step h3 {
    margin: 0 0 0.4rem;
    font-size: 1.12rem;
    color: var(--accent-ink);
}

.grows-step p {
    margin: 0;
    color: var(--ink-muted);
}

.privacy-strip {
    margin-top: 3rem;
    padding: 1.6rem 1.75rem;
    border-radius: var(--radius);
    border: 1px solid var(--line);
    background: var(--surface-strong);
    box-shadow: var(--shadow-1);
}

.privacy-title {
    margin: 0 0 1rem;
    font-size: 1.15rem;
}

.privacy-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1rem 1.5rem;
}

.privacy-item {
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
    color: var(--ink-muted);
    line-height: 1.5;
}

.privacy-item strong {
    color: var(--ink);
}

.privacy-check {
    flex: none;
    display: grid;
    place-items: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--green-soft);
    color: var(--accent-ink);
    margin-top: 0.1rem;
}

.grows-cta {
    margin-top: 2.25rem;
    text-align: center;
}

/* ---------- capacidades ---------- */

.card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 1.25rem;
}

.card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.5rem;
    box-shadow: var(--shadow-1);
}

.section-alt .card {
    background: var(--surface-strong);
}

.card h3 {
    font-size: 1.12rem;
    color: var(--accent-ink);
}

.card p {
    margin: 0;
    color: var(--ink-muted);
}

/* ---------- proatividade ("ele cuida sozinho") ---------- */

.section-proactive {
    background:
        radial-gradient(60rem 30rem at 85% -10%, var(--glow-accent), transparent 60%),
        var(--surface);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.section-proactive > .proactive-lede,
.section-proactive > .proactive-list,
.section-proactive > .proactive-closing {
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
}

.proactive-title {
    font-size: clamp(2rem, 4.5vw, 3.2rem);
    letter-spacing: -0.02em;
    margin-bottom: 0.75rem;
}

.proactive-lede {
    color: var(--ink-muted);
    font-size: 1.15rem;
    max-width: 44rem;
    margin-top: 0;
    margin-bottom: 2.5rem;
}

.proactive-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
    gap: 1.25rem;
}

.proactive-item {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    background: var(--surface-strong);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.5rem;
    box-shadow: var(--shadow-1);
    transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.proactive-item:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-2);
}

.proactive-index {
    flex: none;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.6rem;
    font-weight: 700;
    line-height: 1;
    color: var(--accent-ink);
    opacity: 0.55;
    padding-top: 0.15rem;
}

.proactive-item h3 {
    font-size: 1.12rem;
    color: var(--accent-ink);
    margin: 0 0 0.4rem;
}

.proactive-item p {
    margin: 0;
    color: var(--ink-muted);
}

.proactive-closing {
    margin-top: 3rem;
    text-align: center;
    padding: 2.5rem 1.5rem;
    border-radius: var(--radius);
    background: var(--user-bubble);
    color: var(--on-user-bubble);
    box-shadow: var(--shadow-2);
}

.proactive-closing-title {
    font-family: Georgia, "Times New Roman", serif;
    font-size: clamp(1.7rem, 3.5vw, 2.5rem);
    font-weight: 700;
    letter-spacing: -0.01em;
    margin: 0 0 0.6rem;
}

.proactive-closing-text {
    font-size: 1.15rem;
    max-width: 40rem;
    margin: 0 auto 1.5rem;
    opacity: 0.92;
}

.proactive-closing .button-primary {
    background: var(--on-user-bubble);
    color: var(--user-bubble);
    border-color: transparent;
}

.proactive-closing .button-primary:hover {
    filter: brightness(0.94);
}

@media (max-width: 640px) {
    .proactive-item {
        padding: 1.25rem;
    }

    .proactive-closing {
        padding: 2rem 1.25rem;
    }
}

/* ---------- canais (Telegram, WhatsApp) ---------- */

.hero-channels {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem 0.6rem;
    margin: 1.1rem 0 0;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.hero-channels-label {
    margin-right: 0.15rem;
}

.channel-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.35rem 0.75rem 0.35rem 0.5rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--ink);
    font-weight: 600;
    text-decoration: none;
    box-shadow: var(--shadow-1);
    transition: border-color 140ms ease, transform 140ms ease;
}

.channel-chip:hover {
    border-color: var(--green);
    transform: translateY(-1px);
}

.channel-chip-soon {
    color: var(--ink-muted);
    border-style: dashed;
}

.channel-chip-icon,
.channel-logo {
    display: grid;
    place-items: center;
    flex: none;
    border-radius: 50%;
    color: var(--on-accent);
}

.channel-chip-icon {
    width: 1.5rem;
    height: 1.5rem;
}

.channel-chip-icon svg,
.channel-logo svg {
    width: 62%;
    height: 62%;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.9;
    stroke-linecap: round;
    stroke-linejoin: round;
}

/* Cores de marca, só nos ícones: o resto segue o verde do César. */
.channel-icon-telegram {
    background: #2aabee;
}

.channel-icon-whatsapp {
    background: #25d366;
}

.channel-chip-soon .channel-chip-icon {
    filter: saturate(0.35);
    opacity: 0.85;
}

.channel-chip-badge {
    padding: 0.1rem 0.5rem;
    border-radius: 999px;
    background: var(--green-soft);
    color: var(--accent-ink);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

/* Mesmo eixo das outras seções (h2, grades): centralizado na página, alinhado à esquerda no bloco. */
.section > .channels-lede,
.section > .channels,
.section > .channels-note {
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
}

.section-channels > h2 {
    margin-bottom: 0.75rem;
}

.channels-lede,
.channels-note {
    color: var(--ink-muted);
}

.channels-lede {
    margin-top: 0;
    margin-bottom: 2.25rem;
    font-size: 1.1rem;
}

.channels-note {
    margin-top: 1.75rem;
    margin-bottom: 0;
    font-size: var(--text-sm);
}

.channels {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 20rem), 1fr));
    gap: 1.5rem;
}

.channel-card {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: 1.75rem;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) + 4px);
    background: var(--surface);
    box-shadow: var(--shadow-2);
    overflow: hidden;
}

.channel-card-available {
    border-color: var(--green);
    box-shadow: 0 0 0 4px var(--green-soft), var(--shadow-2);
}

.channel-card-soon {
    border-style: dashed;
}

.channel-head {
    display: flex;
    align-items: center;
    gap: 0.9rem;
}

.channel-logo {
    width: 3rem;
    height: 3rem;
}

.channel-card-soon .channel-logo {
    filter: saturate(0.4);
    opacity: 0.9;
}

.channel-head-text {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.channel-head h3 {
    margin: 0;
    font-size: 1.35rem;
    color: var(--ink);
}

.channel-status {
    display: inline-flex;
    align-self: flex-start;
    padding: 0.12rem 0.55rem;
    border-radius: 999px;
    background: var(--green);
    color: var(--on-accent);
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.channel-card-soon .channel-status {
    background: var(--green-soft);
    color: var(--accent-ink);
}

.channel-text {
    margin: 0;
    color: var(--ink);
    font-size: 1.02rem;
}

.channel-points {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.5rem;
    color: var(--ink-muted);
}

.channel-points li {
    position: relative;
    padding-left: 1.5rem;
}

.channel-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.5rem;
    width: 0.85rem;
    height: 0.5rem;
    border-left: 2px solid var(--green);
    border-bottom: 2px solid var(--green);
    transform: rotate(-45deg) translate(0.1rem, -0.05rem);
}

/* Mini-conversa: mesmas cores das bolhas da demo do hero. */
.channel-chat {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-top: auto;
    padding: 1rem;
    border: 1px solid var(--line);
    border-radius: var(--radius);
    background: var(--canvas);
}

.channel-bubble {
    max-width: 88%;
    padding: 0.55rem 0.8rem;
    border-radius: 14px;
    font-size: var(--text-sm);
    line-height: 1.4;
}

.channel-bubble-user {
    align-self: flex-end;
    background: var(--user-bubble);
    color: var(--on-user-bubble);
    border-bottom-right-radius: 4px;
}

.channel-bubble-assistant,
.channel-bubble-scheduled-task {
    align-self: flex-start;
    background: var(--surface-strong);
    color: var(--ink);
    border: 1px solid var(--line);
    border-bottom-left-radius: 4px;
}

.channel-bubble-scheduled-task {
    border-left: 3px solid var(--green);
}

@media (max-width: 640px) {
    .channel-card {
        padding: 1.25rem;
    }

    .channel-head h3 {
        font-size: 1.2rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .channel-chip {
        transition: none;
    }

    .channel-chip:hover {
        transform: none;
    }
}

/* ---------- passos ---------- */

.steps {
    list-style: none;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 2rem;
}

.step-number {
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: var(--green-dark);
    color: var(--on-accent);
    font-weight: 700;
    font-size: 1.1rem;
    margin-bottom: 0.9rem;
}

.step h3 {
    font-size: 1.12rem;
}

.step p {
    margin: 0;
    color: var(--ink-muted);
}

/* ---------- confiança ---------- */

.trust-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 2rem;
}

.trust-item {
    border-left: 3px solid var(--green);
    padding-left: 1.25rem;
}

.trust-item h3 {
    font-size: 1.12rem;
}

.trust-item p {
    margin: 0;
    color: var(--ink-muted);
}

/* ---------- planos ---------- */

/* A largura vem do contêiner da seção (a regra .section > … acima), como em todas as outras.
   Um max-width em ch aqui brigaria com a centralização e desalinharia o texto dos cartões. */
.plans-lede {
    margin: 0.75rem auto 2rem;
    color: var(--ink-muted);
}

/* auto-fit com minmax: três colunas no desktop, duas no tablet, uma no telefone — sem media
   query, e sem um breakpoint escolhido no chute. ATENÇÃO: a receita só funciona com TRÊS
   cartões; um quarto não cabe no --max-width de 68rem e cai órfão (aconteceu com o Elite em
   2026-08-23) — se o catálogo crescer, troque por colunas explícitas 4 → 2×2 → 1. */
.plans-grid {
    display: grid;
    /* Mesma receita e mesmo respiro de .steps e .trust-grid: com --max-width em 68rem, três
       colunas no desktop, duas no tablet e uma no telefone. */
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 1.5rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

/* Mesmos tokens de .channel-card: raio, borda, sombra e fundo da casa. Valores próprios aqui
   fariam esta seção parecer de outro site. */
.plan-card {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    padding: 1.75rem;
    border: 1px solid var(--line);
    border-radius: calc(var(--radius) + 4px);
    background: var(--surface);
    box-shadow: var(--shadow-2);
}

/* A seção é .section-alt, cujo fundo é --surface: sem isto o cartão sumiria contra ele. */
.section-alt .plan-card {
    background: var(--surface-strong);
}

/* O plano destacado ganha contorno, não escala: um cartão maior que os vizinhos quebra o
   alinhamento das linhas e dificulta justamente a comparação que a seção existe para permitir. */
.plan-card-featured {
    border-color: var(--green);
    box-shadow: 0 10px 30px var(--glow-accent);
}

.plan-badge {
    align-self: flex-start;
    margin: 0 0 0.25rem;
    padding: 0.2rem 0.7rem;
    border-radius: 999px;
    background: var(--green-soft);
    color: var(--accent-ink);
    font-size: 0.75rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.plan-name {
    margin: 0;
    font-size: 1.12rem;
    color: var(--accent-ink);
}

.plan-price {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0.25rem 0 0;
}

.plan-price strong {
    font-size: 2rem;
    line-height: 1.1;
}

.plan-price span {
    color: var(--ink-muted);
    font-size: 0.95rem;
}

.plan-tokens {
    margin: 0.5rem 0 0;
    font-weight: 600;
}

/* O número que a pessoa consegue imaginar. "4 milhões de tokens" não diz nada sozinho. */
.plan-conversations {
    margin: 0;
    color: var(--ink-muted);
    font-size: 0.9rem;
}

.plan-text {
    margin: 0.75rem 0 0;
    color: var(--ink-muted);
}

.plan-points {
    margin: 1rem 0 1.5rem;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.5rem;
}

.plan-points li {
    position: relative;
    padding-left: 1.5rem;
    font-size: 0.95rem;
}

/* Marcador desenhado no ::before e escondido do leitor de tela: um "✓" literal no HTML vira
   "marca de seleção" lido antes de cada item. */
.plan-points li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.45em;
    width: 0.85rem;
    height: 0.45rem;
    border-left: 2px solid var(--green);
    border-bottom: 2px solid var(--green);
    transform: rotate(-45deg);
}

/* margin-top auto encosta o botão no rodapé do cartão: com textos de tamanhos diferentes, os
   três CTAs continuam alinhados na mesma linha. */
.plan-cta {
    margin-top: auto;
    width: 100%;
}

.plans-note {
    margin: 1.5rem auto 0;
    color: var(--ink-muted);
    font-size: 0.9rem;
}

@media (prefers-reduced-motion: reduce) {
    .plan-cta {
        transition: none;
    }
}

/* ---------- FAQ ----------
   Título à esquerda (fixo enquanto a lista rola, em telas largas) e perguntas à direita, cada
   uma com um "+" que vira "×" ao abrir. A resposta abre com animação de altura via grid-rows,
   que é o único jeito de animar altura desconhecida sem JS. */

.section-faq {
    display: grid;
    grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.4fr);
    gap: 3rem 4rem;
    align-items: start;
    max-width: var(--max-width);
    margin: 0 auto;
}

.faq-side {
    position: sticky;
    top: 5.5rem;
}

.faq-side .eyebrow {
    margin-bottom: 0.6rem;
}

.faq-side h2 {
    margin: 0 0 0.9rem;
    font-size: clamp(1.7rem, 3.5vw, 2.35rem);
    line-height: 1.15;
    text-wrap: balance;
}

.faq-intro {
    margin: 0;
    color: var(--ink-muted);
    max-width: 24rem;
    line-height: 1.6;
}

.faq-list {
    display: grid;
    gap: 0.6rem;
}

.faq-item {
    background: var(--surface-strong);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.faq-item:hover {
    border-color: color-mix(in srgb, var(--accent-ink) 45%, var(--line));
}

.faq-item[open] {
    border-color: var(--accent-ink);
    box-shadow: 0 8px 28px rgba(15, 77, 50, 0.08);
}

.faq-item summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.05rem 1.25rem;
    font-weight: 600;
    font-size: 1.02rem;
    line-height: 1.4;
    cursor: pointer;
    list-style: none;
    transition: color 120ms ease, background 120ms ease;
}

.faq-item summary::-webkit-details-marker {
    display: none;
}

.faq-item summary:hover {
    color: var(--accent-ink);
    background: var(--surface);
}

.faq-item summary:focus-visible {
    outline: 3px solid var(--accent-ink);
    outline-offset: -3px;
    border-radius: var(--radius);
}

.faq-item[open] summary {
    color: var(--accent-ink);
}

/* O "+" desenhado com dois traços: gira 45° e vira "×" quando aberto. */
.faq-marker {
    position: relative;
    flex: 0 0 auto;
    width: 1.75rem;
    height: 1.75rem;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: var(--surface);
    transition: transform 220ms ease, background 160ms ease, border-color 160ms ease;
}

.faq-marker::before,
.faq-marker::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.75rem;
    height: 2px;
    border-radius: 2px;
    background: currentColor;
    transform: translate(-50%, -50%);
}

.faq-marker::after {
    transform: translate(-50%, -50%) rotate(90deg);
}

.faq-item[open] .faq-marker {
    transform: rotate(45deg);
    background: var(--green-soft);
    border-color: transparent;
}

.faq-answer {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 260ms ease;
}

.faq-item[open] .faq-answer {
    grid-template-rows: 1fr;
}

.faq-answer > p {
    overflow: hidden;
    margin: 0;
    padding: 0 1.25rem;
    color: var(--ink-muted);
    line-height: 1.65;
    max-width: 60ch;
}

.faq-item[open] .faq-answer > p {
    padding-bottom: 1.15rem;
}

/* Sem JS, o [open] entra sem transição intermediária, então o padding precisa animar junto para
   não "pular" — os dois em transição, o padding acompanha a altura. */
.faq-answer > p {
    transition: padding-bottom 260ms ease;
}

@media (max-width: 860px) {
    .section-faq {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.75rem;
    }

    .faq-side {
        position: static;
    }
}

@media (max-width: 640px) {
    .faq-item summary {
        padding: 0.95rem 1rem;
        font-size: 0.98rem;
    }

    .faq-answer > p {
        padding-left: 1rem;
        padding-right: 1rem;
    }
}

@media (prefers-reduced-motion: reduce) {
    .faq-item,
    .faq-marker,
    .faq-answer,
    .faq-answer > p {
        transition: none;
    }
}

/* ---------- CTA final ---------- */

.cta-final {
    text-align: center;
    padding-bottom: 5.5rem;
}

.cta-final h2 {
    font-size: clamp(1.8rem, 4vw, 2.6rem);
}

.cta-final p {
    color: var(--ink-muted);
    margin-bottom: 1.75rem;
}

/* ---------- rodapé ---------- */

.site-footer {
    border-top: 1px solid var(--line);
    background: var(--surface);
}

.footer-inner {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 2rem 1.5rem;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1.5rem;
    justify-content: space-between;
}

.footer-nav {
    display: flex;
    gap: 1.4rem;
}

.footer-nav a {
    color: var(--ink-muted);
    text-decoration: none;
}

.footer-nav a:hover {
    color: var(--accent-ink);
}

.footer-note {
    margin: 0;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

/* Perfis do César (X e Instagram): marca + handle, lado a lado. */
.footer-socials {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem 1.25rem;
    justify-content: center;
}

.footer-social {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    min-height: 44px;
    color: var(--ink-muted);
    text-decoration: none;
    font-size: var(--text-sm);
}

.footer-social:hover {
    color: var(--accent-ink);
}

.footer-social-icon {
    width: 18px;
    height: 18px;
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
}

.footer-social-x .footer-social-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5' fill='%23000'/%3E%3Csvg x='5' y='5.7' width='14' height='12.6' viewBox='0 0 300 271'%3E%3Cpath fill='%23fff' d='m236 0h46l-101 115 118 156h-92.6l-72.5-94.8-83 94.8h-46l107-123-113-148h94.9l65.5 86.6zm-16.1 244h25.5l-165-218h-27.4z'/%3E%3C/svg%3E%3C/svg%3E");
}

.footer-social-instagram .footer-social-icon {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3CradialGradient id='g' cx='30%25' cy='107%25' r='150%25'%3E%3Cstop offset='0' stop-color='%23fdf497'/%3E%3Cstop offset='0.1' stop-color='%23fdf497'/%3E%3Cstop offset='0.5' stop-color='%23fd5949'/%3E%3Cstop offset='0.6' stop-color='%23d6249f'/%3E%3Cstop offset='0.9' stop-color='%23285AEB'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect width='24' height='24' rx='6' fill='url(%23g)'/%3E%3Crect x='5' y='5' width='14' height='14' rx='4' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3Ccircle cx='12' cy='12' r='3.3' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3Ccircle cx='16.2' cy='7.8' r='0.9' fill='%23fff'/%3E%3C/svg%3E");
}

/* ---------- página de erro ---------- */

.error-page {
    min-height: 80vh;
    display: grid;
    place-content: center;
    text-align: center;
    padding: 2rem;
}

/* ---------- páginas internas (Contato) ---------- */

.page-article,
.page-wide {
    margin: 0 auto;
    padding: 2.5rem 1.5rem 4rem;
}

.page-article {
    max-width: 44rem;
}

.page-wide {
    max-width: var(--max-width);
}

.page-header {
    margin-bottom: 2rem;
}

.page-header h1 {
    font-size: clamp(2rem, 4.5vw, 2.8rem);
}

.page-lede {
    font-size: 1.15rem;
    color: var(--ink-muted);
    max-width: 38rem;
}

.page-section {
    margin-top: 2.25rem;
}

.page-section h2 {
    font-size: 1.35rem;
}

.page-section p {
    color: var(--ink-muted);
}

.page-list {
    padding-left: 1.2rem;
    color: var(--ink-muted);
}

.page-list li + li {
    margin-top: 0.5rem;
}

.contact-primary {
    font-size: 1.35rem;
    font-weight: 600;
}

.contact-primary a {
    color: var(--accent-ink);
}

/* ---------- página de contato ---------- */

.contact-grid {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 2.5rem;
    align-items: start;
}

.contact-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-2);
    padding: 2rem;
}

.contact-card h2 {
    margin-top: 0;
    font-size: 1.35rem;
}

.contact-aside .page-section:first-child {
    margin-top: 0;
}

.contact-form {
    display: grid;
    gap: 1rem;
}

.contact-form-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
}

.contact-form label {
    display: grid;
    gap: 0.35rem;
    font-size: var(--text-sm);
    font-weight: 600;
    color: var(--ink);
}

.contact-form input,
.contact-form textarea {
    font: inherit;
    font-weight: 400;
    color: var(--ink);
    background: var(--surface-strong);
    border: 1px solid var(--panel-line);
    border-radius: 10px;
    padding: 0.65rem 0.8rem;
    width: 100%;
}

.contact-form textarea {
    resize: vertical;
    min-height: 9rem;
}

.contact-form input:focus-visible,
.contact-form textarea:focus-visible {
    outline: 3px solid var(--accent-ink);
    outline-offset: 1px;
}

.contact-form .button {
    justify-self: start;
}

.contact-hint {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

.contact-alert {
    background: var(--green-soft);
    border: 1px solid var(--panel-line);
    border-left: 4px solid var(--green);
    border-radius: 10px;
    padding: 0.75rem 1rem;
    color: var(--ink);
}

/* A isca fica renderizada (display:none entregaria o truque a robô mais esperto), mas fora
   da tela e fora da navegação. */
.contact-trap {
    position: absolute;
    left: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.contact-sent {
    text-align: center;
    padding: 2rem 1rem;
}

.contact-sent-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 3.2rem;
    height: 3.2rem;
    border-radius: 50%;
    background: var(--green-soft);
    color: var(--accent-ink);
    font-size: 1.6rem;
    font-weight: 700;
    margin-bottom: 0.8rem;
}

.contact-sent h2 {
    margin: 0 0 0.4rem;
}

.contact-sent p {
    color: var(--ink-muted);
    margin: 0 0 1.4rem;
}

@media (max-width: 56rem) {
    .contact-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .contact-form-row {
        grid-template-columns: 1fr;
    }

    .contact-card {
        padding: 1.4rem;
    }
}

.page-cta {
    margin-top: 3rem;
}

.section-more {
    max-width: var(--max-width);
    margin: 1.5rem auto 0;
    font-weight: 600;
}

.section-more a {
    text-decoration: none;
}

/* ---------- catálogo de integrações ---------- */

.integration-filter {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 2rem;
}

.integration-filter label {
    font-weight: 600;
    color: var(--ink-muted);
}

.integration-filter select {
    font: inherit;
    padding: 0.5rem 2rem 0.5rem 0.8rem;
    border-radius: 10px;
    border: 1px solid var(--panel-line);
    background: var(--surface-strong);
    color: var(--ink);
}

.integration-group + .integration-group {
    margin-top: 3rem;
}

.integration-group-header h2 {
    font-size: 1.5rem;
    margin-bottom: 0.25rem;
}

.integration-group-header p:last-child {
    color: var(--ink-muted);
    margin-bottom: 1.25rem;
}

.integration-tile-grid {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 0.9rem;
}

.integration-tile {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding: 0.95rem 1rem;
    text-align: left;
    font: inherit;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    cursor: pointer;
    transition: border-color 120ms ease, transform 120ms ease, box-shadow 120ms ease;
}

.integration-tile:hover {
    border-color: var(--green);
    transform: translateY(-1px);
    box-shadow: var(--shadow-1);
}

.integration-tile-logo {
    flex: none;
    display: grid;
    place-items: center;
    width: 2.6rem;
    height: 2.6rem;
    border-radius: 12px;
    background: var(--green-soft);
    color: var(--accent-ink);
    font-weight: 700;
    font-size: 1.15rem;
}

.integration-tile-logo-google,
.integration-tile-logo-external {
    background: var(--surface-strong);
    border: 1px solid var(--panel-line);
    color: var(--ink);
}

/* Google, Microsoft, Dropbox e Telegram: logo oficial como SVG inline no fundo; a letra do catálogo fica transparente. */
.integration-tile-logo-google,
.integration-tile-logo-microsoft,
.integration-tile-logo-dropbox,
.integration-tile-logo-strava,
.integration-tile-logo-x,
.integration-tile-logo-instagram,
.integration-tile-logo-tiktok,
.integration-tile-logo-zoho,
.integration-tile-logo-whatsapp,
.integration-tile-logo-mercadopago,
.integration-tile-logo-pagarme,
.integration-tile-logo-asaas,
.integration-tile-logo-stripe,
.integration-tile-logo-iugu,
.integration-tile-logo-vindi,
.integration-tile-logo-pagbank,
.integration-tile-logo-efi,
.integration-tile-logo-picpay,
.integration-tile-logo-telegram {
    color: transparent;
    background-repeat: no-repeat;
    background-position: center;
}

.integration-tile-logo-google {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%23fbbc05' d='M43.611 20.083H42V20H24v8h11.303c-1.649 4.657-6.08 8-11.303 8-6.627 0-12-5.373-12-12s5.373-12 12-12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4 12.955 4 4 12.955 4 24s8.955 20 20 20 20-8.955 20-20c0-1.341-.138-2.65-.389-3.917z'/%3E%3Cpath fill='%23ea4335' d='M6.306 14.691l6.571 4.819C14.655 15.108 18.961 12 24 12c3.059 0 5.842 1.154 7.961 3.039l5.657-5.657C34.046 6.053 29.268 4 24 4 16.318 4 9.656 8.337 6.306 14.691z'/%3E%3Cpath fill='%2334a853' d='M24 44c5.166 0 9.86-1.977 13.409-5.192l-6.19-5.238C29.211 35.091 26.715 36 24 36c-5.202 0-9.619-3.317-11.283-7.946l-6.522 5.025C9.505 39.556 16.227 44 24 44z'/%3E%3Cpath fill='%234285f4' d='M43.611 20.083H42V20H24v8h11.303a12.04 12.04 0 0 1-4.087 5.571l.003-.002 6.19 5.238C36.971 39.205 44 34 44 24c0-1.341-.138-2.65-.389-3.917z'/%3E%3C/svg%3E");
    background-size: 56%;
}

.integration-tile-logo-microsoft {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 23 23'%3E%3Crect x='1' y='1' width='10' height='10' fill='%23f25022'/%3E%3Crect x='12' y='1' width='10' height='10' fill='%237fba00'/%3E%3Crect x='1' y='12' width='10' height='10' fill='%2300a4ef'/%3E%3Crect x='12' y='12' width='10' height='10' fill='%23ffb900'/%3E%3C/svg%3E");
    background-size: 50%;
}

.integration-tile-logo-dropbox {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 43'%3E%3Cpath fill='%230061ff' d='M12.5 0 0 8l12.5 8L25 8zM37.5 0 25 8l12.5 8L50 8zM0 24l12.5 8L25 24l-12.5-8zM37.5 16 25 24l12.5 8L50 24zM12.5 34.7l12.5 8 12.5-8-12.5-8z'/%3E%3C/svg%3E");
    background-size: 54%;
}

/* Strava: os dois chevrons no laranja oficial. Desenho nosso; trocar pelo asset oficial antes do lançamento. */
.integration-tile-logo-strava {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fc5200' d='M10.6 0 4 13.5h3.9l2.7-5.5 2.7 5.5h3.9z'/%3E%3Cpath fill='%23fda67e' d='M15.4 17.9l-2.2-4.4H10l5.4 10.5 5.4-10.5h-3.2z'/%3E%3C/svg%3E");
    background-size: 58%;
}

/* X: a marca oficial (brand toolkit, logo-black) em branco sobre o quadrado preto arredondado. */
.integration-tile-logo-x {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5' fill='%23000'/%3E%3Csvg x='5' y='5.7' width='14' height='12.6' viewBox='0 0 300 271'%3E%3Cpath fill='%23fff' d='m236 0h46l-101 115 118 156h-92.6l-72.5-94.8-83 94.8h-46l107-123-113-148h94.9l65.5 86.6zm-16.1 244h25.5l-165-218h-27.4z'/%3E%3C/svg%3E%3C/svg%3E");
    background-size: 56%;
}

/* Instagram: glifo da câmera sobre o gradiente da marca. Desenho nosso com as cores oficiais. */
.integration-tile-logo-instagram {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cdefs%3E%3CradialGradient id='g' cx='30%25' cy='107%25' r='150%25'%3E%3Cstop offset='0' stop-color='%23fdf497'/%3E%3Cstop offset='0.1' stop-color='%23fdf497'/%3E%3Cstop offset='0.5' stop-color='%23fd5949'/%3E%3Cstop offset='0.6' stop-color='%23d6249f'/%3E%3Cstop offset='0.9' stop-color='%23285AEB'/%3E%3C/radialGradient%3E%3C/defs%3E%3Crect width='24' height='24' rx='6' fill='url(%23g)'/%3E%3Crect x='5' y='5' width='14' height='14' rx='4' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3Ccircle cx='12' cy='12' r='3.3' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3Ccircle cx='16.2' cy='7.8' r='0.9' fill='%23fff'/%3E%3C/svg%3E");
    background-size: 56%;
}

/* TikTok: a nota da marca (path do Simple Icons, CC0) com as sombras ciano e vermelha sobre fundo preto. */
.integration-tile-logo-tiktok {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5' fill='%23000'/%3E%3Cg transform='translate(5 5) scale(0.58)'%3E%3Cpath fill='%2325F4EE' transform='translate(-0.7 -0.7)' d='M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3Cpath fill='%23FE2C55' transform='translate(0.7 0.7)' d='M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3Cpath fill='%23fff' d='M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 100%;
}

/* Zoho Mail: envelope cujas quatro faces são as quatro cores da marca Zoho, separadas por vinco
   branco. Composição nossa com a paleta oficial, não o arquivo de marca do Zoho. Igual à regra
   .integration-catalog-logo-zoho do app (Cesar.Web/wwwroot/css/app.css). */
.integration-tile-logo-zoho {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 36'%3E%3Cg stroke='%23fff' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath fill='%23e42527' d='M0 0h48L24 18z'/%3E%3Cpath fill='%2389c540' d='M0 0v36l24-18z'/%3E%3Cpath fill='%23f9b21d' d='M48 0v36L24 18z'/%3E%3Cpath fill='%23226db4' d='M0 36h48L24 18z'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 58%;
}

.integration-tile-logo-telegram {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 240'%3E%3Ccircle cx='120' cy='120' r='120' fill='%232aabee'/%3E%3Cpath fill='%23fff' d='M54.3 118.8c35-15.2 58.3-25.3 70-30.2 33.3-13.9 40.3-16.3 44.8-16.4 1 0 3.2.2 4.7 1.4 1.2 1 1.5 2.3 1.7 3.3.2 1 .4 3.1.2 4.7-1.8 19-9.6 65.1-13.6 86.3-1.7 9-5 12-8.2 12.3-7 .6-12.3-4.6-19-9-10.6-6.9-16.5-11.2-26.8-18-11.9-7.8-4.2-12.1 2.6-19.1 1.8-1.8 32.5-29.8 33.1-32.3.1-.3.1-1.5-.6-2.1-.7-.6-1.7-.4-2.5-.2-1.1.2-17.9 11.4-50.6 33.5-4.8 3.3-9.1 4.9-13 4.8-4.3-.1-12.5-2.4-18.7-4.4-7.5-2.4-13.5-3.7-13-7.9.3-2.2 3.3-4.4 8.9-6.7z'/%3E%3C/svg%3E");
    background-size: 62%;
}

/* Gateways de pagamento do César Empresas: as mesmas marcas oficiais de .integration-catalog-logo-* do app
   (Cesar.Web/wwwroot/css/app.css). Mudou lá, muda aqui. */
.integration-tile-logo-mercadopago {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-3 -3 30 30'%3E%3Crect x='-3' y='-3' width='30' height='30' rx='7' fill='%23009ee3'/%3E%3Cpath fill='%23fff' d='M11.115 16.479a.93.927 0 0 1-.939-.886c-.002-.042-.006-.155-.103-.155-.04 0-.074.023-.113.059-.112.103-.254.206-.46.206a.816.814 0 0 1-.305-.066c-.535-.214-.542-.578-.521-.725.006-.038.007-.08-.02-.11l-.032-.03h-.034c-.027 0-.055.012-.093.039a.788.786 0 0 1-.454.16.7.699 0 0 1-.253-.05c-.708-.27-.65-.928-.617-1.126.005-.041-.005-.072-.03-.092l-.05-.04-.047.043a.728.726 0 0 1-.505.203.73.728 0 0 1-.732-.725c0-.4.328-.722.732-.722.364 0 .675.27.721.63l.026.195.11-.165c.01-.018.307-.46.852-.46.102 0 .21.016.316.05.434.13.508.52.519.68.008.094.075.1.09.1.037 0 .064-.024.083-.045a.746.744 0 0 1 .54-.225c.128 0 .263.03.402.09.69.293.379 1.158.374 1.167-.058.144-.061.207-.005.244l.027.013h.02c.03 0 .07-.014.134-.035.093-.032.235-.08.367-.08a.944.942 0 0 1 .94.93.936.934 0 0 1-.94.928zm7.302-4.171c-1.138-.98-3.768-3.24-4.481-3.77-.406-.302-.685-.462-.928-.533a1.559 1.554 0 0 0-.456-.07c-.182 0-.376.032-.58.095-.46.145-.918.505-1.362.854l-.023.018c-.414.324-.84.66-1.164.73a1.986 1.98 0 0 1-.43.049c-.362 0-.687-.104-.81-.258-.02-.025-.007-.066.04-.125l.008-.008 1-1.067c.783-.774 1.525-1.506 3.23-1.545h.085c1.062 0 2.12.469 2.24.524a7.03 7.03 0 0 0 3.056.724c1.076 0 2.188-.263 3.354-.795a9.135 9.11 0 0 0-.405-.317c-1.025.44-2.003.66-2.946.66-.962 0-1.925-.229-2.858-.68-.05-.022-1.22-.567-2.44-.57-.032 0-.065 0-.096.002-1.434.033-2.24.536-2.782.976-.528.013-.982.138-1.388.25-.361.1-.673.186-.979.185-.125 0-.35-.01-.37-.012-.35-.01-2.115-.437-3.518-.962-.143.1-.28.203-.415.31 1.466.593 3.25 1.053 3.812 1.089.157.01.323.027.491.027.372 0 .744-.103 1.104-.203.213-.059.446-.123.692-.17l-.196.194-1.017 1.087c-.08.08-.254.294-.14.557a.705.703 0 0 0 .268.292c.243.162.677.27 1.08.271.152 0 .297-.015.43-.044.427-.095.874-.448 1.349-.82.377-.296.913-.672 1.323-.782a1.494 1.49 0 0 1 .37-.05.611.61 0 0 1 .095.005c.27.034.533.125 1.003.472.835.62 4.531 3.815 4.566 3.846.002.002.238.203.22.537-.007.186-.11.352-.294.466a.902.9 0 0 1-.484.15.804.802 0 0 1-.428-.124c-.014-.01-1.28-1.157-1.746-1.543-.074-.06-.146-.115-.22-.115a.122.122 0 0 0-.096.045c-.073.09.01.212.105.294l1.48 1.47c.002 0 .184.17.204.395.012.244-.106.447-.35.606a.957.955 0 0 1-.526.171.766.764 0 0 1-.42-.127l-.214-.206a21.035 20.978 0 0 0-1.08-1.009c-.072-.058-.148-.112-.221-.112a.127.127 0 0 0-.094.038c-.033.037-.056.103.028.212a.698.696 0 0 0 .075.083l1.078 1.198c.01.01.222.26.024.511l-.038.048a1.18 1.178 0 0 1-.1.096c-.184.15-.43.164-.527.164a.8.798 0 0 1-.147-.012c-.106-.018-.178-.048-.212-.089l-.013-.013c-.06-.06-.602-.609-1.054-.98-.059-.05-.133-.11-.21-.11a.128.128 0 0 0-.096.042c-.09.096.044.24.1.293l.92 1.003a.204.204 0 0 1-.033.062c-.033.044-.144.155-.479.196a.91.907 0 0 1-.122.007c-.345 0-.712-.164-.902-.264a1.343 1.34 0 0 0 .13-.576 1.368 1.365 0 0 0-1.42-1.357c.024-.342-.025-.99-.697-1.274a1.455 1.452 0 0 0-.575-.125c-.146 0-.287.025-.42.075a1.153 1.15 0 0 0-.671-.564 1.52 1.515 0 0 0-.494-.085c-.28 0-.537.08-.767.242a1.168 1.165 0 0 0-.903-.43 1.173 1.17 0 0 0-.82.335c-.287-.217-1.425-.93-4.467-1.613a17.39 17.344 0 0 1-.692-.189 4.822 4.82 0 0 0-.077.494l.67.157c3.108.682 4.136 1.391 4.309 1.525a1.145 1.142 0 0 0-.09.442 1.16 1.158 0 0 0 1.378 1.132c.096.467.406.821.879 1.003a1.165 1.162 0 0 0 .415.08c.09 0 .179-.012.266-.034.086.22.282.493.722.668a1.233 1.23 0 0 0 .457.094c.122 0 .241-.022.355-.063a1.373 1.37 0 0 0 1.269.841c.37.002.726-.147.985-.41.221.121.688.341 1.163.341.06 0 .118-.002.175-.01.47-.059.689-.24.789-.382a.571.57 0 0 0 .048-.078c.11.032.234.058.373.058.255 0 .501-.086.75-.265.244-.174.418-.424.444-.637v-.01c.083.017.167.026.251.026.265 0 .527-.082.773-.242.48-.31.562-.715.554-.98a1.28 1.279 0 0 0 .978-.194 1.04 1.04 0 0 0 .502-.808 1.088 1.085 0 0 0-.16-.653c.804-.342 2.636-1.003 4.795-1.483a4.734 4.721 0 0 0-.067-.492 27.742 27.667 0 0 0-5.049 1.62zm5.123-.763c0 4.027-5.166 7.293-11.537 7.293-6.372 0-11.538-3.266-11.538-7.293 0-4.028 5.165-7.293 11.539-7.293 6.371 0 11.537 3.265 11.537 7.293zm.46.004c0-4.272-5.374-7.755-12-7.755S.002 7.277.002 11.55L0 12.004c0 4.533 4.695 8.203 11.999 8.203 7.347 0 12-3.67 12-8.204z'/%3E%3C/svg%3E");
    background-size: 100%;
    border-radius: 22%;
    border-color: transparent;
}

.integration-tile-logo-pagarme {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5.5' fill='%2300b86b'/%3E%3Cpath fill='%23fff' d='M7.4 5.6h5.1c3.1 0 5.1 1.8 5.1 4.6s-2 4.6-5.1 4.6H10v3.6H7.4Zm2.6 2.3v4.6h2.3c1.6 0 2.6-.9 2.6-2.3s-1-2.3-2.6-2.3Z'/%3E%3Ccircle cx='16.6' cy='17.2' r='1.5' fill='%23fff'/%3E%3C/svg%3E");
    background-size: 100%;
    border-radius: 22%;
    border-color: transparent;
}

.integration-tile-logo-asaas {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5.5' fill='%230038e5'/%3E%3Csvg x='2.2' y='10.34' width='19.6' height='3.33' viewBox='0 0 100 17' fill='none'%3E%3Cpath fill='%23fff' d='M67.0144 10.2322L71.1732 2.8531L75.291 10.2116C74.1232 9.6817 72.6687 9.41646 71.0912 9.41646C69.6159 9.41646 68.2023 9.68169 67.0144 10.2316M45.6871 10.2322L49.8459 2.8531L53.9638 10.2116C52.796 9.6817 51.3414 9.41646 49.764 9.41646C48.2887 9.41646 46.8751 9.68169 45.6871 10.2316M5.98205 10.2322L10.1409 2.69007L14.2997 10.2122C13.1319 9.68231 11.6566 9.41707 10.0791 9.41707C8.60379 9.41707 7.17003 9.6823 5.98144 10.2322M99.9988 12.067C99.9988 15.1653 97.1508 17 92.0498 17C88.4034 17 85.3096 16.3272 82.1339 14.3294L83.1788 12.4746C86.1497 14.3501 88.6901 15.0022 92.0296 15.0022C95.7378 15.0022 97.684 13.9218 97.684 12.0262C97.684 10.4975 96.2704 9.86542 93.4842 9.5801L88.5672 9.091C84.9819 8.74425 82.7081 7.37853 82.7081 4.87157C82.7081 1.89558 85.9247 0 91.0257 0C94.2014 0 96.721 0.61138 99.2412 2.18089L98.2171 4.11723C96.2092 2.79227 93.8535 2.07869 90.7597 2.07869C87.1542 2.07869 85.0235 3.21993 85.0235 4.79005C85.0235 6.27805 86.56 6.84867 88.7934 7.07314L93.8131 7.56225C97.8491 7.94976 100 9.397 100 12.067M81.3758 16.6332L72.2181 0.386904H70.1491L61.0115 16.6332H63.47L64.4739 14.7784C65.6417 12.6175 67.6698 11.4763 71.0912 11.4763C74.5127 11.4763 76.6637 12.5975 77.8522 14.799L78.8354 16.6338H81.3758V16.6332ZM60.0486 16.6332L50.8908 0.386904H48.8218L39.6843 16.6332H42.1428L43.1467 14.7784C44.3145 12.6175 46.3425 11.4763 49.764 11.4763C53.1854 11.4763 55.3364 12.5975 56.525 14.799L57.5081 16.6338H60.0486V16.6332ZM38.9873 12.067C38.9873 15.1653 36.1393 17 31.0383 17C27.3918 17 24.2981 16.3272 21.1224 14.3294L22.1673 12.4746C25.1382 14.3501 27.6786 15.0022 31.0181 15.0022C34.7263 15.0022 36.6725 13.9218 36.6725 12.0262C36.6725 10.4975 35.2589 9.86542 32.4727 9.5801L27.5557 9.091C23.9704 8.74425 21.6966 7.37853 21.6966 4.87157C21.6966 1.89558 24.9132 0 30.0142 0C33.1898 0 35.7095 0.61138 38.2297 2.18089L37.2056 4.11723C35.1977 2.79227 32.842 2.07869 29.7482 2.07869C26.1427 2.07869 24.012 3.21993 24.012 4.79005C24.012 6.27805 25.5484 6.84867 27.7819 7.07314L32.8016 7.56225C36.8375 7.94976 38.9885 9.397 38.9885 12.067M8.05167 2.30256L0 16.6326H2.45848L3.46243 14.7777C4.63023 12.6376 6.6381 11.4757 10.0797 11.4757C13.5214 11.4757 15.6729 12.6376 16.8407 14.7984L17.8239 16.6332H20.3643L11.8009 1.42655C11.3912 0.692898 10.8177 0.386904 9.87491 0.386904H2.97085L4.02493 1.45879C4.66691 2.09755 5.1707 2.30256 6.0652 2.30256H8.05167Z'/%3E%3C/svg%3E%3C/svg%3E");
    background-size: 100%;
    border-radius: 22%;
    border-color: transparent;
}

.integration-tile-logo-stripe {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5.5' fill='%23635bff'/%3E%3Cg transform='translate(5.2 5.2) scale(0.567)'%3E%3Cpath fill='%23fff' d='M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z'/%3E%3C/g%3E%3C/svg%3E");
    background-size: 100%;
    border-radius: 22%;
    border-color: transparent;
}

.integration-tile-logo-iugu {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5.5' fill='%23000'/%3E%3Csvg x='2.5' y='8.3' width='19' height='7.41' viewBox='0 0 82 32' fill='none'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M72.7128 8.67901H71.5137C70.8742 8.68154 70.2616 8.93482 69.8093 9.38367C69.3571 9.83252 69.1019 10.4406 69.0994 11.0753V17.4096C69.1261 19.0901 69.8175 20.6927 71.0242 21.8717C72.231 23.0507 73.8564 23.7115 75.5497 23.7115C77.243 23.7115 78.8684 23.0507 80.0751 21.8717C81.2819 20.6927 81.9732 19.0901 82 17.4096V8.67901H80.7912C80.1516 8.68154 79.539 8.93482 79.0868 9.38367C78.6346 9.83252 78.3794 10.4406 78.3769 11.0753V17.4096C78.3592 18.1418 78.0538 18.8382 77.5258 19.3499C76.9979 19.8615 76.2892 20.148 75.5513 20.148C74.8134 20.148 74.1047 19.8615 73.5767 19.3499C73.0487 18.8382 72.7433 18.1418 72.7257 17.4096V8.67901H72.7128ZM59.8477 11.7319C61.9256 11.7319 62.7449 13.3007 62.7449 15.2769C62.7449 17.2531 61.4395 18.8107 59.3954 18.8107C57.4736 18.8107 56.4901 17.448 56.4901 15.3152C56.4901 13.1825 57.9822 11.7319 59.8477 11.7319ZM62.7449 21.5425C62.7449 24.8382 60.1068 25.1418 58.1963 25.0028C56.744 24.9278 55.3291 24.5193 54.0629 23.8094V25.0092C54.0629 27.2617 56.5755 28.2043 59.3568 28.2043C63.4885 28.2043 66.3696 25.7217 66.3696 21.5089V15.6523C66.3696 15.5293 66.3696 15.4047 66.3696 15.2801C66.3696 11.3693 64.0406 8.13744 59.8477 8.13744C55.8238 8.13744 52.8654 11.3709 52.8654 15.3184C52.8654 19.2276 55.2524 22.4131 59.3954 22.4131C60.9824 22.4131 62.0222 21.9019 62.7449 21.1926V21.5457V21.5425ZM41.4151 8.67901H40.2063C39.5666 8.68112 38.9538 8.93426 38.5015 9.38321C38.0491 9.83215 37.7941 10.4404 37.792 11.0753V17.4096C37.8187 19.0901 38.5101 20.6927 39.7168 21.8717C40.9236 23.0507 42.549 23.7115 44.2423 23.7115C45.9355 23.7115 47.5609 23.0507 48.7677 21.8717C49.9745 20.6927 50.6658 19.0901 50.6925 17.4096V8.67901H49.4838C48.8441 8.68112 48.2312 8.93426 47.7789 9.38321C47.3266 9.83215 47.0716 10.4404 47.0694 11.0753V17.4096C47.0694 18.1538 46.7716 18.8676 46.2414 19.3938C45.7112 19.9201 44.9921 20.2157 44.2423 20.2157C43.4924 20.2157 42.7733 19.9201 42.2431 19.3938C41.7129 18.8676 41.4151 18.1538 41.4151 17.4096V8.67901ZM35.0718 8.67901H33.8631C33.2235 8.68154 32.6109 8.93482 32.1587 9.38367C31.7065 9.83252 31.4513 10.4406 31.4487 11.0753V20.8651C31.4513 21.4999 31.7065 22.1079 32.1587 22.5568C32.6109 23.0056 33.2235 23.2589 33.8631 23.2614H35.0718V8.67581V8.67901ZM32.3469 3.73779H34.1721C34.4107 3.73821 34.6395 3.83238 34.8084 3.99972C34.9773 4.16706 35.0726 4.39396 35.0734 4.63082V6.44084C35.0726 6.67785 34.9774 6.90492 34.8085 7.07251C34.6397 7.2401 34.4109 7.33463 34.1721 7.33547H32.3517C32.1129 7.33463 31.8841 7.2401 31.7153 7.07251C31.5464 6.90492 31.4512 6.67785 31.4503 6.44084V4.62922C31.4516 4.39264 31.5471 4.16615 31.7159 3.99915C31.8848 3.83216 32.1133 3.73821 32.3517 3.73779H32.3469Z' fill='%23fff' /%3E %3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M23.0195 18.8251C23.8678 18.7212 24.2219 18.4497 24.201 17.4815C24.1781 16.601 24.0953 15.723 23.9531 14.8536C23.4477 12.0323 22.1971 9.6184 20.2077 7.83394C18.0106 5.86576 14.9895 4.73469 11.1652 4.75227C10.0561 4.76373 8.95772 4.53588 7.94609 4.08449C6.92876 3.62176 6.02399 2.94661 5.29354 2.10513L4.09604 0.74881C3.67805 0.302599 3.10159 0.0352298 2.48858 0.00323978C1.87557 -0.0287502 1.27404 0.177145 0.811213 0.577391C0.348381 0.977637 0.0605248 1.54085 0.00850923 2.14795C-0.0435063 2.75504 0.144396 3.35841 0.532488 3.83048L1.73 5.1868C2.90676 6.53542 4.36123 7.61787 5.99531 8.36113C7.62576 9.0875 9.39586 9.45327 11.1829 9.43309C13.7582 9.42191 15.7041 10.1073 17.0352 11.3022C18.3229 12.4556 19.1051 14.1538 19.3659 16.2067C19.6379 18.3458 21.0124 19.0615 23.0195 18.8187V18.8251ZM2.72309 13.1186C4.73181 12.8758 6.10315 13.5979 6.37838 15.7306C6.63913 17.7835 7.42137 19.4817 8.70901 20.6351C10.0417 21.8301 11.9893 22.5154 14.5597 22.5042C16.3473 22.4839 18.118 22.8496 19.7489 23.5762C21.3831 24.3193 22.8376 25.4018 24.0143 26.7505L25.2118 28.1068C25.6248 28.5755 25.8333 29.1877 25.7915 29.8089C25.7497 30.4301 25.461 31.0094 24.9888 31.4194C24.5167 31.8293 23.8998 32.0363 23.274 31.9948C22.6481 31.9533 22.0644 31.6667 21.6514 31.1981L20.4539 29.8402C19.7231 28.9991 18.8185 28.324 17.8014 27.8608C16.7897 27.4094 15.6914 27.1816 14.5823 27.193C10.758 27.2106 7.73523 26.0748 5.5398 24.1098C3.54718 22.3269 2.303 19.913 1.79116 17.0901C1.649 16.2202 1.56618 15.3416 1.54329 14.4606C1.52236 13.4909 1.87646 13.2193 2.72309 13.117V13.1186ZM11.5998 13.4621H14.1445C14.4773 13.463 14.7963 13.5945 15.0318 13.8279C15.2674 14.0614 15.4003 14.3778 15.4015 14.7082V17.2355C15.4003 17.5659 15.2674 17.8823 15.0318 18.1158C14.7963 18.3493 14.4773 18.4808 14.1445 18.4816H11.5998C11.2669 18.4808 10.9479 18.3493 10.7124 18.1158C10.4769 17.8823 10.344 17.5659 10.3427 17.2355V14.7082C10.344 14.3778 10.4769 14.0614 10.7124 13.8279C10.9479 13.5945 11.2669 13.463 11.5998 13.4621Z' fill='%23fff' /%3E%3C/svg%3E%3C/svg%3E");
    background-size: 100%;
    border-radius: 22%;
    border-color: transparent;
}

.integration-tile-logo-vindi {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M9.9274 6.84371H0L9.71866 31.3288L11.2916 24.384C12.6165 18.5331 12.1413 12.4183 9.9274 6.84248V6.84371Z' fill='%23294AE0'/%3E %3Cpath d='M31.5244 0.669922H21.2373L9.72345 31.33H20.0106L31.5244 0.669922Z' fill='%23294AE0'/%3E%3C/svg%3E");
    background-size: 60%;
}

.integration-tile-logo-pagbank {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5.5' fill='%23000'/%3E%3Csvg x='3.5' y='6.3' width='17' height='11.3' viewBox='0 0 35.2 23.4' fill='none'%3E%3Cpath fill='%23fff' d='M26.244 25.741c.244 0 .47.024.675.071.206.048.385.12.537.22.153.1.28.227.379.383.098.156.163.34.197.555a.053.053 0 0 1-.015.043.054.054 0 0 1-.041.02h-.828a.077.077 0 0 1-.05-.017.063.063 0 0 1-.027-.046.568.568 0 0 0-.26-.415c-.152-.097-.353-.146-.605-.146-.108 0-.207.01-.297.029a.799.799 0 0 0-.237.085.452.452 0 0 0-.156.15.424.424 0 0 0-.056.22c0 .216.141.354.423.415.281.063.59.128.927.194.337.068.646.18.928.333.282.156.423.434.423.836h-.001c0 .214-.042.404-.124.57a1.163 1.163 0 0 1-.355.418 1.696 1.696 0 0 1-.563.256 2.99 2.99 0 0 1-.742.085c-.274 0-.526-.028-.755-.085a1.732 1.732 0 0 1-.593-.259 1.224 1.224 0 0 1-.393-.438 1.414 1.414 0 0 1-.165-.623c0-.017.008-.032.021-.046a.06.06 0 0 1 .044-.017h.822c.02 0 .037.006.052.017a.066.066 0 0 1 .024.046c.013.112.04.213.079.305a.61.61 0 0 0 .167.233.721.721 0 0 0 .285.148c.116.036.258.054.429.054.272 0 .481-.043.628-.128.148-.083.22-.22.22-.412 0-.23-.14-.378-.42-.444a32.07 32.07 0 0 0-.924-.202 3.131 3.131 0 0 1-.922-.333c-.282-.154-.423-.431-.423-.834 0-.19.038-.361.115-.515.074-.153.184-.284.329-.393.143-.106.32-.189.531-.248.21-.056.448-.085.717-.085Z'/%3E%3Cpath fill='%23fff' fill-rule='evenodd' d='M20.174 25.74c.322 0 .61.05.872.148.262.1.486.243.672.427.186.184.33.407.431.671.102.266.153.563.153.891h.001c0 .311-.05.597-.152.856a1.913 1.913 0 0 1-.43.669 1.97 1.97 0 0 1-.672.435 2.366 2.366 0 0 1-.875.157c-.319 0-.61-.052-.871-.157a1.875 1.875 0 0 1-1.098-1.104 2.325 2.325 0 0 1-.153-.856c0-.31.05-.616.15-.882.1-.264.241-.488.425-.675.184-.183.407-.327.67-.429.261-.1.555-.15.877-.15Zm.001.68c-.192 0-.361.033-.508.1a.996.996 0 0 0-.37.287c-.1.125-.175.278-.226.458a2.268 2.268 0 0 0-.076.612c0 .22.027.42.08.598.052.178.13.329.231.452.1.124.224.218.373.285.147.066.314.099.502.099s.356-.033.505-.1a.995.995 0 0 0 .37-.284c.097-.122.172-.271.225-.45.051-.178.076-.378.076-.6 0-.222-.025-.423-.076-.603a1.38 1.38 0 0 0-.226-.461 1.017 1.017 0 0 0-.37-.29 1.212 1.212 0 0 0-.51-.103ZM8.45 25.826a.088.088 0 0 1 .086.062l1.388 3.958c.006.013.004.026-.006.04a.046.046 0 0 1-.038.02h-.81a.088.088 0 0 1-.053-.017.086.086 0 0 1-.035-.043l-.323-.979H7.086l-.311.976a.088.088 0 0 1-.086.063h-.807a.045.045 0 0 1-.038-.02c-.01-.013-.012-.026-.006-.04l1.424-3.958a.082.082 0 0 1 .035-.046.09.09 0 0 1 .053-.016h1.1Zm-1.145 2.339H8.43l-.575-1.745-.55 1.745Z' clip-rule='evenodd'/%3E%3Cpath fill='%23fff' d='M15.68 25.825c.019 0 .034.007.048.02.014.013.02.028.02.046l-.029 1.974.03 1.975a.055.055 0 0 1-.02.045.066.066 0 0 1-.048.02h-1.022a.103.103 0 0 1-.056-.017.083.083 0 0 1-.04-.04l-1.648-2.85.039 1.251v1.592a.056.056 0 0 1-.021.045.066.066 0 0 1-.047.02h-.728a.056.056 0 0 1-.044-.02.056.056 0 0 1-.02-.045l.03-1.975-.03-1.975c0-.017.007-.032.02-.046a.057.057 0 0 1 .044-.02h.98c.02 0 .04.005.06.015a.13.13 0 0 1 .04.042l1.68 2.877v-.049l-.035-1.03v-1.79c0-.017.007-.031.02-.045a.06.06 0 0 1 .047-.02h.73Z'/%3E%3Cpath fill='%23fff' fill-rule='evenodd' d='M24.726.8c1.2 0 2.35.22 3.411.625 4.398 1.438 7.587 5.58 7.587 10.457 0 6.064-4.931 10.996-10.994 10.998h-.076a10.943 10.943 0 0 1-3.989-.776 8.098 8.098 0 0 1-2.735-1.58 11.076 11.076 0 0 1-2.779-3.233v4.706a.86.86 0 0 1-.33.679.858.858 0 0 1-.55.198H1.078a.862.862 0 0 1-.85-.72.865.865 0 0 1-.014-.157V15.39A7.453 7.453 0 0 1 2.91 9.645H1.075a.862.862 0 0 1-.861-.861 7.469 7.469 0 0 1 7.468-7.47 7.472 7.472 0 0 1 7.233 5.599 11.056 11.056 0 0 1 6.397-5.487 9.566 9.566 0 0 1 3.414-.627ZM13.792 13.08a7.506 7.506 0 0 1-1.313 1.428h1.565a10.92 10.92 0 0 1-.252-1.428Z' clip-rule='evenodd'/%3E%3Cpath fill='%23FFE72D' d='M29.425 10.66a4.029 4.029 0 0 1 4.024 4.024 4.029 4.029 0 0 1-4.024 4.024 4.029 4.029 0 0 1-4.024-4.024 4.028 4.028 0 0 1 4.024-4.024Z'/%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M7.682 2.196A6.607 6.607 0 0 1 8.21 15.39h6.062v.02h.018v6.608h-.018v.015H1.078v-.015h-.003V15.41a6.607 6.607 0 0 1 6.607-6.607v1.05a5.564 5.564 0 0 0-5.557 5.536h5.562v-1.028a5.562 5.562 0 0 0 5.553-5.558 5.564 5.564 0 0 0-5.486-5.557h-.072a5.566 5.566 0 0 0-5.458 4.508h5.458v1.05H1.075a6.607 6.607 0 0 1 6.607-6.608ZM2.125 16.264v4.703H13.24v-4.703H2.125Z' clip-rule='evenodd'/%3E%3Cpath fill='%23000' d='M7.682 2.196Z'/%3E%3Cpath fill='%23FFE72D' d='M13.24 16.264v4.703H2.125v-4.703H13.24Z'/%3E%3Cpath fill='%23DDE05B' d='M7.682 9.671c.001 2.753.005 7.053.005 5.215v.502H2.125c0-.369.038-.963.26-1.661a5.567 5.567 0 0 1 5.297-3.874v-.181Z'/%3E%3Cpath fill='%239ED5D6' d='M7.754 3.246a5.564 5.564 0 0 1 5.486 5.557 5.562 5.562 0 0 1-5.553 5.558l-.005-6.082v-.525H2.224a5.566 5.566 0 0 1 5.458-4.508h.072Z'/%3E%3Cpath fill='%23DDE05B' d='M24.726 2.315c4.473 0 8.112 3.639 8.112 8.112 0 .346-.022.687-.064 1.022a4.645 4.645 0 0 0-3.59-1.417 7.283 7.283 0 0 0-4.337-2.794c-3.411-.73-6.786 1.057-8.182 4.105a8.144 8.144 0 0 1-.052-.916c0-4.473 3.64-8.112 8.113-8.112Z'/%3E%3Cpath fill='%239ED5D6' d='M23.312 7.709c.462 0 .931.048 1.4.149a6.648 6.648 0 0 1 3.741 2.27 4.666 4.666 0 0 0-3.686 4.556 4.666 4.666 0 0 0 3.258 4.442 6.738 6.738 0 0 1-1.083.87 6.637 6.637 0 0 1-5.028.924 6.636 6.636 0 0 1-4.208-2.903 6.639 6.639 0 0 1-.923-5.028c.666-3.107 3.405-5.247 6.457-5.28h.072Z'/%3E%3Cpath fill='%23000' fill-rule='evenodd' d='M24.726 1.765c5.589 0 10.136 4.547 10.136 10.137 0 5.589-4.547 10.136-10.136 10.136h-.066C19.1 22.004 14.59 17.47 14.59 11.903c0-5.59 4.547-10.137 10.137-10.137ZM23.24 7.709c-3.052.033-5.791 2.173-6.457 5.28a6.64 6.64 0 0 0 .923 5.028 6.637 6.637 0 0 0 4.208 2.903 6.637 6.637 0 0 0 5.028-.924 6.753 6.753 0 0 0 1.083-.87 4.666 4.666 0 0 1-3.258-4.443 4.666 4.666 0 0 1 3.686-4.556 6.648 6.648 0 0 0-3.74-2.27c-.47-.1-.939-.148-1.401-.148h-.072Zm6.185 2.95a4.029 4.029 0 0 0-4.024 4.024 4.029 4.029 0 0 0 4.024 4.024 4.029 4.029 0 0 0 4.024-4.024 4.029 4.029 0 0 0-4.024-4.023Zm-4.7-8.344c-4.472 0-8.112 3.639-8.112 8.112 0 .31.018.615.052.915 1.396-3.047 4.77-4.835 8.182-4.104a7.283 7.283 0 0 1 4.336 2.794 4.645 4.645 0 0 1 3.59 1.417c.043-.335.065-.676.065-1.022 0-4.473-3.64-8.112-8.112-8.112Z' clip-rule='evenodd'/%3E%3Cpath fill='%23fff' fill-rule='evenodd' d='M63.806 7.928c.884 0 1.994.16 2.605.354l-1.512 6.8c-.724 3.246-1.914 4.725-5.482 4.725-1.077 0-2.106-.21-2.797-.45l.434-1.591c.771.418 1.59.546 2.314.546 2.01 0 2.782-1.06 3.151-2.571l.258-1.061c-.772 1.028-1.575 1.478-2.91 1.478-1.655 0-2.459-1.028-2.459-2.395 0-3.633 3.312-5.834 6.398-5.835Zm-.484 1.496c-1.848 0-3.568 1.896-3.568 4.146 0 .723.257 1.254 1.044 1.254 1.511 0 2.348-1.929 2.686-3.36l.466-1.944a2.13 2.13 0 0 0-.628-.096ZM54.384 7.912c.932 0 2.138.16 2.701.37l-1.11 5.016h.001c-.29 1.3-.37 2.25-.386 2.86h-2.267c.032-.402.177-1.157.306-1.897-.578 1.045-1.528 2.074-3.103 2.074-1.575 0-2.443-1.077-2.443-2.572 0-3.616 3.231-5.851 6.301-5.851Zm-.417 1.495c-1.849 0-3.537 1.961-3.537 4.115 0 .724.257 1.319 1.093 1.319 1.125 0 2.202-1.544 2.652-3.473l.434-1.865a1.79 1.79 0 0 0-.642-.096ZM82.63 7.912c.931 0 2.137.16 2.7.37l-1.11 5.016h.001c-.29 1.3-.37 2.25-.386 2.86h-2.267c.032-.402.177-1.157.306-1.897-.579 1.045-1.528 2.074-3.103 2.074-1.575 0-2.444-1.077-2.444-2.572 0-3.616 3.232-5.851 6.302-5.851Zm-.42 1.495c-1.848 0-3.535 1.961-3.535 4.115 0 .724.257 1.319 1.093 1.319 1.125 0 2.202-1.544 2.652-3.473l.434-1.865a1.792 1.792 0 0 0-.643-.096ZM45.14 5.436c1.8 0 3.022 1.27 3.022 2.718 0 2.877-2.282 4.035-4.485 4.035h.002-2.058l-.836 3.97h-2.347L40.72 5.435h4.42Zm-3.198 5.177h.804c1.575 0 3.022-.354 3.022-2.234 0-.852-.884-1.367-1.8-1.367h-1.254l-.772 3.6ZM73.113 5.436c1.43 0 2.975.66 2.975 2.252 0 1.59-1.062 2.635-2.62 2.925 1.156.257 1.895.996 1.895 2.121 0 2.765-2.636 3.424-4.855 3.424h-3.97l2.283-10.722h4.292Zm-4.02 9.292h1.109c1.35 0 2.748-.418 2.748-2.075 0-1.124-1.253-1.301-2.121-1.301h-1.013l-.723 3.376Zm1.013-4.79h1.141c1.254 0 2.476-.484 2.476-1.913 0-.9-.901-1.159-1.64-1.159h-1.334l-.643 3.071Z' clip-rule='evenodd'/%3E%3Cpath fill='%23fff' d='M91.793 7.928c1.334 0 2.202.643 2.202 1.977 0 .29-.033.595-.097.917l-1.125 5.336h-2.218l1.012-4.855c.065-.29.13-.562.13-.835 0-.61-.29-1.044-1.062-1.044-1.205 0-1.784 1.076-2.008 2.12l-.98 4.614H85.41l1.319-6.27c.129-.594.24-1.189.305-1.8h2.09l-.241 1.43c.771-1.076 1.575-1.59 2.909-1.59ZM97.66 11.416l3.456-3.328h2.621l-4.02 3.665 2.54 4.405h-2.54l-2.186-4.228-.868 4.228H94.43l2.444-11.59h2.218l-1.43 6.848Z'/%3E%3C/svg%3E%3C/svg%3E");
    background-size: 100%;
    border-radius: 22%;
    border-color: transparent;
}

.integration-tile-logo-efi {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 349.36 135.73'%3E %3Cpath fill='%23f37124' d='M190.2,38.75l27.97-10.3V.97l-33.85,26.49c-2.13,1.64-3.43,3.27-3.43,5.72,0,4.25,4.09,7.52,9.32,5.56M180.88,134.09h17.99V47.42h-17.99v86.68ZM99.27,134.09h17.99v-33.36h44.97v-16.35h-44.97c-.33-13.57,8.83-21.75,21.42-21.75,6.87,0,12.76,2.45,17.17,5.56l11.45-12.92c-8.34-6.21-17.34-9.49-28.13-9.49-23.71,0-39.9,15.7-39.9,38.6v49.72ZM18.32,81.6c2.62-11.77,11.94-18.97,24.86-18.97s21.75,7.2,23.39,18.97H18.32ZM85.04,88.96c0-19.95-14.39-43.17-41.87-43.17C18.97,45.78,0,63.93,0,90.1s19.13,45.63,44.97,45.63c16.03,0,28.95-7.69,37.45-18.97l-12.59-10.3c-6.21,8.18-14.72,12.43-25.35,12.43-14.06,0-23.55-8.01-26.17-20.93h57.84c5.56,0,8.88-2.62,8.88-9'/%3E %3Cpath fill='%23f37124' d='M269.97,108.88h-1.24l10.33,25.11h5.06l-11.06-25.83c-.62-1.45-1.65-2.58-3.62-2.58-1.76,0-3,.93-3.72,2.58l-11.06,25.83h4.96l10.33-25.11ZM227.08,133.99h4.65v-28.42h-4.65v28.42ZM241.03,120.66c4.96,0,8.78-3.41,8.78-7.96s-3.41-7.13-8.58-7.13h-12.09v4.13h11.47c2.58,0,4.34,1.45,4.34,3.82s-1.65,4.13-3.93,4.13v3ZM289.4,133.99h4.65l-.21-25.63-2.48.93,16.43,22.73c.93,1.34,2.17,1.96,3.31,1.96,1.55,0,2.69-1.34,2.69-3.1v-25.32h-4.65l.21,25.63,2.48-.93-16.43-22.73c-.93-1.24-1.76-1.96-3.2-1.96-1.55,0-2.79,1.34-2.79,3.1v25.32ZM259.95,128.3h19.01v-4.13h-19.01v4.13ZM342.3,133.99h5.89l-13.12-14.26,13.02-14.16h-5.99l-10.75,11.88c-1.34,1.55-1.45,3.1,0,4.65l10.95,11.88ZM323.29,133.99h4.65v-28.42h-4.65v28.42ZM229.15,133.99h11.99c6.3,0,9.82-3.1,9.82-7.85,0-5.48-4.96-8.47-9.92-8.47h-11.88v4.13h12.5c2.58,0,4.34,1.34,4.34,3.72,0,2.69-2.17,4.34-5.27,4.34h-11.57v4.13Z'/%3E %3C/svg%3E");
    background-size: 78%;
}

.integration-tile-logo-picpay {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect width='24' height='24' rx='5.5' fill='%2321C25E'/%3E%3Csvg x='3.6' y='3.6' width='16.8' height='16.8' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' fill-rule='evenodd' clip-rule='evenodd' d='M16 9H22V3H16V9ZM21 8H17V4H21V8ZM5 6H9C11.7615 6 14 8.2385 14 11C14 13.7615 11.7615 16 9 16H5V20H2V9H5V13H9C10.1045 13 11 12.1045 11 11C11 9.8955 10.1045 9 9 9H5V6ZM18 5H20V7H18V5Z'/%3E%3C/svg%3E%3C/svg%3E");
    background-size: 100%;
    border-radius: 22%;
    border-color: transparent;
}

/* WhatsApp: o balão verde da marca com o telefone branco. Desenho nosso com a cor oficial
   (#25d366), como as demais — não o arquivo de marca da Meta. */
.integration-tile-logo-whatsapp {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cpath fill='%2325d366' d='M24 4C13 4 4 13 4 24c0 3.5.9 6.9 2.7 9.9L4 44l10.4-2.7c2.9 1.6 6.2 2.4 9.6 2.4 11 0 20-9 20-20S35 4 24 4z'/%3E%3Cpath fill='%23fff' d='M18.4 14.6c-.4-1-.9-1-1.3-1h-1.1c-.4 0-1 .1-1.5.7-.5.6-2 1.9-2 4.7s2.1 5.5 2.4 5.9c.3.4 4 6.4 9.9 8.7 4.9 1.9 5.9 1.5 7 1.4 1.1-.1 3.5-1.4 4-2.8.5-1.4.5-2.5.3-2.8-.1-.3-.5-.4-1.1-.7-.6-.3-3.5-1.7-4-1.9-.5-.2-.9-.3-1.3.3-.4.6-1.5 1.9-1.8 2.3-.3.4-.7.4-1.3.1-.6-.3-2.5-.9-4.7-2.9-1.7-1.5-2.9-3.4-3.2-4-.3-.6 0-.9.3-1.2.3-.3.6-.7.9-1.1.3-.4.4-.6.6-1 .2-.4.1-.8 0-1.1-.1-.3-1.3-3.3-1.8-4.4z'/%3E%3C/svg%3E");
    background-size: 66%;
}

.integration-tile-text {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

/* Nome e categoria em uma linha só, com reticências: um nome longo ("César Ações Agendadas")
   quebrava em duas linhas e deixava o card mais alto que os vizinhos da mesma fileira. */
.integration-tile-name,
.integration-tile-category {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.integration-tile-name {
    font-size: 1rem;
}

.integration-tile-category {
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

/* O que passa de duas fileiras num grupo recolhido. Fora do fluxo do grid, e não só invisível:
   senão continuaria ocupando fileira. */
.integration-tile-grid > li.is-collapsed-away {
    display: none;
}

.integration-group-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    margin-top: 0.9rem;
    padding: 0.45rem 0.9rem;
    font: inherit;
    font-weight: 600;
    color: var(--ink-muted);
    background: transparent;
    border: 1px solid var(--line);
    border-radius: 999px;
    cursor: pointer;
    transition: color 120ms ease, border-color 120ms ease;
}

.integration-group-toggle:hover {
    color: var(--ink);
    border-color: var(--green);
}

.integration-group-toggle-chevron {
    transition: transform 150ms ease;
}

.integration-group-toggle[aria-expanded="true"] .integration-group-toggle-chevron {
    transform: rotate(180deg);
}

.integration-group-empty {
    color: var(--ink-muted);
    font-style: italic;
}

/* ---------- dialog de detalhe ---------- */

.integration-modal {
    width: min(40rem, calc(100vw - 2rem));
    max-height: calc(100vh - 3rem);
    max-height: calc(100dvh - 3rem);
    overscroll-behavior: contain;
    padding: 2rem;
    border: 1px solid var(--panel-line);
    border-radius: var(--radius);
    background: var(--surface-strong);
    color: var(--ink);
    box-shadow: var(--shadow-2);
    overflow: auto;
}

.integration-modal::backdrop {
    background: rgba(23, 32, 27, 0.5);
}

.integration-modal-close-form {
    position: sticky;
    top: 0;
    display: flex;
    justify-content: flex-end;
    margin: -0.5rem -0.5rem 0 0;
}

.modal-close {
    font: inherit;
    font-size: 1.5rem;
    line-height: 1;
    padding: 0.2rem 0.5rem;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--ink-muted);
    cursor: pointer;
}

.modal-close:hover {
    background: var(--green-soft);
    color: var(--accent-ink);
}

.integration-modal-header {
    display: flex;
    gap: 1rem;
    align-items: flex-start;
    margin-bottom: 1.5rem;
}

.integration-modal-header h2 {
    font-size: 1.5rem;
    margin-bottom: 0.3rem;
}

.integration-modal-summary {
    color: var(--ink-muted);
    margin-bottom: 0.6rem;
}

.integration-modal-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    margin: 0;
}

.integration-category-chip {
    font-size: var(--text-xs);
    font-weight: 600;
    padding: 0.2rem 0.6rem;
    border-radius: 999px;
    background: var(--green-soft);
    color: var(--accent-ink);
}

.integration-modal section + section {
    margin-top: 1.5rem;
}

.integration-modal h3 {
    font-size: 1.15rem;
}

.integration-modal section > p:last-child {
    color: var(--ink-muted);
    margin: 0;
}

.integration-feature-list {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    gap: 0.9rem;
}

.integration-feature-list li {
    display: flex;
    gap: 0.7rem;
}

.integration-feature-list p {
    margin: 0;
    color: var(--ink-muted);
}

.integration-feature-check {
    flex: none;
    color: var(--green);
    font-weight: 700;
}

.integration-modal-footer {
    margin-top: 2rem;
    padding-top: 1.25rem;
    border-top: 1px solid var(--line);
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    overflow: hidden;
    clip: rect(0 0 0 0);
    white-space: nowrap;
}

/* ---------- hero: demo animada ---------- */

.chat-scene-label {
    margin-left: auto;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent-ink);
    background: var(--green-soft);
    padding: 0.15rem 0.6rem;
    border-radius: 999px;
}

/* Sem script todas as bolhas aparecem; com script, cada uma entra quando recebe .is-shown.
   A classe no <html> é o sinal de que o script assumiu. */
.demo-live [data-demo] .bubble:not(.bubble-typing) {
    opacity: 0;
    transform: translateY(6px);
    transition: opacity 260ms ease, transform 260ms ease;
}

.demo-live [data-demo] .bubble.is-shown {
    opacity: 1;
    transform: none;
}

.bubble-transcript {
    align-self: flex-end;
    background: transparent;
    color: var(--ink-muted);
    font-style: italic;
    font-size: var(--text-sm);
    padding: 0 0.4rem;
}

.bubble-audio {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    min-width: 13rem;
}

.audio-play {
    display: grid;
    place-items: center;
    width: 1.6rem;
    height: 1.6rem;
    border-radius: 50%;
    background: var(--on-user-bubble);
    color: var(--user-bubble);
    font-size: 0.7rem;
}

.audio-wave {
    display: inline-flex;
    align-items: center;
    gap: 2px;
    height: 1.2rem;
}

.audio-wave i {
    display: block;
    width: 3px;
    border-radius: 2px;
    background: currentcolor;
    opacity: 0.85;
    height: 40%;
    animation: wave 1.1s ease-in-out infinite;
}

.audio-wave i:nth-child(2n) { animation-delay: 0.15s; height: 70%; }
.audio-wave i:nth-child(3n) { animation-delay: 0.3s; height: 55%; }
.audio-wave i:nth-child(4n) { animation-delay: 0.45s; height: 90%; }

@keyframes wave {
    0%, 100% { transform: scaleY(0.6); }
    50% { transform: scaleY(1.2); }
}

.audio-time {
    font-size: var(--text-sm);
    opacity: 0.9;
}

.bubble-attachment {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
}

.attachment-thumb {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 4px;
    width: 3rem;
    height: 3.6rem;
    padding: 0.4rem 0.35rem;
    border-radius: 6px;
    background: #fff;
    color: #17201b;
    box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.08);
}

.attachment-line {
    display: block;
    height: 3px;
    border-radius: 2px;
    background: #c9cec9;
}

.attachment-line.short {
    width: 60%;
}

.attachment-total {
    margin-top: auto;
    font-size: 0.5rem;
    font-weight: 700;
    white-space: nowrap;
}

.attachment-name {
    font-size: var(--text-sm);
    opacity: 0.92;
}

.bubble-typing {
    display: inline-flex;
    gap: 4px;
    align-items: center;
    padding: 0.8rem 1rem;
}

.bubble-typing i {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: var(--ink-muted);
    animation: typing 1s ease-in-out infinite;
}

.bubble-typing i:nth-child(2) { animation-delay: 0.15s; }
.bubble-typing i:nth-child(3) { animation-delay: 0.3s; }

@keyframes typing {
    0%, 80%, 100% { opacity: 0.3; transform: translateY(0); }
    40% { opacity: 1; transform: translateY(-3px); }
}

@media (prefers-reduced-motion: reduce) {
    .audio-wave i,
    .bubble-typing i {
        animation: none;
    }
}

/* ---------- 8 cards: 4 colunas no desktop, 2 no tablet ---------- */

@media (min-width: 1000px) {
    .card-grid-8 {
        grid-template-columns: repeat(4, 1fr);
    }
}

@media (min-width: 560px) and (max-width: 999px) {
    .card-grid-8 {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* ---------- hero: tela de app de mensagens ----------
   A demo é a tela de um app de celular — barra de status, barra do app com o César, a
   conversa e o campo de mensagem — e não uma janela de navegador: o produto se usa no
   celular, e é isso que a pessoa precisa reconhecer no primeiro olhar. Sem moldura de
   aparelho: é a interface do app, não o telefone. */

.hero-demo {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.9rem;
    min-width: 0;
    max-width: 100%;
}

.app-screen {
    display: flex;
    flex-direction: column;
    width: min(360px, 100%);
    border: 1px solid var(--panel-line);
    border-radius: 28px;
    background: var(--canvas);
    box-shadow: var(--shadow-2);
    overflow: hidden;
}

.app-statusbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0.6rem 1.25rem 0.15rem;
    background: var(--surface);
    color: var(--ink);
    font-size: 0.8rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.app-status-icons {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.app-bar {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.55rem 1rem 0.7rem;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
}

.app-avatar {
    display: grid;
    width: 36px;
    height: 36px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--green-dark);
    color: var(--on-accent);
    font-family: Georgia, "Times New Roman", serif;
    font-size: 1.05rem;
    font-weight: 700;
}

.app-bar-text {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.app-bar-title {
    font-weight: 650;
    font-size: 0.95rem;
    color: var(--ink);
}

.app-bar-status {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    color: var(--ink-muted);
    font-size: 0.72rem;
}

.app-bar-status .chat-dot {
    width: 0.45rem;
    height: 0.45rem;
}

.app-stage {
    display: flex;
    flex-direction: column;
    flex: 1;
}

.chat-scene {
    display: flex;
    flex-direction: column;
    flex: 1;
}

/* As bolhas se ancoram embaixo, coladas ao campo de mensagem, como numa conversa de verdade. */
.chat-window-sm .chat-body {
    flex: 1;
    justify-content: flex-end;
    padding: 0.85rem 0.9rem;
    gap: 0.55rem;
    min-height: 7.5rem;
}

.app-composer {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0.75rem 0.85rem;
    border-top: 1px solid var(--line);
    background: var(--surface);
}

.app-composer-icon {
    display: grid;
    width: 32px;
    height: 32px;
    flex: 0 0 auto;
    place-items: center;
    color: var(--ink-muted);
}

.app-composer-field {
    flex: 1;
    min-width: 0;
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--canvas);
    color: var(--ink-muted);
    font-size: 0.85rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.app-composer-send {
    display: grid;
    width: 32px;
    height: 32px;
    flex: 0 0 auto;
    place-items: center;
    border-radius: 50%;
    background: var(--green-dark);
    color: var(--on-accent);
}

.chat-window-sm .bubble {
    font-size: var(--text-sm);
    padding: 0.55rem 0.85rem;
}

.chat-window-sm .bubble-typing {
    padding: 0.7rem 0.85rem;
}

.chat-window-sm .attachment-thumb {
    width: 2.6rem;
    height: 3.1rem;
}

/* Com script, só a cena ativa aparece; a altura mínima segura o layout para o hero não
   pular quando a cena troca. Sem script (.demo-live ausente) as três ficam empilhadas na
   mesma tela. */
.demo-live [data-demo]:not(.is-active) {
    display: none;
}

/* Altura fixa da área de conversa: cada cena tem uma quantidade diferente de bolhas, e se
   a tela crescesse e encolhesse a cada troca o hero inteiro (título incluído) pulava junto.
   O valor cabe na cena mais longa; se uma cena passar disso, o topo é cortado — como uma
   conversa rolada até o fim, que é como as bolhas já se ancoram (justify-content: flex-end). */
.demo-live .app-stage {
    height: 21rem;
    flex: 0 0 auto;
}

.demo-live .chat-scene {
    height: 100%;
}

.demo-live .chat-window-sm .chat-body {
    height: 100%;
    min-height: 0;
    overflow: hidden;
}

.demo-live [data-demo].is-active {
    animation: demo-in 320ms ease;
}

@keyframes demo-in {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: none; }
}

/* ---------- bolinhas da demo ---------- */

.demo-dots {
    display: flex;
    justify-content: center;
    gap: 0;
    order: 1;
    max-width: 100%;
}

/* A bolinha visível tem 10px, mas o botão tem 44px: o alvo de toque é o botão, o desenho
   é o ::before. */
.demo-dot {
    position: relative;
    /* 44px quando cabe; em tela estreita as bolinhas encolhem juntas até 24px (mínimo de
       alvo de toque) em vez de estourar a largura da página. */
    flex: 0 1 44px;
    width: 44px;
    min-width: 24px;
    height: 44px;
    margin: -14px 0;
    padding: 0;
    border-radius: 50%;
    border: 0;
    background: transparent;
    cursor: pointer;
}

.demo-dot::before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 0.65rem;
    height: 0.65rem;
    border-radius: 50%;
    background: var(--line);
    transform: translate(-50%, -50%);
    transition: background-color 150ms ease, transform 150ms ease;
}

.demo-dot:hover::before {
    background: var(--green);
    transform: translate(-50%, -50%) scale(1.2);
}

.demo-dot[aria-selected="true"]::before {
    background: var(--green-dark);
    transform: translate(-50%, -50%) scale(1.25);
}

.demo-dot:focus-visible {
    outline: 2px solid var(--green);
    outline-offset: 3px;
}

/* ---------- bolha de aviso proativo ---------- */

.bubble-scheduled-task {
    border-left: 3px solid var(--green);
}

.scheduled-task-tag {
    display: block;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent-ink);
    margin-bottom: 0.2rem;
}

@media (pointer: coarse) {
    .theme-toggle {
        width: 44px;
        height: 44px;
    }

    .lang-switch,
    .nav-link,
    .footer-nav a,
    .integration-filter select {
        display: inline-flex;
        align-items: center;
        min-height: 44px;
    }

    .modal-close {
        min-width: 44px;
        min-height: 44px;
    }
}

/* ---------- ritmo vertical em telas estreitas ----------
   4.25rem de respiro por seção é generoso em desktop e um deserto de rolagem no celular. */
@media (max-width: 640px) {
    .section {
        padding: 2.75rem 1.1rem;
    }

    .section > h2 {
        margin-bottom: 1.4rem;
    }

    .hero {
        padding: 1.5rem 1.1rem 3rem;
        gap: 2rem;
    }

    .hero-lede {
        font-size: 1.08rem;
    }

    .hero-actions .button {
        flex: 1 1 auto;
    }

    .footer-inner {
        padding: 1.5rem 1.1rem;
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .footer-nav {
        flex-wrap: wrap;
        gap: 0.5rem 1.4rem;
    }

    .page-article,
    .page-wide {
        padding-left: 1.1rem;
        padding-right: 1.1rem;
    }

    .integration-filter {
        flex-wrap: wrap;
    }

    .integration-filter select {
        flex: 1 1 100%;
    }

    /* Diálogo vira folha na base da tela, onde o polegar está. */
    .integration-modal {
        width: 100vw;
        max-width: none;
        max-height: calc(100dvh - 1.5rem);
        margin: auto 0 0;
        padding: 1.5rem 1.1rem max(1.25rem, env(safe-area-inset-bottom));
        border-radius: 20px 20px 0 0;
        border-bottom: 0;
    }

    .integration-modal::before {
        content: "";
        display: block;
        width: 36px;
        height: 4px;
        margin: -0.4rem auto 0.9rem;
        border-radius: 999px;
        background: var(--panel-line);
    }
}

/* ---------- troca de idioma ---------- */

.lang-switch {
    color: var(--ink-muted);
    text-decoration: none;
    font-weight: 500;
    font-size: var(--text-sm);
    padding: 0.25rem 0.6rem;
    border-radius: 999px;
    border: 1px solid var(--line);
}

.lang-switch:hover {
    border-color: var(--green);
    color: var(--accent-ink);
}

/* ---------- botão de tema ---------- */

.theme-toggle {
    display: inline-grid;
    place-items: center;
    width: 2.1rem;
    height: 2.1rem;
    padding: 0;
    border-radius: 50%;
    border: 1px solid var(--line);
    background: var(--surface);
    color: var(--ink-muted);
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
}

.theme-toggle:hover {
    border-color: var(--green);
    color: var(--accent-ink);
}

.theme-toggle .theme-icon-dark,
:root[data-theme="dark"] .theme-toggle .theme-icon-light {
    display: none;
}

:root[data-theme="dark"] .theme-toggle .theme-icon-dark {
    display: inline;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .theme-toggle .theme-icon-light {
        display: none;
    }

    :root:not([data-theme="light"]) .theme-toggle .theme-icon-dark {
        display: inline;
    }
}

/* ---------- selos das lojas (hero e rodapé) ---------- */

.store-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.store-badges-hero {
    margin-top: 1.1rem;
}

.store-badges-footer {
    margin: 0.5rem 0 0.75rem;
}

.store-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border-radius: 8px;
    padding: 0.35rem 0.75rem 0.35rem 0.6rem;
    background: var(--ink);
    color: var(--surface);
    text-decoration: none;
    line-height: 1.1;
    border: 1px solid transparent;
}

.store-badge-icon {
    width: 1.35rem;
    height: 1.35rem;
    flex: none;
}

.store-badge-text {
    display: flex;
    flex-direction: column;
    font-size: 0.92rem;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.store-badge-text small {
    font-size: 0.62rem;
    font-weight: 500;
    opacity: 0.8;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}

.store-badge-soon {
    background: transparent;
    color: var(--ink-muted);
    border-color: var(--line);
    cursor: default;
}

/* Marcas das integrações nativas: dois tons por integração (IntegrationMarkPalette), inline como
   variáveis; fundo claro/letra escura no tema claro, invertido no escuro. Mesma regra do app. */
.mark-branded {
    --mark-bg: var(--mark-tint);
    --mark-ink: var(--mark-shade);
    color: var(--mark-ink);
    background: var(--mark-bg);
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .mark-branded {
        --mark-bg: var(--mark-shade);
        --mark-ink: var(--mark-tint);
    }
}

:root[data-theme="dark"] .mark-branded {
    --mark-bg: var(--mark-shade);
    --mark-ink: var(--mark-tint);
}

/* ---------- guia de uso (/guia) ---------- */

/* O cabeçalho fixo não existe nesta página, mas o salto por âncora precisa de folga
   para o título não colar no topo da janela. */
.guide-card {
    scroll-margin-top: 1.5rem;
}

/* ---- Guia: as duas abas (pessoal e empresa). Sem JS a segunda aba continua alcançável: o painel
   escondido só some depois que o script assume, e o link do menu para #empresas abre a aba certa. */
.guide-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 2rem;
    padding: 0.3rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    width: fit-content;
    max-width: 100%;
}

.guide-tab {
    appearance: none;
    border: 0;
    border-radius: 999px;
    padding: 0.5rem 1.1rem;
    background: transparent;
    color: var(--ink-muted);
    font: inherit;
    font-weight: 600;
    cursor: pointer;
    transition: background 120ms ease, color 120ms ease;
}

.guide-tab:hover,
.guide-tab:focus-visible {
    color: var(--ink);
}

.guide-tab[aria-selected="true"] {
    background: var(--green-soft);
    color: var(--accent-ink, var(--green-dark));
}

/* Dentro da aba a faixa da empresa não precisa do respiro que a separava da grade pessoal. */
.guide-panel > .guide-company {
    margin-top: 0;
}

.guide-jump {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 2rem;
}

.guide-jump-label {
    color: var(--ink-muted);
    font-size: 0.9rem;
    margin-right: 0.25rem;
}

.guide-jump-chip {
    display: inline-block;
    padding: 0.35rem 0.8rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--ink);
    font-size: 0.9rem;
    text-decoration: none;
    transition: border-color 120ms ease, background 120ms ease;
}

.guide-jump-chip:hover,
.guide-jump-chip:focus-visible {
    border-color: var(--green);
    background: var(--green-soft);
}

/* Colunas, não grid — a mesma correção do /guia do chat: cada seção tem um número diferente de
   exemplos, e um grid alinhado por linha deixava cada fileira com a altura do cartão mais alto.
   Em colunas os cartões empacotam na altura natural, sem buraco. */
.guide-grid {
    columns: 21rem;
    column-gap: 1rem;
}

@media (max-width: 30rem) {
    .guide-grid {
        columns: 1;
    }
}

.guide-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    /* Um cartão partido no meio entre duas colunas é pior que qualquer desalinhamento. */
    break-inside: avoid;
    margin-bottom: 1rem;
}

.guide-card-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.guide-card-header h2 {
    margin: 0;
    font-size: 1.15rem;
}

.guide-card-mark {
    flex: none;
    display: grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 12px;
    background: var(--mark-bg, var(--green-soft));
    color: var(--mark-ink, var(--accent-ink));
    font-weight: 700;
    font-size: 1.05rem;
}

.guide-card-lede {
    margin: 0;
    color: var(--ink-muted);
    font-size: 0.95rem;
}

.guide-prompts {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

/* O exemplo é um balão de conversa clicável: reusa .bubble/.bubble-user do demo, mas ocupa a
   linha toda (área de toque generosa no celular) e revela o convite "Experimentar" ao passar. */
.guide-prompt {
    display: block;
    align-self: stretch;
    max-width: none;
    text-decoration: none;
    transition: transform 120ms ease, box-shadow 120ms ease;
}

.guide-prompt:hover,
.guide-prompt:focus-visible {
    transform: translateY(-1px);
    box-shadow: var(--shadow-1);
}

.guide-prompt-text {
    display: block;
}

.guide-prompt-try {
    display: block;
    margin-top: 0.2rem;
    font-size: 0.8rem;
    opacity: 0.75;
}

.guide-card-requires {
    margin: 0;
    color: var(--ink-muted);
    font-size: 0.85rem;
    border-top: 1px dashed var(--line);
    padding-top: 0.6rem;
}

.guide-cta {
    text-align: center;
    margin: 3rem auto 1rem;
    max-width: 34rem;
}

.guide-cta p {
    color: var(--ink-muted);
    margin-bottom: 1.25rem;
}

/* ===== Blog (docs/blog.md) ===== */

.blog-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr));
    gap: 1rem;
}

.blog-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.blog-card-title {
    margin: 0;
    font-size: 1.15rem;
}

.blog-card-title a {
    color: var(--ink);
    text-decoration: none;
}

.blog-card-title a:hover,
.blog-card-title a:focus-visible {
    color: var(--accent-ink);
    text-decoration: underline;
}

.blog-card-text {
    margin: 0;
    color: var(--ink-muted);
    font-size: 0.95rem;
    flex: 1;
}

.blog-card-meta {
    margin: 0;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.blog-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin-top: 2rem;
}

.blog-pagination-state {
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.guide-jump-chip.is-active {
    border-color: var(--green);
    background: var(--green-soft);
}

/* O artigo em si: coluna de leitura estreita (~70ch), tipografia com respiro. */
.blog-post {
    max-width: 46rem;
    margin: 0 auto;
    padding: 2.5rem 1.25rem 3rem;
}

.blog-post-header h1 {
    margin: 0.5rem 0;
    font-size: clamp(1.8rem, 4vw, 2.4rem);
    line-height: 1.2;
}

.blog-breadcrumb a {
    color: var(--ink-muted);
    text-decoration: none;
    font-size: var(--text-sm);
}

.blog-breadcrumb a:hover {
    color: var(--accent-ink);
}

.blog-post-meta {
    margin: 0;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.blog-post-tags {
    margin: 0.75rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* Capa do post: a mesma imagem do og:image, agora dentro do artigo — é ela que o Google
   Imagens indexa junto com esta URL. Proporção fixa para não haver layout shift. */
.blog-post-cover {
    margin: 2rem 0 0;
}

.blog-post-cover img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1200 / 630;
    object-fit: cover;
    border-radius: var(--radius-lg, 16px);
    border: 1px solid var(--border, rgba(0, 0, 0, 0.08));
}

.blog-post-body {
    margin-top: 2rem;
    font-size: 1.05rem;
    line-height: 1.7;
}

.blog-post-body h2 {
    margin: 2.2rem 0 0.8rem;
    font-size: 1.45rem;
}

.blog-post-body h3 {
    margin: 1.6rem 0 0.6rem;
    font-size: 1.15rem;
}

.blog-post-body p,
.blog-post-body ul,
.blog-post-body ol {
    margin: 0 0 1rem;
}

.blog-post-body img {
    max-width: 100%;
    height: auto;
    border-radius: var(--radius);
}

.blog-post-body blockquote {
    margin: 1.25rem 0;
    padding: 0.25rem 1rem;
    border-left: 3px solid var(--green);
    color: var(--ink-muted);
}

.blog-post-body code {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    padding: 0.1rem 0.35rem;
    font-size: 0.9em;
}

.blog-post-body pre {
    overflow-x: auto;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 1rem;
}

.blog-post-body pre code {
    border: 0;
    padding: 0;
    background: none;
}

.blog-post-body table {
    width: 100%;
    border-collapse: collapse;
    margin: 1.25rem 0;
    font-size: 0.95rem;
}

.blog-post-body th,
.blog-post-body td {
    border: 1px solid var(--line);
    padding: 0.5rem 0.75rem;
    text-align: left;
}

.blog-related {
    margin-top: 3rem;
}

.blog-related h2 {
    font-size: 1.3rem;
    margin-bottom: 1rem;
}

/* Capa nos cartões do índice: sangra até a borda do cartão, proporção fixa (1200x630)
   para nenhum layout shift. */
.blog-card-media {
    display: block;
    margin: -1.25rem -1.25rem 0.25rem;
    overflow: hidden;
    border-radius: var(--radius) var(--radius) 0 0;
}

.blog-card-media img,
.blog-featured-media img {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1200 / 630;
    object-fit: cover;
}

/* Post em destaque: um cartão largo no topo da primeira página, capa ao lado do texto no
   desktop e empilhada no celular. */
.blog-featured {
    display: grid;
    grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
    gap: 1.5rem;
    align-items: center;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.blog-featured-media {
    display: block;
    order: 2;
    align-self: stretch;
}

.blog-featured-media img {
    height: 100%;
}

.blog-featured-body {
    order: 1;
    padding: 1.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

/* Sem capa, o destaque vira um cartão de texto largo — a coluna vazia some. */
.blog-featured:not(:has(.blog-featured-media)) {
    grid-template-columns: 1fr;
}

.blog-featured-title {
    margin: 0;
    font-size: clamp(1.4rem, 3vw, 1.9rem);
    line-height: 1.25;
}

.blog-featured-title a {
    color: var(--ink);
    text-decoration: none;
}

.blog-featured-title a:hover,
.blog-featured-title a:focus-visible {
    color: var(--accent-ink);
    text-decoration: underline;
}

@media (max-width: 45rem) {
    .blog-featured {
        grid-template-columns: 1fr;
        gap: 0;
    }

    .blog-featured-media {
        order: 1;
    }

    .blog-featured-body {
        order: 2;
        padding: 1.25rem;
    }
}

/* ---------- prova social: contador no hero + relatos ---------- */

.hero-proof {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1.25rem 0 0;
}

.proof-icon {
    display: inline-grid;
    place-items: center;
    width: 2.5rem;
    height: 2.5rem;
    border-radius: 50%;
    background: var(--green-soft);
    color: var(--accent-ink);
    box-shadow: var(--shadow-1);
}

.story-avatar {
    display: inline-grid;
    place-items: center;
    width: 2.25rem;
    height: 2.25rem;
    border-radius: 50%;
    background: var(--green-soft);
    color: var(--accent-ink);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* Cada disco com um tom da mesma família: variação suficiente para parecer gente diferente,
   pouca o bastante para não virar arco-íris. */
.stories > li:nth-child(3n + 2) .story-avatar {
    background: var(--green);
    color: var(--on-accent);
}

.stories > li:nth-child(3n) .story-avatar {
    background: var(--user-bubble);
    color: var(--on-user-bubble);
}

.proof-text {
    display: inline-flex;
    align-items: baseline;
    gap: 0.35rem;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

/* Algarismos de largura fixa: o texto ao lado não treme enquanto a contagem sobe. */
.proof-count {
    color: var(--ink);
    font-size: 1.25rem;
    font-weight: 700;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.01em;
}

.section-stories {
    background: var(--surface);
    border-top: 1px solid var(--line);
}

.section > .stories-lede,
.section > .stories{
    max-width: var(--max-width);
    margin-left: auto;
    margin-right: auto;
}

.section-stories > h2 {
    margin-bottom: 0.75rem;
}

.stories-lede {
    color: var(--ink-muted);
    font-size: 1.15rem;
    max-width: 40rem;
    margin-top: 0;
    margin-bottom: 2.5rem;
}

/* Três colunas no desktop, duas no tablet, uma no telefone — mesmo auto-fit dos planos. */
.stories {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr));
    gap: 1.25rem;
}

/* Mesmos tokens de .plan-card e .proactive-item: a seção precisa parecer da casa. A seção
   tem fundo --surface, por isso o cartão usa --surface-strong (como os planos). */
.story {
    height: 100%;
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
    margin: 0;
    padding: 1.5rem;
    background: var(--surface-strong);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow-1);
}

.story-quote {
    margin: 0;
    flex: 1;
}

.story-quote p {
    margin: 0;
    font-size: 1.02rem;
    line-height: 1.55;
}

/* Aspas desenhadas, não digitadas: um “ literal no texto seria lido pelo leitor de tela. */
.story-quote::before {
    content: "\201C";
    display: block;
    font-family: Georgia, "Times New Roman", serif;
    font-size: 2.6rem;
    line-height: 0.6;
    height: 1.1rem;
    color: var(--accent-ink);
    opacity: 0.45;
    margin-bottom: 0.6rem;
}

.story-author {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding-top: 1rem;
    border-top: 1px solid var(--line);
}

.story-author-text {
    display: flex;
    flex-direction: column;
    line-height: 1.3;
}

.story-name {
    font-weight: 600;
}

.story-role {
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

@media (max-width: 640px) {
    .story {
        padding: 1.25rem;
    }
}

/* ============================================================================================
   Cesar Empresas — página B2B (/empresas, /en/companies).
   Mesma marca, outra postura: faixa escura no topo e na segurança, números de seção, grade de
   leitura mais larga e uma cena do produto funcionando. Tudo sob .b2b: a landing pessoal não muda.
   As cores escuras são fixas (a faixa é escura nos dois temas) e o texto sobre elas tem contraste
   AA medido contra #0c1f17; o resto usa os tokens do tema.
   ============================================================================================ */
.b2b {
    --b2b-deep: #0c1f17;
    --b2b-deep-2: #12291f;
    --b2b-deep-line: rgba(255, 255, 255, 0.12);
    --b2b-on-deep: #f1f5f2;
    --b2b-on-deep-muted: #b4c4ba;
    --b2b-mint: #7fd3a8;
    --b2b-radius: 18px;
}

.b2b-eyebrow {
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--accent-ink);
    margin: 0 0 0.75rem;
}

/* ---- topo ---- */
.b2b-hero {
    background:
        radial-gradient(60rem 30rem at 85% -10%, rgba(127, 211, 168, 0.18), transparent 60%),
        linear-gradient(180deg, var(--b2b-deep) 0%, var(--b2b-deep-2) 100%);
    color: var(--b2b-on-deep);
    border-bottom: 1px solid var(--b2b-deep-line);
}

.b2b-hero-inner {
    max-width: 76rem;
    margin: 0 auto;
    padding: 4.5rem 1.5rem 5rem;
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap: 3.5rem;
    align-items: center;
}

.b2b-hero .b2b-eyebrow {
    color: var(--b2b-mint);
}

.b2b-hero h1 {
    font-size: clamp(2.3rem, 5.2vw, 3.6rem);
    line-height: 1.08;
    letter-spacing: -0.025em;
    margin-bottom: 1.1rem;
}

.b2b-hero h1 em {
    font-style: normal;
    color: var(--b2b-mint);
}

.b2b-lede {
    font-size: 1.2rem;
    line-height: 1.6;
    color: var(--b2b-on-deep-muted);
    max-width: 36rem;
    margin: 0 0 2rem;
}

.b2b-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.b2b-actions-center {
    justify-content: center;
}

.b2b-hero .button-primary {
    background: var(--b2b-mint);
    color: var(--b2b-deep);
    box-shadow: 0 10px 30px rgba(127, 211, 168, 0.25);
}

.b2b-hero .button-primary:hover {
    background: #9be0bc;
}

.b2b-button-outline {
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: var(--b2b-on-deep);
}

.b2b-button-outline:hover {
    border-color: var(--b2b-mint);
    color: var(--b2b-mint);
}

.b2b-button-outline-ink {
    border: 1px solid var(--panel-line);
    color: var(--ink);
}

.b2b-button-outline-ink:hover {
    border-color: var(--green);
    color: var(--accent-ink);
}

.b2b-note {
    margin: 1rem 0 0;
    font-size: var(--text-sm);
    color: var(--b2b-on-deep-muted);
}

.b2b-note a {
    color: var(--b2b-on-deep);
    text-underline-offset: 3px;
}

/* Selos das lojas e canais sobre a faixa escura do hero de empresas. */
.b2b-hero .store-badge {
    background: var(--b2b-on-deep);
    color: var(--b2b-deep);
}

.b2b-hero .store-badge-soon {
    background: transparent;
    color: var(--b2b-on-deep-muted);
    border-color: var(--b2b-deep-line);
}

.b2b-hero .hero-channels {
    color: var(--b2b-on-deep-muted);
}

.b2b-proof {
    list-style: none;
    padding: 0;
    margin: 2rem 0 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.5rem;
    font-size: var(--text-sm);
    color: var(--b2b-on-deep);
}

.b2b-proof li {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* Check desenhado em CSS: sem ícone de fonte, sem imagem. */
.b2b-check {
    flex: none;
    width: 1rem;
    height: 1rem;
    border-radius: 50%;
    background: var(--green-soft);
    position: relative;
}

.b2b-check::after {
    content: "";
    position: absolute;
    left: 0.33rem;
    top: 0.18rem;
    width: 0.28rem;
    height: 0.5rem;
    border: solid var(--accent-ink);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}

.b2b-hero .b2b-check {
    background: rgba(127, 211, 168, 0.18);
}

.b2b-hero .b2b-check::after {
    border-color: var(--b2b-mint);
}

/* ---- a cena: conversa + registro ---- */
.b2b-scene {
    margin: 0;
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: start;
    padding-bottom: 3rem;
}

.b2b-phone {
    width: min(100%, 22rem);
    background: #0b141a;
    border: 1px solid var(--b2b-deep-line);
    border-radius: 28px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, 0.45);
    overflow: hidden;
}

.b2b-phone-bar {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    padding: 0.9rem 1rem;
    background: #1f2c33;
    color: #e9edef;
}

.b2b-phone-avatar {
    width: 2.1rem;
    height: 2.1rem;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--b2b-mint), #2c9161);
}

.b2b-phone-title {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
    font-size: 0.92rem;
}

.b2b-phone-title small {
    color: #8696a0;
    font-size: 0.75rem;
}

.b2b-phone-chat {
    display: flex;
    flex-direction: column;
    gap: 0.45rem;
    padding: 1rem 0.85rem 1.4rem;
    min-height: 16rem;
}

.b2b-bubble {
    margin: 0;
    max-width: 82%;
    padding: 0.5rem 0.75rem;
    border-radius: 12px;
    font-size: 0.9rem;
    line-height: 1.4;
    color: #e9edef;
}

.b2b-bubble.is-customer {
    align-self: flex-start;
    background: #202c33;
    border-top-left-radius: 4px;
}

.b2b-bubble.is-agent {
    align-self: flex-end;
    background: #005c4b;
    border-top-right-radius: 4px;
}

.b2b-record {
    position: absolute;
    right: 0;
    bottom: 0;
    width: min(78%, 17.5rem);
    background: var(--surface-strong);
    color: var(--ink);
    border: 1px solid var(--line);
    border-radius: var(--b2b-radius);
    padding: 1rem 1.1rem;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
}

.b2b-record-app {
    margin: 0 0 0.2rem;
    font-size: var(--text-xs);
    color: var(--ink-muted);
}

.b2b-record-title {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    margin: 0 0 0.7rem;
    font-weight: 700;
}

.b2b-record-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 0 4px var(--green-soft);
}

.b2b-record-fields {
    margin: 0;
    display: grid;
    gap: 0.35rem;
    font-size: var(--text-sm);
}

.b2b-record-fields div {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    border-bottom: 1px dashed var(--line);
    padding-bottom: 0.3rem;
}

.b2b-record-fields dt {
    color: var(--ink-muted);
}

.b2b-record-fields dd {
    margin: 0;
    font-weight: 600;
    text-align: right;
}

.b2b-record-note {
    margin: 0.7rem 0 0;
    font-size: var(--text-xs);
    color: var(--accent-ink);
}

/* ---- segmentos ---- */
.b2b-segments {
    max-width: 76rem;
    margin: 0 auto;
    padding: 2rem 1.5rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.75rem 1.5rem;
    border-bottom: 1px solid var(--line);
}

.b2b-segments-label {
    margin: 0;
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

.b2b-segments-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.b2b-segments-list li {
    padding: 0.35rem 0.85rem;
    border: 1px solid var(--line);
    border-radius: 999px;
    font-size: var(--text-sm);
    background: var(--surface);
}

/* a faixa "Conecta com" começa em linha própria, abaixo dos segmentos */
.b2b-segments-break {
    flex-basis: 100%;
    height: 0;
}

/* ---- seções ---- */
.b2b-section {
    max-width: 76rem;
    margin: 0 auto;
    padding: 5.5rem 1.5rem;
}

/* Faixa de largura total sem mudar o contêiner: a sombra pinta até a borda da janela, e o
   clip-path corta o excesso vertical. O conteúdo continua na mesma coluna das outras seções. */
.b2b-band {
    background: var(--surface);
    box-shadow: 0 0 0 100vmax var(--surface);
    clip-path: inset(0 -100vmax);
}

.b2b-section-head {
    max-width: 46rem;
    margin-bottom: 3rem;
}

.b2b-section-head h2 {
    font-size: clamp(1.8rem, 3.6vw, 2.6rem);
    letter-spacing: -0.02em;
}

.b2b-section-lede {
    margin: 0;
    font-size: 1.12rem;
    color: var(--ink-muted);
}

/* ---- as quatro frentes ---- */
.b2b-pillars {
    display: grid;
    gap: 1.25rem;
}

.b2b-pillar {
    display: grid;
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 1.5rem;
    padding: 2.25rem 2rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--b2b-radius);
    box-shadow: var(--shadow-1);
}

.b2b-pillar-number {
    margin: 0;
    font-size: 2.6rem;
    font-weight: 800;
    line-height: 1;
    letter-spacing: -0.04em;
    color: var(--green);
    font-variant-numeric: tabular-nums;
}

.b2b-pillar-body h3 {
    font-size: 1.45rem;
}

.b2b-pillar-body > p {
    margin: 0 0 1.1rem;
    color: var(--ink-muted);
    max-width: 44rem;
}

.b2b-points {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: 0.55rem 1.5rem;
}

.b2b-points li {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    font-size: 0.98rem;
}

.b2b-points .b2b-check {
    margin-top: 0.3rem;
}

/* A cena curta de cada frente: citação, com a borda do acento — é o "imagine isto na sua loja". */
.b2b-example {
    margin: 0;
    padding: 0.75rem 1rem;
    border-left: 3px solid var(--green);
    background: var(--green-soft);
    border-radius: 0 10px 10px 0;
    color: var(--accent-ink);
    font-size: 0.98rem;
}

/* ---- fluxo ---- */
.b2b-flow {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 1rem;
    counter-reset: flow;
}

.b2b-flow-step {
    position: relative;
    padding: 1.5rem 1.25rem;
    border: 1px solid var(--line);
    border-radius: var(--b2b-radius);
    background: var(--canvas);
}

/* A seta entre os passos só existe onde há espaço para ela: em linha, no desktop. */
.b2b-flow-step:not(:last-child)::after {
    content: "";
    position: absolute;
    top: 50%;
    right: -0.72rem;
    width: 0.9rem;
    height: 0.9rem;
    border-top: 2px solid var(--panel-line);
    border-right: 2px solid var(--panel-line);
    transform: translateY(-50%) rotate(45deg);
    background: transparent;
}

.b2b-flow-index {
    display: block;
    font-size: var(--text-xs);
    font-weight: 700;
    letter-spacing: 0.12em;
    color: var(--accent-ink);
    margin-bottom: 0.6rem;
    font-variant-numeric: tabular-nums;
}

.b2b-flow-step h3 {
    font-size: 1.08rem;
}

.b2b-flow-step p {
    margin: 0;
    color: var(--ink-muted);
    font-size: 0.95rem;
}

/* ---- grades de cartões ---- */
.b2b-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(17rem, 1fr));
    gap: 1rem;
}

.b2b-card {
    padding: 1.5rem;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: var(--b2b-radius);
}

.b2b-card h3 {
    font-size: 1.08rem;
    display: flex;
    align-items: center;
    gap: 0.55rem;
}

.b2b-card p {
    margin: 0;
    color: var(--ink-muted);
    font-size: 0.97rem;
}

/* ---- segurança: a segunda faixa escura ---- */
.b2b-trust {
    max-width: none;
    background: var(--b2b-deep);
    color: var(--b2b-on-deep);
    padding-left: 0;
    padding-right: 0;
}

.b2b-trust-inner {
    max-width: 76rem;
    margin: 0 auto;
    padding: 0 1.5rem;
}

.b2b-trust .b2b-eyebrow {
    color: var(--b2b-mint);
}

.b2b-trust .b2b-section-lede {
    color: var(--b2b-on-deep-muted);
}

.b2b-card-dark {
    background: rgba(255, 255, 255, 0.04);
    border-color: var(--b2b-deep-line);
}

.b2b-card-dark p {
    color: var(--b2b-on-deep-muted);
}

.b2b-shield {
    flex: none;
    width: 0.95rem;
    height: 1.1rem;
    background: var(--b2b-mint);
    clip-path: polygon(50% 0, 100% 18%, 100% 55%, 50% 100%, 0 55%, 0 18%);
}

/* ---- como começa ---- */
.b2b-steps {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
    gap: 2rem;
}

.b2b-step-number {
    display: inline-grid;
    place-items: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: var(--green-dark);
    color: var(--on-accent);
    font-weight: 700;
    margin-bottom: 0.9rem;
}

.b2b-step h3 {
    font-size: 1.12rem;
}

.b2b-step p {
    margin: 0;
    color: var(--ink-muted);
}

/* ---- preço ---- */
.b2b-plans {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(19rem, 1fr));
    gap: 1.25rem;
    max-width: 58rem;
}

.b2b-plan {
    display: flex;
    flex-direction: column;
    padding: 2rem;
    background: var(--canvas);
    border: 1px solid var(--line);
    border-radius: var(--b2b-radius);
}

.b2b-plan-featured {
    border-color: var(--green);
    box-shadow: 0 0 0 1px var(--green), var(--shadow-2);
    background: var(--surface-strong);
}

.b2b-plan-name {
    font-size: 1.05rem;
    color: var(--accent-ink);
    margin-bottom: 0.4rem;
}

.b2b-plan-price {
    margin: 0;
    font-size: 2.4rem;
    font-weight: 800;
    letter-spacing: -0.03em;
    line-height: 1.1;
}

.b2b-plan-sub {
    margin: 0.3rem 0 0;
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

.b2b-plan-text {
    margin: 1rem 0 1.25rem;
    color: var(--ink-muted);
}

.b2b-plan .b2b-points {
    grid-template-columns: 1fr;
}

.b2b-plan-cta {
    margin-top: auto;
    align-self: flex-start;
}

.b2b-price-note {
    margin: 1.5rem 0 0;
    max-width: 58rem;
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

/* ---- chamada final ---- */
.b2b-final {
    background:
        radial-gradient(40rem 20rem at 50% 0%, rgba(127, 211, 168, 0.16), transparent 70%),
        var(--b2b-deep);
    color: var(--b2b-on-deep);
}

.b2b-final-inner {
    max-width: 46rem;
    margin: 0 auto;
    padding: 5rem 1.5rem 5.5rem;
    text-align: center;
}

.b2b-final h2 {
    font-size: clamp(1.9rem, 4vw, 2.7rem);
}

.b2b-final p {
    color: var(--b2b-on-deep-muted);
    margin: 0 0 2rem;
    font-size: 1.12rem;
}

.b2b-final .button-primary {
    background: var(--b2b-mint);
    color: var(--b2b-deep);
}

/* ---- foco visível em tudo que é clicável sobre as faixas escuras ---- */
.b2b-hero a:focus-visible,
.b2b-trust a:focus-visible,
.b2b-final a:focus-visible {
    outline: 3px solid var(--b2b-mint);
    outline-offset: 3px;
}

/* ---- responsivo ---- */
@media (max-width: 960px) {
    .b2b-hero-inner {
        grid-template-columns: 1fr;
        gap: 2.5rem;
        padding-top: 3rem;
    }

    .b2b-scene {
        justify-items: center;
    }

    .b2b-flow {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .b2b-flow-step::after {
        display: none;
    }
}

@media (max-width: 600px) {
    .b2b-section {
        padding: 4rem 1rem;
    }

    .b2b-hero-inner,
    .b2b-segments,
    .b2b-trust-inner {
        padding-left: 1rem;
        padding-right: 1rem;
    }

    .b2b-pillar {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        padding: 1.5rem 1.25rem;
    }

    .b2b-pillar-number {
        font-size: 2rem;
    }

    .b2b-flow {
        grid-template-columns: 1fr;
    }

    /* No celular o registro sai de cima da conversa e vira um bloco abaixo dela. */
    .b2b-scene {
        padding-bottom: 0;
        gap: 1rem;
    }

    .b2b-record {
        position: static;
        width: min(100%, 22rem);
    }

    .b2b-actions .button {
        width: 100%;
    }
}

@media (prefers-reduced-motion: reduce) {
    .b2b .button:hover {
        transform: none;
    }
}

/* ============================================================================================
   Cesar Empresas — o tema AMEIXA da página B2B (/empresas), o mesmo do app em chat.usecesar.com
   (docs/company-workspaces.md § Design, 2026-09-13): quem lê a landing e entra no produto vê a
   mesma identidade. Tudo sob .b2b, por cima do bloco original: tokens do tema (acento, botão,
   bolha) e as faixas escuras, que passam de verde-profundo a índigo-ameixa; o menta vira lilás.
   Contrastes: lilás #c9a8f5 sobre #1d1033 ≈ 9:1; --accent-ink sobre --surface ≥ 4,5:1 nos dois temas.
   ============================================================================================ */
.b2b {
    --green: #6b3fa6;
    --green-dark: #4a2a7a;
    --green-soft: #ebe3f8;
    --accent-ink: #4a2a7a;
    --user-bubble: #4a2a7a;
    --glow-accent: rgba(107, 63, 166, 0.24);
    --b2b-deep: #1d1033;
    --b2b-deep-2: #2a1748;
    --b2b-deep-line: rgba(255, 255, 255, 0.12);
    --b2b-on-deep: #f3effa;
    --b2b-on-deep-muted: #c2b7d6;
    --b2b-mint: #c9a8f5;
    --b2b-plum-theme: 1;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .b2b {
        --green: #b89af0;
        --green-dark: #4a2a7a;
        --green-soft: #3a2a5e;
        --accent-ink: #b89af0;
        --user-bubble: #5a3d94;
        --glow-accent: rgba(184, 154, 240, 0.3);
    }
}

html[data-theme="dark"] .b2b {
    --green: #b89af0;
    --green-dark: #4a2a7a;
    --green-soft: #3a2a5e;
    --accent-ink: #b89af0;
    --user-bubble: #5a3d94;
    --glow-accent: rgba(184, 154, 240, 0.3);
}

.b2b-hero {
    background:
        radial-gradient(60rem 30rem at 85% -10%, rgba(201, 168, 245, 0.2), transparent 60%),
        linear-gradient(180deg, var(--b2b-deep) 0%, var(--b2b-deep-2) 100%);
}

.b2b-hero .button-primary {
    box-shadow: 0 10px 30px rgba(201, 168, 245, 0.28);
}

.b2b-hero .button-primary:hover {
    background: #d9c2fa;
}

.b2b-hero .b2b-check {
    background: rgba(201, 168, 245, 0.2);
}

.b2b-final {
    background:
        radial-gradient(40rem 20rem at 50% 0%, rgba(201, 168, 245, 0.18), transparent 70%),
        var(--b2b-deep);
}

/* O papel da página B2B é o lilás-cinza do app da empresa, não o bege do pessoal. */
.b2b {
    background: #efedf4;
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .b2b {
        background: #14111f;
    }
}

html[data-theme="dark"] .b2b {
    background: #14111f;
}

.b2b-phone-avatar {
    background: linear-gradient(135deg, var(--b2b-mint), #7c4fd0);
}

/* ---- Guia: a faixa Cesar Empresas, com a identidade do espaço de empresa (ameixa). Os cartões e
   balões leem tokens, então trocam de cor sem regra nova. ---- */
.guide-company {
    --canvas: #efedf4;
    --surface: #f8f7fc;
    --surface-strong: #ffffff;
    --line: #d8d4e3;
    --panel-line: #cbc5da;
    --green: #6b3fa6;
    --green-dark: #4a2a7a;
    --green-soft: #ebe3f8;
    --accent-ink: #4a2a7a;
    --user-bubble: #4a2a7a;
    --on-user-bubble: #ffffff;
    margin: 3rem 0 0;
    padding: 2rem clamp(1rem, 3vw, 2rem) 2.25rem;
    border: 1px solid var(--line);
    border-top: 4px solid var(--green);
    border-radius: var(--radius);
    background: var(--canvas);
    color: var(--ink);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .guide-company {
        --canvas: #14111f;
        --surface: #1c1829;
        --surface-strong: #252035;
        --ink: #ece8f4;
        --ink-muted: #a89fbf;
        --line: #2d2740;
        --panel-line: #3b3452;
        --green: #b89af0;
        --green-dark: #4a2a7a;
        --green-soft: #3a2a5e;
        --accent-ink: #b89af0;
        --user-bubble: #5a3d94;
    }
}

html[data-theme="dark"] .guide-company {
    --canvas: #14111f;
    --surface: #1c1829;
    --surface-strong: #252035;
    --ink: #ece8f4;
    --ink-muted: #a89fbf;
    --line: #2d2740;
    --panel-line: #3b3452;
    --green: #b89af0;
    --green-dark: #4a2a7a;
    --green-soft: #3a2a5e;
    --accent-ink: #b89af0;
    --user-bubble: #5a3d94;
}

.guide-company-header {
    margin-bottom: 1rem;
}

.guide-company-eyebrow {
    color: var(--accent-ink);
}

.guide-company-header h2 {
    margin: 0.25rem 0 0.6rem;
    font-size: clamp(1.5rem, 3vw, 2rem);
}

.guide-company-hint {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.9rem;
    margin: 0.9rem 0 0;
    font-size: var(--text-sm);
    color: var(--ink-muted);
}

.guide-company-link {
    color: var(--accent-ink);
    font-weight: 650;
    text-decoration: none;
    text-underline-offset: 3px;
}

.guide-company-link:hover,
.guide-company-link:focus-visible {
    text-decoration: underline;
}

.guide-company .guide-card-header h3 {
    margin: 0;
    font-size: 1.15rem;
}

@media (max-width: 640px) {
    .guide-company {
        margin-top: 2rem;
        padding: 1.25rem 0.9rem 1.4rem;
    }
}


/* ===== César Empresas: "no seu site também" (docs/attendant-web-widget.md § Fase 6) ===== */
.b2b-web-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
    gap: 32px;
    align-items: start;
}

.b2b-web-points {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.b2b-web-install {
    display: grid;
    gap: 12px;
    padding: 24px;
    border-radius: 20px;
    background: var(--b2b-surface, #f6f2fb);
    border: 1px solid var(--b2b-line, rgba(60, 40, 90, 0.12));
}

.b2b-web-label {
    margin: 0;
    font-size: 0.85rem;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--b2b-accent, #6a3fa0);
}

.b2b-snippet {
    margin: 0;
    padding: 16px 18px;
    border-radius: 14px;
    background: #1c1826;
    color: #f3ecff;
    font: 0.92rem/1.55 ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
    overflow-x: auto;
    white-space: pre;
}

.b2b-snippet:focus-visible {
    outline: 3px solid var(--b2b-accent, #6a3fa0);
    outline-offset: 3px;
}

.b2b-web-note {
    margin: 0;
    font-size: 0.95rem;
    color: var(--b2b-muted, #5d5568);
}

.b2b-web-demo {
    display: grid;
    gap: 10px;
    padding-top: 12px;
    border-top: 1px solid var(--b2b-line, rgba(60, 40, 90, 0.12));
}

.b2b-web-demo p {
    margin: 0;
}

@media (max-width: 900px) {
    .b2b-web-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 560px) {
    .b2b-web-points {
        grid-template-columns: 1fr;
    }
}

/* ---------- ferramentas prontas (docs/tools-catalog.md) ---------- */

/* Sem logo: as letras sobre a cor da marca (validada no CI para 4.5:1 com branco). */
.tool-tile-logo {
    background: var(--mark-tint, var(--green));
    border: 0;
    color: #fff;
    font-size: 0.95rem;
    letter-spacing: 0.02em;
}

/* Com logo: o fundo branco para o qual as marcas são desenhadas, nos dois temas — uma logo preta
   (OpenAI, GitHub) e uma clara convivem. A borda separa o quadrado branco do card no escuro. */
.tool-tile-logo.has-logo {
    padding: 0.35rem;
    background: #fff;
    border: 1px solid var(--line);
}

.tool-tile-logo.has-logo img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.integration-modal-header .tool-tile-logo {
    width: 3.25rem;
    height: 3.25rem;
}

.integration-group-footer {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.6rem 1.25rem;
    margin-top: 0.9rem;
}

.integration-group-footer .integration-group-toggle {
    margin-top: 0;
}

.integration-group-note {
    margin: 0;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

.integration-group-toggle:focus-visible,
.integration-tile:focus-visible {
    outline: 2px solid var(--green);
    outline-offset: 2px;
}

.integration-category-chip.is-verified {
    color: var(--accent-ink);
    border-color: var(--green);
}

.tool-action-changes {
    display: inline-block;
    margin-left: 0.4rem;
    padding: 0 0.45rem;
    border: 1px solid var(--warn-border, var(--line));
    border-radius: 999px;
    background: var(--warn-bg, transparent);
    color: var(--warn-ink, var(--ink-muted));
    font-size: 0.75rem;
    font-weight: 600;
    vertical-align: 0.1em;
}

.integration-modal-note {
    margin-top: 0.75rem;
    color: var(--ink-muted);
    font-size: var(--text-sm);
}

@media (prefers-reduced-motion: reduce) {
    .integration-tile,
    .integration-group-toggle,
    .integration-group-toggle-chevron {
        transition: none;
    }

    .integration-tile:hover {
        transform: none;
    }
}

@media (forced-colors: active) {
    .tool-tile-logo {
        border: 1px solid CanvasText;
    }
}
