/* =====================================================================
   BRAINLUSO — CSS principal
   Base: Bootstrap 5 + overrides custom
   Estilo: monospace + paleta sand / indigo / coral / mint
   ===================================================================== */

/* -------------- TOKENS -------------- */
:root {
    /* Paleta */
    --bl-sand:           #e5dcc0;
    --bl-sand-dark:      #d6cba8;
    --bl-indigo:         #6b5ce7;
    --bl-indigo-dark:    #5848d6;
    --bl-indigo-light:   #8a7df0;
    --bl-coral:          #f490a6;
    --bl-coral-dark:     #e87791;
    --bl-mint:           #5dc9a8;
    --bl-mint-dark:      #45b693;

    /* Neutros */
    --bl-bg:             #ffffff;
    --bl-bg-soft:        #f1f2f3;
    --bl-bg-dark:        #1a1a1a;

    --bl-text:           #111111;
    --bl-text-muted:     #6b7280;
    --bl-border:         #e6e6e6;

    /* Raios */
    --bl-radius-sm: 6px;
    --bl-radius:    12px;
    --bl-radius-lg: 20px;

    /* Sombras */
    --bl-shadow-sm:  0 2px 8px rgba(0, 0, 0, .04);
    --bl-shadow:     0 8px 30px rgba(0, 0, 0, .08);
    --bl-shadow-lg:  0 20px 60px rgba(0, 0, 0, .12);

    /* Tipografia */
    --bl-font-mono:  'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    --bl-font-sans:  'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
}

/* -------------- BASE -------------- */
html {
    scroll-behavior: smooth;
    overflow-x: hidden;
    overflow-x: clip;
}

body {
    font-family: var(--bl-font-sans);
    color: var(--bl-text);
    background: var(--bl-bg);
    -webkit-font-smoothing: antialiased;
    font-feature-settings: "ss01", "cv01";
    line-height: 1.55;
    overflow-x: hidden;
    overflow-x: clip;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--bl-font-mono);
    font-weight: 700;
    letter-spacing: -.01em;
    color: var(--bl-text);
    line-height: 1.15;
}

/* JetBrains Mono mantém-se como acento de marca (rótulos, nav, tags,
   números) — estes herdariam a sans do body, por isso fixam-se aqui. */
.bl-eyebrow,
.bl-navbar, .bl-overlay-nav a, .bl-overlay-group,
.bl-card-link, .bl-stat-number, .bl-stat-label,
.bl-footer-title,
.bl-cal-cat, .bl-cal-perio, .bl-cal-mini-cat,
.bl-emp-badge, .bl-calc-note,
.bl-section-title, .bl-page-title, .bl-hero-title,
.bl-cta-final-title {
    font-family: var(--bl-font-mono);
}

a { color: var(--bl-indigo); text-decoration: none; }
a:hover { color: var(--bl-indigo-dark); }

p { line-height: 1.7; }

/* -------------- UTILITÁRIOS -------------- */
.bl-text-indigo { color: var(--bl-indigo); }
.bl-text-coral  { color: var(--bl-coral); }
.bl-text-mint   { color: var(--bl-mint); }

.bl-eyebrow {
    display: inline-block;
    font-size: .8rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--bl-mint-dark);
    margin-bottom: 1rem;
}

.bl-section     { padding: 6rem 0; position: relative; }
.bl-section-alt { background: var(--bl-bg-soft); }

.bl-section-title {
    font-size: clamp(1.6rem, 2.6vw, 2.25rem);
    text-align: center;
    margin: 0 0 .5rem;
    font-weight: 700;
}
.bl-section-sub {
    text-align: center;
    color: var(--bl-text-muted);
    max-width: 640px;
    margin: 1rem auto 0;
}

/* -------------- ONDA / DIVISOR -------------- */
.bl-wave {
    display: block;
    width: 100%;
    height: 70px;
    line-height: 0;
    margin: 0;
    overflow: hidden;
}
.bl-wave svg { width: 100%; height: 100%; display: block; }

/* Onda colocada no fim de uma secção: cor de baixo aparece atrás */
.bl-wave-down { margin-top: -1px; }
.bl-wave-up   { margin-bottom: -1px; transform: scaleY(-1); }
@media (max-width: 991.98px) {
    .bl-wave { height: 50px; }
}

/* -------------- BOTÕES -------------- */
.btn {
    border-radius: var(--bl-radius-sm);
    padding: .75rem 1.75rem;
    font-family: var(--bl-font-mono);
    font-weight: 500;
    font-size: .95rem;
    transition: all .2s ease;
    border-width: 1.5px;
}

.bl-btn-primary {
    background: var(--bl-indigo);
    color: #fff;
    border: 1.5px solid var(--bl-indigo);
}
.bl-btn-primary:hover {
    background: var(--bl-indigo-dark);
    border-color: var(--bl-indigo-dark);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: var(--bl-shadow);
}

.bl-btn-outline {
    background: transparent;
    color: var(--bl-indigo);
    border: 1.5px solid var(--bl-indigo);
}
.bl-btn-outline:hover {
    background: var(--bl-indigo);
    color: #fff;
}

.bl-btn-coral {
    background: var(--bl-coral);
    color: #fff;
    border: 1.5px solid var(--bl-coral);
}
.bl-btn-coral:hover {
    background: var(--bl-coral-dark);
    border-color: var(--bl-coral-dark);
    color: #fff;
    transform: translateY(-1px);
    box-shadow: var(--bl-shadow);
}

.bl-btn-ghost-light {
    background: transparent;
    color: #fff;
    border: 1.5px solid rgba(255, 255, 255, .8);
}
.bl-btn-ghost-light:hover {
    background: #fff;
    color: var(--bl-indigo);
}

/* -------------- NAVBAR -------------- */
.bl-navbar {
    background: rgba(229, 220, 192, 0);
    border: 0;
    padding: 1rem 0;
    transition: background .3s ease;
}
.bl-navbar.scrolled {
    background: rgba(255, 255, 255, .92);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    border-bottom: 1px solid var(--bl-border);
}
.bl-navbar .navbar-brand {
    color: var(--bl-text);
}
.bl-navbar .navbar-brand img {
    height: 36px;
    width: auto;
}

/* Hamburger trigger */
.bl-menu-toggle {
    width: 44px;
    height: 44px;
    background: transparent;
    border: 0;
    color: var(--bl-text);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    font-size: 1.6rem;
    transition: opacity .2s;
}
.bl-menu-toggle:hover { opacity: .7; }

/* -------------- NAV DESKTOP (≥992px) -------------- */
.bl-desktop-nav { display: none; }

@media (min-width: 992px) {
    .bl-menu-toggle { display: none; }
    .bl-desktop-nav {
        display: flex;
        align-items: center;
        gap: 1.75rem;
        list-style: none;
        margin: 0;
        padding: 0;
    }
    .bl-desktop-nav > li { position: relative; }
    .bl-desktop-nav a,
    .bl-nav-sub-toggle {
        font-family: var(--bl-font-mono);
        font-size: .92rem;
        font-weight: 500;
        color: var(--bl-text);
        text-decoration: none;
        background: transparent;
        border: 0;
        padding: .4rem 0;
        cursor: pointer;
        display: inline-flex;
        align-items: center;
        gap: .35rem;
        transition: color .2s;
    }
    .bl-desktop-nav a:hover,
    .bl-nav-sub-toggle:hover,
    .bl-desktop-nav a.active,
    .bl-nav-sub-toggle.active { color: var(--bl-coral-dark); }
    .bl-nav-sub-toggle i { font-size: .8rem; transition: transform .2s; }
    .bl-nav-has-sub:hover .bl-nav-sub-toggle i,
    .bl-nav-has-sub:focus-within .bl-nav-sub-toggle i,
    .bl-nav-has-sub.open .bl-nav-sub-toggle i { transform: rotate(180deg); }

    /* submenu Ferramentas */
    .bl-nav-sub {
        position: absolute;
        top: calc(100% + .55rem);
        right: 0;
        min-width: 260px;
        list-style: none;
        margin: 0;
        padding: .5rem;
        background: #fff;
        border: 1px solid var(--bl-border);
        border-radius: var(--bl-radius);
        box-shadow: var(--bl-shadow);
        opacity: 0;
        visibility: hidden;
        transform: translateY(-6px);
        transition: opacity .18s ease, transform .18s ease, visibility .18s;
        z-index: 1100;
    }
    .bl-nav-has-sub:hover .bl-nav-sub,
    .bl-nav-has-sub:focus-within .bl-nav-sub,
    .bl-nav-has-sub.open .bl-nav-sub {
        opacity: 1;
        visibility: visible;
        transform: translateY(0);
    }
    .bl-nav-sub li { display: block; }
    .bl-nav-sub a {
        display: block;
        padding: .6rem .75rem;
        border-radius: var(--bl-radius-sm);
        font-size: .9rem;
        color: var(--bl-text);
    }
    .bl-nav-sub a:hover,
    .bl-nav-sub a:focus-visible,
    .bl-nav-sub a.active {
        background: var(--bl-bg-soft);
        color: var(--bl-indigo);
    }
    .bl-nav-cta {
        font-family: var(--bl-font-mono);
        padding: .5rem 1.15rem;
        font-size: .9rem;
    }
}

/* -------------- MENU OVERLAY -------------- */
.bl-overlay {
    position: fixed;
    inset: 0;
    background:
        radial-gradient(800px 500px at 100% 0%, rgba(244, 144, 166, .28), transparent 60%),
        radial-gradient(700px 500px at 0% 100%, rgba(93, 201, 168, .18), transparent 60%),
        linear-gradient(160deg, var(--bl-indigo-dark), var(--bl-indigo));
    z-index: 1080;
    color: #fff;
    overflow-y: auto;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity .35s ease, visibility 0s linear .35s;
}
.bl-overlay.open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transition: opacity .35s ease, visibility 0s linear 0s;
}
.bl-overlay::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px);
    background-size: 24px 24px;
    pointer-events: none;
    opacity: .8;
}

.bl-overlay-logo {
    position: absolute;
    top: 1.5rem;
    left: 1.5rem;
    z-index: 2;
    display: inline-flex;
}
.bl-overlay-logo img { height: 34px; width: auto; }

.bl-overlay-close {
    position: absolute;
    top: 1.25rem;
    right: 1.25rem;
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .18);
    border-radius: 50%;
    color: #fff;
    font-size: 1.4rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
    transition: background .25s, color .25s, border-color .25s, transform .35s ease;
}
.bl-overlay-close:hover,
.bl-overlay-close:focus-visible {
    background: var(--bl-coral);
    border-color: var(--bl-coral);
    color: #fff;
    transform: rotate(90deg);
}

.bl-overlay-inner {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    align-items: center;
    max-width: 1000px;
    padding: 5rem 1.75rem 3rem;
    width: 100%;
}
@media (min-width: 768px) {
    .bl-overlay-inner {
        grid-template-columns: 1fr 1fr;
        gap: 3rem;
        padding: 4rem 2rem;
    }
}

.bl-overlay-nav {
    list-style: none;
    padding: 0;
    margin: 0;
    text-align: left;
}
.bl-overlay-nav li {
    padding: .15rem 0;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
}
.bl-overlay-nav li:last-child { border-bottom: 0; }

.bl-overlay-nav a {
    font-size: clamp(1.6rem, 4.5vw, 2.4rem);
    font-weight: 600;
    color: rgba(255, 255, 255, .92);
    letter-spacing: -.02em;
    display: flex;
    align-items: center;
    gap: .4rem;
    padding: .3rem 0;
    white-space: nowrap;
    transition: color .25s ease;
}
.bl-overlay-nav a::after {
    content: "→";
    font-weight: 400;
    color: var(--bl-coral);
    opacity: 0;
    transform: translateX(-10px);
    transition: opacity .25s ease, transform .25s ease;
}
.bl-overlay-nav a:hover,
.bl-overlay-nav a:focus-visible,
.bl-overlay-nav a.active { color: var(--bl-coral); }
.bl-overlay-nav a:hover::after,
.bl-overlay-nav a:focus-visible::after,
.bl-overlay-nav a.active::after {
    opacity: 1;
    transform: translateX(0);
}

@media (min-width: 768px) {
    .bl-overlay-nav { text-align: right; }
    .bl-overlay-nav a { justify-content: flex-end; }
}

/* Grupo "Ferramentas" — rótulo + itens secundários */
.bl-overlay-group {
    border-bottom: 0 !important;
    margin-top: 1.5rem;
    padding-top: .75rem;
    font-size: .8rem;
    font-weight: 700;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--bl-mint);
    border-top: 1px solid rgba(255, 255, 255, .14);
}
.bl-overlay-tool a {
    font-size: clamp(1.05rem, 2.8vw, 1.5rem);
    font-weight: 500;
    color: rgba(255, 255, 255, .78);
}
.bl-overlay-tool a:hover,
.bl-overlay-tool a:focus-visible,
.bl-overlay-tool a.active { color: var(--bl-coral); }

.bl-overlay-cta {
    text-align: left;
    margin-top: 1.5rem;
}
@media (min-width: 768px) {
    .bl-overlay-cta { text-align: right; margin-top: 2rem; }
}

.bl-overlay-info {
    border-top: 1px solid rgba(255, 255, 255, .15);
    padding-top: 2rem;
}
@media (min-width: 768px) {
    .bl-overlay-info {
        border-top: 0;
        border-left: 1px solid rgba(255, 255, 255, .25);
        padding-top: 0;
        padding-left: 2.5rem;
    }
}
.bl-overlay-info .bl-overlay-brand img { height: 72px; width: auto; }
@media (min-width: 768px) {
    .bl-overlay-info .bl-overlay-brand img { height: 100px; }
}
.bl-overlay-info p, .bl-overlay-info address {
    color: rgba(255, 255, 255, .85);
    margin: .5rem 0 0;
    font-style: normal;
}
.bl-overlay-info a { color: #fff; }
.bl-overlay-info .bl-social {
    background: rgba(255, 255, 255, .12);
    color: #fff !important;
    backdrop-filter: blur(4px);
}
.bl-overlay-info .bl-social:hover {
    background: var(--bl-mint);
    transform: translateY(-2px);
}

/* Entrada escalonada dos itens */
.bl-overlay.open .bl-overlay-nav li,
.bl-overlay.open .bl-overlay-cta,
.bl-overlay.open .bl-overlay-info {
    animation: blOverlayItemIn .55s cubic-bezier(.2, .8, .2, 1) backwards;
}
.bl-overlay.open .bl-overlay-nav li:nth-child(1) { animation-delay: .08s; }
.bl-overlay.open .bl-overlay-nav li:nth-child(2) { animation-delay: .15s; }
.bl-overlay.open .bl-overlay-nav li:nth-child(3) { animation-delay: .22s; }
.bl-overlay.open .bl-overlay-nav li:nth-child(4) { animation-delay: .29s; }
.bl-overlay.open .bl-overlay-nav li:nth-child(5) { animation-delay: .36s; }
.bl-overlay.open .bl-overlay-nav li:nth-child(6) { animation-delay: .43s; }
.bl-overlay.open .bl-overlay-nav li:nth-child(7) { animation-delay: .50s; }
.bl-overlay.open .bl-overlay-nav li:nth-child(8) { animation-delay: .57s; }
.bl-overlay.open .bl-overlay-nav li:nth-child(9) { animation-delay: .64s; }
.bl-overlay.open .bl-overlay-cta                 { animation-delay: .70s; }
.bl-overlay.open .bl-overlay-info                { animation-delay: .76s; }

@keyframes blOverlayItemIn {
    from { opacity: 0; transform: translateY(16px); }
    to   { opacity: 1; transform: translateY(0); }
}

body.overlay-open { overflow: hidden; }

/* -------------- BARRA CTA MOBILE -------------- */
.bl-mobile-cta {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1040;
    display: flex;
    gap: .5rem;
    padding: .55rem .75rem calc(.55rem + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, .94);
    backdrop-filter: saturate(180%) blur(12px);
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    border-top: 1px solid var(--bl-border);
    box-shadow: 0 -6px 24px rgba(0, 0, 0, .07);
    transform: translateY(120%);
    opacity: 0;
    pointer-events: none;
    transition: transform .3s ease, opacity .3s ease;
}
.bl-mobile-cta.is-visible {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}
.bl-mobile-cta a,
.bl-mobile-cta button {
    font-family: var(--bl-font-mono);
    font-weight: 600;
    font-size: .95rem;
    border-radius: var(--bl-radius-sm);
    padding: .7rem 1rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    border: 1.5px solid var(--bl-indigo);
}
.bl-mobile-cta-call {
    color: var(--bl-indigo);
    background: #fff;
    flex: 0 0 auto;
}
.bl-mobile-cta-call span { display: none; }
@media (min-width: 400px) { .bl-mobile-cta-call span { display: inline; } }
.bl-mobile-cta-main {
    color: #fff;
    background: var(--bl-indigo);
    flex: 1 1 auto;
}
.bl-mobile-cta-main:active { background: var(--bl-indigo-dark); }
body.overlay-open .bl-mobile-cta { display: none; }

/* -------------- TOASTS -------------- */
.bl-toasts { z-index: 1090; }
.bl-toasts .toast {
    font-family: var(--bl-font-sans);
    border: 0;
    border-radius: var(--bl-radius);
    box-shadow: var(--bl-shadow);
    overflow: hidden;
}
.bl-toasts .toast .toast-body {
    display: flex;
    align-items: flex-start;
    gap: .6rem;
    padding: 1rem 1.1rem;
    font-size: .92rem;
    line-height: 1.5;
}
.bl-toasts .toast .toast-body i { font-size: 1.15rem; flex-shrink: 0; margin-top: .05rem; }
.bl-toast-success { background: #ecfdf5; color: #065f46; }
.bl-toast-success i { color: var(--bl-mint-dark); }
.bl-toast-danger  { background: #fef2f2; color: #991b1b; }
.bl-toast-danger i  { color: #dc3545; }
.bl-toast-warning { background: #fffbeb; color: #92400e; }
.bl-toast-warning i { color: #d97706; }
@media (max-width: 991.98px) {
    body { padding-bottom: 66px; }
}

/* -------------- HERO -------------- */
.bl-hero {
    background:
        radial-gradient(900px 500px at 12% 18%, rgba(255, 255, 255, .55), transparent 60%),
        radial-gradient(700px 400px at 88% 82%, rgba(244, 144, 166, .12), transparent 60%),
        var(--bl-sand);
    padding: 4rem 0 7rem;
    position: relative;
    overflow: hidden;
    min-height: 100vh;
    min-height: 100svh;
    min-height: 100dvh;
    display: flex;
    align-items: center;
}
.bl-hero > .container { position: relative; z-index: 2; }

.bl-hero-title {
    font-size: clamp(2.1rem, 4.8vw, 3.6rem);
    font-weight: 700;
    line-height: 1.1;
    margin: 0 0 1.25rem;
    color: var(--bl-text);
    letter-spacing: -.02em;
}
.bl-hero-sub {
    font-size: clamp(1rem, 1.4vw, 1.15rem);
    color: var(--bl-indigo);
    max-width: 540px;
    line-height: 1.6;
    font-weight: 500;
    margin: 0;
}
.bl-hero-cta {
    display: flex;
    flex-wrap: wrap;
    gap: .85rem;
    margin-top: 2rem;
}
.bl-hero-cta .btn { padding: .85rem 2rem; }
@media (max-width: 575.98px) {
    .bl-hero-cta { gap: .65rem; }
    .bl-hero-cta .btn { flex: 1 1 100%; text-align: center; }
}

/* Seta scroll-down: centrada no fundo do hero */
.bl-hero-down {
    position: absolute;
    bottom: 2.5rem;
    left: 50%;
    transform: translateX(-50%);
    color: var(--bl-coral);
    font-size: 2.25rem;
    line-height: 1;
    text-decoration: none;
    width: 56px;
    height: 56px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    z-index: 3;
    animation: blBounce 2.4s ease-in-out infinite;
    transition: color .2s, background .2s;
}
.bl-hero-down:hover {
    color: #fff;
    background: var(--bl-coral);
}

@keyframes blBounce {
    0%, 100% { transform: translateX(-50%) translateY(0); }
    50%      { transform: translateX(-50%) translateY(8px); }
}

/* Arte do hero — logo "B" branco sobre o sand */
.bl-hero-art {
    position: absolute;
    top: 0;
    right: -4%;
    bottom: 0;
    width: 55%;
    pointer-events: none;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    z-index: 1;
}
.bl-hero-art img {
    height: 88%;
    width: auto;
    max-width: 100%;
    object-fit: contain;
    object-position: right center;
}

/* Mobile: hero continua a ocupar o ecrã todo, logo como background subtil */
@media (max-width: 991.98px) {
    .bl-hero { padding: 5rem 0 7rem; }
    .bl-hero-art {
        right: -25%;
        width: 110%;
        opacity: .45;
    }
    .bl-hero-art img { height: 70%; }
}
@media (max-width: 575.98px) {
    .bl-hero-art {
        right: -35%;
        opacity: .35;
    }
    .bl-hero-art img { height: 60%; }
    .bl-hero-down { bottom: 1.75rem; }
}

/* -------------- PAGE HEADER (interior) -------------- */
.bl-page-header {
    background:
        radial-gradient(700px 350px at 50% 0%, rgba(255, 255, 255, .55), transparent 60%),
        var(--bl-sand);
    padding: 9rem 0 5rem;
    text-align: center;
    position: relative;
    overflow: hidden;
}
/* Variações por página — hierarquia visual entre secções */
.bl-page-header--solucoes {
    background:
        radial-gradient(680px 340px at 50% 0%, rgba(255, 255, 255, .5), transparent 60%),
        radial-gradient(520px 300px at 88% 12%, rgba(107, 92, 231, .16), transparent 60%),
        var(--bl-sand);
}
.bl-page-header--contactos {
    background:
        radial-gradient(680px 340px at 50% 0%, rgba(255, 255, 255, .5), transparent 60%),
        radial-gradient(520px 300px at 12% 12%, rgba(93, 201, 168, .18), transparent 60%),
        var(--bl-sand);
}
.bl-page-header--privacidade {
    background:
        radial-gradient(700px 350px at 50% 0%, rgba(255, 255, 255, .6), transparent 60%),
        var(--bl-bg-soft);
}
.bl-page-header--privacidade .bl-page-title,
.bl-page-header--privacidade .bl-eyebrow { position: relative; z-index: 1; }
.bl-page-header--calendario {
    background:
        radial-gradient(680px 340px at 50% 0%, rgba(255, 255, 255, .5), transparent 60%),
        radial-gradient(540px 300px at 85% 15%, rgba(244, 144, 166, .20), transparent 60%),
        var(--bl-sand);
}

/* -------------- CALENDÁRIO FISCAL — página -------------- */
.bl-cal-group { margin-bottom: 2.5rem; }
.bl-cal-month {
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--bl-text);
    margin: 0 0 1rem;
    padding-bottom: .5rem;
    border-bottom: 2px solid var(--bl-border);
}
.bl-cal-month span { color: var(--bl-text-muted); font-weight: 500; }

.bl-cal-item {
    display: flex;
    align-items: stretch;
    gap: 1.1rem;
    background: #fff;
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 1.1rem 1.25rem;
    margin-bottom: .75rem;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.bl-cal-item:hover {
    transform: translateY(-2px);
    box-shadow: 0 12px 28px rgba(15, 23, 42, .07);
}
.bl-cal-item.is-urgent {
    border-color: transparent;
    box-shadow: inset 3px 0 0 var(--bl-coral), 0 2px 12px rgba(244, 144, 166, .12);
}
.bl-cal-date {
    flex: 0 0 60px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    background: var(--bl-bg-soft);
    border-radius: var(--bl-radius-sm);
    padding: .4rem 0;
}
.bl-cal-item.is-urgent .bl-cal-date { background: rgba(244, 144, 166, .14); }
.bl-cal-day { font-size: 1.5rem; font-weight: 800; line-height: 1; color: var(--bl-indigo); }
.bl-cal-item.is-urgent .bl-cal-day { color: var(--bl-coral-dark); }
.bl-cal-mon {
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--bl-text-muted);
    margin-top: .15rem;
}
.bl-cal-body { flex: 1 1 auto; min-width: 0; }
.bl-cal-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: .35rem; }
.bl-cal-cat, .bl-cal-perio {
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: .18rem .5rem;
    border-radius: 999px;
}
.bl-cal-cat { background: var(--bl-indigo); color: #fff; }
.bl-cal-perio { background: var(--bl-bg-soft); color: var(--bl-text-muted); }
.bl-cal-title { font-size: 1rem; font-weight: 600; margin: 0 0 .2rem; color: var(--bl-text); }
.bl-cal-desc { font-size: .88rem; color: var(--bl-text-muted); margin: 0; line-height: 1.55; }
.bl-cal-count {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    text-align: right;
    gap: .25rem;
}
.bl-cal-count-badge {
    font-size: .78rem;
    font-weight: 700;
    color: var(--bl-mint-dark);
    white-space: nowrap;
}
.bl-cal-item.is-urgent .bl-cal-count-badge { color: var(--bl-coral-dark); }
.bl-cal-count time { font-size: .8rem; color: var(--bl-text-muted); }
.bl-cal-disclaimer {
    display: flex;
    gap: .55rem;
    align-items: flex-start;
    font-size: .82rem;
    color: var(--bl-text-muted);
    background: var(--bl-bg-soft);
    border-radius: var(--bl-radius-sm);
    padding: .9rem 1.1rem;
    margin-top: 1.5rem;
}
.bl-cal-disclaimer i { color: var(--bl-indigo); margin-top: .1rem; }

@media (max-width: 575.98px) {
    .bl-cal-item { flex-wrap: wrap; gap: .75rem; }
    .bl-cal-count {
        flex-direction: row;
        align-items: center;
        gap: .6rem;
        width: 100%;
        justify-content: space-between;
        text-align: left;
        border-top: 1px solid var(--bl-border);
        padding-top: .6rem;
    }
}

/* -------------- CALENDÁRIO FISCAL — widget home -------------- */
.bl-cal-widget {
    display: grid;
    grid-template-columns: 1fr;
    gap: .65rem;
}
@media (min-width: 768px) {
    .bl-cal-widget { grid-template-columns: 1fr 1fr; }
}
.bl-cal-mini {
    display: flex;
    align-items: center;
    gap: .9rem;
    background: var(--bl-bg-soft);
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: .9rem 1rem;
    text-decoration: none;
    transition: transform .2s ease, box-shadow .2s ease;
}
.bl-cal-mini:hover { transform: translateY(-2px); box-shadow: var(--bl-shadow-sm); }
.bl-cal-mini.is-urgent { box-shadow: inset 3px 0 0 var(--bl-coral); }
.bl-cal-mini-date {
    flex: 0 0 48px;
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
}
.bl-cal-mini-date strong { font-size: 1.35rem; font-weight: 800; color: var(--bl-indigo); }
.bl-cal-mini.is-urgent .bl-cal-mini-date strong { color: var(--bl-coral-dark); }
.bl-cal-mini-date small {
    font-size: .68rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--bl-text-muted);
    margin-top: .15rem;
}
.bl-cal-mini-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: .2rem; }
.bl-cal-mini-cat {
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--bl-mint-dark);
}
.bl-cal-mini-title {
    font-size: .9rem;
    font-weight: 600;
    color: var(--bl-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.bl-cal-mini-count {
    flex: 0 0 auto;
    font-size: .74rem;
    font-weight: 700;
    color: var(--bl-text-muted);
    white-space: nowrap;
}

/* -------------- CALCULADORA DE SALÁRIO -------------- */
.bl-page-header--calculadora {
    background:
        radial-gradient(680px 340px at 50% 0%, rgba(255, 255, 255, .5), transparent 60%),
        radial-gradient(540px 300px at 15% 15%, rgba(93, 201, 168, .20), transparent 60%),
        var(--bl-sand);
}
.bl-calc-form {
    background: #fff;
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 1.75rem 1.5rem;
    box-shadow: var(--bl-shadow-sm);
}
.bl-calc-form .form-label { font-weight: 600; font-size: .85rem; }
.bl-calc-form .form-control,
.bl-calc-form .form-select {
    font-family: var(--bl-font-sans);
    border-radius: var(--bl-radius-sm);
    border-color: var(--bl-border);
}
.bl-calc-form .form-control:focus,
.bl-calc-form .form-select:focus {
    border-color: var(--bl-indigo-light);
    box-shadow: 0 0 0 .2rem rgba(107, 92, 231, .15);
}
.bl-calc-empty {
    height: 100%;
    min-height: 240px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    text-align: center;
    color: var(--bl-text-muted);
    background: var(--bl-bg-soft);
    border-radius: var(--bl-radius);
    padding: 2rem;
}
.bl-calc-empty i { font-size: 2.5rem; color: var(--bl-indigo); opacity: .6; }
.bl-calc-empty p { margin: 0; max-width: 300px; }

.bl-calc-highlight {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
.bl-calc-highlight > div {
    background:
        radial-gradient(400px 200px at 80% 10%, rgba(244,144,166,.18), transparent 60%),
        linear-gradient(135deg, var(--bl-indigo-dark), var(--bl-indigo));
    color: #fff;
    border-radius: var(--bl-radius);
    padding: 1.25rem 1.35rem;
}
.bl-calc-hl-label {
    display: block;
    font-size: .78rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    opacity: .85;
}
.bl-calc-hl-value {
    display: block;
    font-size: clamp(1.35rem, 3.4vw, 1.85rem);
    font-weight: 800;
    margin-top: .35rem;
    line-height: 1.1;
}
.bl-calc-hl-alt { color: var(--bl-sand); }

.bl-calc-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 576px) { .bl-calc-grid { grid-template-columns: 1fr 1fr; } }
.bl-calc-card {
    background: #fff;
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 1.25rem 1.3rem;
}
.bl-calc-card h3 {
    font-size: .82rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--bl-mint-dark);
    margin: 0 0 .85rem;
}
.bl-calc-table { width: 100%; font-size: .9rem; }
.bl-calc-table td { padding: .42rem 0; vertical-align: top; }
.bl-calc-table td:last-child {
    text-align: right;
    font-weight: 600;
    white-space: nowrap;
    padding-left: .75rem;
}
.bl-calc-table tr + tr td { border-top: 1px solid var(--bl-border); }

/* algarismos tabulares — alinhamento vertical dos valores monetários */
.bl-calc-table td:last-child,
.bl-calc-hl-value,
.bl-stat-number,
.bl-emp-liquido strong { font-variant-numeric: tabular-nums; }
.bl-calc-table td.bl-neg { color: #b91c1c; }
.bl-calc-source {
    margin-bottom: 1rem;
}
.bl-calc-source span {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    font-size: .8rem;
    font-weight: 600;
    padding: .4rem .8rem;
    border-radius: 999px;
}
.bl-calc-source-ok  { background: #ecfdf5; color: #065f46; }
.bl-calc-source-est { background: #fffbeb; color: #92400e; }

/* -------------- SIMULADOR ENI vs SOCIEDADE -------------- */
.bl-emp-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    margin-bottom: 1.25rem;
}
@media (min-width: 768px) { .bl-emp-grid { grid-template-columns: repeat(3, 1fr); } }
.bl-emp-card {
    position: relative;
    background: #fff;
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 1.4rem 1.25rem 1.25rem;
    display: flex;
    flex-direction: column;
}
.bl-emp-card.is-best {
    border-color: transparent;
    box-shadow: 0 0 0 2px var(--bl-mint), 0 14px 30px rgba(93, 201, 168, .15);
}
.bl-emp-badge {
    position: absolute;
    top: -.7rem;
    left: 1.25rem;
    background: var(--bl-mint-dark);
    color: #fff;
    font-size: .68rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    padding: .25rem .6rem;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    gap: .3rem;
}
.bl-emp-card h3 {
    font-size: .95rem;
    font-weight: 700;
    color: var(--bl-indigo);
    margin: 0 0 .75rem;
    min-height: 2.4em;
}
.bl-emp-liquido {
    background: var(--bl-bg-soft);
    border-radius: var(--bl-radius-sm);
    padding: .75rem .9rem;
    margin-bottom: .85rem;
}
.bl-emp-liquido span {
    display: block;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    color: var(--bl-text-muted);
}
.bl-emp-liquido strong {
    display: block;
    font-size: 1.45rem;
    font-weight: 800;
    color: var(--bl-text);
    margin-top: .15rem;
}
.bl-emp-card.is-best .bl-emp-liquido { background: rgba(93, 201, 168, .12); }
.bl-emp-card.is-best .bl-emp-liquido strong { color: var(--bl-mint-dark); }
.bl-emp-card .bl-calc-table { font-size: .85rem; }
.bl-emp-nota {
    margin: .85rem 0 0;
    font-size: .78rem;
    color: var(--bl-text-muted);
    line-height: 1.5;
}

.bl-calc-note {
    display: inline-block;
    font-size: .68rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--bl-mint-dark);
    background: rgba(93, 201, 168, .14);
    padding: .1rem .4rem;
    border-radius: 999px;
    margin-left: .35rem;
}
.bl-calc-table .bl-calc-total td {
    font-weight: 800;
    color: var(--bl-indigo);
    border-top: 2px solid var(--bl-indigo) !important;
}
.bl-calc-disclaimer {
    position: relative;
    font-size: .8rem;
    color: var(--bl-text-muted);
    background: var(--bl-bg-soft);
    border-radius: var(--bl-radius-sm);
    padding: .9rem 1.1rem .9rem 2.6rem;
    margin-top: 1.25rem;
    line-height: 1.6;
}
.bl-calc-disclaimer i {
    position: absolute;
    left: 1.05rem;
    top: 1rem;
    color: var(--bl-indigo);
}
.bl-calc-disclaimer a { color: var(--bl-indigo); font-weight: 600; }

/* -------------- EXPORTAR (calculadoras) -------------- */
.bl-export {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
    margin-bottom: 1rem;
}
.bl-export .btn {
    padding: .4rem .85rem;
    font-size: .82rem;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

/* -------------- SUBSCREVER CALENDÁRIO -------------- */
/* -------------- FILTROS DO CALENDÁRIO -------------- */
.bl-cal-filtros {
    display: flex;
    flex-direction: column;
    gap: .6rem;
    margin: 0 0 2rem;
}
.bl-cal-fgroup {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .45rem;
}
.bl-cal-flabel {
    font-family: var(--bl-font-mono);
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .08em;
    color: var(--bl-text-muted);
    margin-right: .35rem;
    min-width: 92px;
}
.bl-cal-pill {
    font-family: var(--bl-font-sans);
    font-size: .82rem;
    font-weight: 500;
    color: var(--bl-text);
    background: #fff;
    border: 1px solid var(--bl-border);
    border-radius: 999px;
    padding: .35rem .85rem;
    cursor: pointer;
    transition: background .15s, border-color .15s, color .15s;
}
.bl-cal-pill:hover { border-color: var(--bl-indigo-light); }
.bl-cal-pill.is-on {
    background: var(--bl-indigo);
    border-color: var(--bl-indigo);
    color: #fff;
}
.bl-cal-fclear {
    font-size: .8rem;
    color: var(--bl-indigo);
    text-decoration: underline;
    margin-left: .35rem;
}
.bl-cal-vazio { padding: 2rem 0; }

.bl-cal-sub {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    background: var(--bl-bg-soft);
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 1.1rem 1.25rem;
    margin-bottom: 2rem;
}
.bl-cal-sub-txt strong { display: block; font-size: .98rem; }
.bl-cal-sub-txt strong i { color: var(--bl-coral); margin-right: .3rem; }
.bl-cal-sub-txt span { font-size: .85rem; color: var(--bl-text-muted); }
.bl-cal-sub-actions {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem;
}
.bl-cal-sub-actions .btn {
    padding: .45rem .9rem;
    font-size: .82rem;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
}

/* -------------- FORM NOSCRIPT -------------- */
.bl-noscript-form {
    background: var(--bl-bg-soft);
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 1.25rem;
}

/* -------------- IMPRESSÃO / PDF -------------- */
/* cabeçalho/rodapé só visíveis na impressão */
.bl-print-head, .bl-print-foot { display: none; }

@media print {
    /* esconder tudo, mostrar só a área de resultados */
    body > * { display: none !important; }
    body > main { display: block !important; }
    body > .bl-print-head, body > .bl-print-foot { display: block !important; }

    /* dentro do main, esconder cabeçalho da página, onda, formulário e o CTA final */
    main .bl-page-header, main .bl-wave, .bl-calc-form,
    main > section:last-of-type,
    .bl-export, .bl-calc-empty, .bl-cal-sub, .bl-card-link {
        display: none !important;
    }

    body { padding: 0 !important; background: #fff !important; color: #000 !important; }
    main { margin: 26mm 0 16mm !important; }
    .bl-section, .bl-section-alt { padding: 0 !important; background: #fff !important; }
    .container { max-width: 100% !important; }

    .bl-print-head {
        position: fixed; top: 0; left: 0; right: 0;
        text-align: center; padding: 6mm 0 3mm;
        border-bottom: 1px solid #ddd;
    }
    .bl-print-head img { height: 30px; width: auto; }
    .bl-print-foot {
        position: fixed; bottom: 0; left: 0; right: 0;
        text-align: center; padding: 3mm 0;
        font-size: .72rem; color: #666;
        border-top: 1px solid #ddd;
    }

    .bl-calc-card, .bl-emp-card, .bl-calc-highlight > div, .bl-cal-item {
        box-shadow: none !important;
        border: 1px solid #ccc !important;
        break-inside: avoid;
    }
    a[href]::after { content: ""; }
    @page { margin: 12mm; }
}
@media (max-width: 400px) {
    .bl-calc-highlight { grid-template-columns: 1fr; }
}
.bl-page-title {
    font-size: clamp(2rem, 4vw, 2.75rem);
    margin: 1rem 0;
    font-weight: 700;
    letter-spacing: -.02em;
    position: relative;
    z-index: 1;
}
.bl-page-sub {
    color: var(--bl-indigo);
    max-width: 640px;
    margin: 0 auto;
    font-size: clamp(.98rem, 1.3vw, 1.1rem);
    font-weight: 500;
    line-height: 1.6;
    position: relative;
    z-index: 1;
}

/* -------------- FAIXA DE CREDIBILIDADE -------------- */
.bl-trust {
    background: var(--bl-bg);
    padding: 2.25rem 0;
    border-bottom: 1px solid var(--bl-border);
}
.bl-trust-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .55rem;
    color: var(--bl-text);
    font-size: .86rem;
    font-weight: 500;
    line-height: 1.35;
}
.bl-trust-item i {
    font-size: 1.7rem;
    color: var(--bl-indigo);
}
@media (min-width: 992px) {
    .bl-trust-item {
        flex-direction: row;
        text-align: left;
        justify-content: center;
        gap: .7rem;
    }
    .bl-trust-item i { font-size: 1.5rem; }
}

/* -------------- CARDS DE SOLUÇÃO -------------- */
.bl-card-solucao {
    background: var(--bl-bg);
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    overflow: hidden;
    transition: transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s ease, border-color .3s ease;
    height: 100%;
    display: flex;
    flex-direction: column;
    text-align: center;
}
.bl-card-solucao:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .08);
    border-color: transparent;
}
.bl-card-art {
    aspect-ratio: 4/3;
    background: var(--bl-bg-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    transition: transform .4s ease;
}
.bl-card-solucao:hover .bl-card-art { transform: scale(1.03); }
.bl-card-art img { width: 100%; height: 100%; object-fit: cover; }
.bl-card-art-svg { width: 100%; height: 100%; }
.bl-card-body { padding: 1.75rem 1.5rem 2rem; }
.bl-card-solucao h3 {
    font-size: 1.2rem;
    color: var(--bl-indigo);
    margin: 0 0 .75rem;
    font-weight: 600;
    letter-spacing: -.01em;
}
.bl-card-solucao p {
    color: var(--bl-text);
    flex-grow: 1;
    line-height: 1.7;
    font-size: .92rem;
    margin: 0;
}
.bl-card-link {
    color: var(--bl-indigo);
    font-weight: 600;
    margin-top: 1rem;
    padding-top: 1rem;
    align-self: center;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    transition: gap .2s;
}
.bl-card-link:hover { gap: .7rem; color: var(--bl-indigo-dark); }

/* -------------- CARTÕES DE FERRAMENTAS (home) -------------- */
.bl-tool-card {
    display: flex;
    flex-direction: column;
    background: var(--bl-bg);
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 1.75rem 1.6rem 1.5rem;
    text-decoration: none;
    color: var(--bl-text);
    transition: transform .3s cubic-bezier(.2,.8,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.bl-tool-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 40px rgba(15, 23, 42, .08);
    border-color: transparent;
}
.bl-tool-icon {
    width: 52px; height: 52px;
    border-radius: 14px;
    background: var(--bl-bg-soft);
    color: var(--bl-indigo);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}
.bl-tool-card h3 {
    font-size: 1.15rem;
    font-weight: 600;
    color: var(--bl-indigo);
    margin: 0 0 .5rem;
}
.bl-tool-card p {
    font-size: .92rem;
    color: var(--bl-text);
    line-height: 1.6;
    margin: 0;
}
.bl-tool-next {
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-top: 1rem;
    padding: .7rem .85rem;
    background: var(--bl-bg-soft);
    border-radius: var(--bl-radius-sm);
}
.bl-tool-next-d {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    line-height: 1;
}
.bl-tool-next-d strong { font-size: 1.2rem; font-weight: 800; color: var(--bl-coral-dark); }
.bl-tool-next-d small {
    font-size: .62rem; text-transform: uppercase; letter-spacing: .05em;
    color: var(--bl-text-muted); margin-top: .15rem;
}
.bl-tool-next-t {
    font-size: .8rem;
    color: var(--bl-text);
    line-height: 1.35;
}
.bl-tool-next-t small {
    display: block;
    color: var(--bl-mint-dark);
    font-weight: 600;
    margin-top: .15rem;
}
.bl-tool-card .bl-card-link { margin-top: 1.25rem; }

/* -------------- BLOG -------------- */
.bl-post-card {
    background: var(--bl-bg);
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 1.5rem 1.5rem 1.35rem;
    color: var(--bl-text);
    transition: transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s ease, border-color .25s ease;
}
.bl-post-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 16px 36px rgba(15, 23, 42, .08);
    border-color: transparent;
}
.bl-post-cat {
    align-self: flex-start;
    font-family: var(--bl-font-mono);
    font-size: .68rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--bl-mint-dark);
    background: rgba(93, 201, 168, .12);
    padding: .22rem .6rem;
    border-radius: 999px;
    margin-bottom: .75rem;
}
.bl-post-title {
    font-family: var(--bl-font-sans);
    font-size: 1.2rem;
    font-weight: 700;
    line-height: 1.3;
    color: var(--bl-text);
    margin: 0 0 .5rem;
}
.bl-post-resumo {
    font-size: .92rem;
    color: var(--bl-text-muted);
    line-height: 1.6;
    margin: 0 0 1rem;
    flex-grow: 1;
}
.bl-post-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    font-size: .82rem;
    color: var(--bl-text-muted);
}
.bl-post-meta .bl-card-link { margin: 0; padding: 0; align-self: auto; }
.bl-post-byline {
    color: var(--bl-indigo);
    font-size: .9rem;
    font-weight: 500;
    margin: .25rem 0 0;
    position: relative;
    z-index: 1;
}

/* corpo do artigo (prosa) */
.bl-post-body {
    font-size: 1.05rem;
    line-height: 1.75;
    color: var(--bl-text);
}
.bl-post-body > :first-child { margin-top: 0; }
.bl-post-body h2 {
    font-family: var(--bl-font-sans);
    font-size: 1.4rem;
    font-weight: 700;
    line-height: 1.3;
    margin: 2.2rem 0 .75rem;
}
.bl-post-body h3 {
    font-family: var(--bl-font-sans);
    font-size: 1.15rem;
    font-weight: 700;
    margin: 1.75rem 0 .6rem;
}
.bl-post-body p { margin: 0 0 1.1rem; }
.bl-post-body ul,
.bl-post-body ol { margin: 0 0 1.2rem; padding-left: 1.3rem; }
.bl-post-body li { margin: .35rem 0; }
.bl-post-body a {
    color: var(--bl-indigo);
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 2px;
}
.bl-post-body a:hover { color: var(--bl-indigo-dark); }
.bl-post-body img { max-width: 100%; height: auto; border-radius: var(--bl-radius); }
.bl-post-body blockquote {
    margin: 1.5rem 0;
    padding: .75rem 1.25rem;
    border-left: 3px solid var(--bl-mint);
    color: var(--bl-text-muted);
}
.bl-post-foot {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 2.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bl-border);
}
.bl-post-rel { margin-top: 3.5rem; }
.bl-post-rel .bl-post-title { font-size: 1.02rem; }

/* -------------- SOLUÇÃO DETALHE (página /solucoes) -------------- */
.bl-solucao-detalhe { padding: 5rem 0; }
.bl-solucao-art {
    aspect-ratio: 1 / 1;
    border-radius: var(--bl-radius);
    background: var(--bl-bg-soft);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.bl-solucao-art img { width: 100%; height: 100%; object-fit: cover; }

/* -------------- FEATURE / PORQUE ESCOLHER -------------- */
.bl-feature-title {
    font-family: var(--bl-font-sans);
    font-size: clamp(1.35rem, 2vw, 1.6rem);
    color: var(--bl-text);
    margin-bottom: .9rem;
    font-weight: 700;
    letter-spacing: -.01em;
    line-height: 1.25;
}
.bl-feature-art {
    aspect-ratio: 16 / 10;
    max-height: 280px;
    border-radius: var(--bl-radius);
    background:
        radial-gradient(420px 280px at 80% 20%, rgba(93, 201, 168, .10), transparent 60%),
        linear-gradient(150deg, #ffffff, #f3f1fb);
    border: 1px solid rgba(107, 92, 231, .14);
    box-shadow: var(--bl-shadow-sm);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 1.5rem 2rem;
    overflow: hidden;
}
.bl-feature-art svg {
    width: 100%;
    height: auto;
    max-height: 100%;
}
.bl-feature-row {
    display: flex;
    align-items: center;
    gap: 1rem;
}
.bl-feature-row .dot {
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--bl-bg-soft);
    flex-shrink: 0;
}
.bl-feature-row .bar {
    height: 8px;
    background: var(--bl-indigo);
    border-radius: 4px;
    flex-grow: 1;
}
.bl-feature-row .bar.short { max-width: 50%; }
.bl-feature-row .bar.muted { background: var(--bl-bg-soft); }
.bl-feature-row .block {
    width: 28px; height: 28px;
    background: var(--bl-bg-soft);
    border-radius: 4px;
}
.bl-feature-row .block.fill { background: var(--bl-indigo); }

/* -------------- BULLETS -------------- */
.bl-bullets { list-style: none; padding: 0; margin: 0; }
.bl-bullets li {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    padding: .35rem 0;
    color: var(--bl-text);
    font-size: .95rem;
}
.bl-bullets li::before {
    content: "";
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--bl-mint);
    margin-top: .55rem;
    flex-shrink: 0;
}
.bl-bullets-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0 1.5rem;
}
@media (min-width: 768px) {
    .bl-bullets-grid { grid-template-columns: 1fr 1fr; }
}

/* -------------- DEPOIMENTOS -------------- */
.bl-depoimento {
    background: #fff;
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius);
    padding: 2.5rem 1.75rem 2rem;
    box-shadow: 0 2px 12px rgba(15, 23, 42, .04);
    height: 100%;
    display: flex;
    flex-direction: column;
    position: relative;
    transition: transform .25s ease, box-shadow .25s ease;
}
.bl-depoimento:hover {
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(15, 23, 42, .08);
}
.bl-depoimento-quote {
    color: var(--bl-coral);
    font-size: 4rem;
    line-height: .75;
    margin-bottom: 1rem;
    font-family: Georgia, "Times New Roman", serif;
    font-weight: 700;
    display: block;
    height: 1.5rem;
}
.bl-depoimento-texto {
    color: var(--bl-text);
    font-size: .92rem;
    line-height: 1.7;
    flex-grow: 1;
    margin: 1rem 0 1.5rem;
}
.bl-depoimento-nome {
    color: var(--bl-mint-dark);
    font-weight: 600;
    margin: 0;
}
.bl-depoimento-cargo {
    color: var(--bl-indigo);
    font-size: .85rem;
    margin: .15rem 0 0;
}

/* -------------- STATS (mantida da versão anterior, com nova paleta) -------------- */
.bl-stats { padding: 4rem 0; }
.bl-stat-number {
    font-family: var(--bl-font-mono);
    font-weight: 700;
    font-size: clamp(2rem, 4vw, 3rem);
    color: var(--bl-indigo);
    line-height: 1;
}
.bl-stat-label {
    color: var(--bl-text-muted);
    margin-top: .5rem;
    font-size: .9rem;
}

/* -------------- CONTACTOS - LISTA -------------- */
.bl-contact-list { padding: 0; }
.bl-contact-list li {
    display: flex;
    gap: 1rem;
    padding: 1.25rem 0;
    border-bottom: 1px solid var(--bl-border);
}
.bl-contact-list li:last-child { border-bottom: 0; }
.bl-contact-list li i {
    width: 44px; height: 44px;
    background: var(--bl-bg-soft);
    color: var(--bl-indigo);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 1.1rem;
    flex-shrink: 0;
}
.bl-contact-list a { color: var(--bl-text); font-weight: 600; }
.bl-contact-list a:hover { color: var(--bl-indigo); }

.bl-map {
    border-radius: var(--bl-radius);
    overflow: hidden;
    box-shadow: var(--bl-shadow);
}
.bl-map iframe { display: block; width: 100%; height: 450px; border: 0; }

/* Façade — mapa só carrega ao clicar */
.bl-map-facade {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    width: 100%;
    min-height: 450px;
    padding: 2rem;
    border: 0;
    cursor: pointer;
    text-align: center;
    color: #fff;
    font-family: var(--bl-font-mono);
    background:
        radial-gradient(600px 300px at 80% 20%, rgba(244, 144, 166, .30), transparent 60%),
        radial-gradient(500px 250px at 15% 85%, rgba(93, 201, 168, .22), transparent 60%),
        linear-gradient(135deg, var(--bl-indigo-dark), var(--bl-indigo));
    transition: filter .2s ease;
}
.bl-map-facade:hover,
.bl-map-facade:focus-visible { filter: brightness(1.06); }
.bl-map-facade-pin {
    width: 64px;
    height: 64px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .14);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.9rem;
    color: var(--bl-coral);
}
.bl-map-facade-text strong { display: block; font-size: 1.05rem; }
.bl-map-facade-text span { color: rgba(255, 255, 255, .8); font-size: .92rem; }
.bl-map-facade-cta {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .6rem 1.4rem;
    border-radius: var(--bl-radius-sm);
    background: #fff;
    color: var(--bl-indigo);
    font-weight: 600;
    font-size: .95rem;
}
.bl-map-facade-note {
    font-size: .78rem;
    color: rgba(255, 255, 255, .65);
    max-width: 320px;
}

/* -------------- CTA FINAL -------------- */
.bl-cta-final {
    background:
        radial-gradient(600px 300px at 85% 20%, rgba(244, 144, 166, .35), transparent 60%),
        radial-gradient(500px 250px at 10% 85%, rgba(93, 201, 168, .25), transparent 60%),
        linear-gradient(135deg, var(--bl-indigo-dark), var(--bl-indigo));
    color: #fff;
    padding: 6rem 0;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.bl-cta-final::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(rgba(255, 255, 255, .06) 1px, transparent 1px);
    background-size: 24px 24px;
    pointer-events: none;
    opacity: .8;
}
.bl-cta-final > .container { position: relative; z-index: 1; }
.bl-cta-final-title {
    color: #fff;
    font-size: clamp(1.5rem, 2.6vw, 2.15rem);
    margin: 0 0 2rem;
    font-weight: 600;
    line-height: 1.3;
    letter-spacing: -.01em;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 2rem;
}
.bl-cta-final .btn { padding: .9rem 2.25rem; font-size: 1rem; }

/* -------------- FOOTER -------------- */
.bl-footer {
    background: #fff;
    color: var(--bl-text);
    padding: 4rem 0 2rem;
    border-top: 1px solid var(--bl-border);
}
.bl-footer .bl-footer-brand img { height: 64px; width: auto; }
.bl-footer .bl-footer-brand-text {
    font-weight: 500;
    color: var(--bl-text);
    margin-top: 1rem;
}
.bl-footer .bl-footer-brand-text strong { font-weight: 700; }

.bl-footer-title {
    color: var(--bl-mint-dark);
    font-weight: 600;
    margin-bottom: 1rem;
    font-size: .95rem;
}
.bl-footer-list { list-style: none; padding: 0; margin: 0; }
.bl-footer-list li { padding: .15rem 0; font-size: .92rem; }
.bl-footer-list a { color: var(--bl-text); }
.bl-footer-list a:hover { color: var(--bl-indigo); }
.bl-footer-list a.active { color: var(--bl-coral); }

.bl-footer address { font-style: normal; color: var(--bl-text); font-size: .92rem; line-height: 1.7; }

.bl-social {
    width: 32px; height: 32px;
    border-radius: 6px;
    background: var(--bl-mint);
    display: inline-flex; align-items: center; justify-content: center;
    color: #fff !important;
    transition: all .2s;
    margin-right: .35rem;
}
.bl-social:hover { background: var(--bl-mint-dark); transform: translateY(-1px); }

.bl-footer-bottom {
    margin-top: 3rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--bl-border);
    color: var(--bl-text-muted);
    font-size: .85rem;
}
.bl-footer-bottom a { color: var(--bl-text-muted); }

/* -------------- MODAL -------------- */
.bl-modal {
    border: 0;
    border-radius: var(--bl-radius);
    box-shadow: var(--bl-shadow-lg);
}
.bl-modal .modal-title {
    font-family: var(--bl-font-mono);
    font-weight: 700;
    font-size: 1.3rem;
    color: var(--bl-text);
}
.bl-modal .form-label {
    font-family: var(--bl-font-sans);
    font-weight: 600;
    font-size: .85rem;
    color: var(--bl-text);
}
.bl-modal .form-control,
.bl-modal .form-select {
    font-family: var(--bl-font-sans);
    border-radius: var(--bl-radius-sm);
    border-color: var(--bl-border);
    padding: .65rem .9rem;
    font-size: .95rem;
}
.bl-modal .form-control:focus,
.bl-modal .form-select:focus {
    border-color: var(--bl-indigo-light);
    box-shadow: 0 0 0 .2rem rgba(107, 92, 231, .15);
}
.bl-modal .form-control.is-invalid,
.bl-modal .form-select.is-invalid { border-color: #dc3545; }

#fc_feedback .alert {
    border-radius: var(--bl-radius-sm);
    margin: 0;
}

/* -------------- ACESSIBILIDADE -------------- */
:focus-visible {
    outline: 2px solid var(--bl-indigo);
    outline-offset: 2px;
    border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        animation-duration: .01ms !important;
        transition-duration: .01ms !important;
    }
}

/* -------------- RESPONSIVO -------------- */
@media (max-width: 991.98px) {
    .bl-section { padding: 4rem 0; }
    .bl-page-header { padding: 6rem 0 3.5rem; }
    .bl-cta-final { padding: 4rem 0; }
    .bl-footer { padding: 3rem 0 1.5rem; }
}
@media (max-width: 575.98px) {
    .bl-section { padding: 3rem 0; }
    .bl-card-body { padding: 1.25rem 1rem 1.5rem; }
    .bl-depoimento { padding: 2rem 1.25rem 1.5rem; }
}

/* -------------- SELEÇÃO -------------- */
::selection {
    background: var(--bl-indigo);
    color: #fff;
}

/* ==================== BACKOFFICE ==================== */
body.bl-admin {
    background: var(--bl-bg-soft);
    font-family: var(--bl-font-sans);
    color: var(--bl-text);
}
.bl-admin-wrap { max-width: 1000px; margin: 0 auto; padding: 1.5rem 1rem 4rem; }
.bl-admin-top {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between;
    gap: 1rem; padding: 1rem 0 1.25rem;
}
.bl-admin-top strong { font-family: var(--bl-font-mono); font-size: 1rem; }
.bl-admin-top nav { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; }
.bl-admin-card {
    background: #fff; border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius); padding: 1.75rem; margin-bottom: 1.25rem;
}
.bl-admin-card h1 { font-family: var(--bl-font-sans); font-size: 1.4rem; font-weight: 700; margin: 0 0 1.25rem; }
.bl-admin-login { max-width: 400px; margin: 8vh auto; }
.bl-admin-card pre {
    background: var(--bl-bg-soft); border-radius: var(--bl-radius-sm);
    padding: .85rem 1rem; font-size: .82rem; overflow-x: auto;
}
.bl-admin-form .form-label { font-weight: 600; font-size: .85rem; }
.bl-admin-form .form-control {
    font-family: var(--bl-font-sans); border-radius: var(--bl-radius-sm);
    border-color: var(--bl-border);
}
.bl-admin-form .form-control:focus {
    border-color: var(--bl-indigo-light);
    box-shadow: 0 0 0 .2rem rgba(107, 92, 231, .15);
}
.bl-admin-editor { font-family: var(--bl-font-mono); font-size: .85rem; line-height: 1.6; }
.bl-admin-preview {
    border: 1px dashed var(--bl-border); border-radius: var(--bl-radius);
    padding: 1.25rem 1.5rem; background: #fff; margin-bottom: 1rem;
}
.bl-admin-img img {
    max-width: 220px; border-radius: var(--bl-radius-sm);
    border: 1px solid var(--bl-border); margin-bottom: .5rem; display: block;
}
.bl-admin-check { display: flex; align-items: center; gap: .5rem; font-size: .9rem; }
.bl-admin-check input { width: auto; }
.bl-admin-actions {
    display: flex; gap: .75rem; justify-content: flex-end;
    border-top: 1px solid var(--bl-border); padding-top: 1.25rem;
}
.bl-admin-table { width: 100%; border-collapse: collapse; font-size: .92rem; }
.bl-admin-table th {
    text-align: left; font-family: var(--bl-font-mono); font-size: .72rem;
    text-transform: uppercase; letter-spacing: .05em; color: var(--bl-text-muted);
    padding: .6rem .5rem; border-bottom: 2px solid var(--bl-border);
}
.bl-admin-table td { padding: .8rem .5rem; border-bottom: 1px solid var(--bl-border); vertical-align: top; }
.bl-admin-table a { color: var(--bl-indigo); font-weight: 600; }
.bl-admin-slug { font-size: .78rem; color: var(--bl-text-muted); margin-top: .15rem; }
.bl-admin-row-act { display: flex; flex-wrap: wrap; gap: .35rem; }
.bl-admin-badge {
    font-size: .72rem; font-weight: 700; padding: .2rem .55rem; border-radius: 999px;
}
.bl-admin-badge.on  { background: #ecfdf5; color: #065f46; }
.bl-admin-badge.off { background: var(--bl-bg-soft); color: var(--bl-text-muted); }
.bl-admin-del { color: #b91c1c; border-color: #f1c4c4; }
.bl-admin-del:hover { background: #b91c1c; color: #fff; }
@media (max-width: 640px) {
    .bl-admin-table, .bl-admin-table tbody, .bl-admin-table tr, .bl-admin-table td { display: block; }
    .bl-admin-table thead { display: none; }
    .bl-admin-table tr { border: 1px solid var(--bl-border); border-radius: var(--bl-radius-sm); margin-bottom: .75rem; padding: .5rem; }
    .bl-admin-table td { border: 0; padding: .35rem .5rem; }
}

/* ---- WYSIWYG (backoffice) ---- */
.bl-wysiwyg {
    border: 1px solid var(--bl-border);
    border-radius: var(--bl-radius-sm);
    overflow: hidden;
}
.bl-wysiwyg-tb {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .2rem;
    padding: .4rem .5rem;
    background: var(--bl-bg-soft);
    border-bottom: 1px solid var(--bl-border);
}
.bl-wysiwyg-tb button {
    font-family: var(--bl-font-sans);
    font-size: .85rem;
    line-height: 1;
    color: var(--bl-text);
    background: #fff;
    border: 1px solid var(--bl-border);
    border-radius: 6px;
    padding: .4rem .55rem;
    cursor: pointer;
    transition: background .15s, color .15s, border-color .15s;
}
.bl-wysiwyg-tb button:hover { background: var(--bl-indigo); border-color: var(--bl-indigo); color: #fff; }
.bl-wysiwyg-tb #blWysHtml { font-family: var(--bl-font-mono); font-size: .78rem; }
.bl-wysiwyg-sep { width: 1px; align-self: stretch; background: var(--bl-border); margin: .15rem .35rem; }
.bl-wysiwyg-area {
    min-height: 320px;
    max-height: 60vh;
    overflow-y: auto;
    padding: 1.25rem 1.5rem;
    background: #fff;
    outline: 0;
}
.bl-wysiwyg-area:focus { box-shadow: inset 0 0 0 2px rgba(107, 92, 231, .25); }
.bl-wysiwyg-area:empty::before {
    content: "Escreva o artigo aqui…";
    color: var(--bl-text-muted);
}
.bl-wysiwyg .bl-admin-editor {
    border: 0;
    border-radius: 0;
    min-height: 320px;
}

/* ---- Barra de pré-visualização (admin) ---- */
.bl-preview-bar {
    position: relative;
    z-index: 1035;
    background: #92400e;
    color: #fff;
    text-align: center;
    font-family: var(--bl-font-mono);
    font-size: .82rem;
    padding: .55rem 1rem;
}
.bl-preview-bar i { margin-right: .35rem; }
.bl-preview-bar a { color: #fff; text-decoration: underline; font-weight: 600; }
