/* ==========================================================================
   Pernambuco Tecnologia — Design tokens
   Tema grafite — paleta da logo nova (azul vibrante + grafite)
   ========================================================================== */
:root {
    color-scheme: dark;
    /* Tema grafite: fundo escuro, cards em grafite mais claro, azul da logo como destaque */
    --cor-grafite: #f1f5fa;          /* títulos e textos em destaque (claro, sobre fundo escuro) */
    --cor-grafite-2: #c4cedb;
    --cor-fundo-escuro: #10151c;     /* topbar, cabeçalho e rodapé */
    --cor-azul: #0b63f6;             /* azul da logo: botões e detalhes */
    --cor-azul-2: #2d7bff;
    --cor-azul-escuro: #0849b8;
    --cor-azul-texto: #5b9bff;       /* azul mais claro para textos sobre fundo escuro */
    --cor-bg: #1a212b;               /* fundo do site (grafite) */
    --cor-bg-alt: #151b23;           /* seções alternadas */
    --cor-branco: #232c39;           /* superfície dos cards (grafite mais claro) */
    --cor-borda: #313c4c;
    --cor-texto: #dfe5ee;
    --cor-texto-suave: #9aa8ba;
    --cor-sucesso: #2ecc8f;
    --cor-whatsapp: #25a244;
    --cor-whatsapp-escuro: #1b8a38;

    --raio: 4px;
    --fonte-display: 'Space Grotesk', 'IBM Plex Sans', sans-serif;
    --fonte-corpo: 'IBM Plex Sans', sans-serif;
    --fonte-mono: 'IBM Plex Mono', monospace;

    --sombra-suave: 0 1px 2px rgba(0, 0, 0, 0.30), 0 1px 1px rgba(0, 0, 0, 0.20);
    --sombra-media: 0 8px 24px rgba(0, 0, 0, 0.40);
    --largura-max: 1160px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }

body {
    margin: 0;
    font-family: var(--fonte-corpo);
    color: var(--cor-texto);
    background: var(--cor-bg);
    line-height: 1.55;
    -webkit-font-smoothing: antialiased;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, h5, h6 {
    font-family: var(--fonte-display);
    color: var(--cor-grafite);
    margin: 0 0 .5em;
    line-height: 1.15;
    font-weight: 600;
}

.container {
    max-width: var(--largura-max);
    margin: 0 auto;
    padding: 0 24px;
}

@media (prefers-reduced-motion: reduce) {
    * { animation-duration: 0.001ms !important; transition-duration: 0.001ms !important; }
}

/* ==========================================================================
   Botões
   ========================================================================== */
.btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 12px 22px;
    border-radius: var(--raio);
    font-family: var(--fonte-corpo);
    font-weight: 600;
    font-size: 0.95rem;
    border: 1px solid transparent;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease, transform .1s ease;
}
.btn:active { transform: translateY(1px); }

.btn--primario {
    background: var(--cor-azul);
    color: #fff;
}
.btn--primario:hover { background: var(--cor-azul-escuro); }

.btn--whatsapp {
    background: var(--cor-whatsapp);
    color: #fff;
}
.btn--whatsapp:hover { background: var(--cor-whatsapp-escuro); color: #fff; }

.btn--fantasma {
    background: transparent;
    border-color: var(--cor-borda);
    color: var(--cor-grafite);
}
.btn--fantasma:hover { border-color: var(--cor-azul-texto); color: var(--cor-azul-texto); }

.btn--bloco { width: 100%; justify-content: center; }

/* ==========================================================================
   Topbar
   ========================================================================== */
.topbar {
    background: var(--cor-fundo-escuro);
    border-bottom: 1px solid var(--cor-borda);
    color: #cbd3db;
    font-size: 0.8rem;
}
.topbar__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 7px 24px;
    gap: 12px;
    flex-wrap: wrap;
}
.topbar__contatos { display: flex; gap: 18px; }
.topbar__contatos a:hover { color: #fff; }

/* ==========================================================================
   Cabeçalho / navegação
   ========================================================================== */
.site-header {
    background: var(--cor-fundo-escuro);
    border-bottom: 1px solid var(--cor-borda);
    position: sticky;
    top: 0;
    z-index: 50;
}
.site-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 14px 24px;
}

.logo { display: flex; align-items: center; gap: 10px; }
.logo__marca {
    font-family: var(--fonte-display);
    font-weight: 700;
    font-size: 1.35rem;
    color: var(--cor-grafite);
}
.logo__marca span,
.logo__marca::after { color: var(--cor-azul); }
.logo__linha {
    width: 1px;
    height: 18px;
    background: var(--cor-borda);
}
.logo__legenda {
    font-family: var(--fonte-mono);
    font-size: 0.7rem;
    letter-spacing: 0.22em;
    color: var(--cor-texto-suave);
}
.logo__marca--footer { font-size: 1.2rem; display: block; margin-bottom: 8px; }

.logo__imagem { height: 46px; width: auto; display: block; }
.logo__imagem--footer {
    height: 52px;
    margin-bottom: 14px;
}

.nav { display: flex; align-items: center; gap: 28px; }
.nav ul { display: flex; gap: 24px; }
.nav a {
    font-size: 0.85rem;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: var(--cor-texto-suave);
    padding: 6px 2px;
    border-bottom: 2px solid transparent;
    transition: color .15s ease, border-color .15s ease;
}
.nav a:hover, .nav a.ativo { color: var(--cor-grafite); border-color: var(--cor-azul); }
.nav a.nav__cta {
    white-space: nowrap;
    padding: 11px 22px;
    border-bottom: 1px solid transparent;
    color: #fff;
    letter-spacing: 0.02em;
}
.nav a.nav__cta:hover { color: #fff; border-bottom-color: transparent; }

.menu-toggle {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    width: 38px;
    height: 38px;
    background: none;
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    cursor: pointer;
}
.menu-toggle span {
    display: block;
    height: 2px;
    background: var(--cor-grafite);
    margin: 0 8px;
}

/* ==========================================================================
   Eyebrow / rótulos de seção (ecoam o "SISTEMAS" espaçado da marca)
   ========================================================================== */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    font-family: var(--fonte-mono);
    font-size: 0.72rem;
    letter-spacing: 0.28em;
    text-transform: uppercase;
    color: var(--cor-azul-texto);
    margin-bottom: 14px;
}
.eyebrow::before {
    content: '';
    width: 22px;
    height: 1px;
    background: var(--cor-azul);
}

/* ==========================================================================
   Hero
   ========================================================================== */
.hero {
    padding: 76px 0 88px;
    background:
        radial-gradient(900px 420px at 85% -10%, rgba(11, 99, 246, 0.20), transparent 60%),
        var(--cor-bg);
    border-bottom: 1px solid var(--cor-borda);
}
.hero__grid {
    display: grid;
    grid-template-columns: 1.05fr 0.85fr;
    gap: 56px;
    align-items: center;
}
.hero h1 {
    font-size: clamp(2.1rem, 3.4vw, 3rem);
    max-width: 15ch;
}
.hero h1 em {
    font-style: normal;
    color: var(--cor-azul-texto);
}
.hero p.lead {
    font-size: 1.05rem;
    color: var(--cor-texto-suave);
    max-width: 46ch;
    margin-bottom: 28px;
}
.hero__acoes { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 34px; }

.hero__selos {
    display: flex;
    gap: 26px;
    flex-wrap: wrap;
    padding-top: 22px;
    border-top: 1px solid var(--cor-borda);
}
.hero__selo { font-size: 0.82rem; color: var(--cor-texto-suave); }
.hero__selo strong { display: block; font-family: var(--fonte-display); font-size: 1.3rem; color: var(--cor-grafite); }

/* --- Elemento-assinatura: cupom / comprovante de PDV --- */
.recibo {
    background: var(--cor-branco);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    box-shadow: var(--sombra-media);
    padding: 26px 24px 22px;
    font-family: var(--fonte-mono);
    max-width: 360px;
    margin-left: auto;
    position: relative;
}
.recibo::before,
.recibo::after {
    content: '';
    position: absolute;
    left: 0; right: 0;
    height: 8px;
    background: linear-gradient(45deg, transparent 33.33%, var(--cor-bg) 33.33%, var(--cor-bg) 66.66%, transparent 66.66%),
                linear-gradient(-45deg, transparent 33.33%, var(--cor-bg) 33.33%, var(--cor-bg) 66.66%, transparent 66.66%);
    background-size: 16px 16px;
}
.recibo::before { top: -1px; }
.recibo::after { bottom: -1px; transform: rotate(180deg); }

.recibo__topo {
    text-align: center;
    padding-bottom: 14px;
    margin-bottom: 14px;
    border-bottom: 1px dashed var(--cor-borda);
}
.recibo__topo strong {
    display: block;
    font-family: var(--fonte-display);
    font-size: 1rem;
    color: var(--cor-grafite);
    letter-spacing: 0.04em;
}
.recibo__topo span { font-size: 0.72rem; color: var(--cor-texto-suave); }

.recibo__item {
    display: flex;
    justify-content: space-between;
    font-size: 0.82rem;
    padding: 5px 0;
    color: var(--cor-texto);
}
.recibo__item span:last-child { color: var(--cor-texto-suave); }

.recibo__total {
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px dashed var(--cor-borda);
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--cor-grafite);
}
.recibo__total span:last-child { color: var(--cor-sucesso); }

.recibo__rodape {
    margin-top: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.7rem;
    color: var(--cor-texto-suave);
}
.recibo__pulso {
    width: 7px; height: 7px;
    border-radius: 50%;
    background: var(--cor-sucesso);
    box-shadow: 0 0 0 rgba(31,157,107,.5);
    animation: pulso 2.4s infinite;
}
@keyframes pulso {
    0% { box-shadow: 0 0 0 0 rgba(31,157,107,.45); }
    70% { box-shadow: 0 0 0 8px rgba(31,157,107,0); }
    100% { box-shadow: 0 0 0 0 rgba(31,157,107,0); }
}

/* ==========================================================================
   Seções gerais
   ========================================================================== */
.secao { padding: 80px 0; }
.secao--alt { background: var(--cor-bg-alt); border-top: 1px solid var(--cor-borda); border-bottom: 1px solid var(--cor-borda); }
.secao__cabecalho { max-width: 640px; margin-bottom: 44px; }
.secao__cabecalho.centro { margin-left: auto; margin-right: auto; text-align: center; }
.secao__cabecalho p { color: var(--cor-texto-suave); }

.grade {
    display: grid;
    gap: 24px;
}
.grade--3 { grid-template-columns: repeat(3, 1fr); }
.grade--2 { grid-template-columns: repeat(2, 1fr); }
.grade--4 { grid-template-columns: repeat(4, 1fr); }

.card {
    background: var(--cor-branco);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 26px 24px;
    box-shadow: var(--sombra-suave);
    transition: border-color .15s ease, transform .15s ease;
}
.card:hover { border-color: var(--cor-azul); transform: translateY(-2px); }
.card__numero {
    font-family: var(--fonte-mono);
    font-size: 0.75rem;
    color: var(--cor-azul-texto);
    letter-spacing: 0.1em;
    margin-bottom: 10px;
    display: block;
}
.card h3 { font-size: 1.1rem; margin-bottom: 8px; }
.card p { color: var(--cor-texto-suave); font-size: 0.92rem; margin: 0; }

.card--destaque {
    border-color: var(--cor-azul);
    background: linear-gradient(180deg, rgba(11,99,246,0.12), transparent 40%), var(--cor-branco);
}

/* Bloco alternado imagem/texto */
.bloco-alternado {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 56px;
    align-items: center;
    padding: 64px 0;
}
.bloco-alternado + .bloco-alternado { border-top: 1px solid var(--cor-borda); }
.bloco-alternado.inverso .bloco-alternado__media { order: 2; }
.bloco-alternado__media {
    background: var(--cor-branco);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 8px;
    box-shadow: var(--sombra-suave);
}
.bloco-alternado__media img { border-radius: 2px; }
.bloco-alternado ul { margin-top: 18px; }
.bloco-alternado ul li {
    display: flex;
    gap: 10px;
    padding: 8px 0;
    font-size: 0.94rem;
    border-top: 1px solid var(--cor-borda);
}
.bloco-alternado ul li:first-child { border-top: none; }
.bloco-alternado ul li::before {
    content: '';
    flex: none;
    width: 6px; height: 6px;
    margin-top: 8px;
    background: var(--cor-azul);
    border-radius: 1px;
}

/* Placeholder de imagem (até o logo/fotos definitivas chegarem) */
.img-placeholder {
    aspect-ratio: 4 / 3;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cor-bg-alt);
    color: var(--cor-texto-suave);
    font-family: var(--fonte-mono);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-align: center;
    border-radius: 2px;
    padding: 20px;
}

.foto-produto {
    width: 100%;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 8px;
    display: block;
}

/* Planos / preços */
.planos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.plano {
    background: var(--cor-branco);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 28px 24px;
    text-align: left;
}
.plano--destaque { border-color: var(--cor-azul); box-shadow: var(--sombra-media); position: relative; }
.plano--destaque::before {
    content: 'MAIS PROCURADO';
    position: absolute;
    top: -11px; left: 24px;
    background: var(--cor-azul);
    color: #fff;
    font-family: var(--fonte-mono);
    font-size: 0.62rem;
    letter-spacing: 0.12em;
    padding: 4px 10px;
    border-radius: var(--raio);
}
.plano__nome { font-family: var(--fonte-mono); letter-spacing: 0.08em; font-size: 0.75rem; color: var(--cor-texto-suave); }
.plano__preco { font-family: var(--fonte-display); font-size: 2rem; color: var(--cor-grafite); margin: 8px 0 4px; }
.plano__preco span { font-size: 0.9rem; color: var(--cor-texto-suave); font-weight: 400; }
.plano p.plano__desc { color: var(--cor-texto-suave); font-size: 0.9rem; min-height: 40px; }

/* FAQ (accordion simples via <details>) */
.faq { max-width: 800px; margin: 0 auto; }
.faq details {
    background: var(--cor-branco);
    border: 1px solid var(--cor-borda);
    border-radius: var(--raio);
    padding: 16px 20px;
    margin-bottom: 10px;
}
.faq summary {
    cursor: pointer;
    font-weight: 600;
    color: var(--cor-grafite);
    list-style: none;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
}
.faq summary::-webkit-details-marker { display: none; }
.faq summary::after {
    content: '+';
    font-family: var(--fonte-mono);
    color: var(--cor-azul-texto);
    font-size: 1.1rem;
}
.faq details[open] summary::after { content: '–'; }
.faq details p { color: var(--cor-texto-suave); margin: 12px 0 2px; font-size: 0.93rem; }

/* CTA final */
.cta-final {
    background: linear-gradient(135deg, #172338, #1c2f55);
    border: 1px solid rgba(11, 99, 246, 0.45);
    color: #fff;
    border-radius: var(--raio);
    padding: 52px 44px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}
.cta-final h2 { color: #fff; margin-bottom: 6px; }
.cta-final p { color: #b9c2cd; margin: 0; }

/* Página de suporte / contato — placeholders "em breve" */
.pagina-simples {
    padding: 90px 0;
    text-align: center;
}
.pagina-simples .eyebrow { justify-content: center; }
.pagina-simples .eyebrow::before { display: none; }
.pagina-simples h1 { max-width: 20ch; margin: 0 auto 14px; }
.pagina-simples p.lead { max-width: 48ch; margin: 0 auto 30px; color: var(--cor-texto-suave); }
.pagina-simples__acoes { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ==========================================================================
   Rodapé
   ========================================================================== */
.site-footer {
    background: var(--cor-fundo-escuro);
    border-top: 1px solid var(--cor-borda);
    color: #cbd3db;
}
.footer__grid {
    display: grid;
    grid-template-columns: 1.4fr 1fr 1fr 1fr;
    gap: 32px;
    padding: 56px 24px 40px;
}
.footer__col h6 {
    color: #fff;
    font-family: var(--fonte-mono);
    letter-spacing: 0.1em;
    font-size: 0.72rem;
    margin-bottom: 14px;
}
.footer__col ul li { margin-bottom: 9px; font-size: 0.9rem; }
.footer__col ul li a:hover { color: #fff; }
.footer__col--marca p { font-size: 0.88rem; color: #a7b1bd; max-width: 32ch; }
.footer__social { display: flex; gap: 16px; margin-top: 14px; font-size: 0.85rem; }
.footer__social a:hover { color: #fff; }

.footer__base { border-top: 1px solid var(--cor-borda); }
.footer__base-inner {
    display: flex;
    justify-content: space-between;
    padding: 16px 24px;
    font-size: 0.78rem;
    color: #8b95a3;
    flex-wrap: wrap;
    gap: 8px;
}

/* ==========================================================================
   Responsivo
   ========================================================================== */
@media (max-width: 960px) {
    .hero__grid { grid-template-columns: 1fr; }
    .recibo { margin: 0 auto; }
    .bloco-alternado { grid-template-columns: 1fr; gap: 28px; padding: 40px 0; }
    .bloco-alternado.inverso .bloco-alternado__media { order: 0; }
    .grade--3, .grade--4 { grid-template-columns: repeat(2, 1fr); }
    .planos { grid-template-columns: 1fr; }
    .footer__grid { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 720px) {
    .topbar__texto { display: none; }
    .menu-toggle { display: flex; }
    .nav {
        position: absolute;
        top: 100%; left: 0; right: 0;
        background: var(--cor-fundo-escuro);
        border-bottom: 1px solid var(--cor-borda);
        flex-direction: column;
        align-items: stretch;
        padding: 16px 24px 24px;
        display: none;
        gap: 16px;
    }
    .nav.aberto { display: flex; }
    .nav ul { flex-direction: column; gap: 4px; }
    .nav a { display: block; padding: 10px 0; border-bottom: 1px solid var(--cor-borda); }
    .grade--3, .grade--4, .grade--2 { grid-template-columns: 1fr; }
    .footer__grid { grid-template-columns: 1fr; padding: 40px 24px; }
    .cta-final { flex-direction: column; text-align: center; }
    .hero { padding: 48px 0 56px; }
    .secao { padding: 56px 0; }
}


/* ===== Consulta de CNPJ ===== */
.consulta { max-width: 760px; margin: 0 auto; }
.consulta__form { display: flex; gap: 10px; }
.consulta__form input {
    flex: 1; min-width: 0; padding: 15px 16px; font: inherit; font-size: 1.05rem;
    letter-spacing: 0.04em; color: var(--cor-texto); background: var(--cor-branco);
    border: 1px solid var(--cor-borda); border-radius: var(--raio);
}
.consulta__form input:focus { outline: 2px solid var(--cor-azul-texto); outline-offset: 1px; }
.consulta__msg { min-height: 1.4em; margin-top: 12px; font-size: 0.95rem; color: var(--cor-texto-suave); }
.consulta__msg.erro { color: #ff8a86; }
.resultado {
    margin-top: 22px; padding: 26px; background: var(--cor-branco);
    border: 1px solid var(--cor-borda); border-radius: var(--raio); box-shadow: var(--sombra-media);
}
.resultado[hidden] { display: none; }
.resultado__topo { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; margin-bottom: 18px; }
.resultado__topo h3 { font-size: 1.2rem; line-height: 1.3; }
.resultado__topo p { color: var(--cor-texto-suave); font-size: 0.9rem; }
.selo { padding: 5px 12px; border-radius: 100px; font-size: 0.78rem; font-weight: 700; white-space: nowrap; }
.selo.ok, .ie-lista em.ok { background: rgba(46, 204, 143, 0.15); color: var(--cor-sucesso); }
.selo.nok, .ie-lista em.nok { background: rgba(240, 96, 93, 0.15); color: #ff8a86; }
.resultado__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 22px; margin-bottom: 20px; }
.resultado__grid .larga { grid-column: 1 / -1; }
.resultado__grid dt { font-family: var(--fonte-mono); font-size: 0.7rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cor-texto-suave); }
.resultado__grid dd { font-size: 0.95rem; color: var(--cor-texto); }
.resultado h4 { font-size: 1rem; margin: 6px 0 10px; }
.ie-lista { list-style: none; display: grid; gap: 8px; margin-bottom: 14px; }
.ie-lista li { display: flex; align-items: center; gap: 12px; padding: 10px 14px; background: var(--cor-bg); border: 1px solid var(--cor-borda); border-radius: var(--raio); }
.ie-lista li span { color: var(--cor-texto-suave); font-family: var(--fonte-mono); font-size: 0.85rem; }
.ie-lista em { margin-left: auto; font-style: normal; font-size: 0.75rem; font-weight: 700; padding: 3px 10px; border-radius: 100px; }
.ie-vazia { padding: 12px 14px; background: var(--cor-bg); border-left: 3px solid var(--cor-azul); color: var(--cor-texto-suave); font-size: 0.92rem; margin-bottom: 14px; }
.resultado__aviso { font-size: 0.8rem; color: var(--cor-texto-suave); margin-bottom: 20px; }
.lead { padding-top: 20px; border-top: 1px dashed var(--cor-borda); position: relative; }
.lead p { color: var(--cor-texto-suave); font-size: 0.92rem; margin-bottom: 12px; }
.lead__campos { display: grid; grid-template-columns: 1fr 1fr auto; gap: 10px; }
.lead__campos input { padding: 12px 14px; font: inherit; color: var(--cor-texto); background: var(--cor-bg); border: 1px solid var(--cor-borda); border-radius: var(--raio); min-width: 0; }
.lead__campos input:focus { outline: 2px solid var(--cor-azul-texto); outline-offset: 1px; }
@media (max-width: 640px) {
    .consulta__form { flex-direction: column; }
    .resultado { padding: 20px 16px; }
    .resultado__grid { grid-template-columns: 1fr; }
    .lead__campos { grid-template-columns: 1fr; }
}
.ie-vazia a { color: var(--cor-azul-texto); text-decoration: underline; }
.nav a[href="index.php#consulta-cnpj"] { white-space: nowrap; }

/* ===== Suporte / downloads ===== */
.downloads { display: grid; gap: 16px; max-width: 760px; margin: 0 auto; }
.download { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.download__info { min-width: 0; }
.download__info h3 { margin-bottom: 4px; }
.download__info p { color: var(--cor-texto-suave); font-size: 0.92rem; }
.download__meta { font-family: var(--fonte-mono); font-size: 0.78rem !important; margin-top: 8px; }
.download__hash { margin-top: 8px; font-size: 0.82rem; }
.download__hash summary { cursor: pointer; color: var(--cor-azul-texto); }
.download__hash code { display: block; margin-top: 6px; padding: 8px 10px; background: var(--cor-bg); border: 1px solid var(--cor-borda); border-radius: var(--raio); font-family: var(--fonte-mono); font-size: 0.72rem; word-break: break-all; color: var(--cor-texto); }
.download__breve { cursor: default; white-space: nowrap; }
.download__aviso { max-width: 760px; margin: 20px auto 0; text-align: center; font-size: 0.88rem; color: var(--cor-texto-suave); }
@media (max-width: 640px) {
    .download { flex-direction: column; align-items: stretch; text-align: left; }
    .download .btn { width: 100%; }
}

/* Âncoras e botão de destaque na página de suporte */
.secao[id] { scroll-margin-top: 90px; }
.btn--grande { padding: 15px 30px; font-size: 1.05rem; }
.pagina-simples__acoes { flex-wrap: wrap; }

/* ===== Página de contato ===== */
.contato-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; align-items: start; }
.contato-form h2 { font-size: 1.3rem; margin-bottom: 18px; }
.contato-form label { display: block; margin: 14px 0 6px; font-size: 0.85rem; font-weight: 600; color: var(--cor-texto-suave); }
.contato-form input, .contato-form select, .contato-form textarea {
    width: 100%; padding: 12px 14px; font: inherit; color: var(--cor-texto);
    background: var(--cor-bg); border: 1px solid var(--cor-borda); border-radius: var(--raio);
}
.contato-form textarea { resize: vertical; min-height: 120px; }
.contato-form input:focus, .contato-form select:focus, .contato-form textarea:focus { outline: 2px solid var(--cor-azul-texto); outline-offset: 1px; }
.contato-form__duplo { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.contato-form .btn { margin-top: 20px; }
.contato-form .consulta__msg a { color: var(--cor-azul-texto); text-decoration: underline; }
.contato-info { display: grid; gap: 16px; }
.contato-info h3 { word-break: break-word; margin: 6px 0; }
.contato-info p { color: var(--cor-texto-suave); font-size: 0.92rem; margin-bottom: 12px; }
@media (max-width: 860px) {
    .contato-grid { grid-template-columns: 1fr; }
    .contato-form__duplo { grid-template-columns: 1fr; }
}

/* ===== NFC-e de demonstração (hero) ===== */
.nfce {
    position: relative; width: 100%; max-width: 330px; margin: 0 auto;
    padding: 22px 18px 20px; background: #fdfdfb; color: #1b1b1b;
    font-family: var(--fonte-mono); font-size: 0.68rem; line-height: 1.45;
    box-shadow: var(--sombra-media);
}
.nfce::after { content: ""; position: absolute; left: 0; right: 0; bottom: -6px; height: 6px;
    background: linear-gradient(135deg, #fdfdfb 50%, transparent 50%) 0 0 / 12px 6px repeat-x,
                linear-gradient(225deg, #fdfdfb 50%, transparent 50%) 0 0 / 12px 6px repeat-x; }
.nfce__selo { position: absolute; top: 10px; right: -34px; transform: rotate(35deg); width: 130px; text-align: center;
    background: var(--cor-azul); color: #fff; font-weight: 700; font-size: 0.6rem; letter-spacing: 0.12em; padding: 3px 0; }
.nfce__topo { text-align: center; display: grid; gap: 1px; padding-bottom: 8px; }
.nfce__topo strong { font-size: 0.74rem; }
.nfce__titulo { text-align: center; font-weight: 700; font-size: 0.8rem; padding: 6px 0; border-top: 1px dashed #999; border-bottom: 1px dashed #999; margin-bottom: 6px; }
.nfce__titulo small { display: block; font-weight: 400; font-size: 0.56rem; line-height: 1.3; }
.nfce__itens { width: 100%; border-collapse: collapse; margin-bottom: 4px; }
.nfce__itens th { text-align: right; font-size: 0.56rem; font-weight: 700; padding: 2px 0; border-bottom: 1px solid #999; }
.nfce__itens th:first-child, .nfce__itens td:first-child { text-align: left; }
.nfce__itens td { text-align: right; padding: 2px 0; white-space: nowrap; }
.nfce__itens td:first-child { white-space: normal; padding-right: 4px; }
.nfce__linha { display: flex; justify-content: space-between; gap: 8px; padding: 1px 0; }
.nfce__linha--total { font-weight: 700; font-size: 0.82rem; padding: 4px 0; }
.nfce__linha--peq { font-size: 0.56rem; color: #444; }
.nfce__sep { border-top: 1px dashed #999; margin: 8px 0; }
.nfce__centro { text-align: center; margin-bottom: 6px; display: grid; gap: 1px; }
.nfce__centro code { font-family: inherit; font-size: 0.6rem; word-break: break-all; }
.nfce__centro--peq { font-size: 0.58rem; }
.nfce__qr { display: block; width: 104px; height: 104px; margin: 6px auto; }
.nfce__homolog { text-align: center; font-weight: 700; font-size: 0.62rem; border: 1px solid #1b1b1b; padding: 4px; margin: 6px 0; }
.nfce__rodape { display: flex; align-items: center; justify-content: center; gap: 6px; font-size: 0.6rem; color: #2a7a54; font-weight: 600; }
@media (max-width: 860px) { .nfce { margin-top: 24px; } }
