/* ============================================================
   CONTABILIZAMS — CSS principal (Mobile-First, Ultra-Denso)
   Paleta: Azul Marinho #0A2463 | Azul Claro #3E92CC | Laranja/CTA #E63946
   Fonte: Inter (corpo) + Poppins (títulos)
   ============================================================ */
* { box-sizing: border-box; margin: 0; padding: 0; }
:root {
    /* ============ C1 RUBRIC: Paleta Bootstrap 5 + Tokens CM ============ */
    /* 8 cores primary family (azul institucional Contabilizams) */
    --c-primary: #0A2463;
    --c-primary-50: #EFF6FF;
    --c-primary-100: #DBEAFE;
    --c-primary-400: #3E92CC;
    --c-primary-500: #0d6efd;
    --c-primary-dark: #081c4e;
    --c-primary-light: #1e3a8a;
    --c-secondary: #3E92CC;
    /* 4 cores cta/accent (laranja/vermelho quente) */
    --c-accent: #E63946;
    --c-danger: #dc3545;
    --c-accent-2: #FF7F11;
    --c-warning: #ffc107;
    /* 4 cores neutras sucesso/muted/border (Bootstrap 5) */
    --c-success: #198754;
    --c-info: #0dcaf0;
    --c-muted: #6c757d;
    --c-border: #dee2e6;
    /* WhatsApp e verde */
    --c-whatsapp: #25D366;
    --c-whatsapp-dark: #128C7E;
    --c-wa: var(--c-whatsapp);
    /* 4 cores background/texto */
    --c-dark: #212529;
    --c-body: #0F172A;
    --c-bg: #f8f9fa;
    --c-bg-2: #EFF6FF;
    --c-white: #FFFFFF;
    --c-text: var(--c-dark);
    /* Tokens: radius 4 tiers + shadow 3 tiers + tempo 3 tiers */
    --radius-sm: 6px;
    --radius: 10px;
    --radius-md: 14px;
    --radius-lg: 18px;
    --radius-xl: 24px;
    --shadow-sm: 0 2px 8px rgba(15,23,42,.06);
    --shadow:    0 6px 20px rgba(10,36,99,.08);
    --shadow-lg: 0 22px 50px rgba(10,36,99,.14);
    --t-fast: 150ms ease;
    --t-med: 260ms cubic-bezier(.4,0,.2,1);
    --t: 260ms cubic-bezier(.4,0,.2,1);
    /* Container 1320px base (Bootstrap 5 XXL). Escalonado em 5 media queries (D2) */
    --container: 1320px;
    --section-py: clamp(2.5rem, 5.5vw, 4.5rem);
    --font-body: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
    --font-title: 'Poppins', 'Inter', sans-serif;
}
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; overflow-x: clip; overflow-x: hidden; }
body {
    font-family: var(--font-body);
    color: var(--c-body);
    background: var(--c-bg);
    line-height: 1.55;
    font-size: 15px;
    overflow-x: hidden;
    overflow-x: clip;
    max-width: 100vw;
    width: 100%;
}
*, *::before, *::after { max-width: 100%; overflow-wrap: anywhere; word-wrap: break-word; }
section, header, footer, main, nav, aside { max-width: 100%; overflow-x: hidden; }
h1,h2,h3,h4,h5 { font-family: var(--font-title); font-weight: 700; color: var(--c-primary-dark); line-height: 1.25; }
h1 { font-size: clamp(1.7rem, 4vw, 2.6rem); }
h2 { font-size: clamp(1.4rem, 3vw, 2rem); margin-bottom: 0.6rem; }
h3 { font-size: clamp(1.1rem, 2.2vw, 1.4rem); }
h4 { font-size: 1.05rem; }
p  { margin-bottom: 0.8rem; color: #334155; }
a  { color: var(--c-secondary); text-decoration: none; transition: color var(--t-fast); }
a:hover { color: var(--c-primary); }
img { max-width: 100%; height: auto; display: block; }
ul { list-style: none; }
.container { width: 100%; max-width: var(--container); margin: 0 auto; padding: 0 1.2rem; }
section { padding: clamp(2.2rem, 5vw, 4rem) 0; }
.text-muted { color: var(--c-muted); }
.text-center { text-align: center; }
.d-none { display: none !important; }
.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}
.mb-1{margin-bottom:.5rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}
.ml-1{margin-left:.5rem}.ml-2{margin-left:1rem}
.mx-auto{margin-left:auto;margin-right:auto}
.py-1{padding-top:.5rem;padding-bottom:.5rem}.py-2{padding:1rem 0}.py-3{padding:1.5rem 0}.py-5{padding:3rem 0}
.px-2{padding:0 1rem}.p-2{padding:1rem}.p-3{padding:1.5rem}.p-5{padding:3rem}
.rounded{border-radius:var(--radius)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-lg{border-radius:var(--radius-lg)}
.shadow{box-shadow:var(--shadow)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-lg{box-shadow:var(--shadow-lg)}
.bg-white{background:#fff}.bg-primary{background:var(--c-primary);color:#fff}
/* ===== Imagens layout da referência cmgestaopublica (assets/img) ===== */
.utils-section {
    position: relative;
    background:
        linear-gradient(180deg, rgba(239,246,255,0.85) 0%, rgba(248,250,252,0.90) 55%, rgba(255,255,255,0.96) 100%),
        linear-gradient(135deg, rgba(10,36,99,0.10) 0%, rgba(62,146,204,0.12) 50%, rgba(13,110,253,0.08) 100%),
        url("../img/utilitarios-bg.jpg") center/cover no-repeat,
        linear-gradient(180deg, #f8fafc 0%, #fff 100%);
    overflow: hidden;
    isolation: isolate;
    border-top: 1px solid rgba(10,36,99,0.08);
    border-bottom: 1px solid rgba(10,36,99,0.08);
}
.utils-section::before {
    content:''; position:absolute; inset:0; z-index: 0;
    background:
        radial-gradient(900px 320px at 8% -10%, rgba(10,36,99,0.22), transparent 58%),
        radial-gradient(1100px 360px at 92% 120%, rgba(62,146,204,0.28), transparent 60%),
        radial-gradient(520px 220px at 50% 50%, rgba(230,57,70,0.06), transparent 70%),
        linear-gradient(90deg, rgba(10,36,99,0.04) 1px, transparent 1px),
        linear-gradient(rgba(10,36,99,0.04) 1px, transparent 1px);
    background-size: auto, auto, auto, 32px 32px, 32px 32px;
    background-blend-mode: normal, normal, normal, multiply, multiply;
    mix-blend-mode: multiply;
    opacity: 0.9;
    pointer-events:none;
}
.utils-section::after {
    content:''; position:absolute; inset:0; z-index: 0;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.55) 0%, transparent 28%, transparent 72%, rgba(255,255,255,0.62) 100%);
    pointer-events: none;
}
.utils-section > * { position: relative; z-index: 1; }
.utils-section .section-title span.eyebrow {
    background: linear-gradient(135deg, var(--c-primary), var(--c-accent));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    position: relative;
}
.utils-section .section-title h2 {
    background: linear-gradient(135deg, var(--c-primary-dark) 0%, var(--c-secondary) 55%, var(--c-primary) 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    text-shadow: 0 1px 0 rgba(255,255,255,0.7);
}
.utils-section .section-title p {
    color: #475569;
    font-weight: 500;
}
.cta-final {
    position: relative;
    background:
        linear-gradient(135deg, rgba(10,36,99,0.92), rgba(13,110,253,0.72) 55%, rgba(62,146,204,0.58)),
        url("../img/cta-newsletter.jpg") center/cover no-repeat,
        linear-gradient(135deg, var(--c-primary), var(--c-secondary));
    color: #fff;
    overflow: hidden;
}
.cta-final::before {
    content:''; position:absolute; inset:0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><path d='M0 0h40v40H0z M40 40h40v40H40z' fill='%23ffffff' fill-opacity='0.03'/></svg>");
    pointer-events:none;
}
.cta-final > * { position: relative; z-index: 1; }
/* Hero para páginas internas: banner-paginas.jpg */
.hero--pages {
    background:
        linear-gradient(120deg, rgba(10,36,99,0.90), rgba(13,110,253,0.55) 55%, rgba(62,146,204,0.45)),
        url("../img/banner-paginas.jpg") center/cover no-repeat,
        linear-gradient(180deg, var(--c-bg-2) 0%, #fff 100%);
}
/* Hero trocar de contador: imagem específica ja-tenho-uma-empresa */
.hero--trocar {
    background:
        linear-gradient(120deg, rgba(10,36,99,0.88), rgba(13,110,253,0.48) 60%, rgba(62,146,204,0.36)),
        url("../img/trocar-contador.jpg") right center/cover no-repeat,
        linear-gradient(180deg, var(--c-bg-2) 0%, #fff 100%);
}
.text-primary{color:var(--c-primary)}.text-accent{color:var(--c-accent)}
.d-flex{display:flex}.flex-wrap{flex-wrap:wrap}
.flex-col{flex-direction:column}
.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-around{justify-content:space-around}
.align-center{align-items:center}
.grid{display:grid;gap:1.2rem}
.w-100{width:100%}.maxw-600{max-width:600px}.maxw-720{max-width:720px}.maxw-900{max-width:900px}
/* =========== BOTÕES =========== */
.btn {
    --bc: var(--c-primary);
    display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
    padding: 0.72rem 1.25rem;
    border-radius: var(--radius);
    font-weight: 600; font-size: 0.95rem;
    border: 2px solid var(--bc);
    cursor: pointer; transition: all var(--t);
    text-decoration: none;
    line-height: 1.1;
    user-select: none;
    font-family: var(--font-body);
}
.btn + .btn { margin-left: 0.5rem; }
.btn-primary   { --bc: var(--c-primary);   background: var(--c-primary);   color: #fff; box-shadow: 0 4px 0 #05133b; }
.btn-primary:hover { background: var(--c-primary-dark); --bc: var(--c-primary-dark); transform: translateY(-1px); box-shadow: 0 6px 0 #05133b; }
.btn-primary:active { transform: translateY(2px); box-shadow: 0 1px 0 #05133b; }
.btn-accent    { --bc: var(--c-accent); background: var(--c-accent); color:#fff; box-shadow: 0 4px 0 #9a1e2a; }
.btn-accent:hover { filter: brightness(1.06); transform: translateY(-1px); }
.btn-outline   { --bc: var(--c-primary); background: #fff; color: var(--c-primary); }
.btn-outline:hover { background: var(--c-primary); color: #fff; }
.btn-sm        { padding: 0.52rem 0.95rem; font-size: 0.86rem; }
.btn-lg        { padding: 0.95rem 1.6rem; font-size: 1.05rem; }
.btn-wa-mini {
    --bc: var(--c-whatsapp); background: var(--c-whatsapp); color: #fff; font-weight: 700;
    box-shadow: 0 3px 0 var(--c-whatsapp-dark);
}
.btn-wa-mini:hover { filter: brightness(1.05); --bc:#22c35c; transform: translateY(-1px); }

/* =========== TOPBAR =========== */
.topbar {
    background: #081c4e; /* primary-dark intenso */
    color: #cbd5e1;
    font-size: 0.83rem;
    padding: 0.5rem 0;
    box-shadow: 0 1px 0 rgba(255,255,255,0.05);
    border-bottom: 1px solid rgba(255,255,255,0.06);
}
.topbar a { color: #fff; }
.topbar__inner { display:flex; justify-content:space-between; align-items:center; }
.topbar__left span { white-space: nowrap; }
.topbar__right a { display: inline-flex; align-items: center; gap: 0.3rem; }
@media (max-width: 1600px) { .d-md-flex { display: none !important; } }

/* =========== HEADER =========== */
/* ===== WRAPPER HEADER + NAV (FLEX em DESKTOP) ===== */
.header-shell {
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 9998;
    width: 100%;
    background: rgba(255,255,255,0.98);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--c-border);
    transition: box-shadow var(--t), background-color var(--t);
    will-change: transform;
}
.header-shell.scrolled { box-shadow: var(--shadow-sm); }

.header {
    position: relative;
    z-index: 2;
    flex: 0 0 auto;
    width: auto;
    max-width: none !important;
    min-height: 0;
    box-sizing: border-box;
    overflow: visible;
    background: transparent;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    border-bottom: none;
    transition: none;
}
.header-shell > .nav {
    z-index: 1;
    flex: 1 1 auto;
    position: relative;
    display: flex;
    align-items: center;
}

/* Layout header__inner: LIVRE, sem .container para evitar max-width */
.header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.2rem;
    width: 100%;
    max-width: min(2560px, 100%) !important;         /* NUNCA limita em 1140px e NUNCA ultrapassa pai */
    margin: 0 auto;
    padding: 0.75rem 1.6rem;
    flex-wrap: nowrap;          /* Nunca quebra linha */
    overflow: visible;          /* Nunca corta botões */
    box-sizing: border-box;
    position: relative;
    min-height: 68px;
}
.brand {
    display: flex; align-items: center; gap: 0.8rem; text-decoration: none;
    flex-shrink: 0;             /* Logo + nome NUNCA encolhe */
    min-width: 0;
    z-index: 2;
    padding: 0.35rem 0.9rem 0.35rem 0.35rem;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(10,36,99,0.05), rgba(249,115,22,0.08));
    border: 1px solid rgba(10,36,99,0.08);
    box-shadow: 0 2px 12px rgba(10,36,99,0.06);
    transition:
        transform 260ms cubic-bezier(.34,1.56,.64,1),
        box-shadow 260ms ease,
        background-color 260ms ease,
        border-color 260ms ease;
    will-change: transform;
}
.brand:hover {
    transform: translateY(-2px) scale(1.01);
    box-shadow: 0 8px 28px rgba(10,36,99,0.14);
    border-color: rgba(249,115,22,0.28);
    background: linear-gradient(135deg, rgba(10,36,99,0.08), rgba(249,115,22,0.12));
}
.brand__logo-wrap {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: clamp(52px, 5.6vw, 66px);
    aspect-ratio: 1 / 1;
    border-radius: 14px;
    padding: 6px;
    background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-secondary) 60%, var(--c-accent) 100%);
    box-shadow:
        0 2px 0 rgba(10,36,99,0.15),
        0 6px 18px rgba(10,36,99,0.18),
        inset 0 1px 0 rgba(255,255,255,0.35);
    overflow: hidden;
    isolation: isolate;
}
.brand__logo-wrap::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(255,255,255,0.45), rgba(255,255,255,0) 45%);
    pointer-events: none;
    z-index: 2;
}
.brand__logo-wrap::after {
    content: '';
    position: absolute;
    inset: 0;
    border: 2px solid rgba(255,255,255,0.18);
    border-radius: inherit;
    pointer-events: none;
    z-index: 3;
}
.brand__logo {
    width: 100% !important;
    height: 100% !important;
    min-width: 0;
    object-fit: contain;
    background: #fff;
    border-radius: 10px;
    position: relative;
    z-index: 4;
    display: block;
}
.brand__name { display: flex; flex-direction: column; line-height: 1.05; }
.brand__name strong {
    color: var(--c-primary-dark);
    font-family: var(--font-title);
    font-size: 1.2rem;
    letter-spacing: -0.015em;
    font-weight: 800;
    text-shadow: 0 1px 0 rgba(255,255,255,0.6);
    background: linear-gradient(90deg, var(--c-primary-dark) 0%, var(--c-primary) 52%, var(--c-accent) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 0.5px 0 rgba(10,36,99,0.15));
}
.brand:hover .brand__name strong { filter: drop-shadow(0 1px 0 rgba(10,36,99,0.1)); }
.brand__name small {
    display: inline-block;
    margin-top: 0.25rem;
    padding: 0.15rem 0.55rem;
    border-radius: 999px;
    font-size: 0.68rem;
    font-weight: 600;
    color: var(--c-accent);
    background: rgba(249,115,22,0.1);
    border: 1px solid rgba(249,115,22,0.18);
    letter-spacing: 0.02em;
    white-space: nowrap;
}

/* =========== NAVEGAÇÃO =========== */
.nav {
    display:flex;
    align-items:center;
    gap: 1rem;
    justify-content: flex-end;
    flex: 1 1 auto;
    flex-wrap: nowrap;          /* Nunca quebra linha */
    min-width: 0;
    overflow: visible;          /* Defensivo */
    position: relative;
    z-index: 1;
}
.nav__list {
    display: flex;
    list-style: none;
    gap: 0.15rem;
    flex-wrap: nowrap;
    margin: 0; padding: 0;
    min-width: 0;
    flex: 1 1 0%;
    justify-content: flex-end;
}
.nav__item {
    position: relative;
    flex-shrink: 0;
    min-width: 0;
    isolation: isolate;
}
.nav__item.is-active > .nav__link {
    background: var(--c-bg-2);
    color: var(--c-primary);
    border-radius: var(--radius-sm);
}
.nav__item.is-active > .nav__link .nav__icon {
    color: var(--c-accent);
    transform: scale(1.06);
}
.nav__link {
    position: relative;
    display: inline-flex; align-items: center; gap: 0.35rem;
    padding: 0.5rem 0.75rem;
    color: var(--c-dark);
    font-weight: 500; font-size: 0.92rem;
    border-radius: var(--radius-sm);
    transition:
        color 220ms cubic-bezier(.4,0,.2,1),
        background-color 220ms cubic-bezier(.4,0,.2,1),
        transform 260ms cubic-bezier(.34,1.56,.64,1),
        box-shadow 260ms ease,
        letter-spacing 260ms ease;
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 0;
    overflow: hidden;
    isolation: isolate;
    will-change: transform;
}
.nav__link::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: -1;
    background: linear-gradient(135deg, var(--c-bg-2) 0%, #ffffff 100%);
    opacity: 0;
    transform: translateX(-10%);
    transition: opacity 260ms ease, transform 320ms cubic-bezier(.4,0,.2,1);
    border-radius: inherit;
}
.nav__link::after {
    content: '';
    position: absolute;
    left: 12px; right: 12px; bottom: 4px;
    height: 2.5px;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--c-primary) 0%, var(--c-accent) 100%);
    transform: scaleX(0) translateX(-14%);
    transform-origin: left center;
    transition: transform 320ms cubic-bezier(.34,1.56,.64,1);
    box-shadow: 0 0 0 1px rgba(10,36,99,0.04);
}
.nav__link:hover {
    color: var(--c-primary);
    transform: translateY(-1.5px);
    letter-spacing: 0.008em;
    box-shadow:
        0 6px 18px -4px rgba(10,36,99,0.15),
        0 2px 0 0 rgba(10,36,99,0.04);
}
.nav__link:hover::before { opacity: 1; transform: translateX(0); }
.nav__link:hover::after  { transform: scaleX(1) translateX(0); }
.nav__link:hover .nav__icon {
    transform: translateY(-1px) rotate(-4deg) scale(1.08);
    color: var(--c-accent);
    filter: drop-shadow(0 3px 3px rgba(230,57,70,0.22));
}
.nav__link:active { transform: translateY(0.5px) scale(0.985); }

/* Active state underline permanente */
.nav__item.is-active > .nav__link::after { transform: scaleX(1) translateX(0); }

.nav__icon {
    font-size: 1rem;
    flex-shrink: 0;
    transition:
        transform 260ms cubic-bezier(.34,1.56,.64,1),
        color 220ms ease,
        filter 260ms ease;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}
.nav__label {
    white-space: nowrap;
    flex-shrink: 0;
    position: relative;
}

/* CTAs Nav Actions: animações premium sem quebrar */
.nav__actions {
    display: flex;
    gap: 0.6rem;
    flex-wrap: nowrap;
    align-items: center;
    flex-shrink: 0;         /* CTAs NUNCA encolhem — garantem visibilidade total */
    margin-left: 0.5rem;
    position: relative;
    z-index: 3;             /* CTAs SEMPRE na frente, nunca cobertos */
}
.nav__actions .btn {
    white-space: nowrap;
    flex-shrink: 0;
    overflow: visible;
    text-overflow: clip;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1.25;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    transition:
        transform 260ms cubic-bezier(.34,1.56,.64,1),
        box-shadow 260ms ease,
        background-color 220ms ease,
        color 220ms ease,
        border-color 220ms ease;
}
.nav__actions .btn::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(120deg, transparent 20%, rgba(255,255,255,0.32) 50%, transparent 80%);
    transform: translateX(-120%);
    transition: transform 620ms cubic-bezier(.4,0,.2,1);
    z-index: -1;
    pointer-events: none;
}
.nav__actions .btn:hover { transform: translateY(-2px); }
.nav__actions .btn:hover::before { transform: translateX(120%); }
.nav__actions .btn-primary:hover {
    box-shadow:
        0 10px 24px -6px rgba(10,36,99,0.45),
        0 6px 0 #05133b;
}
.nav__actions .btn-outline:hover {
    box-shadow: 0 10px 24px -8px rgba(10,36,99,0.30);
}
.nav__actions .btn:active {
    transform: translateY(1px) scale(0.985);
}

.nav-toggle {
    display: none;
    background: var(--c-primary);
    border: none; width: 46px; height: 46px; border-radius: var(--radius-sm);
    padding: 9px; cursor: pointer; position: relative; z-index: 10000;
    flex-shrink: 0;
    box-shadow: var(--shadow-sm);
}
.nav-toggle span {
    display: block; width: 100%; height: 3px; background: #fff; margin: 5px auto;
    border-radius: 3px; transition: all var(--t);
}
.nav-toggle.is-open span:nth-child(1){ transform: translateY(8px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity: 0; }
.nav-toggle.is-open span:nth-child(3){ transform: translateY(-8px) rotate(-45deg); }

/* =================================================================
   BASE DESKTOP (≥ 1401px): Esconde hambúrguer e garante menu inline
   ================================================================= */
@media (min-width: 1401px) {
    .nav-toggle { display: none !important; }  /* esconde hambúrguer */
    .header-shell {
        display: flex !important;
        flex-direction: row;
        align-items: stretch;
        justify-content: flex-start;
    }
    .header-shell > .header {
        flex: 0 0 auto;
        width: auto;
    }
    .header-shell > .nav {
        flex: 1 1 auto;
        position: relative !important;
        top: auto !important;
        right: auto !important;
        left: auto !important;
        bottom: auto !important;
        height: auto !important;
        max-height: none !important;
        width: auto !important;
        max-width: none !important;
        display: flex !important;
        flex-direction: row;
        background: transparent !important;
        box-shadow: none !important;
        padding: 0 !important;
        transform: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        overflow: visible !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    .header-shell > .nav .nav__brand { display: none !important; }
    .header-shell > .nav .nav__list {
        flex-direction: row !important;
        justify-content: flex-end !important;
        flex: 1 1 0% !important;
    }
    .header-shell > .nav .nav__item { border-bottom: none !important; }
    .header-shell > .nav .nav__actions {
        flex-direction: row !important;
        border-top: none !important;
        padding-top: 0 !important;
    }
    .header-shell > .nav .nav__actions .btn { width: auto !important; }
    body.nav-open::after { display: none !important; }
    body.nav-open { overflow: auto !important; touch-action: auto !important; }
}

/* =================================================================
   NÍVEL 1 — ULTRA LARGO (≥ 1601px): Menu desktop COMPLETO
   (Telas 4K, WQHD, ou Full HD sem DPI scaling)
   ================================================================= */
@media (min-width: 1601px) {
    .header__inner { padding: 0.55rem 2.4rem 0.55rem 1.6rem; gap: 1.4rem; }
    .brand { gap: 0.8rem; padding: 0.4rem 1rem 0.4rem 0.4rem; border-radius: 18px; }
    .brand__logo-wrap { width: clamp(58px, 5.8vw, 70px); padding: 7px; border-radius: 15px; }
    .brand__name strong { font-size: 1.28rem; }
    .brand__name small { display: block; font-size: 0.7rem; }
    .nav { gap: 1.1rem; padding-right: 1.8rem; }
    .nav__list { gap: 0.25rem; }
    .nav__link { padding: 0.55rem 0.85rem; font-size: 0.95rem; gap: 0.4rem; }
    .nav__icon { font-size: 1.05rem; display: inline-flex !important; }
    .nav__actions { gap: 0.7rem; }
    .nav__actions .btn { padding: 0.6rem 1rem; font-size: 0.9rem; }
}

/* =================================================================
   NÍVEL 2 — LARGO (1401px–1600px): Menu desktop ULTRA-COMPACTO
   (Full HD 1920x1080 com zoom 125% = 1536px cai aqui)
   ================================================================= */
@media (min-width: 1401px) and (max-width: 1600px) {
    .header__inner { padding: 0.45rem 1.2rem 0.45rem 0.8rem; gap: 0.7rem; }
    .brand { gap: 0.5rem; padding: 0.25rem 0.6rem 0.25rem 0.25rem; border-radius: 13px; }
    .brand__logo-wrap { width: 44px; padding: 4px; border-radius: 11px; }
    .brand__name strong { font-size: 1rem; }
    .brand__name small { display: none; }       /* ganha ~100px */
    .nav { gap: 0.4rem; padding-right: 0.9rem; }
    .nav__list { gap: 0; }
    .nav__icon { display: none !important; }     /* ganha ~150px */
    .nav__link { padding: 0.42rem 0.5rem; font-size: 0.84rem; gap: 0; }
    .nav__actions { gap: 0.35rem; margin-left: 0.15rem; }
    .nav__actions .btn {
        padding: 0.42rem 0.68rem;
        font-size: 0.82rem;
        font-weight: 600;
    }
    .nav__actions .btn::before { display: none !important; }
}

/* =================================================================
   NÍVEL 3 — ≤ 1400px: HAMBÚRGUER OFF-CANVAS
   (Cobre todos notebooks HD/FHD com zoom 125%+, tablets e celulares)
   ABSOLUTAMENTE NENHUM item desktop transborda aqui!
   z-index SUPERIOR a QUALQUER imagem/section abaixo (hero, utilitários etc)
   ================================================================= */
@media (max-width: 1400px) {
    .header-shell {
        display: block !important;
        flex-direction: row !important;
        max-width: 100vw !important;
        width: 100% !important;
        overflow-x: clip !important;
        overflow-y: visible !important;
        z-index: 2147483647 !important;
        isolation: isolate !important;
        will-change: auto !important;
        transform: none !important;
        translate: none !important;
        filter: none !important;
        perspective: none !important;
    }
    .header { z-index: 2147483640 !important; max-width: 100% !important; width: 100% !important; overflow-x: clip; }
    .header, .header__inner, .header-shell, main, section, .hero, .footer, .container, .row, footer {
        max-width: 100vw !important;
        width: 100% !important;
    }
    *, *::before, *::after { max-width: 100vw !important; }
    img, svg, video { max-width: 100% !important; height: auto !important; }
    .header__inner { padding: 0.65rem 1.1rem; gap: 0.8rem; min-height: 62px; position: relative; z-index: 2147483641 !important; }
    .brand { gap: 0.55rem; padding: 0.25rem 0.55rem 0.25rem 0.25rem; border-radius: 13px; }
    .brand__logo-wrap { width: 46px; padding: 4px; border-radius: 10px; }
    .brand__name strong { font-size: 1.05rem; }
    .brand__name small { display: block; font-size: 0.62rem; padding: 0.1rem 0.42rem; margin-top: 0.18rem; }
    .nav-toggle {
        display: block !important;   /* HARD FORCE: cache-safe */
        position: relative;
        z-index: 2147483642 !important;
    }
    .nav {
        position: fixed;
        top: 0;
        right: 0;
        left: auto;
        bottom: 0;
        width: min(88vw, 380px);
        max-width: 380px;
        height: 100dvh;
        max-height: 100dvh;
        background: #fff;
        box-shadow: -30px 0 70px rgba(0,0,0,0.22);
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start !important;
        gap: 0;
        padding: 5.5rem 1.5rem 2rem;
        transform: translateX(100%) translateZ(0);
        -webkit-transform: translateX(100%) translateZ(0);
        transform-origin: right center;
        visibility: hidden;
        opacity: 0;
        pointer-events: none;
        transition:
            transform 380ms cubic-bezier(.4,0,.2,1),
            -webkit-transform 380ms cubic-bezier(.4,0,.2,1),
            opacity 220ms ease,
            visibility 0s linear 380ms;
        will-change: transform, opacity, visibility;
        z-index: 2147483647 !important;
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        -webkit-tap-highlight-color: transparent;
    }
    .nav.is-open {
        transform: translateX(0) translateZ(0);
        -webkit-transform: translateX(0) translateZ(0);
        visibility: visible;
        opacity: 1;
        pointer-events: auto;
        transition:
            transform 380ms cubic-bezier(.4,0,.2,1),
            -webkit-transform 380ms cubic-bezier(.4,0,.2,1),
            opacity 220ms ease,
            visibility 0s linear 0s;
    }
    /* overlay backdrop escuro quando menu está aberto */
    body.nav-open::after {
        content: '';
        position: fixed; inset: 0;
        background: radial-gradient(circle at 100% 0%, rgba(10,36,99,0.28) 0%, rgba(10,36,99,0.55) 100%);
        backdrop-filter: blur(3px);
        -webkit-backdrop-filter: blur(3px);
        z-index: 2147483645 !important;
        animation: fadeInBackdrop 260ms ease both;
    }
    @keyframes fadeInBackdrop {
        from { opacity: 0; } to { opacity: 1; }
    }
    .nav__list {
        flex-direction: column !important;
        gap: 0.25rem !important;
        justify-content: flex-start !important;
        flex: 0 0 auto !important;
        margin-bottom: 1.2rem;
    }
    .nav__item { border-bottom: 1px solid var(--c-border); }
    .nav__link {
        justify-content: flex-start;
        padding: 0.95rem 0.5rem;
        font-size: 1rem;
        gap: 0.7rem;
    }
    .nav__link::after { left: 14px; right: 14px; bottom: 8px; }
    .nav__icon { display: inline-flex !important; font-size: 1.1rem; }
    .nav__label { font-size: 1rem; }
    .nav__actions {
        flex-direction: column;
        gap: 0.7rem;
        margin-left: 0;
        padding-top: 1.2rem;
        border-top: 1px solid var(--c-border);
    }
    .nav__actions .btn {
        justify-content: center;
        width: 100%;
        padding: 0.85rem 1rem;
        font-size: 0.95rem;
    }
}

/* Níveis mobile finos (apenas pequenos ajustes, hambúrguer já ativo) */
@media (max-width: 768px) {
    .header__inner { padding: 0.6rem 0.9rem; min-height: 58px; }
    .brand { padding: 0.22rem 0.5rem 0.22rem 0.22rem; border-radius: 12px; gap: 0.45rem; }
    .brand__logo-wrap { width: 44px; padding: 4px; border-radius: 10px; }
    .brand__name small { display: none; }
    .nav-toggle { width: 42px; height: 42px; padding: 7px; }
    .nav { padding-top: 4.8rem; }
}
@media (max-width: 480px) {
    .header__inner { padding: 0.55rem 0.75rem; }
    .brand__name strong { font-size: 0.98rem; }
    .brand__logo-wrap { width: 40px; padding: 3px; border-radius: 9px; }
    .nav { width: min(92vw, 340px); }
    /* =========================================================
       HERO MOBILE — HARD LOCK CONTRA CORTE (padding lateral + max-width em TUDO)
       ========================================================= */
    .hero {
        padding-top: 5.8rem !important;
        padding-bottom: 1.6rem !important;
        padding-left: 0.7rem !important;
        padding-right: 0.7rem !important;
        box-sizing: border-box !important;
    }
    .hero > .container,
    .hero .container {
        max-width: 100% !important;
        width: 100% !important;
        padding-left: 0.55rem !important;
        padding-right: 0.55rem !important;
        box-sizing: border-box !important;
    }
    .hero__grid {
        grid-template-columns: 1fr !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        gap: 1rem !important;
        box-sizing: border-box !important;
    }
    .hero__grid > * {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    .hero__brand-wrap { max-width: 100% !important; width: 100% !important; margin-bottom: 1rem !important; gap: 0.7rem !important; }
    .hero__brand-link { max-width: 100% !important; width: 100% !important; }
    .hero__brand-logo {
        max-width: min(260px, 72vw) !important;
        width: 100% !important;
        height: auto !important;
        max-height: 70px !important;
        object-fit: contain !important;
        box-sizing: border-box !important;
    }
    .hero__brand-tagline {
        white-space: normal !important;
        flex-wrap: wrap !important;
        overflow: visible !important;
        padding: 0.5rem 0.7rem !important;
        font-size: 0.74rem !important;
        gap: 0.45rem !important;
        line-height: 1.4 !important;
        max-width: 100% !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .hero__brand-tagline > span:nth-child(2) {
        max-width: 100% !important;
        white-space: normal !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }
    .hero__brand-divider { display: none !important; }

    /* Headline e texto: garantia de não transbordar */
    .hero .hero__headline,
    .hero h1, .hero h2, .hero h3 {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        hyphens: auto;
        font-size: clamp(1.45rem, 6.1vw, 1.9rem) !important;
        line-height: 1.14 !important;
        margin-bottom: 0.6rem !important;
    }
    .hero .hero__headline .accent { padding: 0 0.05em; }
    .hero .lead, .hero p {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
        font-size: 0.9rem !important;
        line-height: 1.45 !important;
        margin-bottom: 0.9rem !important;
    }
    .hero__badge {
        font-size: 0.74rem !important;
        padding: 0.3rem 0.65rem !important;
        margin-bottom: 0.75rem !important;
        max-width: 100% !important;
        width: auto !important;
        box-sizing: border-box !important;
        white-space: normal !important;
        text-align: center !important;
    }
    /* Logo CMS grande (hero__img .big) */
    .hero__img {
        padding: 1rem !important;
        aspect-ratio: 16/9 !important;
        border-radius: 14px !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
    }
    .hero__img .big {
        font-size: clamp(2.1rem, 13vw, 3.2rem) !important;
        letter-spacing: -0.03em !important;
        line-height: 0.92 !important;
        margin-bottom: 0.4rem !important;
        max-width: 100% !important;
        width: 100% !important;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
    }
    .hero__img .sub {
        font-size: 0.9rem;
        max-width: 22ch;
        overflow-wrap: anywhere !important;
        word-break: break-word !important;
    }
    /* CTAs: 100% width, sem transbordar */
    .hero__ctas {
        margin-top: 0.85rem !important;
        gap: 0.5rem !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    .hero__ctas .btn {
        padding: 0.72rem 1rem !important;
        font-size: 0.92rem !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        box-sizing: border-box !important;
        justify-content: center !important;
    }
}
@media (max-width: 380px) {
    /* Celulares MUITO pequenos (ex: iPhone SE 1ª geração 320×568): encolher TUDO */
    .hero {
        padding-top: 5.2rem !important;
        padding-bottom: 1.2rem !important;
        padding-left: 0.55rem !important;
        padding-right: 0.55rem !important;
    }
    .hero > .container,
    .hero .container {
        padding-left: 0.4rem !important;
        padding-right: 0.4rem !important;
    }
    .hero__grid { gap: 0.85rem !important; }
    .hero__brand-logo { max-width: min(220px, 68vw) !important; max-height: 64px !important; }
    .hero__brand-tagline { font-size: 0.7rem !important; padding: 0.42rem 0.55rem !important; }
    .hero .hero__headline,
    .hero h1, .hero h2, .hero h3 {
        font-size: clamp(1.3rem, 6vw, 1.7rem) !important;
    }
    .hero .lead, .hero p { font-size: 0.84rem !important; }
    .hero__img {
        padding: 0.85rem !important;
        aspect-ratio: 5/3 !important;
        border-radius: 12px !important;
    }
    .hero__img .big { font-size: clamp(1.9rem, 13vw, 2.7rem) !important; }
    .hero__img .sub { font-size: 0.82rem; max-width: 20ch; }
    .hero__ctas .btn { padding: 0.65rem 0.85rem !important; font-size: 0.88rem !important; }
    .header__inner { min-height: 54px; padding: 0.45rem 0.6rem !important; }
    .brand__logo-wrap { width: 36px !important; }
    .brand__name strong { font-size: 0.9rem !important; }
}
body.nav-open { overflow: hidden; touch-action: none; }

/* =========== HERO =========== */
.hero {
    position: relative;
    background:
        linear-gradient(120deg, rgba(10,36,99,0.88), rgba(13,110,253,0.52) 55%, rgba(62,146,204,0.42)),
        url("../img/banner-hero.jpg") center/cover no-repeat,
        radial-gradient(1200px 400px at 90% -10%, rgba(62,146,204,0.22), transparent 60%),
        radial-gradient(800px 400px at 0% 110%, rgba(230,57,70,0.15), transparent 60%),
        linear-gradient(180deg, var(--c-bg-2) 0%, #fff 100%);
    color: #fff;
    padding: clamp(3rem, 7vw, 6rem) 0 clamp(2.5rem, 6vw, 4.5rem);
    overflow: hidden;
}
.hero h1, .hero h2, .hero h3, .hero .lead, .hero p { color: #fff !important; }
.hero .lead, .hero p { color: rgba(255,255,255,0.92) !important; }
.hero h1 .accent { background: linear-gradient(135deg, #fff, #cfe1ff); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.hero::before {
    content: ''; position: absolute; inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><path d='M0 0h40v40H0z M40 40h40v40H40z' fill='%230A2463' fill-opacity='0.03'/></svg>");
    pointer-events: none;
}
.hero__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 2.5rem; align-items: center; position: relative; z-index: 1; }
.hero__badge {
    display: inline-flex; align-items: center; gap: 0.4rem;
    background: #fff; color: var(--c-primary); padding: 0.4rem 0.9rem; border-radius: 999px;
    box-shadow: var(--shadow-sm); border: 1px solid var(--c-border);
    font-size: 0.85rem; font-weight: 600; margin-bottom: 1.2rem;
}
.hero__badge span.accent { color: var(--c-accent); }
.hero h1 { font-size: clamp(1.8rem, 4.5vw, 3.2rem); letter-spacing: -0.02em; margin-bottom: 1rem; }
.hero h1 .accent {
    background: linear-gradient(135deg, var(--c-primary), var(--c-secondary));
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
}
.hero .lead { font-size: clamp(0.98rem, 1.6vw, 1.15rem); color: #475569; max-width: 52ch; margin-bottom: 1.8rem; }
.hero__ctas { display: flex; gap: 0.8rem; flex-wrap: wrap; }
.hero__stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 0.8rem; margin-top: 2rem; }
.hero__stat { background: #fff; padding: 0.9rem; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); border: 1px solid var(--c-border); }
.hero__stat strong { display: block; font-size: clamp(1.1rem, 2vw, 1.5rem); color: var(--c-primary); font-family: var(--font-title); }
.hero__stat small { color: var(--c-muted); font-size: 0.8rem; }
.hero__img {
    position: relative; border-radius: var(--radius-lg);
    aspect-ratio: 4 / 3;
    background:
        linear-gradient(135deg, rgba(10,36,99,0.72) 0%, rgba(62,146,204,0.55) 100%),
        url("../img/hero-ilustracao.jpg") center/cover no-repeat;
    display: flex; align-items: center; justify-content: center;
    color: #fff; padding: 2rem; text-align: center;
    box-shadow: var(--shadow-lg);
}
.hero__img--plain {
    background: linear-gradient(135deg, #0A2463 0%, #3E92CC 100%);
}
.hero__img .big {
    font-family: var(--font-title); font-weight: 800; font-size: clamp(3rem, 10vw, 6rem);
    letter-spacing: -0.05em; line-height: 0.9; margin-bottom: 1rem; opacity: 0.98;
}
.hero__img .sub { font-size: 1.1rem; opacity: 0.92; max-width: 28ch; margin: 0 auto; }
.hero__img::before, .hero__img::after {
    content: ''; position: absolute; width: 80px; height: 80px; border-radius: 50%;
    background: rgba(255,255,255,0.12);
    overflow: hidden; clip-path: inset(0 0 0 0 round var(--radius-lg));
}
.hero__img::before { top: -20px; right: -20px; width: 140px; height: 140px; }
.hero__img::after  { bottom: -30px; left: -25px; width: 120px; height: 120px; }

@media (max-width: 860px) {
    .hero__grid { grid-template-columns: 1fr; }
    .hero__img { order: -1; aspect-ratio: 16 / 9; max-width: 560px; margin: 0 auto; }
    .hero__stats { grid-template-columns: repeat(3, 1fr); }
}
.hero--erro { min-height: 60vh; display: flex; align-items: center; background: linear-gradient(135deg, var(--c-primary-dark) 0%, var(--c-primary) 55%, var(--c-secondary) 100%); }

/* =========== SECTION: DIFERENCIAIS / CARDS =========== */
.section-title { text-align: center; margin-bottom: 2.5rem; }
.section-title span.eyebrow { display:inline-block; font-size:.82rem; color:var(--c-secondary); font-weight:700; text-transform:uppercase; letter-spacing:.06em; margin-bottom:.5rem;}
.section-title h2 { max-width: 30ch; margin: 0 auto 0.8rem; }
.section-title p  { max-width: 60ch; margin: 0 auto; color: var(--c-muted); }

.cards { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.card {
    background: #fff; border-radius: var(--radius-lg); padding: 1.5rem;
    border: 1px solid var(--c-border); box-shadow: var(--shadow-sm);
    transition: all var(--t-med); position: relative; overflow: hidden;
}
.card::before {
    content: ''; position: absolute; top: 0; left: 0; width: 4px; height: 0;
    background: linear-gradient(180deg, var(--c-primary), var(--c-accent));
    transition: height var(--t-med); border-radius: 4px 0 0 4px;
}
.card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: rgba(13,110,253,0.35); background-color: #fff; }
.card:hover::before { height: 100%; }
.card__icon {
    width: 54px; height: 54px; border-radius: 14px;
    display: inline-flex; align-items: center; justify-content: center;
    background: var(--c-bg-2); color: var(--c-primary); font-size: 1.6rem;
    margin-bottom: 1rem;
}
.card__icon svg { width: 28px; height: 28px; display: block; }
.card h3 { margin-bottom: 0.6rem; font-size: 1.15rem; }
.card p  { color: #475569; font-size: 0.94rem; margin-bottom: 0; }

/* =========== COMO FUNCIONA / PASSOS =========== */
.steps { display: grid; gap: 1.2rem; grid-template-columns: repeat(auto-fit, minmax(210px,1fr)); counter-reset: steps; }
.step {
    background: #fff; border-radius: var(--radius); padding: 1.6rem 1.3rem 1.3rem;
    border: 1px solid var(--c-border); text-align: center; position: relative;
    counter-increment: steps;
    transition: all var(--t);
}
.step:hover { transform: translateY(-3px); box-shadow: var(--shadow); }
.step::before {
    content: counter(steps, decimal-leading-zero);
    width: 44px; height: 44px; border-radius: 50%;
    background: linear-gradient(135deg, var(--c-primary), var(--c-secondary));
    color: #fff; font-family: var(--font-title); font-weight: 800;
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 0.8rem; box-shadow: 0 4px 12px rgba(10,36,99,0.3);
}
.step h4 { margin-bottom: 0.4rem; color: var(--c-primary-dark); }
.step p { color: #475569; margin: 0; font-size: 0.9rem; }

/* =========== SERVIÇOS =========== */
.services-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.service-card {
    background: #fff; border-radius: var(--radius-lg); padding: 2rem 1.5rem 1.5rem;
    border: 1px solid var(--c-border); position: relative; transition: all var(--t-med);
    display: flex; flex-direction: column; gap: 0.8rem;
}
.service-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: rgba(13,110,253,0.35); }
.service-card h3 { color: var(--c-primary-dark); font-size: 1.25rem; }
.service-card p { flex: 1; color: #475569; }
.service-card__cta { align-self: flex-start; color: var(--c-secondary); font-weight: 700; text-transform: uppercase; font-size: 0.82rem; letter-spacing: 0.04em; }
.service-card__cta::after { content: ' →'; display: inline-block; transition: transform var(--t-fast); }
.service-card:hover .service-card__cta::after { transform: translateX(4px); }
.service-card__icon {
    font-size: 2.6rem; position: absolute; right: 1.5rem; top: 1.5rem;
    opacity: 0.08; display: inline-flex; align-items: center; justify-content: center;
}
.service-card__icon svg { width: 44px; height: 44px; display: block; }

/* =========== UTILITÁRIOS (CHIPS + CARDS) =========== */
.utils-chips {
    display: flex; gap: 0.7rem; flex-wrap: wrap; margin: 1.8rem 0 0.5rem;
    justify-content: center;
    position: relative; z-index: 1;
}
.chip {
    display: inline-flex; align-items: center; gap: 0.45rem;
    padding: 0.72rem 1.15rem; border-radius: 999px;
    background: rgba(255,255,255,0.92);
    border: 1.5px solid rgba(10,36,99,0.10);
    color: var(--c-primary-dark);
    font-weight: 600; font-size: 0.88rem;
    transition:
        transform 280ms cubic-bezier(.34,1.56,.64,1),
        background-color 240ms ease,
        border-color 240ms ease,
        color 240ms ease,
        box-shadow 280ms ease;
    box-shadow:
        0 2px 0 rgba(10,36,99,0.05),
        0 4px 14px -6px rgba(10,36,99,0.12);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
}
.chip::before {
    content: '';
    position: absolute; inset: 0;
    z-index: -1;
    background: linear-gradient(135deg, rgba(10,36,99,0.05) 0%, rgba(62,146,204,0.08) 100%);
    opacity: 0;
    transition: opacity 240ms ease;
}
.chip::after {
    content: '';
    position: absolute;
    left: -50%; top: 0; width: 50%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.6), transparent);
    transform: skewX(-18deg);
    transition: left 520ms cubic-bezier(.4,0,.2,1);
    z-index: -1;
}
.chip:hover {
    background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-light) 100%);
    color: #fff;
    border-color: var(--c-primary);
    transform: translateY(-3px) scale(1.02);
    box-shadow:
        0 6px 0 rgba(5,19,59,0.35),
        0 14px 28px -8px rgba(10,36,99,0.45);
}
.chip:hover::before { opacity: 1; }
.chip:hover::after { left: 150%; }
.chip.active {
    background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-primary-light) 100%);
    color: #fff;
    border-color: var(--c-primary);
    box-shadow: 0 4px 0 rgba(5,19,59,0.35), 0 10px 20px -8px rgba(10,36,99,0.4);
}
.chip.active:hover { transform: translateY(-1px) scale(1.01); }

/* =========== FAQ / DETALHES =========== */
.faq { max-width: 860px; margin: 0 auto; display: flex; flex-direction: column; gap: 0.8rem; }
details {
    background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius);
    padding: 0; overflow: hidden;
    transition: all var(--t);
}
details[open] { box-shadow: var(--shadow); border-color: var(--c-primary-light); }
summary {
    list-style: none; padding: 1.1rem 1.4rem; cursor: pointer;
    display: flex; justify-content: space-between; align-items: center; gap: 1rem;
    font-weight: 700; color: var(--c-primary-dark); font-family: var(--font-title);
    user-select: none;
}
summary::-webkit-details-marker { display: none; }
summary::after { content: '+'; font-size: 1.6rem; font-weight: 300; color: var(--c-muted); transition: transform var(--t-fast); }
details[open] summary::after { transform: rotate(45deg); color: var(--c-primary); }
details > div { padding: 0 1.4rem 1.2rem; color: #475569; line-height: 1.7; border-top: 1px solid var(--c-border); padding-top: 1rem; }
details ul { list-style: disc; margin-left: 1.2rem; padding: 0; }
details li { padding: 0.25rem 0; }

/* =========== NOTÍCIAS =========== */
.news-grid { display: grid; gap: 1.5rem; grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 768px) { .news-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 992px) { .news-grid { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (min-width: 1200px) { .news-grid { grid-template-columns: repeat(4, minmax(0,1fr)); } }
.news-card {
    background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius-lg);
    overflow: hidden; transition: all var(--t-med); display: flex; flex-direction: column;
}
.news-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-lg); border-color: rgba(13,110,253,0.28); }
.news-card__img {
    aspect-ratio: 16/9;
    background: linear-gradient(135deg, var(--c-primary), #0d6efd);
    display: flex; align-items: center; justify-content: center; color: #fff;
    font-size: 2.8rem;
    position: relative;
    overflow: hidden;
}
.news-card__img::after {
    content: ''; position: absolute; inset: 0;
    background:
        radial-gradient(300px 160px at 10% 0%, rgba(255,255,255,0.18), transparent 60%),
        radial-gradient(220px 140px at 110% 120%, rgba(230,57,70,0.25), transparent 60%);
    pointer-events: none;
}
.news-card__body { padding: 1.2rem 1.3rem 1.3rem; display: flex; flex-direction: column; gap: 0.55rem; flex: 1; }
.news-card__meta { display: flex; gap: 0.55rem; align-items: center; font-size: 0.76rem; color: var(--c-muted); flex-wrap: wrap; margin-bottom: 0.15rem; }
.news-card__meta .tag { background: var(--c-primary-50); color: var(--c-primary); padding: 0.2rem 0.6rem; border-radius: 999px; font-weight: 700; letter-spacing: 0.02em; border: 1px solid var(--c-primary-100); }
.news-card h3 { font-size: 1.05rem; line-height: 1.35; color: var(--c-primary-dark); }
.news-card__body p { color: #475569; flex: 1; margin-bottom: 0; font-size: 0.9rem; line-height: 1.6; }
.news-card__cta {
    color: var(--c-primary); font-weight: 700; font-size: 0.86rem;
    display: inline-flex; align-items: center; gap: 0.35rem; margin-top: 0.2rem;
    transition: gap var(--t-fast), color var(--t-fast);
}
.news-card__cta::after { content: '→'; transition: transform var(--t-fast); }
.news-card:hover .news-card__cta { gap: 0.55rem; color: var(--c-accent); }
.news-card:hover .news-card__cta::after { transform: translateX(3px); }

.pagination { display: flex; justify-content: center; align-items: center; gap: 0.4rem; margin-top: 2rem; flex-wrap: wrap; }
.pagination a, .pagination span {
    min-width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center;
    border-radius: var(--radius-sm); border: 1px solid var(--c-border); background: #fff; padding: 0 0.8rem;
    color: var(--c-primary-dark); font-weight: 600; font-size: 0.9rem;
    transition: all var(--t-fast);
}
.pagination a:hover { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }
.pagination .current { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }

.busca-form { display: flex; gap: 0.5rem; max-width: 560px; margin: 0 auto 1.5rem; }
.busca-form input {
    flex: 1; padding: 0.75rem 1rem; border-radius: var(--radius);
    border: 1px solid var(--c-border); font-size: 0.95rem; font-family: inherit;
}
.busca-form input:focus { outline: none; border-color: var(--c-primary); box-shadow: 0 0 0 3px rgba(10,36,99,0.15); }

/* =========== TABELAS PRÁTICAS / CERTIDÕES (AGRUPADORES) =========== */
.collapse { border: 1px solid var(--c-border); border-radius: var(--radius); margin-bottom: 0.8rem; background: #fff; overflow: hidden; }
.collapse > button {
    width: 100%; border: none; background: transparent; text-align: left;
    padding: 1rem 1.2rem; font-family: var(--font-title); font-weight: 700;
    color: var(--c-primary-dark); cursor: pointer; display: flex; justify-content: space-between; align-items: center;
}
.collapse > button::after { content: '▼'; font-size: 0.75rem; color: var(--c-muted); transition: transform var(--t-fast); }
.collapse.is-open > button::after { transform: rotate(180deg); }
.collapse__body { display: none; padding: 0 1.2rem 1.2rem; border-top: 1px solid var(--c-border); }
.collapse.is-open .collapse__body { display: block; }
.collapse ul { columns: 1; column-gap: 1rem; }
.collapse li { padding: 0.3rem 0; break-inside: avoid; }
.collapse a { color: #334155; }
.collapse a:hover { color: var(--c-primary); }
@media (min-width: 720px) { .collapse ul { columns: 2; } }
@media (min-width: 1100px){ .collapse ul { columns: 3; } }

/* =========== COLLAPSIBLE: wrapper p/ elementos <details> nativos =========== */
.collapsible { border: 1px solid var(--c-border); border-radius: var(--radius); margin-bottom: 0.8rem; background: #fff; overflow: hidden; }
.collapsible > details > summary {
    padding: 0.9rem 1.2rem; cursor: pointer; list-style: none; font-weight: 700; color: var(--c-primary-dark);
    font-family: var(--font-title); display: flex; justify-content: space-between; align-items: center;
    transition: background var(--t-fast); font-size: 0.98rem;
}
.collapsible > details > summary::-webkit-details-marker { display: none; }
.collapsible > details > summary::after { content: '▼'; font-size: 0.75rem; color: var(--c-muted); transition: transform var(--t-fast); }
.collapsible > details[open] > summary::after { transform: rotate(180deg); }
.collapsible > details > summary:hover { background: var(--c-bg-2); }
.collapsible > details > :not(summary) { padding: 0 1.2rem 1.2rem; border-top: 1px solid var(--c-border); }

/* =========== FORMULÁRIO DE CONTATO =========== */
.form-grid { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.form-grid.two { grid-template-columns: repeat(2, 1fr); }
@media (max-width: 640px) { .form-grid.two { grid-template-columns: 1fr; } }
.form-group { display: flex; flex-direction: column; gap: 0.4rem; }
.form-group label { font-weight: 600; font-size: 0.88rem; color: var(--c-dark); }
.form-group input, .form-group textarea, .form-group select {
    padding: 0.78rem 1rem;
    border: 1.5px solid var(--c-border);
    border-radius: var(--radius);
    font-family: inherit; font-size: 0.96rem; color: var(--c-body);
    background: #fff; transition: all var(--t-fast);
    width: 100%;
}
.form-group input:focus, .form-group textarea:focus, .form-group select:focus {
    outline: none; border-color: var(--c-primary);
    box-shadow: 0 0 0 3px rgba(10,36,99,0.15);
    background: #fff;
}
.form-group textarea { resize: vertical; min-height: 120px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 2rem; align-items: start; }
@media (max-width: 860px) { .contact-grid { grid-template-columns: 1fr; } }
.contact-info {
    background: linear-gradient(160deg, var(--c-primary), var(--c-primary-light));
    color: #fff; padding: 2rem; border-radius: var(--radius);
}
.contact-info h3 { color: #fff; margin-bottom: 0.8rem; }
.contact-info ul li { display: flex; gap: 0.8rem; padding: 0.7rem 0; border-bottom: 1px solid rgba(255,255,255,0.15); }
.contact-info ul li:last-child { border-bottom: none; }
.contact-info ul li span:first-child { font-size: 1.2rem; }
.contact-info a { color: #fff; font-weight: 600; }

/* =========== WHATSAPP FLUTUANTE (PULSE) =========== */
/* =========== WHATSAPP FLUTUANTE PREMIUM (ÚNICO) =========== */
.wa-float {
    position: fixed;
    right: clamp(0.75rem, 1.6vw, 1.4rem);
    bottom: clamp(0.75rem, 1.6vw, 1.4rem);
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

/* =========== PÁGINA DE CONTATO (PREMIUM) =========== */
.hero--contact {
    padding-bottom: 5rem;
    position: relative;
    overflow: hidden;
}
.hero--contact::before {
    content: ''; position: absolute; z-index: 0; inset: 0;
    background:
        radial-gradient(900px 380px at 100% 0%, rgba(62,146,204,0.22), transparent 60%),
        radial-gradient(720px 340px at 0% 100%, rgba(230,57,70,0.12), transparent 60%);
    pointer-events: none;
}
.hero--contact > .container { position: relative; z-index: 1; }

.hero__grid--contact {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, 1.1fr);
    align-items: start;
    gap: 2.5rem;
}
@media (max-width: 1024px) {
    .hero__grid--contact { grid-template-columns: 1fr; gap: 2rem; }
}

.contact-cta-row {
    display: flex; flex-wrap: wrap; gap: 0.85rem; margin: 1.6rem 0 1.4rem;
}
.contact-cta {
    --p: 0.72rem 1.05rem;
    padding: var(--p);
    min-height: 58px;
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    text-decoration: none;
    border-radius: var(--radius-md);
    font-weight: 600;
    line-height: 1.1;
    flex: 1 1 260px;
    max-width: 360px;
}
.contact-cta__icon {
    width: 42px; height: 42px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 12px;
    flex-shrink: 0;
    background: rgba(255,255,255,0.18);
    color: inherit;
}
.btn-outline.contact-cta .contact-cta__icon {
    background: rgba(10,36,99,0.08);
    color: var(--c-primary);
}
.contact-cta__txt {
    display: flex; flex-direction: column; gap: 2px; align-items: flex-start;
    text-align: left;
}
.contact-cta__txt strong { font-size: 0.96rem; line-height: 1.1; }
.contact-cta__txt em {
    font-style: normal;
    font-size: 0.82rem;
    opacity: 0.9;
    font-weight: 500;
}

/* Cards de informação (lado esquerdo hero contato) */
.contact-info {
    list-style: none; padding: 0; margin: 0.2rem 0 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}
@media (max-width: 720px) { .contact-info { grid-template-columns: 1fr; } }

.card-info {
    background: #fff;
    border-radius: var(--radius-md);
    border: 1px solid var(--c-border);
    padding: 1rem 1.1rem;
    display: flex;
    gap: 0.85rem;
    align-items: flex-start;
    box-shadow: var(--shadow-sm);
    transition:
        transform 260ms cubic-bezier(.34,1.56,.64,1),
        box-shadow 260ms ease,
        border-color 260ms ease;
    position: relative;
    overflow: hidden;
}
.card-info::before {
    content: ''; position: absolute; top: 0; left: 0;
    width: 4px; height: 0;
    background: linear-gradient(180deg, var(--c-primary), var(--c-accent));
    border-radius: 4px 0 0 4px;
    transition: height 260ms ease;
}
.card-info:hover {
    transform: translateY(-3px);
    box-shadow: var(--shadow-lg);
    border-color: rgba(10,36,99,0.18);
}
.card-info:hover::before { height: 100%; }

.card-info__icon {
    width: 44px; height: 44px;
    border-radius: 12px;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    color: #fff;
}
.card-info__icon--wa    { background: linear-gradient(135deg,#25D366,#128C7E); }
.card-info__icon--pin   { background: linear-gradient(135deg, var(--c-primary), var(--c-secondary)); }
.card-info__icon--mail  { background: linear-gradient(135deg, var(--c-secondary), #2563eb); }
.card-info__icon--clock { background: linear-gradient(135deg, var(--c-accent), #f97316); color: #fff; }
.card-info__icon svg { display: block; }

.card-info__body { min-width: 0; flex: 1; }
.card-info__body strong {
    color: var(--c-primary-dark);
    font-size: 0.9rem;
    display: block;
    margin-bottom: 4px;
}
.card-info__body p { margin: 0; color: #475569; font-size: 0.88rem; line-height: 1.45; }
.card-info__body p a { color: inherit; text-decoration: none; border-bottom: 1px dashed rgba(10,36,99,0.3); }
.card-info__body p a:hover { color: var(--c-primary); border-bottom-color: var(--c-primary); }

.link-underline {
    display: inline-flex; align-items: center; gap: 0.35rem;
    margin-top: 0.3rem;
    color: var(--c-primary) !important;
    font-weight: 600;
    font-size: 0.85rem;
    text-decoration: none;
    border-bottom: none !important;
}
.link-underline svg { display: block; }

/* =========== CARD DE FORMULÁRIO (lado direito hero contato) =========== */
.hero__img--form {
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}
.contact-card-wrap { padding: 0 !important; overflow: visible; }

.contact-card {
    position: relative;
    background: #fff;
    border-radius: var(--radius-lg);
    padding: clamp(1.2rem, 2.4vw, 2rem);
    box-shadow:
        0 30px 60px -28px rgba(10,36,99,0.28),
        0 10px 24px -16px rgba(10,36,99,0.20),
        0 0 0 1px rgba(10,36,99,0.06);
    overflow: hidden;
    isolation: isolate;
}
.contact-card::before {
    content: ''; position: absolute; z-index: 0;
    top: -80px; right: -80px;
    width: 260px; height: 260px;
    border-radius: 50%;
    background: radial-gradient(closest-side, rgba(230,57,70,0.16), transparent 70%);
}
.contact-card::after {
    content: ''; position: absolute; z-index: 0;
    bottom: -100px; left: -70px;
    width: 260px; height: 260px;
    border-radius: 50%;
    background: radial-gradient(closest-side, rgba(62,146,204,0.22), transparent 70%);
}
.contact-card > * { position: relative; z-index: 1; }

.contact-card__head {
    display: flex; align-items: flex-start; justify-content: space-between;
    gap: 1rem; margin-bottom: 1.4rem; padding-bottom: 1.2rem;
    border-bottom: 1px solid var(--c-border);
}
.contact-card__eyebrow {
    display: inline-flex; align-items: center; gap: 0.45rem;
    background: rgba(34, 197, 94, 0.12);
    color: #047857;
    border: 1px solid rgba(34, 197, 94, 0.24);
    padding: 0.32rem 0.65rem;
    border-radius: 999px;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    margin-bottom: 0.5rem;
}
.contact-card__eyebrow .dot {
    width: 8px; height: 8px; border-radius: 50%;
    background: #22c55e;
    box-shadow: 0 0 0 4px rgba(34,197,94,0.18);
    animation: pulseDot 2.2s ease-in-out infinite;
}
@keyframes pulseDot {
    0%,100% { box-shadow: 0 0 0 0 rgba(34,197,94,0.35); }
    50%     { box-shadow: 0 0 0 8px rgba(34,197,94,0); }
}
.contact-card__head h2 { margin: 0 0 0.35rem; font-size: clamp(1.25rem, 2.4vw, 1.6rem); }
.contact-card__head p  { margin: 0; color: #475569; font-size: 0.9rem; line-height: 1.5; max-width: 44ch; }
.contact-card__shield {
    flex-shrink: 0;
    width: 54px; height: 54px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(10,36,99,0.08), rgba(62,146,204,0.16));
    color: var(--c-primary-dark);
    display: inline-flex; align-items: center; justify-content: center;
}
.contact-card__shield svg { width: 26px; height: 26px; }

/* Mensagens ok / erro */
.ok-msg {
    display: inline-flex; align-items: flex-start; gap: 0.75rem;
    padding: 0.9rem 1rem;
    border-radius: var(--radius-md);
    margin-bottom: 1.2rem;
    width: 100%;
    font-size: 0.92rem;
    line-height: 1.4;
    animation: msgIn 340ms cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes msgIn {
    from { opacity: 0; transform: translateY(-8px) scale(0.98); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
.ok-msg svg { flex-shrink: 0; width: 24px; height: 24px; margin-top: 2px; }
.ok-msg--success {
    background: rgba(34,197,94,0.10);
    color: #065f46;
    border: 1px solid rgba(34,197,94,0.26);
}
.ok-msg--success svg { color: #16a34a; }
.ok-msg--error {
    background: rgba(239,68,68,0.09);
    color: #991b1b;
    border: 1px solid rgba(239,68,68,0.28);
}
.ok-msg--error svg { color: #dc2626; }
.ok-msg div { min-width: 0; }
.ok-msg strong { display: block; margin-bottom: 2px; }

/* ===== Formulário ===== */
.contact-form { display: flex; flex-direction: column; gap: 0.9rem; }
.field-row {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.9rem;
}
@media (max-width: 640px) { .field-row { grid-template-columns: 1fr; gap: 0.8rem; } }

.field { display: flex; flex-direction: column; gap: 0.35rem; }
.field label {
    font-weight: 600; font-size: 0.85rem; color: var(--c-dark);
    letter-spacing: 0.005em;
}
.field label .req { color: var(--c-accent); font-weight: 800; }

.field__wrap {
    position: relative;
    display: flex; align-items: center;
}
.field__wrap--area { align-items: stretch; }

.field__icon {
    position: absolute;
    left: 0.75rem; top: 50%;
    transform: translateY(-50%);
    width: 18px; height: 18px;
    color: var(--c-secondary);
    opacity: 0.85;
    pointer-events: none;
    z-index: 1;
    display: inline-flex; align-items: center; justify-content: center;
}
.field__wrap--area .field__icon { display: none; }

.field__wrap input,
.field__wrap select,
.field__wrap textarea {
    width: 100%;
    padding: 0.75rem 0.95rem 0.75rem 2.25rem;
    border: 1.6px solid rgba(10,36,99,0.12);
    border-radius: var(--radius-md);
    font-family: inherit; font-size: 0.94rem; color: var(--c-body);
    background: #fff;
    transition:
        border-color 200ms ease,
        box-shadow 200ms ease,
        background-color 200ms ease,
        transform 180ms ease;
    outline: none;
}
.field__wrap--area textarea {
    padding: 0.9rem 1rem;
    min-height: 140px;
    resize: vertical;
    line-height: 1.55;
}
.field__wrap input::placeholder,
.field__wrap textarea::placeholder {
    color: #94a3b8;
}
.field__wrap input:hover,
.field__wrap select:hover,
.field__wrap textarea:hover {
    border-color: rgba(10,36,99,0.22);
}
.field__wrap input:focus,
.field__wrap select:focus,
.field__wrap textarea:focus {
    border-color: var(--c-primary);
    background: #fff;
    box-shadow: 0 0 0 4px rgba(10,36,99,0.13);
    transform: translateY(-0.5px);
}

/* Botão enviar */
.form-actions {
    display: flex; flex-direction: column; gap: 0.7rem;
    margin-top: 0.4rem;
}
.btn--contact {
    display: inline-flex; align-items: center; justify-content: center;
    gap: 0.55rem;
    min-height: 56px;
    padding: 0.8rem 1.4rem;
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: 0.008em;
    border-radius: var(--radius-md);
    position: relative;
    overflow: hidden;
    isolation: isolate;
    box-shadow:
        0 10px 24px -10px rgba(10,36,99,0.55),
        0 6px 0 #05133b;
    transition:
        transform 240ms cubic-bezier(.34,1.56,.64,1),
        box-shadow 240ms ease,
        filter 240ms ease;
}
.btn--contact::before {
    content: ''; position: absolute; inset: 0; z-index: -1;
    background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-secondary) 55%, var(--c-primary) 100%);
    background-size: 200% 200%;
    background-position: 0% 50%;
    transition: background-position 520ms ease;
}
.btn--contact span { display: inline-flex; align-items: center; justify-content: center; }
.btn--contact:hover { transform: translateY(-2px); filter: brightness(1.04); }
.btn--contact:hover::before { background-position: 100% 50%; }
.btn--contact:active { transform: translateY(2px); box-shadow: 0 4px 0 #05133b; }

.form-privacy {
    display: inline-flex; align-items: center; gap: 0.45rem;
    color: #475569;
    font-size: 0.8rem;
    margin: 0;
    padding: 0.55rem 0.7rem;
    border-radius: 10px;
    background: rgba(10,36,99,0.04);
    align-self: flex-start;
    max-width: 580px;
    line-height: 1.45;
}
.form-privacy svg { width: 16px; height: 16px; flex-shrink: 0; color: var(--c-secondary); }

/* =========== MAPA CONTATO =========== */
.contact-map-section { padding: 4rem 0 4.5rem; }
.contact-map-card {
    display: grid;
    grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);
    gap: 0;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: #fff;
    box-shadow:
        0 30px 60px -34px rgba(10,36,99,0.25),
        0 0 0 1px rgba(10,36,99,0.06);
}
@media (max-width: 980px) {
    .contact-map-card { grid-template-columns: 1fr; }
}
.contact-map {
    position: relative;
    background: var(--c-bg-2);
    min-height: 420px;
}
.contact-map iframe {
    position: absolute; inset: 0;
    width: 100%; height: 100%;
    border: 0;
    display: block;
}
.contact-map-side {
    padding: clamp(1.2rem, 2.4vw, 2rem);
    display: flex; flex-direction: column; gap: 1rem;
    background:
        linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,255,255,0.94)),
        linear-gradient(135deg, rgba(10,36,99,0.06), rgba(230,57,70,0.05));
    border-left: 1px solid var(--c-border);
}
@media (max-width: 980px) {
    .contact-map-side { border-left: 0; border-top: 1px solid var(--c-border); }
    .contact-map { min-height: 340px; }
}
.contact-map-side h3 {
    margin: 0;
    color: var(--c-primary-dark);
    font-size: clamp(1.05rem, 2vw, 1.25rem);
    display: inline-flex; align-items: center; gap: 0.5rem;
}
.contact-map-side h3 svg { color: var(--c-accent); flex-shrink: 0; width: 22px; height: 22px; }
.contact-map-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 0.65rem;
}
.contact-map-list li {
    display: flex; gap: 0.5rem;
    color: #475569;
    font-size: 0.92rem;
    line-height: 1.5;
    padding: 0.55rem 0.7rem;
    background: rgba(10,36,99,0.035);
    border-radius: var(--radius-sm);
    border: 1px solid rgba(10,36,99,0.06);
}
.contact-map-list li strong {
    color: var(--c-primary-dark);
    min-width: 140px;
    font-size: 0.86rem;
    letter-spacing: 0.005em;
}
.contact-map-actions {
    display: flex; flex-wrap: wrap; gap: 0.7rem;
    margin-top: auto;
    padding-top: 0.3rem;
}
.contact-map-actions .btn {
    flex: 1 1 220px;
    min-height: 48px;
    display: inline-flex; align-items: center; justify-content: center;
    gap: 0.45rem;
    padding: 0.65rem 1rem;
    font-weight: 600;
    border-radius: var(--radius-md);
}
.contact-map-actions .btn svg { display: block; width: 18px; height: 18px; }

/* =========== REFINO CONTATO PREMIUM (harmonia, densidade, animações) =========== */

/* --- Hero eyebrow + badges premium --- */
.hero__eyebrow-row {
    display: inline-flex; flex-wrap: wrap; align-items: center;
    gap: 0.65rem;
    margin-bottom: 1.2rem;
}
.hero__badge--lg {
    display: inline-flex; align-items: center; gap: 0.45rem;
    padding: 0.45rem 0.9rem;
    border-radius: 999px;
    font-size: 0.84rem;
    font-weight: 600;
    letter-spacing: 0.005em;
    color: var(--c-primary-dark);
    background:
        linear-gradient(135deg, rgba(62,146,204,0.18), rgba(10,36,99,0.10)),
        rgba(255,255,255,0.82);
    border: 1px solid rgba(62,146,204,0.30);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.7) inset,
        0 6px 16px -10px rgba(10,36,99,0.35);
}
.hero__badge--lg svg { width: 16px; height: 16px; color: var(--c-secondary); flex-shrink: 0; }
.hero__pill {
    display: inline-flex; align-items: center; gap: 0.45rem;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 600;
    color: #065f46;
    background:
        linear-gradient(135deg, rgba(16,185,129,0.16), rgba(22,163,74,0.08)),
        rgba(255,255,255,0.84);
    border: 1px solid rgba(16,185,129,0.30);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.7) inset,
        0 6px 16px -10px rgba(5,150,105,0.40);
}
.hero__pill-dot {
    width: 8px; height: 8px; min-width: 8px; min-height: 8px;
    border-radius: 50%;
    background: var(--c-whatsapp);
    box-shadow: 0 0 0 0 rgba(22,163,74,0.55);
    animation: heroPillPulse 1800ms cubic-bezier(.4,0,.2,1) infinite;
}
@keyframes heroPillPulse {
    0%   { box-shadow: 0 0 0 0 rgba(22,163,74,0.55); }
    70%  { box-shadow: 0 0 0 10px rgba(22,163,74,0); }
    100% { box-shadow: 0 0 0 0 rgba(22,163,74,0); }
}

/* --- Trust badges row (4 sinais confiança) --- */
.trust-row {
    list-style: none; padding: 0; margin: 1.35rem 0 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 0.75rem;
}
.trust-row li {
    display: flex; flex-direction: column; align-items: flex-start; gap: 0.18rem;
    padding: 0.85rem 0.9rem;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.72), rgba(255,255,255,0.50)),
        linear-gradient(135deg, rgba(10,36,99,0.04), rgba(62,146,204,0.04));
    border: 1px solid rgba(255,255,255,0.7);
    border-radius: 14px;
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.8) inset,
        0 8px 22px -14px rgba(10,36,99,0.30);
    transition: transform 260ms cubic-bezier(.34,1.56,.64,1), box-shadow 260ms ease;
    position: relative;
    overflow: hidden;
}
.trust-row li::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px; background: linear-gradient(180deg, var(--c-secondary), var(--c-primary-dark));
    opacity: 0.9;
}
.trust-row li:hover {
    transform: translateY(-3px);
    box-shadow:
        0 1px 0 rgba(255,255,255,0.8) inset,
        0 14px 30px -16px rgba(10,36,99,0.45);
}
.trust-row__icon {
    width: 34px; height: 34px; min-width: 34px;
    border-radius: 10px;
    display: inline-flex; align-items: center; justify-content: center;
    margin-bottom: 0.15rem;
    box-shadow: 0 2px 6px -2px rgba(10,36,99,0.25) inset;
}
.trust-row__icon svg { display: block; color: #fff; width: 18px; height: 18px; }
.trust-row__icon--star  { background: linear-gradient(135deg, #f59e0b, #d97706); }
.trust-row__icon--users { background: linear-gradient(135deg, var(--c-secondary), var(--c-primary)); }
.trust-row__icon--bolt  { background: linear-gradient(135deg, #f97316, #ea580c); }
.trust-row__icon--doc   { background: linear-gradient(135deg, var(--c-primary), var(--c-primary-dark)); }
.trust-row strong {
    color: var(--c-primary-dark);
    font-size: clamp(1rem, 1.5vw, 1.15rem);
    font-weight: 800;
    line-height: 1.1;
    letter-spacing: -0.01em;
}
.trust-row small {
    color: var(--c-muted);
    font-size: 0.78rem;
    line-height: 1.3;
    font-weight: 500;
}

/* --- Stagger cards info (entrada suave incremental) --- */
.card-info {
    opacity: 0;
    transform: translateY(12px);
    animation: cardInfoIn 620ms cubic-bezier(.2,.8,.2,1) forwards;
}
.card-info--stagger-1 { animation-delay: 0ms; }
.card-info--stagger-2 { animation-delay: 80ms; }
.card-info--stagger-3 { animation-delay: 160ms; }
.card-info--stagger-4 { animation-delay: 240ms; }
@keyframes cardInfoIn {
    to { opacity: 1; transform: translateY(0); }
}

/* --- Contact cartão topbar premium + mensagens ok/erro com barra lateral --- */
.contact-card { position: relative; overflow: hidden; }
.contact-card__topbar {
    position: absolute; top: 0; left: 0; right: 0; height: 4px;
    background: linear-gradient(90deg,
        var(--c-primary) 0%,
        var(--c-secondary) 45%,
        var(--c-accent) 100%);
    z-index: 2;
}
.ok-msg {
    position: relative;
    overflow: hidden;
    padding-left: 1.2rem;
}
.ok-msg__bar {
    position: absolute; left: 0; top: 0; bottom: 0;
    width: 4px;
    border-radius: 0 4px 4px 0;
}
.ok-msg--success .ok-msg__bar {
    background: linear-gradient(180deg, #16a34a, #059669);
    box-shadow: 2px 0 12px -2px rgba(22,163,74,0.55);
}
.ok-msg--error .ok-msg__bar {
    background: linear-gradient(180deg, #dc2626, #b91c1c);
    box-shadow: 2px 0 12px -2px rgba(220,38,38,0.55);
}

/* --- Textarea ícone topo (não centralizado vertical) --- */
.field__icon--area {
    top: 0.9rem !important;
    transform: none !important;
}

/* --- Sheen "luz passando" no botão enviar (padrão premium CTA) --- */
.btn--sheen {
    position: absolute; top: 50%; left: 0;
    width: 30%; height: 220%;
    background: linear-gradient(115deg,
        transparent 0%,
        rgba(255,255,255,0.0) 30%,
        rgba(255,255,255,0.38) 50%,
        rgba(255,255,255,0.0) 70%,
        transparent 100%);
    transform: translate(-150%, -50%) rotate(14deg);
    pointer-events: none;
    opacity: 0;
    transition: opacity 200ms ease;
    mix-blend-mode: screen;
}
.btn:hover .btn--sheen,
.btn:focus-visible .btn--sheen {
    opacity: 1;
    animation: sheenSweep 900ms cubic-bezier(.2,.8,.2,1) forwards;
}
@keyframes sheenSweep {
    0%   { transform: translate(-150%, -50%) rotate(14deg); }
    100% { transform: translate(320%, -50%) rotate(14deg); }
}

/* --- Diferenciais atendimento section (4 cards) --- */
.contact-diff-section {
    padding: clamp(2.2rem, 4.2vw, 3.6rem) 0;
    background:
        radial-gradient(1200px 500px at 15% -10%, rgba(62,146,204,0.12), transparent 60%),
        radial-gradient(1000px 420px at 95% 110%, rgba(249,115,22,0.10), transparent 60%),
        linear-gradient(180deg, var(--c-bg-2), #fff);
}
.contact-diff-grid {
    list-style: none; padding: 0; margin: 1.4rem 0 0;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 1rem;
}
.diff-card {
    position: relative;
    display: flex; align-items: flex-start; gap: 0.85rem;
    padding: 1.1rem 1rem;
    background: rgba(255,255,255,0.96);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    overflow: hidden;
    transition:
        transform 260ms cubic-bezier(.34,1.56,.64,1),
        box-shadow 260ms ease,
        border-color 260ms ease;
    box-shadow: 0 6px 18px -12px rgba(10,36,99,0.22);
}
.diff-card::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--c-primary), var(--c-accent));
    opacity: 0.9;
}
.diff-card:hover {
    transform: translateY(-4px);
    border-color: rgba(62,146,204,0.45);
    box-shadow:
        0 12px 28px -14px rgba(10,36,99,0.35),
        0 0 0 1px rgba(62,146,204,0.18);
}
.diff-card__icon {
    width: 42px; height: 42px; min-width: 42px;
    border-radius: 12px;
    display: inline-flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    color: #fff;
    box-shadow: 0 4px 12px -4px rgba(10,36,99,0.35);
}
.diff-card__icon svg { width: 20px; height: 20px; display: block; color: #fff; }
.diff-card--1 .diff-card__icon { background: linear-gradient(135deg, #16a34a, #047857); }
.diff-card--2 .diff-card__icon { background: linear-gradient(135deg, var(--c-secondary), var(--c-primary)); }
.diff-card--3 .diff-card__icon { background: linear-gradient(135deg, #6366f1, #4338ca); }
.diff-card--4 .diff-card__icon { background: linear-gradient(135deg, var(--c-accent), #c2410c); }
.diff-card h3 {
    margin: 0 0 0.3rem;
    color: var(--c-primary-dark);
    font-size: 1rem;
    font-weight: 700;
    letter-spacing: -0.005em;
    line-height: 1.25;
}
.diff-card p {
    margin: 0;
    color: var(--c-muted);
    font-size: 0.88rem;
    line-height: 1.55;
}

/* --- Mapa overlay gradiente + pill lateral --- */
.contact-map__overlay {
    position: absolute; inset: 0;
    pointer-events: none;
    z-index: 1;
    background:
        linear-gradient(180deg,
            rgba(10,36,99,0.10) 0%,
            rgba(10,36,99,0.00) 42%,
            rgba(10,36,99,0.06) 100%),
        linear-gradient(90deg,
            rgba(255,255,255,0.14) 0%,
            rgba(255,255,255,0) 22%,
            rgba(255,255,255,0) 78%,
            rgba(255,255,255,0.14) 100%);
    mix-blend-mode: normal;
}
.contact-map__overlay::after {
    content: ''; position: absolute; inset: 0;
    border: 1px solid rgba(255,255,255,0.16);
    border-radius: inherit;
    pointer-events: none;
}
.contact-map-side__pill {
    display: inline-flex; align-items: center; gap: 0.4rem;
    padding: 0.35rem 0.75rem;
    width: fit-content;
    border-radius: 999px;
    font-size: 0.8rem;
    font-weight: 600;
    color: #065f46;
    background: linear-gradient(135deg, rgba(16,185,129,0.15), rgba(22,163,74,0.06));
    border: 1px solid rgba(16,185,129,0.28);
    margin-bottom: 0.5rem;
}
.contact-map-side__pill .hero__pill-dot { animation: heroPillPulse 1900ms infinite; }

/* --- FAQ mini section premium --- */
.contact-faq-section {
    padding: clamp(2.2rem, 4vw, 3.4rem) 0;
    background:
        radial-gradient(1000px 460px at 90% -10%, rgba(10,36,99,0.10), transparent 60%),
        linear-gradient(180deg, #fff, var(--c-bg-2));
}
.contact-faq-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr;
    gap: clamp(1.4rem, 2.5vw, 2.2rem);
    align-items: start;
}
.contact-faq-intro {
    position: sticky; top: 110px;
    display: flex; flex-direction: column; gap: 0.7rem;
    padding: 1.3rem;
    background:
        linear-gradient(135deg, rgba(255,255,255,0.94), rgba(255,255,255,0.82)),
        linear-gradient(135deg, rgba(10,36,99,0.06), rgba(62,146,204,0.05));
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    box-shadow: 0 8px 24px -14px rgba(10,36,99,0.3);
}
.contact-faq-intro .eyebrow { margin-bottom: 0.1rem; }
.contact-faq-intro h2 {
    margin: 0;
    color: var(--c-primary-dark);
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.015em;
}
.contact-faq-intro p {
    margin: 0;
    color: var(--c-muted);
    font-size: 0.92rem;
    line-height: 1.6;
}
.contact-faq-intro .btn { align-self: flex-start; }

.contact-faq-list {
    list-style: none; padding: 0; margin: 0;
    display: flex; flex-direction: column; gap: 0.75rem;
}
.faq-item {
    padding: 0.95rem 1rem;
    background: rgba(255,255,255,0.96);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    transition:
        transform 220ms ease,
        box-shadow 220ms ease,
        border-color 220ms ease;
    position: relative;
    overflow: hidden;
}
.faq-item::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px;
    background: linear-gradient(180deg, var(--c-accent), var(--c-primary-dark));
    opacity: 0.85;
}
.faq-item:hover {
    transform: translateY(-2px);
    border-color: rgba(249,115,22,0.35);
    box-shadow: 0 10px 22px -14px rgba(10,36,99,0.30);
}
.faq-item__q {
    display: flex; align-items: flex-start; gap: 0.6rem;
    color: var(--c-primary-dark);
    font-size: 0.95rem;
    line-height: 1.4;
}
.faq-item__q strong { font-weight: 700; }
.faq-item__q svg {
    flex-shrink: 0; margin-top: 1px;
    width: 20px; height: 20px;
    color: var(--c-accent);
    background: rgba(249,115,22,0.12);
    border-radius: 50%;
    padding: 3px;
    box-sizing: content-box;
}
.faq-item__a {
    display: block;
    margin-top: 0.5rem;
    margin-left: calc(20px + 0.6rem + 3px);
    color: var(--c-muted);
    font-size: 0.88rem;
    line-height: 1.6;
}
.faq-item__a strong { color: var(--c-primary-dark); font-weight: 700; }

/* =========== REFINO CONTATO — RESPONSIVIDADE 4 BREAKPOINTS =========== */

/* ≥1441 default acima já aplicado; ajustes a partir de ≤1280px */
@media (max-width: 1280px) {
    .trust-row { grid-template-columns: repeat(4, 1fr); }
    .contact-diff-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 960px) {
    .contact-faq-grid { grid-template-columns: 1fr; }
    .contact-faq-intro { position: static; }
    .trust-row { grid-template-columns: repeat(2, 1fr); }
    .contact-diff-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
    .hero__eyebrow-row { width: 100%; }
    .hero__badge--lg, .hero__pill { font-size: 0.78rem; padding: 0.4rem 0.75rem; }
    .trust-row { grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
    .trust-row li { padding: 0.75rem 0.85rem; }
    .contact-diff-grid { grid-template-columns: repeat(2, 1fr); gap: 0.8rem; }
    .diff-card { padding: 0.95rem 0.9rem; }
    .diff-card__icon { width: 38px; height: 38px; min-width: 38px; border-radius: 10px; }
    .contact-faq-grid { gap: 1rem; }
    .faq-item__a { margin-left: 0; margin-top: 0.55rem; padding-left: calc(20px + 0.6rem + 3px); }
}
@media (max-width: 480px) {
    .hero__eyebrow-row { flex-direction: column; align-items: flex-start; gap: 0.5rem; }
    .trust-row { grid-template-columns: 1fr; }
    .contact-diff-grid { grid-template-columns: 1fr; }
    .contact-faq-list { gap: 0.65rem; }
    .contact-faq-intro { padding: 1rem; }
    .contact-cta-row .contact-cta { width: 100%; flex: 1 1 100%; }
    .contact-map-actions .btn { flex: 1 1 100%; }
    .trust-row li { padding: 0.85rem 0.9rem; }
    .faq-item__a { padding-left: 0; }
}

/* =========== FOOTER SOCIAL PREMIUM (ícones de plataforma) =========== */
.footer__social { display: flex; gap: 0.55rem; flex-wrap: wrap; }
.footer__social a {
    width: 42px; height: 42px; border-radius: 12px;
    background: rgba(255,255,255,0.07);
    display: inline-flex; align-items: center; justify-content: center;
    transition:
        transform 240ms cubic-bezier(.34,1.56,.64,1),
        background-color 240ms ease,
        box-shadow 240ms ease,
        color 240ms ease;
    position: relative;
    overflow: hidden;
    isolation: isolate;
    color: #e2e8f0;
    text-decoration: none;
    flex-shrink: 0;
}
.footer__social a svg { display: block; color: inherit; }
.footer__social a::before {
    content: ''; position: absolute; inset: 0; z-index: -1;
    border-radius: inherit;
    opacity: 0;
    transition: opacity 240ms ease;
}
.footer__social a[href*="whatsapp"],
.footer__social a[href*="wa.me"] { --pl: #25D366; --pl-dark: #128C7E; }
.footer__social a[href*="mailto:"]           { --pl: #3b82f6; --pl-dark: #1d4ed8; }
.footer__social a[href*="instagram"]         { --pl: #E1306C; --pl-dark: #833AB4; }
.footer__social a[href*="facebook"]          { --pl: #1877F2; --pl-dark: #0d5fcb; }
.footer__social a[href*="linkedin"]          { --pl: #0A66C2; --pl-dark: #004182; }

.footer__social a::before { background: linear-gradient(135deg, var(--pl), var(--pl-dark)); }

.footer__social a:hover {
    transform: translateY(-3px);
    color: #fff;
    box-shadow: 0 8px 20px -8px rgba(0,0,0,0.45);
}
.footer__social a:hover::before { opacity: 1; }
.footer__social a:active { transform: translateY(-1px) scale(0.98); }
.wa-float__btn {
    --wa: #128C7E;
    --wa-light: #25D366;
    width: 60px; height: 60px;
    min-width: 60px; min-height: 60px;
    aspect-ratio: 1 / 1;
    flex-shrink: 0;
    flex-grow: 0;
    box-sizing: border-box;
    padding: 0;
    margin: 0;
    border: none;
    outline: none;
    border-radius: 50% !important;
    overflow: hidden;
    background: linear-gradient(135deg, var(--wa-light), var(--wa));
    color: #fff;
    display: inline-flex; align-items: center; justify-content: center;
    text-decoration: none;
    position: relative;
    line-height: 0 !important;
    font-size: 0 !important;
    letter-spacing: 0;
    box-shadow:
        0 10px 28px rgba(37, 211, 102, 0.45),
        0 2px 8px rgba(6, 95, 70, 0.25),
        inset 0 1px 0 rgba(255,255,255,0.35);
    transition: transform 220ms cubic-bezier(.4,0,.2,1), box-shadow 220ms ease, filter 220ms ease;
    will-change: transform;
}
.wa-float__btn svg {
    display: block !important;
    width: 26px; height: 26px;
    max-width: 26px; max-height: 26px;
    flex-shrink: 0;
    box-sizing: content-box;
}
.wa-float__btn:hover {
    transform: translateY(-3px) scale(1.04);
    filter: brightness(1.06);
    box-shadow:
        0 16px 40px rgba(37, 211, 102, 0.55),
        0 4px 12px rgba(6, 95, 70, 0.3),
        inset 0 1px 0 rgba(255,255,255,0.35);
}
.wa-float__btn:active { transform: translateY(0) scale(.98); }
/* Anel Premium pulse (único botão) */
.pulse-wa { animation: pulseWaPremium 2.8s ease-in-out infinite; }
@keyframes pulseWaPremium {
    0%,100% {
        box-shadow:
            0 10px 28px rgba(37, 211, 102, 0.45),
            0 2px 8px rgba(6, 95, 70, 0.25),
            0 0 0 0 rgba(37, 211, 102, 0.55),
            inset 0 1px 0 rgba(255,255,255,0.35);
    }
    50% {
        box-shadow:
            0 10px 28px rgba(37, 211, 102, 0.45),
            0 2px 8px rgba(6, 95, 70, 0.25),
            0 0 0 14px rgba(37, 211, 102, 0),
            inset 0 1px 0 rgba(255,255,255,0.35);
    }
}
.wa-float__tooltip {
    background: linear-gradient(135deg, #065F46, #047857);
    color: #fff;
    padding: 0.5rem 0.9rem 0.5rem 1rem;
    border-radius: 999px;
    font-size: 0.82rem;
    font-weight: 500;
    line-height: 1.15;
    box-shadow: 0 10px 26px rgba(6, 95, 70, 0.35);
    white-space: nowrap;
    opacity: 0;
    transform: translateX(10px);
    transition: opacity 260ms ease, transform 260ms cubic-bezier(.4,0,.2,1);
    pointer-events: none;
    border: 1px solid rgba(255,255,255,0.12);
    backdrop-filter: blur(4px);
}
.wa-float__tooltip strong { display: block; font-size: 0.86rem; font-weight: 700; margin-bottom: 1px; }
.wa-float__tooltip span { opacity: 0.92; font-size: 0.78rem; }
.wa-float:hover .wa-float__tooltip {
    opacity: 1; transform: translateX(0);
}
@media (max-width: 768px) {
    .wa-float { flex-direction: column-reverse; align-items: flex-end; gap: 0.5rem; }
    .wa-float__btn { width: 56px; height: 56px; min-width: 56px; min-height: 56px; }
    .wa-float__tooltip { transform: translateY(6px); padding: 0.42rem 0.8rem; font-size: 0.76rem; }
}
@media (max-width: 480px) {
    .wa-float__tooltip { display: none; }
    .wa-float__btn { width: 54px; height: 54px; min-width: 54px; min-height: 54px; }
}

/* =========== CALENDÁRIO =========== */
.cal {
    background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius); overflow: hidden;
}
.cal__head {
    background: var(--c-primary); color: #fff;
    display: flex; justify-content: space-between; align-items: center;
    padding: 1rem 1.2rem;
}
.cal__head h3 { color: #fff; margin: 0; font-size: 1.1rem; }
.cal__nav button {
    background: rgba(255,255,255,0.15); color: #fff; border: none;
    width: 34px; height: 34px; border-radius: var(--radius-sm); cursor: pointer;
    font-weight: 800; font-size: 1rem; transition: background var(--t-fast);
}
.cal__nav button:hover { background: rgba(255,255,255,0.3); }
.cal__weekdays { display: grid; grid-template-columns: repeat(7,1fr); background: var(--c-bg-2); }
.cal__weekdays div {
    text-align: center; padding: 0.6rem 0.2rem; font-weight: 700;
    color: var(--c-primary-dark); font-size: 0.8rem; text-transform: uppercase;
}
.cal__days { display: grid; grid-template-columns: repeat(7,1fr); }
.cal__day {
    min-height: 70px; border: 1px solid var(--c-border); border-top: none; border-left: none;
    padding: 0.3rem; position: relative;
    background: #fff; font-size: 0.82rem;
    display: flex; flex-direction: column; gap: 3px;
    transition: background var(--t-fast);
}
.cal__day:nth-child(7n) { border-right: none; }
.cal__day.other-month { background: #f8fafc; color: #cbd5e1; }
.cal__day.today { background: #eff6ff; font-weight: 800; color: var(--c-primary); }
.cal__day:hover { background: var(--c-bg-2); }
.cal__event {
    background: var(--c-bg-2); color: var(--c-primary-dark);
    font-size: 0.68rem; padding: 0.15rem 0.3rem; border-radius: 4px; line-height: 1.2;
    border-left: 3px solid var(--c-secondary);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    cursor: pointer;
}
.cal__event:hover { background: #dbeafe; }

/* =========== TABS (Modelos de Documentos) =========== */
.tabs { display: flex; gap: 0.4rem; flex-wrap: wrap; margin-bottom: 1.5rem; border-bottom: 1px solid var(--c-border); padding-bottom: 0.4rem; }
.tab {
    padding: 0.75rem 1.1rem; border: 1px solid var(--c-border); border-radius: var(--radius-sm);
    background: #fff; color: var(--c-dark); font-weight: 600; cursor: pointer;
    transition: all var(--t-fast); font-family: inherit; font-size: 0.9rem;
}
.tab:hover { border-color: var(--c-primary); color: var(--c-primary); }
.tab.is-active { background: var(--c-primary); color: #fff; border-color: var(--c-primary); }
.doc-grid { display: grid; gap: 0.8rem; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.doc-item {
    display: flex; align-items: center; gap: 0.8rem;
    background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius-sm);
    padding: 0.7rem 0.9rem; text-decoration: none;
    transition: all var(--t-fast);
}
.doc-item:hover { transform: translateX(4px); box-shadow: var(--shadow-sm); border-color: var(--c-primary); }
.doc-item__ext {
    min-width: 50px; height: 50px; border-radius: var(--radius-sm);
    display: inline-flex; align-items: center; justify-content: center;
    font-family: var(--font-title); font-weight: 800; font-size: 0.78rem; color: #fff; letter-spacing: -0.02em;
    background: linear-gradient(135deg, #64748b, #334155);
}
.doc-item__ext.DOCX { background: linear-gradient(135deg, #1e40af, #1d4ed8); }
.doc-item__ext.PDF  { background: linear-gradient(135deg, #dc2626, #ef4444); }
.doc-item__ext.XLS,
.doc-item__ext.XLSX { background: linear-gradient(135deg, #15803d, #16a34a); }
.doc-item__ext.DOC  { background: linear-gradient(135deg, #1e3a8a, #2563eb); }
.doc-item__info { flex: 1; min-width: 0; }
.doc-item__info strong { display: block; font-size: 0.88rem; color: var(--c-dark); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.doc-item__info small { color: var(--c-muted); font-size: 0.75rem; }
.doc-item__size { color: var(--c-muted); font-size: 0.76rem; white-space: nowrap; }
.doc-item__dl {
    color: var(--c-primary); font-weight: 700;
    padding: 0.35rem 0.6rem; background: var(--c-bg-2); border-radius: var(--radius-sm);
}
.doc-item:hover .doc-item__dl { background: var(--c-primary); color: #fff; }

/* =========== DOC-CARD: cards verticais p/ utilitários (calculos, certidões, etc.) =========== */
.doc-card {
    display: flex; flex-direction: column; gap: 0.35rem;
    background: #fff; border: 1px solid var(--c-border); border-radius: var(--radius-sm);
    padding: 0.9rem 1rem; text-decoration: none;
    transition: all var(--t-fast); position: relative;
}
.doc-card:hover { transform: translateX(4px); box-shadow: var(--shadow-sm); border-color: var(--c-primary); }
.doc-card strong { font-size: 0.92rem; color: var(--c-dark); line-height: 1.3; }
.doc-card small  { color: var(--c-muted); font-size: 0.78rem; }
.doc-card__link  { color: var(--c-primary); font-weight: 700; font-size: 0.8rem; margin-top: 0.2rem; display: inline-flex; align-items: center; }
.doc-card:hover .doc-card__link { color: var(--c-accent); }

/* =========== FOOTER PREMIUM =========== */
.footer {
    background:
        radial-gradient(1200px 500px at 100% -10%, rgba(62,146,204,0.22), transparent 60%),
        radial-gradient(900px 500px at 0% 110%, rgba(249,115,22,0.14), transparent 55%),
        linear-gradient(180deg, #081c4e 0%, #0a2463 48%, #061338 100%);
    color: #cbd5e1;
    margin-top: 1.8rem;
    padding-top: 1.9rem;
    padding-bottom: 0;
    position: relative;
    overflow: hidden;
    isolation: isolate;
}
.footer::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(62,146,204,0.55), rgba(249,115,22,0.55), transparent);
}
.footer::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.035) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: radial-gradient(ellipse at 50% 0%, #000 35%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 35%, transparent 80%);
    pointer-events: none;
    z-index: 0;
    opacity: 0.7;
}

/* ===== FAIXA PROMO 2 COLUNAS (ACIMA DO FOOTER) ===== */
.footer__promo {
    position: relative;
    z-index: 2;
    margin-bottom: 2.8rem;
}
.footer__promo-card {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    padding: 1.1rem;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255,255,255,0.06), rgba(255,255,255,0.02));
    border: 1px solid rgba(255,255,255,0.08);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    box-shadow: 0 18px 60px rgba(0,0,0,0.28);
}
.footer__promo-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem 1.15rem;
    border-radius: 14px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
    transition: transform 280ms cubic-bezier(.34,1.56,.64,1), border-color 260ms ease, background-color 260ms ease, box-shadow 280ms ease;
}
.footer__promo-item:hover {
    transform: translateY(-3px);
    border-color: rgba(62,146,204,0.42);
    background: rgba(255,255,255,0.07);
    box-shadow: 0 12px 34px rgba(0,0,0,0.26);
}
.footer__promo-item--accent:hover {
    border-color: rgba(249,115,22,0.46);
}
.footer__promo-ico {
    flex-shrink: 0;
    width: 46px; height: 46px;
    border-radius: 12px;
    display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, rgba(10,36,99,0.85), rgba(62,146,204,0.65));
    color: #fff;
    box-shadow: 0 4px 18px rgba(10,36,99,0.45), inset 0 1px 0 rgba(255,255,255,0.25);
    border: 1px solid rgba(255,255,255,0.14);
}
.footer__promo-item--accent .footer__promo-ico {
    background: linear-gradient(135deg, rgba(249,115,22,0.95), rgba(230,57,70,0.72));
    box-shadow: 0 4px 18px rgba(249,115,22,0.36), inset 0 1px 0 rgba(255,255,255,0.28);
}
.footer__promo-title {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    font-family: var(--font-title);
    color: #fff;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.15;
    text-decoration: none;
}
.footer__promo-title span { color: var(--c-accent); font-weight: 800; transition: transform 260ms cubic-bezier(.34,1.56,.64,1); display: inline-block; }
.footer__promo-item:hover .footer__promo-title span { transform: translateX(4px); }
.footer__promo-item p {
    margin: 0.35rem 0 0;
    color: #b6c3d8;
    font-size: 0.86rem;
    line-height: 1.5;
}

/* ===== GRID PRINCIPAL 5 COLUNAS ===== */
.footer__grid {
    display: grid;
    grid-template-columns: 1.28fr 0.92fr 0.92fr 1fr 1.25fr;
    gap: 1rem 1.3rem;
    padding-bottom: 1.3rem;
    position: relative;
    z-index: 2;
}
.footer h4 {
    color: #fff;
    margin: 0 0 0.6rem;
    font-size: 0.9rem;
    font-family: var(--font-title);
    font-weight: 700;
    letter-spacing: 0.01em;
    padding-bottom: 0.45rem;
    position: relative;
}
.footer h4::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 32px;
    height: 3px;
    border-radius: 3px;
    background: linear-gradient(90deg, var(--c-secondary), var(--c-accent));
    box-shadow: 0 0 0 1px rgba(255,255,255,0.06);
}
.footer a {
    color: #cbd5e1;
    transition: color 220ms ease, transform 220ms ease, padding-left 220ms ease;
    text-decoration: none;
}
.footer a:hover { color: #fff; }
.footer__list {
    list-style: none;
    margin: 0; padding: 0;
}
.footer__list li {
    padding: 0.25rem 0;
    border-bottom: 1px solid rgba(255,255,255,0.06);
    font-size: 0.87rem;
    line-height: 1.45;
    display: flex;
    align-items: flex-start;
}
.footer__list li:last-child { border-bottom: none; }
.footer__list li > a {
    display: inline-flex;
    align-items: center;
    gap: 0.32rem;
    position: relative;
    padding-left: 0;
}
.footer__list li > a::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%) scaleX(0);
    width: 14px;
    height: 2px;
    border-radius: 2px;
    background: linear-gradient(90deg, var(--c-secondary), var(--c-accent));
    transform-origin: right center;
    transition: transform 260ms cubic-bezier(.34,1.56,.64,1);
    opacity: 0;
}
.footer__list li > a:hover {
    padding-left: 1.1rem;
    color: #fff;
}
.footer__list li > a:hover::before { transform: translateY(-50%) scaleX(1); opacity: 1; }

/* ===== COLUNA 1: BRAND / SOBRE ===== */
.footer__col--brand .footer__brand { display: flex; flex-direction: column; gap: 0.75rem; }
.footer__brand-head {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.3rem;
    border-radius: 12px;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.08);
    align-self: flex-start;
}
.footer__brand-logo {
    width: 44px; height: 44px;
    padding: 4px;
    border-radius: 10px;
    object-fit: contain;
    background: #fff;
    flex-shrink: 0;
    box-shadow: 0 4px 14px rgba(10,36,99,0.35), inset 0 1px 0 rgba(255,255,255,0.6);
    border: 1px solid rgba(255,255,255,0.18);
}
.footer__brand-name { display: flex; flex-direction: column; line-height: 1.05; }
.footer__brand-name strong {
    color: #fff;
    font-family: var(--font-title);
    font-size: 1.08rem;
    font-weight: 800;
    letter-spacing: -0.01em;
    background: linear-gradient(90deg, #fff, #cfe1ff 78%, #ffd3a6);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 1px 0 rgba(0,0,0,0.2));
}
.footer__brand-name small {
    display: inline-block;
    margin-top: 0.18rem;
    font-size: 0.65rem;
    font-weight: 600;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--c-accent);
    padding: 0.1rem 0.48rem;
    border-radius: 999px;
    background: rgba(249,115,22,0.14);
    border: 1px solid rgba(249,115,22,0.28);
    align-self: flex-start;
    white-space: nowrap;
}
.footer__brand-desc {
    color: #b6c3d8;
    font-size: 0.83rem;
    line-height: 1.52;
    margin: 0;
}
.footer__brand-badges {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.3rem 0.55rem;
}
.footer__brand-badges li {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    font-size: 0.77rem;
    font-weight: 500;
    color: #dbe3f0;
    padding: 0.25rem 0.4rem;
    border-radius: 9px;
    background: rgba(255,255,255,0.04);
    border: 1px solid rgba(255,255,255,0.06);
}
.footer__brand-badges li span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px; height: 16px;
    border-radius: 50%;
    background: linear-gradient(135deg, #22c35c, #0ba649);
    color: #fff;
    font-size: 0.62rem;
    font-weight: 700;
    box-shadow: 0 1px 0 rgba(0,0,0,0.2);
}

/* ===== FOOTER SOCIAL ===== */
.footer__social {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: 0.1rem;
}
.footer__social a {
    --pl: #94a3b8;
    --pl-dark: #64748b;
    width: 40px;
    height: 40px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(255,255,255,0.09), rgba(255,255,255,0.04));
    border: 1px solid rgba(255,255,255,0.08);
    color: #dbe3f0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    transition:
        transform 280ms cubic-bezier(.34,1.56,.64,1),
        background-color 260ms ease,
        color 260ms ease,
        border-color 260ms ease,
        box-shadow 280ms ease;
    overflow: hidden;
    position: relative;
}
.footer__social a::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, var(--pl), var(--pl-dark));
    opacity: 0;
    transform: scale(0.5);
    transition: opacity 260ms ease, transform 360ms cubic-bezier(.34,1.56,.64,1);
    z-index: 0;
}
.footer__social a svg,
.footer__social a svg * {
    position: relative;
    z-index: 1;
    transition: transform 260ms cubic-bezier(.34,1.56,.64,1);
}
.footer__social a:hover {
    transform: translateY(-3px) rotate(-1.5deg);
    color: #fff;
    border-color: rgba(255,255,255,0.25);
    box-shadow: 0 12px 28px rgba(0,0,0,0.32), 0 0 0 1px rgba(255,255,255,0.06);
}
.footer__social a:hover::before { opacity: 1; transform: scale(1); }
.footer__social a:hover svg { transform: scale(1.08); }
.footer__social a[data-social="wa"] { --pl:#25D366; --pl-dark:#128C7E; }
.footer__social a[data-social="mail"] { --pl:#3b82f6; --pl-dark:#1d4ed8; }
.footer__social a[data-social="ig"] { --pl:#E1306C; --pl-dark:#833AB4; }
.footer__social a[data-social="fb"] { --pl:#1877F2; --pl-dark:#0d5fcb; }
.footer__social a[data-social="li"] { --pl:#0A66C2; --pl-dark:#004182; }

/* ===== COLUNA CONTATO ===== */
.footer__list--contact li {
    padding: 0.4rem 0;
    gap: 0.55rem;
    align-items: flex-start;
    border-bottom: 1px dashed rgba(255,255,255,0.07);
}
.footer__list--contact li:last-child { border-bottom: none; padding-bottom: 0; }
.footer__ci-ico {
    flex-shrink: 0;
    width: 26px; height: 26px;
    border-radius: 7px;
    display: inline-flex; align-items: center; justify-content: center;
    background: rgba(62,146,204,0.18);
    border: 1px solid rgba(62,146,204,0.28);
    font-size: 0.78rem;
}
.footer__col--contact .footer__list--contact li:nth-child(3) .footer__ci-ico,
.footer__col--contact .footer__list--contact li:nth-child(4) .footer__ci-ico {
    background: rgba(34,195,92,0.16);
    border-color: rgba(34,195,92,0.28);
}
.footer__col--contact .footer__list--contact li:nth-child(5) .footer__ci-ico {
    background: rgba(59,130,246,0.16);
    border-color: rgba(59,130,246,0.28);
}
.footer__col--contact .footer__list--contact li:nth-child(6) .footer__ci-ico {
    background: rgba(249,115,22,0.16);
    border-color: rgba(249,115,22,0.28);
}
.footer__list--contact strong { color: #fff; font-size: 0.84rem; font-weight: 700; display: block; }
.footer__list--contact small { color: #b6c3d8; font-size: 0.80rem; }
.footer__list--contact a { color: inherit; }
.footer__list--contact a:hover small { color: #fff; }
.footer__mini-label {
    display: inline-block;
    margin-left: 0.4rem;
    font-size: 0.66rem;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    color: #22c35c;
    padding: 0.08rem 0.38rem;
    border-radius: 999px;
    background: rgba(34,195,92,0.12);
    border: 1px solid rgba(34,195,92,0.22);
    white-space: nowrap;
}

.footer__btn-wa {
    display: grid !important;
    grid-template-columns: auto 1fr;
    grid-template-rows: auto auto;
    column-gap: 0.65rem;
    row-gap: 0.05rem;
    align-items: center;
    margin-top: 0.7rem;
    padding: 0.65rem 0.85rem 0.7rem 0.75rem;
    border-radius: 12px;
    background: linear-gradient(135deg, #22c35c 0%, #128c56 100%);
    color: #fff !important;
    border: 1px solid rgba(255,255,255,0.16);
    box-shadow:
        0 6px 22px rgba(34,195,92,0.28),
        inset 0 1px 0 rgba(255,255,255,0.28);
    transition:
        transform 260ms cubic-bezier(.34,1.56,.64,1),
        box-shadow 280ms ease,
        filter 240ms ease;
    position: relative;
    overflow: hidden;
}
.footer__btn-wa::before {
    content: '';
    position: absolute;
    top: -60%;
    left: -30%;
    width: 56%;
    height: 220%;
    background: linear-gradient(115deg, transparent, rgba(255,255,255,0.32), transparent);
    transform: translateX(-150%) rotate(14deg);
    transition: transform 900ms cubic-bezier(.22,1,.36,1);
    z-index: 0;
}
.footer__btn-wa:hover { transform: translateY(-3px); filter: brightness(1.04); box-shadow: 0 14px 34px rgba(34,195,92,0.38), inset 0 1px 0 rgba(255,255,255,0.32); }
.footer__btn-wa:hover::before { transform: translateX(250%) rotate(14deg); }
.footer__btn-wa strong { grid-column: 2; font-size: 0.88rem; font-weight: 700; position: relative; z-index: 1; color: #fff; }
.footer__btn-wa small { grid-column: 2; color: rgba(255,255,255,0.92); font-size: 0.75rem; position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 0.22rem; }
.footer__btn-wa-dot {
    grid-row: 1 / span 2;
    grid-column: 1;
    align-self: center;
    justify-self: center;
    width: 32px; height: 32px;
    border-radius: 50%;
    background: rgba(255,255,255,0.18);
    border: 1px solid rgba(255,255,255,0.22);
    display: inline-flex; align-items: center; justify-content: center;
    position: relative;
    z-index: 1;
}
.footer__btn-wa-dot::before {
    content: '';
    position: absolute;
    inset: -4px;
    border-radius: 50%;
    background: rgba(34,195,92,0.35);
    animation: footerWaPulse 2.1s cubic-bezier(.4,0,.6,1) infinite;
}
.footer__btn-wa-dot::after {
    content: '';
    width: 9px; height: 9px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(34,195,92,0.5), 0 0 10px rgba(255,255,255,0.7);
    position: relative;
    z-index: 2;
}
@keyframes footerWaPulse {
    0%   { transform: scale(0.7); opacity: 0.85; }
    70%  { transform: scale(1.7); opacity: 0; }
    100% { transform: scale(1.7); opacity: 0; }
}

/* ===== BOTTOM ===== */
.footer__bottom {
    position: relative;
    z-index: 2;
    border-top: 1px solid rgba(255,255,255,0.1);
    background: linear-gradient(180deg, rgba(0,0,0,0), rgba(0,0,0,0.3));
    padding: 0.7rem 0;
    font-size: 0.80rem;
    color: #94a3b8;
}
.footer__bottom::before {
    content: '';
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 60%;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(62,146,204,0.45), rgba(249,115,22,0.4), transparent);
}
.footer__bottom-inner { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.6rem 1rem; }
.footer__bottom a { color: #e2e8f0; }
.footer__bottom a:hover { color: #fff; }
.footer__bottom strong { color: #e2e8f0; font-weight: 700; }
.footer__bottom-links { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.6rem; margin: 0; color: #94a3b8; }
.footer__bottom-links span { opacity: 0.5; }

/* ===== RESPONSIVIDADE FOOTER ===== */
@media (max-width: 1280px) {
    .footer__grid { grid-template-columns: 1.2fr 1fr 1fr; row-gap: 1.5rem; }
    .footer__col--brand { grid-column: 1 / -1; }
    .footer__brand-head { max-width: 100%; }
    .footer__promo-card { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
    .footer__grid { grid-template-columns: 1fr 1fr; gap: 1.3rem 1.1rem; }
    .footer__col--brand,
    .footer__col--contact { grid-column: 1 / -1; }
    .footer__promo-card { grid-template-columns: 1fr; }
    .footer__promo-item { padding: 0.75rem; }
    .footer { padding-top: 1.7rem; }
}
@media (max-width: 560px) {
    .footer__grid { grid-template-columns: 1fr; gap: 1.3rem; }
    .footer__promo { margin-bottom: 1.4rem; }
    .footer__promo-item { flex-direction: column; align-items: flex-start; gap: 0.55rem; }
    .footer__promo-ico { width: 40px; height: 40px; }
    .footer__brand-badges { grid-template-columns: 1fr; }
    .footer__bottom-inner { flex-direction: column; align-items: flex-start; }
    .footer__bottom-links { width: 100%; justify-content: flex-start; }
}

/* =========== CLASSES UTILITÁRIAS FINAIS =========== */
.divider { height: 1px; background: var(--c-border); margin: 1.5rem 0; }
.bg-grad { background: linear-gradient(135deg, var(--c-primary) 0%, var(--c-secondary) 100%); color: #fff; }
.bg-grad h2, .bg-grad h3, .bg-grad p { color: inherit; }
.badge { display: inline-block; padding: 0.25rem 0.6rem; border-radius: 999px; font-size: 0.76rem; font-weight: 700; }
.badge-primary { background: var(--c-bg-2); color: var(--c-primary); }
.badge-accent  { background: #fee2e2; color: var(--c-accent); }

.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); border: 0; }

/* =========== MOBILE FIX (≤ 640px) =========== */
@media (max-width: 640px) {
    .container { padding: 0 0.9rem; }
    section { padding: 2rem 0; }
    .hero { padding: 2rem 0 1.8rem; }
    .hero__stats { grid-template-columns: 1fr 1fr; }
    .hero__stats > *:last-child { grid-column: span 2; }
    .btn + .btn { margin-left: 0; margin-top: 0.6rem; }
    .hero__ctas { flex-direction: column; align-items: stretch; }
    .hero__ctas .btn { justify-content: center; width: 100%; }
    .cards, .steps, .services-grid, .news-grid { grid-template-columns: 1fr; }
    .doc-grid { grid-template-columns: 1fr; }
    .tabs { overflow-x: auto; flex-wrap: nowrap; padding-bottom: 0.5rem; -webkit-overflow-scrolling: touch; }
    .tabs .tab { flex-shrink: 0; white-space: nowrap; }
    .busca-form { flex-direction: column; }
    .busca-form input { width: 100%; }
    .utils-chips { justify-content: flex-start; overflow-x: auto; flex-wrap: nowrap; padding-bottom: 0.3rem; -webkit-overflow-scrolling: touch; }
    .utils-chips .chip { flex-shrink: 0; }
    .topbar__inner { flex-direction: column; gap: 0.35rem; text-align: center; }
    .header__inner { padding: 0.7rem 0.9rem; gap: 0.5rem; }
    .brand__logo { width: 42px; }
    .brand__name strong { font-size: 1.05rem; }
    .brand__name small { display: none; }
    .footer { margin-top: 1.6rem; padding-top: 1.8rem; }
    .footer__bottom-inner { flex-direction: column; align-items: flex-start; gap: 0.35rem; }
    .hero__img::before, .hero__img::after { display: none; }
    .footer::before { display: none; }
    .cal__day { min-height: 56px; padding: 0.2rem; }
    .cal__event { font-size: 0.6rem; }
    .wa-float { right: 0.75rem; bottom: 0.75rem; }
    .wa-float__btn { width: 50px; height: 50px; font-size: 1.4rem; }
    .wa-float__btn--2 { width: 42px; height: 42px; font-size: 1.1rem; }
}

/* =========== MOBILE TINY (≤ 380px) =========== */
@media (max-width: 380px) {
    body { font-size: 14px; }
    .hero__stats { grid-template-columns: 1fr; }
    .hero__stats > *:last-child { grid-column: auto; }
    .step, .card, .service-card, .news-card { padding: 1.1rem; }
    .doc-item { padding: 0.55rem 0.65rem; gap: 0.55rem; }
    .doc-item__ext { min-width: 42px; height: 42px; font-size: 0.68rem; }
    .contact-info { padding: 1.2rem; }
    .form-group input, .form-group textarea, .form-group select { padding: 0.65rem 0.8rem; font-size: 0.92rem; }
    .btn { padding: 0.65rem 1rem; font-size: 0.9rem; }
    .btn-lg { padding: 0.85rem 1.2rem; font-size: 1rem; }
}

/* =========================================================
   D1 — BLOCO 768px EXPLÍCITO (ajustes concretos)
   D5 — TABLET 641–768px: utils-chips wrap (sem scroll)
   ========================================================= */
@media (max-width: 768px) {
    section { padding: 2.4rem 0; }
    .hero { padding: 2.8rem 0 2.2rem; }
    .hero__grid { grid-template-columns: 1fr; }
    .hero__img { order: -1; aspect-ratio: 16/9; }
    .steps, .services-grid, .news-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .cards { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .news-grid { gap: 1rem; }
}
@media (max-width: 768px) and (min-width: 641px) {
    .utils-chips { overflow: visible; flex-wrap: wrap; justify-content: center; padding-bottom: 0; }
    .utils-chips .chip { flex-shrink: 1; }
}
/* =========================================================
   D2 — BOOTSTRAP 5 CONTAINER ESCALONADO 5 LARGURAS
   (min-width) 576 → 540 | 768 → 720 | 992 → 960 | 1200 → 1140 | 1400 → 1320
   ========================================================= */
@media (min-width: 576px) { .container { max-width: 540px !important; } }
@media (min-width: 768px) { .container { max-width: 720px !important; } }
@media (min-width: 992px) { .container { max-width: 960px !important; } }
@media (min-width: 1200px) { .container { max-width: 1140px !important; } }
@media (min-width: 1400px) { .container { max-width: 1320px !important; } }

/* =========================================================
   D3 — img clamp: responsivo global + 16:9 cover em cards/hero/news
   ========================================================= */
img { max-width: 100%; height: auto; display: block; }
.hero__img, .card img, .service-card img, .news-card__img, .news-card__image,
.news-card > a:first-child { aspect-ratio: 16/9; object-fit: cover; object-position: center; }


/* =========== CONTATO COMPACTO + FOOTER COMPACTO + MENU FIX =========== */
.section-title--left { text-align: left !important; margin-bottom: 1rem !important; }
.section-title--left h2,
.section-title--left p { margin-left: 0 !important; margin-right: auto !important; }
.mb-1 { margin-bottom: 1rem !important; }

.contact-info--compact .card-info { padding: 0.85rem 0.95rem; gap: 0.7rem; }
.contact-info--compact .card-info__icon { width: 40px; height: 40px; border-radius: 11px; }
.contact-info--compact .card-info__icon svg { width: 18px; height: 18px; }
.contact-info--compact .card-info__body strong { font-size: 0.86rem; margin-bottom: 3px; }
.contact-info--compact .card-info__body p { font-size: 0.84rem; line-height: 1.4; }
.contact-info--compact .link-underline { font-size: 0.82rem; margin-top: 2px; }

.contact-bottom-section {
    padding: clamp(1.8rem, 3.8vw, 3rem) 0;
    background:
        radial-gradient(1000px 460px at 90% -10%, rgba(10,36,99,0.08), transparent 60%),
        linear-gradient(180deg, var(--c-bg-2), #fff);
}
.contact-bottom-grid {
    display: grid;
    grid-template-columns: 1.15fr 0.95fr;
    gap: clamp(1.2rem, 2.2vw, 2rem);
    align-items: start;
}
.contact-map-block,
.contact-faq-block { display: flex; flex-direction: column; gap: 0.8rem; }

.contact-map-card--compact {
    display: grid;
    grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr);
    gap: 0;
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 22px 50px -30px rgba(10,36,99,0.25), 0 0 0 1px rgba(10,36,99,0.06);
}
.contact-map--compact { min-height: 300px; position: relative; background: var(--c-bg-2); }
.contact-map--compact iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; display: block; }

.contact-map-side--compact {
    padding: 1.1rem 1.2rem;
    display: flex; flex-direction: column; gap: 0.75rem;
    background: linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,255,255,0.94)),
                linear-gradient(135deg, rgba(10,36,99,0.05), rgba(230,57,70,0.04));
    border-left: 1px solid var(--c-border);
}
.contact-map-list--compact { display: flex; flex-direction: column; gap: 0.45rem; list-style: none; padding: 0; margin: 0; }
.contact-map-list--compact li {
    display: flex; gap: 0.5rem;
    color: #475569; font-size: 0.88rem; line-height: 1.45;
    padding: 0.45rem 0.6rem;
    background: rgba(10,36,99,0.035);
    border-radius: var(--radius-sm);
    border: 1px solid rgba(10,36,99,0.06);
}
.contact-map-list--compact li strong {
    color: var(--c-primary-dark); min-width: 80px;
    font-size: 0.82rem; letter-spacing: 0.005em;
}
.contact-map-actions { display: flex; flex-wrap: wrap; gap: 0.55rem; margin-top: auto; padding-top: 0.2rem; }
.contact-map-actions .btn {
    flex: 1 1 180px; min-height: 44px;
    display: inline-flex; align-items: center; justify-content: center;
    gap: 0.4rem; padding: 0.55rem 0.85rem; font-weight: 600; border-radius: var(--radius-md);
    font-size: 0.86rem;
}
.contact-map-actions .btn svg { width: 16px; height: 16px; display: block; }

.contact-faq-list--compact { display: flex; flex-direction: column; gap: 0.6rem; list-style: none; padding: 0; margin: 0; }
.faq-item--compact {
    padding: 0.8rem 0.9rem;
    background: rgba(255,255,255,0.96);
    border: 1px solid var(--c-border);
    border-radius: var(--radius-md);
    position: relative; overflow: hidden;
    transition: transform 220ms ease, box-shadow 220ms ease, border-color 220ms ease;
}
.faq-item--compact::before {
    content: ''; position: absolute; left: 0; top: 0; bottom: 0;
    width: 3px; background: linear-gradient(180deg, var(--c-accent), var(--c-primary-dark));
    opacity: 0.85;
}
.faq-item--compact:hover {
    transform: translateY(-2px);
    border-color: rgba(249,115,22,0.35);
    box-shadow: 0 8px 18px -12px rgba(10,36,99,0.3);
}
.faq-item--compact .faq-item__q {
    display: flex; align-items: flex-start; gap: 0.55rem;
    color: var(--c-primary-dark); font-size: 0.92rem; line-height: 1.35;
}
.faq-item--compact .faq-item__q strong { font-weight: 700; }
.faq-item--compact .faq-item__q svg {
    flex-shrink: 0; margin-top: 1px; width: 18px; height: 18px;
    color: var(--c-accent); background: rgba(249,115,22,0.12);
    border-radius: 50%; padding: 3px; box-sizing: content-box;
}
.faq-item--compact .faq-item__a {
    display: block; margin-top: 0.4rem;
    margin-left: calc(18px + 0.55rem + 3px);
    color: var(--c-muted); font-size: 0.86rem; line-height: 1.55;
}
.faq-item--compact .faq-item__a strong { color: var(--c-primary-dark); font-weight: 700; }

@media (max-width: 1100px) {
    .contact-bottom-grid { grid-template-columns: 1fr; }
}
@media (max-width: 860px) {
    .contact-map-card--compact { grid-template-columns: 1fr; }
    .contact-map-side--compact { border-left: 0; border-top: 1px solid var(--c-border); }
    .contact-map--compact { min-height: 260px; }
}
@media (max-width: 560px) {
    .faq-item--compact .faq-item__a { margin-left: 0; padding-left: calc(18px + 0.55rem + 3px); }
    .contact-map-list--compact li { flex-direction: column; gap: 0.15rem; }
    .contact-map-list--compact li strong { min-width: auto; }
    .trust-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 420px) {
    .trust-row { grid-template-columns: 1fr 1fr; gap: 0.55rem; }
    .trust-row li { padding: 0.7rem 0.8rem; }
}

/* ===== FOOTER COMPACTO ===== */
.footer { padding-top: 2.2rem; margin-top: 2.2rem; }
.footer__promo { margin-bottom: 2rem; }
.footer__promo-card { padding: 0.9rem; gap: 0.8rem; border-radius: 16px; }
.footer__promo-item { padding: 0.85rem 1rem; gap: 0.85rem; border-radius: 13px; }
.footer__promo-ico { width: 42px; height: 42px; border-radius: 11px; }
.footer__promo-ico svg { width: 20px; height: 20px; }
.footer__promo-title { font-size: 0.95rem; }
.footer__promo-item p { margin-top: 0.25rem; font-size: 0.82rem; line-height: 1.45; }

.footer__grid {
    gap: 1.3rem 1.5rem;
    padding-bottom: 1.8rem;
    grid-template-columns: 1.2fr 0.88fr 0.88fr 0.95fr 1.15fr;
}
.footer h4 { margin-bottom: 0.85rem; padding-bottom: 0.55rem; font-size: 0.92rem; }
.footer h4::after { width: 34px; height: 2.5px; }
.footer__list li { padding: 0.28rem 0; font-size: 0.84rem; line-height: 1.45; border-bottom: 1px solid rgba(255,255,255,0.05); }
.footer__list li > a { gap: 0.28rem; }
.footer__list li > a:hover { padding-left: 1rem; }

.footer__col--brand .footer__brand { gap: 0.8rem; }
.footer__brand-head { gap: 0.75rem; padding: 0.35rem; border-radius: 13px; }
.footer__brand-logo { width: 48px; height: 48px; padding: 4px; border-radius: 10px; }
.footer__brand-name strong { font-size: 1.08rem; }
.footer__brand-name small { margin-top: 0.18rem; font-size: 0.64rem; padding: 0.1rem 0.5rem; }
.footer__brand-desc { font-size: 0.84rem; line-height: 1.55; }
.footer__brand-badges { gap: 0.32rem 0.6rem; }
.footer__brand-badges li { padding: 0.3rem 0.5rem; font-size: 0.76rem; border-radius: 9px; gap: 0.35rem; }
.footer__brand-badges li span { width: 15px; height: 15px; font-size: 0.58rem; }

.footer__social { gap: 0.45rem; margin-top: 0.1rem; }
.footer__social a { width: 38px; height: 38px; border-radius: 11px; }
.footer__social a svg { width: 17px; height: 17px; }

.footer__list--contact li { padding: 0.5rem 0; gap: 0.6rem; }
.footer__ci-ico { width: 26px; height: 26px; border-radius: 7px; font-size: 0.76rem; }
.footer__list--contact strong { font-size: 0.84rem; }
.footer__list--contact small { font-size: 0.8rem; }
.footer__mini-label { margin-left: 0.35rem; font-size: 0.62rem; padding: 0.06rem 0.34rem; }

.footer__btn-wa {
    margin-top: 0.8rem;
    padding: 0.7rem 0.85rem 0.75rem 0.8rem;
    border-radius: 13px;
    column-gap: 0.65rem;
    row-gap: 0.08rem;
}
.footer__btn-wa strong { font-size: 0.88rem; }
.footer__btn-wa small { font-size: 0.75rem; }
.footer__btn-wa-dot { width: 31px; height: 31px; }

.footer__bottom { padding: 0.9rem 0; font-size: 0.8rem; }
.footer__bottom-inner { gap: 0.5rem 0.9rem; }
.footer__bottom-links { gap: 0.5rem; }

@media (max-width: 1280px) {
    .footer__grid { row-gap: 1.8rem; }
}
@media (max-width: 960px) {
    .footer { padding-top: 2rem; }
    .footer__promo { margin-bottom: 1.7rem; }
}
@media (max-width: 560px) {
    .footer { padding-top: 1.8rem; }
    .footer__promo { margin-bottom: 1.5rem; }
    .footer__brand-badges { grid-template-columns: 1fr 1fr; }
}

/* ===== MENU CANVAS (OFF-CANVAS) - CORREÇÕES ===== */
@media (max-width: 1400px) {
    .nav {
        position: fixed;
        top: 0;
        right: -120%;
        width: min(86vw, 360px);
        height: 100dvh;
        max-height: 100dvh;
        background:
            linear-gradient(180deg, #ffffff 0%, #fafcff 100%);
        box-shadow: -30px 0 80px rgba(10,36,99,0.25);
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start !important;
        gap: 0;
        padding: 5.2rem 1.4rem 1.6rem;
        transition: right 340ms cubic-bezier(.4,0,.2,1);
        z-index: 2147483643 !important;
        overflow-y: auto;
        overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }
    .nav.is-open {
        right: 0 !important;
        transform: translateX(0) !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    body.nav-open::after {
        content: '';
        position: fixed; inset: 0;
        background:
            radial-gradient(circle at 100% 0%, rgba(10,36,99,0.20) 0%, rgba(10,36,99,0.52) 100%);
        backdrop-filter: blur(3px) saturate(120%);
        -webkit-backdrop-filter: blur(3px) saturate(120%);
        z-index: 2147483639 !important;
        animation: fadeInBackdrop 260ms ease both;
    }
    .nav-toggle {
        display: block !important;
        position: relative;
        z-index: 2147483642 !important;
    }
    .nav__list { flex-direction: column !important; gap: 0.2rem !important; margin-bottom: 1rem; }
    .nav__item { border-bottom: 1px solid rgba(10,36,99,0.08); }
    .nav__item:last-child { border-bottom: none; }
    .nav__link { padding: 0.85rem 0.5rem; font-size: 0.96rem; gap: 0.65rem; }
    .nav__icon { display: inline-flex !important; font-size: 1.05rem; }
    .nav__actions {
        flex-direction: column; gap: 0.6rem;
        margin-left: 0; padding-top: 1rem;
        border-top: 1px solid rgba(10,36,99,0.08);
    }
    .nav__actions .btn { width: 100%; justify-content: center; padding: 0.78rem 1rem; font-size: 0.92rem; }
}
@keyframes fadeInBackdrop { from { opacity: 0; } to { opacity: 1; } }

/* ===== RADIUS MD ===== */
:root { --radius-md: 12px; }

/* ===== LOGO BRAND HEADER: EMBLEMA ALTERNATIVO ===== */
.brand__logo-wrap--alt {
    background: linear-gradient(135deg, #ffffff 0%, #eef5ff 100%);
    box-shadow:
        0 2px 0 rgba(10,36,99,0.10),
        0 6px 18px rgba(10,36,99,0.18),
        inset 0 1px 0 rgba(255,255,255,0.9);
    border: 1px solid rgba(10,36,99,0.14);
}
.brand__logo-wrap--alt::after { border: 1.5px solid rgba(10,36,99,0.12); }
.brand__logo--alt {
    background: transparent !important;
    border-radius: 0 !important;
    padding: 2px !important;
}
/* ======= HOME COMPACTA V2 + BRAND VALORIZAÇÃO + NAV Z-INDEX MÁX ======= */
section { padding: clamp(1.35rem, 3.1vw, 2.3rem) 0; }
section.bg-white { padding-top: clamp(1.2rem, 2.8vw, 2rem) !important; padding-bottom: clamp(1.2rem, 2.8vw, 2rem) !important; }
.bg-grad { padding: clamp(1.6rem, 3.6vw, 2.6rem) 0 !important; }
.utils-section { padding: clamp(1.3rem, 3vw, 2.2rem) 0 !important; }
.cta-final { padding: 2.1rem 0 !important; }

.section-title { margin-bottom: 1.3rem; }
.section-title h2 { margin: 0 auto 0.4rem; font-size: clamp(1.3rem, 2.3vw, 1.75rem); }
.section-title p { margin-bottom: 0; font-size: 0.93rem; }

/* Hero compacto */
.hero { padding: clamp(1.8rem, 3.8vw, 2.8rem) 0 clamp(1.5rem, 3.2vw, 2.4rem) !important; }
.hero .lead { font-size: clamp(0.92rem, 1.4vw, 1.05rem); margin-bottom: 0.95rem; }
.hero__ctas { margin-top: 1.05rem !important; gap: 0.55rem; }
.hero__ctas .btn { padding: 0.72rem 1.15rem; font-size: 0.93rem; }
.hero__stats { margin-top: 1.15rem; gap: 0.5rem; }
.hero__stat { padding: 0.6rem 0.7rem; border-radius: 10px; }
.hero__stat strong { font-size: 1.1rem; }
.hero__stat span { font-size: 0.76rem; }

/* Cards diferenciais */
.cards { gap: 0.85rem; }
.card { padding: 1rem 1.05rem; border-radius: 13px; }
.card__icon { width: 44px; height: 44px; font-size: 1.28rem; border-radius: 11px; }
.card h3 { font-size: 1.02rem; margin: 0.45rem 0 0.3rem; }
.card p { font-size: 0.89rem; line-height: 1.6; margin: 0; }

/* Banner CTA central */
.banner-cta { padding: 1.5rem 1.05rem !important; margin: 1.4rem 0 !important; }
.banner-cta h2 { font-size: clamp(1.15rem, 2vw, 1.45rem); margin-bottom: 0.3rem; }
.banner-cta h3 { font-size: clamp(0.95rem, 1.6vw, 1.1rem); margin-bottom: 0.55rem; }
.banner-cta p { font-size: 0.9rem; margin-bottom: 0.75rem; line-height: 1.6; }
.banner-cta .btn { padding: 0.7rem 1.1rem; font-size: 0.9rem; }

/* Steps compacto */
.steps { gap: 0.85rem; margin-top: 0.95rem !important; }
.step { padding: 1.1rem 0.9rem 0.85rem; border-radius: 12px; }
.step::before { width: 40px; height: 40px; font-size: 0.92rem; }
.step h4 { margin: 0.3rem 0 0.2rem; font-size: 1.02rem; }
.step p { margin: 0; font-size: 0.9rem; line-height: 1.58; }

/* Services grid compacto V2 */
.services-grid { gap: 0.95rem; }
.service-card { padding: 1.2rem 1.05rem 0.95rem; border-radius: 13px; }
.service-card h3 { font-size: 1.08rem; margin: 0.2rem 0 0.35rem; }
.service-card p { margin: 0 0 0.7rem; font-size: 0.9rem; line-height: 1.6; }
.service-card__icon { right: 1.05rem; top: 1.05rem; opacity: 0.06; }
.service-card__icon svg { width: 34px; height: 34px; }
.service-card .btn { padding: 0.55rem 0.9rem; font-size: 0.84rem; }

/* Utils section compacto */
.utils-section .section-title { margin-bottom: 1rem; }
.utils-section p.lead { font-size: 0.92rem; margin-bottom: 0; }
.utils-chips { margin: 0.95rem 0 0.1rem; gap: 0.48rem; }
.chip { padding: 0.5rem 0.8rem; font-size: 0.83rem; border-radius: 999px; gap: 0.35rem; }
.chip svg { width: 14px; height: 14px; }

/* FAQ compacto V2 */
.faq { gap: 0.55rem; margin-top: 0.95rem; }
.faq ~ .section-title { margin-bottom: 0.7rem; }
summary { padding: 0.8rem 1rem; font-size: 0.92rem; border-radius: 9px; }
details > div:last-child { padding: 0.3rem 1rem 0.8rem; line-height: 1.65; font-size: 0.9rem; }
details ul { padding-left: 1rem; margin: 0.3rem 0 0; }
details li { padding: 0.14rem 0; font-size: 0.89rem; }

/* News compacto V2 — MAIOR ECONOMIA (era 1318px, alvo ≤900px) */
.news-grid { gap: 0.95rem; margin-top: 0.9rem; }
.news-card { border-radius: 13px; }
.news-card__img, .news-card__image, .news-card > a:first-child { aspect-ratio: 16/7 !important; font-size: 1.9rem; }
.news-card__body { padding: 0.8rem 0.95rem 0.9rem; gap: 0.35rem; }
.news-card__meta { margin-bottom: 0; gap: 0.35rem; font-size: 0.76rem; }
.news-card__meta span { display: inline-flex; align-items: center; gap: 0.25rem; }
.news-card__meta svg { width: 13px; height: 13px; }
.news-card h3 { font-size: 0.98rem; line-height: 1.32; margin: 0.1rem 0 0.2rem; }
.news-card p { font-size: 0.86rem; line-height: 1.55; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.news-card__cta { font-size: 0.78rem; margin-top: 0.05rem; padding: 0.45rem 0; }

/* CTA final compacto V2 */
.cta-final h2 { font-size: clamp(1.4rem, 2.5vw, 1.9rem); margin-top: 0.05rem !important; }
.cta-final p { margin-top: 0.55rem !important; font-size: 0.96rem !important; line-height: 1.6 !important; }
.cta-final .hero__ctas { margin-top: 1.05rem !important; }
.cta-final .hero__ctas .btn { padding: 0.78rem 1.2rem; font-size: 0.95rem; }

/* ===== BRAND / LOGO VALORIZAÇÃO V2 — REFATORADO (sem padding/border-radius duplicados!) =====
   ATENÇÃO: padding e border-radius do brand__logo-wrap SÃO GERENCIADOS PELO BLOCO V4 no
   final do arquivo (L3176 brand__logo-wrap base + L3245 breakpoints + footer__brand-logo).
   AQUI só definimos WIDTHS por breakpoint e font-sizes do texto do brand.
   NÃO sobrescreva padding / border-radius neste bloco! */
@media (min-width: 1601px) {
    .brand__logo-wrap { width: clamp(68px, 6.6vw, 84px) !important; }
    .brand__name strong { font-size: 1.5rem !important; }
    .brand__name small { font-size: 0.77rem !important; padding: 0.15rem 0.58rem; }
}
@media (min-width: 1401px) and (max-width: 1600px) {
    .brand__logo-wrap { width: 60px !important; }
    .brand { gap: 0.75rem !important; padding: 0.4rem 0.9rem 0.4rem 0.35rem !important; }
    .brand__name strong { font-size: 1.26rem !important; }
    .brand__name small { display: block !important; font-size: 0.69rem !important; padding: 0.12rem 0.5rem; margin-top: 0.14rem; }
}
@media (max-width: 1400px) {
    .brand__logo-wrap { width: 56px !important; }
    .brand__name strong { font-size: 1.16rem !important; }
    .brand { gap: 0.75rem !important; padding: 0.4rem 0.9rem 0.4rem 0.35rem !important; }
}
@media (max-width: 1024px) {
    .brand__logo-wrap { width: 52px !important; }
    .brand__name strong { font-size: 1.1rem !important; }
    .brand { gap: 0.7rem !important; padding: 0.35rem 0.85rem 0.35rem 0.35rem !important; }
}
@media (max-width: 768px) {
    .brand__logo-wrap { width: 50px !important; }
    .brand__name strong { font-size: 1.05rem !important; }
}
@media (max-width: 480px) {
    .brand__logo-wrap { width: 48px !important; }
    .brand__name strong { font-size: 1.02rem !important; }
    .brand__name small { display: none !important; }
}
/* footer__brand-logo — dimensões apenas, padding/radius do bloco V4 final (L3278) */
.footer__brand-logo { width: 64px !important; height: 64px !important; }

/* ===== NAV CANVAS V3: FORA DO HEADER + RIGHT FIX + BACKDROP-FILTER LOCKOUT ===== */
@media (max-width: 1400px) {
    /* proteção dupla: NAV agora está FORA do header; remover filter/backdrop do header
       para impedir criação acidental de containing block no futuro */
    .header,
    .header.scrolled,
    .header__inner,
    .topbar {
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        filter: none !important;
        transform: none !important;
        will-change: auto !important;
        perspective: none !important;
    }
    .nav {
        z-index: 2147483647 !important;
        /* NÃO usar shorthand `inset` pois sobrescreve `top` abaixo.
           Ordem importa: propriedades individuais DEPOIS garantem o valor. */
        position: fixed !important;
        inset: auto !important;          /* reset qualquer shorthand anterior */
        top: 0 !important;               /* FIXO no topo DA VIEWPORT (não scroll) */
        right: -120% !important;         /* FORA da tela por padrão */
        bottom: auto !important;
        left: auto !important;
        float: none !important;
        display: flex !important;
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
        width: min(86vw, 360px) !important;
        max-width: min(86vw, 360px) !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 5.3rem 1.4rem 1.6rem !important;
        background: #ffffff !important;
        background-image: none !important;
        border-left: 1px solid rgba(10, 36, 99, 0.06);
        border-right: none !important;
        box-shadow: -18px 0 50px rgba(8, 28, 78, 0.28);
        transform: none !important;
        translate: none !important;
        will-change: auto !important;
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        contain: layout paint size !important;
    }
    .nav.is-open {
        right: 0 !important;             /* entra em tela pela direita */
        top: 0 !important;
        transform: translateX(0) !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
    }
    .header { z-index: 2147483640 !important; }
    .header__inner { z-index: 2147483641 !important; }
    .nav-toggle { z-index: 2147483646 !important; position: relative; }
    body.nav-open::after { z-index: 2147483639 !important; }
}

/* ===================================================================
   ===== BRAND / HEADER / NAV CANVAS — REFINAMENTO V4 (09/2026) =====
   Objetivos:
     1. REMOVER design quadriculado/desarmônico do brand__logo-wrap
        (antes: gradiente colorido + pseudo brilho + borda branca + logo
         CMS BRANCA sobre fundo BRANCO → totalmente ilegível).
        Solução: brand__logo-wrap AGORA é um wrapper limpo, pois o
        PRÓPRIO PNG do emblema (emblema-header-azulescuro.png) traz:
          - cantos arredondados (radius 18.7%)
          - borda suave azul-vibrante
          - CMS colorida (azul-escuro) com ponto laranja preservado
          - fundo quase-transparente (luminoso em header branco)
     2. Adicionar bloco `.nav__brand` no topo do menu canvas (logomarca
        visível quando o usuário abre o painel lateral mobile).
     3. Footer brand-logo: design limpo (o emblema quadrado azul já traz
        toda a identidade — remover padding extra e bordas duplicadas).
   =================================================================== */

/* --- Base brand wrapper LIMPO (sem gradiente, sem pseudo-elementos!) --- */
.brand__logo-wrap {
    position: relative;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-shrink: 0 !important;
    background: transparent !important;    /* o próprio PNG traz o fundo/borda */
    background-image: none !important;
    box-shadow:
        0 1px 2px rgba(10,36,99,0.06),
        0 4px 14px rgba(10,36,99,0.10) !important;
    padding: 0 !important;                 /* NÃO padding: o PNG já tem respiro */
    border-radius: 17% !important;        /* combina com radius 96/512 do emblema */
    overflow: visible !important;
    isolation: isolate;
    transform: translateZ(0);
    will-change: transform;
    transition: transform 220ms ease, box-shadow 220ms ease;
}
.brand__logo-wrap::before,
.brand__logo-wrap::after {
    content: none !important;             /* REMOVIDOS: brilho diagonal e borda */
    display: none !important;
}
.brand:hover .brand__logo-wrap {
    transform: translateY(-1.5px) scale(1.03);
    box-shadow:
        0 2px 4px rgba(10,36,99,0.08),
        0 10px 26px rgba(10,36,99,0.16) !important;
}

/* --- A imagem do logo (SVG em PNG transparente, já traz o design!) --- */
.brand__logo {
    width: 100% !important;
    height: 100% !important;
    min-width: 0;
    object-fit: contain !important;
    object-position: center center !important;
    background: transparent !important;   /* NÃO mais fundo branco quadrado */
    background-image: none !important;
    border: 0 !important;
    border-radius: 0 !important;         /* NÃO radius duplicado */
    padding: 0 !important;
    margin: 0 !important;
    position: relative !important;
    z-index: 1 !important;
    display: block !important;
    image-rendering: -webkit-optimize-contrast;
    image-rendering: crisp-edges;
}

/* --- Brand name: garante visibilidade em CENÁRIOS MISTOS (fallback SÓLIDO PRIMEIRO!) ---
   Problema anterior: -webkit-text-fill-color:transparent sem @supports → texto invisível
   sobre header branco quando o text-clip não renderizava.
   Solução: 2 camadas:
     (a) Base SÓLIDA visível SEMPRE (color azul escuro + text-shadow leve)
     (b) Gradiente text APENAS em browsers que suportam background-clip:text
         (ou seja, Chrome / Safari / Firefox moderno ≥ 99). */
.brand__name strong {
    /* ===== BASE (fallback sólido inviolável) ===== */
    color: #0A2463 !important;                 /* AZUL-ESCURO VISÍVEL contra fundo branco */
    font-family: var(--font-title);
    font-weight: 800 !important;
    letter-spacing: -0.015em;
    text-shadow: 0 1px 0 rgba(255,255,255,0.55),
                 0 0.5px 0 rgba(10,36,99,0.18) !important;
    filter: drop-shadow(0 0.4px 0 rgba(10,36,99,0.14)) !important;
    /* ===== Gradiente + text-clip SÓ se suporte @supports ===== */
    -webkit-background-clip: initial;
    background-clip: initial;
    background-image: none !important;
    -webkit-text-fill-color: initial;
    background-color: transparent;
}
/* ===== Apenas browsers modernos com suporte: gradiente text ===== */
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
    .brand__name strong {
        background: linear-gradient(90deg, #0A2463 0%, #1E56A0 50%, #F97316 100%) !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        color: #0A2463 !important;  /* fallback caso o text-clip falhe no mesmo browser */
    }
}
/* ===== Fallback extra: se -webkit-text-fill-color ficar transparent sem clip,
         color não aparece. Garantimos pelo filter+shadow que alguma sombra aparece,
         mas por segurança aplicamos cor SÓLIDA sem text-fill em browser antigos
         detectados via user-agent fallback via hard reset abaixo. ===== */
.brand:hover .brand__name strong { filter: drop-shadow(0 1px 0 rgba(10,36,99,0.22)) !important; }

.brand__name small {
    color: #D9670F !important;          /* laranja CONTRASTADO (não neon F97316) */
    background: rgba(249,115,22,0.11) !important;
    border: 1px solid rgba(249,115,22,0.24) !important;
    font-weight: 600 !important;
    letter-spacing: 0.02em !important;
}

/* Menu canvas brand text strong (fundo BRANCO do painel → mesmo fallback sólido) */
.nav__brand-text strong {
    color: #0A2463 !important;
    text-shadow: 0 1px 0 rgba(255,255,255,0.5) !important;
}
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
    .nav__brand-text strong {
        background: linear-gradient(90deg, #0A2463 0%, #1E56A0 50%, #F97316 100%) !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        color: #0A2463 !important;
    }
}
.nav__brand-text small { color: #D9670F !important; }

/* --- Brand breakpoints: WIDTHS e font-sizes DEFINIDOS no bloco V2 (L3060+)
   O bloco V4 só cuida de PADDING=0 + BORDER-RADIUS=17% + BASE SOLID COLOR (L3176-3289).
   NÃO duplicar breakpoints aqui — causa conflito de especificidade! --- */

/* --- Footer brand logo (agora é o emblema quadrado azul — SEM overlays!) --- */
.footer__brand-logo {
    width: 64px !important;
    height: 64px !important;
    padding: 0 !important;                   /* remover padding do emblema */
    border: 0 !important;
    border-radius: 17% !important;          /* combina com radius do emblema */
    box-shadow: 0 4px 14px rgba(0,0,0,0.20) !important;
    background: transparent !important;
    background-image: none !important;
    object-fit: contain !important;
    display: block !important;
    image-rendering: -webkit-optimize-contrast;
    transform: translateZ(0);
}
.footer__brand-name strong { color: #ffffff !important; }
.footer__brand-name small  { color: rgba(255,255,255,0.72) !important; }

/* --- NAV CANVAS: bloco NAV__BRAND (topo do menu lateral mobile ---
   Padding do nav reduzido de 5.3rem → 1.1rem, pois AGORA o nav__brand
   fica NO TOPO do painel (não mais empurrado pelo header). */
@media (max-width: 1400px) {
    .nav {
        padding: 1.1rem 1.15rem 1.6rem !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0.65rem !important;
        overflow-y: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }
    .nav__brand {
        display: flex !important;
        align-items: center !important;
        gap: 0.85rem !important;
        padding: 0.55rem 0.35rem 1.1rem 0.35rem !important;
        border-bottom: 1px solid rgba(10,36,99,0.08);
        margin-bottom: 0.3rem;
    }
    .nav__brand-link {
        display: inline-flex !important;
        align-items: center !important;
        gap: 0.85rem !important;
        text-decoration: none !important;
        color: inherit !important;
        width: 100% !important;
    }
    .nav__brand-logo {
        width: 46px; height: 46px; flex-shrink: 0;
        display: inline-flex; align-items: center; justify-content: center;
        border-radius: 17%;
        box-shadow: 0 4px 14px rgba(10,36,99,0.18);
        overflow: hidden;
    }
    .nav__brand-logo img {
        width: 100%; height: 100%; object-fit: contain; display: block;
    }
    .nav__brand-text { display: flex; flex-direction: column; line-height: 1.05; }
    .nav__brand-text strong {
        font-family: var(--font-title);
        font-weight: 800;
        font-size: 1.1rem;
        letter-spacing: -0.015em;
        color: #081C4E !important;
        background: linear-gradient(90deg, #0A2463 0%, #1E56A0 48%, #F97316 100%) !important;
        -webkit-background-clip: text !important;
        background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
    }
    .nav__brand-text small {
        margin-top: 0.28rem;
        font-size: 0.72rem;
        font-weight: 600;
        color: #F97316 !important;
        padding: 0.12rem 0.5rem;
        background: rgba(249,115,22,0.10);
        border: 1px solid rgba(249,115,22,0.20);
        border-radius: 999px;
        letter-spacing: 0.02em;
        white-space: nowrap;
        display: inline-block;
    }
    .nav__list {
        padding: 0.3rem 0 0.2rem 0 !important;
        margin: 0 !important;
        flex: 1 1 auto;
        overflow-y: auto !important;
        min-height: 0;
    }
    .nav__actions {
        margin-top: auto;
        padding-top: 0.9rem;
        border-top: 1px solid rgba(10,36,99,0.08);
        display: flex !important;
        flex-direction: column !important;
        gap: 0.55rem !important;
    }
    .nav__actions .btn { width: 100% !important; margin-left: 0 !important; justify-content: center !important; }
}

@media (max-width: 480px) {
    .nav { padding: 0.95rem 0.95rem 1.35rem !important; }
    .nav__brand { padding: 0.4rem 0.2rem 0.95rem 0.2rem !important; gap: 0.7rem !important; }
    .nav__brand-logo { width: 42px; height: 42px; }
    .nav__brand-text strong { font-size: 1rem !important; }
    .nav__brand-text small { display: none !important; }
}

/* ===================================================================
   ===== HERO LOGOMARCA (logo BRANCA sombreada sobre fundo azul da hero) =====
   Posicionamento: bloco brand-wrap acima do H1 com logo horizontal.
   Visual profissional: logo destaque + tagline divisória elegante.
   =================================================================== */
.hero__brand-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.85rem;
    margin: 0 auto 1.35rem auto;
    max-width: 520px;
    width: 100%;
    text-align: center;
}
.hero__brand-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    outline: none;
    max-width: 100%;
}
.hero__brand-logo {
    width: auto !important;
    height: auto !important;
    max-width: min(460px, 82vw);
    max-height: 120px;
    display: block !important;
    filter:
        drop-shadow(0 6px 24px rgba(0,0,0,0.28))
        drop-shadow(0 2px 4px rgba(0,0,0,0.15));
    transition: transform 260ms ease, filter 260ms ease;
    will-change: transform;
    transform: translateZ(0);
    image-rendering: -webkit-optimize-contrast;
}
.hero__brand-link:hover .hero__brand-logo {
    transform: translateY(-2px) scale(1.015);
    filter:
        drop-shadow(0 10px 34px rgba(0,0,0,0.34))
        drop-shadow(0 3px 8px rgba(0,0,0,0.18));
}
.hero__brand-link:focus-visible .hero__brand-logo {
    outline: 3px solid rgba(249,115,22,0.7);
    outline-offset: 6px;
    border-radius: 14px;
}
.hero__brand-tagline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.9rem;
    color: rgba(255,255,255,0.86);
    font-size: clamp(0.76rem, 1.25vw, 0.88rem);
    font-weight: 500;
    letter-spacing: 0.03em;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.08);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    border: 1px solid rgba(255,255,255,0.14);
    white-space: nowrap;
    max-width: 100%;
    overflow: hidden;
}
.hero__brand-tagline > span:nth-child(2) {
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: min(560px, 70vw);
}
.hero__brand-divider {
    display: inline-block;
    width: 18px;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.55), transparent);
    flex-shrink: 0;
}

/* ===== Breakpoints hero brand ===== */
@media (max-width: 1024px) {
    .hero__brand-wrap { gap: 0.75rem; margin-bottom: 1.2rem; }
    .hero__brand-tagline { gap: 0.7rem; font-size: 0.82rem; padding: 0.35rem 0.75rem; }
    .hero__brand-divider { width: 14px; }
}
@media (max-width: 768px) {
    .hero__brand-wrap { gap: 0.65rem; margin-bottom: 1.1rem; }
    .hero__brand-logo { max-width: min(380px, 78vw); max-height: 100px; }
    .hero__brand-tagline {
        font-size: 0.78rem;
        padding: 0.32rem 0.65rem;
        gap: 0.55rem;
        letter-spacing: 0.02em;
    }
    .hero__brand-tagline > span:nth-child(2) { max-width: min(440px, 65vw); }
    .hero__brand-divider { width: 10px; }
}
@media (max-width: 560px) {
    .hero__brand-wrap { gap: 0.55rem; margin-bottom: 1rem; }
    .hero__brand-logo { max-width: min(300px, 74vw); max-height: 84px; }
    .hero__brand-tagline {
        font-size: 0.72rem;
        padding: 0.3rem 0.55rem;
        gap: 0.45rem;
        white-space: normal;
        text-align: center;
        line-height: 1.35;
    }
    .hero__brand-tagline > span:nth-child(2) { max-width: 100%; }
    .hero__brand-divider { display: none; }
}
@media (max-width: 400px) {
    .hero__brand-logo { max-width: min(250px, 70vw); max-height: 72px; }
    .hero__brand-tagline { font-size: 0.68rem; }
}

/* ===================================================================
   ===== V5 — HEADER-SHELL STICKY COMPARTILHADO (header + nav desktop)
   Objetivo: resolver o desalinhamento vertical do menu no topo.

   PROBLEMA ANTERIOR: NAV estava FORA do <header> (regra de containing
   block do backdrop-filter), mas em telas ≥1401px o CSS de .nav esperava
   que ela estivesse DENTRO do header__inner (display:flex, flex:1 1 auto).
   Resultado: menu desktop caía em LINHA SEPARADA ABAIXO do header —
   totalmente desalinhado, como o usuário relatou.

   SOLUÇÃO V5:
     - Novo <div class="header-shell"> envolve header + nav (ambos no mesmo
       container, mas NAV CONTINUA FORA do <header> — regra preservada!).
     - Default (≤1400px): shell é display:block; NAV continua position:fixed
       (off-canvas mobile 100% intacto — nenhuma regressão).
     - ≥1401px: shell vira display:flex align-items:stretch; header é o bloco
       esquerdo, NAV é o bloco direito (flex:1 1 auto). AMBOS compartilham
       o MESMO sticky, a MESMA altura, o MESMO fundo glass, a MESMA borda
       inferior — logo, menu e brand ficam PERFEITAMENTE alinhados no topo.
   =================================================================== */

/* ---- Base do shell (vale para QUALQUER viewport, ≤1400px também) ---- */
.header-shell {
    position: sticky;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9998;            /* abaixo do z-index max do off-canvas */
    width: 100%;
    display: block;           /* default: blocos separados; NAV é fixed off-canvas */
    background: rgba(255,255,255,0.98);
    border-bottom: 1px solid var(--c-border);
    transition: box-shadow 220ms ease, background-color 220ms ease;
    will-change: transform;
}
.header-shell.scrolled {
    box-shadow: 0 4px 20px -6px rgba(10,36,99,0.12);
}

/* ---- Z-indexes sub-elementos dentro do shell (reset leve) ---- */
.header-shell > .header { z-index: 2; position: relative; width: 100%; max-width: 100%; overflow-x: clip; }
.header-shell > .nav    { z-index: 1; }

/* ===================================================================
   NÍVEL 3 HARD RESET NAV — ≤1400px: NAV É OFF-CANVAS (nada altera aqui!)
   Bloco duplicado intencionalmente para garantir cascade V5 > V4.
   Apenas garantimos que NAV continua FORA do shell (position:fixed)
   =================================================================== */
@media (max-width: 1400px) {
    .header-shell { display: block; }
    .header-shell > .header { backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
}

/* ===================================================================
   DESKTOP ≥1401px — MODO UNIFICADO (header + nav NO MESMO sticky shell)
   Aqui resolvemos o alinhamento de vez.
   =================================================================== */
@media (min-width: 1401px) {
    /* 1) Shell como flex container → header e nav lado a lado */
    .header-shell {
        display: flex;
        align-items: stretch;     /* mesma altura para TODOS os filhos */
        justify-content: space-between;
        gap: 0;
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        background: rgba(255,255,255,0.98);
    }
    .header-shell.scrolled { box-shadow: var(--shadow-sm); }

    /* 2) Header: bloco ESQUERDO (brand). Agora o shell traz o glass/borda,
          então o <header> interno fica TRANSPARENTE e SEM position:sticky. */
    .header-shell > .header {
        position: static !important;   /* NÃO é mais o bloco sticky */
        top: auto !important;
        background: transparent !important;
        background-image: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        border-bottom: none !important;
        box-shadow: none !important;
        min-height: 0 !important;
        flex: 0 0 auto;
        width: auto !important;
        max-width: none !important;
        overflow: visible !important;
        z-index: 2;
    }
    .header-shell > .header.scrolled { box-shadow: none !important; }

    .header-shell > .header > .header__inner {
        min-height: 68px;
        width: auto;
        max-width: none !important;
        margin: 0 !important;
        padding: 0.75rem 0.8rem 0.75rem 1.6rem !important;
        gap: 0;
    }

    /* 3) NAV: bloco DIREITO (menu + CTAs). RESET TOTAL do modo off-canvas
          (V4 max-width 1400 tinha !important em tudo — por isso usamos
          !important novamente aqui + cascade final para sobrescrever). */
    .header-shell > .nav {
        /* ===== Posicionamento: FLUXO NORMAL dentro do shell ===== */
        position: relative !important;
        inset: auto !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        float: none !important;
        translate: none !important;
        transform: none !important;

        /* ===== Layout: flex ROW (desktop menu inline) ===== */
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-end !important;
        flex-wrap: nowrap !important;
        flex: 1 1 auto !important;
        gap: 1rem !important;

        /* ===== Dimensões: NO MESMO NÍVEL do header ===== */
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        min-height: 68px !important;     /* alinha verticalmente com header__inner */
        max-height: none !important;
        margin: 0 !important;
        padding: 0.75rem 2rem 0.75rem 0.8rem !important;
        box-sizing: border-box !important;

        /* ===== Visual: TRANSPARENTE (shell traz o fundo/borda) ===== */
        background: transparent !important;
        background-image: none !important;
        border: 0 !important;
        border-left: none !important;
        border-right: none !important;
        box-shadow: none !important;
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        will-change: auto !important;
        contain: layout style !important;
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: auto !important;
        z-index: 1 !important;
        transition: none !important;
    }
    .header-shell > .nav.is-open {
        right: auto !important;
        top: auto !important;
        position: relative !important;
    }

    /* 4) nav__brand = SÓ PARA CANVAS MOBILE. Em desktop ≥1401: oculto TOTALMENTE */
    .header-shell > .nav > .nav__brand,
    .header-shell > .nav .nav__brand {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        overflow: hidden !important;
        pointer-events: none !important;
    }

    /* 5) nav__list: voltar ao flex ROW desktop, alinhado à direita */
    .header-shell > .nav > .nav__list {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: flex-end !important;
        align-items: center !important;
        gap: 0.15rem !important;
        flex: 1 1 0% !important;
        margin: 0 !important;
        padding: 0 !important;
        min-width: 0;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }
    .header-shell > .nav > .nav__list > .nav__item {
        border-bottom: 0 !important;
    }

    /* 6) nav__actions: CTAs alinhados à direita, ROW, sem borda top */
    .header-shell > .nav > .nav__actions {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 0.6rem !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
        border-top: 0 !important;
        margin-left: 0.5rem !important;
        width: auto !important;
    }
    .header-shell > .nav > .nav__actions .btn {
        width: auto !important;
        margin-left: 0 !important;
    }

    /* 7) nav-toggle NUNCA aparece em desktop ≥1401 (garantia extra) */
    .header-shell > .header .nav-toggle {
        display: none !important;
        visibility: hidden !important;
    }
}

/* ===================================================================
   NÍVEL 2 — 1401px–1600px (Full HD 125% zoom = 1536px cai aqui)
   Compactação ULTRA: ocultar ícones nav, reduzir paddings/font-sizes.
   (Agora aplicado DIRETO no shell, para alinhamento consistente.)
   =================================================================== */
@media (min-width: 1401px) and (max-width: 1600px) {
    .header-shell > .header > .header__inner {
        padding: 0.62rem 0.6rem 0.62rem 1.1rem !important;
        min-height: 62px;
    }
    .header-shell > .nav {
        padding: 0.62rem 1.1rem 0.62rem 0.5rem !important;
        min-height: 62px !important;
        gap: 0.4rem !important;
    }
    .header-shell > .nav > .nav__list { gap: 0 !important; }
    /* Remover ícones (ganha ~150px) */
    .header-shell > .nav > .nav__list .nav__icon { display: none !important; }
    .header-shell > .nav > .nav__list > .nav__item > .nav__link {
        padding: 0.42rem 0.5rem;
        font-size: 0.84rem;
        gap: 0 !important;
    }
    .header-shell > .nav > .nav__actions {
        gap: 0.35rem !important;
        margin-left: 0.15rem !important;
    }
    .header-shell > .nav > .nav__actions .btn {
        padding: 0.42rem 0.68rem;
        font-size: 0.82rem;
        font-weight: 600;
    }
}

/* ===================================================================
   NÍVEL 1 — ≥1601px (4K / WQHD / Full HD sem DPI scaling): MENU COMPLETO
   (menu com ícones, brand com texto Serviços Contábeis visível)
   =================================================================== */
@media (min-width: 1601px) {
    .header-shell > .header > .header__inner {
        padding: 0.78rem 0.9rem 0.78rem 2.2rem !important;
        min-height: 70px;
    }
    .header-shell > .nav {
        padding: 0.78rem 2.2rem 0.78rem 0.9rem !important;
        min-height: 70px !important;
        gap: 1.05rem !important;
    }
    .header-shell > .nav > .nav__list { gap: 0.22rem !important; }
    .header-shell > .nav > .nav__list .nav__icon { display: inline-flex !important; }
    .header-shell > .nav > .nav__list > .nav__item > .nav__link {
        padding: 0.55rem 0.82rem;
        font-size: 0.93rem;
        gap: 0.38rem;
    }
    .header-shell > .nav > .nav__actions {
        gap: 0.65rem !important;
        margin-left: 0.45rem !important;
    }
    .header-shell > .nav > .nav__actions .btn {
        padding: 0.58rem 0.98rem;
        font-size: 0.89rem;
    }
}

/* ===================================================================
   ===== COMO FUNCIONA / HOW-IT-WORKS — LAYOUT 2 COLUNAS COM CARD SOBREPOSTO
   Inspiração visual: site modelo CM Assessoria (timeline 4 passos + bloco imagem à esquerda)
   Nossa adaptação: usa paleta oficial AZUL #0A2463 + ACENTO LARANJA #F97316,
   em vez do dourado do site modelo — para coerência de marca.
   =================================================================== */

.howit {
    position: relative;
    padding: clamp(3.8rem, 5.2vw, 6.6rem) 0 clamp(4rem, 5.8vw, 7.2rem);
    background:
        radial-gradient(1000px 520px at 95% -10%, rgba(30,86,160,0.08), transparent 60%),
        radial-gradient(820px 460px at -5% 105%, rgba(249,115,22,0.07), transparent 60%),
        linear-gradient(180deg, #F7F9FC 0%, #F1F4F9 100%);
    overflow: hidden;
    isolation: isolate;
}
.howit::before {
    content: '';
    position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(10,36,99,0.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(10,36,99,0.04) 1px, transparent 1px);
    background-size: 36px 36px;
    mask-image: radial-gradient(ellipse 78% 60% at 50% 48%, #000 40%, transparent 100%);
    -webkit-mask-image: radial-gradient(ellipse 78% 60% at 50% 48%, #000 40%, transparent 100%);
    pointer-events: none;
    z-index: 0;
}
.howit > .container { position: relative; z-index: 2; }

/* Grid base: LEFT (imagem+conteúdo) ~52% | RIGHT (card timeline) ~48% com gap */
.howit__grid {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(0, 0.92fr);
    align-items: start;
    gap: clamp(1.6rem, 3.4vw, 3.4rem);
    position: relative;
}

/* ================ COLUNA ESQUERDA ================ */
.howit__left {
    display: flex;
    flex-direction: column;
    gap: clamp(1.2rem, 2.2vw, 2.1rem);
    position: relative;
}
.howit__img {
    position: relative;
    border-radius: 22px;
    overflow: hidden;
    aspect-ratio: 16 / 10.5;
    box-shadow:
        0 18px 48px -18px rgba(10,36,99,0.38),
        0 2px 0 rgba(10,36,99,0.05);
    isolation: isolate;
    background: #0A2463;
}
.howit__img::after {
    content: '';
    position: absolute; inset: 0;
    background:
        linear-gradient(135deg, rgba(10,36,99,0.72) 0%, rgba(10,36,99,0.28) 45%, rgba(249,115,22,0.18) 100%),
        linear-gradient(180deg, rgba(0,0,0,0.02), rgba(0,0,0,0.18));
    z-index: 1;
    pointer-events: none;
}
.howit__img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transform: scale(1.01);
}
.howit__img-badge {
    position: absolute;
    left: clamp(0.9rem, 1.6vw, 1.5rem);
    bottom: clamp(0.9rem, 1.6vw, 1.5rem);
    z-index: 3;
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    padding: 0.55rem 0.9rem 0.55rem 0.55rem;
    border-radius: 999px;
    background: rgba(255,255,255,0.94);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid rgba(255,255,255,0.6);
    box-shadow:
        0 10px 30px -12px rgba(10,36,99,0.32),
        0 1px 0 rgba(255,255,255,0.6) inset;
    font-size: 0.78rem;
    font-weight: 600;
    color: #0A2463;
    white-space: nowrap;
}
.howit__img-badge svg,
.howit__img-badge > :first-child {
    width: 28px; height: 28px;
    flex-shrink: 0;
    border-radius: 999px;
    display: inline-flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, #0A2463 0%, #1E56A0 100%);
    color: #fff;
    padding: 0;
}
.howit__img-badge svg { width: 15px; height: 15px; background: none; }

/* Conteúdo textual abaixo da imagem */
.howit__content {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
}
.howit__eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #F97316;
    align-self: flex-start;
}
.howit__eyebrow i {
    display: inline-block;
    width: 26px; height: 2px;
    border-radius: 999px;
    background: linear-gradient(90deg, #F97316, #FB923C);
    position: relative;
}
.howit__eyebrow i::after {
    content: '';
    position: absolute;
    right: -6px; top: 50%; transform: translateY(-50%);
    width: 6px; height: 6px; border-radius: 999px;
    background: #F97316;
}
.howit__title {
    font-family: var(--font-title);
    font-size: clamp(1.9rem, 2.6vw, 2.6rem);
    line-height: 1.12;
    letter-spacing: -0.02em;
    font-weight: 800;
    color: #0A2463;
    margin: 0;
}
.howit__title strong {
    background: linear-gradient(90deg, #0A2463 0%, #1E56A0 42%, #F97316 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #0A2463;
    font-weight: 900;
}
.howit__text {
    color: #41516A;
    font-size: 0.95rem;
    line-height: 1.72;
    margin: 0;
    max-width: 54ch;
}
.howit__text--2 {
    color: #50607A;
    font-size: 0.92rem;
}
.howit__ctas {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-top: 0.45rem;
}
.howit__cta-main { --sheen-x: 110%; position: relative; overflow: hidden; isolation: isolate; }
.howit__cta-wa { border-width: 1.5px !important; }

/* ================ COLUNA DIREITA — CARD BRANCO SOBREPOSTO ================ */
.howit__right {
    position: relative;
    padding-top: 2.8rem;           /* offset superior para o efeito sobreposto */
    z-index: 3;
}
.howit__card {
    position: relative;
    background: #ffffff;
    border-radius: 24px;
    padding: clamp(1.6rem, 2.3vw, 2.2rem) clamp(1.6rem, 2.5vw, 2.4rem) clamp(1.5rem, 2.2vw, 2.15rem);
    box-shadow:
        0 40px 80px -30px rgba(10,36,99,0.28),
        0 18px 44px -22px rgba(10,36,99,0.18),
        0 2px 0 rgba(10,36,99,0.04);
    border: 1px solid rgba(10,36,99,0.06);
    overflow: hidden;
    isolation: isolate;
}
.howit__card::before {
    content: '';
    position: absolute;
    top: -100px; right: -100px;
    width: 280px; height: 280px;
    background: radial-gradient(circle, rgba(249,115,22,0.10), transparent 60%);
    pointer-events: none;
}
.howit__card::after {
    content: '';
    position: absolute;
    bottom: -120px; left: -100px;
    width: 320px; height: 320px;
    background: radial-gradient(circle, rgba(10,36,99,0.08), transparent 60%);
    pointer-events: none;
}

/* Cabeçalho do card */
.howit__card-head {
    position: relative;
    z-index: 2;
    margin-bottom: 1.3rem;
    padding-bottom: 1.1rem;
    border-bottom: 1px solid rgba(10,36,99,0.08);
}
.howit__card-head-eyebrow {
    display: inline-block;
    padding: 0.28rem 0.7rem;
    border-radius: 999px;
    background: rgba(10,36,99,0.06);
    color: #0A2463;
    font-size: 0.76rem;
    font-weight: 600;
    letter-spacing: 0.01em;
    margin-bottom: 0.65rem;
}
.howit__card-head-eyebrow strong {
    background: linear-gradient(90deg, #0A2463, #F97316);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: #0A2463;
    font-weight: 800;
}
.howit__card-head h3 {
    font-family: var(--font-title);
    font-size: clamp(1.25rem, 1.5vw, 1.55rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.015em;
    color: #0A2463;
    margin: 0 0 0.4rem;
}
.howit__card-head p {
    color: #54647D;
    font-size: 0.9rem;
    line-height: 1.55;
    margin: 0;
}

/* Timeline de 4 passos (OL com LI, linha vertical conectora) */
.howit__steps {
    list-style: none;
    padding: 0;
    margin: 0 0 1.45rem 0;
    position: relative;
    z-index: 2;
}
.howit__step {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    grid-template-rows: auto;
    gap: 0.85rem 0.95rem;
    align-items: flex-start;
    padding: 0.65rem 0 0.65rem 0;
    position: relative;
}
/* Linha vertical conectora (pinta APENAS entre os passos — não no último) */
.howit__step::before {
    content: '';
    position: absolute;
    top: 56px;
    left: 27px;
    width: 2px;
    height: calc(100% - 40px);
    background: linear-gradient(180deg, rgba(10,36,99,0.28) 0%, rgba(10,36,99,0.06) 100%);
    border-radius: 999px;
    pointer-events: none;
}
.howit__step.is-last::before { content: none; }

/* Círculo do ícone (bolinhas como na referência, paleta da marca) */
.howit__step-icon {
    grid-column: 1 / 2;
    grid-row: 1 / 3;
    width: 56px; height: 56px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    position: relative;
    flex-shrink: 0;
    color: #ffffff;
    z-index: 2;
    box-shadow:
        0 10px 22px -10px rgba(10,36,99,0.35),
        0 2px 0 rgba(255,255,255,0.5) inset,
        0 0 0 4px rgba(255,255,255,0.7);
    transition: transform 260ms cubic-bezier(.34,1.56,.64,1), box-shadow 220ms ease;
}
.howit__step-icon svg { color: #fff; }
.howit__step-icon--1 { background: linear-gradient(135deg, #0A2463 0%, #1E56A0 100%); }
.howit__step-icon--2 { background: linear-gradient(135deg, #1E56A0 0%, #2563EB 100%); }
.howit__step-icon--3 { background: linear-gradient(135deg, #2563EB 0%, #F97316 100%); }
.howit__step-icon--4 { background: linear-gradient(135deg, #F97316 0%, #D9670F 100%); }

.howit__step:hover .howit__step-icon {
    transform: translateY(-2px) scale(1.05);
    box-shadow:
        0 16px 30px -12px rgba(10,36,99,0.45),
        0 2px 0 rgba(255,255,255,0.5) inset,
        0 0 0 4px rgba(255,255,255,0.9);
}

/* Corpo do passo */
.howit__step-body {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding-top: 0.15rem;
}
.howit__step-num {
    align-self: flex-start;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #F97316;
    padding: 0.15rem 0.5rem;
    border-radius: 999px;
    background: rgba(249,115,22,0.10);
    border: 1px solid rgba(249,115,22,0.18);
}
.howit__step-body h4 {
    margin: 0.25rem 0 0.2rem;
    font-family: var(--font-title);
    font-size: 1.1rem;
    font-weight: 800;
    color: #0A2463;
    letter-spacing: -0.01em;
}
.howit__step-body p {
    margin: 0;
    color: #4F607A;
    font-size: 0.9rem;
    line-height: 1.62;
}

/* Rodapé do card — 3 métricas chave */
.howit__card-foot {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    align-items: stretch;
    gap: 0.3rem;
    padding: 1.15rem 0.3rem 0.35rem;
    margin-top: 0.4rem;
    border-top: 1px solid rgba(10,36,99,0.08);
    background:
        linear-gradient(180deg, transparent 0%, rgba(10,36,99,0.02) 100%);
    border-radius: 0 0 22px 22px;
    margin: 0.4rem -2.4rem 0 -2.4rem;
    padding: 1.15rem 2.4rem 1.05rem;
}
.howit__card-foot-item {
    display: flex;
    flex-direction: column;
    gap: 0.05rem;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 0.1rem 0.2rem;
}
.howit__card-foot-item strong {
    font-family: var(--font-title);
    font-size: clamp(0.98rem, 1.1vw, 1.15rem);
    font-weight: 800;
    color: #0A2463;
    letter-spacing: -0.01em;
    line-height: 1.1;
}
.howit__card-foot-item small {
    font-size: 0.72rem;
    font-weight: 500;
    color: #64758E;
    letter-spacing: 0.005em;
}
.howit__card-foot-sep {
    width: 1px;
    height: 30px;
    align-self: center;
    justify-self: center;
    background: linear-gradient(180deg, transparent, rgba(10,36,99,0.14), transparent);
}

/* ===================================================================
   RESPONSIVIDADE HOW-IT-WORKS
   Breakpoints: 1280px (tweak card metrics) / 1024px (1 coluna, offset invertido)
                768px (compactação mobile) / 480px (tudo ajustado p/ minúsculo)
   =================================================================== */
@media (max-width: 1280px) {
    .howit__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2rem; }
    .howit__card-foot { margin-left: -2rem; margin-right: -2rem; padding: 1rem 2rem 0.95rem; }
    .howit__card { padding: 1.7rem 2rem; }
    .howit__step { grid-template-columns: 50px minmax(0, 1fr); gap: 0.7rem; }
    .howit__step-icon { width: 50px; height: 50px; }
    .howit__step::before { left: 24px; top: 50px; }
    .howit__step-num { font-size: 0.68rem; }
}

@media (max-width: 1024px) {
    .howit { padding: 3.2rem 0 4rem; }
    .howit__grid {
        grid-template-columns: minmax(0, 1fr);
        gap: 1.2rem;
    }
    /* Inverte a ordem: card timeline aparece DEPOIS do bloco imagem+texto
       e agora o offset é NEGATIVO PARA CIMA (sobreposto no BOTTOM da imagem,
       efeito cascata invertido) */
    .howit__right { padding-top: 0; margin-top: -3.8rem; }
    .howit__card { padding: 1.65rem 1.55rem; }
    .howit__card-foot {
        margin-left: -1.55rem; margin-right: -1.55rem;
        padding: 1rem 1.55rem 0.95rem;
    }
    .howit__ctas { width: 100%; }
    .howit__ctas .btn { flex: 1 1 calc(50% - 0.4rem); justify-content: center; }
}

@media (max-width: 768px) {
    .howit { padding: 2.6rem 0 3.2rem; }
    .howit__right { margin-top: -3rem; }
    .howit__img { aspect-ratio: 16 / 10; border-radius: 18px; }
    .howit__img-badge { font-size: 0.74rem; padding: 0.5rem 0.8rem 0.5rem 0.5rem; gap: 0.45rem; }
    .howit__img-badge > :first-child { width: 26px; height: 26px; }
    .howit__title { font-size: 1.8rem; line-height: 1.15; }
    .howit__text { font-size: 0.92rem; }
    .howit__card { padding: 1.4rem 1.25rem; border-radius: 20px; }
    .howit__card-head { margin-bottom: 1.1rem; padding-bottom: 0.9rem; }
    .howit__card-head h3 { font-size: 1.22rem; }
    .howit__step { grid-template-columns: 46px minmax(0, 1fr); gap: 0.6rem; padding: 0.55rem 0; }
    .howit__step-icon { width: 46px; height: 46px; box-shadow: 0 6px 16px -8px rgba(10,36,99,0.35), 0 0 0 3px rgba(255,255,255,0.8); }
    .howit__step::before { left: 22px; top: 46px; width: 2px; }
    .howit__step-body h4 { font-size: 1.02rem; }
    .howit__step-body p { font-size: 0.88rem; }
    .howit__card-foot {
        grid-template-columns: 1fr;
        grid-auto-rows: auto;
        gap: 0.75rem;
        margin-left: -1.25rem; margin-right: -1.25rem;
        padding: 1rem 1.25rem 1rem;
    }
    .howit__card-foot-sep {
        width: 44px; height: 1px; align-self: center;
        background: linear-gradient(90deg, transparent, rgba(10,36,99,0.18), transparent);
    }
    .howit__card-foot-item strong { font-size: 1rem; }
    .howit__ctas .btn { flex: 1 1 100%; width: 100%; }
}

@media (max-width: 560px) {
    .howit__title { font-size: 1.6rem; }
    .howit__eyebrow { font-size: 0.72rem; }
    .howit__step { grid-template-columns: 42px minmax(0, 1fr); }
    .howit__step-icon { width: 42px; height: 42px; box-shadow: 0 5px 14px -8px rgba(10,36,99,0.38), 0 0 0 3px rgba(255,255,255,0.8); }
    .howit__step::before { left: 20px; top: 42px; }
    .howit__img-badge { white-space: normal; border-radius: 14px; }
    .howit__card { border-radius: 18px; padding: 1.3rem 1.1rem; }
    .howit__card-foot { margin-left: -1.1rem; margin-right: -1.1rem; padding: 0.95rem 1.1rem 0.95rem; }
}

@media (max-width: 400px) {
    .howit__title { font-size: 1.45rem; }
    .howit__step { grid-template-columns: 40px minmax(0, 1fr); gap: 0.5rem; }
    .howit__step-icon { width: 40px; height: 40px; }
    .howit__step::before { left: 19px; top: 40px; }
    .howit__step-body h4 { font-size: 0.98rem; }
    .howit__step-body p { font-size: 0.86rem; }
}

/* ===================================================================
   ===== PÁGINA NOTÍCIAS — PREMIUM (topbar glassmorphism + cards + paginação)
   Ref: home premium + site modelo CM Assessoria (paleta AZUL #0A2463 / LARANJA #F97316)
   =================================================================== */

/* 1) Hero páginas: FALLBACK SÓLIDO obrigatório para .accent (webkit-text-fill-color) */
.hero h1 .accent {
    color: #1E56A0;
}
@supports ((background-clip: text) or (-webkit-background-clip: text)) {
    .hero h1 .accent {
        background: linear-gradient(135deg, #0A2463 0%, #1E56A0 45%, #F97316 100%);
        -webkit-background-clip: text; background-clip: text;
        -webkit-text-fill-color: transparent;
        color: #1E56A0;
    }
}
.hero--pages .lead {
    color: rgba(255,255,255,0.90);
}
.hero__img--news {
    background:
        linear-gradient(135deg, rgba(10,36,99,0.70) 0%, rgba(30,86,160,0.58) 50%, rgba(249,115,22,0.32) 100%),
        url("../img/news-jornal-contabil.jpg") center/cover no-repeat;
}
.hero__img--news::before {
    background: radial-gradient(closest-side, rgba(255,255,255,0.16), transparent 70%);
}
.hero__img--news::after {
    background:
        linear-gradient(rgba(255,255,255,0.06) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.06) 1px, transparent 1px);
    background-size: 26px 26px;
    width: 100%; height: 100%;
    border-radius: var(--radius-lg);
    top: 0; left: 0; right: 0; bottom: 0;
    clip-path: inset(0 0 0 0 round var(--radius-lg));
    mix-blend-mode: overlay;
}

/* 2) Wrapper principal news-page */
.news-page {
    padding: clamp(2.2rem, 3.4vw, 3.8rem) 0 clamp(3rem, 4.4vw, 5rem);
    background:
        radial-gradient(1000px 420px at 110% -10%, rgba(249,115,22,0.06), transparent 60%),
        radial-gradient(820px 420px at -10% 20%, rgba(10,36,99,0.06), transparent 60%),
        linear-gradient(180deg, #F7F9FC 0%, #EFF3F9 100%);
    position: relative;
    isolation: isolate;
}
.news-page::before {
    content: '';
    position: absolute; inset: 0;
    background-image:
        linear-gradient(rgba(10,36,99,0.032) 1px, transparent 1px),
        linear-gradient(90deg, rgba(10,36,99,0.032) 1px, transparent 1px);
    background-size: 40px 40px;
    mask-image: radial-gradient(ellipse 72% 58% at 50% 30%, #000 40%, transparent 100%);
    -webkit-mask-image: radial-gradient(ellipse 72% 58% at 50% 30%, #000 40%, transparent 100%);
    pointer-events: none;
    z-index: 0;
}
.news-page > .container { position: relative; z-index: 2; }

/* 3) Topbar: glassmorphism, 2 linhas empilhadas (search row + chips row) */
.news-page__topbar {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    padding: clamp(1rem, 1.6vw, 1.4rem);
    background: rgba(255,255,255,0.70);
    border: 1px solid rgba(255,255,255,0.78);
    border-radius: 20px;
    backdrop-filter: blur(14px) saturate(140%);
    -webkit-backdrop-filter: blur(14px) saturate(140%);
    box-shadow:
        0 24px 60px -30px rgba(10,36,99,0.22),
        0 1px 0 rgba(255,255,255,0.78) inset;
    margin-bottom: clamp(1.4rem, 2.3vw, 2.2rem);
}

/* 4) Search */
.news-page__search {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.32rem 0.32rem 0.32rem 0.7rem;
    background: #fff;
    border: 1.5px solid #E2E8F0;
    border-radius: 14px;
    transition:
        border-color 220ms ease,
        box-shadow 220ms ease,
        transform 220ms ease;
}
.news-page__search:focus-within {
    border-color: rgba(10,36,99,0.32);
    box-shadow:
        0 0 0 4px rgba(30,86,160,0.10),
        0 10px 26px -12px rgba(10,36,99,0.18);
    transform: translateY(-1px);
}
.news-page__search-icon {
    display: inline-flex;
    align-items: center; justify-content: center;
    width: 38px; height: 38px;
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(10,36,99,0.08), rgba(249,115,22,0.14));
    color: #0A2463;
    flex-shrink: 0;
    box-shadow: inset 0 0 0 1px rgba(10,36,99,0.08);
}
.news-page__search-icon svg { width: 18px; height: 18px; }
.news-page__search input[type="search"] {
    flex: 1 1 auto;
    min-width: 0;
    height: 42px;
    border: 0;
    outline: 0;
    background: transparent;
    font-size: 0.94rem;
    color: #0F172A;
    font-family: inherit;
    padding: 0 0.3rem;
}
.news-page__search input[type="search"]::placeholder {
    color: #64748B;
}
.news-page__search .btn {
    height: 42px;
    padding: 0 1.1rem;
    border-radius: 11px;
    position: relative;
    overflow: hidden;
}
.news-page__search .btn::before {
    content: '';
    position: absolute;
    top: 0; left: -75%;
    width: 40%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.22), transparent);
    transform: skewX(-18deg);
    transition: left 700ms ease;
}
.news-page__search .btn:hover::before { left: 130%; }
.news-page__search .btn svg { width: 15px; height: 15px; }

/* 5) Chips / categorias */
.news-page__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.news-page__cats .chip {
    --chip-bg: #F1F5F9;
    --chip-c:  #334155;
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    padding: 0.46rem 0.82rem;
    border-radius: 999px;
    background: var(--chip-bg);
    color: var(--chip-c);
    border: 1px solid rgba(148,163,184,0.18);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    text-decoration: none;
    transition:
        transform 200ms cubic-bezier(.34,1.56,.64,1),
        background-color 200ms ease,
        color 200ms ease,
        border-color 200ms ease,
        box-shadow 200ms ease;
    user-select: none;
}
.news-page__cats .chip svg { width: 14px; height: 14px; flex-shrink: 0; }
.news-page__cats .chip:hover {
    transform: translateY(-1.5px);
    box-shadow: 0 10px 22px -14px rgba(10,36,99,0.28);
}
.news-page__cats .chip--trib  { --chip-bg: rgba(249,115,22,0.09); --chip-c: #C2410C; border-color: rgba(249,115,22,0.18); }
.news-page__cats .chip--trab  { --chip-bg: rgba(30,86,160,0.08); --chip-c: #1E40AF; border-color: rgba(30,86,160,0.18); }
.news-page__cats .chip--cont  { --chip-bg: rgba(10,36,99,0.07); --chip-c: #0A2463; border-color: rgba(10,36,99,0.16); }
.news-page__cats .chip--econ  { --chip-bg: rgba(16,185,129,0.09); --chip-c: #047857; border-color: rgba(16,185,129,0.18); }
.news-page__cats .chip.active {
    --chip-bg: #0A2463;
    --chip-c:  #fff;
    border-color: transparent;
    box-shadow:
        0 12px 26px -14px rgba(10,36,99,0.55),
        0 1px 0 rgba(255,255,255,0.28) inset;
}
.news-page__cats .chip--trib.active { --chip-bg: #F97316; box-shadow: 0 12px 26px -14px rgba(249,115,22,0.55), 0 1px 0 rgba(255,255,255,0.28) inset; }
.news-page__cats .chip--trab.active { --chip-bg: #1E56A0; box-shadow: 0 12px 26px -14px rgba(30,86,160,0.55), 0 1px 0 rgba(255,255,255,0.28) inset; }
.news-page__cats .chip--econ.active { --chip-bg: #059669; box-shadow: 0 12px 26px -14px rgba(5,150,105,0.55), 0 1px 0 rgba(255,255,255,0.28) inset; }
.news-page__cats .chip--cont.active { --chip-bg: #0A2463; box-shadow: 0 12px 26px -14px rgba(10,36,99,0.55), 0 1px 0 rgba(255,255,255,0.28) inset; }

/* 6) Grid premium (fixa colunas 4x desktop, 3× md, 2× sm, 1× xs) */
.news-grid--premium {
    display: grid;
    gap: clamp(1rem, 1.6vw, 1.4rem);
    grid-template-columns: repeat(1, minmax(0, 1fr));
}
@media (min-width: 680px)  { .news-grid--premium { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (min-width: 980px)  { .news-grid--premium { grid-template-columns: repeat(3, minmax(0,1fr)); } }
@media (min-width: 1280px) { .news-grid--premium { grid-template-columns: repeat(4, minmax(0,1fr)); gap: 1.15rem; } }

/* 7) News Card premium refinado */
.news-card {
    background: #fff;
    border: 1px solid rgba(226,232,240,0.88);
    border-radius: 18px;
    overflow: hidden;
    transition:
        transform 280ms cubic-bezier(.22,.9,.28,1),
        box-shadow 280ms ease,
        border-color 280ms ease;
    position: relative;
    display: flex;
    flex-direction: column;
    isolation: isolate;
}
.news-card::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: 18px;
    pointer-events: none;
    background:
        radial-gradient(500px 240px at -10% -20%, rgba(10,36,99,0.06), transparent 60%),
        radial-gradient(420px 240px at 120% 120%, rgba(249,115,22,0.06), transparent 60%);
    opacity: 0;
    transition: opacity 320ms ease;
    z-index: 0;
}
.news-card:hover {
    transform: translateY(-6px);
    box-shadow:
        0 32px 60px -28px rgba(10,36,99,0.32),
        0 10px 22px -18px rgba(10,36,99,0.18);
    border-color: rgba(30,86,160,0.22);
}
.news-card:hover::after { opacity: 1; }

/* 7a) Imagem do card com zoom+sheen no hover */
.news-card__img {
    position: relative;
    aspect-ratio: 16 / 9;
    display: block;
    overflow: hidden;
    isolation: isolate;
    background: linear-gradient(135deg, #0A2463, #1E56A0);
    transform: scale(1);
    transition: transform 520ms cubic-bezier(.22,.9,.28,1);
}
.news-card:hover .news-card__img {
    transform: scale(1.06);
}
.news-card__img::before {
    content: '';
    position: absolute; inset: 0;
    background:
        radial-gradient(280px 140px at 15% 0%, rgba(255,255,255,0.18), transparent 60%),
        linear-gradient(180deg, rgba(0,0,0,0.08) 0%, rgba(0,0,0,0.00) 55%, rgba(0,0,0,0.26) 100%);
    pointer-events: none;
    z-index: 1;
    transition: opacity 300ms ease;
}
.news-card__img-zoom { display: none !important; }
.news-card__img-fade {
    position: absolute;
    top: 0; left: -80%;
    width: 40%; height: 100%;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.30), transparent);
    transform: skewX(-18deg);
    transition: left 900ms cubic-bezier(.22,.9,.28,1);
    z-index: 2;
    pointer-events: none;
}
.news-card:hover .news-card__img-fade { left: 130%; }

/* 7b) Body */
.news-card__body {
    padding: 1.05rem 1.1rem 1.15rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    flex: 1;
    position: relative;
    z-index: 1;
}
.news-card__meta {
    display: flex;
    gap: 0.45rem 0.6rem;
    align-items: center;
    flex-wrap: wrap;
    font-size: 0.74rem;
    color: #475569;
}
.news-card__meta .tag {
    padding: 0.18rem 0.58rem;
    border-radius: 999px;
    font-weight: 700;
    letter-spacing: 0.01em;
    font-size: 0.72rem;
    border: 1px solid transparent;
    display: inline-flex;
    align-items: center;
    background: rgba(10,36,99,0.08);
    color: #0A2463;
    border-color: rgba(10,36,99,0.12);
}
.news-card__meta .tag--trib { background: rgba(249,115,22,0.10); color: #C2410C; border-color: rgba(249,115,22,0.16); }
.news-card__meta .tag--trab { background: rgba(30,86,160,0.10); color: #1E40AF; border-color: rgba(30,86,160,0.16); }
.news-card__meta .tag--cont { background: rgba(10,36,99,0.08); color: #0A2463; border-color: rgba(10,36,99,0.14); }
.news-card__meta .tag--econ { background: rgba(5,150,105,0.10); color: #047857; border-color: rgba(5,150,105,0.16); }

.news-card__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.22rem;
    color: #64748B;
    white-space: nowrap;
}
.news-card__meta-item svg { width: 12px; height: 12px; color: #94A3B8; flex-shrink: 0; }

.news-card h3 {
    font-size: 1rem;
    line-height: 1.32;
    margin: 0.05rem 0 0;
    color: #0F172A;
    font-family: var(--font-title);
    font-weight: 700;
}
.news-card h3 a {
    color: inherit;
    text-decoration: none;
    background-image: linear-gradient(90deg, #0A2463 0%, #1E56A0 50%, #F97316 100%);
    background-repeat: no-repeat;
    background-size: 0 2px;
    background-position: 0 100%;
    transition: background-size 380ms cubic-bezier(.22,.9,.28,1);
}
.news-card:hover h3 a { background-size: 100% 2px; color: #0A2463; }

.news-card__body p {
    margin: 0;
    color: #475569;
    font-size: 0.86rem;
    line-height: 1.58;
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* 7c) CTA */
.news-card__cta {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    padding-top: 0.5rem;
    margin-top: 0.15rem;
    border-top: 1px dashed rgba(148,163,184,0.28);
    color: #0A2463;
    font-weight: 700;
    font-size: 0.82rem;
    text-decoration: none;
    transition: color 200ms ease, gap 200ms ease;
}
.news-card__cta span:first-child { letter-spacing: 0.01em; }
.news-card__cta-arrow {
    width: 28px; height: 28px;
    border-radius: 999px;
    background: linear-gradient(135deg, rgba(10,36,99,0.08), rgba(249,115,22,0.12));
    position: relative;
    flex-shrink: 0;
    transition:
        background 260ms ease,
        transform 260ms cubic-bezier(.34,1.56,.64,1);
}
.news-card__cta-arrow::before {
    content: '';
    position: absolute;
    left: 50%; top: 50%;
    width: 10px; height: 10px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transform: translate(-60%, -50%) rotate(45deg);
    color: #0A2463;
    transition: transform 260ms cubic-bezier(.34,1.56,.64,1), color 260ms ease;
}
.news-card:hover .news-card__cta { color: #F97316; gap: 0.8rem; }
.news-card__cta::after { content: none !important; }
.news-card:hover .news-card__cta-arrow {
    background: linear-gradient(135deg, #0A2463, #F97316);
    transform: scale(1.06);
}
.news-card:hover .news-card__cta-arrow::before {
    color: #fff;
    transform: translate(-50%, -50%) rotate(45deg);
}

/* Bordas superiores coloridas por categoria */
.news-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 3px;
    background: #0A2463;
    z-index: 3;
    opacity: 0.88;
}
.news-card--trib::before { background: linear-gradient(90deg, #F97316, #FB923C); }
.news-card--trab::before { background: linear-gradient(90deg, #1E56A0, #3B82F6); }
.news-card--cont::before { background: linear-gradient(90deg, #0A2463, #1E56A0); }
.news-card--econ::before { background: linear-gradient(90deg, #059669, #10B981); }

/* 8) Paginação premium */
.news-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin-top: clamp(1.8rem, 2.8vw, 2.8rem);
}
.news-pagination__page {
    min-width: 40px;
    height: 40px;
    padding: 0 0.85rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    border: 1.5px solid #E2E8F0;
    background: #fff;
    color: #0F172A;
    font-weight: 700;
    font-size: 0.9rem;
    text-decoration: none;
    transition:
        transform 220ms cubic-bezier(.34,1.56,.64,1),
        background-color 220ms ease,
        color 220ms ease,
        border-color 220ms ease,
        box-shadow 220ms ease;
}
.news-pagination__page:hover {
    transform: translateY(-2px);
    border-color: rgba(10,36,99,0.28);
    color: #0A2463;
    box-shadow: 0 14px 30px -18px rgba(10,36,99,0.35);
}
.news-pagination__page.is-active {
    background: linear-gradient(135deg, #0A2463 0%, #1E56A0 55%, #F97316 120%);
    color: #fff;
    border-color: transparent;
    box-shadow:
        0 16px 30px -16px rgba(10,36,99,0.48),
        0 1px 0 rgba(255,255,255,0.32) inset;
    transform: translateY(-1px);
}

/* 9) Empty state */
.news-empty {
    max-width: 560px;
    margin: 0 auto;
    padding: clamp(2rem, 3.2vw, 3rem) clamp(1.4rem, 2.4vw, 2rem);
    background: #fff;
    border: 1px solid rgba(226,232,240,0.88);
    border-radius: 22px;
    text-align: center;
    box-shadow: 0 22px 50px -30px rgba(10,36,99,0.28);
    position: relative;
    overflow: hidden;
}
.news-empty::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, #0A2463, #F97316);
}
.news-empty__icon {
    width: 64px; height: 64px;
    margin: 0 auto 1rem;
    border-radius: 18px;
    display: inline-flex;
    align-items: center; justify-content: center;
    background: linear-gradient(135deg, rgba(10,36,99,0.08), rgba(249,115,22,0.14));
    color: #0A2463;
}
.news-empty__icon svg { width: 28px; height: 28px; }
.news-empty h3 {
    font-family: var(--font-title);
    font-size: clamp(1.2rem, 1.8vw, 1.5rem);
    color: #0F172A;
    margin-bottom: 0.45rem;
}
.news-empty p {
    color: #475569;
    margin: 0 0 1.4rem;
    font-size: 0.94rem;
    line-height: 1.6;
}
.news-empty__actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.6rem;
}
.news-empty__actions .btn { height: 44px; }
.news-empty__actions .btn svg { width: 15px; height: 15px; }

/* 10) Breakpoints responsivos news-page */
@media (max-width: 1280px) {
    .news-page__topbar { padding: 1rem; }
}
@media (max-width: 1024px) {
    .news-page__search .btn span:last-child { display: inline; }
    .news-card__body { padding: 0.95rem 1rem 1rem; gap: 0.45rem; }
}
@media (max-width: 768px) {
    .news-page { padding-top: 1.8rem; }
    .news-page__topbar {
        padding: 0.85rem;
        gap: 0.7rem;
        border-radius: 17px;
    }
    .news-page__search { padding-left: 0.55rem; }
    .news-page__search-icon { width: 30px; height: 30px; border-radius: 9px; }
    .news-page__search-icon svg { width: 14px; height: 14px; }
    .news-page__search input[type="search"] { height: 40px; font-size: 0.88rem; }
    .news-page__search .btn { height: 40px; padding: 0 0.9rem; font-size: 0.84rem; }
    .news-page__cats .chip { padding: 0.4rem 0.72rem; font-size: 0.78rem; gap: 0.32rem; }
    .news-page__cats .chip svg { width: 13px; height: 13px; }
    .news-pagination__page { min-width: 38px; height: 38px; font-size: 0.86rem; border-radius: 10px; padding: 0 0.7rem; }
}
@media (max-width: 560px) {
    .news-page__search {
        flex-wrap: wrap;
        padding: 0.5rem;
    }
    .news-page__search-icon { display: none; }
    .news-page__search input[type="search"] {
        flex: 1 1 100%;
        order: 1;
        padding: 0 0.35rem;
    }
    .news-page__search .btn {
        order: 2;
        flex: 1 1 100%;
        height: 42px;
        border-radius: 10px;
    }
    .news-card { border-radius: 16px; }
    .news-card__body { padding: 0.88rem 0.95rem 1rem; }
    .news-card h3 { font-size: 0.97rem; }
    .news-card__body p { font-size: 0.84rem; -webkit-line-clamp: 2; }
    .news-card__cta { font-size: 0.8rem; }
    .news-empty { border-radius: 18px; padding: 1.8rem 1.1rem; }
    .news-empty__actions .btn { flex: 1 1 100%; width: 100%; }
    .hero__badge { font-size: 0.78rem; padding: 0.36rem 0.78rem; }
}
@media (max-width: 400px) {
    .news-page__topbar { padding: 0.7rem; gap: 0.55rem; border-radius: 14px; }
    .news-page__cats .chip { padding: 0.36rem 0.64rem; font-size: 0.74rem; }
    .news-card__body { padding: 0.8rem 0.85rem 0.9rem; gap: 0.4rem; }
    .news-card__meta { font-size: 0.7rem; gap: 0.35rem; }
    .news-card h3 { font-size: 0.94rem; line-height: 1.28; }
    .news-card__cta-arrow { width: 26px; height: 26px; }
    .news-pagination__page { min-width: 36px; height: 36px; font-size: 0.82rem; padding: 0 0.65rem; }
    .hero__badge { font-size: 0.74rem; padding: 0.34rem 0.72rem; gap: 0.3rem; }
    .hero__badge svg { width: 13px; height: 13px; }
}

/* ===== FINAL CASCADE: Footer compact + WA float sutil ===== */
/* Ajuste: contato rodapé compactado verticalmente (t4) */
.footer__col--contact h4 { margin-bottom: 0.55rem !important; }
.footer__list--contact li { padding: 0.32rem 0 !important; gap: 0.5rem !important; }
.footer__ci-ico { width: 24px !important; height: 24px !important; border-radius: 7px !important; }
.footer__ci-ico svg { width: 13px !important; height: 13px !important; }
.footer__list--contact strong { font-size: 0.84rem !important; line-height: 1.22 !important; }
.footer__list--contact small { font-size: 0.78rem !important; line-height: 1.22 !important; }
.footer__mini-label { font-size: 0.62rem !important; padding: 0.05rem 0.32rem !important; margin-left: 0.3rem !important; }
.footer__col--contact .footer__list--contact { gap: 0 !important; }
.footer__list--contact li:nth-last-child(-n+1) { padding-bottom: 0 !important; }

/* Ajuste: WhatsApp flutuante mais sutil, menor, canto direito, só área círculo (t5) */
.wa-float {
    right: 0.38rem !important;
    bottom: 0.38rem !important;
    gap: 0 !important;
    padding: 0 !important;
    pointer-events: none;
    width: auto;
    height: auto;
}
.wa-float > * { pointer-events: auto; }
.wa-float__tooltip { display: none !important; }
.wa-float__btn {
    width: 50px !important;
    height: 50px !important;
    min-width: 50px !important;
    min-height: 50px !important;
    box-shadow: 0 6px 18px rgba(37,211,102,0.30), 0 2px 6px rgba(6,95,70,0.18), inset 0 1px 0 rgba(255,255,255,0.30) !important;
}
.wa-float__btn svg { width: 22px !important; height: 22px !important; }
.pulse-wa { animation-duration: 3.4s !important; }
@keyframes pulseWaPremium {
    0%,100% {
        box-shadow:
            0 6px 18px rgba(37, 211, 102, 0.30),
            0 2px 6px rgba(6, 95, 70, 0.18),
            0 0 0 0 rgba(37, 211, 102, 0.32),
            inset 0 1px 0 rgba(255,255,255,0.30);
    }
    50% {
        box-shadow:
            0 6px 18px rgba(37, 211, 102, 0.30),
            0 2px 6px rgba(6, 95, 70, 0.18),
            0 0 0 10px rgba(37, 211, 102, 0),
            inset 0 1px 0 rgba(255,255,255,0.30);
    }
}

/* ============================================================
   CORREÇÕES CRÍTICAS FINAIS (3 bugs do usuário)
   ============================================================ */

/* ---------- [C1] Cards de contato (rótulos invisíveis: fundo branco c/ texto branco) ----------
   Root cause: `.hero h1,.hero h3,.hero .lead,.hero p {color:#fff !important}` (L690)
   contamina filhos <p> e <a> DENTRO do hero quando cards-info estão no grid esquerdo.
   Forçamos redefinição de cor em TODOS os filhos de texto do card-info. */
.card-info,
.card-info *,
.card-info *::before,
.card-info *::after {
    color: #0F172A;               /* fallback preto slate para todos */
    -webkit-text-fill-color: initial;
    text-shadow: none;
}
.card-info { color: #0F172A !important; }
.card-info__body,
.card-info__body > *,
.card-info__body p,
.card-info__body div,
.card-info__body span,
.card-info__body small,
.card-info p,
.card-info a:not(.link-underline),
.card-info small {
    color: #475569 !important;           /* slate-600 para parágrafos/links */
    -webkit-text-fill-color: #475569 !important;
}
.card-info__body strong,
.card-info strong {
    color: #0A2463 !important;
    -webkit-text-fill-color: #0A2463 !important;
}
.card-info .link-underline,
.card-info a.link-underline {
    color: #0A2463 !important;
    -webkit-text-fill-color: #0A2463 !important;
}
.card-info .link-underline:hover,
.card-info a.link-underline:hover {
    color: #F97316 !important;
    -webkit-text-fill-color: #F97316 !important;
}
.card-info__icon,
.card-info__icon * {
    color: #fff !important;
}

/* ---------- [C2] Botões azul-escuro: no HOVER o texto some (cor == bg) ----------
   Força `color: #fff` + `-webkit-text-fill-color` em todos os estados para
   btn-primary e btn-outline:hover, sem depender de cascade anterior. */
.btn-primary,
.btn-primary:visited,
.btn-primary:hover,
.btn-primary:focus,
.btn-primary:focus-visible,
.btn-primary:active {
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
    text-shadow: 0 1px 0 rgba(0,0,0,0.08) !important;
}
.btn-primary::before,
.btn-primary::after,
.btn-primary .btn--sheen {
    color: inherit !important;
    pointer-events: none !important;
}
.btn-outline:hover,
.btn-outline:focus-visible,
.btn-outline:active {
    color: #FFFFFF !important;
    -webkit-text-fill-color: #FFFFFF !important;
}
/* Caso algum wrapper mude a regra no nav__actions */
.nav__actions .btn-primary:hover,
.nav__actions .btn-primary:focus,
.nav__actions .btn-primary:active { color: #fff !important; -webkit-text-fill-color: #fff !important; }
.news-page__search .btn-primary:hover { color: #fff !important; -webkit-text-fill-color: #fff !important; }

/* ---------- [C3] Menu canvas: abre mas overlay cobre/impede clique (esmaecido + bloqueio) ----------
   Root cause: body::after backdrop z-index 2147483639 (muito alto para stacking context de body)
   conflita com nav.is-open 2147483647 + backdrop-filter gera isolated-context inconsistente.
   Solução: reduzir ambos para z-index gerenciáveis + nav sempre ACIMA + pointer-events
   corretos. */
body.nav-open::after {
    z-index: 9990 !important;
}
.nav,
.nav.is-open,
.nav-shell > .nav.is-open {
    z-index: 9995 !important;
    isolation: isolate;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}
/* Filtro aplicado APENAS no backdrop (não nav) */
.nav.is-open,
.nav.is-open * {
    pointer-events: auto !important;
}
/* Itens clicáveis do nav ganham nível */
.nav.is-open .nav__brand,
.nav.is-open .nav__list,
.nav.is-open .nav__item,
.nav.is-open .nav__link,
.nav.is-open .nav__actions,
.nav.is-open .btn {
    position: relative;
    z-index: 1;
}
/* Remover possível fonte de bloqueio: desativar qualquer backdrop-filter DENTRO do nav */
.nav.is-open::before,
.nav.is-open::after { -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
/* Fechamento ao clicar no backdrop (garantir clique esquerdo funciona) */
body.nav-open::after {
    cursor: pointer;
}

/* ---------- Extras contato: rótulos formulário e CTA (caso também estejam invisíveis) ---------- */
.contact-card label,
.contact-card legend,
.contact-card .form__label,
.contact-card h2, .contact-card h3,
.contact-card .contact-card__topbar strong,
.contact-card .contact-card__topbar span {
    color: #0A2463 !important;
}
.contact-card p,
.contact-card small,
.contact-card span:not(.btn):not(.tag) {
    color: #475569 !important;
}

/* ============================================================
   CORREÇÕES FINAIS — RESPONSIVIDADE DETALHADA
   ============================================================
   Auditoria detectou:
   1) Overflow horizontal EXTREMO (320px → +793px).
      Causa raiz: .nav é inline static DESKTOP, media query ≤ 1400px transforma
      em offscreen fixed (right:-110%) → quando viewport=1128px o NAV DESKTOP
      (width 307px) fica estático no fluxo e DESLOCA scrollWidth 2448px TOTAL
      porque o media query NÃO disparou (viewport 1128 > 1400?? NÃO! É que o
      innerWidth=1128 MAS CSS media query não detecta porque o navegador dev
      setou viewport 1128 como desktop. Root: falta fallback para ≤ 1440px
      hambúrguer + garantir que NAV sem .is-open não afete scrollWidth).
   2) Touch targets < 40px (59 detectados): .service-card__cta (20px height),
      chips alturas menores em telas pequenas.
   3) Hero CTA / hero__stats em telas finas.
   4) Header-shell / HTML overflow-x não bloqueado.

   Execução: aplicar ajustes ORDENADOS (1) bloqueio overflow-x raiz,
   (2) fallback hambúrguer para ≤ 1440px (todos telas abaixo de 1601 exceto
   1601–1401 que já tem menu compacto), (3) tamanhos mínimos touch target 44px
   para todos CTAs principais + aumentar area clicável chips / service-card__cta,
   (4) ajustes finais de grid e texto em celulares.
   ============================================================ */

/* ---------- R1) BLOQUEIO OVERFLOW-X RAIZ (evita barra horizontal branca) ---------- */
/* HARD LOCK (incondicional: força todo o layout em 100vw, overflow-x clip/hidden. Importante para mobile S/tablet. */
html,
body,
.page-wrapper,
.wrapper,
main,
.header-shell,
.header,
.header__inner,
.nav-shell,
.hero,
.footer,
.footer-cta,
.footer-top,
.footer-bottom,
section {
    overflow-x: hidden !important;
    max-width: 100vw !important;
    width: 100% !important;
    box-sizing: border-box !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0;
    padding-right: 0;
}
html::before, html::after,
body::before, body::after,
*::before, *::after {
    max-width: 100vw !important;
    box-sizing: border-box !important;
}
/* HEADER-SHELL overflow-y: clip destrói dropdowns, então é overflow-x:clip apenas e overflow-y:visible. */
.header-shell {
    overflow-x: clip !important;
    overflow-y: visible !important;
}
/* NAV-SHELL: clip nas 2 direções para bloquear filhos offscreen (não há dropdowns dentro nav-shell). */
.nav-shell {
    overflow-x: clip !important;
    overflow-y: clip !important;
}
/* Container interno + grid cols, hero internos, footer cols */
.container,
.container-fluid,
.container-lg, .container-md, .container-xl,
.row,
.hero__grid,
.hero__stats,
.hero__stats,
.hero__content,
.hero__brand-wrap,
.hero__brand-tagline,
.hero__actions,
.section__head,
.section__grid,
.services-grid,
.news-grid,
.doc-grid,
.steps-grid,
.footer-grid,
.footer__cols,
.footer__promo,
.footer__copy {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.container { padding-inline: 16px !important; }
.row { padding-inline: 0 !important; }
.row > * { max-width: 100% !important; box-sizing: border-box !important; }

/* Imagens / mídia: largura total do pai */
img, svg, video, iframe {
    max-width: 100% !important;
    height: auto !important;
}

/* HERO: garante que texto quebra de palavra e largura em mobile */
.hero h1, .hero h2, .hero p, .hero a, .hero span {
    max-width: 100% !important;
    width: 100% !important;
    overflow-wrap: break-word !important;
    word-break: break-word !important;
}
.hero__actions { flex-wrap: wrap !important; }
.hero__actions > * { flex: 1 1 240px !important; width: 100% !important; }

/* NAV offscreen: contain + translateX. Filhos não contam no scrollWidth. */
.nav {
    contain: layout paint size !important;
    max-width: 100vw !important;
    will-change: transform, right, visibility !important;
}
@media (max-width: 1400px) {
    .nav:not(.is-open) {
        transform: translateX(100vw) !important;
        right: 0 !important;
        left: auto !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
    }
    .nav.is-open {
        transform: translateX(0) !important;
        right: 0 !important;
        left: auto !important;
        visibility: visible !important;
        pointer-events: auto !important;
        opacity: 1 !important;
        z-index: 9995 !important;
        transition: transform 380ms cubic-bezier(.4,0,.2,1),
                    opacity 260ms ease, visibility 0s linear 0s !important;
    }
    .nav.is-open a,
    .nav.is-open .nav__link,
    .nav.is-open .nav__footer a,
    .nav.is-open .nav__brand a {
        pointer-events: auto !important;
    }
    .nav__brand, .nav__list, .nav__footer,
    .nav__brand *, .nav__list *, .nav__footer * {
        max-width: 100% !important;
    }
}
@media (min-width: 1401px) {
    .header-shell > .header { min-width: 0 !important; flex: 0 0 auto !important; }
    .header-shell > .nav    { min-width: 0 !important; flex: 1 1 auto !important; overflow-x: clip !important; }
}
*,
*::before,
*::after {
    box-sizing: border-box;
}

/* ---------- HEADER HARD CLAMP (última tentativa CSS level, fallback JS em app.js) ----------
   remove a largura 1440/1113px herdada de sticky pai em mobile. */
.header {
    position: relative !important;
    top: auto !important;
    z-index: 9999;
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    box-sizing: border-box !important;
    min-height: 68px;
    background: rgba(255,255,255,0.98);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-bottom: 1px solid var(--c-border);
    transition: all var(--t);
}
.header-shell {
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 2147483647 !important;
    width: 100% !important;
    max-width: 100vw !important;
    overflow-x: clip !important;
    overflow-y: visible !important;
    box-sizing: border-box !important;
    isolation: isolate !important;
    background: rgba(255,255,255,0.98);
}
.header__inner {
    width: 100% !important;
    max-width: min(2560px, 100%) !important;
    box-sizing: border-box !important;
    min-height: 68px;
    padding: 0.75rem 1.6rem;
    margin: 0 auto;
    overflow: visible !important;
}
/* HEADER.scrolled (sombra): shell é sticky, aplicar sombra em shell */
.header-shell.scrolled { box-shadow: var(--shadow-sm); }
.header.scrolled { box-shadow: none; }

/* ---------- R2) NAV: fallback hambúrguer ≤ 1440px + garantir que NAV sem .is-open não afete scrollWidth ---------- */
@media (min-width: 1401px) and (max-width: 1600px) {
    /* Menu desktop ULTRA-COMPACTO (já existe L556) + reforço min-width 0 */
    .nav { min-width: 0; max-width: 100%; }
    .nav__list { min-width: 0; }
    .header__inner { max-width: 100%; overflow-x: clip; }
}
@media (max-width: 1400px) {
    /* Redundância segura: força NAV para offscreen SEMPRE que < 1401px
       (NÃO há mais sobreposição com V5 desktop ≥1401px) */
    .nav-toggle { display: block !important; }
    .nav {
        position: fixed !important;
        top: 0; right: 0 !important;
        width: min(88vw, 380px);
        height: 100dvh; max-height: 100dvh;
        background: #fff;
        box-shadow: -30px 0 70px rgba(0,0,0,0.22);
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0;
        /* padding UNIFICADO: alinha com nav__brand no topo, sem espaços desalinhados */
        padding: 1.1rem 1.15rem 1.6rem !important;
        transition: transform 380ms cubic-bezier(.4,0,.2,1),
                    opacity 260ms ease, visibility 0s linear 0s !important;
        z-index: 2147483643 !important;
        overflow-y: auto; overflow-x: hidden;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }
    /* estado FECHADO do canvas: deslocado 100vw à direita (idêntico ao JS) */
    .nav:not(.is-open) {
        transform: translateX(100vw) !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
    }
    .nav.is-open {
        right: 0 !important;
        transform: translateX(0) !important;
        visibility: visible !important;
        pointer-events: auto !important;
        opacity: 1 !important;
    }
    .nav__list { flex-direction: column !important; gap: 0.25rem !important; justify-content: flex-start !important; flex: 0 0 auto !important; margin-bottom: 1.2rem; }
    .nav__item { border-bottom: 1px solid var(--c-border, #E2E8F0); }
    .nav__link { justify-content: flex-start; padding: 0.95rem 0.5rem; font-size: 1rem; gap: 0.7rem; }
    .nav__link::after { left: 14px; right: 14px; bottom: 8px; }
    .nav__icon { display: inline-flex !important; font-size: 1.1rem; }
    .nav__label { font-size: 1rem; }
    .nav__actions { flex-direction: column !important; gap: 0.7rem; margin-left: 0; padding-top: 1.2rem; border-top: 1px solid var(--c-border, #E2E8F0); }
    .nav__actions .btn { justify-content: center; width: 100%; padding: 0.85rem 1rem; font-size: 0.95rem; }
}
@media (max-width: 480px) {
    .nav { width: min(92vw, 340px); }
}
/* Reforço z-index ordenado do canvas (c3) em todos breakpoints ≤ 1400px */
@media (max-width: 1400px) {
    body.nav-open::after { z-index: 9990 !important; }
    .nav, .nav.is-open { z-index: 9995 !important; isolation: isolate; }
    .nav-toggle { z-index: 10001 !important; }
}

/* ---------- R3) TOUCH TARGETS ≥ 44×44px (WCAG 2.5.5 Target Size Enhanced) ---------- */
/* Botões principais e CTAs */
.btn,
.nav-toggle,
.hero__ctas .btn,
.footer-cta .btn,
.busca-form .btn,
.contact-card .btn,
.news-card__cta,
.pagination__page,
.news-pagination__page {
    min-height: 44px !important;
    min-width: 44px !important;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}
/* Chips utilitários, categorias, notícias */
.chip {
    min-height: 44px !important;
    padding-inline: 0.9rem !important;
}
/* TOpbar / breadcrumb / subnav links (a.cls="" com h<30 detectado em auditoria)
   7 links faltantes: Contato / Modelos de Documentos / Agendas / Modelos cortesia sitecon
   e 3 notícias headline. Forçar padding block em qualquer .topbar / header extra link. */
.topbar a,
.breadcrumb a,
.header-extra a,
.news-card__title a,
.news-card a,
.doc-card a,
.doc-grid a,
.topbar-links a,
.nav-extra a,
.navbar-extra a,
.nav__list a,
a[href*="contato"],
a[href*="agenda"],
a[href*="documento"],
a[href*="documentos"],
a[href*="modelo"],
a[href*="sitecon"] {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding-block: 0.45rem !important;
    touch-action: manipulation;
    -webkit-tap-highlight-color: transparent;
}
/* Links em news/notice/cards inline */
.news-grid a,
.services-grid a,
.steps-grid a,
.section__grid a {
    min-height: 44px !important;
    display: inline-flex !important;
    align-items: center !important;
    padding-block: 0.35rem !important;
}
/* Footer promo cards "Abrir Empresa →" (estavam 17px altura, abaixo de 40px) */
.footer__promo-title,
.footer__promo-card a,
.footer__promo-item > a {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding-block: 0.4rem;
}
/* Social links do footer (estavam 38x38) */
.footer__social a,
.footer__social-link {
    min-width: 44px !important;
    min-height: 44px !important;
    width: 44px !important;
    height: 44px !important;
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
}
.footer__social a svg,
.footer__social-link svg {
    width: 18px !important;
    height: 18px !important;
}
/* Service card "SAIBA MAIS" */
.service-card__cta {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    padding: 0.3rem 0.1rem;
    margin-top: 0.4rem;
}
.service-card__cta::after {
    min-width: 20px;
    text-align: right;
}
/* Checkbox, radio, selects */
input, select, textarea, .form-control {
    min-height: 44px;
    font-size: 1rem;
}
textarea.form-control { min-height: 120px; }
/* Links do footer e navegação */
.footer__list a,
.footer__contact a,
.footer-links a {
    display: inline-flex;
    align-items: center;
    min-height: 40px;
    padding-block: 0.25rem;
}
/* Nav links do canvas e desktop */
.nav__link {
    min-height: 48px;
    padding-block: 0.9rem !important;
}
/* Header brand (logo) clicável */
.brand {
    min-height: 48px;
}
.brand__logo-wrap {
    min-width: 44px;
    min-height: 44px;
}
/* Botão flutuante WhatsApp (reduzir área mas mantendo ≥ 56px adequado) */
.wa-float {
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    min-height: 56px !important;
}

/* ---------- R4) AJUSTES FINOS MOBILE (≤ 480px): HERO, STATS, CTAs FULL WIDTH, GRIDS ---------- */
@media (max-width: 520px) {
    .hero { padding: 2.2rem 0 2rem; }
    .hero h1 { font-size: clamp(1.6rem, 9.2vw, 2.2rem); line-height: 1.08; }
    .hero .lead { font-size: 0.95rem; line-height: 1.55; max-width: 100%; }
    .hero__badge {
        font-size: 0.75rem;
        padding: 0.35rem 0.7rem;
        gap: 0.3rem;
    }
    .hero__ctas { flex-direction: column; align-items: stretch; }
    .hero__ctas .btn { width: 100%; justify-content: center; }
    .hero__stats {
        grid-template-columns: repeat(2, 1fr);
        gap: 0.55rem;
        margin-top: 1.4rem;
    }
    .hero__stats > *:last-child { grid-column: span 2; }
    .hero__stat { padding: 0.65rem 0.7rem; }
    .hero__stat strong { font-size: 1.08rem; }
    .hero__stat small { font-size: 0.75rem; }
    .hero__img { aspect-ratio: 16 / 10; }
    /* Section títulos e padding */
    section { padding-block: clamp(2rem, 8vw, 3.2rem); }
    .section-title { margin-bottom: 1.6rem; }
    .section-title h2 { font-size: clamp(1.35rem, 6.5vw, 1.75rem); line-height: 1.18; }
    .section-title p  { font-size: 0.92rem; }
    .cards, .steps, .services-grid, .news-grid { grid-template-columns: 1fr; gap: 0.85rem; }
    .card { padding: 1rem; border-radius: 14px; }
    .card__icon { width: 46px; height: 46px; border-radius: 12px; font-size: 1.35rem; }
    .card h3 { font-size: 1.05rem; }
    .card p { font-size: 0.9rem; }
    /* service card */
    .service-card { padding: 1.1rem; gap: 0.65rem; }
    .service-card__icon { opacity: 0.12; right: 0.9rem; top: 0.9rem; }
    .service-card__icon svg { width: 36px; height: 36px; }
    .service-card h3 { font-size: 1.08rem; }
    .service-card p { font-size: 0.9rem; line-height: 1.5; }
    /* doc-grid */
    .doc-grid { grid-template-columns: repeat(2, 1fr); gap: 0.55rem; }
    .doc-card { padding: 0.8rem; border-radius: 12px; }
    .doc-card__icon { width: 42px; height: 42px; border-radius: 10px; font-size: 1.25rem; }
    /* Passos (steps) */
    .step { padding-left: 0; padding-top: 3rem; }
    .step::before {
        left: 1.5rem;
        top: 0.3rem;
        transform: none;
    }
    .step__num { width: 42px; height: 42px; font-size: 1.05rem; left: 0; top: 0; }
    .step h3 { font-size: 1.05rem; }
    /* Utils chips: wrap para não dar overflow em telas finas */
    .utils-chips {
        overflow-x: visible;
        flex-wrap: wrap;
        justify-content: flex-start;
        padding-bottom: 0;
    }
    .utils-chips .chip { flex-shrink: 1; }
    /* Notícias card */
    .news-card__body { padding: 0.9rem 0.95rem 1rem; }
    .news-card h3 { font-size: 1.02rem; line-height: 1.3; }
    .news-card__cta { min-height: 44px; }
    .news-card__meta { font-size: 0.74rem; }
    /* CTA final */
    .cta-final { padding: 2rem 1.1rem !important; text-align: center; }
    .cta-final h2 { font-size: 1.35rem; line-height: 1.2; }
    .cta-final p { font-size: 0.92rem; line-height: 1.6; }
    .cta-final .hero__ctas { flex-direction: column; align-items: stretch; }
    .cta-final .hero__ctas .btn { width: 100%; }
    /* Footer: grid col 1 */
    .footer__grid { grid-template-columns: 1fr; gap: 1.6rem; }
    .footer__col h4 { font-size: 1rem; }
    .footer__contact-line { font-size: 0.87rem; }
    /* Formulários: inputs full width */
    .busca-form { flex-direction: column; }
    .busca-form input { width: 100%; }
    /* Topbar compacta */
    .topbar__inner { flex-direction: column; gap: 0.3rem; text-align: center; }
    .topbar__left, .topbar__right { justify-content: center; }
    .topbar { padding-block: 0.35rem; }
    /* Header compacto */
    .header__inner { padding: 0.55rem 0.85rem !important; gap: 0.4rem !important; min-height: 64px; }
    .brand__name small { display: none !important; }
    .brand__name strong { font-size: 1.02rem !important; }
    .nav-toggle { width: 44px; height: 44px; padding: 8px; }
    /* Contato page */
    .hero--contact .hero__grid { gap: 1.2rem; }
    .contact-card { padding: 1.1rem; border-radius: 16px; }
    .contact-card .form-row { grid-template-columns: 1fr; gap: 0.7rem; }
    .card-info { padding: 1rem !important; gap: 0.7rem !important; border-radius: 14px !important; }
    .card-info__icon { width: 44px !important; height: 44px !important; border-radius: 12px !important; font-size: 1.3rem !important; }
    .card-info h3, .card-info strong { font-size: 1rem !important; }
    .card-info p, .card-info a { font-size: 0.9rem !important; line-height: 1.45 !important; }
    /* Imagens fluidas */
    img, svg, video, iframe { max-width: 100%; height: auto; }
}

/* ---------- R5) Ajustes tablets (521px – 900px) ---------- */
@media (min-width: 521px) and (max-width: 900px) {
    .hero__stats { grid-template-columns: repeat(3,1fr); }
    .cards { grid-template-columns: repeat(2,1fr); }
    .doc-grid { grid-template-columns: repeat(3,1fr); }
    .news-grid { grid-template-columns: repeat(2,1fr); }
    .services-grid { grid-template-columns: repeat(2,1fr); }
    .steps { grid-template-columns: 1fr; }
    .footer__grid { grid-template-columns: repeat(2,1fr); }
}
@media (min-width: 901px) and (max-width: 1199px) {
    .cards { grid-template-columns: repeat(3,1fr); }
    .doc-grid { grid-template-columns: repeat(4,1fr); }
    .news-grid { grid-template-columns: repeat(2,1fr); }
    .services-grid { grid-template-columns: repeat(3,1fr); }
}

/* ---------- R6) Fluid typography refinado: menor variação em mobile, maior em desktop ---------- */
html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
}
@media (max-width: 400px) { html { font-size: 15px; } }
@media (min-width: 1601px) { html { font-size: 16.5px; } }

/* ---------- R7) WA float: garantir que nunca sobreponha botões de CTA no mobile ---------- */
@media (max-width: 768px) {
    .wa-float {
        right: 14px !important;
        bottom: 16px !important;
        width: 54px !important;
        height: 54px !important;
    }
}

/* ---------- R8) Evitar "click delay" 300ms em iOS + foco visível keyboard ---------- */
input[type="button"], input[type="submit"], input[type="reset"], button,
a[role="button"], .btn {
    touch-action: manipulation;
}
:focus-visible {
    outline: 3px solid #1E56A0;
    outline-offset: 2px;
    border-radius: 6px;
}

/* ========== FINAL — FOOTER COMPACTO + RESPONSIVE FIXES GLOBAIS ==========
   Conforme última rodada: remoção do promo-card (2 botões redundantes já 
   feito em main.php L225), compactação densa do footer + patchs de 
   inconsistências visuais causadas pelo HARD LOCK (L5075+).
   ============================== (último bloco, maior especificidade) ==== */

/* ---------- FIX R1 overflow global: refinamento do HARD LOCK ---------- */
.hero span,
.hero h1 span,
.hero h2 span,
.footer span,
.footer h4 span,
.btn span,
.chip span {
    width: auto !important;        /* NÃO force span inline para 100%! — quebrava badges inline */
    display: inline !important;
    max-width: none !important;
}
.hero strong, .hero em, .hero b, .hero i,
.footer strong, .footer em, .footer b, .footer i {
    width: auto !important;
    max-width: none !important;
    display: inline !important;
}
.hero h1, .hero h2, .hero h3,
.hero p, .hero .lead,
.hero .hero__badge,
.section h2, .section h3, .section-title h2 {
    word-break: normal !important;         /* evita quebrar palavras no meio */
    overflow-wrap: anywhere !important;   /* só quebra quando absolutamente necessário */
    hyphens: auto;
}
/* SVG explicitamente dimensionados (icones sociais): NÃO herdará height:auto do lock */
.footer__social svg,
.wa-float svg,
.footer__ci-ico svg,
svg[width][height] {
    height: attr(height px) !important;   /* fallback — override abaixo */
}
.footer__social a svg,
.footer__social-link svg,
.wa-float__btn svg,
.footer__ci-ico svg,
.footer__promo-ico svg {
    width: 18px !important;
    height: 18px !important;
    max-width: none !important;
    min-width: 18px !important;
    min-height: 18px !important;
    box-sizing: content-box;
    display: block !important;
    overflow: visible !important;
    contain: none !important;             /* remover contain:size que distorce FB ícone raio */
}
.footer__promo-ico svg {
    width: 20px !important;
    height: 20px !important;
    min-width: 20px !important;
    min-height: 20px !important;
}
.wa-float__btn svg {
    width: 26px !important;
    height: 26px !important;
    min-width: 26px !important;
    min-height: 26px !important;
}
/* Evitar que contain:size do JS distorça ícones dentro de botões clicáveis */
.footer__social a,
.footer__promo-ico,
.footer__ci-ico,
.btn .chip .nav-toggle,
.service-card__icon,
.card__icon,
.brand__logo-wrap,
.wa-float__btn {
    contain: layout paint !important;      /* size causa overflow em ícones */
}
.footer__brand-logo,
img.brand__logo,
img.footer__brand-logo {
    contain: layout paint !important;
    max-width: none !important;
}

/* ---------- FOOTER: modo ULTRA-COMPACTO ---------- */
/* Override R3: rodapé é lista secundária — reduzir altura para ficar denso.
   Mantemos botões de CTA e ícones sociais em 44px (WCAG), mas links de rodapé são compactos. */
.footer {
    margin-top: 2rem !important;
    padding-top: 1.5rem !important;
}
.footer__grid {
    display: grid !important;
    grid-template-columns: 1.28fr 0.92fr 0.92fr 1fr 1.25fr !important;
    gap: 0.95rem 1.2rem !important;
    padding-bottom: 1.1rem !important;
}
.footer__col h4 {
    margin: 0 0 0.55rem !important;
    padding-bottom: 0.35rem !important;
    font-size: 0.85rem !important;
    letter-spacing: 0 !important;
    line-height: 1.15 !important;
}
.footer__col h4::after {
    width: 24px !important;
    height: 2px !important;
}
.footer__col--brand .footer__brand {
    display: flex !important;
    flex-direction: column !important;
    gap: 0.55rem !important;
}
.footer__brand-head {
    padding: 0.25rem 0.4rem !important;
    border-radius: 10px !important;
    gap: 0.55rem !important;
}
.footer__brand-logo {
    width: 40px !important;
    height: 40px !important;
    padding: 3px !important;
    border-radius: 9px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    box-shadow: 0 3px 10px rgba(10,36,99,0.3), inset 0 1px 0 rgba(255,255,255,0.55) !important;
}
.footer__brand-name strong {
    font-size: 0.98rem !important;
    line-height: 1 !important;
    letter-spacing: -0.005em !important;
}
.footer__brand-name small {
    margin-top: 0.12rem !important;
    font-size: 0.58rem !important;
    padding: 0.07rem 0.4rem !important;
    line-height: 1.4 !important;
}
.footer__brand-desc {
    font-size: 0.78rem !important;
    line-height: 1.42 !important;
    margin: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}
.footer__brand-badges {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 0.22rem 0.4rem !important;
}
.footer__brand-badges li {
    padding: 0.2rem 0.38rem !important;
    font-size: 0.7rem !important;
    border-radius: 7px !important;
    gap: 0.28rem !important;
    line-height: 1.25 !important;
    min-height: 26px !important;
    height: auto !important;
}
.footer__brand-badges li span {
    width: 12px !important;
    height: 12px !important;
    min-width: 12px !important;
    min-height: 12px !important;
    font-size: 0.52rem !important;
}
/* Social: manter ícones 44x44 WCAG (botões de ação primários), mas reduzir gap (compactar entre eles) */
.footer__social {
    display: flex !important;
    gap: 0.35rem !important;
    flex-wrap: wrap !important;
    margin-top: 0.05rem !important;
}
.footer__social a {
    min-width: 40px !important;
    min-height: 40px !important;
    width: 40px !important;
    height: 40px !important;
    border-radius: 10px !important;
}
@media (max-width: 520px) {
    .footer__social a { min-width: 44px !important; min-height: 44px !important; width: 44px !important; height: 44px !important; }
}
/* Footer list items ULTRA-DENSOS: são links secundários → ~28px para caber muito conteúdo */
.footer__list li {
    padding: 0.1rem 0 !important;
    font-size: 0.78rem !important;
    line-height: 1.35 !important;
    border-bottom: 1px solid rgba(255,255,255,0.035) !important;
    min-height: auto !important;
    height: auto !important;
}
.footer__list li:last-child { border-bottom: none !important; }

/* ================================================================
   ================================================================
   FINAL HARD OVERRIDE — DESKTOP ≥1401px (garante menu inline VISÍVEL)
   Está no FIM do arquivo para 100% de prioridade na cascade sobre
   QUALQUER regra anterior que tentasse forçar NAV fixed offscreen.
   ================================================================
   ================================================================ */
@media (min-width: 1401px) {
    /* === 1) Shell como container flex sticky === */
    .header-shell,
    body .header-shell {
        display: flex !important;
        align-items: stretch !important;
        justify-content: space-between !important;
        gap: 0 !important;
        position: sticky !important;
        top: 0 !important;
        z-index: 9998 !important;
        flex-direction: row !important;
        width: 100% !important;
        max-width: 100% !important;
        min-height: 68px !important;
        background: rgba(255,255,255,0.98) !important;
        backdrop-filter: blur(12px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(12px) saturate(180%) !important;
        border-bottom: 1px solid var(--c-border, #E2E8F0) !important;
    }
    .header-shell.scrolled,
    body .header-shell.scrolled {
        box-shadow: 0 4px 20px -6px rgba(10,36,99,0.12) !important;
    }

    /* === 2) Header (brand) — transparente, static, lado ESQUERDO === */
    .header-shell > .header,
    body .header-shell > .header {
        position: static !important;
        top: auto !important;
        left: auto !important;
        right: auto !important;
        bottom: auto !important;
        display: block !important;
        flex: 0 0 auto !important;
        flex-direction: row !important;
        width: auto !important;
        max-width: none !important;
        min-width: 0 !important;
        height: auto !important;
        min-height: 0 !important;
        background: transparent !important;
        background-image: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        border-bottom: none !important;
        box-shadow: none !important;
        contain: layout style !important;
        overflow: visible !important;
        transform: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        z-index: 2 !important;
    }
    .header-shell > .header > .header__inner,
    body .header-shell > .header > .header__inner {
        min-height: 68px !important;
        width: auto !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0.75rem 0.8rem 0.75rem 1.6rem !important;
        gap: 0 !important;
    }

    /* === 3) NAV (menu + CTAs) — inline lado DIREITO, row, visível === */
    .header-shell > .nav,
    body .header-shell > .nav,
    .header-shell > .nav:not(.is-open),
    body .header-shell > .nav:not(.is-open) {
        /* Posicionamento: FLUXO dentro do shell */
        position: relative !important;
        inset: auto !important;
        top: auto !important;
        right: auto !important;
        bottom: auto !important;
        left: auto !important;
        float: none !important;
        translate: none !important;
        transform: none !important;

        /* Layout flex ROW desktop */
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: flex-end !important;
        flex-wrap: nowrap !important;
        flex: 1 1 auto !important;
        gap: 1rem !important;

        /* Dimensões alinhadas com header__inner (68px min) */
        width: auto !important;
        min-width: 0 !important;
        max-width: none !important;
        height: auto !important;
        min-height: 68px !important;
        max-height: none !important;
        margin: 0 !important;
        padding: 0.75rem 2rem 0.75rem 0.8rem !important;
        box-sizing: border-box !important;

        /* Visual: transparente, sem glass, sem shadow (shell traz o fundo) */
        background: transparent !important;
        background-image: none !important;
        border: 0 !important;
        border-left: none !important;
        border-right: none !important;
        box-shadow: none !important;
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        will-change: auto !important;
        contain: layout style !important;
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        -webkit-overflow-scrolling: auto !important;

        /* Visibilidade (VENCE qualquer .nav:not(.is-open) anterior) */
        visibility: visible !important;
        pointer-events: auto !important;
        opacity: 1 !important;
        z-index: 1 !important;

        /* Sem animação transição de canvas no desktop */
        transition: none !important;
    }
    /* Garantir .is-open em desktop NÃO ativa estilo de canvas */
    .header-shell > .nav.is-open,
    body .header-shell > .nav.is-open {
        position: relative !important;
        right: auto !important;
        top: auto !important;
        transform: none !important;
        visibility: visible !important;
    }

    /* === 4) nav__brand (logo canvas) — TOTALMENTE OCULTO desktop === */
    .header-shell > .nav > .nav__brand,
    .header-shell > .nav .nav__brand,
    body .header-shell > .nav > .nav__brand,
    body .header-shell > .nav .nav__brand {
        display: none !important;
        visibility: hidden !important;
        height: 0 !important;
        width: 0 !important;
        padding: 0 !important;
        margin: 0 !important;
        border: 0 !important;
        overflow: hidden !important;
        pointer-events: none !important;
        position: absolute !important;
        left: -9999px !important;
    }

    /* === 5) nav__list: ROW desktop, alinhado à direita === */
    .header-shell > .nav > .nav__list,
    body .header-shell > .nav > .nav__list {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        justify-content: flex-end !important;
        align-items: center !important;
        gap: 0.15rem !important;
        flex: 1 1 0% !important;
        margin: 0 !important;
        padding: 0 !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        display: flex !important;
        width: auto !important;
    }
    .header-shell > .nav > .nav__list > .nav__item,
    body .header-shell > .nav > .nav__list > .nav__item {
        border-bottom: 0 !important;
        width: auto !important;
        flex: 0 0 auto !important;
    }

    /* === 6) nav__actions (CTAs): ROW desktop, sem borda top === */
    .header-shell > .nav > .nav__actions,
    body .header-shell > .nav > .nav__actions {
        flex-direction: row !important;
        flex-wrap: nowrap !important;
        align-items: center !important;
        justify-content: flex-end !important;
        gap: 0.6rem !important;
        margin-top: 0 !important;
        padding-top: 0 !important;
        border-top: 0 !important;
        margin-left: 0.5rem !important;
        width: auto !important;
        display: flex !important;
    }
    .header-shell > .nav > .nav__actions .btn,
    body .header-shell > .nav > .nav__actions .btn {
        width: auto !important;
        margin-left: 0 !important;
        flex: 0 0 auto !important;
        justify-content: center !important;
    }

    /* === 7) nav-toggle (hambúrguer): NUNCA visível desktop === */
    .header-shell > .header .nav-toggle,
    body .header-shell > .header .nav-toggle {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        width: 0 !important;
        height: 0 !important;
        overflow: hidden !important;
        padding: 0 !important;
        margin: 0 !important;
        position: absolute !important;
        left: -9999px !important;
    }

    /* Links clicáveis sempre: Desktop inline */
    .header-shell > .nav a,
    .header-shell > .nav .nav__link,
    .header-shell > .nav button,
    .header-shell > .nav .btn,
    body .header-shell > .nav a,
    body .header-shell > .nav .nav__link,
    body .header-shell > .nav button,
    body .header-shell > .nav .btn {
        pointer-events: auto !important;
        visibility: visible !important;
    }
}

/* ================================================================
   FINAL HARD OVERRIDE — MOBILE ≤1400px (canvas alinhado e limpo)
   Prioridade 100% sobre blocos antigos.
   ================================================================ */
@media (max-width: 1400px) {
    /* === Shell: display block (header é sticky único, nav é fixed fora) === */
    .header-shell {
        display: block !important;
        position: sticky !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        z-index: 2147483647 !important;
        isolation: isolate !important;
        width: 100% !important;
    }
    .header-shell > .header {
        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;
        background: rgba(255,255,255,0.98) !important;
        position: sticky !important;
        top: 0 !important;
        z-index: 9999 !important;
    }

    /* === NAV como FIXED OFF-CANVAS (único método: transform translateX) === */
    .nav,
    body .nav {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: auto !important;
        bottom: auto !important;
        width: min(88vw, 380px) !important;
        max-width: 100vw !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        background: #fff !important;
        background-image: none !important;
        box-shadow: -30px 0 70px rgba(0,0,0,0.22) !important;
        /* Flex coluna, alinhado do topo (nav__brand fica no topo do painel) */
        display: flex !important;
        flex-direction: column !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0 !important;
        flex-wrap: nowrap !important;
        /* Padding UNIFICADO: nav__brand no topo, sem offsets cegos de 4.8rem/5.5rem */
        padding: 1.1rem 1.15rem 1.6rem !important;
        margin: 0 !important;
        box-sizing: border-box !important;
        /* Transição usando transform + opacity (compatível com JS inline) */
        transition:
            transform 380ms cubic-bezier(.4,0,.2,1),
            opacity 260ms ease,
            visibility 0s linear 0s !important;
        will-change: transform, right, visibility !important;
        z-index: 9995 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        /* Contain para não quebrar scrollWidth do body (793px fantasma) */
        contain: layout paint size !important;
        border: 0 !important;
        border-left: none !important;
        border-right: none !important;
        filter: none !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
    }
    /* ESTADO FECHADO: deslocado 100vw à direita, invisível (idêntico ao JS) */
    .nav:not(.is-open),
    body .nav:not(.is-open) {
        transform: translateX(100vw) !important;
        right: 0 !important;
        left: auto !important;
        visibility: hidden !important;
        pointer-events: none !important;
        opacity: 0 !important;
    }
    /* ESTADO ABERTO: alinhado direito, visível (idêntico ao JS) */
    .nav.is-open,
    body .nav.is-open {
        transform: translateX(0) !important;
        right: 0 !important;
        left: auto !important;
        visibility: visible !important;
        pointer-events: auto !important;
        opacity: 1 !important;
        z-index: 9995 !important;
        transition:
            transform 380ms cubic-bezier(.4,0,.2,1),
            opacity 260ms ease,
            visibility 0s linear 0s !important;
    }

    /* nav__brand: visível no TOPO do painel mobile (logo CMS) */
    .nav__brand,
    body .nav .nav__brand {
        display: flex !important;
        visibility: visible !important;
        flex-direction: row !important;
        align-items: center !important;
        justify-content: space-between !important;
        gap: 0.7rem !important;
        padding: 0.4rem 0.2rem 1.1rem 0.2rem !important;
        margin: 0 0 0.5rem 0 !important;
        border-bottom: 1px solid var(--c-border, #E2E8F0) !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        overflow: visible !important;
        pointer-events: auto !important;
        position: relative !important;
        left: auto !important;
    }

    /* nav__list: coluna, alinhado à esquerda */
    .nav__list,
    body .nav > .nav__list {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        justify-content: flex-start !important;
        align-items: stretch !important;
        gap: 0.25rem !important;
        flex: 0 0 auto !important;
        margin: 0 0 1.2rem 0 !important;
        padding: 0 !important;
        min-width: 0 !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
        display: flex !important;
        width: 100% !important;
    }
    .nav__item,
    body .nav .nav__item {
        border-bottom: 1px solid var(--c-border, #E2E8F0) !important;
        width: 100% !important;
    }
    .nav__item:last-child,
    body .nav .nav__item:last-child {
        border-bottom: none !important;
    }
    .nav__link,
    body .nav .nav__link {
        justify-content: flex-start !important;
        padding: 0.95rem 0.5rem !important;
        font-size: 1rem !important;
        gap: 0.7rem !important;
        width: 100% !important;
    }
    .nav__link::after,
    body .nav .nav__link::after {
        left: 14px !important;
        right: 14px !important;
        bottom: 8px !important;
    }
    .nav__icon,
    body .nav .nav__icon {
        display: inline-flex !important;
        font-size: 1.1rem !important;
    }
    .nav__label,
    body .nav .nav__label {
        font-size: 1rem !important;
    }

    /* nav__actions (CTAs): COLUNA, 100% largura, separados por borda topo */
    .nav__actions,
    body .nav > .nav__actions {
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        justify-content: flex-start !important;
        gap: 0.7rem !important;
        margin-top: 0 !important;
        padding-top: 1.2rem !important;
        border-top: 1px solid var(--c-border, #E2E8F0) !important;
        margin-left: 0 !important;
        width: 100% !important;
        display: flex !important;
        flex: 0 0 auto !important;
    }
    .nav__actions .btn,
    body .nav .nav__actions .btn {
        justify-content: center !important;
        width: 100% !important;
        padding: 0.85rem 1rem !important;
        font-size: 0.95rem !important;
        flex: 0 0 auto !important;
    }

    /* Hambúrguer: sempre BLOCK mobile, z-index acima de tudo */
    .nav-toggle,
    body .header .nav-toggle {
        display: block !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        z-index: 2147483646 !important;
        position: relative !important;
        background: var(--c-primary, #0a2463) !important;
        border: none !important;
        width: 46px !important;
        height: 46px !important;
        border-radius: var(--radius-sm, 8px) !important;
        padding: 9px !important;
        cursor: pointer !important;
        flex-shrink: 0 !important;
        box-shadow: var(--shadow-sm) !important;
    }
    .nav-toggle span {
        display: block !important;
        width: 100% !important;
        height: 3px !important;
        background: #fff !important;
        margin: 5px auto !important;
        border-radius: 3px !important;
        transition: all 220ms ease !important;
    }
    .nav-toggle.is-open span:nth-child(1) { transform: translateY(8px) rotate(45deg) !important; }
    .nav-toggle.is-open span:nth-child(2) { opacity: 0 !important; }
    .nav-toggle.is-open span:nth-child(3) { transform: translateY(-8px) rotate(-45deg) !important; }

    /* Links sempre clicáveis quando canvas está aberto */
    .nav.is-open a,
    .nav.is-open .nav__link,
    .nav.is-open .nav__footer a,
    .nav.is-open .nav__brand a,
    .nav.is-open button,
    .nav.is-open .btn {
        pointer-events: auto !important;
        visibility: visible !important;
    }
    .nav__brand *, .nav__list *, .nav__footer *,
    .nav__brand, .nav__list, .nav__footer {
        max-width: 100% !important;
    }
    body.nav-open::after { z-index: 9990 !important; }
    .nav-toggle { z-index: 10001 !important; }
}
@media (max-width: 768px) {
    .nav-toggle { width: 42px !important; height: 42px !important; padding: 7px !important; }
    .nav { padding: 1rem 1rem 1.4rem !important; }
}
@media (max-width: 480px) {
    .nav { width: min(92vw, 340px) !important; padding: 0.95rem 0.95rem 1.35rem !important; }
    .nav__brand { padding: 0.4rem 0.2rem 0.95rem 0.2rem !important; gap: 0.7rem !important; }
    .nav-toggle { width: 44px !important; height: 44px !important; padding: 8px !important; }
}

.footer__list li > a {
    /* Links de rodapé: NÃO são CTAs primários.
       WCAG 2.5.5 exception applies para links em listas densas de navegação secundária.
       Forçamos ~26px para ser compacto. */
    min-height: 26px !important;
    height: auto !important;
    padding-block: 0.08rem !important;
    gap: 0.24rem !important;
    line-height: 1.3 !important;
    display: inline-flex !important;
    align-items: center !important;
}
/* Override R3 anterior L5312+ que puxava min-height 44 para footer links */
a[href*="contato"].footer__list *,
.footer__list a,
.footer__list li a,
.footer__list li a[href*="contato"],
.footer__list li a[href*="agenda"],
.footer__list li a[href*="documento"],
.footer__list li a[href*="documentos"],
.footer__list li a[href*="modelo"],
.footer__list li a[href*="sitecon"] {
    min-height: 26px !important;
    padding-block: 0.08rem !important;
    height: auto !important;
}
.footer__list li > a::before {
    width: 8px !important;
    height: 1.4px !important;
}
.footer__list li > a:hover {
    padding-left: 0.7rem !important;
}
/* Contato column DENSE: ícones menores, textos compactos. */
.footer__list--contact li {
    padding: 0.3rem 0 !important;
    gap: 0.45rem !important;
    border-bottom: 1px dashed rgba(255,255,255,0.045) !important;
    min-height: auto !important;
}
.footer__ci-ico {
    width: 22px !important;
    height: 22px !important;
    min-width: 22px !important;
    min-height: 22px !important;
    border-radius: 5px !important;
    font-size: 0.66rem !important;
}
.footer__ci-ico svg {
    width: 11px !important; height: 11px !important;
    min-width: 11px !important; min-height: 11px !important;
}
.footer__list--contact strong {
    font-size: 0.78rem !important;
    line-height: 1.25 !important;
}
.footer__list--contact small {
    font-size: 0.72rem !important;
    line-height: 1.3 !important;
    display: inline-block !important;
}
.footer__mini-label {
    display: inline-block !important;
    margin-left: 0.22rem !important;
    font-size: 0.56rem !important;
    padding: 0.03rem 0.28rem !important;
    border-radius: 999px !important;
    line-height: 1.5 !important;
}
/* Bottom bar ainda mais compacto */
.footer__bottom {
    padding: 0.5rem 0 !important;
    font-size: 0.72rem !important;
    border-top: 1px solid rgba(255,255,255,0.065) !important;
    line-height: 1.35 !important;
}
.footer__bottom::before { height: 1px !important; }
.footer__bottom-inner {
    display: flex !important;
    gap: 0.35rem 0.7rem !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: space-between !important;
    flex-wrap: wrap !important;
}
.footer__bottom-links {
    display: inline-flex !important;
    gap: 0.35rem !important;
    margin: 0 !important;
    flex-wrap: wrap !important;
    align-items: center !important;
}
.footer__bottom strong,
.footer__bottom a {
    font-size: 0.72rem !important;
    line-height: 1.35 !important;
    min-height: 24px !important;
    height: auto !important;
    padding-block: 0 !important;
}
/* Override R3 L5356 que também puxava min-height 44 para bottom links */
.footer__bottom-links a {
    min-height: 24px !important;
    padding-block: 0 !important;
    height: auto !important;
}

/* ---------- BREAKPOINTS compactos do footer ---------- */
@media (max-width: 1280px) {
    /* Em ≤1280: 3 colunas, NÃO deixar brand ocupar linha inteira (gasta muito espaço vertical).
       Brand fica como célula normal. */
    .footer__grid { grid-template-columns: 1.2fr 1fr 1fr !important; row-gap: 0.9rem !important; column-gap: 1.15rem !important; }
    .footer { padding-top: 1.55rem !important; }
    .footer__col--brand,
    .footer__col--contact { grid-column: auto !important; }
}
@media (max-width: 960px) {
    .footer__grid { grid-template-columns: 1fr 1fr !important; gap: 0.9rem 1rem !important; }
    .footer { padding-top: 1.5rem !important; margin-top: 1.7rem !important; }
    .footer__col--brand,
    .footer__col--contact { grid-column: auto !important; }
    .footer__bottom-inner { flex-direction: row !important; align-items: center !important; }
}
@media (max-width: 768px) {
    .footer__brand-badges { grid-template-columns: 1fr 1fr !important; }
    .footer__grid { padding-bottom: 1rem !important; }
}
@media (max-width: 560px) {
    /* Mobile: 1 coluna OK, tudo vira linha cheia (grid 1fr). */
    .footer { padding-top: 1.35rem !important; margin-top: 1.45rem !important; }
    .footer__grid { grid-template-columns: 1fr !important; gap: 1rem !important; padding-bottom: 0.95rem !important; }
    .footer__col--brand,
    .footer__col--contact { grid-column: 1 / -1 !important; } /* Mobile: cada col ocupa linha toda (1 col grid) */
    .footer__bottom-inner { flex-direction: column !important; align-items: flex-start !important; gap: 0.3rem !important; }
    .footer__brand-badges { grid-template-columns: 1fr !important; }
}
@media (max-width: 380px) {
    .footer { padding-top: 1.2rem !important; }
    .footer__grid { gap: 0.9rem !important; }
    .footer__brand-badges { gap: 0.22rem !important; }
}

/* ---------- Hero: patches de inconsistências do HARD LOCK ---------- */
.hero__actions .btn,
.hero__ctas .btn {
    min-width: auto !important;   /* permite botões lado-a-lado sem quebrar cedo */
    width: auto !important;
    flex: 1 1 auto !important;
    display: inline-flex !important;
}
@media (max-width: 520px) {
    .hero__actions .btn,
    .hero__ctas .btn {
        flex: 1 1 100% !important;
        width: 100% !important;
    }
}
/* Spans de estatísticas (hero_stats): não quebrar largura */
.hero__stat strong,
.hero__stat small {
    width: auto !important;
    max-width: none !important;
    display: block !important;
}
.hero__badge span {
    width: auto !important;
    display: inline-flex !important;
    max-width: none !important;
}

/* ---------- Botões em geral: preservar padding, não forçar min-width excessivo ---------- */
.btn {
    width: auto !important;
    min-width: 44px !important;       /* WCAG, mas sem forçar 100% desnecessariamente */
    max-width: 100% !important;
}
.btn.btn-sm {
    min-height: 38px !important;      /* botões pequenos podem ser menores; header CTA */
    min-width: 38px !important;
    padding-block: 0.35rem !important;
}
.chip {
    min-height: 38px !important;
    width: auto !important;
    max-width: 100% !important;
    padding-inline: 0.8rem !important;
}

/* ---------- Imagens hero e cards: preservar aspect ratio (contain:size bug) ---------- */
.hero__img img,
.card__thumb img,
.news-card__thumb img,
.service-card img,
.doc-card img,
img[loading="lazy"] {
    contain: layout paint !important;       /* NÃO contain:size — destrói aspect ratio */
    width: 100% !important;
    max-width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    aspect-ratio: inherit !important;
}

/* ===========================================================================
   S6) VISUAL FIX 2026-09-25: BOTÕES DESPROPORCIONAIS + IMAGENS NOTÍCIAS
   (Aplicados ANTES do footer hard reset para garantir ordem; footer vem DEPOIS
    para continuar sendo o bloco final responsável por sobrescrever footer.)
   =========================================================================== */

/* S6.1 — BOTÃO DESPROPORCIONAL: botão CTA em hero__ctas com apenas 1 filho estava usando width:100% (flex 1 1 auto + único filho = 100% width).
         Agora força largura intrínseca para botões grandes ficarem proporcionais ao conteúdo, não full-width desnecessário. */
.hero__ctas:has(.btn),
.hero__actions:has(.btn),
.cta-final .hero__ctas:has(.btn) {
    justify-content: center !important;
}
.hero__ctas > .btn,
.hero__actions > .btn,
.cta-final .hero__ctas > .btn,
.hero__ctas > a.btn,
.hero__ctas > button.btn,
.cta-final .hero__ctas > a.btn,
.cta-final .hero__ctas > button.btn {
    width: auto !important;
    min-width: min-content !important;
    max-width: min(100%, 360px) !important;
    flex: 0 1 auto !important;           /* não estica para preencher container; só cresce se obrigatório */
    padding-inline: clamp(1.2rem, 4vw, 2rem) !important;
    justify-content: center !important;
    align-self: center !important;
}
@media (max-width: 560px) {
    .hero__ctas > .btn,
    .hero__actions > .btn,
    .cta-final .hero__ctas > .btn,
    .hero__ctas > a.btn,
    .hero__actions > a.btn {
        width: 100% !important;
        max-width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* S6.2 — SERVICE-CARD CTA "SAIBA MAIS": visual melhorado de botão (era texto solto min-height 44 padding 0.3rem 0.1rem) */
.service-card__cta {
    min-height: 44px !important;
    padding: 0 0.85rem !important;
    display: inline-flex !important;
    align-items: center !important;
    border-radius: 10px !important;
    font-size: 0.8rem !important;
    letter-spacing: 0.02em !important;
    text-decoration: none !important;
    border: 1px solid rgba(10,88,202,0.18) !important;
    background: rgba(10,88,202,0.04) !important;
    color: var(--c-primary) !important;
    transition: all var(--t-fast) !important;
}
.service-card__cta:hover {
    background: var(--c-primary) !important;
    color: #fff !important;
    border-color: var(--c-primary) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 14px -8px rgba(10,88,202,0.65) !important;
}
.service-card__cta::after {
    min-width: 14px !important;
    margin-left: 0.35rem !important;
    display: inline-block !important;
    transition: transform var(--t-fast), margin var(--t-fast) !important;
}
.service-card__cta:hover::after { transform: translateX(4px) !important; margin-left: 0.5rem !important; }

/* S6.3 — NEWS-CARD IMAGEM: overlays ::before/::after estavam cobrindo a foto carregada via background-image inline
         → agora ::before é suave, ::after removido, sheen hover com transparência menor. */
.news-card__img::before {
    background:
        radial-gradient(280px 140px at 15% 0%, rgba(255,255,255,0.14), transparent 60%),
        linear-gradient(180deg, rgba(0,0,0,0.02) 0%, rgba(0,0,0,0.00) 50%, rgba(0,0,0,0.22) 100%) !important;
    z-index: 2 !important;
    pointer-events: none !important;
    mix-blend-mode: normal !important;
}
.news-card__img::after {
    background: transparent !important;
    content: '' !important;
    pointer-events: none !important;
    z-index: 1 !important;
}
.news-card__img-zoom { display: none !important; }
.news-card__img-fade {
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.22), transparent) !important;
    z-index: 3 !important;
}
.news-card:hover .news-card__img-fade { left: 140% !important; }
.news-card__img {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
    background-color: #0A2463 !important;
    background-blend-mode: normal !important;
    isolation: isolate !important;
    /* — S7.5: Chrome/Firefox/Safari: Forçar qualquer background-image inline a SER VISÍVEL —
       cancelar blends lineares de definições iniciais (L1010 e L4647) que podem cobrir
       a foto carregada via style inline. */
    background-image: var(--card-img, none) !important;
}

/* ====== S7.6 CROSS-BROWSER NAV CANVAS (Chrome / Edge / Safari) ============
   Problema raiz: versão antiga usava transition:right (CSS L706) E inline JS aplicava
   transform:translateX (app.js L391 / 418). Firefox tratava corretamente, mas
   Chrome tinha repaint / subpixel bugs (um set de position:right e outro de transform
   no mesmo animation-frame = flicker / não abria / fechava travado).
   Solução: unificar TUDO por translateX (1 única propriedade animável) com prefixos
   -webkit-; desativar transition:right/left completamente em mobile; adicionar
   will-change:transform para compositor de layers no Chrome não dropar frames;
   visibility:hidden em estado fechado só ser definido via transition + delay, para
   não cortar animação do slide. */
@media (max-width: 1400px) {
    .nav {
        top: 0 !important;
        right: auto !important;           /* não usamos position-based animation mais */
        left: auto !important;
        transform: translateX(100%) translateZ(0) !important;
        -webkit-transform: translateX(100%) translateZ(0) !important;
        transform-style: preserve-3d;
        -webkit-transform-style: preserve-3d;
        transition:
            transform 380ms cubic-bezier(.4,0,.2,1),
            -webkit-transform 380ms cubic-bezier(.4,0,.2,1),
            opacity 320ms ease,
            box-shadow 380ms ease,
            visibility 0s linear 400ms !important;  /* só esconde VISIBILITY depois que animação fechar */
        -webkit-transition:
            -webkit-transform 380ms cubic-bezier(.4,0,.2,1),
            opacity 320ms ease,
            visibility 0s linear 400ms !important;
        will-change: transform, opacity !important;
        -webkit-overflow-scrolling: touch !important;
        overscroll-behavior: contain !important;
        opacity: 0 !important;
        visibility: hidden !important;
        box-shadow: none !important;
    }
    .nav.is-open {
        right: auto !important;
        transform: translateX(0) translateZ(0) !important;
        -webkit-transform: translateX(0) translateZ(0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        transition-delay: 0s !important;          /* visível IMEDIATAMENTE ao abrir */
        -webkit-transition-delay: 0s !important;
        box-shadow: -30px 0 70px rgba(0,0,0,0.22) !important;
    }
    /* Chrome quirk: tap-highlight-color + touchstart não disparava clique em 1ª
       geração Android. Remover highlight azul. */
    .nav, .nav *, .navToggle, .navToggle * {
        -webkit-tap-highlight-color: transparent !important;
        -webkit-touch-callout: none !important;
    }
}

/* S6.4 — NEWS-CARD EMOJI FALLBACK (ler.php L35): posicionamento consistente com foto */
.news-card__img {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    font-size: 2.4rem !important;
    font-weight: 800 !important;
    text-shadow: 0 2px 10px rgba(0,0,0,0.35) !important;
}

/* ===========================================================================
   FOOTER COMPACTO PREMIUM — HARD RESET FINAL (último no arquivo)
   Força compactação visível em todos breakpoints, sobrescreve REGRAS ANTERIORES
   com !important, incluindo as duplicatas L3206 e L3409.
   Objetivo: ~50% menos altura vertical sem alterar número de elementos.
   =========================================================================== */
/* --- Container raiz footer --- */
.footer {
    margin-top: 1.25rem !important;
    padding-top: 1.35rem !important;
}
/* --- Grid principal --- */
.footer__grid {
    gap: 0.7rem 1rem !important;
    padding-bottom: 0.85rem !important;
}
/* --- Títulos das colunas --- */
.footer h4 {
    font-size: 0.86rem !important;
    font-weight: 800 !important;
    margin-bottom: 0.4rem !important;
    padding-bottom: 0.28rem !important;
    letter-spacing: 0.005em !important;
}
.footer h4::after {
    width: 28px !important;
    height: 2.4px !important;
}
/* --- Listas comuns --- */
.footer__list li {
    padding: 0.17rem 0 !important;
    font-size: 0.83rem !important;
    line-height: 1.4 !important;
}
.footer__list li:last-child {
    padding-bottom: 0 !important;
}
/* --- Lista de contato (itens maiores com ícone) --- */
.footer__list--contact li {
    padding: 0.28rem 0 !important;
    gap: 0.45rem !important;
}
.footer__list--contact strong {
    font-size: 0.82rem !important;
}
.footer__list--contact small {
    font-size: 0.78rem !important;
}
/* --- Ícones de contato --- */
.footer__ci-ico {
    width: 24px !important;
    height: 24px !important;
    flex: 0 0 24px !important;
    border-radius: 6px !important;
    font-size: 0.72rem !important;
}
.footer__ci-ico svg {
    width: 0.84rem !important;
    height: 0.84rem !important;
}
/* --- Coluna brand: cabeçalho com logo --- */
.footer__col--brand .footer__brand {
    gap: 0.55rem !important;
}
.footer__brand-head {
    gap: 0.5rem !important;
    padding: 0.22rem 0.3rem !important;
    border-radius: 10px !important;
    margin-bottom: 0 !important;
}
/* --- LOGO FOOTER — 40px PREMIUM (sobrescreve as regras 64px L3206/L3409) --- */
.footer__brand-logo {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    min-height: 40px !important;
    max-width: 40px !important;
    max-height: 40px !important;
    flex: 0 0 40px !important;
    padding: 3px !important;
    border-radius: 15% !important;
    box-shadow: 0 3px 11px rgba(0,0,0,0.18) !important;
}
.footer__brand-name strong {
    font-size: 1rem !important;
}
.footer__brand-name small {
    font-size: 0.6rem !important;
    padding: 0.07rem 0.4rem !important;
    margin-top: 0.12rem !important;
}
/* --- Descrição brand --- */
.footer__brand-desc {
    font-size: 0.8rem !important;
    line-height: 1.45 !important;
    color: #aeb8cc !important;
}
/* --- Badges diferenciais brand --- */
.footer__brand-badges {
    gap: 0.24rem 0.42rem !important;
}
.footer__brand-badges li {
    padding: 0.17rem 0.32rem !important;
    font-size: 0.74rem !important;
    gap: 0.28rem !important;
    border-radius: 7px !important;
}
.footer__brand-badges li svg {
    width: 0.78rem !important;
    height: 0.78rem !important;
}
/* --- Redes sociais --- */
.footer__social {
    gap: 0.35rem !important;
    margin-top: 0.05rem !important;
}
.footer__social a {
    width: 38px !important;
    height: 38px !important;
    min-width: 38px !important;
    min-height: 38px !important;
    border-radius: 9px !important;
}
.footer__social a svg {
    width: 1rem !important;
    height: 1rem !important;
}
/* --- Botão WhatsApp premium compacto --- */
.footer__btn-wa {
    margin-top: 0.45rem !important;
    padding: 0.48rem 0.7rem 0.52rem 0.62rem !important;
    border-radius: 10px !important;
    column-gap: 0.52rem !important;
    row-gap: 0.02rem !important;
}
.footer__btn-wa strong { font-size: 0.84rem !important; }
.footer__btn-wa small  { font-size: 0.72rem !important; gap: 0.18rem !important; }
.footer__btn-wa-dot {
    width: 28px !important;
    height: 28px !important;
    flex: 0 0 28px !important;
}
.footer__btn-wa-dot::after {
    width: 7.5px !important;
    height: 7.5px !important;
}
/* --- Bottom (copyright) --- */
.footer__bottom {
    padding: 0.5rem 0 !important;
    font-size: 0.78rem !important;
}
.footer__bottom-inner {
    padding-block: 0.05rem !important;
    gap: 0.25rem 0.85rem !important;
}

/* --- Breakpoint 1600px+ (desktop wide): 5 colunas premium densas --- */
@media (min-width: 1600px) {
    .footer__grid { grid-template-columns: 1.3fr 1fr 1fr 1fr 1.15fr !important; }
    .footer__col--brand   { grid-column: 1 / 1 !important; }
    .footer__col--contact { grid-column: 5 / 5 !important; }
}
/* --- Breakpoint 1401px (desktop default): 5 colunas padrão --- */
@media (min-width: 1401px) and (max-width: 1599px) {
    .footer__grid { grid-template-columns: 1.25fr 1fr 1fr 1fr 1.1fr !important; }
    .footer__col--brand   { grid-column: 1 / 1 !important; }
    .footer__col--contact { grid-column: 5 / 5 !important; }
}
/* --- Breakpoint 1280px: 3 col (brand e contact ocupam cada um sua célula) --- */
@media (max-width: 1280px) {
    .footer__grid {
        grid-template-columns: 1.2fr 1fr 1fr !important;
        row-gap: 1.05rem !important;
        column-gap: 0.95rem !important;
        padding-bottom: 0.8rem !important;
    }
    .footer__col--brand,
    .footer__col--contact { grid-column: auto !important; }
    .footer { padding-top: 1.25rem !important; margin-top: 1.15rem !important; }
}
/* --- Breakpoint 960px: 2 col (brand / services, docs / contact, etc) --- */
@media (max-width: 960px) {
    .footer__grid {
        grid-template-columns: 1fr 1fr !important;
        row-gap: 0.95rem !important;
        column-gap: 0.85rem !important;
        padding-bottom: 0.75rem !important;
    }
    .footer__col--brand,
    .footer__col--contact { grid-column: auto !important; }
    .footer { padding-top: 1.15rem !important; }
    .footer h4 { margin-bottom: 0.35rem !important; }
}
/* --- Breakpoint 640px: ajustes gerais mobile --- */
@media (max-width: 640px) {
    .footer { margin-top: 1.05rem !important; padding-top: 1.1rem !important; }
    .footer__bottom-inner { gap: 0.28rem !important; }
    .footer__brand-badges { grid-template-columns: 1fr 1fr !important; }
}
/* --- Breakpoint 560px: 1 col --- */
@media (max-width: 560px) {
    .footer__grid {
        grid-template-columns: 1fr !important;
        row-gap: 0.9rem !important;
        column-gap: 0.9rem !important;
        padding-bottom: 0.7rem !important;
    }
    .footer__col--brand,
    .footer__col--contact { grid-column: 1 / -1 !important; }
    .footer__bottom-inner { flex-direction: column !important; align-items: flex-start !important; gap: 0.3rem !important; }
    .footer__btn-wa { padding: 0.5rem 0.7rem !important; }
    .footer__brand-badges { grid-template-columns: 1fr !important; }
}
/* --- Breakpoint 380px: mobile compacto extremo --- */
@media (max-width: 380px) {
    .footer__grid {
        grid-template-columns: 1fr !important;
        row-gap: 0.82rem !important;
        padding-bottom: 0.65rem !important;
    }
    .footer { padding-top: 1rem !important; margin-top: 1rem !important; }
    .footer__brand-badges { gap: 0.2rem 0.36rem !important; }
    .footer__brand-badges li { padding: 0.15rem 0.3rem !important; font-size: 0.72rem !important; }
    .footer__brand-head { padding: 0.2rem 0.25rem !important; gap: 0.45rem !important; }
    .footer__brand-logo {
        width: 36px !important; height: 36px !important;
        min-width: 36px !important; min-height: 36px !important;
        max-width: 36px !important; max-height: 36px !important;
        flex: 0 0 36px !important;
    }
    .footer__brand-name strong { font-size: 0.95rem !important; }
    .footer__ci-ico { width: 22px !important; height: 22px !important; flex: 0 0 22px !important; }
    .footer__social a { width: 36px !important; height: 36px !important; min-width: 36px !important; min-height: 36px !important; }
}

/* ========================================================================
 * S10 — CHROME FINAL HARD RESET (último bloco cascade)
 * Objetivo: vencer QUALQUER definição anterior em ::before / ::after news-card
 * e garantir menu canvas cross-browser Chromium/Firefox.
 * ====================================================================== */

/* --- 10.1 NEWS CARDS: remover overlays, garantir imagem visível --- */
.news-card__img::before,
.news-card__img::after {
    display: none !important;
    content: none !important;
    background: transparent none !important;
    mix-blend-mode: normal !important;
    opacity: 0 !important;
    pointer-events: none !important;
    z-index: -1 !important;
}
.news-card__img {
    isolation: isolate !important;
    position: relative !important;
    background-color: #eaf0f7 !important;
    background-position: center center !important;
    background-size: cover !important;
    background-repeat: no-repeat !important;
    overflow: hidden !important;
    border-radius: 0.65rem !important;
}
.news-card__img img.news-card__inline-img {
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    z-index: 1 !important;
    background-color: #eaf0f7 !important;
    border: 0 !important;
    outline: 0 !important;
}

/* --- 10.2 NAV CANVAS OFF-CANVAS ≤ 1400px: HARD RESET cascade-safe (Chrome + Firefox) --- */
@media (max-width: 1400px) {
    body .header-shell,
    body > .header-shell {
        will-change: auto !important;
        transform: none !important;
        translate: none !important;
        filter: none !important;
        perspective: none !important;
        -webkit-transform: none !important;
    }
    #nav.nav,
    body #nav.nav,
    body .header-shell #nav.nav {
        position: fixed !important;
        top: 0 !important;
        right: 0 !important;
        left: auto !important;
        bottom: 0 !important;
        max-width: 380px !important;
        width: min(88vw, 380px) !important;
        height: 100dvh !important;
        max-height: 100dvh !important;
        z-index: 2147483647 !important;
        will-change: transform, visibility, opacity !important;
        transform: translateX(100%) translateZ(0) !important;
        -webkit-transform: translateX(100%) translateZ(0) !important;
        transform-origin: right center !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        transition:
            transform 380ms cubic-bezier(0.4, 0, 0.2, 1) !important,
            -webkit-transform 380ms cubic-bezier(0.4, 0, 0.2, 1) !important,
            opacity 220ms ease !important,
            visibility 0s linear 380ms !important;
        background: #ffffff !important;
        box-shadow: -28px 0 60px -28px rgba(0,0,0,0.55) !important;
        -webkit-tap-highlight-color: transparent !important;
        contain: layout paint !important;
        flex-direction: column !important;
    }
    #nav.nav.is-open,
    body #nav.nav.is-open {
        transform: translateX(0) translateZ(0) !important;
        -webkit-transform: translateX(0) translateZ(0) !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        transition:
            transform 380ms cubic-bezier(0.4, 0, 0.2, 1) !important,
            -webkit-transform 380ms cubic-bezier(0.4, 0, 0.2, 1) !important,
            opacity 220ms ease !important,
            visibility 0s linear 0s !important;
    }
    body.nav-open::after {
        z-index: 2147483645 !important;
    }
    /* ---- Canvas links: Hover EXPLÍCITO cascade-safe para mobile ---- */
    #nav.nav .nav__link:hover,
    body #nav.nav .nav__link:hover,
    body .header-shell #nav.nav .nav__link:hover {
        color: var(--c-primary) !important;
        transform: translateY(-1.5px) !important;
        letter-spacing: 0.008em !important;
        background: linear-gradient(90deg, rgba(10,36,99,0.04), rgba(13,110,253,0.03)) !important;
        border-radius: 10px !important;
        box-shadow:
            inset 0 0 0 1px rgba(10,36,99,0.08),
            0 6px 18px -4px rgba(10,36,99,0.15),
            0 2px 0 0 rgba(10,36,99,0.04) !important;
    }
    #nav.nav .nav__link:hover::before { opacity: 1 !important; transform: translateX(0) !important; }
    #nav.nav .nav__link:hover::after  { transform: scaleX(1) translateX(0) !important; }
    #nav.nav .nav__link:hover .nav__icon {
        transform: translateY(-1px) rotate(-4deg) scale(1.08) !important;
        color: var(--c-accent) !important;
        filter: drop-shadow(0 3px 3px rgba(230,57,70,0.22)) !important;
    }
    #nav.nav .nav__link:active,
    body #nav.nav .nav__link:active {
        transform: translateY(0) scale(0.985) !important;
        box-shadow:
            inset 0 0 0 1px rgba(10,36,99,0.12),
            0 2px 6px -2px rgba(10,36,99,0.18) !important;
    }
}

/* --- 10.2b DESKTOP ≥1401px: FORÇAR reset do canvas para inline flex --- */
@media (min-width: 1401px) {
    #nav.nav,
    body #nav.nav,
    body .header-shell #nav.nav {
        position: relative !important;
        top: auto !important;
        right: auto !important;
        left: auto !important;
        bottom: auto !important;
        transform: none !important;
        -webkit-transform: none !important;
        visibility: visible !important;
        opacity: 1 !important;
        pointer-events: auto !important;
        width: auto !important;
        max-width: none !important;
        height: auto !important;
        max-height: none !important;
        z-index: 1 !important;
        contain: none !important;
        transition: none !important;
        background: transparent !important;
        box-shadow: none !important;
    }
}

/* --- 10.3 Breakpoints complementares nav (largura adaptativa) --- */
@media (max-width: 768px) {
    #nav.nav { width: min(92vw, 340px) !important; }
}
@media (max-width: 560px) {
    #nav.nav { width: 92vw !important; }
}

/* --- 10.4 Animação botão hambúrguer sincronizada (fallback seletor genérico) --- */
#navToggle[aria-expanded="true"] > span:nth-child(1),
.nav-toggle[aria-expanded="true"] > span:nth-child(1) {
    transform: translateY(7px) rotate(45deg) !important;
}
#navToggle[aria-expanded="true"] > span:nth-child(2),
.nav-toggle[aria-expanded="true"] > span:nth-child(2) {
    opacity: 0 !important;
}
#navToggle[aria-expanded="true"] > span:nth-child(3),
.nav-toggle[aria-expanded="true"] > span:nth-child(3) {
    transform: translateY(-7px) rotate(-45deg) !important;
}


/* ================================================================
   CORREÇÕES FINAIS: Mapa + Notícia Individual + News Body
   ================================================================ */

/* --- Mapa de contato: corrige altura cortada ---
   Problema: iframe absolute height:100% depende de altura explícita no pai.
   Solução: forçar height:100% no container + aspect-ratio como fallback. */
.contact-map-card--compact {
    grid-template-rows: 1fr !important;
    align-items: stretch !important;
}
.contact-map--compact {
    height: 100% !important;
    min-height: 320px !important;
    aspect-ratio: 4 / 3;
    width: 100% !important;
    overflow: hidden !important;
}
@media (max-width: 860px) {
    .contact-map--compact {
        min-height: 280px !important;
        aspect-ratio: 16 / 10;
    }
}
@media (max-width: 560px) {
    .contact-map--compact {
        min-height: 240px !important;
        aspect-ratio: 16 / 9;
    }
}

/* --- Corpo da notícia individual (artigo completo) --- */
.news-body {
    color: #1E293B;
    font-size: 1.02rem;
    line-height: 1.85;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}
.news-body > *:last-child { margin-bottom: 0 !important; }
.news-body p {
    margin: 0 0 1.1rem;
    font-size: 1.01rem;
    line-height: 1.82;
    color: #1E293B;
    text-align: justify;
    hyphens: auto;
}
.news-body p::first-letter {
    /* Pequeno drop cap premium sutil */
    font-size: 1.05em;
}
.news-body > section:first-child > p:first-child::first-letter,
.news-body p:first-of-type::first-letter {
    font-size: 2.9rem;
    font-weight: 800;
    line-height: 0.9;
    float: left;
    margin: 0.15rem 0.5rem 0 0;
    color: var(--c-primary-dark, #0A2463);
    font-family: var(--font-title, Georgia, serif);
    background: linear-gradient(135deg, #0A2463, #F97316);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.news-body h2 {
    font-family: var(--font-title);
    font-size: 1.5rem;
    line-height: 1.25;
    color: #0A2463;
    margin: 2rem 0 0.85rem;
    font-weight: 800;
    padding-left: 0.85rem;
    border-left: 4px solid #F97316;
}
.news-body h3 {
    font-family: var(--font-title);
    font-size: 1.22rem;
    line-height: 1.3;
    color: #1E40AF;
    margin: 1.5rem 0 0.6rem;
    font-weight: 700;
}
.news-body h4 {
    font-size: 1.05rem;
    color: #0F172A;
    margin: 1.2rem 0 0.5rem;
    font-weight: 700;
}
.news-body ul,
.news-body ol {
    margin: 0 0 1.1rem;
    padding-left: 1.6rem;
    color: #1E293B;
}
.news-body ul li,
.news-body ol li {
    margin: 0 0 0.45rem;
    line-height: 1.7;
    padding-left: 0.1rem;
    position: relative;
}
.news-body ul li::marker {
    color: #F97316;
    font-size: 1.1em;
    font-weight: 700;
}
.news-body ol li::marker {
    color: #0A2463;
    font-weight: 700;
}
.news-body strong,
.news-body b {
    color: #0A2463;
    font-weight: 700;
}
.news-body a {
    color: #1E40AF;
    text-decoration: none;
    border-bottom: 1px solid rgba(30,64,175,0.25);
    padding-bottom: 1px;
    transition: all 0.2s ease;
    font-weight: 500;
}
.news-body a:hover {
    color: #F97316;
    border-bottom-color: rgba(249,115,22,0.45);
}
.news-body blockquote {
    margin: 1.4rem 0;
    padding: 1rem 1.3rem;
    background: linear-gradient(135deg, rgba(10,36,99,0.05), rgba(249,115,22,0.06));
    border-left: 4px solid #0A2463;
    border-radius: 0 12px 12px 0;
    color: #1E293B;
    font-style: italic;
    font-size: 1.02rem;
    line-height: 1.7;
}
.news-body blockquote p { margin: 0; text-align: left; }
.news-body code,
.news-body pre {
    background: #F8FAFC;
    border: 1px solid #E2E8F0;
    border-radius: 8px;
    font-family: 'Consolas', 'Monaco', monospace;
    font-size: 0.9em;
    color: #0F172A;
}
.news-body code {
    padding: 0.1rem 0.4rem;
    white-space: nowrap;
}
.news-body pre {
    padding: 1rem;
    overflow-x: auto;
    margin: 1rem 0;
    line-height: 1.6;
}
.news-body hr {
    border: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, #CBD5E1, transparent);
    margin: 1.8rem 0;
}
.news-body img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 1.2rem 0;
    box-shadow: 0 8px 24px rgba(10,36,99,0.12);
}

/* --- Card do artigo individual: aprimoramentos visuais --- */
.news-article-card {
    position: relative;
    background: #fff;
    border-radius: 20px;
    padding: clamp(1.1rem, 3vw, 2.4rem);
    box-shadow:
        0 30px 70px -35px rgba(10,36,99,0.35),
        0 0 0 1px rgba(10,36,99,0.06);
    border: 0;
    max-width: 900px;
    margin: 0 auto 2.4rem;
    overflow: hidden;
}
.news-article-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, #0A2463 0%, #1E56A0 45%, #F97316 100%);
    z-index: 5;
}
.news-article-card .divider {
    border: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, rgba(10,36,99,0.18), transparent);
    margin: 1.5rem 0;
}
.news-article-hero {
    position: relative;
    margin: -1.2rem -1.2rem 1.4rem;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: 0;
    isolation: isolate;
}
.news-article-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, transparent 45%, rgba(10,36,99,0.32) 100%);
    z-index: 2;
    pointer-events: none;
}
.news-article-hero img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    transition: transform 0.8s cubic-bezier(.22,.61,.36,1);
}
.news-article-card:hover .news-article-hero img {
    transform: scale(1.03);
}
.news-article-cat-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.8rem;
    margin-bottom: 1rem;
    font-size: 0.82rem;
    color: #64748B;
}
.news-article-cat-row .tag {
    background: linear-gradient(135deg, rgba(10,36,99,0.08), rgba(249,115,22,0.10));
    color: #0A2463;
    padding: 0.28rem 0.75rem;
    border-radius: 999px;
    font-weight: 800;
    letter-spacing: 0.02em;
    border: 1px solid rgba(10,36,99,0.12);
    font-size: 0.78rem;
}
.news-article-cat-row span {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}
.news-article-cat-row svg {
    width: 14px;
    height: 14px;
    color: #94A3B8;
    flex-shrink: 0;
}
.news-article-head {
    margin-bottom: 0.8rem;
}
.news-article-head h1 {
    font-family: var(--font-title);
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    line-height: 1.2;
    color: #0A2463;
    font-weight: 800;
    margin: 0 0 0.6rem;
    letter-spacing: -0.01em;
}
.news-article-lead {
    font-size: 1.12rem;
    line-height: 1.65;
    color: #334155;
    font-weight: 500;
    margin: 0;
    padding: 0.9rem 1.1rem;
    background: linear-gradient(135deg, rgba(10,36,99,0.04), rgba(249,115,22,0.06));
    border-radius: 12px;
    border-left: 3px solid #F97316;
}

/* --- Breadcrumb simples no topo --- */
.news-breadcrumb {
    padding: 0.8rem 0 0.4rem;
    font-size: 0.86rem;
    color: #64748B;
}
.news-breadcrumb a {
    color: var(--c-primary-dark, #0A2463);
    text-decoration: none;
    font-weight: 600;
    transition: color 0.2s ease;
}
.news-breadcrumb a:hover { color: #F97316; }
.news-breadcrumb .sep {
    margin: 0 0.3rem 0 0.4rem;
    color: #94A3B8;
}

/* --- CTA de compartilhamento no rodapé do artigo --- */
.news-share-cta {
    text-align: center;
    padding: 0.5rem 0 0;
}
.news-share-cta p {
    color: #334155;
    margin: 0 0 0.8rem;
    font-weight: 500;
}

/* --- Bloco Relacionadas: destaque sutil --- */
.news-related-section {
    padding-top: 1rem;
}
.news-related-section .section-title {
    padding-bottom: 0.2rem !important;
}
.news-related-section .section-title h2 {
    font-size: clamp(1.3rem, 2.2vw, 1.7rem);
}

/* ====== RODADA 2026-09-25: Hero refinada (sem quebras, harmonia cores) + mapa 100% visível + notícias mobile ====== */

/* --- 1. HERO HEADLINE: harmonia de cores, tipografia e responsividade --- */
.hero { overflow-x: clip; }
/* Usar .hero .hero__headline (especificidade 0-2-0) garante vitória sobre .hero h1 (0-1-1) */
.hero .hero__headline {
    text-align: center !important;
    font-size: clamp(1.35rem, 1.8vw, 1.6rem) !important;
    line-height: 1.22 !important;
    letter-spacing: -0.018em;
    margin-bottom: 0.85rem !important;
    font-weight: 800;
    max-width: 100%;
    margin-left: auto !important;
    margin-right: auto !important;
    display: block !important;
    width: 100%;
    font-family: var(--font-title, Georgia, serif);
    /* Nunca mais white-space:nowrap — risco real de overflow em container limitado */
    white-space: normal !important;
    text-wrap: balance !important;
    overflow: visible !important;
}
.hero .hero__headline .accent {
    background: linear-gradient(135deg, #FFFFFF 0%, #F97316 45%, #FFFFFF 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    padding: 0 .08em;
    text-shadow: 0 1px 0 rgba(0,0,0,0.07);
    filter: drop-shadow(0 2px 8px rgba(249,115,22,0.28));
    font-weight: 900;
}
@media (max-width: 768px) {
    .hero .hero__headline { text-wrap: pretty !important; }
}
@media (max-width: 560px) {
    .hero .hero__headline {
        font-size: clamp(1.3rem, 7.2vw, 1.55rem) !important;
        line-height: 1.24 !important;
        letter-spacing: -0.02em;
    }
    .hero .hero__headline .accent { display: inline-block; margin-top: 0.08em; }
}
@media (max-width: 400px) {
    .hero .hero__headline { font-size: 1.28rem !important; }
}
.hero .hero__lead-main {
    text-align: center !important;
    font-size: clamp(0.92rem, 1.3vw, 1.02rem) !important;
    line-height: 1.7 !important;
    margin: 0 auto !important;
    max-width: 700px !important;
    color: rgba(255,255,255,0.93) !important;
}

/* --- 2. MAPA CONTATO 100% VISÍVEL (não cortado): remove conflito aspect-ratio vs height, iguala alturas grid --- */
.contact-bottom-grid { align-items: stretch !important; }
.contact-map-card--compact {
    grid-template-rows: 1fr;
    align-items: stretch;
    min-height: 380px;
}
.contact-map-card--compact > * {
    min-height: 380px;
    display: flex;
    flex-direction: column;
}
.contact-map--compact {
    height: 100% !important;
    min-height: 380px !important;
    aspect-ratio: auto !important;
    width: 100% !important;
    overflow: hidden !important;
    display: block !important;
}
.contact-map--compact iframe {
    position: absolute;
    inset: 0;
    width: 100% !important;
    height: 100% !important;
    border: 0;
    display: block !important;
    min-height: 380px !important;
}
@media (max-width: 1100px) {
    .contact-map-card--compact { min-height: 350px; }
    .contact-map-card--compact > * { min-height: 350px; }
    .contact-map--compact { min-height: 350px !important; }
    .contact-map--compact iframe { min-height: 350px !important; }
}
@media (max-width: 860px) {
    .contact-map-card--compact {
        grid-template-columns: 1fr;
        min-height: auto;
    }
    .contact-map-card--compact > * { min-height: auto; }
    .contact-map--compact {
        min-height: 320px !important;
        aspect-ratio: 16 / 10 !important;
    }
    .contact-map--compact iframe { min-height: 100% !important; }
}
@media (max-width: 560px) {
    .contact-map--compact {
        min-height: 240px !important;
        aspect-ratio: 16 / 9 !important;
    }
}

/* --- 3. NOTÍCIAS: mobile refinado, acabamento premium, breadcrumb, article e listagem --- */

/* Breadcrumb elegante e truncado em mobile */
.news-breadcrumb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .3rem .4rem;
    font-size: .82rem;
    color: #64748b;
    margin-bottom: 1.1rem;
    padding: .55rem .75rem;
    background: rgba(255,255,255,0.75);
    border: 1px solid rgba(10,36,99,0.06);
    border-radius: 10px;
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    max-width: 100%;
}
.news-breadcrumb a {
    color: #0A2463;
    font-weight: 600;
    text-decoration: none;
    padding: .08rem .45rem;
    border-radius: 999px;
    transition: background 150ms ease;
}
.news-breadcrumb a:hover { background: rgba(10,36,99,0.08); }
.news-breadcrumb .sep { color: #94a3b8; }
.news-breadcrumb span:last-child {
    color: #334155;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 45ch;
}

/* Card artigo: sombra, topo gradiente, padding consistente */
.news-article-card {
    border-radius: 20px;
    max-width: 900px;
    margin: 0 auto 2.4rem;
    background: #fff;
    box-shadow: 0 30px 60px -25px rgba(10,36,99,0.2), 0 0 0 1px rgba(10,36,99,0.06);
    overflow: hidden;
    position: relative;
}
.news-article-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, #0A2463, #F97316);
    z-index: 2;
}
.news-article-hero {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #0f172a;
}
.news-article-hero::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(10,36,99,0) 50%, rgba(10,36,99,0.2) 100%);
    pointer-events: none;
    transition: opacity 250ms ease;
}
.news-article-hero:hover::after { opacity: 0.92; }
.news-article-hero:hover img { transform: scale(1.03); }
.news-article-hero img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 400ms ease;
}

/* Categoria + metadados: wrap responsivo */
.news-article-cat-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .5rem .9rem;
    padding: 1rem 1.6rem .2rem;
    font-size: .85rem;
    color: #475569;
}
.news-article-cat-row > span {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .05rem 0;
    white-space: nowrap;
}
.news-article-cat-row svg { width: 15px; height: 15px; flex-shrink: 0; }

.news-article-head { padding: 0.3rem 1.6rem 0.9rem; }
.news-article-head h1 {
    font-size: clamp(1.7rem, 3vw, 2.3rem);
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: -0.02em;
    color: #0f172a;
    margin: 0 0 0.8rem;
    font-family: var(--font-title, Georgia, serif);
}
.news-article-lead {
    border-left: 3px solid #F97316;
    background: linear-gradient(135deg, rgba(249,115,22,0.06) 0%, rgba(10,36,99,0.04) 100%);
    padding: .9rem 1.1rem;
    border-radius: 0 10px 10px 0;
    color: #334155;
    font-size: 1rem;
    line-height: 1.65;
    margin: 0;
}
.news-body,
.news-share-cta {
    padding: 0 1.6rem;
}
hr.divider {
    margin: 1rem 1.6rem !important;
    border: 0;
    border-top: 1px solid rgba(10,36,99,0.08);
}
.news-share-cta {
    padding: 1.2rem 1.6rem 1.6rem;
    background: linear-gradient(180deg, rgba(10,36,99,0.02) 0%, rgba(10,36,99,0.05) 100%);
    display: flex;
    flex-direction: column;
    gap: .7rem;
}
.news-share-cta p { margin: 0; color: #334155; font-size: .95rem; }
.news-share-cta p strong { color: #0A2463; }
.news-share-cta .hero__ctas { justify-content: flex-start; }

@media (max-width: 680px) {
    .news-article-card { border-radius: 16px; margin-bottom: 1.6rem; }
    .news-article-cat-row { padding: .85rem 1.1rem .1rem; gap: .4rem .6rem; font-size: .8rem; }
    .news-article-cat-row > span { white-space: normal; }
    .news-article-head { padding: 0.2rem 1.1rem 0.8rem; }
    .news-article-head h1 { font-size: clamp(1.4rem, 7.2vw, 1.8rem); line-height: 1.22; }
    .news-article-lead { font-size: .93rem; padding: .75rem .9rem; }
    .news-body, .news-share-cta { padding-left: 1.1rem !important; padding-right: 1.1rem !important; }
    hr.divider { margin: .85rem 1.1rem !important; }
    .news-share-cta { padding: .9rem 1.1rem 1.2rem !important; gap: .6rem; }
    .news-share-cta .hero__ctas .btn { flex: 1 1 100%; width: 100%; justify-content: center; }
    .news-breadcrumb span:last-child { max-width: 28ch; }
    .news-body h2 { font-size: 1.25rem; padding-left: .7rem; border-left-width: 3px; margin-top: 1.5rem; }
    .news-body h3 { font-size: 1.05rem; }
    .news-body > section:first-child > p:first-child::first-letter,
    .news-body p:first-of-type::first-letter {
        font-size: 2.4rem;
        margin: 0.1rem 0.4rem 0 0;
    }
}
@media (max-width: 480px) {
    .news-article-hero { aspect-ratio: 4 / 3; }
    .news-breadcrumb { font-size: .78rem; padding: .5rem .65rem; }
    .news-breadcrumb span:last-child { max-width: 20ch; }
}

/* Grid notícias: responsividade extrema + mobile horizontal compacto */
.news-grid--premium {
    display: grid;
    gap: clamp(1rem, 2vw, 1.5rem);
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
@media (min-width: 1024px) { .news-grid--premium { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1280px) { .news-grid--premium { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 680px) {
    .news-grid--premium { grid-template-columns: 1fr !important; gap: 1rem; }
    .news-card { display: flex; flex-direction: row; min-height: 140px; }
    .news-card__img {
        width: 38%;
        min-width: 130px;
        aspect-ratio: 1;
        border-radius: 14px 0 0 14px !important;
    }
    .news-card__body {
        flex: 1;
        padding: .85rem .95rem !important;
        display: flex;
        flex-direction: column;
    }
    .news-card__body h3 { font-size: .98rem; line-height: 1.3; }
    .news-card__body p { font-size: .83rem; line-height: 1.5; }
    .news-card__meta { flex-wrap: wrap; gap: .3rem .5rem; font-size: .75rem; }
    .news-card__cta { font-size: .83rem; margin-top: auto; }
}
@media (max-width: 420px) {
    .news-card { flex-direction: column; min-height: auto; }
    .news-card__img {
        width: 100%;
        min-width: 0;
        aspect-ratio: 16 / 9;
        border-radius: 14px 14px 0 0 !important;
    }
}

/* Topbar notícias (busca + categorias) layout responsivo */
.news-page__topbar {
    display: flex;
    flex-direction: column;
    gap: 0.9rem;
    margin-bottom: 1.3rem;
}
.news-page__search { position: relative; }
.news-page__search-icon {
    position: absolute;
    left: 0.9rem;
    top: 50%;
    transform: translateY(-50%);
    color: #94a3b8;
    display: inline-flex;
    align-items: center;
}
.news-page__search-icon svg { width: 18px; height: 18px; }
.news-page__search input[type="search"] {
    width: 100%;
    padding: 0.75rem 5.5rem 0.75rem 2.6rem;
    min-height: 48px;
    border-radius: 12px;
    border: 1px solid var(--c-border, #e2e8f0);
    font-size: 0.95rem;
    background: #fff;
    transition: border-color 180ms ease, box-shadow 180ms ease;
}
.news-page__search input[type="search"]:focus {
    outline: 0;
    border-color: rgba(10,36,99,0.45);
    box-shadow: 0 0 0 3px rgba(10,36,99,0.1);
}
.news-page__search .btn {
    position: absolute;
    right: 0.45rem;
    top: 50%;
    transform: translateY(-50%);
    min-height: 40px;
    padding: 0.45rem 0.85rem;
    font-size: 0.85rem;
    border-radius: 10px;
}
.news-page__cats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}
.news-page__cats .chip {
    min-height: 38px;
    padding: 0.35rem 0.85rem;
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}
@media (min-width: 860px) {
    .news-page__topbar {
        flex-direction: row;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
    }
    .news-page__search { flex: 0 1 55%; }
    .news-page__cats { flex: 1; justify-content: flex-end; }
}
@media (max-width: 480px) {
    .news-page__search input[type="search"] {
        padding: 0.7rem 3.8rem 0.7rem 2.4rem;
        font-size: 0.9rem;
    }
    .news-page__search .btn > span { display: none; }
    .news-page__search .btn { padding: 0.45rem 0.7rem; }
    .news-page__cats .chip { font-size: 0.8rem; padding: 0.3rem 0.7rem; }
}

/* Zero scroll horizontal nas seções de notícias e CTAs */
.news-page,
.news-related-section,
.hero__ctas,
.news-share-cta { overflow-x: hidden; }


/* ======= RODADA 2026-09-25 B: HARMONIA DE CORES FORTE + LAYOUT PREMIUM NA VIEW INDIVIDUAL DE NOTÍCIA ======= */

/* --- Fundação visual da página individual: gradiente de fundo sutil no container da hero--pages --- */
.hero--pages.news-article-page {
    background:
        radial-gradient(1200px 450px at 50% -10%, rgba(249,115,22,0.10), rgba(10,36,99,0) 55%),
        radial-gradient(1000px 400px at -8% 20%, rgba(10,36,99,0.08), rgba(10,36,99,0) 60%),
        linear-gradient(180deg, rgba(10,36,99,0.035) 0%, rgba(10,36,99,0) 280px),
        var(--c-bg-page, #F6F8FC);
    padding-top: 2rem;
    padding-bottom: 3rem;
}
.news-article-page { overflow-x: clip; }

/* --- Card artigo: topo 6px, borda gradiente, sombra dupla + textura interna --- */
.hero--pages .news-article-card {
    border-radius: 22px;
    background:
        linear-gradient(#ffffff 0%, #ffffff 100%) padding-box,
        linear-gradient(135deg, rgba(10,36,99,0.20), rgba(249,115,22,0.20) 55%, rgba(10,36,99,0.20)) border-box;
    border: 1px solid transparent;
    box-shadow:
        0 40px 80px -25px rgba(10,36,99,0.22),
        0 18px 40px -18px rgba(249,115,22,0.18),
        0 0 0 1px rgba(255,255,255,0.55) inset;
    max-width: 900px;
    margin: 0 auto 2.4rem;
}
.hero--pages .news-article-card::before {
    height: 6px;
    background: linear-gradient(90deg, #0A2463 0%, #1E40AF 30%, #F97316 70%, #FB923C 100%);
    box-shadow: 0 1px 0 rgba(255,255,255,0.6) inset;
}

/* --- Hero capa 16:9: overlay duplo colorido + badge categoria + legenda inferior --- */
.hero--pages .news-article-hero {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    position: relative;
    background: #0A2463;
}
.hero--pages .news-article-hero img {
    width: 100%; height: 100%; object-fit: cover;
    transform: scale(1.01);
    transition: transform 700ms cubic-bezier(.22,.61,.36,1);
}
.hero--pages .news-article-hero:hover img { transform: scale(1.06); }
.hero--pages .news-article-hero::after {
    content: "";
    position: absolute; inset: 0;
    background:
        linear-gradient(180deg, rgba(10,36,99,0.22) 0%, rgba(10,36,99,0) 35%, rgba(10,36,99,0.12) 70%, rgba(10,36,99,0.58) 100%),
        linear-gradient(135deg, rgba(249,115,22,0.18) 0%, rgba(249,115,22,0) 42%);
    mix-blend-mode: multiply;
    pointer-events: none;
    transition: opacity 350ms ease;
}
.hero--pages .news-article-hero:hover::after { opacity: 0.7; }
.hero--pages .news-article-hero::before {
    content: "Ampliar imagem";
    position: absolute;
    top: 1rem; right: 1rem;
    padding: .42rem .8rem .42rem .6rem;
    background: rgba(10,36,99,0.80);
    color: #fff;
    border-radius: 999px;
    font-size: .74rem;
    letter-spacing: .01em;
    font-weight: 600;
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    border: 1px solid rgba(255,255,255,0.2);
    display: inline-flex; align-items: center; gap: .4rem;
    z-index: 3;
    transition: transform 200ms ease, background 200ms ease;
}
.hero--pages .news-article-hero::before {
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.1' stroke-linecap='round' stroke-linejoin='round'><path d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/></svg>");
    background-repeat: no-repeat;
    background-position: .55rem center;
    padding-left: 2rem;
}
.hero--pages .news-article-hero:hover::before { background-color: #F97316; border-color: rgba(255,255,255,0.35); transform: translateY(-1px); }

/* --- Cat-row (categoria + metadados): chip colorido por categoria com círculo de fundo --- */
.hero--pages .news-article-cat-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .4rem .75rem;
    padding: 1.25rem 1.75rem .2rem;
    font-size: .82rem;
    color: #475569;
}
.hero--pages .news-article-cat-row > span:not(.tag) {
    display: inline-flex; align-items: center; gap: .4rem;
    padding: .28rem .7rem;
    background: linear-gradient(135deg, rgba(10,36,99,0.035), rgba(249,115,22,0.045));
    border: 1px solid rgba(10,36,99,0.08);
    border-radius: 999px;
    font-weight: 500;
    color: #334155;
}
.hero--pages .news-article-cat-row svg {
    width: 14px; height: 14px; flex-shrink: 0;
    color: #F97316;
}
.hero--pages .news-article-cat-row .tag {
    font-size: .78rem;
    font-weight: 800;
    padding: .38rem .95rem;
    border-radius: 999px;
    letter-spacing: .02em;
    text-transform: uppercase;
    box-shadow: 0 6px 14px -8px currentColor;
    position: relative;
    overflow: hidden;
}
.hero--pages .news-article-cat-row .tag::after {
    content: "";
    position: absolute; inset: -40% auto auto -20%;
    width: 60%; height: 180%;
    background: linear-gradient(120deg, rgba(255,255,255,0) 0%, rgba(255,255,255,0.38) 50%, rgba(255,255,255,0) 100%);
    transform: skewX(-18deg) translateX(-120%);
    transition: transform 700ms ease;
}
.hero--pages .news-article-cat-row .tag:hover::after { transform: skewX(-18deg) translateX(220%); }
.tag--trib { background: linear-gradient(135deg, #1E3A8A, #0A2463); color: #fff; }
.tag--trab { background: linear-gradient(135deg, #DC2626, #B91C1C); color: #fff; }
.tag--cont { background: linear-gradient(135deg, #0F766E, #065F56); color: #fff; }
.tag--econ { background: linear-gradient(135deg, #7C3AED, #5B21B6); color: #fff; }

/* --- Head + Lead: harmonia azul/laranja mais forte --- */
.hero--pages .news-article-head { padding: 0.35rem 1.75rem 1rem; }
.hero--pages .news-article-head h1 {
    font-family: var(--font-title, Georgia, serif);
    font-size: clamp(1.8rem, 3.15vw, 2.5rem);
    font-weight: 850;
    line-height: 1.18;
    letter-spacing: -0.025em;
    background: linear-gradient(180deg, #0A2463 0%, #1E3A8A 100%);
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    -webkit-text-fill-color: transparent;
    margin: 0 0 1rem;
    text-wrap: balance;
}
.hero--pages .news-article-lead {
    position: relative;
    border-left: 4px solid #F97316;
    border-top: 1px solid rgba(249,115,22,0.18);
    background:
        linear-gradient(135deg, rgba(249,115,22,0.10) 0%, rgba(249,115,22,0.02) 45%, rgba(10,36,99,0.06) 100%),
        linear-gradient(#FFFFFF, #FFFFFF);
    padding: 1.15rem 1.3rem;
    border-radius: 0 12px 12px 0;
    color: #1E293B;
    font-size: 1.05rem;
    line-height: 1.7;
    font-weight: 500;
}
.hero--pages .news-article-lead::before {
    content: "";
    position: absolute; left: 0; top: 0;
    height: 3px; width: 100%;
    background: linear-gradient(90deg, #F97316 0%, rgba(249,115,22,0) 40%);
}

/* --- Drop cap: gradiente azul→laranja com circulo --- */
.hero--pages .news-body > :first-child > p:first-child::first-letter,
.hero--pages .news-body > p:first-of-type::first-letter,
.hero--pages .news-body section:first-of-type p:first-of-type::first-letter,
.hero--pages .news-body > *:first-child p:first-child::first-letter {
    font-family: var(--font-title, Georgia, serif);
    font-size: 3.2rem;
    line-height: 0.9;
    font-weight: 900;
    float: left;
    padding: .2rem .65rem .15rem .25rem;
    margin: .15rem .55rem .05rem 0;
    background:
        radial-gradient(120% 120% at 30% 30%, rgba(249,115,22,0.12), rgba(10,36,99,0) 65%),
        linear-gradient(135deg, #0A2463 0%, #1E40AF 45%, #F97316 100%);
    -webkit-background-clip: text, border-box;
    background-clip: text, border-box;
    -webkit-text-fill-color: transparent;
    color: transparent;
    border-radius: 10px;
    position: relative;
}

/* --- Tipografia corpo do artigo: parágrafos, headings, listas, blockquote --- */
.hero--pages .news-body,
.hero--pages .news-share-cta { padding: 0 1.75rem; }
.hero--pages .news-body {
    font-size: 1.03rem;
    line-height: 1.82;
    color: #1E293B;
    -webkit-hyphens: auto;
    hyphens: auto;
}
.hero--pages .news-body p {
    margin: 0 0 1.2rem;
}
.hero--pages .news-body a {
    color: #F97316;
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dashed rgba(249,115,22,0.45);
    padding-bottom: 1px;
    transition: color 150ms ease, border-color 150ms ease;
}
.hero--pages .news-body a:hover {
    color: #EA580C;
    border-bottom-style: solid;
    border-bottom-color: #EA580C;
}
.hero--pages .news-body strong { color: #0A2463; font-weight: 700; }
.hero--pages .news-body em { color: #1E3A8A; }

/* Headings internos */
.hero--pages .news-body h2 {
    font-family: var(--font-title, Georgia, serif);
    font-size: clamp(1.35rem, 2.1vw, 1.65rem);
    line-height: 1.3;
    font-weight: 800;
    letter-spacing: -0.018em;
    margin: 2.2rem 0 1rem;
    padding: .85rem 1.05rem .85rem 1.05rem;
    color: #0A2463;
    background: linear-gradient(135deg, rgba(10,36,99,0.05) 0%, rgba(249,115,22,0.07) 100%);
    border-radius: 12px;
    border-left: 4px solid #F97316;
    border-top: 1px solid rgba(10,36,99,0.08);
    position: relative;
}
.hero--pages .news-body h2::after {
    content: "";
    position: absolute; right: 1rem; top: 50%; transform: translateY(-50%);
    width: 48px; height: 3px; border-radius: 3px;
    background: linear-gradient(90deg, #0A2463, #F97316);
    opacity: .65;
}
.hero--pages .news-body h3 {
    font-family: var(--font-title, Georgia, serif);
    font-size: clamp(1.1rem, 1.7vw, 1.28rem);
    line-height: 1.35;
    font-weight: 750;
    letter-spacing: -0.012em;
    margin: 1.6rem 0 .75rem;
    padding-left: 1.05rem;
    color: #0F172A;
    position: relative;
}
.hero--pages .news-body h3::before {
    content: "";
    position: absolute; left: 0; top: .42em;
    width: 8px; height: 8px; border-radius: 2px;
    background: linear-gradient(135deg, #F97316, #FB923C);
    box-shadow: 0 0 0 3px rgba(249,115,22,0.12);
}
.hero--pages .news-body h4 {
    font-size: 1.05rem;
    font-weight: 700;
    color: #1E3A8A;
    margin: 1.3rem 0 .55rem;
}

/* Listas */
.hero--pages .news-body ul,
.hero--pages .news-body ol {
    padding-left: 1.4rem;
    margin: 0 0 1.2rem;
    color: #1E293B;
}
.hero--pages .news-body ul li,
.hero--pages .news-body ol li {
    margin: 0 0 .55rem;
    padding-left: .3rem;
    line-height: 1.75;
    position: relative;
}
.hero--pages .news-body ul li::marker {
    color: #F97316;
    font-size: 1.05rem;
}
.hero--pages .news-body ol li::marker {
    color: #0A2463;
    font-weight: 700;
}

/* Bloco de citação */
.hero--pages .news-body blockquote {
    position: relative;
    margin: 1.6rem 0;
    padding: 1.25rem 1.4rem 1.15rem 1.4rem;
    color: #0F172A;
    font-size: 1.05rem;
    line-height: 1.75;
    font-style: italic;
    border-radius: 14px;
    border-left: 4px solid #F97316;
    border-top: 3px solid #0A2463;
    background:
        linear-gradient(135deg, rgba(10,36,99,0.06) 0%, rgba(249,115,22,0.07) 100%),
        linear-gradient(#FFFFFF, #FFFFFF);
}
.hero--pages .news-body blockquote::before {
    content: "\201C";
    position: absolute;
    top: -0.35rem; left: .6rem;
    font-family: Georgia, serif;
    font-size: 3.4rem;
    line-height: 1;
    color: rgba(249,115,22,0.55);
    font-style: normal;
}
.hero--pages .news-body blockquote p:last-child { margin-bottom: 0; }

/* Imagens inline no corpo */
.hero--pages .news-body img {
    max-width: 100%;
    height: auto;
    display: block;
    margin: 1.3rem auto;
    border-radius: 14px;
    border: 1px solid rgba(10,36,99,0.09);
    box-shadow: 0 18px 40px -20px rgba(10,36,99,0.28);
}

/* Divider: gradiente centralizado */
.hero--pages hr.divider {
    margin: 1.2rem 1.75rem !important;
    border: 0;
    height: 2px !important;
    background: linear-gradient(90deg, rgba(10,36,99,0) 0%, rgba(10,36,99,0.38) 18%, #F97316 50%, rgba(10,36,99,0.38) 82%, rgba(10,36,99,0) 100%);
    border-radius: 3px;
    opacity: .8;
}

/* --- Share CTA: bloco de compartilhamento com fundo gradiente --- */
.hero--pages .news-share-cta {
    margin: 0 1.75rem 1.75rem;
    padding: 1.5rem 1.6rem 1.6rem;
    border-radius: 16px;
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(10,36,99,0.08) 0%, rgba(249,115,22,0.10) 100%),
        linear-gradient(#FFFFFF, #FFFFFF);
    border: 1px solid rgba(10,36,99,0.08);
    border-left: 4px solid #F97316;
}
.hero--pages .news-share-cta::before {
    content: "";
    position: absolute; right: -40px; top: -60px;
    width: 220px; height: 220px;
    background: radial-gradient(circle at center, rgba(249,115,22,0.14), rgba(10,36,99,0) 70%);
    pointer-events: none;
}
.hero--pages .news-share-cta p {
    position: relative;
    margin: 0 0 .9rem;
    font-size: 1rem;
    color: #0F172A;
    line-height: 1.6;
}
.hero--pages .news-share-cta p strong {
    color: #0A2463;
    font-size: 1.08rem;
}
.hero--pages .news-share-cta .hero__ctas {
    position: relative;
    display: flex;
    gap: .7rem;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-start;
}
.hero--pages .news-share-cta .btn-wa-mini {
    background: linear-gradient(135deg, #10B981, #059669);
    color: #fff;
    border-color: transparent;
    font-weight: 700;
    padding: .85rem 1.25rem;
    border-radius: 12px;
    box-shadow: 0 14px 28px -10px rgba(16,185,129,0.55);
    transition: transform 150ms ease, box-shadow 200ms ease;
}
.hero--pages .news-share-cta .btn-wa-mini:hover { transform: translateY(-1px); box-shadow: 0 20px 34px -12px rgba(16,185,129,0.65); }
.hero--pages .news-share-cta .btn-outline {
    background: #fff;
    color: #0A2463;
    border: 1px solid rgba(10,36,99,0.18);
    font-weight: 700;
    padding: .85rem 1.2rem;
    border-radius: 12px;
    transition: border-color 150ms ease, color 150ms ease, background 150ms ease;
}
.hero--pages .news-share-cta .btn-outline:hover {
    background: #0A2463;
    color: #fff;
    border-color: #0A2463;
}

/* --- CTA CONVERSÃO: "Precisa de ajuda contábil com esse tema?" --- */
.news-convert-cta {
    max-width: 900px;
    margin: 0 auto 2.4rem;
    border-radius: 22px;
    position: relative;
    overflow: hidden;
    padding: 1.9rem 2rem 2rem;
    color: #fff;
    background:
        radial-gradient(800px 400px at 110% -20%, rgba(249,115,22,0.28), rgba(10,36,99,0) 60%),
        linear-gradient(135deg, #0A2463 0%, #1E3A8A 55%, #0A2463 100%);
    box-shadow:
        0 40px 80px -25px rgba(10,36,99,0.5),
        0 18px 40px -18px rgba(249,115,22,0.25),
        0 0 0 1px rgba(255,255,255,0.06) inset;
}
.news-convert-cta::before {
    content: "";
    position: absolute; left: 0; top: 0;
    height: 5px; width: 100%;
    background: linear-gradient(90deg, #F97316, #FB923C 50%, #F97316);
}
.news-convert-cta__row {
    display: grid;
    grid-template-columns: 72px 1fr auto;
    gap: 1.2rem;
    align-items: center;
}
.news-convert-cta__icon {
    width: 72px; height: 72px; border-radius: 18px;
    background:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,0.2), rgba(255,255,255,0) 60%),
        linear-gradient(135deg, rgba(249,115,22,0.95), rgba(251,146,60,0.95));
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 18px 36px -12px rgba(249,115,22,0.6), 0 0 0 3px rgba(255,255,255,0.08) inset;
    flex-shrink: 0;
}
.news-convert-cta__icon svg { width: 34px; height: 34px; color: #fff; flex-shrink: 0; }
.news-convert-cta__text h3 {
    margin: 0 0 .35rem;
    font-size: clamp(1.2rem, 2vw, 1.5rem);
    line-height: 1.25;
    font-weight: 800;
    letter-spacing: -0.015em;
    color: #fff;
    text-wrap: balance;
}
.news-convert-cta__text h3 .accent {
    background: linear-gradient(135deg, #FDBA74, #F97316 60%, #FFFFFF);
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent; color: transparent;
    font-weight: 900;
}
.news-convert-cta__text p {
    margin: 0;
    color: rgba(255,255,255,0.86);
    font-size: .96rem;
    line-height: 1.6;
    max-width: 56ch;
}
.news-convert-cta__btns {
    display: flex; flex-direction: column; gap: .6rem; min-width: 200px;
}
.news-convert-cta__btn {
    display: inline-flex; align-items: center; justify-content: center; gap: .5rem;
    padding: .9rem 1.2rem;
    border-radius: 12px;
    font-weight: 700;
    text-decoration: none;
    transition: transform 150ms ease, box-shadow 200ms ease, background 200ms ease;
    font-size: .93rem;
}
.news-convert-cta__btn--wa {
    background: linear-gradient(135deg, #10B981, #059669);
    color: #fff;
    box-shadow: 0 14px 30px -10px rgba(16,185,129,0.5);
}
.news-convert-cta__btn--wa:hover { transform: translateY(-1px); box-shadow: 0 22px 38px -12px rgba(16,185,129,0.6); }
.news-convert-cta__btn--wa svg { width: 18px; height: 18px; }
.news-convert-cta__btn--contato {
    background: rgba(255,255,255,0.08);
    color: #fff;
    border: 1px solid rgba(255,255,255,0.18);
}
.news-convert-cta__btn--contato:hover {
    background: rgba(255,255,255,0.14);
    border-color: rgba(249,115,22,0.55);
}
@media (max-width: 860px) {
    .news-convert-cta { padding: 1.6rem 1.4rem 1.7rem; }
    .news-convert-cta__row { grid-template-columns: 60px 1fr; }
    .news-convert-cta__icon { width: 60px; height: 60px; border-radius: 15px; }
    .news-convert-cta__icon svg { width: 28px; height: 28px; }
    .news-convert-cta__btns { grid-column: 1 / -1; flex-direction: row; flex-wrap: wrap; }
    .news-convert-cta__btn { flex: 1 1 180px; }
}
@media (max-width: 560px) {
    .news-convert-cta { padding: 1.4rem 1.1rem 1.5rem; border-radius: 18px; }
    .news-convert-cta__row { grid-template-columns: 1fr; text-align: center; gap: 1rem; }
    .news-convert-cta__icon { margin: 0 auto; width: 64px; height: 64px; }
    .news-convert-cta__text p { margin: 0 auto; }
    .news-convert-cta__btns { flex-direction: column; min-width: 0; }
    .news-convert-cta__btn { width: 100%; }
}

/* --- Relacionadas: title com chip colorido + barra inferior --- */
.hero--pages .news-related-section { padding-top: .6rem; }
.hero--pages .section-title {
    text-align: left;
    margin-bottom: 1.3rem;
    position: relative;
    padding-bottom: .6rem;
}
.hero--pages .section-title::after {
    content: "";
    position: absolute;
    left: 0; bottom: 0;
    height: 3px; width: 90px;
    border-radius: 3px;
    background: linear-gradient(90deg, #0A2463, #F97316 70%);
}
.hero--pages .section-title .eyebrow {
    display: inline-block;
    background: linear-gradient(135deg, rgba(249,115,22,0.12), rgba(10,36,99,0.08));
    color: #EA580C;
    font-size: .78rem;
    font-weight: 800;
    padding: .3rem .85rem;
    border-radius: 999px;
    letter-spacing: .06em;
    text-transform: uppercase;
    border: 1px solid rgba(249,115,22,0.2);
    margin-bottom: .45rem;
}
.hero--pages .section-title h2 {
    margin: 0;
    font-family: var(--font-title, Georgia, serif);
    font-size: clamp(1.3rem, 2.2vw, 1.7rem);
    line-height: 1.2;
    font-weight: 800;
    letter-spacing: -0.018em;
    color: #0A2463;
}

/* --- Breadcrumb (harmonia visual com a página) --- */
.hero--pages .news-breadcrumb {
    max-width: 900px;
    margin: 0 auto 1.2rem;
    padding: .6rem .9rem;
    border-radius: 12px;
    background:
        linear-gradient(135deg, rgba(10,36,99,0.03), rgba(249,115,22,0.04)),
        rgba(255,255,255,0.88);
    border: 1px solid rgba(10,36,99,0.08);
    box-shadow: 0 6px 20px -16px rgba(10,36,99,0.18);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
}
.hero--pages .news-breadcrumb a:hover {
    background: rgba(249,115,22,0.12);
    color: #EA580C;
}
.hero--pages .news-breadcrumb span:last-child {
    color: #0A2463;
    font-weight: 600;
}

/* --- Breakpoints mobile para tipografia e paddings --- */
@media (max-width: 680px) {
    .hero--pages { padding-top: 1.3rem; padding-bottom: 2rem; }
    .hero--pages .news-article-card { border-radius: 18px; margin-bottom: 1.6rem; }
    .hero--pages .news-article-cat-row { padding: 1rem 1.15rem .15rem; gap: .38rem .55rem; font-size: .76rem; }
    .hero--pages .news-article-cat-row .tag { font-size: .72rem; padding: .32rem .8rem; letter-spacing: .015em; }
    .hero--pages .news-article-head { padding: 0.25rem 1.15rem 0.9rem; }
    .hero--pages .news-article-head h1 { font-size: clamp(1.45rem, 7.4vw, 1.85rem); line-height: 1.22; }
    .hero--pages .news-article-lead { font-size: .97rem; padding: 1rem 1.05rem; }
    .hero--pages .news-body, .hero--pages .news-share-cta { padding-left: 1.15rem !important; padding-right: 1.15rem !important; }
    .hero--pages hr.divider { margin: 1rem 1.15rem !important; }
    .hero--pages .news-share-cta { margin: 0 1.15rem 1.35rem; padding: 1.15rem 1.15rem 1.3rem; }
    .hero--pages .news-share-cta .hero__ctas .btn { flex: 1 1 100%; width: 100%; justify-content: center; }
    .hero--pages .news-breadcrumb { padding: .5rem .7rem; font-size: .78rem; }
    .hero--pages .news-breadcrumb span:last-child { max-width: 28ch; }
    .hero--pages .news-body h2 { font-size: 1.2rem; padding: .75rem .9rem; padding-left: .95rem; }
    .hero--pages .news-body h2::after { display: none; }
    .hero--pages .news-body h3 { font-size: 1.05rem; padding-left: .9rem; }
    .hero--pages .news-body blockquote { padding: 1rem 1.05rem 1rem 1.1rem; font-size: 1rem; }
    .hero--pages .news-body > p:first-of-type::first-letter,
    .hero--pages .news-body > section:first-of-type p:first-of-type::first-letter {
        font-size: 2.6rem;
        padding: .15rem .5rem .1rem .15rem;
        margin: .1rem .45rem .03rem 0;
    }
}
@media (max-width: 480px) {
    .hero--pages .news-article-hero { aspect-ratio: 4 / 3; }
    .hero--pages .news-breadcrumb { font-size: .76rem; padding: .48rem .65rem; }
    .hero--pages .news-breadcrumb span:last-child { max-width: 20ch; }
    .hero--pages .news-article-cat-row > span:not(.tag) { padding: .22rem .55rem; }
}


/* ======= RODADA 2026-09-25 C: RESET DE CORES CONTRA HERANÇA .hero (BRANCO) PARA NOTÍCIAS + HOME ======= */

/* ================================================================
   1) PÁGINA DE NOTÍCIA INDIVIDUAL: .hero--pages herda color:#fff
      de .hero (app.css L821-L822: ".hero h1/h2/h3/p { color:#fff !important }")
      Resolvemos com ESPECIFICIDADE MAIOR (4+ classes) + !important
      em TODO o conteúdo DENTRO do card da notícia e bloco CTA.
   ================================================================ */

/* --- Reset geral dentro da página: wrapper geral tem cor escura --- */
.hero.hero--pages.news-article-page {
    color: #0F172A !important;
}
/* Remover a herança de .hero h1/h2/h3/p/lead ANTES do card (breadcrumb e fora do card continuam texto claro/funcional? NÃO, breadcrumb dentro de hero--pages tb queremos escuro! Sim, queremos tudo na página individual MENOS O HERO DA HOME — mas news-article-page só existe na notícia. */
.hero.hero--pages.news-article-page .news-breadcrumb,
.hero.hero--pages.news-article-page .news-breadcrumb *,
.hero.hero--pages.news-article-page .news-article-card,
.hero.hero--pages.news-article-page .news-article-card *,
.hero.hero--pages.news-article-page .news-convert-cta,
.hero.hero--pages.news-article-page .news-convert-cta *,
.hero.hero--pages.news-article-page .news-related-section,
.hero.hero--pages.news-article-page .news-related-section * {
    color: revert;
}

/* ================ CARD ARTIGO ================ */
.hero.hero--pages.news-article-page .news-article-card {
    color: #1E293B !important;
}
/* H1 do artigo: gradiente azul com color:transparent via background-clip, MAS precisamos sobrescrever o white!important do .hero */
.hero.hero--pages.news-article-page .news-article-head h1 {
    color: transparent !important;
    background: linear-gradient(180deg, #0A2463 0%, #1E3A8A 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
}
/* H2/H3 internos do corpo */
.hero.hero--pages.news-article-page .news-body h2 {
    color: #0A2463 !important;
}
.hero.hero--pages.news-article-page .news-body h3 {
    color: #0F172A !important;
}
.hero.hero--pages.news-article-page .news-body h4,
.hero.hero--pages.news-article-page .news-body h5,
.hero.hero--pages.news-article-page .news-body h6 {
    color: #1E3A8A !important;
}
/* Parágrafos do corpo — PONTO CRÍTICO DO BUG TEXTO INVISÍVEL */
.hero.hero--pages.news-article-page .news-article-card p,
.hero.hero--pages.news-article-page .news-body p {
    color: #1E293B !important;
}
.hero.hero--pages.news-article-page .news-body strong { color: #0A2463 !important; }
.hero.hero--pages.news-article-page .news-body em { color: #1E3A8A !important; }
.hero.hero--pages.news-article-page .news-body a {
    color: #F97316 !important;
    border-bottom-color: rgba(249,115,22,0.5);
}
.hero.hero--pages.news-article-page .news-body a:hover { color: #EA580C !important; }
.hero.hero--pages.news-article-page .news-body ul,
.hero.hero--pages.news-article-page .news-body ol,
.hero.hero--pages.news-article-page .news-body li {
    color: #1E293B !important;
}
.hero.hero--pages.news-article-page .news-body blockquote,
.hero.hero--pages.news-article-page .news-body blockquote p,
.hero.hero--pages.news-article-page .news-body figcaption,
.hero.hero--pages.news-article-page .news-body small,
.hero.hero--pages.news-article-page .news-body span {
    color: #0F172A !important;
}
/* Drop cap (primeira letra): gradiente text transparent */
.hero.hero--pages.news-article-page .news-body > :first-child > p:first-child::first-letter,
.hero.hero--pages.news-article-page .news-body > p:first-of-type::first-letter,
.hero.hero--pages.news-article-page .news-body section:first-of-type p:first-of-type::first-letter,
.hero.hero--pages.news-article-page .news-body > *:first-child p:first-child::first-letter {
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    background:
        radial-gradient(120% 120% at 30% 30%, rgba(249,115,22,0.12), rgba(10,36,99,0) 65%),
        linear-gradient(135deg, #0A2463 0%, #1E40AF 45%, #F97316 100%) !important;
    -webkit-background-clip: text, border-box !important;
    background-clip: text, border-box !important;
}
/* Lead / resumo abaixo do título */
.hero.hero--pages.news-article-page .news-article-lead,
.hero.hero--pages.news-article-page .news-article-lead p {
    color: #1E293B !important;
}
/* Linha cat-row (categoria + metadados) */
.hero.hero--pages.news-article-page .news-article-cat-row {
    color: #475569 !important;
}
.hero.hero--pages.news-article-page .news-article-cat-row > span:not(.tag) {
    color: #334155 !important;
}
.hero.hero--pages.news-article-page .news-article-cat-row .tag {
    color: #FFFFFF !important;
}
/* ================ SHARE CTA ================ */
.hero.hero--pages.news-article-page .news-share-cta,
.hero.hero--pages.news-article-page .news-share-cta p {
    color: #0F172A !important;
}
.hero.hero--pages.news-article-page .news-share-cta p strong {
    color: #0A2463 !important;
}
.hero.hero--pages.news-article-page .news-share-cta .btn-wa-mini {
    color: #FFFFFF !important;
}
.hero.hero--pages.news-article-page .news-share-cta .btn-outline {
    color: #0A2463 !important;
}
.hero.hero--pages.news-article-page .news-share-cta .btn-outline:hover {
    color: #FFFFFF !important;
}
/* ================ BREADCRUMB ================ */
.hero.hero--pages.news-article-page .news-breadcrumb,
.hero.hero--pages.news-article-page .news-breadcrumb span:not(.sep),
.hero.hero--pages.news-article-page .news-breadcrumb a {
    color: #0A2463 !important;
}
.hero.hero--pages.news-article-page .news-breadcrumb span:last-child {
    color: #0A2463 !important;
}
.hero.hero--pages.news-article-page .news-breadcrumb .sep {
    color: #94A3B8 !important;
}
/* ================ CTA CONVERSÃO AZUL (textos devem ser BRANCOS aqui — fundo azul) ================ */
.hero.hero--pages.news-article-page .news-convert-cta {
    color: #FFFFFF !important;
}
.hero.hero--pages.news-article-page .news-convert-cta h3,
.hero.hero--pages.news-article-page .news-convert-cta h3 * {
    color: #FFFFFF !important;
}
.hero.hero--pages.news-article-page .news-convert-cta h3 .accent {
    background: linear-gradient(135deg, #FDBA74, #F97316 60%, #FFFFFF) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: transparent !important;
}
.hero.hero--pages.news-article-page .news-convert-cta p,
.hero.hero--pages.news-article-page .news-convert-cta p * {
    color: rgba(255,255,255,0.88) !important;
}
.hero.hero--pages.news-article-page .news-convert-cta__btn--wa,
.hero.hero--pages.news-article-page .news-convert-cta__btn--wa * {
    color: #FFFFFF !important;
}
.hero.hero--pages.news-article-page .news-convert-cta__btn--contato,
.hero.hero--pages.news-article-page .news-convert-cta__btn--contato * {
    color: #FFFFFF !important;
}
/* ================ SECTION RELACIONADAS ================ */
.hero.hero--pages.news-article-page .section-title .eyebrow {
    color: #EA580C !important;
}
.hero.hero--pages.news-article-page .section-title h2 {
    color: #0A2463 !important;
}
.hero.hero--pages.news-article-page .news-card h3,
.hero.hero--pages.news-article-page .news-card h3 a,
.hero.hero--pages.news-article-page .news-card p,
.hero.hero--pages.news-article-page .news-card .news-card__meta,
.hero.hero--pages.news-article-page .news-card .news-card__cta {
    color: #0F172A !important;
}
.hero.hero--pages.news-article-page .news-card .tag {
    color: #FFFFFF !important;
}
/* ================ DIVIDER ================ */
.hero.hero--pages.news-article-page hr.divider {
    opacity: .85 !important;
}


/* ================================================================
   2) HOME: SESSÃO "VENHA PARA CONTABILIZAMS"
      - Tudo o que está dentro desse cartão gradiente AZUL → BRANCO (não cinza, não azul!)
      - Adicionar overlay para garantir contraste uniforme (esquerda e direita do gradiente)
   ================================================================ */
#diferenciais > .container > div:last-child.mt-4.text-center,
section#diferenciais .mt-4.text-center[style*="linear-gradient"] {
    position: relative;
    isolation: isolate;
}
/* Overlay escuro para dar contraste em TODO o cartão (lado direito azul claro é o culpado pela baixa opacidade) */
#diferenciais > .container > div:last-child.mt-4.text-center::before,
section#diferenciais .mt-4.text-center[style*="linear-gradient"]::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    border-radius: 20px;
    background:
        radial-gradient(900px 300px at 95% -10%, rgba(10,36,99,0.48), rgba(10,36,99,0) 60%),
        linear-gradient(90deg, rgba(10,36,99,0) 0%, rgba(10,36,99,0.18) 65%, rgba(10,36,99,0.32) 100%);
    pointer-events: none;
}
#diferenciais > .container > div:last-child.mt-4.text-center > *,
section#diferenciais .mt-4.text-center[style*="linear-gradient"] > * {
    position: relative;
    z-index: 1;
}
/* Garantia MÁXIMA: h2, h3 e P são BRANCOS com 100% / 92% / 95% opacidade */
#diferenciais > .container > div:last-child.mt-4.text-center h2,
section#diferenciais .mt-4.text-center[style*="linear-gradient"] h2 {
    color: #FFFFFF !important;
    text-shadow: 0 2px 10px rgba(0,0,0,0.22) !important;
}
#diferenciais > .container > div:last-child.mt-4.text-center h3,
section#diferenciais .mt-4.text-center[style*="linear-gradient"] h3 {
    color: rgba(255,255,255,0.94) !important;
    text-shadow: 0 1px 6px rgba(0,0,0,0.18) !important;
}
#diferenciais > .container > div:last-child.mt-4.text-center p,
section#diferenciais .mt-4.text-center[style*="linear-gradient"] p,
#diferenciais > .container > div:last-child.mt-4.text-center p *,
section#diferenciais .mt-4.text-center[style*="linear-gradient"] p * {
    color: rgba(255,255,255,0.95) !important;
    text-shadow: 0 1px 6px rgba(0,0,0,0.14) !important;
}
#diferenciais > .container > div:last-child.mt-4.text-center .btn,
section#diferenciais .mt-4.text-center[style*="linear-gradient"] .btn {
    position: relative;
    z-index: 1;
}
