/* ══════════════════════════════════════════
           BRAND TOKENS — Manual MA7 2025
        ══════════════════════════════════════════ */
:root{
    --green:      #579B24;
    --green-d:    #3e7119;
    --green-xl:   rgba(87,155,36,.08);
    --green-glow: rgba(87,155,36,.22);
    --black:      #212121;
    --gray:       #2F2F2F;
    --gray-2:     #383838;
    --white:      #F9F9F9;
    --muted:      rgba(249,249,249,.62);
    --border:     rgba(87,155,36,.18);
    --border-soft:rgba(255,255,255,.07);
    --black-rgb:  33,33,33;
    --green-rgb:  87,155,36;

    /* Curvas — abusa do radius */
    --r-sm:  16px;
    --r-md:  24px;
    --r-lg:  32px;
    --r-xl:  40px;
    --r-pill:100px;

    /* Escala de espaço — múltiplos de 8 (grid 8pt) */
    --s-1:  8px;
    --s-2:  16px;
    --s-3:  24px;
    --s-4:  32px;
    --s-5:  40px;
    --s-6:  48px;
    --s-8:  64px;
    --s-10: 80px;

    /* Tipografia — Nunito Sans para títulos e corpo (como no maseteweb original). */
    --ff:         'Nunito Sans','Century Gothic','AppleGothic',sans-serif;
    --ease: cubic-bezier(.4,0,.2,1);
    --dur: .35s;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--ff);background:var(--black);color:var(--white);overflow-x:hidden;overflow-x:clip;-webkit-font-smoothing:antialiased}
/* Contem o overflow horizontal dos wrappers de conteudo: rows do Bootstrap
   com gutter grande (g-5) tem margem negativa (-24px) maior que o padding
   do .container (12px), vazando ~12px e criando scroll lateral no mobile.
   overflow-x:clip aqui (fora da raiz) recorta sem criar scroll-container,
   entao NAO quebra o #navbar sticky nem os stickies internos (blog/midia). */
#main-content,footer{overflow-x:clip}
img{max-width:100%;display:block}
p{line-height:1.75;color:var(--muted);font-size:.95rem;font-weight:400}

/* ══════════════════════════════════════════
   TOPBAR
══════════════════════════════════════════ */
#topbar{
    background:var(--gray);
    padding:.55rem 0;
    font-size:.75rem;
    border-bottom:1px solid var(--border);
}
#topbar span,#topbar a{color:var(--muted);text-decoration:none;transition:color var(--dur)}
#topbar a:hover{color:var(--green)}
.topbar-soc{
    display:inline-flex;align-items:center;justify-content:center;
    width:24px;height:24px;border-radius:var(--r-pill);
    border:1px solid var(--border);color:var(--muted);font-size:.7rem;
    text-decoration:none;transition:border-color var(--dur),color var(--dur);
}
.topbar-soc:hover{border-color:var(--green);color:var(--green)}

/* ══════════════════════════════════════════
   NAVBAR
══════════════════════════════════════════ */
#navbar{
    position:sticky;top:0;z-index:1000;
    background:rgba(33,33,33,.95);
    backdrop-filter:blur(16px);
    -webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--border);
    padding:1rem 0;
    transition:box-shadow var(--dur);
}
#navbar.scrolled{box-shadow:0 8px 40px rgba(0,0,0,.45)}

.nav-logo{text-decoration:none;display:flex;align-items:center;line-height:1;gap:.1rem}
.logo-ma{font-size:1.75rem;font-weight:900;font-style:italic;color:var(--white);letter-spacing:-.03em}
.logo-div{width:2.5px;height:1.9rem;background:var(--green);border-radius:var(--r-pill);margin:0 .3rem}
.logo-right{display:flex;flex-direction:column;justify-content:center}
.logo-7{font-size:1.75rem;font-weight:900;color:var(--white);line-height:1;letter-spacing:-.03em}
.logo-sub{font-size:.48rem;font-weight:700;letter-spacing:.3em;text-transform:uppercase;color:var(--green);margin-top:-.05rem}

.nav-links{list-style:none;display:flex;align-items:center;gap:2rem;margin:0}
.nav-links a{
    color:var(--muted);font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    text-decoration:none;transition:color var(--dur);position:relative;padding-bottom:2px;
}
.nav-links a::after{
    content:'';position:absolute;bottom:-2px;left:0;right:100%;
    height:2px;border-radius:var(--r-pill);background:var(--green);transition:right .35s var(--ease);
}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
.nav-links a:hover::after,.nav-links a.active::after{right:0}

.btn-nav{
    background:var(--green);color:var(--white);border:none;
    font-size:.74rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;
    padding:.6rem 1.5rem;border-radius:var(--r-pill);text-decoration:none;
    display:inline-flex;align-items:center;gap:.5rem;transition:background var(--dur),color var(--dur),transform var(--dur),box-shadow var(--dur);white-space:nowrap;
}
.btn-nav:hover{background:var(--green-d);color:var(--white);transform:translateY(-3px);box-shadow:0 8px 24px var(--green-glow)}

.toggler{
    background:none;border:1.5px solid var(--border);color:var(--white);
    width:40px;height:40px;border-radius:var(--r-md);
    display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.1rem;
    transition:border-color var(--dur);
}
.toggler:hover{border-color:var(--green)}

/* Drawer mobile */
#mob-drawer{
    display:none;position:fixed;inset:0;background:var(--black);z-index:1100;
    padding:2rem;flex-direction:column;
    border-right:2px solid var(--green);
}
#mob-drawer.open{display:flex}
.mob-close{
    align-self:flex-end;background:none;border:1.5px solid var(--border);color:var(--white);
    width:40px;height:40px;border-radius:50%;cursor:pointer;font-size:1.1rem;
    display:flex;align-items:center;justify-content:center;margin-bottom:2rem;
}
#mob-drawer nav a{
    display:block;font-size:1.3rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
    color:var(--white);text-decoration:none;padding:.9rem 0;border-bottom:1px solid var(--border-soft);
    transition:color var(--dur);
}
#mob-drawer nav a:hover{color:var(--green)}

/* ══════════════════════════════════════════
   HERO
══════════════════════════════════════════ */
#hero{
    position:relative;overflow:hidden;min-height:95svh;
    background:var(--black);
    display:flex;align-items:center;
    /* espaço para o scroll-hint absolutamente posicionado no bottom */
    padding-bottom:80px;
}

/* Atmosfera de imagem (CMS) — sutil, atrás dos glows. Mantém o fundo escuro
   dominante: gradiente mais pesado à esquerda preserva a legibilidade do texto
   e segue o padrão dos heroes internos (#page-hero), que embutem imagem ao fundo. */
.hero-atmos{position:absolute;inset:0;z-index:0;pointer-events:none}
.hero-atmos img{width:100%;height:100%;object-fit:cover;display:block;opacity:.5}
.hero-atmos::after{
    content:'';position:absolute;inset:0;
    background:
        /* Horizontal: esquerda 100% escura (preserva o texto); à direita o
           overlay vai ficando transparente para REVELAR a imagem de fundo. */
        linear-gradient(90deg,
            var(--black) 0%,
            var(--black) 42%,
            rgba(33,33,33,.85) 60%,
            rgba(33,33,33,.45) 80%,
            rgba(33,33,33,.15) 100%),
        /* Vertical: leve escurecimento no topo e na base (legibilidade do
           scroll-hint), meio transparente para não fechar a área revelada. */
        linear-gradient(180deg,
            rgba(33,33,33,.35) 0%,
            transparent 28%,
            transparent 70%,
            rgba(33,33,33,.6) 100%);
}

/* Linha verde inferior — consistência com os heroes internos (.ph-bottom-line) */
.hero-bottom-line{
    position:absolute;bottom:0;left:0;right:0;height:3px;z-index:2;
    background:linear-gradient(90deg,var(--green) 0%,rgba(87,155,36,.4) 50%,transparent 100%);
}

/* Degradê radial verde — elemento preferencial do manual */
.hero-bg-glow{
    position:absolute;top:-10%;right:-5%;
    width:min(800px,100vw);height:min(800px,100vw);
    background:radial-gradient(circle,rgba(87,155,36,.28) 0%,rgba(87,155,36,.08) 45%,transparent 70%);
    pointer-events:none;border-radius:50%;
}
.hero-bg-glow-2{
    position:absolute;bottom:-20%;left:-10%;
    width:min(600px,80vw);height:min(600px,80vw);
    background:radial-gradient(circle,rgba(87,155,36,.12) 0%,transparent 65%);
    pointer-events:none;border-radius:50%;
}

/* Grafismos 7/m — letterforms do logotipo (SVG via partial _gfx.php),
   traço 1px, opacidade <60% (manual). Base compartilhada das seções: */
.sec-gfx{position:absolute;height:auto;fill:none;pointer-events:none}
.gfx-7{
    position:absolute;right:-64px;bottom:-80px;
    width:min(34vw,378px);height:auto;
    fill:none;stroke:rgba(87,155,36,.1);
    pointer-events:none;
}
.gfx-m{
    position:absolute;left:-80px;bottom:0;
    width:min(60vw,640px);height:auto;
    fill:none;stroke:rgba(249,249,249,.04);
    pointer-events:none;
}

/* Coluna única (padrão dos heroes internos), alinhada à esquerda */
.hero-inner{position:relative;z-index:2;padding:5rem 0;max-width:820px}

.hero-pill{
    display:inline-flex;align-items:center;gap:.6rem;
    background:rgba(87,155,36,.12);border:1px solid var(--border);
    border-radius:var(--r-pill);padding:.45rem 1.2rem;
    font-size:.68rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--green);
    margin-bottom:1.8rem;
    opacity:0;animation:fadeUp .7s .1s forwards;
}
.hero-pill::before{content:'';width:8px;height:8px;background:var(--green);border-radius:50%}

.hero-h1{
    font-size:clamp(2.1rem,4.2vw,3.8rem);font-weight:900;text-transform:uppercase;
    color:var(--white);line-height:1.06;letter-spacing:-.015em;
    opacity:0;animation:fadeUp .85s .25s forwards;
}
.hero-h1 .green{color:var(--green)}

/* Scroll hint — centralizado absolutamente no bottom do hero */
.scroll-hint{
    position:absolute;
    bottom:2rem;
    /* Centralização por margin-inline (não via transform): a animação fadeUp
       termina em transform:translateY(0) e sobrescreveria um translateX(-50%),
       jogando o hint para a direita. Com left/right:0 + margin auto fica fixo. */
    left:0;right:0;
    margin-inline:auto;
    width:max-content;
    display:flex;flex-direction:column;align-items:center;gap:.5rem;
    z-index:10;
    white-space:nowrap;
    opacity:0;animation:fadeUp .85s .9s forwards;
}
.scroll-hint span{
    font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);
}
.scroll-hint-icon{
    width:32px;height:48px;border:2px solid rgba(87,155,36,.35);border-radius:var(--r-pill);
    display:flex;justify-content:center;align-items:flex-start;padding-top:8px;
}
.scroll-hint-dot{
    width:8px;height:8px;background:var(--green);border-radius:50%;
    animation:scrollDot 1.8s ease-in-out infinite;
}
@keyframes scrollDot{
    0%{transform:translateY(0);opacity:1}
    60%{transform:translateY(16px);opacity:.2}
    100%{transform:translateY(0);opacity:1}
}

.hero-p{
    font-size:1rem;color:var(--muted);max-width:504px;margin-top:1.5rem;line-height:1.8;
    opacity:0;animation:fadeUp .85s .42s forwards;
}
.hero-ctas{
    display:flex;flex-wrap:wrap;align-items:center;gap:1rem;margin-top:2.5rem;
    opacity:0;animation:fadeUp .85s .58s forwards;
}

.btn-primary-green{
    background:var(--green);color:var(--white);border:none;
    font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
    padding:.9rem 2.2rem;border-radius:var(--r-pill);text-decoration:none;
    display:inline-flex;align-items:center;gap:.6rem;
    transition:background var(--dur),color var(--dur),transform var(--dur),box-shadow var(--dur);
}
.btn-primary-green:hover{background:var(--green-d);color:var(--white);transform:translateY(-3px);box-shadow:0 16px 32px var(--green-glow)}

.btn-ghost-white{
    background:transparent;border:1.5px solid rgba(249,249,249,.2);color:var(--white);
    font-size:.8rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
    padding:.9rem 2.2rem;border-radius:var(--r-pill);text-decoration:none;
    display:inline-flex;align-items:center;gap:.6rem;
    transition:border-color var(--dur),color var(--dur),transform var(--dur);
}
.btn-ghost-white:hover{border-color:var(--green);color:var(--green);transform:translateY(-3px)}

/* Stats row hero */
.hero-stats{
    display:flex;flex-wrap:wrap;gap:0;
    margin-top:4rem;padding-top:2.5rem;border-top:1px solid var(--border-soft);
    opacity:0;animation:fadeUp .85s .72s forwards;
}
.hs{flex:1;min-width:112px;padding-right:2rem}
.hs+.hs{border-left:1px solid var(--border-soft);padding-left:2rem}
.hs-n{font-size:2.4rem;font-weight:900;color:var(--green);line-height:1}
.hs-l{font-size:.68rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:.35rem}

/* ══════════════════════════════════════════
   MARQUEE
══════════════════════════════════════════ */
.strip{background:var(--green);padding:.9rem 0;overflow:hidden}
.strip-track{display:flex;animation:marquee 26s linear infinite;white-space:nowrap}
.strip-item{
    display:flex;align-items:center;gap:.7rem;flex-shrink:0;margin-right:2.5rem;
    font-size:.7rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:rgba(0,0,0,.65);
}
.strip-item i{font-size:.62rem;color:rgba(0,0,0,.4)}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ══════════════════════════════════════════
   SECTION COMMONS
══════════════════════════════════════════ */
section{padding:7rem 0}
.sec-eyebrow{
    display:inline-flex;align-items:center;gap:.6rem;
    font-size:.68rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--green);
    margin-bottom:.8rem;
}
.sec-eyebrow::before{content:'';display:block;width:24px;height:2px;background:var(--green);border-radius:var(--r-pill)}
/* variante centralizada — usada em headers com text-center (ex.: /sobre §historia).
   Remove o tracejado verde para deixar o titulo realmente centralizado. */
.sec-eyebrow.is-centered{justify-content:center}
.sec-eyebrow.is-centered::before{display:none}
.sec-title{
    font-size:clamp(2rem,3.5vw,3rem);font-weight:900;text-transform:uppercase;
    color:var(--white);line-height:1.1;letter-spacing:-.01em;
}
.sec-title .accent{color:var(--green)}
/* Parágrafo de apoio sob o sec-title (usado na /midia) */
.sec-sub{margin-top:.8rem;font-size:.95rem;color:var(--muted);line-height:1.8;max-width:60ch}

/* ══════════════════════════════════════════
   SOBRE
══════════════════════════════════════════ */
#sobre{background:var(--gray)}

.sobre-img-wrap{position:relative;padding-bottom:32px;padding-right:24px}
.sobre-img{
    border-radius:var(--r-xl);overflow:hidden;
    box-shadow:0 24px 64px rgba(0,0,0,.5);
}
.sobre-img img{width:100%;height:480px;object-fit:cover;display:block}
.sobre-green-bar{
    position:absolute;bottom:0;right:0;
    background:var(--green);border-radius:var(--r-lg);
    padding:1.5rem 1.8rem;min-width:152px;text-align:center;
    box-shadow:0 16px 40px var(--green-glow);
}
.sobre-green-bar .n{font-size:2.2rem;font-weight:900;color:#fff;line-height:1}
.sobre-green-bar .t{font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-top:.3rem}

.check-list{list-style:none;padding-left:0;display:flex;flex-direction:column;gap:.9rem;margin-top:1.5rem}
.check-list li{display:flex;align-items:flex-start;gap:.8rem;font-size:.9rem;color:var(--muted)}
.check-list li i{color:var(--green);margin-top:.15rem;font-size:.9rem;flex-shrink:0}

/* ══════════════════════════════════════════
   POR QUÊ NÓS
══════════════════════════════════════════ */
#porque{background:var(--black)}
.pq-card{
    background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-xl);
    padding:2.2rem;height:100%;position:relative;overflow:hidden;
    transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.pq-card::before{
    content:'';position:absolute;left:0;top:0;bottom:0;
    width:4px;border-radius:var(--r-pill);
    background:var(--green);transform:scaleY(0);transform-origin:bottom;transition:transform .4s var(--ease);
}
.pq-card:hover{border-color:var(--border);transform:translateY(-3px);box-shadow:0 24px 64px rgba(0,0,0,.35)}
.pq-card:hover::before{transform:scaleY(1)}

.pq-icon{
    width:56px;height:56px;background:var(--green-xl);border-radius:var(--r-md);
    border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
    color:var(--green);font-size:1.3rem;margin-bottom:1.5rem;
    transition:background var(--dur),color var(--dur),border-color var(--dur);
}
.pq-card:hover .pq-icon{background:var(--green);color:#fff;border-color:var(--green)}

.pq-card h4{font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--white);margin-bottom:.6rem}
.pq-card p{font-size:.875rem;margin:0}
.pq-link{
    display:inline-flex;align-items:center;gap:.4rem;
    font-size:.75rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
    color:var(--green);text-decoration:none;margin-top:1.4rem;transition:gap .25s;
}
.pq-link:hover{gap:.8rem}

/* ══════════════════════════════════════════
   SERVIÇOS
══════════════════════════════════════════ */
#servicos{
    background:var(--gray);position:relative;overflow:hidden;
}
#servicos .sec-gfx{
    right:-64px;top:50%;transform:translateY(-50%);
    width:min(27vw,328px);
    stroke:rgba(87,155,36,.06);
}

/* ── Showcase interativo de soluções (CSS puro via radio) ──
   Seletor à direita troca foto emoldurada + badge + descrição à esquerda.
   Imagem-driven, com a gramática do tema (moldura r-xl, sombra, badge verde).
   Distinto do grid de #porque e do grid da página /servicos. */
.svc-showcase{
    display:grid;grid-template-columns:1.05fr .95fr;gap:var(--s-5);
    align-items:center;position:relative;z-index:2;
}
.svc-show-radio{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

/* Coluna esquerda — palco da imagem + detalhe */
.svc-stage-col{min-width:0;display:flex;flex-direction:column;gap:var(--s-4)}

.svc-stage{
    position:relative;aspect-ratio:4/3;
    border-radius:var(--r-xl);overflow:hidden;
    box-shadow:0 24px 64px rgba(0,0,0,.5);
    background:var(--black);
}
.svc-slide{
    position:absolute;inset:0;margin:0;opacity:0;transform:scale(1.045);
    transition:opacity .55s var(--ease),transform .7s var(--ease);
}
.svc-slide img{width:100%;height:100%;object-fit:cover;display:block}
.svc-slide::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 45%,rgba(33,33,33,.6) 100%),
               linear-gradient(90deg,rgba(33,33,33,.35),transparent 55%);
}
.svc-stage-badge{
    position:absolute;left:1.5rem;bottom:1.5rem;z-index:2;
    background:var(--green);border-radius:var(--r-lg);
    padding:1rem 1.4rem;min-width:124px;
    box-shadow:0 16px 40px var(--green-glow);
}
.svc-stage-badge b{display:block;font-family:var(--ff);font-weight:900;font-style:italic;font-size:2rem;line-height:1;color:#fff}
.svc-stage-badge span{display:block;margin-top:.35rem;font-size:.58rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:rgba(255,255,255,.82)}

/* Detalhe sob a imagem (painel ativo aparece) */
.svc-detail{position:relative;min-height:148px}
.svc-detail-panel{
    position:absolute;inset:0;opacity:0;pointer-events:none;
    display:flex;gap:1.1rem;transform:translateY(10px);
    transition:opacity .4s var(--ease),transform .45s var(--ease);
}
.svc-detail-ico{
    flex-shrink:0;width:54px;height:54px;border-radius:var(--r-md);
    background:var(--green-xl);border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;color:var(--green);font-size:1.2rem;
}
.svc-detail-text h4{font-size:1.05rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--white);margin-bottom:.55rem}
.svc-detail-text p{font-size:.9rem;line-height:1.65;color:var(--muted);margin:0 0 1rem}
.svc-detail-cta{
    display:inline-flex;align-items:center;gap:.5rem;text-decoration:none;
    color:var(--green);font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
    transition:gap var(--dur) var(--ease);
}
.svc-detail-cta:hover{gap:.85rem}

/* Coluna direita — seletor */
.svc-picker{display:flex;flex-direction:column;gap:.35rem}
.svc-opt{
    display:flex;align-items:center;gap:1rem;cursor:pointer;
    padding:1rem 1.25rem;border-radius:var(--r-md);
    border:1px solid transparent;position:relative;
    transition:background var(--dur),border-color var(--dur);
}
.svc-opt:hover{background:rgba(255,255,255,.04)}
.svc-opt-n{
    flex-shrink:0;width:1.7rem;font-family:var(--ff);font-weight:900;font-style:italic;
    font-size:1.05rem;line-height:1;color:rgba(87,155,36,.4);transition:color var(--dur);
}
.svc-opt-t{
    flex:1;font-size:.9rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;
    color:var(--muted);transition:color var(--dur);
}
.svc-opt-chev{flex-shrink:0;font-size:.72rem;color:transparent;transform:translateX(-6px);transition:color var(--dur),transform var(--dur)}

/* Estados ativos — um bloco por serviço (radio :checked controla os 3 alvos) */
#svcr-1:checked ~ .svc-stage-col .svc-slide[data-svc="1"],
#svcr-2:checked ~ .svc-stage-col .svc-slide[data-svc="2"],
#svcr-3:checked ~ .svc-stage-col .svc-slide[data-svc="3"],
#svcr-4:checked ~ .svc-stage-col .svc-slide[data-svc="4"],
#svcr-5:checked ~ .svc-stage-col .svc-slide[data-svc="5"],
#svcr-6:checked ~ .svc-stage-col .svc-slide[data-svc="6"]{opacity:1;transform:scale(1)}

#svcr-1:checked ~ .svc-stage-col .svc-detail-panel[data-svc="1"],
#svcr-2:checked ~ .svc-stage-col .svc-detail-panel[data-svc="2"],
#svcr-3:checked ~ .svc-stage-col .svc-detail-panel[data-svc="3"],
#svcr-4:checked ~ .svc-stage-col .svc-detail-panel[data-svc="4"],
#svcr-5:checked ~ .svc-stage-col .svc-detail-panel[data-svc="5"],
#svcr-6:checked ~ .svc-stage-col .svc-detail-panel[data-svc="6"]{opacity:1;pointer-events:auto;transform:none}

#svcr-1:checked ~ .svc-picker label[for="svcr-1"],
#svcr-2:checked ~ .svc-picker label[for="svcr-2"],
#svcr-3:checked ~ .svc-picker label[for="svcr-3"],
#svcr-4:checked ~ .svc-picker label[for="svcr-4"],
#svcr-5:checked ~ .svc-picker label[for="svcr-5"],
#svcr-6:checked ~ .svc-picker label[for="svcr-6"]{background:var(--green-xl);border-color:var(--border)}

#svcr-1:checked ~ .svc-picker label[for="svcr-1"] .svc-opt-n,
#svcr-2:checked ~ .svc-picker label[for="svcr-2"] .svc-opt-n,
#svcr-3:checked ~ .svc-picker label[for="svcr-3"] .svc-opt-n,
#svcr-4:checked ~ .svc-picker label[for="svcr-4"] .svc-opt-n,
#svcr-5:checked ~ .svc-picker label[for="svcr-5"] .svc-opt-n,
#svcr-6:checked ~ .svc-picker label[for="svcr-6"] .svc-opt-n{color:var(--green)}

#svcr-1:checked ~ .svc-picker label[for="svcr-1"] .svc-opt-t,
#svcr-2:checked ~ .svc-picker label[for="svcr-2"] .svc-opt-t,
#svcr-3:checked ~ .svc-picker label[for="svcr-3"] .svc-opt-t,
#svcr-4:checked ~ .svc-picker label[for="svcr-4"] .svc-opt-t,
#svcr-5:checked ~ .svc-picker label[for="svcr-5"] .svc-opt-t,
#svcr-6:checked ~ .svc-picker label[for="svcr-6"] .svc-opt-t{color:var(--white)}

#svcr-1:checked ~ .svc-picker label[for="svcr-1"] .svc-opt-chev,
#svcr-2:checked ~ .svc-picker label[for="svcr-2"] .svc-opt-chev,
#svcr-3:checked ~ .svc-picker label[for="svcr-3"] .svc-opt-chev,
#svcr-4:checked ~ .svc-picker label[for="svcr-4"] .svc-opt-chev,
#svcr-5:checked ~ .svc-picker label[for="svcr-5"] .svc-opt-chev,
#svcr-6:checked ~ .svc-picker label[for="svcr-6"] .svc-opt-chev{color:var(--green);transform:translateX(0)}

/* Foco de teclado (radio escondido → realça o label correspondente) */
#svcr-1:focus-visible ~ .svc-picker label[for="svcr-1"],
#svcr-2:focus-visible ~ .svc-picker label[for="svcr-2"],
#svcr-3:focus-visible ~ .svc-picker label[for="svcr-3"],
#svcr-4:focus-visible ~ .svc-picker label[for="svcr-4"],
#svcr-5:focus-visible ~ .svc-picker label[for="svcr-5"],
#svcr-6:focus-visible ~ .svc-picker label[for="svcr-6"]{outline:2px solid var(--green);outline-offset:2px}

@media(max-width:991px){
    .svc-showcase{grid-template-columns:1fr;gap:var(--s-4)}
    .svc-detail{min-height:0}
}
@media(max-width:575px){
    .svc-stage-badge{left:1rem;bottom:1rem;padding:.8rem 1.1rem;min-width:96px}
    .svc-stage-badge b{font-size:1.6rem}
    .svc-opt{padding:.85rem 1rem;gap:.8rem}
}

/* ══════════════════════════════════════════
   NÚMEROS / STATS
══════════════════════════════════════════ */
#numeros{
    background:linear-gradient(135deg,var(--black) 0%,#163806 50%,#2d5e16 100%);
    padding:6rem 0;position:relative;overflow:hidden;
}
#numeros .sec-gfx{
    right:-40px;bottom:-64px;
    width:min(29vw,347px);
    stroke:rgba(255,255,255,.04);
}
.stat-grid{
    display:grid;grid-template-columns:repeat(4,1fr);
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
    border-radius:var(--r-xl);overflow:hidden;
}
.stat-cell{
    padding:3rem 1.5rem;text-align:center;
    border-right:1px solid rgba(255,255,255,.08);
    transition:background var(--dur);
    /* overflow:hidden + min-width:0 protegem o grid contra valores editaveis
       longos (admin pode salvar "R$ 1.500.000.000+"). Sem isto, o nowrap em
       .stat-n empurraria a coluna e geraria scroll horizontal na pagina. */
    overflow:hidden;min-width:0;
}
.stat-cell:last-child{border-right:none}
.stat-cell:hover{background:rgba(87,155,36,.1)}
/* Stats da home/about/services/team — tamanho uniforme.
   Clamp dimensionado para o pior caso (~9 chars: "R$ 700M+") caber numa
   coluna de ~237px (container 1140px / 4 cols - padding). tnum garante
   alinhamento de coluna em digitos; letter-spacing negativo tras compactacao
   sem perder leitura.
   text-overflow:ellipsis + overflow:hidden em .stat-cell garante que valores
   exageradamente longos (admin editando errado: "R$ 1.500.000.000+") mostrem
   "…" visivel em vez de cortar silenciosamente. */
.stat-n{
    font-size:clamp(1.9rem,3vw,2.8rem);
    font-weight:900;color:var(--white);line-height:1;
    white-space:nowrap;letter-spacing:-.015em;
    font-feature-settings:"tnum" 1;
    overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
/* Verde padrão do projeto nos números. `.gold` mantido por compat; `.green`
   é o nome semântico usado na padronização das seções de números. */
.stat-n.gold,.stat-n.green{color:var(--green)}
.stat-l{font-size:.68rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-top:.7rem}
@media(max-width:767px){
    .stat-grid{grid-template-columns:1fr 1fr}
    .stat-cell{border-right:none;border-bottom:1px solid rgba(255,255,255,.08)}
    .stat-cell:nth-child(even){border-left:1px solid rgba(255,255,255,.08)}
}

/* ══════════════════════════════════════════
   EQUIPE — sem fotos, altura uniforme
══════════════════════════════════════════ */
#time{background:var(--black)}
.team-card{
    background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-xl);
    overflow:hidden;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
    display:flex;flex-direction:column;
    height:100%; /* grid equaliza com align-items-stretch */
}
.team-card:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:0 24px 64px rgba(0,0,0,.4)}

.team-avatar{
    height:200px;flex-shrink:0;
    background:linear-gradient(135deg,#212121 0%,#1c3e0a 100%);
    position:relative;overflow:hidden;
    display:flex;align-items:center;justify-content:center;
}
/* grafismo de fundo no avatar */
.team-avatar::before{
    content:attr(data-initials);
    position:absolute;
    font-size:9rem;font-weight:900;font-style:italic;
    color:transparent;-webkit-text-stroke:1px rgba(87,155,36,.15);
    line-height:1;pointer-events:none;font-family:var(--ff);
    right:-16px;bottom:-16px;
}
.team-avatar-circle{
    width:88px;height:88px;border-radius:50%;
    background:rgba(87,155,36,.12);border:2px solid var(--green);
    display:flex;align-items:center;justify-content:center;
    font-size:1.8rem;font-weight:900;font-style:italic;color:var(--green);
    font-family:var(--ff);letter-spacing:-.03em;
    position:relative;z-index:1;
    transition:background var(--dur),color var(--dur),box-shadow var(--dur);
}
.team-card:hover .team-avatar-circle{
    background:var(--green);color:#fff;
    box-shadow:0 0 0 8px rgba(87,155,36,.15);
}
.team-role-badge{
    position:absolute;top:16px;right:16px;
    background:rgba(33,33,33,.85);backdrop-filter:blur(8px);
    border:1px solid var(--border);border-radius:var(--r-pill);
    padding:.25rem .75rem;font-size:.58rem;font-weight:800;
    letter-spacing:.14em;text-transform:uppercase;color:var(--green);
    z-index:2;
}
.team-avatar::after{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--green),transparent);
}

.team-info{
    padding:1.4rem 1.5rem;
    border-top:2px solid var(--green);
    display:flex;flex-direction:column;
    flex:1; /* ocupa o restante da altura do card */
}
.team-info h5{
    font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--white);
    line-height:1.25;
}
.team-role{
    font-size:.67rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
    color:var(--green);margin-top:.25rem;
}
.team-info p{
    font-size:.83rem;margin-top:.8rem;flex:1; /* empurra sociais para o fundo */
}
.team-social{display:flex;gap:.5rem;margin-top:1rem}
.tsoc{
    width:32px;height:32px;border:1px solid var(--border);border-radius:var(--r-pill);
    display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.75rem;
    text-decoration:none;transition:border-color var(--dur),color var(--dur);
}
.tsoc:hover{border-color:var(--green);color:var(--green)}

/* ══════════════════════════════════════════
   COMO FUNCIONA
══════════════════════════════════════════ */
#como{background:var(--gray)}

/* "Como Funciona" — usado em home.php (3 passos, layout horizontal:
   numero gigante a esquerda + card a direita). Mantido aqui para
   nao quebrar a home; #processo-ma7 da /servicos usa .proc-* abaixo. */
.how-wrap{display:flex;align-items:flex-start;gap:1.5rem}
.how-num{
    font-size:4.5rem;font-weight:900;color:rgba(87,155,36,.15);line-height:1;
    flex-shrink:0;transition:color var(--dur);font-family:var(--ff);
}
.how-card{
    background:var(--black);border:1px solid var(--border-soft);border-radius:var(--r-xl);
    padding:1.8rem;flex:1;transition:border-color var(--dur),box-shadow var(--dur);
}
.how-card:hover{border-color:var(--green);box-shadow:0 16px 48px rgba(0,0,0,.35)}
.how-card:hover+.how-num,.how-wrap:hover .how-num{color:rgba(87,155,36,.35)}
.how-icon{
    width:48px;height:48px;background:var(--green-xl);border-radius:var(--r-md);border:1px solid var(--border);
    display:flex;align-items:center;justify-content:center;color:var(--green);font-size:1.1rem;margin-bottom:1.2rem;
}
.how-card h4{font-size:1rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--white);margin-bottom:.6rem}
.how-card p{font-size:.875rem;margin:0}
.how-connector{
    width:1px;height:64px;background:linear-gradient(to bottom,var(--green),transparent);
    margin:0 auto;opacity:.3;
}

/* =====================================================
   PROCESSO MA7 — /servicos #processo-ma7
   Padrao premium: timeline horizontal com marcadores numerados
   conectados por linha verde, card de conteudo abaixo de cada marker.
   Vira timeline vertical (trilha esquerda) em viewports <992px.
===================================================== */
#processo-ma7{background:var(--black);padding:7rem 0}

.proc-flow{
    list-style:none;margin:3rem 0 0;padding:0;
    display:grid;grid-template-columns:repeat(5,1fr);
    gap:2.5rem 1.5rem;position:relative;
}
/* Linha conectora horizontal — passa pelo centro dos markers (64px / 2 = 32px).
   Margins laterais (5%) deixam a linha "entrar" e "sair" suavemente, sem tocar
   as bordas do container. */
.proc-flow::before{
    content:'';position:absolute;top:31px;left:5%;right:5%;height:2px;
    background:linear-gradient(90deg,
        rgba(87,155,36,.25) 0%,
        var(--green) 18%,
        var(--green) 82%,
        rgba(87,155,36,.25) 100%);
    border-radius:var(--r-pill);z-index:0;pointer-events:none;
}

.proc-step{
    position:relative;z-index:1;
    display:flex;flex-direction:column;align-items:center;
    text-align:center;padding:0 .25rem;
    /* Grid ja faz stretch em align-items por padrao, mas garantimos altura
       100% aqui para que .proc-card abaixo possa usar flex:1 e crescer
       ate igualar a altura do card mais alto da linha. */
    height:100%;
}

/* Marker — circulo numerado, com glow ring para destacar sobre a linha */
.proc-marker{
    width:64px;height:64px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;
    background:var(--black);
    border:2px solid var(--green);
    border-radius:50%;
    color:var(--green);
    font-size:.92rem;font-weight:900;letter-spacing:.02em;font-family:var(--ff);
    margin-bottom:1.5rem;position:relative;
    box-shadow:
        0 0 0 6px rgba(87,155,36,.08),
        0 12px 32px rgba(0,0,0,.4);
    transition:
        background var(--dur) var(--ease),
        color var(--dur) var(--ease),
        transform var(--dur) var(--ease),
        box-shadow var(--dur) var(--ease);
}
.proc-num{line-height:1}

/* Card — conteudo da etapa, abaixo do marker */
.proc-card{
    background:var(--gray);
    border:1px solid var(--border-soft);
    border-radius:var(--r-xl);
    padding:1.5rem 1.25rem 1.6rem;
    width:100%;display:flex;flex-direction:column;align-items:center;
    /* flex:1 estica o card verticalmente para preencher o .proc-step.
       Como o .proc-flow e grid + align-items:stretch (default), todos os
       .proc-step da linha ficam com a mesma altura → todos os .proc-card
       igualam visualmente, independente do tamanho do texto. */
    flex:1;
    transition:
        border-color var(--dur) var(--ease),
        transform var(--dur) var(--ease),
        box-shadow var(--dur) var(--ease);
}
.proc-icon{
    width:44px;height:44px;
    background:var(--green-xl);
    border:1px solid var(--border);
    border-radius:var(--r-md);
    display:flex;align-items:center;justify-content:center;
    color:var(--green);font-size:1.05rem;
    margin-bottom:1rem;
    transition:background var(--dur),color var(--dur),border-color var(--dur);
}
.proc-title{
    font-size:.9rem;font-weight:800;
    text-transform:uppercase;letter-spacing:.06em;
    color:var(--white);margin-bottom:.6rem;line-height:1.25;
}
.proc-body{
    font-size:.82rem;color:var(--muted);line-height:1.6;
    margin:0;max-width:240px;
}

/* Hover — eleva o card, preenche o marker, destaca o icon */
.proc-step:hover .proc-marker{
    background:var(--green);color:#fff;
    transform:scale(1.06);
    box-shadow:
        0 0 0 8px rgba(87,155,36,.18),
        0 16px 40px rgba(87,155,36,.3);
}
.proc-step:hover .proc-card{
    border-color:var(--green);
    transform:translateY(-4px);
    box-shadow:0 24px 56px rgba(0,0,0,.45);
}
.proc-step:hover .proc-icon{
    background:var(--green);color:#fff;border-color:transparent;
}

/* Tablet — fica apertado em 5 cols, vira 5 cols menores */
@media(max-width:1199px){
    .proc-flow{gap:2rem 1rem}
    .proc-marker{width:56px;height:56px;font-size:.85rem;margin-bottom:1.25rem}
    .proc-flow::before{top:27px}
    .proc-card{padding:1.25rem 1rem 1.4rem}
    .proc-body{font-size:.78rem;max-width:none}
}

/* Vira timeline vertical em tablet estreito / mobile.
   Trilha esquerda (linha vertical de 2px), marker a esquerda, card a direita. */
@media(max-width:991px){
    .proc-flow{
        grid-template-columns:1fr;gap:1.75rem;
        padding-left:1rem;margin-top:2.5rem;
    }
    .proc-flow::before{
        /* Linha vertical na altura completa, alinhada ao centro do marker (32px) */
        top:32px;bottom:32px;left:32px;right:auto;
        width:2px;height:auto;
        background:linear-gradient(180deg,
            var(--green) 0%,
            rgba(87,155,36,.25) 100%);
    }
    .proc-step{
        flex-direction:row;align-items:flex-start;text-align:left;
        gap:1.25rem;padding:0;
    }
    .proc-marker{
        width:64px;height:64px;font-size:.92rem;
        margin-bottom:0;margin-top:0;
    }
    .proc-card{
        text-align:left;align-items:flex-start;
        padding:1.25rem 1.4rem;
    }
    .proc-body{max-width:none}
    .proc-step:hover .proc-card{transform:translateY(0)}
}

@media(max-width:479px){
    .proc-flow{padding-left:0;gap:1.5rem}
    .proc-flow::before{left:24px}
    .proc-marker{width:48px;height:48px;font-size:.78rem}
    .proc-flow::before{top:24px;bottom:24px;left:24px}
    .proc-card{padding:1rem 1.1rem}
}

/* ══════════════════════════════════════════
   MÍDIA
══════════════════════════════════════════ */
#midia{background:var(--black)}
.media-card{
    background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-xl);
    overflow:hidden;height:100%;display:flex;flex-direction:column;
    transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.media-card:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:0 24px 56px rgba(0,0,0,.4)}
.media-thumb{aspect-ratio:16/9;overflow:hidden;position:relative}
.media-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.media-card:hover .media-thumb img{transform:scale(1.05)}
.media-thumb::after{
    content:'';position:absolute;bottom:0;left:0;right:0;height:40%;
    background:linear-gradient(to top,var(--gray),transparent);pointer-events:none;
}
.media-body{padding:1.4rem;flex:1;display:flex;flex-direction:column}
.media-tag{
    display:inline-flex;align-items:center;gap:.4rem;
    font-size:.63rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--green);margin-bottom:.7rem;
}
.media-body h5{font-size:.95rem;font-weight:700;color:var(--white);line-height:1.45;flex:1}
.media-link{
    display:inline-flex;align-items:center;gap:.4rem;
    font-size:.73rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
    color:var(--green);text-decoration:none;margin-top:1.2rem;transition:gap .25s;
}
.media-link:hover{gap:.8rem}

/* ══════════════════════════════════════════
   CONTATO
══════════════════════════════════════════ */
#contato{
    background:linear-gradient(135deg,var(--black) 0%,#152b07 100%);
    position:relative;overflow:hidden;
}
#contato .sec-gfx{
    left:-96px;bottom:-80px;
    width:min(52vw,587px);
    stroke:rgba(87,155,36,.06);
}

.contact-card{
    background:var(--gray);border:1px solid var(--border);border-radius:var(--r-xl);
    padding:2.8rem;position:relative;z-index:2;
    box-shadow:0 24px 64px rgba(0,0,0,.35);
}
.flabel{
    font-size:.67rem;font-weight:800;letter-spacing:.18em;text-transform:uppercase;
    color:var(--muted);margin-bottom:.5rem;display:block;
}
.finput{
    width:100%;background:var(--black);border:1.5px solid var(--border-soft);
    border-radius:var(--r-md);padding:.85rem 1.1rem;
    font-family:var(--ff);font-size:.9rem;color:var(--white);outline:none;
    transition:border-color var(--dur);
}
.finput:focus{border-color:var(--green)}
.finput::placeholder{color:rgba(249,249,249,.42)}
select.finput{
    appearance:none;-webkit-appearance:none;
    background:var(--black) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23579b24' stroke-width='1.5' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 1.1rem center;
    padding-right:2.6rem;cursor:pointer;
}
select.finput option{background:var(--black)}

.cinfo-item{
    display:flex;align-items:center;gap:1rem;
    padding:1.1rem 0;border-bottom:1px solid var(--border-soft);
    position:relative;z-index:2;
}
.cinfo-item:last-child{border:none}
.cicon{
    width:48px;height:48px;background:var(--green-xl);border:1px solid var(--border);
    border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;
    color:var(--green);font-size:1rem;flex-shrink:0;
}
.cinfo-item strong{font-size:.65rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block}
.cinfo-item a,.cinfo-item span{font-size:.88rem;font-weight:600;color:var(--white);text-decoration:none;transition:color var(--dur)}
.cinfo-item a:hover{color:var(--green)}

/* ══════════════════════════════════════════
   FOOTER
══════════════════════════════════════════ */
footer{background:var(--gray);border-top:1px solid var(--border);padding:4rem 0 2rem}
.foot-logo{text-decoration:none;display:inline-flex;align-items:center;gap:.1rem}
.fl-ma{font-size:1.5rem;font-weight:900;font-style:italic;color:var(--white);letter-spacing:-.03em}
.fl-bar{width:2px;height:1.6rem;background:var(--green);border-radius:var(--r-pill);margin:0 .28rem}
.fl-right{display:flex;flex-direction:column;justify-content:center}
.fl-7{font-size:1.5rem;font-weight:900;color:var(--white);letter-spacing:-.03em}
.fl-sub{font-size:.46rem;font-weight:800;letter-spacing:.3em;text-transform:uppercase;color:var(--green)}

.foot-desc{font-size:.83rem;color:var(--muted);margin-top:.8rem;line-height:1.7;max-width:272px}
.foot-addr{font-size:.78rem;color:var(--muted);margin:1rem 0 0;line-height:1.7;max-width:272px}
.foot-addr i{color:var(--green);margin-right:.35rem;font-size:.75rem}
.fsocs{display:flex;gap:.6rem;margin-top:1.3rem}
.fsoc{
    width:40px;height:40px;border:1px solid var(--border);border-radius:50%;
    display:flex;align-items:center;justify-content:center;color:var(--muted);
    font-size:.85rem;text-decoration:none;transition:border-color var(--dur),color var(--dur);
}
.fsoc:hover{border-color:var(--green);color:var(--green)}
.foot-head{font-size:.63rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--green);margin-bottom:1.1rem}
.foot-links{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.6rem}
.foot-links a{font-size:.83rem;color:var(--muted);text-decoration:none;transition:color var(--dur)}
.foot-links a:hover{color:var(--green)}
.foot-news{display:flex;border-radius:var(--r-pill);overflow:hidden;border:1px solid var(--border)}
.foot-news input{
    background:var(--black);border:none;padding:.7rem 1.1rem;
    font-family:var(--ff);font-size:.83rem;color:var(--white);outline:none;flex:1;
}
.foot-news input::placeholder{color:rgba(249,249,249,.3)}
.foot-news button{
    background:var(--green);border:none;color:#fff;
    padding:.7rem 1.3rem;font-family:var(--ff);font-size:.78rem;font-weight:800;
    letter-spacing:.08em;cursor:pointer;transition:background var(--dur);white-space:nowrap;
}
.foot-news button:hover{background:var(--green-d)}
.foot-bottom{
    margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border-soft);
    font-size:.75rem;color:var(--muted);display:flex;flex-wrap:wrap;
    justify-content:space-between;gap:.5rem;align-items:center;
}
.foot-bottom a{color:var(--muted);text-decoration:none;transition:color var(--dur)}
.foot-bottom a:hover{color:var(--green)}

/* WhatsApp float */
.wa-float{
    position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;
    background:#25D366;border-radius:50%;
    display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.4rem;
    text-decoration:none;box-shadow:0 8px 32px rgba(37,211,102,.45);z-index:900;
    transition:transform .25s,box-shadow .25s;
}
.wa-float:hover{transform:scale(1.12);color:#fff;box-shadow:0 16px 40px rgba(37,211,102,.55)}
@media(max-width:575px){
    .wa-float{width:48px;height:48px;bottom:1.1rem;right:1.1rem;font-size:1.2rem}
}

/* ══ SCROLL-TO-TOP ══ */
#back-top{
    position:fixed;bottom:6.5rem;right:2rem;
    width:56px;height:56px;
    z-index:900;cursor:pointer;
    opacity:0;pointer-events:none;
    transform:translateY(16px);
    transition:opacity .35s var(--ease),transform .35s var(--ease);
    /* reset total do botão — sem nenhum estilo nativo */
    background:transparent;
    border:none;
    padding:0;
    outline:none;
    -webkit-appearance:none;
    appearance:none;
}
#back-top.visible{opacity:1;pointer-events:auto;transform:translateY(0)}
/* SVG ocupa todo o botão e fica por baixo */
#back-top svg{
    position:absolute;
    inset:0;
    width:56px;height:56px;
    transform:rotate(-90deg);
    pointer-events:none;
}
/* Fundo do círculo */
#back-top .ring-bg{
    fill:none;stroke:rgba(87,155,36,.18);stroke-width:3;
}
/* Linha de progresso verde */
#back-top .ring-fill{
    fill:none;stroke:var(--green);stroke-width:3;
    stroke-linecap:round;
    stroke-dasharray:150.796; /* 2π × 24 */
    stroke-dashoffset:150.796;
    transition:stroke-dashoffset .12s linear;
}
/* Ícone de seta — flutuando sobre o SVG, fundo transparente */
#back-top .btn-inner{
    position:absolute;
    inset:8px; /* recua 8px para o ring ficar visível ao redor */
    display:flex;align-items:center;justify-content:center;
    background:var(--gray);
    border-radius:50%;
    color:var(--green);
    font-size:1rem;
    transition:background var(--dur),color var(--dur);
    pointer-events:none;
}
#back-top:hover .btn-inner{background:var(--green);color:#fff}

/* ══════════════════════════════════════════
   ANIMATIONS
══════════════════════════════════════════ */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.reveal{opacity:0;transform:translateY(32px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.reveal.visible{opacity:1;transform:none}
.rd1{transition-delay:.1s}.rd2{transition-delay:.2s}.rd3{transition-delay:.3s}.rd4{transition-delay:.4s}

/* ══════════════════════════════════════════
   RESPONSIVE
══════════════════════════════════════════ */
@media(max-width:991px){
    .nav-links,.btn-nav{display:none!important}
    .toggler{display:flex!important}
    /* backdrop-filter em sticky causa render "pela metade" no scroll mobile
       (iOS Safari/Android WebView) e faixa fantasma sobre o topbar ao voltar
       ao topo. Fundo solido elimina o bug sem mudanca visual perceptivel. */
    /* Promove o navbar a camada de composicao propria: o compositor do
       Android Chrome corta a parte de baixo da barra (menu/hamburger) durante
       o recolher/mostrar da barra de endereco, pois reusa a camada sticky com
       tamanho obsoleto. Com camada propria + clip no body, repinta inteiro. */
    #navbar{backdrop-filter:none;-webkit-backdrop-filter:none;background:#212121;transform:translateZ(0);will-change:transform}
    .hero-inner{padding:3.5rem 0;max-width:100%}
    .hero-h1{font-size:clamp(2rem,7vw,2.8rem)}
    .hs+.hs{border-left:none;padding-left:0;border-top:1px solid var(--border-soft);padding-top:1rem}
    .hs{flex:none;width:100%}
    .hero-stats{gap:1rem}
    /* Atmosfera de imagem mais discreta no mobile (texto ocupa a largura toda) */
    .hero-atmos img{opacity:.18}
}
@media(min-width:992px){.toggler{display:none!important}}

/* ══════════════════════════════════════════
   ABOUT PAGE — page-hero
══════════════════════════════════════════ */
#page-hero{
    position:relative;overflow:hidden;
    min-height:72vh;
    /* center: alinha o eixo do conteúdo em todas as páginas, independente do
       nº de linhas do título (antes flex-end deixava títulos curtos mais baixos) */
    display:flex;align-items:center;
    background:var(--black);
    padding-bottom:0;
}
.ph-bg{position:absolute;inset:0}
.ph-bg img{width:100%;height:100%;object-fit:cover;display:block;opacity:.22}
.ph-bg::after{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(33,33,33,.4) 0%,rgba(33,33,33,.98) 100%);
}
.ph-glow{
    position:absolute;top:-10%;right:-5%;
    width:min(704px,90vw);height:min(704px,90vw);
    background:radial-gradient(circle,rgba(87,155,36,.22) 0%,rgba(87,155,36,.06) 45%,transparent 70%);
    border-radius:50%;pointer-events:none;
}
.ph-gfx{
    position:absolute;right:-64px;bottom:-40px;
    width:min(29vw,328px);height:auto;
    fill:none;stroke:rgba(87,155,36,.08);
    pointer-events:none;
}
.ph-content{position:relative;z-index:2;padding:6rem 0;width:100%}
.ph-bottom-line{
    position:absolute;bottom:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--green) 0%,rgba(87,155,36,.4) 50%,transparent 100%);
}
.breadcrumb-ma7{
    display:flex;align-items:center;gap:.5rem;
    margin-bottom:2rem;
    font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
}
.breadcrumb-ma7 a{color:var(--muted);text-decoration:none;transition:color var(--dur)}
.breadcrumb-ma7 a:hover{color:var(--green)}
.breadcrumb-ma7 span{color:var(--green)}
.breadcrumb-ma7 i{color:rgba(249,249,249,.2);font-size:.6rem}
.page-pill{
    display:inline-flex;align-items:center;gap:.6rem;
    background:rgba(87,155,36,.12);border:1px solid var(--border);
    border-radius:var(--r-pill);padding:.45rem 1.2rem;
    font-size:.68rem;font-weight:800;letter-spacing:.2em;text-transform:uppercase;color:var(--green);
    margin-bottom:1.6rem;
    opacity:0;animation:fadeUp .7s .1s forwards;
}
.page-pill::before{content:'';width:8px;height:8px;background:var(--green);border-radius:50%}
.ph-title{
    font-size:clamp(2.8rem,6vw,5.2rem);font-weight:900;text-transform:uppercase;
    color:var(--white);line-height:1.05;letter-spacing:-.02em;
    opacity:0;animation:fadeUp .85s .25s forwards;
}
.ph-title .green{color:var(--green)}
.ph-sub{
    font-size:1.05rem;color:var(--muted);max-width:544px;margin-top:1.5rem;line-height:1.8;
    opacity:0;animation:fadeUp .85s .42s forwards;
}

/* ══════════════════════════════════════════
   ABOUT — quem somos
══════════════════════════════════════════ */
#quem-somos{background:var(--gray);padding:6rem 0}
.qs-quote{
    font-size:clamp(1.5rem,2.8vw,2.3rem);
    font-weight:900;color:var(--white);line-height:1.3;letter-spacing:-.01em;
}
.qs-quote .qs-accent{color:var(--green)}
.qs-quote-wrap{
    border-left:4px solid var(--green);
    border-radius:0 var(--r-sm) var(--r-sm) 0;
    padding-left:2rem;
}
.qs-body p{margin-bottom:1.1rem}
.qs-body p:last-child{margin-bottom:0}
.kw-pills{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.8rem}
.kw-pill{
    display:inline-flex;align-items:center;gap:.5rem;
    background:var(--green-xl);border:1px solid var(--border);
    border-radius:var(--r-pill);padding:.4rem 1rem;
    font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green);
    transition:background var(--dur),color var(--dur);
}
.kw-pill:hover{background:var(--green);color:#fff}
.kw-pill i{font-size:.65rem}

/* ══════════════════════════════════════════
   ABOUT — números (stat-grid-2)
══════════════════════════════════════════ */
#numeros-sobre{
    background:linear-gradient(135deg,var(--black) 0%,#163806 50%,#2d5e16 100%);
    padding:6rem 0;position:relative;overflow:hidden;
}
#numeros-sobre .sec-gfx{
    right:-40px;bottom:-64px;
    width:min(29vw,339px);
    stroke:rgba(255,255,255,.04);
}
.stat-grid-2{
    display:grid;grid-template-columns:repeat(4,1fr);
    background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);
    border-radius:var(--r-xl);overflow:hidden;
}
@media(max-width:767px){
    .stat-grid-2{grid-template-columns:1fr 1fr}
}

/* ══════════════════════════════════════════
   ABOUT — história / timeline
══════════════════════════════════════════ */
#historia{background:var(--gray);padding:6rem 0}
/* Timeline interativa — rail horizontal (desktop) / vertical (mobile), com
   preenchimento que "desenha" no scroll e cards zigue-zague que abrem no
   hover/foco/clique. Marco atual pulsa. JS adiciona .is-drawn / .is-open. */
.timeline{position:relative;margin-top:4rem;--tl-node:18px}

/* Rail grosso + preenchimento animado */
.tl-progress{
    position:absolute;left:0;right:0;top:50%;transform:translateY(-50%);
    height:6px;border-radius:var(--r-pill);
    background:rgba(255,255,255,.08);overflow:hidden;z-index:1;
}
.tl-progress-fill{
    display:block;height:100%;width:0;border-radius:inherit;
    background:linear-gradient(90deg,var(--green),var(--green-glow));
    transition:width 1.5s cubic-bezier(.22,1,.36,1);
}
.timeline.is-drawn .tl-progress-fill{width:100%}

.tl-track{
    list-style:none;margin:0;padding:0;position:relative;z-index:2;
    display:grid;grid-template-columns:repeat(6,1fr);
}
/* altura explícita: os filhos são absolutos, então sem isto a célula colapsaria
   para 0 e o top:50% do nó não alinharia com o rail (centro de .timeline). */
.tl-item{position:relative;display:flex;justify-content:center;min-height:480px}

/* Nó sobre o rail */
.tl-node{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:var(--tl-node);height:var(--tl-node);border-radius:50%;
    background:var(--green);z-index:3;
    box-shadow:0 0 0 5px var(--gray),0 0 0 7px var(--green);
    transition:transform .3s var(--ease),box-shadow .3s var(--ease);
}
.tl-item.is-current .tl-node::after{
    content:'';position:absolute;inset:0;border-radius:50%;
    background:var(--green);z-index:-1;animation:tl-pulse 2.4s ease-out infinite;
}
@keyframes tl-pulse{0%{transform:scale(1);opacity:.55}100%{transform:scale(2.8);opacity:0}}

/* Card — entra com fade/slide e abre no hover/foco/clique */
.tl-card{
    position:absolute;left:50%;width:calc(100% - 1.4rem);max-width:210px;
    background:var(--black);border:1px solid var(--border);
    border-radius:var(--r-lg);padding:1.15rem 1.2rem;text-align:center;opacity:0;
    transition:transform .45s cubic-bezier(.22,1,.36,1),opacity .45s,border-color .3s,box-shadow .3s;
}
.tl-card::after{content:'';position:absolute;left:50%;width:2px;background:var(--border);transition:background .3s}
/* zigue-zague: ímpares acima, pares abaixo do rail */
.tl-item:nth-child(odd) .tl-card{bottom:calc(50% + 30px);transform:translate(-50%,14px)}
.tl-item:nth-child(odd) .tl-card::after{top:100%;height:30px}
.tl-item:nth-child(even) .tl-card{top:calc(50% + 30px);transform:translate(-50%,-14px)}
.tl-item:nth-child(even) .tl-card::after{bottom:100%;height:30px}

.timeline.is-drawn .tl-card{opacity:1;transform:translate(-50%,0)}
.timeline.is-drawn .tl-item:nth-child(1) .tl-card{transition-delay:.15s}
.timeline.is-drawn .tl-item:nth-child(2) .tl-card{transition-delay:.27s}
.timeline.is-drawn .tl-item:nth-child(3) .tl-card{transition-delay:.39s}
.timeline.is-drawn .tl-item:nth-child(4) .tl-card{transition-delay:.51s}
.timeline.is-drawn .tl-item:nth-child(5) .tl-card{transition-delay:.63s}
.timeline.is-drawn .tl-item:nth-child(6) .tl-card{transition-delay:.75s}

.tl-year{display:block;font-size:1.05rem;font-weight:900;letter-spacing:.04em;color:var(--green);font-family:var(--ff);margin-bottom:.5rem}
.tl-text{font-size:.8rem;color:var(--muted);line-height:1.55;margin:0}

/* Interação */
.tl-item:hover .tl-node,.tl-item:focus-visible .tl-node,.tl-item.is-open .tl-node{
    transform:translate(-50%,-50%) scale(1.35);
    box-shadow:0 0 0 5px var(--gray),0 0 0 8px var(--green),0 0 20px var(--green-glow);
}
.tl-item:hover .tl-card,.tl-item:focus-visible .tl-card,.tl-item.is-open .tl-card{
    border-color:var(--green);box-shadow:0 22px 48px rgba(0,0,0,.45);
}
.tl-item:nth-child(odd):hover .tl-card,.tl-item:nth-child(odd):focus-visible .tl-card,.tl-item:nth-child(odd).is-open .tl-card{transform:translate(-50%,-6px)}
.tl-item:nth-child(even):hover .tl-card,.tl-item:nth-child(even):focus-visible .tl-card,.tl-item:nth-child(even).is-open .tl-card{transform:translate(-50%,6px)}
.tl-item:hover .tl-card::after,.tl-item:focus-visible .tl-card::after,.tl-item.is-open .tl-card::after{background:var(--green)}

/* Mobile/tablet: timeline vertical com rail à esquerda */
@media(max-width:991px){
    .timeline{margin-top:2.5rem}
    .tl-progress{top:0;bottom:0;left:9px;right:auto;width:4px;height:auto;transform:none}
    .tl-progress-fill{width:100%;height:0;transition:height 1.5s cubic-bezier(.22,1,.36,1)}
    .timeline.is-drawn .tl-progress-fill{height:100%}

    .tl-track{display:flex;flex-direction:column;gap:1.5rem;padding-left:2.5rem}
    .tl-item{display:block;min-height:0}
    .tl-node{top:.45rem;left:calc(11px - 2.5rem);transform:translate(-50%,0)}

    .tl-card,
    .tl-item:nth-child(odd) .tl-card,
    .tl-item:nth-child(even) .tl-card{
        position:relative;left:0;top:auto;bottom:auto;
        width:100%;max-width:none;text-align:left;transform:translateX(16px);
    }
    .tl-card::after,
    .tl-item:nth-child(odd) .tl-card::after,
    .tl-item:nth-child(even) .tl-card::after{display:none}
    .timeline.is-drawn .tl-card{transform:translateX(0)}

    .tl-item:hover .tl-node,.tl-item:focus-visible .tl-node,.tl-item.is-open .tl-node{transform:translate(-50%,0) scale(1.3)}
    .tl-item:nth-child(odd):hover .tl-card,.tl-item:nth-child(odd):focus-visible .tl-card,.tl-item:nth-child(odd).is-open .tl-card,
    .tl-item:nth-child(even):hover .tl-card,.tl-item:nth-child(even):focus-visible .tl-card,.tl-item:nth-child(even).is-open .tl-card{transform:translateX(4px)}
}
@media(prefers-reduced-motion:reduce){
    .tl-progress-fill,.tl-card,.tl-node{transition-duration:.01ms}
    .tl-item.is-current .tl-node::after{animation:none}
}

/* ══════════════════════════════════════════
   ABOUT — missão / visão / valores
══════════════════════════════════════════ */
#mvv{background:var(--black);padding:6rem 0}
.mvv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3.5rem}
.mvv-card{
    background:var(--gray);border:1px solid var(--border-soft);
    border-radius:var(--r-xl);padding:2.5rem 2rem;
    position:relative;overflow:hidden;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.mvv-card::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--green),transparent);
    transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease);
}
.mvv-card:hover{border-color:var(--border);transform:translateY(-3px);box-shadow:0 24px 64px rgba(0,0,0,.35)}
.mvv-card:hover::before{transform:scaleX(1)}
.mvv-num{
    position:absolute;bottom:-8px;right:16px;
    font-size:7rem;font-weight:900;font-style:italic;
    color:transparent;-webkit-text-stroke:1px rgba(87,155,36,.06);
    line-height:1;pointer-events:none;font-family:var(--ff);
}
.mvv-icon{
    width:56px;height:56px;background:var(--green-xl);border-radius:var(--r-md);
    border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
    color:var(--green);font-size:1.3rem;margin-bottom:1.5rem;transition:background var(--dur),color var(--dur),border-color var(--dur);
}
.mvv-card:hover .mvv-icon{background:var(--green);color:#fff;border-color:transparent}
.mvv-card h3{font-size:1.1rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--white);margin-bottom:.8rem}
.mvv-card p{font-size:.88rem;margin:0}
@media(max-width:767px){.mvv-grid{grid-template-columns:1fr}}
@media(min-width:768px) and (max-width:991px){.mvv-grid{grid-template-columns:1fr 1fr}}

/* ══════════════════════════════════════════
   ABOUT — diferenciais
══════════════════════════════════════════ */
#diferenciais{background:var(--gray);padding:6rem 0}
.diff-img-wrap{position:relative;padding-bottom:32px;padding-right:32px}
.diff-img{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.diff-img img{width:100%;height:520px;object-fit:cover;display:block}
.diff-img::before{
    content:'';position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg,var(--green),transparent);
}
.diff-badge{
    position:absolute;bottom:0;right:0;
    background:var(--green);border-radius:var(--r-lg);
    padding:1.4rem 1.8rem;text-align:center;min-width:144px;
    box-shadow:0 16px 40px var(--green-glow);
}
.diff-badge .db-n{font-size:2.2rem;font-weight:900;color:#fff;line-height:1}
.diff-badge .db-t{font-size:.6rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.75);margin-top:.3rem}
.diff-list{display:flex;flex-direction:column;gap:1.2rem;margin-top:2rem}
.diff-item{
    display:flex;gap:1.2rem;align-items:flex-start;
    background:var(--black);border:1px solid var(--border-soft);
    border-radius:var(--r-lg);padding:1.5rem;
    transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease);
}
.diff-item:hover{border-color:var(--border);transform:translateX(8px)}
.diff-item-icon{
    width:48px;height:48px;flex-shrink:0;
    background:var(--green-xl);border:1px solid var(--border);
    border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;
    color:var(--green);font-size:1.1rem;transition:background var(--dur),color var(--dur),border-color var(--dur);
}
.diff-item:hover .diff-item-icon{background:var(--green);color:#fff;border-color:transparent}
.diff-item h4{font-size:.9rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--white);margin-bottom:.35rem}
.diff-item p{font-size:.84rem;margin:0}
@media(max-width:991px){
    .diff-img-wrap{padding-bottom:16px;padding-right:16px}
    .diff-img img{height:320px}
}

/* ══════════════════════════════════════════
   ABOUT — CTA final
══════════════════════════════════════════ */
#cta-final{
    background:linear-gradient(135deg,var(--black) 0%,#152b07 100%);
    padding:6rem 0;position:relative;overflow:hidden;
}
#cta-final .sec-gfx{
    left:-80px;bottom:-64px;
    width:min(52vw,564px);
    stroke:rgba(87,155,36,.06);
}
.cta-inner{
    position:relative;z-index:2;overflow:hidden;
    background:rgba(87,155,36,.07);border:1px solid var(--border);
    border-radius:var(--r-xl);padding:4rem;
    display:flex;align-items:center;justify-content:space-between;gap:2rem;flex-wrap:wrap;
}
.cta-inner::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--green),transparent);
}
.cta-text h2{
    font-size:clamp(1.6rem,3vw,2.5rem);font-weight:900;text-transform:uppercase;
    color:var(--white);line-height:1.1;letter-spacing:-.01em;
}
.cta-text h2 span{color:var(--green)}
.cta-text p{font-size:.95rem;color:var(--muted);margin-top:.8rem;max-width:464px}
.cta-actions{display:flex;gap:1rem;flex-wrap:wrap;flex-shrink:0}
@media(max-width:991px){.cta-inner{padding:2.5rem}}

/* ══════════════════════════════════════════
   LOGIN PAGE
══════════════════════════════════════════ */
.login-wrap{
    display:grid;
    grid-template-columns:1fr 1fr;
    min-height:100svh;
    position:relative;
}

/* Background glow decorativo (login standalone) */
.bg-glow{position:fixed;pointer-events:none;border-radius:50%}
.bg-glow-1{
    top:-15%;right:-10%;
    width:min(704px,90vw);height:min(704px,90vw);
    background:radial-gradient(circle,rgba(87,155,36,.22) 0%,rgba(87,155,36,.06) 45%,transparent 70%);
}
.bg-glow-2{
    bottom:-20%;left:-10%;
    width:min(504px,70vw);height:min(504px,70vw);
    background:radial-gradient(circle,rgba(87,155,36,.10) 0%,transparent 65%);
}
.gfx-bg{
    position:fixed;bottom:-80px;right:-64px;z-index:0;
    width:min(39vw,339px);height:auto;
    fill:none;stroke:rgba(87,155,36,.07);
    pointer-events:none;
}

.login-left{position:relative;overflow:hidden;background:var(--gray)}
.login-left-img{
    position:absolute;inset:0;
    background:linear-gradient(135deg,#1a1a1a 0%,#152a07 60%,#1f4a0c 100%);
}
.login-left-img img{width:100%;height:100%;object-fit:cover;opacity:.35;display:block}
.login-left-overlay{
    position:absolute;inset:0;
    background:linear-gradient(to right, rgba(33,33,33,.82) 0%, transparent 100%);
    pointer-events:none;
}
.login-left::after{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--green),transparent);
}
.login-left-content{
    position:relative;z-index:2;
    display:flex;flex-direction:column;justify-content:center;
    height:100%;padding:3.5rem;
}
.login-eyebrow{
    display:inline-flex;align-items:center;gap:.6rem;
    font-size:.68rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;
    color:var(--green);margin-bottom:.8rem;
}
.login-eyebrow::before{
    content:'';display:block;width:24px;height:2px;
    background:var(--green);border-radius:var(--r-pill);
}
.login-claim{
    font-size:clamp(1.6rem,2.5vw,2.4rem);font-weight:900;text-transform:uppercase;
    color:var(--white);line-height:1.12;letter-spacing:-.01em;
}
.login-claim .acc{color:var(--green)}
.login-claim-sub{font-size:.9rem;color:var(--muted);line-height:1.7;margin-top:1rem;max-width:384px}
.login-stats{
    display:flex;gap:2.5rem;margin-top:2.5rem;
    padding-top:2rem;border-top:1px solid var(--border-soft);
}
.lst-n{font-size:1.8rem;font-weight:900;color:var(--green);line-height:1}
.lst-l{font-size:.65rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}

.login-right{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    padding:3rem 2rem;background:var(--black);position:relative;z-index:1;
}
.login-card{width:100%;max-width:424px}
.login-card-header{margin-bottom:2.5rem}
.login-card-header h1{
    font-size:1.8rem;font-weight:900;text-transform:uppercase;
    color:var(--white);letter-spacing:-.01em;line-height:1.1;
}
.login-card-header h1 span{color:var(--green)}
.login-card-header p{font-size:.88rem;color:var(--muted);line-height:1.65;margin-top:.6rem}

/* Campos do formulário */
.field-group{display:flex;flex-direction:column;gap:1.2rem;margin-bottom:1.5rem}
.field-wrap{position:relative}
.field-label{
    display:block;font-size:.67rem;font-weight:800;letter-spacing:.18em;
    text-transform:uppercase;color:var(--muted);margin-bottom:.5rem;
}
.field-input{
    width:100%;background:var(--gray);border:1.5px solid var(--border-soft);
    border-radius:var(--r-md);padding:.9rem 1.1rem .9rem 3rem;
    font-family:var(--ff);font-size:.92rem;color:var(--white);outline:none;
    transition:border-color var(--dur),box-shadow var(--dur),background var(--dur);
}
.field-input::placeholder{color:rgba(249,249,249,.42)}
.field-input:focus{border-color:var(--green);background:rgba(87,155,36,.05);box-shadow:0 0 0 4px rgba(87,155,36,.12)}
.field-icon{
    position:absolute;left:1.05rem;top:50%;transform:translateY(-50%);
    color:rgba(249,249,249,.3);font-size:.9rem;pointer-events:none;transition:color var(--dur);
}
.field-wrap:focus-within .field-icon{color:var(--green)}
.field-toggle{
    position:absolute;right:1rem;top:50%;transform:translateY(-50%);
    background:none;border:none;padding:0;cursor:pointer;
    color:rgba(249,249,249,.3);font-size:.85rem;transition:color var(--dur);line-height:1;
}
.field-toggle:hover{color:var(--green)}
.field-extras{display:flex;align-items:center;justify-content:space-between;margin-top:.6rem}
.remember-wrap{display:flex;align-items:center;gap:.5rem;cursor:pointer}
.remember-wrap input[type="checkbox"]{width:16px;height:16px;accent-color:var(--green);cursor:pointer}
.remember-wrap span{font-size:.78rem;color:var(--muted);font-weight:600}
.forgot-link{
    font-size:.78rem;font-weight:700;letter-spacing:.06em;color:var(--green);
    text-decoration:none;transition:color var(--dur);
}
.forgot-link:hover{color:#fff}

/* Botão login */
.btn-login{
    width:100%;padding:1rem;background:var(--green);color:#fff;border:none;
    border-radius:var(--r-pill);font-family:var(--ff);font-size:.85rem;font-weight:800;
    letter-spacing:.12em;text-transform:uppercase;cursor:pointer;margin-top:1.8rem;
    display:flex;align-items:center;justify-content:center;gap:.6rem;
    transition:background var(--dur),transform var(--dur),box-shadow var(--dur);
    position:relative;overflow:hidden;
}
.btn-login::before{
    content:'';position:absolute;inset:0;background:rgba(255,255,255,.08);
    opacity:0;transition:opacity var(--dur);
}
.btn-login:hover{background:var(--green-d);transform:translateY(-3px);box-shadow:0 8px 32px var(--green-glow)}
.btn-login:hover::before{opacity:1}
.btn-login:active{transform:translateY(0);box-shadow:none}
.btn-login.loading .btn-label{opacity:0}
.btn-login.loading .btn-spinner{display:flex}
.btn-spinner{
    display:none;align-items:center;justify-content:center;
    position:absolute;inset:0;
}
.spinner-ring{
    width:24px;height:24px;border:2.5px solid rgba(255,255,255,.3);
    border-top-color:#fff;border-radius:50%;
    animation:spin .75s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.login-divider{display:flex;align-items:center;gap:1rem;margin:1.6rem 0}
.login-divider::before,.login-divider::after{content:'';flex:1;height:1px;background:var(--border-soft)}
.login-divider span{
    font-size:.7rem;font-weight:700;letter-spacing:.14em;
    text-transform:uppercase;color:rgba(249,249,249,.3);white-space:nowrap;
}
.login-support{
    display:flex;align-items:center;gap:.8rem;
    background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:1rem 1.2rem;
}
.support-icon{
    width:40px;height:40px;flex-shrink:0;
    background:var(--green-xl);border:1px solid var(--border);border-radius:var(--r-md);
    display:flex;align-items:center;justify-content:center;color:var(--green);font-size:.9rem;
}
.login-support p{font-size:.78rem;color:var(--muted);line-height:1.55;margin:0}
.login-support a{color:var(--green);text-decoration:none;font-weight:700;transition:color var(--dur)}
.login-support a:hover{color:#fff}
.login-footer-note{text-align:center;margin-top:2.5rem;font-size:.72rem;color:rgba(249,249,249,.42);line-height:1.6}
.login-footer-note a{color:rgba(249,249,249,.35);text-decoration:none;transition:color var(--dur)}
.login-footer-note a:hover{color:var(--green)}

/* Feedback de erro */
.field-error{
    display:none;align-items:center;gap:.4rem;
    font-size:.73rem;font-weight:700;color:#f56565;margin-top:.45rem;
}
.field-error.show{display:flex}
.field-error i{font-size:.7rem;flex-shrink:0}
.field-input.has-error{border-color:#f56565;box-shadow:0 0 0 4px rgba(245,101,101,.12)}

/* Container de feedback (flash / ajaxMessage) — sem estilo próprio */
.login-alert{
    display:none;
    flex-direction:column;
    gap:.5rem;
    margin-bottom:1.4rem;
}
.login-alert.show{
    display:flex;
    animation:fadeUp .4s var(--ease) both;
}

/* Login responsive */
@media(max-width:991px){
    .login-wrap{grid-template-columns:1fr}
    .login-left{display:none}
    .login-right{padding:2rem 1.2rem;justify-content:flex-start;padding-top:3rem}
    .login-card{max-width:100%}
}
@media(max-width:575px){
    .login-right{padding-top:2rem}
}
/* Nas telas de auth o card de suporte ja oferece o mesmo contato; o botao
   flutuante so cobria o card/botoes no mobile. */
@media(max-width:767px){
    body:has(.login-wrap) .wa-float{display:none}
}

/* Animações de entrada do card de login */
.login-card-header{opacity:0;animation:fadeUp .6s .1s forwards}
.field-group{opacity:0;animation:fadeUp .6s .25s forwards}
.field-extras{opacity:0;animation:fadeUp .6s .32s forwards}
.btn-login{opacity:0;animation:fadeUp .6s .4s forwards}
.login-divider{opacity:0;animation:fadeUp .6s .48s forwards}
.login-support{opacity:0;animation:fadeUp .6s .55s forwards}
.login-footer-note{opacity:0;animation:fadeUp .6s .62s forwards}

/* ── auth-reset: força de senha + match indicator ── */
.strength-wrap{margin-top:.6rem}
.strength-bar{height:4px;border-radius:2px;background:var(--border-soft);overflow:hidden}
.strength-fill{height:100%;width:0;border-radius:2px;transition:width .35s var(--ease),background .35s}
.strength-label{
    font-size:.67rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    color:var(--muted);margin-top:.4rem;display:block;transition:color .3s;
}
.match-msg{
    display:none;align-items:center;gap:.4rem;
    font-size:.73rem;font-weight:700;margin-top:.45rem;
}
.match-msg.ok{display:flex;color:#68d391}
.match-msg.fail{display:flex;color:#f56565}
.match-msg i{font-size:.7rem;flex-shrink:0}

/* ── auth-2fa: caixas OTP ── */
.otp-group{
    display:flex;gap:.6rem;justify-content:center;
    margin:1.8rem 0;
}
.otp-box{
    width:56px;height:64px;
    background:var(--gray);
    border:1.5px solid var(--border-soft);
    border-radius:var(--r-md);
    font-family:var(--ff);font-size:1.6rem;font-weight:900;
    color:var(--white);text-align:center;
    outline:none;caret-color:transparent;
    transition:border-color var(--dur),box-shadow var(--dur),background var(--dur);
    -moz-appearance:textfield;
}
.otp-box::-webkit-outer-spin-button,
.otp-box::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.otp-box:focus{
    border-color:var(--green);
    background:rgba(87,155,36,.06);
    box-shadow:0 0 0 4px rgba(87,155,36,.14);
}
.otp-box.filled{border-color:rgba(87,155,36,.45)}
.otp-box.has-error{border-color:#f56565;box-shadow:0 0 0 4px rgba(245,101,101,.12)}
/* Responsivo: as 6 caixas de 56px estouravam telas estreitas — caixas
   elásticas na grade de 8 e separador some. */
@media (max-width: 480px){
    .otp-group{gap:8px;justify-content:center}
    .otp-sep{display:none}
    .otp-box{flex:1 1 0;min-width:0;max-width:48px;height:56px;font-size:24px}
}
.otp-sep{
    align-self:center;font-size:1.4rem;font-weight:900;
    color:var(--border);line-height:1;user-select:none;
}
.recovery-toggle{
    display:inline-flex;align-items:center;gap:.45rem;
    font-size:.75rem;font-weight:700;letter-spacing:.07em;
    color:var(--muted);text-decoration:none;
    background:none;border:none;cursor:pointer;padding:0;
    transition:color var(--dur);margin-top:1.4rem;
}
.recovery-toggle:hover{color:var(--green)}
.recovery-toggle i{transition:transform .3s}
.recovery-toggle.open i{transform:rotate(180deg)}
.recovery-panel{
    display:none;
    background:rgba(87,155,36,.04);
    border:1px solid var(--border-soft);
    border-radius:var(--r-lg);
    padding:1.4rem;
    margin-top:.8rem;
}
.recovery-panel.open{display:block}
.email-badge{
    display:inline-flex;align-items:center;gap:.5rem;
    background:var(--gray);border:1px solid var(--border-soft);
    border-radius:var(--r-pill);padding:.35rem 1rem;
    font-size:.78rem;font-weight:700;color:var(--muted);
    margin-top:.5rem;max-width:100%;overflow:hidden;
}
.email-badge i{color:var(--green);flex-shrink:0;font-size:.75rem}
.email-badge span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-hints{
    display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem;
    margin-top:.8rem;
}
.app-hint{
    font-size:.63rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
    color:rgba(249,249,249,.42);background:rgba(255,255,255,.04);
    border:1px solid var(--border-soft);border-radius:var(--r-pill);
    padding:.25rem .75rem;
}

/* ── error page ── */
.error-page{
    position:relative;overflow:hidden;
    min-height:calc(100svh - 112px);
    display:flex;align-items:center;justify-content:center;
    background:var(--black);
    padding:5rem 1.5rem;
}
.error-glow-1{
    position:absolute;top:-15%;right:-10%;
    width:min(704px,90vw);height:min(704px,90vw);
    background:radial-gradient(circle,rgba(87,155,36,.2) 0%,rgba(87,155,36,.05) 45%,transparent 70%);
    border-radius:50%;pointer-events:none;
}
.error-glow-2{
    position:absolute;bottom:-20%;left:-10%;
    width:min(504px,70vw);height:min(504px,70vw);
    background:radial-gradient(circle,rgba(87,155,36,.08) 0%,transparent 65%);
    border-radius:50%;pointer-events:none;
}
.error-code-bg{
    position:absolute;
    top:50%;left:50%;
    transform:translate(-50%,-52%);
    font-size:min(65vw,520px);
    font-weight:900;font-style:italic;
    color:transparent;
    -webkit-text-stroke:1px rgba(87,155,36,.07);
    line-height:1;pointer-events:none;user-select:none;
    font-family:var(--ff);white-space:nowrap;
}
.error-inner{
    position:relative;z-index:2;
    text-align:center;max-width:560px;
    opacity:0;animation:fadeUp .7s .1s forwards;
}
.error-badge{
    display:inline-flex;align-items:center;gap:.6rem;
    background:rgba(87,155,36,.1);border:1px solid var(--border);
    border-radius:var(--r-pill);padding:.45rem 1.4rem;
    font-size:.72rem;font-weight:900;letter-spacing:.22em;text-transform:uppercase;
    color:var(--green);margin-bottom:2rem;
}
.error-badge::before{
    content:'';width:8px;height:8px;
    background:var(--green);border-radius:50%;
    animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{
    0%,100%{opacity:1;transform:scale(1)}
    50%{opacity:.4;transform:scale(.7)}
}
.error-title{
    font-size:clamp(1.9rem,4vw,3rem);font-weight:900;text-transform:uppercase;
    color:var(--white);line-height:1.1;letter-spacing:-.01em;
    margin-bottom:1rem;
}
.error-title .accent{color:var(--green)}
.error-message{font-size:.97rem;color:var(--muted);line-height:1.8;margin-bottom:2.5rem}
.error-divider{
    width:64px;height:3px;
    background:linear-gradient(90deg,var(--green),transparent);
    border-radius:var(--r-pill);
    margin:0 auto 2.5rem;
}
.error-actions{
    display:flex;flex-wrap:wrap;gap:1rem;
    align-items:center;justify-content:center;
}
.error-help-link{
    color:rgba(249,249,249,.35);text-decoration:none;
    transition:color var(--dur);
}
.error-help-link:hover{color:var(--green)}
/* ══════════════════════════════════════════
   AJAX LOAD OVERLAY
══════════════════════════════════════════ */
.ajax_load{
    display:none;
    position:fixed;inset:0;
    background:rgba(15,15,15,.82);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    z-index:9999;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:1.4rem;
}
.ajax_load_box{
    display:flex;flex-direction:column;align-items:center;gap:1.2rem;
}
.ajax_load_box_circle{
    position:relative;
    width:56px;height:56px;
    border:3px solid rgba(87,155,36,.18);
    border-top-color:var(--green);
    border-radius:50%;
    animation:spin .85s linear infinite;
}
.ajax_load_box_circle::before{
    content:'';
    position:absolute;inset:8px;
    border:2px solid rgba(87,155,36,.06);
    border-right-color:rgba(87,155,36,.38);
    border-radius:50%;
    animation:spin 1.5s linear infinite reverse;
}
.ajax_load_box_title{
    font-family:var(--ff);
    font-size:.72rem;font-weight:800;
    letter-spacing:.22em;text-transform:uppercase;
    color:var(--muted);margin:0;
}

/* ══════════════════════════════════════════
   AJAX MESSAGE SYSTEM (.message)
══════════════════════════════════════════ */
.ajax_response{flex:none}

.message{
    display:flex;align-items:flex-start;gap:.7rem;
    width:100%;
    padding:.85rem 1.1rem;
    border-radius:var(--r-md);
    font-family:var(--ff);font-size:.84rem;font-weight:700;line-height:1.5;
    border:1.5px solid;
    position:relative;overflow:hidden;
    animation:fadeUp .35s var(--ease) both;
}
.message+.message{margin-top:.5rem}
.message i{flex-shrink:0;font-size:.88rem;margin-top:.15rem}

.message_time{
    position:absolute;bottom:0;left:0;
    height:3px;width:0;
    pointer-events:none;
    border-radius:0 0 var(--r-md) var(--r-md);
}

.message.success{
    background:rgba(87,155,36,.1);
    border-color:rgba(87,155,36,.3);
    color:#a3d977;
}
.message.success .message_time{background:var(--green)}

.message.error{
    background:rgba(245,101,101,.08);
    border-color:rgba(245,101,101,.28);
    color:#fc8181;
}
.message.error .message_time{background:#f56565}

.message.warning{
    background:rgba(246,173,85,.08);
    border-color:rgba(246,173,85,.28);
    color:#f6ad55;
}
.message.warning .message_time{background:#f6ad55}

.message.info{
    background:rgba(99,179,237,.08);
    border-color:rgba(99,179,237,.28);
    color:#90cdf4;
}
.message.info .message_time{background:#63b3ed}

/* ══════════════════════════════════════════
   LOGOS MA7 CAPITAL — imagem
══════════════════════════════════════════ */
.nav-logo .logo-img{height:40px;width:auto;display:block}
.foot-logo .logo-img{height:40px;width:auto;display:block}
#mob-drawer .logo-img{width:auto;display:block;margin-bottom:2rem}
.auth-logo{height:56px;width:auto;display:block;margin-bottom:2rem;opacity:0;animation:fadeUp .6s .02s forwards}
/* O topo do site ja mostra a marca; dentro do card o logo encolhe para
   devolver espaco ao formulario em telas curtas. */
@media(max-width:575px){
    .auth-logo{height:42px;margin-bottom:1.25rem}
}

/* ══════════════════════════════════════════
   TEAM PAGE — fundador em destaque
══════════════════════════════════════════ */
#lideranca{background:var(--gray);padding:6rem 0}
.leader-avatar-panel{
    height:520px;border-radius:var(--r-xl);overflow:hidden;
    background:linear-gradient(135deg,#212121 0%,#1c3e0a 60%,#243f12 100%);
    position:relative;display:flex;align-items:center;justify-content:center;
    border:1px solid var(--border-soft);
}
.leader-avatar-panel::before{
    content:attr(data-initials);position:absolute;
    font-size:18rem;font-weight:900;font-style:italic;
    color:transparent;-webkit-text-stroke:1px rgba(87,155,36,.12);
    right:-32px;bottom:-32px;line-height:1;pointer-events:none;font-family:var(--ff);
}
.leader-avatar-panel::after{
    content:'';position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg,var(--green),transparent);
}
.leader-circle{
    width:112px;height:112px;border-radius:50%;
    background:rgba(87,155,36,.14);border:2px solid var(--green);
    display:flex;align-items:center;justify-content:center;
    font-size:2.4rem;font-weight:900;font-style:italic;color:var(--green);
    font-family:var(--ff);letter-spacing:-.03em;position:relative;z-index:1;
    box-shadow:0 0 0 16px rgba(87,155,36,.06);
}
.leader-photo{
    position:absolute;inset:0;width:100%;height:100%;
    object-fit:cover;object-position:center top;z-index:1;
}
.leader-avatar-panel.has-photo::before{display:none}
.leader-avatar-panel.has-photo::after{z-index:2}
.leader-quote{
    border-left:4px solid var(--green);
    border-radius:0 var(--r-sm) var(--r-sm) 0;
    padding:1rem 1.5rem;margin:1.2rem 0;
    background:rgba(87,155,36,.05);
}
.leader-quote p{
    font-size:clamp(1rem,2vw,1.3rem);font-weight:800;
    color:var(--white);line-height:1.4;font-style:italic;margin:0;
}
.leader-name{
    font-size:clamp(2rem,3.5vw,3rem);font-weight:900;text-transform:uppercase;
    color:var(--white);letter-spacing:-.02em;line-height:1.05;
}
.leader-name .accent{color:var(--green)}

/* ══════════════════════════════════════════
   TEAM PAGE — grid completo
══════════════════════════════════════════ */
#time-completo{background:var(--black);padding:6rem 0}
.team-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.8rem}
.team-tag{
    display:inline-flex;align-items:center;gap:.3rem;
    background:var(--green-xl);border:1px solid var(--border);border-radius:var(--r-pill);
    padding:.25rem .65rem;font-size:.6rem;font-weight:800;letter-spacing:.1em;
    text-transform:uppercase;color:var(--green);
}

/* ══════════════════════════════════════════
   TEAM PAGE — cultura
══════════════════════════════════════════ */
#cultura{background:var(--gray);padding:6rem 0}

/* ══════════════════════════════════════════
   TEAM PAGE — vagas / join us
══════════════════════════════════════════ */
#vagas{background:var(--black);padding:6rem 0;position:relative;overflow:hidden}
#vagas .sec-gfx{
    right:-64px;bottom:-48px;
    width:min(27vw,328px);
    stroke:rgba(87,155,36,.06);
}
.vaga-inner{
    position:relative;z-index:2;overflow:hidden;
    background:rgba(87,155,36,.07);border:1px solid var(--border);
    border-radius:var(--r-xl);padding:4rem;
}
.vaga-inner::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--green),transparent);
}
.vaga-criteria{
    display:flex;flex-direction:column;gap:.65rem;
    list-style:none;padding-left:0;margin:1.6rem 0;
}
.vaga-criteria li{
    display:flex;align-items:flex-start;gap:.65rem;
    font-size:.9rem;color:var(--muted);line-height:1.6;
}
.vaga-criteria li i{color:var(--green);flex-shrink:0;margin-top:.22rem}
.vaga-criteria li strong{color:var(--white)}

/* ══════════════════════════════════════════
   TEAM PAGE — responsive
══════════════════════════════════════════ */
@media(max-width:991px){
    .leader-avatar-panel{height:360px}
    .leader-avatar-panel::before{font-size:12rem;right:-16px;bottom:-16px}
}
@media(max-width:767px){
    .leader-avatar-panel{height:280px}
    .leader-avatar-panel::before{font-size:8rem}
    .leader-circle{width:80px;height:80px;font-size:1.8rem}
    .vaga-inner{padding:2rem}
}

/* ══════════════════════════════════════════
   SERVICES PAGE — visão geral (overview grid)
══════════════════════════════════════════ */
#svc-overview{background:var(--black);padding:6rem 0}
.svc-ov-grid{
    display:grid;grid-template-columns:repeat(3,1fr);
    gap:1.5rem;margin-top:3.5rem;
}
.svc-ov-card{
    background:var(--gray);border:1px solid var(--border-soft);
    border-radius:var(--r-xl);padding:2rem;
    display:flex;flex-direction:column;
    text-decoration:none;position:relative;overflow:hidden;
    transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease);
}
.svc-ov-card::before{
    content:'';position:absolute;left:0;top:0;bottom:0;
    width:3px;background:var(--green);
    transform:scaleY(0);transform-origin:bottom;transition:transform .4s var(--ease);
}
.svc-ov-card:hover{border-color:var(--border);transform:translateY(-3px);box-shadow:0 24px 56px rgba(0,0,0,.35)}
.svc-ov-card:hover::before{transform:scaleY(1)}
.svc-ov-num{
    font-size:2.8rem;font-weight:900;font-style:italic;
    color:rgba(87,155,36,.15);line-height:1;font-family:var(--ff);margin-bottom:.5rem;
    transition:color var(--dur);
}
.svc-ov-card:hover .svc-ov-num{color:rgba(87,155,36,.3)}
.svc-ov-icon{
    width:48px;height:48px;background:var(--green-xl);border-radius:var(--r-md);
    border:1px solid var(--border);display:flex;align-items:center;justify-content:center;
    color:var(--green);font-size:1.05rem;margin-bottom:1.2rem;flex-shrink:0;
    transition:background var(--dur),color var(--dur),border-color var(--dur);
}
.svc-ov-card:hover .svc-ov-icon{background:var(--green);color:#fff;border-color:transparent}
.svc-ov-card h4{font-size:.85rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--white);margin-bottom:.5rem}
.svc-ov-card p{font-size:.8rem;line-height:1.6;margin:0;flex:1}
.svc-ov-arrow{
    display:inline-flex;align-items:center;gap:.4rem;
    font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
    color:var(--green);margin-top:1.2rem;transition:gap .25s;
}
.svc-ov-card:hover .svc-ov-arrow{gap:.8rem}

/* ══════════════════════════════════════════
   SERVICES PAGE — nav de âncoras
══════════════════════════════════════════ */
#svc-anchor-nav{
    background:rgba(33,33,33,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border-bottom:1px solid var(--border-soft);
    position:sticky;top:80px;z-index:900;
    padding:.6rem 0;
}
.san-track{
    display:flex;align-items:center;gap:.4rem;
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;
    padding:.1rem 0;
}
.san-track::-webkit-scrollbar{display:none}
.san-link{
    display:inline-flex;align-items:center;gap:.5rem;flex-shrink:0;
    font-size:.65rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
    color:var(--muted);text-decoration:none;
    padding:.4rem 1rem;border-radius:var(--r-pill);
    border:1px solid transparent;
    transition:color var(--dur),border-color var(--dur),background var(--dur);
}
.san-link:hover,.san-link.active{color:var(--green);border-color:var(--border);background:var(--green-xl)}
.san-n{font-size:.58rem;opacity:.55;font-style:italic}

/* ══════════════════════════════════════════
   SERVICES PAGE — seções de detalhe
══════════════════════════════════════════ */
.svc-detail{padding:6rem 0;position:relative;overflow:hidden}
.svc-detail-img-wrap{position:relative;border-radius:var(--r-xl);overflow:hidden}
.svc-detail-img-wrap img{width:100%;height:480px;object-fit:cover;display:block}
.svc-detail-img-wrap::before{
    content:'';position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg,var(--green),transparent);z-index:1;
}
.svc-detail-overlay{
    position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 40%,rgba(33,33,33,.88) 100%);
    z-index:1;pointer-events:none;
}
.svc-detail-num{
    font-size:4rem;font-weight:900;font-style:italic;
    color:rgba(87,155,36,.15);line-height:1;font-family:var(--ff);margin-bottom:-.4rem;
}
.svc-detail h2{
    font-size:clamp(1.6rem,2.8vw,2.4rem);font-weight:900;text-transform:uppercase;
    color:var(--white);line-height:1.1;letter-spacing:-.01em;margin-bottom:1.1rem;
}
.svc-detail h2 .accent{color:var(--green)}
.svc-bullets{list-style:none;padding-left:0;display:flex;flex-direction:column;gap:.65rem;margin:1.4rem 0}
.svc-bullets li{display:flex;align-items:flex-start;gap:.65rem;font-size:.875rem;color:var(--muted);line-height:1.6}
.svc-bullets li i{color:var(--green);flex-shrink:0;margin-top:.2rem;font-size:.82rem}
.svc-bullets li strong{color:var(--white);font-weight:700}

/* Risk / Return / Horizonte */
.svc-rr{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem;margin-bottom:1.5rem}
.svc-rr-cell{
    background:rgba(var(--black-rgb),.6);border:1px solid var(--border-soft);
    border-radius:var(--r-lg);padding:1rem;text-align:center;
}
.rrc-label{font-size:.62rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:.4rem}
.rrc-val{font-size:.8rem;font-weight:800;color:var(--white);display:block;margin-bottom:.4rem}
.rrc-dots{display:flex;gap:4px;justify-content:center}
.rrc-dots span{width:8px;height:8px;border-radius:50%;background:var(--border-soft);flex-shrink:0}
.rrc-dots span.on{background:var(--green)}
.rrc-dots span.half{background:rgba(87,155,36,.4)}

/* Utilitário: ocultar RR pontuais sem remover do HTML.
   Aplicar a classe `is-svc-hidden` no .svc-rr ou .svc-rr-cell. */
.is-svc-hidden{display:none !important}

/* ══════════════════════════════════════════
   SERVICES PAGE — processo e stats
══════════════════════════════════════════ */
#processo-ma7{background:var(--black);padding:6rem 0}
#numeros-servicos{
    background:linear-gradient(135deg,var(--black) 0%,#163806 50%,#2d5e16 100%);
    padding:6rem 0;position:relative;overflow:hidden;
}
#numeros-servicos .sec-gfx{
    right:-40px;bottom:-64px;
    width:min(29vw,347px);
    stroke:rgba(255,255,255,.04);
}

/* ══════════════════════════════════════════
   SERVICES PAGE — FAQ
══════════════════════════════════════════ */
#svc-faq{background:var(--gray);padding:6rem 0}
.faq-list{margin-top:2.5rem;display:flex;flex-direction:column;gap:.5rem}
.faq-item{
    background:var(--black);border:1px solid var(--border-soft);
    border-radius:var(--r-lg);overflow:hidden;
    transition:border-color var(--dur);
}
.faq-item.open{border-color:var(--border)}
.faq-q{
    width:100%;background:none;border:none;color:var(--white);
    display:flex;align-items:center;justify-content:space-between;gap:1rem;
    padding:1.3rem 1.6rem;cursor:pointer;text-align:left;
    font-family:var(--ff);font-size:.9rem;font-weight:700;
    transition:color var(--dur);
}
.faq-q:hover,.faq-item.open .faq-q{color:var(--green)}
.faq-q-icon{
    width:32px;height:32px;border-radius:50%;border:1px solid var(--border-soft);
    display:flex;align-items:center;justify-content:center;flex-shrink:0;
    color:var(--muted);font-size:.8rem;
    transition:transform var(--dur),border-color var(--dur),color var(--dur),background var(--dur);
}
.faq-item.open .faq-q-icon{transform:rotate(45deg);border-color:var(--green);color:var(--green);background:var(--green-xl)}
.faq-a{overflow:hidden;max-height:0;transition:max-height .35s var(--ease)}
.faq-a-inner{padding:0 1.6rem 1.3rem;font-size:.875rem;color:var(--muted);line-height:1.75}
.faq-item.open .faq-a{max-height:240px}

/* ══════════════════════════════════════════
   SERVICES PAGE — responsive
══════════════════════════════════════════ */
@media(max-width:991px){
    .svc-ov-grid{grid-template-columns:1fr 1fr}
    .svc-detail-img-wrap img{height:320px}
}
@media(max-width:767px){
    .svc-ov-grid{grid-template-columns:1fr}
    .san-link{font-size:.6rem;padding:.35rem .7rem}
    .svc-rr{gap:.65rem}
}
/* ══════════════════════════════════════════
   MEDIA PAGE
══════════════════════════════════════════ */

/* sticky anchor nav */
#midia-nav{background:rgba(33,33,33,.96);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-soft);position:sticky;top:80px;z-index:900;padding:.6rem 0}

/* featured press card */
#midia-destaque{background:var(--black);padding:6rem 0}
.mfeat{display:grid;grid-template-columns:1fr 1fr;gap:0;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border-soft);text-decoration:none;transition:border-color var(--dur),box-shadow var(--dur)}
.mfeat:hover{border-color:var(--green);box-shadow:0 8px 40px rgba(87,155,36,.18)}
.mfeat-img{position:relative;min-height:360px;background:#1a2e10;overflow:hidden}
.mfeat-img img{width:100%;height:100%;object-fit:cover;opacity:.75;transition:opacity var(--dur),transform var(--dur)}
.mfeat:hover .mfeat-img img{opacity:.9;transform:scale(1.03)}
.mfeat-badge{position:absolute;top:1.2rem;left:1.2rem;background:var(--green);color:var(--white);font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;padding:.3rem .8rem;border-radius:var(--r-pill)}
.mfeat-date{position:absolute;bottom:1.2rem;left:1.2rem;font-size:.65rem;color:rgba(255,255,255,.55);font-weight:600}
.mfeat-body{background:var(--gray);padding:3rem}
.mfeat-source{font-size:.6rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green);margin-bottom:.75rem}
.mfeat-title{font-size:clamp(1.3rem,2vw,1.8rem);font-weight:900;color:var(--white);line-height:1.2;margin-bottom:1rem;font-family:var(--ff)}
.mfeat-excerpt{font-size:.875rem;color:var(--muted);line-height:1.75;margin-bottom:1.5rem}
.mfeat-cta{display:inline-flex;align-items:center;gap:.5rem;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--green)}
.mfeat-cta i{transition:transform var(--dur)}
.mfeat:hover .mfeat-cta i{transform:translateX(4px)}

/* press cards grid */
#imprensa{background:var(--gray);padding:6rem 0}
.press-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3.5rem}
.press-card{background:var(--black);border:1px solid var(--border-soft);border-radius:var(--r-xl);padding:2rem;display:flex;flex-direction:column;gap:.75rem;text-decoration:none;position:relative;overflow:hidden;transition:border-color var(--dur),transform var(--dur),box-shadow var(--dur)}
.press-card:hover{border-color:var(--green);transform:translateY(-4px);box-shadow:0 8px 32px rgba(87,155,36,.14)}
.press-card-top{display:flex;flex-direction:column;gap:.4rem}
.press-outlet-badge{display:inline-flex;align-self:flex-start;font-size:.6rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--white);background:rgba(255,255,255,.07);border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:.2rem .55rem;margin-bottom:.1rem}
.press-tag{font-size:.58rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}
.press-title{font-size:.95rem;font-weight:700;color:var(--white);line-height:1.35;font-family:var(--ff)}
.press-desc{font-size:.8rem;color:var(--muted);line-height:1.65;flex:1}
.press-foot{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:.75rem;border-top:1px solid var(--border-soft)}
.press-date{font-size:.65rem;color:var(--muted);font-weight:600}
.press-arrow{font-size:.65rem;color:var(--green);transition:transform var(--dur)}
.press-card:hover .press-arrow{transform:translateX(4px)}

/* video / TV section */
#tv-video{background:var(--black);padding:6rem 0}
.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3.5rem}
.video-card{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border-soft);text-decoration:none;display:flex;flex-direction:column;transition:border-color var(--dur),transform var(--dur),box-shadow var(--dur)}
.video-card:hover{border-color:var(--green);transform:translateY(-4px);box-shadow:0 8px 32px rgba(87,155,36,.14)}
.video-thumb{position:relative;aspect-ratio:16/9;overflow:hidden;background:#111}
.video-thumb img{width:100%;height:100%;object-fit:cover;opacity:.75;transition:opacity var(--dur),transform var(--dur)}
.video-card:hover .video-thumb img{opacity:.9;transform:scale(1.04)}
.video-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.play-btn{width:56px;height:56px;border-radius:50%;background:rgba(87,155,36,.9);border:2px solid var(--white);display:flex;align-items:center;justify-content:center;color:var(--white);font-size:1.1rem;padding-left:3px;transition:background var(--dur),transform var(--dur)}
.video-card:hover .play-btn{background:var(--green);transform:scale(1.1)}
.video-dur{position:absolute;bottom:.6rem;right:.6rem;background:rgba(0,0,0,.75);font-size:.6rem;font-weight:700;color:var(--white);padding:.2rem .5rem;border-radius:var(--r-sm)}
.video-channel{position:absolute;top:.7rem;left:.7rem;background:rgba(0,0,0,.7);font-size:.58rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--white);padding:.25rem .6rem;border-radius:var(--r-pill)}
.video-body{background:var(--gray);padding:1.25rem 1.5rem;flex:1;display:flex;flex-direction:column;gap:.5rem}
.video-tag{font-size:.58rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}
.video-title{font-size:.9rem;font-weight:700;color:var(--white);line-height:1.35;font-family:var(--ff);flex:1}
.video-date{font-size:.65rem;color:var(--muted);font-weight:600}

/* social feeds */
#social-feeds{background:var(--gray);padding:6rem 0}
.social-col-head{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}
.social-icon{width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem}
.social-icon.ig{background:radial-gradient(circle at 30% 107%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 60%,#285AEB 90%);color:#fff}
.social-icon.li{background:#0A66C2;color:#fff}
.social-col-title{font-size:.85rem;font-weight:800;color:var(--white);font-family:var(--ff)}
.social-col-handle{font-size:.7rem;color:var(--muted)}

/* instagram grid */
.ig-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem}
.ig-post{aspect-ratio:1;border-radius:var(--r-lg);overflow:hidden;position:relative;cursor:pointer}
.ig-post img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur),opacity var(--dur)}
.ig-post:hover img{transform:scale(1.08);opacity:.75}
.ig-post-overlay{position:absolute;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;gap:1rem;opacity:0;transition:opacity var(--dur)}
.ig-post:hover .ig-post-overlay{opacity:1}
.ig-stat{display:flex;align-items:center;gap:.3rem;color:var(--white);font-size:.75rem;font-weight:700}

/* linkedin posts */
.li-feed{display:flex;flex-direction:column;gap:1rem}
.li-card{background:var(--black);border:1px solid var(--border-soft);border-radius:var(--r-xl);padding:1.5rem;text-decoration:none;display:block;transition:border-color var(--dur),transform var(--dur)}
.li-card:hover{border-color:var(--green);transform:translateY(-2px)}
.li-head{display:flex;align-items:center;gap:.85rem;margin-bottom:1rem}
.li-avatar{width:44px;height:44px;border-radius:50%;background:var(--green-xl);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-weight:900;font-style:italic;font-size:1rem;color:var(--green);flex-shrink:0;font-family:var(--ff)}
.li-name{font-size:.85rem;font-weight:700;color:var(--white)}
.li-role{font-size:.7rem;color:var(--muted)}
.li-body{font-size:.82rem;color:var(--muted);line-height:1.7;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.li-reactions{display:flex;align-items:center;gap:1rem;padding-top:.75rem;border-top:1px solid var(--border-soft)}
.li-react{display:flex;align-items:center;gap:.35rem;font-size:.65rem;color:var(--muted);font-weight:600}
.li-react i{color:var(--green)}

/* responsive */
@media(max-width:991px){
    .mfeat{grid-template-columns:1fr}
    .mfeat-img{min-height:240px}
    .press-grid{grid-template-columns:1fr 1fr}
    .video-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:767px){
    .press-grid{grid-template-columns:1fr}
    .video-grid{grid-template-columns:1fr}
    .ig-grid{grid-template-columns:repeat(3,1fr)}
    .mfeat-body{padding:2rem}
}

/* ══════════════════════════════════════════
   CONTACT PAGE
══════════════════════════════════════════ */

/* WhatsApp inline CTA */
.cta-wa-card{
    display:flex;align-items:center;gap:1rem;flex-wrap:wrap;
    background:rgba(87,155,36,.08);border:1px solid var(--border);
    border-radius:var(--r-xl);padding:1.25rem 1.5rem;margin-top:2rem;
}
.cta-wa-icon{
    width:44px;height:44px;border-radius:50%;background:var(--green);
    display:flex;align-items:center;justify-content:center;
    color:#fff;font-size:1.2rem;flex-shrink:0;
}
.cta-wa-body{flex:1;min-width:0}
.cta-wa-title{font-size:.85rem;font-weight:800;color:var(--white)}
.cta-wa-sub{font-size:.75rem;color:var(--muted)}

/* Type card links */
.ctact-card-link{
    display:inline-flex;align-items:center;gap:.5rem;
    font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
    color:var(--green);text-decoration:none;
    transition:gap var(--dur),color var(--dur);
}
.ctact-card-link:hover{gap:.75rem;color:var(--green-d)}

/* Form feedback */
.cf-feedback{
    border-radius:var(--r-md);padding:.85rem 1.1rem;
    font-size:.85rem;font-weight:600;display:flex;align-items:center;gap:.6rem;
}
.cf-feedback--success{background:rgba(87,155,36,.12);border:1px solid rgba(87,155,36,.3);color:var(--green)}
.cf-feedback--error{background:rgba(220,53,69,.1);border:1px solid rgba(220,53,69,.3);color:#f87171}
.cf-disclaimer{font-size:.7rem;color:var(--muted);margin:0;display:flex;align-items:center;gap:.4rem}

/* Location */
.loc-details{display:flex;flex-direction:column;gap:0}
.loc-row{
    display:flex;align-items:flex-start;gap:1rem;
    padding:1rem 0;border-bottom:1px solid var(--border-soft);
}
.loc-row:last-child{border:none}
.loc-row i{color:var(--green);font-size:1rem;flex-shrink:0;margin-top:.15rem}
.loc-row strong{font-size:.65rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);display:block}
.loc-row span{font-size:.88rem;font-weight:600;color:var(--white);display:block;line-height:1.5}
.loc-map-wrap{border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border-soft);box-shadow:0 24px 64px rgba(0,0,0,.45)}

/* Responsive */
@media(max-width:991px){
    .cta-wa-card{flex-direction:column;align-items:flex-start}
}

/* ══════════════════════════════════════════
   BLOG — listing & detail
══════════════════════════════════════════ */

/* Filter bar */
.blog-filter-bar{background:var(--gray);border-bottom:1px solid var(--border-soft);padding:1.25rem 0;position:sticky;top:80px;z-index:900}
.blog-filter-inner{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.blog-search-form{display:flex;align-items:center;flex:1;min-width:200px;max-width:320px;background:var(--black);border:1.5px solid var(--border-soft);border-radius:var(--r-pill);overflow:hidden;transition:border-color var(--dur)}
.blog-search-form>i{padding-left:.85rem;color:var(--muted);font-size:.82rem;flex-shrink:0}
.blog-search-form:focus-within{border-color:var(--green)}
.blog-search-form input{flex:1;background:transparent;border:none;outline:none;padding:.55rem 1rem;font-size:.82rem;color:var(--white);font-family:var(--ff)}
.blog-search-form input::placeholder{color:var(--muted)}
.blog-search-btn{background:none;border:none;color:var(--muted);padding:.55rem .9rem;cursor:pointer;font-size:.85rem;transition:color var(--dur);flex-shrink:0}
.blog-search-btn:hover{color:var(--green)}
.blog-cats{display:flex;align-items:center;gap:.4rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1}
.blog-cats::-webkit-scrollbar{display:none}
.blog-cat-btn{display:inline-flex;align-items:center;gap:.35rem;flex-shrink:0;font-size:.6rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:.4rem 1rem;border-radius:var(--r-pill);border:1px solid var(--border-soft);color:var(--muted);text-decoration:none;background:transparent;cursor:pointer;transition:color var(--dur),border-color var(--dur),background var(--dur)}
.blog-cat-btn:hover,.blog-cat-btn.active{color:var(--green);border-color:var(--border);background:var(--green-xl)}
.blog-result-count{font-size:.7rem;color:var(--muted);white-space:nowrap;flex-shrink:0}
.blog-result-count strong{color:var(--white)}

/* Featured card */
.blog-feat{display:grid;grid-template-columns:1fr 1fr;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--border-soft);text-decoration:none;margin-bottom:3rem;transition:border-color var(--dur),box-shadow var(--dur)}
.blog-feat:hover{border-color:var(--green);box-shadow:0 16px 56px rgba(87,155,36,.15)}
.blog-feat-img{position:relative;min-height:340px;overflow:hidden;background:#111}
.blog-feat-img img{width:100%;height:100%;object-fit:cover;opacity:.8;transition:opacity var(--dur),transform var(--dur)}
.blog-feat:hover .blog-feat-img img{opacity:.9;transform:scale(1.04)}
.blog-feat-body{background:var(--gray);padding:2.5rem;display:flex;flex-direction:column;justify-content:center;gap:1rem}
.blog-feat-label{font-size:.58rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--green)}
.blog-feat-title{font-size:clamp(1.2rem,1.8vw,1.6rem);font-weight:900;color:var(--white);line-height:1.25;font-family:var(--ff)}
.blog-feat-excerpt{font-size:.85rem;color:var(--muted);line-height:1.7}
.blog-feat-meta{display:flex;align-items:center;gap:1rem;font-size:.65rem;color:var(--muted);font-weight:600;padding-top:.75rem;border-top:1px solid var(--border-soft)}

/* Card grid */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.blog-card{background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-xl);overflow:hidden;display:flex;flex-direction:column;text-decoration:none;transition:border-color var(--dur),transform var(--dur),box-shadow var(--dur)}
.blog-card:hover{border-color:var(--green);transform:translateY(-6px);box-shadow:0 16px 48px rgba(0,0,0,.35)}
.blog-card-img{aspect-ratio:16/9;overflow:hidden;position:relative;background:#111;flex-shrink:0}
.blog-card-img img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity var(--dur),transform var(--dur)}
.blog-card:hover .blog-card-img img{opacity:1;transform:scale(1.05)}
.blog-card-body{padding:1.5rem;display:flex;flex-direction:column;flex:1;gap:.65rem}
.blog-cat-badge{display:inline-flex;align-self:flex-start;font-size:.58rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green);background:var(--green-xl);border:1px solid var(--border);border-radius:var(--r-pill);padding:.22rem .65rem}
.blog-card-title{font-size:.95rem;font-weight:800;color:var(--white);line-height:1.35;font-family:var(--ff);flex:1}
.blog-card-title a{color:inherit;text-decoration:none;transition:color var(--dur)}
.blog-card:hover .blog-card-title a,.blog-card-title a:hover{color:var(--green)}
.blog-card-excerpt{font-size:.78rem;color:var(--muted);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.blog-card-meta{display:flex;align-items:center;justify-content:space-between;padding-top:.75rem;border-top:1px solid var(--border-soft);font-size:.62rem;color:var(--muted);font-weight:600}
.blog-card-meta-left{display:flex;align-items:center;gap:.6rem}
.blog-card-read{color:var(--green);font-weight:700}

/* Empty state */
.blog-empty{text-align:center;padding:5rem 2rem;border:1px dashed var(--border-soft);border-radius:var(--r-xl);background:var(--gray)}
.blog-empty i{font-size:3rem;color:var(--muted);margin-bottom:1.25rem;display:block}
.blog-empty-title{font-size:1.1rem;font-weight:800;color:var(--white);margin-bottom:.5rem}
.blog-empty-sub{font-size:.85rem;color:var(--muted)}

/* Pagination */
.blog-pagination{display:flex;align-items:center;justify-content:center;gap:.4rem;margin-top:3.5rem;flex-wrap:wrap}
.blog-pg-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--r-md);border:1px solid var(--border-soft);font-size:.8rem;font-weight:700;color:var(--muted);text-decoration:none;transition:border-color var(--dur),color var(--dur),background var(--dur)}
.blog-pg-btn:hover{border-color:var(--green);color:var(--green);background:var(--green-xl)}
.blog-pg-btn.active{background:var(--green);border-color:var(--green);color:#fff;pointer-events:none}
.blog-pg-btn.disabled{opacity:.35;pointer-events:none}
.blog-pg-btn.wide{width:auto;padding:0 1rem}

/* Blog post detail */
.bp-hero{position:relative;overflow:hidden;min-height:46vh;display:flex;align-items:flex-end;background:var(--black);padding-bottom:0}
.bp-hero-bg{position:absolute;inset:0}
.bp-hero-bg img{width:100%;height:100%;object-fit:cover;opacity:.25;display:block}
.bp-hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(33,33,33,.3) 0%,rgba(33,33,33,.97) 100%)}
.bp-hero-content{position:relative;z-index:2;padding:5rem 0 4rem;width:100%}
.bp-cat-badge{display:inline-flex;align-items:center;gap:.5rem;font-size:.65rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--green);background:var(--green-xl);border:1px solid var(--border);border-radius:var(--r-pill);padding:.35rem .9rem;margin-bottom:1.25rem}
.bp-title{font-size:clamp(1.8rem,4vw,3.2rem);font-weight:900;color:var(--white);line-height:1.1;letter-spacing:-.02em;font-family:var(--ff);margin-bottom:1.25rem}
.bp-meta{display:flex;align-items:center;gap:1.25rem;font-size:.72rem;color:var(--muted);font-weight:600;flex-wrap:wrap}
.bp-meta i{color:var(--green)}
.bp-meta-sep{width:4px;height:4px;border-radius:50%;background:var(--border-soft);flex-shrink:0}
.bp-content-wrap{background:var(--black)}
.bp-content{font-size:1rem;color:rgba(249,249,249,.82);line-height:1.85;max-width:720px}
.bp-content h2{font-size:1.5rem;font-weight:900;color:var(--white);margin:2.5rem 0 1rem;font-family:var(--ff)}
.bp-content h3{font-size:1.15rem;font-weight:800;color:var(--white);margin:2rem 0 .75rem;font-family:var(--ff)}
.bp-content p{margin-bottom:1.4rem}
.bp-content p:last-child{margin-bottom:0}
.bp-content strong{color:var(--white);font-weight:700}
.bp-content a{color:var(--green);text-decoration:underline}
.bp-content ul,.bp-content ol{padding-left:1.5rem;margin-bottom:1.4rem}
.bp-content li{margin-bottom:.5rem}
.bp-content blockquote{border-left:3px solid var(--green);border-radius:0 var(--r-sm) var(--r-sm) 0;padding:1rem 1.5rem;margin:1.5rem 0;background:rgba(87,155,36,.06);font-style:italic;color:rgba(249,249,249,.7)}
.bp-share{display:flex;align-items:center;gap:.75rem;padding-top:2.5rem;margin-top:2.5rem;border-top:1px solid var(--border-soft)}
.bp-share-label{font-size:.65rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.bp-share-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border-soft);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:.85rem;text-decoration:none;transition:border-color var(--dur),color var(--dur)}
.bp-share-btn:hover{border-color:var(--green);color:var(--green)}

/* Responsive */
@media(max-width:991px){
    .blog-feat{grid-template-columns:1fr}
    .blog-feat-img{min-height:240px}
    .blog-grid{grid-template-columns:1fr 1fr}
    .blog-filter-inner{gap:.75rem}
}
@media(max-width:767px){
    .blog-grid{grid-template-columns:1fr}
    .blog-filter-bar{position:static}
    .blog-search-form{max-width:100%;flex:none;width:100%}
    .blog-filter-inner{flex-direction:column;align-items:stretch}
    .blog-cats{overflow-x:auto}
}

/* Blog post sidebar layout */
.bp-content-section{padding:5rem 0}
.bp-content-wrap{display:grid;grid-template-columns:1fr 336px;gap:4rem;align-items:start}
.bp-sidebar{display:flex;flex-direction:column;gap:1.75rem;position:sticky;top:96px}
.bp-sidebar-block{background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-xl);padding:1.5rem}
.bp-sidebar-block .sec-eyebrow{margin-bottom:0}
.bp-sidebar-cta{background:var(--green-xl);border:1px solid var(--border);border-radius:var(--r-xl);padding:1.5rem;display:flex;flex-direction:column;gap:1rem}
.bp-sidebar-cta p{font-size:.85rem;color:var(--white);line-height:1.6;margin:0}
.bp-side-cat{display:inline-block;margin-top:16px}
.bp-side-related{list-style:none;display:flex;flex-direction:column;gap:16px;margin-top:16px}
.bp-side-related-item{display:flex;gap:16px;align-items:center;text-decoration:none}
.bp-side-related-thumb{width:64px;height:64px;border-radius:var(--r-sm);overflow:hidden;flex-shrink:0;background:#111;border:1px solid var(--border-soft)}
.bp-side-related-thumb img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur)}
.bp-side-related-item:hover .bp-side-related-thumb img{transform:scale(1.06)}
.bp-side-related-text{display:flex;flex-direction:column;gap:8px;min-width:0}
.bp-side-related-title{font-size:.82rem;font-weight:700;color:var(--white);line-height:1.35;font-family:var(--ff);transition:color var(--dur);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.bp-side-related-item:hover .bp-side-related-title{color:var(--green)}
.bp-side-related-date{font-size:.66rem;color:var(--muted);display:flex;align-items:center;gap:8px}
.bp-side-related-date i{color:var(--green)}
.bp-side-all{display:inline-flex;align-items:center;gap:8px;margin-top:24px;font-size:.68rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--green);text-decoration:none;transition:gap var(--dur)}
.bp-side-all:hover{gap:16px}
.bp-sidebar-cta .bp-side-cta-icon{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--r-md);background:rgba(87,155,36,.16);border:1px solid var(--border);color:var(--green);font-size:1.1rem}
.bp-sidebar-cta .bp-side-cta-title{font-size:1rem;font-weight:800;color:var(--white);font-family:var(--ff);margin:0}
.bp-sidebar-cta .bp-side-cta-text{font-size:.82rem;color:var(--muted);line-height:1.6;margin:0}
.bp-side-cta-btn{width:100%;justify-content:center}
.blog-card-img a{display:block;aspect-ratio:16/9;overflow:hidden;background:#111}
.blog-card-img a img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity var(--dur),transform var(--dur)}
.blog-card:hover .blog-card-img a img{opacity:1;transform:scale(1.05)}
@media(max-width:991px){.bp-content-wrap{grid-template-columns:1fr}.bp-sidebar{position:static}}

/* ══════════════════════════════════════════
   JOBS — PUBLIC PAGES
══════════════════════════════════════════ */
.jobs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:3rem}
.job-card{background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:2rem;display:flex;flex-direction:column;transition:border-color var(--dur),transform var(--dur),box-shadow var(--dur);text-decoration:none;color:inherit;position:relative;overflow:hidden}
.job-card::before{content:'';position:absolute;inset:0;border-radius:var(--r-lg);background:var(--green-xl);opacity:0;transition:opacity var(--dur);pointer-events:none}
.job-card:hover{border-color:var(--border);transform:translateY(-4px);box-shadow:0 16px 40px rgba(0,0,0,.35)}
.job-card:hover::before{opacity:1}
.job-card-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem;position:relative;z-index:1}
.job-card-icon{width:48px;height:48px;background:rgba(87,155,36,.12);border:1px solid var(--border);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:var(--green);flex-shrink:0}
.job-type-pill{display:inline-flex;align-items:center;background:var(--green-xl);border:1px solid var(--border);border-radius:var(--r-pill);padding:.3rem .85rem;font-size:.63rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--green)}
.job-card-title{font-size:1.08rem;font-weight:800;color:var(--white);margin-bottom:.5rem;line-height:1.3;position:relative;z-index:1;transition:color var(--dur)}
.job-card:hover .job-card-title{color:var(--green)}
.job-card-meta{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.85rem;position:relative;z-index:1}
.job-meta-item{display:flex;align-items:center;gap:.3rem;font-size:.72rem;color:var(--muted);font-weight:600}
.job-meta-item i{color:var(--green);font-size:.66rem}
.job-exp-tag{display:inline-flex;align-items:center;background:rgba(255,255,255,.04);border:1px solid var(--border-soft);border-radius:var(--r-pill);padding:.2rem .75rem;font-size:.63rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:.85rem;position:relative;z-index:1}
.job-card-excerpt{font-size:.82rem;color:rgba(249,249,249,.55);line-height:1.65;flex:1;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;position:relative;z-index:1}
.job-card-footer{margin-top:1.25rem;padding-top:1rem;border-top:1px solid var(--border-soft);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:.5rem;position:relative;z-index:1}
.job-salary{font-size:.75rem;font-weight:800;color:var(--green)}
.job-deadline{font-size:.68rem;color:var(--muted);display:flex;align-items:center;gap:.3rem}
.jobs-count{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:1.25rem}
.jobs-count strong{color:var(--green)}
.jobs-empty{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:5rem 2rem;text-align:center}
.jobs-empty i{font-size:3rem;color:rgba(87,155,36,.4)}
.jobs-empty h4{font-size:1.2rem;font-weight:800;color:var(--white)}
/* Detail */
.job-detail-bar{background:var(--gray);border-bottom:1px solid var(--border-soft);padding:.85rem 0}
.job-detail-header{background:var(--gray-2);padding:3.5rem 0 3rem;border-bottom:1px solid var(--border-soft)}
.job-detail-icon{width:64px;height:64px;background:rgba(87,155,36,.12);border:1px solid var(--border);border-radius:var(--r-md);display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:var(--green);flex-shrink:0}
.job-detail-title{font-size:clamp(1.6rem,4vw,2.4rem);font-weight:900;color:var(--white);line-height:1.15;margin-bottom:.75rem}
.job-detail-meta{display:flex;flex-wrap:wrap;gap:1.25rem;margin-bottom:1.25rem}
.job-detail-meta-item{display:flex;align-items:center;gap:.45rem;font-size:.82rem;color:var(--muted)}
.job-detail-meta-item i{color:var(--green);font-size:.78rem}
.job-section{padding:4rem 0}
.job-content-card{background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:2.5rem;margin-bottom:1.5rem}
.job-content-h{font-size:.82rem;font-weight:800;color:var(--white);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.25rem;display:flex;align-items:center;gap:.6rem}
.job-content-h i{color:var(--green)}
.job-content-body{font-size:.9rem;color:rgba(249,249,249,.72);line-height:1.85;white-space:pre-wrap}
.job-sidebar{position:sticky;top:6rem}
.job-info-card{background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:1.75rem;margin-bottom:1rem}
.job-info-row{display:flex;align-items:center;gap:.85rem;padding:.7rem 0;border-bottom:1px solid var(--border-soft)}
.job-info-row:last-of-type{border-bottom:none}
.job-info-icon{width:32px;height:32px;background:rgba(87,155,36,.10);border-radius:var(--r-sm);display:flex;align-items:center;justify-content:center;font-size:.8rem;color:var(--green);flex-shrink:0}
.job-info-label{font-size:.63rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.job-info-value{font-size:.87rem;font-weight:700;color:var(--white);margin-top:.1rem}
.job-salary-value{color:var(--green)}
/* Apply form */
.apply-form-card{background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-lg);padding:2.5rem}
.apply-form-h{font-size:.82rem;font-weight:800;color:var(--white);letter-spacing:.12em;text-transform:uppercase;margin-bottom:1.75rem;display:flex;align-items:center;gap:.6rem}
.apply-form-h i{color:var(--green)}
.apply-field{margin-bottom:1.25rem}
.apply-label{display:block;font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:.5rem}
.apply-label .req{color:#f56565}
.apply-input,.apply-textarea{width:100%;background:var(--black);border:1px solid var(--border-soft);border-radius:var(--r-sm);color:var(--white);font-size:.9rem;font-family:var(--ff);padding:.85rem 1.1rem;transition:border-color var(--dur);outline:none}
.apply-input:focus,.apply-textarea:focus{border-color:var(--green)}
.apply-input::placeholder,.apply-textarea::placeholder{color:rgba(249,249,249,.42)}
.apply-textarea{resize:vertical;min-height:140px}
.apply-input[type="file"]{padding:.65rem 1rem;cursor:pointer}
.apply-errors{background:rgba(245,101,101,.08);border:1px solid rgba(245,101,101,.25);border-radius:var(--r-sm);padding:1rem 1.25rem;margin-bottom:1.5rem}
.apply-errors li{font-size:.84rem;color:#f56565;margin-bottom:.3rem}
.apply-errors li:last-child{margin-bottom:0}
.apply-lgpd{display:flex;align-items:flex-start;gap:.75rem;background:rgba(255,255,255,.03);border:1px solid var(--border-soft);border-radius:var(--r-sm);padding:.85rem 1rem;margin-bottom:1.5rem}
.apply-lgpd input{margin-top:.15rem;flex-shrink:0;accent-color:var(--green)}
.apply-lgpd label{font-size:.78rem;color:rgba(249,249,249,.55);line-height:1.55;cursor:pointer}
/* Success */
.jobs-success-wrap{min-height:70vh;display:flex;align-items:center;justify-content:center;padding:4rem 1rem}
.jobs-success-card{background:var(--gray);border:1px solid var(--border-soft);border-radius:var(--r-xl);padding:3.5rem 2.5rem;text-align:center;max-width:520px;width:100%}
.jobs-success-icon{width:72px;height:72px;background:rgba(87,155,36,.12);border:1px solid var(--border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.8rem;color:var(--green);margin:0 auto 1.75rem}
.jobs-success-title{font-size:1.8rem;font-weight:900;color:var(--white);margin-bottom:.75rem}
.jobs-success-job{font-size:.9rem;font-weight:700;color:var(--green);margin-bottom:.5rem}
.jobs-success-msg{font-size:.87rem;color:var(--muted);line-height:1.75;margin-bottom:2rem}
@media(max-width:991px){.jobs-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:599px){.jobs-grid{grid-template-columns:1fr}.job-detail-header{padding:2.5rem 0 2rem}.apply-form-card,.job-content-card,.job-info-card{padding:1.5rem}}

/* ══════════════════════════════════════════
   A11Y — SKIP LINK (L2: tira o style inline)
══════════════════════════════════════════ */
.skip-link{
    position:absolute;top:-100px;left:16px;z-index:9999;
    background:var(--green);color:#fff;
    padding:8px 16px;border-radius:0 0 var(--r-md) var(--r-md);
    font-weight:700;font-size:.8rem;text-decoration:none;
    transition:top .2s var(--ease);
}
.skip-link:focus{top:0}

/* ══════════════════════════════════════════
   A11Y — FOCO DE TECLADO VISÍVEL (A2)
══════════════════════════════════════════ */
:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:4px}
a:focus-visible,
button:focus-visible,
.btn-nav:focus-visible,
.btn-primary-green:focus-visible,
.btn-ghost-white:focus-visible,
.btn-login:focus-visible,
.toggler:focus-visible,
.faq-q:focus-visible,
.blog-cat-btn:focus-visible,
.san-link:focus-visible{outline:2px solid var(--green);outline-offset:3px}
.finput:focus-visible,
.field-input:focus-visible,
.apply-input:focus-visible,
.apply-textarea:focus-visible,
.otp-box:focus-visible{outline:2px solid var(--green);outline-offset:2px}
/* botões só-ícone e sociais ganham contorno arredondado */
.topbar-soc:focus-visible,
.fsoc:focus-visible,
.tsoc:focus-visible,
.bp-share-btn:focus-visible,
.wa-float:focus-visible,
#back-top:focus-visible{outline:2px solid var(--green);outline-offset:3px}

/* ══════════════════════════════════════════
   A11Y — RESPEITA prefers-reduced-motion (A1)
══════════════════════════════════════════ */
@media (prefers-reduced-motion: reduce){
    *,*::before,*::after{
        animation-duration:.001ms!important;
        animation-iteration-count:1!important;
        transition-duration:.001ms!important;
        scroll-behavior:auto!important;
    }
    html{scroll-behavior:auto}
    .strip-track{animation:none!important}
    .scroll-hint-dot{animation:none!important}
    /* garante visibilidade de elementos que iniciam em opacity:0 via animação */
    .reveal,
    .hero-pill,.hero-h1,.hero-p,.hero-ctas,.hero-stats,.scroll-hint,
    .ph-title,.ph-sub,.page-pill,.error-inner,
    .login-card-header,.field-group,.field-extras,.btn-login,
    .login-divider,.login-support,.login-footer-note,.auth-logo{
        opacity:1!important;transform:none!important;
    }
}

/* ══════════════════════════════════════════
   PEEK CAROUSEL — scrubber refinado (home equipe + mídia)
   Reaproveita: --black, --green, --white, --muted,
                --border-soft, --dur, --ease
══════════════════════════════════════════ */
.peek-carousel{position:relative;margin-top:2.5rem}
.peek-carousel:hover .peek-nav:not(:disabled){opacity:1}

.peek-track{
    display:flex;
    gap:1.5rem;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-behavior:smooth;
    scroll-padding-left:.25rem;
    padding:.25rem .5rem 1.25rem;
    scrollbar-width:none;
    -ms-overflow-style:none;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 72px),transparent 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 72px),transparent 100%);
}
.peek-track::-webkit-scrollbar{display:none}

/* Nas bordas do scroll o fade some do lado correspondente — sem isso o
   primeiro/ultimo card fica esmaecido e parece cortado/espaco vazio. */
.peek-carousel.is-at-start .peek-track{
    -webkit-mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 72px),transparent 100%);
            mask-image:linear-gradient(90deg,#000 0,#000 calc(100% - 72px),transparent 100%);
}
.peek-carousel.is-at-end .peek-track{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 100%);
            mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 100%);
}
.peek-carousel.is-at-start.is-at-end .peek-track{
    -webkit-mask-image:none;
            mask-image:none;
}

.peek-card-slot{
    flex:0 0 auto;
    scroll-snap-align:start;
    display:flex;
    /* desktop: 4 + 0.3 de peek */
    width:calc((100% - 1.5rem * 4) / 4.3);
}
@media(max-width:1199px){
    .peek-card-slot{width:calc((100% - 1.5rem * 3) / 3.3)}
}
@media(max-width:767px){
    .peek-track{gap:1rem}
    .peek-card-slot{width:calc((100% - 1rem * 2) / 2.2)}
}
@media(max-width:479px){
    .peek-card-slot{width:calc(100% - 3rem)}
}

/* variante mídia — Netflix style: 3 itens completos + 0.5 do proximo (peek).
   Quando o usuario chega ao fim, a simetria acontece naturalmente — sobra 0.5
   do item anterior aparecendo na borda esquerda enquanto os 3 finais ficam
   totalmente visiveis a direita.
   Atencao: regras dentro dos @media abaixo precisam manter a mesma especificidade
   (.peek-carousel.peek-md .peek-card-slot) para sobrescreverem o desktop nos
   breakpoints — caso contrario o seletor desktop (0,2,1) vence o mobile (0,1,0). */
.peek-carousel.peek-md .peek-card-slot{width:calc((100% - 1.5rem * 3) / 3.5)}
@media(max-width:1199px){
    .peek-carousel.peek-md .peek-card-slot{width:calc((100% - 1.5rem * 2) / 2.5)}
}
@media(max-width:767px){
    .peek-carousel.peek-md .peek-card-slot{width:calc((100% - 1rem * 1) / 1.5)}
}
@media(max-width:479px){
    .peek-carousel.peek-md .peek-card-slot{width:calc(100% - 3rem)}
}

/* setas glass */
.peek-nav{
    position:absolute;top:50%;
    transform:translateY(-50%);
    width:44px;height:44px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.12);
    background:rgba(20,20,20,.72);
    -webkit-backdrop-filter:blur(14px) saturate(140%);
            backdrop-filter:blur(14px) saturate(140%);
    color:var(--white);
    cursor:pointer;
    z-index:5;
    display:flex;align-items:center;justify-content:center;
    font-size:.85rem;
    opacity:0;
    box-shadow:0 8px 24px rgba(0,0,0,.4);
    transition:
        opacity var(--dur) var(--ease),
        background-color var(--dur) var(--ease),
        border-color var(--dur) var(--ease),
        color var(--dur) var(--ease);
}
.peek-nav:hover{background:var(--green);border-color:var(--green);color:var(--white)}
.peek-nav:focus-visible{outline:2px solid var(--green);outline-offset:2px;opacity:1}
.peek-nav:disabled{opacity:0;pointer-events:none}
.peek-nav-prev{left:-22px}
.peek-nav-next{right:-22px}

@media(hover:none){
    .peek-nav{opacity:1}
    .peek-nav-prev{left:.5rem}
    .peek-nav-next{right:.5rem}
}
@media(prefers-reduced-motion:reduce){
    .peek-track{scroll-behavior:auto}
    .peek-nav{transition:opacity .01s}
}

.li-avatar.has-logo{background:#fff;padding:0;overflow:hidden}
.li-avatar.has-logo img{width:100%;height:100%;object-fit:cover;border-radius:50%;display:block}
