/* ============================================================
   STEELBIO — Composition CSS
   One planned sequence of full-width color blocks:
   Dark (Hero) · White (Empresa) · Dark (Produtos) · Green (Diferenciais) · White (Contato) · Dark (Footer)
   Honeycomb / molecular / engineering identity throughout.
   Palette: #13191e · #b8ff00 · #30a104 · #eeeeee · #f8f8f8 · #ffffff
   ============================================================ */

:root {
    /* — brand core — */
    --green:      #30a104;
    --green-hi:   #b8ff00;
    --green-lo:   #248a03;
    --green-glow: rgba(48,161,4,.30);
    --green-tint: rgba(48,161,4,.08);

    /* — dark surfaces — */
    --graphite:   #13191e;
    --graphite-2: #1b242d;
    --graphite-3: #232e38;

    /* — light surfaces — */
    --white:      #ffffff;
    --light:      #f8f8f8;
    --light-2:    #eeeeee;

    /* — text — */
    --txt-lt:     #e8ecec;
    --txt-lt2:    rgba(232,236,236,.62);
    --txt-ltdim:  rgba(232,236,236,.34);
    --txt-dk:     #13191e;
    --txt-dk2:    rgba(19,25,30,.62);

    /* — borders — */
    --borda-dk:   rgba(232,236,236,.12);
    --borda-gn:   rgba(48,161,4,.36);
    --borda-lt:   rgba(19,25,30,.12);

    /* — glows — */
    --glow-sm: 0 0 12px rgba(184,255,0,.28), 0 0 36px rgba(48,161,4,.12);
    --glow-md: 0 0 20px rgba(184,255,0,.38), 0 0 56px rgba(48,161,4,.16);
    --glow-lg: 0 0 30px rgba(184,255,0,.5), 0 0 80px rgba(48,161,4,.22);

    /* — honeycomb tiles (StrokeBio identity) — */
    --HEX_LIME_DK: url("data:image/svg+xml,%3Csvg+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22+width%3D%2228%22+height%3D%2249%22+viewBox%3D%220+0+28+49%22%3E%3Cpath+fill%3D%22%23b8ff00%22+fill-opacity%3D%22.06%22+d%3D%22M13.99+9.25l13+7.5v15l-13+7.5L1+31.75v-15l12.99-7.5zM3+17.9v12.7l10.99+6.34+11-6.35V17.9l-11-6.34L3+17.9zM0+15l12.98-7.5V0h-2v6.35L0+12.69v2.3zm0+18.5L12.98+41v8h-2v-6.85L0+35.81v-2.3zM15+0v7.5L27.99+15H28v-2.31h-.01L17+6.35V0h-2zm0+49v-8l12.99-7.5H28v2.31h-.01L17+42.15V49h-2z%22%2F%3E%3C%2Fsvg%3E");
    --HEX_LIME_DK2: url("data:image/svg+xml,%3Csvg+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22+width%3D%2228%22+height%3D%2249%22+viewBox%3D%220+0+28+49%22%3E%3Cpath+fill%3D%22%23b8ff00%22+fill-opacity%3D%22.10%22+d%3D%22M13.99+9.25l13+7.5v15l-13+7.5L1+31.75v-15l12.99-7.5zM3+17.9v12.7l10.99+6.34+11-6.35V17.9l-11-6.34L3+17.9zM0+15l12.98-7.5V0h-2v6.35L0+12.69v2.3zm0+18.5L12.98+41v8h-2v-6.85L0+35.81v-2.3zM15+0v7.5L27.99+15H28v-2.31h-.01L17+6.35V0h-2zm0+49v-8l12.99-7.5H28v2.31h-.01L17+42.15V49h-2z%22%2F%3E%3C%2Fsvg%3E");
    --HEX_GREEN_DK: url("data:image/svg+xml,%3Csvg+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22+width%3D%2228%22+height%3D%2249%22+viewBox%3D%220+0+28+49%22%3E%3Cpath+fill%3D%22%2330a104%22+fill-opacity%3D%22.07%22+d%3D%22M13.99+9.25l13+7.5v15l-13+7.5L1+31.75v-15l12.99-7.5zM3+17.9v12.7l10.99+6.34+11-6.35V17.9l-11-6.34L3+17.9zM0+15l12.98-7.5V0h-2v6.35L0+12.69v2.3zm0+18.5L12.98+41v8h-2v-6.85L0+35.81v-2.3zM15+0v7.5L27.99+15H28v-2.31h-.01L17+6.35V0h-2zm0+49v-8l12.99-7.5H28v2.31h-.01L17+42.15V49h-2z%22%2F%3E%3C%2Fsvg%3E");
    --HEX_GREEN_LT: url("data:image/svg+xml,%3Csvg+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22+width%3D%2228%22+height%3D%2249%22+viewBox%3D%220+0+28+49%22%3E%3Cpath+fill%3D%22%2330a104%22+fill-opacity%3D%22.06%22+d%3D%22M13.99+9.25l13+7.5v15l-13+7.5L1+31.75v-15l12.99-7.5zM3+17.9v12.7l10.99+6.34+11-6.35V17.9l-11-6.34L3+17.9zM0+15l12.98-7.5V0h-2v6.35L0+12.69v2.3zm0+18.5L12.98+41v8h-2v-6.85L0+35.81v-2.3zM15+0v7.5L27.99+15H28v-2.31h-.01L17+6.35V0h-2zm0+49v-8l12.99-7.5H28v2.31h-.01L17+42.15V49h-2z%22%2F%3E%3C%2Fsvg%3E");
    --HEX_WHITE_GN: url("data:image/svg+xml,%3Csvg+xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22+width%3D%2228%22+height%3D%2249%22+viewBox%3D%220+0+28+49%22%3E%3Cpath+fill%3D%22%23ffffff%22+fill-opacity%3D%22.10%22+d%3D%22M13.99+9.25l13+7.5v15l-13+7.5L1+31.75v-15l12.99-7.5zM3+17.9v12.7l10.99+6.34+11-6.35V17.9l-11-6.34L3+17.9zM0+15l12.98-7.5V0h-2v6.35L0+12.69v2.3zm0+18.5L12.98+41v8h-2v-6.85L0+35.81v-2.3zM15+0v7.5L27.99+15H28v-2.31h-.01L17+6.35V0h-2zm0+49v-8l12.99-7.5H28v2.31h-.01L17+42.15V49h-2z%22%2F%3E%3C%2Fsvg%3E");

    --font-display: 'Space Grotesk','Inter',system-ui,sans-serif;
    --font-body:    'Inter',system-ui,sans-serif;
    --font-mono:    'JetBrains Mono',ui-monospace,Consolas,monospace;
    --ease-out:     cubic-bezier(.16,1,.3,1);
}

/* ====== BASE ====== */

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

html {
    scroll-behavior: smooth;
    scroll-padding-top: 5.25rem;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    font-family: var(--font-body);
    font-size: .95rem;
    line-height: 1.6;
    color: var(--txt-dk);
    background: var(--graphite);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

h1,h2,h3,h4 { margin:0; font-family:var(--font-display); font-weight:700; line-height:1.05; letter-spacing:-.02em; color:inherit }
p   { margin:0 }
ul,ol { margin:0; padding:0; list-style:none }
dl  { margin:0 }
a   { color:inherit; text-decoration:none }
img,svg { display:block; max-width:100% }

/* ====== LAYOUT ====== */

.container { max-width:76rem; margin-inline:auto; padding-inline:2rem }
.section   { padding-block:clamp(4rem,8vw,7rem) }
.mono      { font-family:var(--font-mono) }

/* ====== ANIMATIONS ====== */

@keyframes spin { to { transform:rotate(360deg) } }

@keyframes wpp-pulse {
    0%   { transform:scale(.82); opacity:0 }
    35%  { opacity:.5 }
    100% { transform:scale(1.28); opacity:0 }
}

/* ====== DIAGONAL TRANSITION BANDS ======
   Each section carries a colored band at its top that bleeds
   into the previous block, creating the angular rhythm. */

.em-sep {
    position:absolute; top:0; left:0; right:0; height:clamp(2.5rem,5vw,3.6rem);
    pointer-events:none; z-index:0;
}

/* ====== GEOMETRIC SHAPES ====== */

.hex-outline {
    position:absolute; pointer-events:none;
    background:transparent;
    clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
}

/* ====== RINGS & HUD ====== */

.ring { position:absolute; border-radius:50%; pointer-events:none }

.ring--outer {
    inset: -12%;
    border: 1px dashed var(--borda-gn);
    animation: spin 42s linear infinite;
}

.ring--inner {
    inset: 8%;
    border: 1px solid var(--borda-gn);
    animation: spin 28s linear infinite reverse;
}

.hud {
    position: absolute; z-index:3;
    display: inline-flex; align-items:center; gap:.45rem;
    font-family: var(--font-mono); font-size:.58rem; font-weight:600;
    letter-spacing:.2em; white-space:nowrap; pointer-events:none;
}

.hud::before {
    content:"";
    width:.38rem; height:.38rem;
    background: var(--green-hi);
    border-radius:50%;
    box-shadow: 0 0 6px var(--green-hi);
}

/* hud on dark surfaces */
.hud { color:var(--green-hi) }
.hud--tl { top:-1.5rem; left:0 }
.hud--tr { top:1.2rem; right:-1rem }
.hud--bl { bottom:6rem; left:-2rem }
.hud--br { bottom:-1.5rem; right:0 }

/* ====== EYEBROWS / KICKERS ====== */

.eyebrow {
    display:flex; align-items:center; gap:.7rem;
    margin-bottom:.9rem;
    font-family:var(--font-mono); font-size:.68rem; font-weight:600;
    letter-spacing:.2em; text-transform:uppercase;
    color: var(--green);
}

.eyebrow::before {
    content:"";
    width:2.25rem; height:2px;
    background: currentColor;
}

.kicker {
    display:flex; align-items:center; gap:.7rem;
    margin-bottom:clamp(1.1rem,2.2vw,1.5rem);
    font-family:var(--font-mono); font-size:.72rem; font-weight:600;
    letter-spacing:.22em; text-transform:uppercase;
    color: var(--green-hi);
}

.kicker::before {
    content:"";
    width:2.5rem; height:2px;
    background: var(--green-hi);
    box-shadow: 0 0 8px var(--green-hi);
}

/* ====== BUTTONS ====== */

.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
    padding:.95rem 1.9rem;
    border:1px solid transparent; border-radius:999px;
    font-family:var(--font-mono); font-size:.74rem; font-weight:600;
    line-height:1; letter-spacing:.14em; text-transform:uppercase;
    cursor:pointer;
    transition: transform .3s var(--ease-out), box-shadow .3s ease, background .3s ease, color .3s ease, border-color .3s ease;
}

.btn--lime {
    background: var(--green-hi);
    color: #0a120a;
    box-shadow: 0 0 20px rgba(184,255,0,.30), 0 0 50px rgba(48,161,4,.12);
}

.btn--lime:hover {
    transform: translateY(-3px);
    box-shadow: var(--glow-lg);
}

.btn--glow {
    background: var(--green);
    color: #fff;
    padding: 1.05rem 2.2rem;
    box-shadow: 0 2px 20px rgba(48,161,4,.32), 0 0 48px rgba(48,161,4,.12);
}

.btn--glow:hover {
    transform: translateY(-3px);
    background: var(--green-hi);
    color: #0a120a;
    box-shadow: var(--glow-md), 0 0 0 6px rgba(184,255,0,.12);
}

.btn--outline {
    background: transparent;
    color: var(--green-hi);
    border-color: rgba(184,255,0,.28);
}

.btn--outline:hover {
    transform: translateY(-3px);
    background: rgba(184,255,0,.10);
    border-color: var(--green-hi);
    box-shadow: var(--glow-sm);
}

.btn--sm { padding:.75rem 1.3rem; font-size:.68rem }
.btn--inline { margin-top:1.8rem }

.button-group { display:flex; flex-wrap:wrap; gap:1rem; margin-top:2.1rem }

/* ===========================================================
   HEADER — clean light frame
   =========================================================== */

.site-header {
    position: sticky; top:0; z-index:100;
    background: rgba(255,255,255,.94);
    -webkit-backdrop-filter: blur(18px);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid var(--borda-lt);
    transition: box-shadow .3s ease;
}

.site-header.is-scrolled {
    box-shadow: 0 4px 24px -6px rgba(0,0,0,.08);
}

.site-header__bar {
    position:relative; display:flex; align-items:center; justify-content:space-between;
    gap:1.5rem; padding-block:.85rem;
}

.brand { display:inline-flex; align-items:center; gap:.7rem; transition:opacity .25s ease }
.brand:hover { opacity:.85 }
.brand__logo { height:38px; width:auto }
.brand--footer .brand__logo { height:34px }
.brand__text { display:none }
#menu-toggle { display:none }

.nav-toggle {
    display:none; position:relative; flex-direction:column; align-items:center; justify-content:center;
    gap:6px; width:2.75rem; height:2.75rem;
    border:1px solid var(--borda-lt); border-radius:8px;
    background:transparent; cursor:pointer;
}

.nav-toggle span {
    display:block; width:20px; height:2px;
    background: var(--txt-dk);
    transition: transform .3s var(--ease-out), opacity .3s ease;
}

.main-nav { display:flex; align-items:center; gap:1.75rem }
.main-nav__links { display:flex; align-items:center; gap:1.75rem }

.main-nav a:not(.btn) {
    position:relative; padding-block:.4rem;
    color: var(--txt-dk2);
    font-size:.85rem; font-weight:500; white-space:nowrap;
    transition: color .25s ease;
}

.main-nav a:not(.btn)::after {
    content:""; position:absolute; left:0; bottom:0; width:0; height:1.5px;
    background: var(--green);
    transition: width .3s var(--ease-out);
}

.main-nav a:not(.btn):hover { color:var(--green) }
.main-nav a:not(.btn):hover::after { width:100% }

.main-nav__cta { margin-left:.25rem }

.main-nav .btn {
    background: var(--green);
    color: #fff;
}
.main-nav .btn:hover {
    background: var(--green-lo);
    box-shadow: 0 0 16px rgba(48,161,4,.28);
}

@media (max-width:900px) {
    .nav-toggle { display:flex }
    .main-nav {
        display:none; position:absolute; top:100%; left:0; right:0;
        flex-direction:column; align-items:flex-start; gap:1.5rem;
        background: var(--white);
        border-top:1px solid var(--borda-lt);
        border-radius:0 0 16px 16px;
        box-shadow:0 30px 60px -20px rgba(0,0,0,.10);
        padding:1.5rem 2rem 2rem;
    }
    .main-nav__links { flex-direction:column; align-items:flex-start; gap:.5rem }
    .main-nav a:not(.btn) {
        font-family:var(--font-display); font-size:1.1rem; font-weight:600;
        color: var(--txt-dk);
    }
    .main-nav__cta { margin-top:.5rem }
    #menu-toggle:checked ~ .main-nav { display:flex }
    #menu-toggle:checked ~ .nav-toggle span:nth-child(1) { transform:translateY(8px) rotate(45deg) }
    #menu-toggle:checked ~ .nav-toggle span:nth-child(2) { opacity:0 }
    #menu-toggle:checked ~ .nav-toggle span:nth-child(3) { transform:translateY(-8px) rotate(-45deg) }
}

/* ===========================================================
   BANNER / HERO — DARK block. Technology & engineering entry.
   =========================================================== */

.banner {
    position:relative; overflow:hidden;
    background:
        radial-gradient(circle at 85% 12%, rgba(184,255,0,.10) 0%, rgba(48,161,4,.04) 45%, transparent 62%),
        radial-gradient(circle at 8% 92%, rgba(48,161,4,.12) 0%, transparent 55%),
        var(--HEX_LIME_DK),
        var(--graphite);
    color: var(--txt-lt);
    padding-block: clamp(4rem,12vh,8rem);
}

.banner::before {
    content:""; position:absolute; top:-8rem; right:-6rem;
    width:46rem; height:46rem;
    background: radial-gradient(circle, rgba(184,255,0,.07) 0%, rgba(48,161,4,.03) 50%, transparent 72%);
    border-radius:50%; pointer-events:none;
}

.banner::after {
    content:""; position:absolute; bottom:-12rem; left:-8rem;
    width:38rem; height:38rem;
    background: radial-gradient(circle, rgba(48,161,4,.07) 0%, transparent 65%);
    border-radius:50%; pointer-events:none;
}

.banner__ambient { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0 }
.banner__ambient .orb { position:absolute; border-radius:50%; filter:blur(65px); pointer-events:none }

.banner__ambient .orb--a { width:30rem; height:30rem; top:-14rem; right:-8rem; background:radial-gradient(circle, rgba(184,255,0,.12) 0%, transparent 60%) }
.banner__ambient .orb--b { width:24rem; height:24rem; bottom:-12rem; left:-8rem; background:radial-gradient(circle, rgba(48,161,4,.10) 0%, transparent 60%) }
.banner__ambient .orb--c { width:16rem; height:16rem; top:30%; left:10%; background:radial-gradient(circle, rgba(184,255,0,.06) 0%, transparent 60%) }

/* oversized hexagon + diamond linework */
.banner__ambient::before {
    content:""; position:absolute; top:-7rem; right:-5rem;
    width:26rem; height:26rem;
    border:1px solid rgba(184,255,0,.12);
    clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
}
.banner__ambient::after {
    content:""; position:absolute; bottom:2rem; left:-6rem;
    width:16rem; height:16rem;
    border:1px dashed rgba(48,161,4,.22);
    transform:rotate(45deg);
}

/* molecular background — bright on dark */
.banner__molecules { position:absolute; inset:0; pointer-events:none; z-index:0; opacity:.9 }
.banner__molecule-svg { width:100%; height:100%; object-fit:cover }

.banner__logo-mark { position:absolute; bottom:2rem; right:3rem; z-index:0; pointer-events:none; opacity:.05 }
.banner__logo-img { width:280px; height:auto }

.banner__inner {
    position:relative; z-index:1;
    display:grid; grid-template-columns:1.15fr .85fr;
    gap:clamp(2rem,5vw,4rem); align-items:center;
}

.banner-title {
    max-width:42rem;
    font-size:clamp(1.55rem,3.3vw,2.55rem);
    letter-spacing:-.03em; line-height:1.02;
    color: #fff;
}

.banner-title__accent { color: var(--green-hi) }

.banner-subtitle {
    max-width:40rem;
    margin-top:clamp(1.1rem,1.8vw,1.5rem);
    font-size:clamp(.88rem,1.15vw,.98rem); line-height:1.75;
    color: var(--txt-lt2);
}

/* visual — floating diagram with hexagon ring */
.banner__visual {
    position:relative; justify-self:end;
    width:min(100%,30rem); padding:1.4rem 1rem 0;
}

.banner__visual::before {
    content:""; position:absolute; inset:8% 2%;
    background: radial-gradient(circle, rgba(184,255,0,.08) 0%, rgba(48,161,4,.03) 48%, transparent 72%);
    filter:blur(18px); pointer-events:none;
}

.banner__rings { position:absolute; inset:0; pointer-events:none; z-index:0 }

/* hexagon outline ring behind diagram */
.banner__rings::after {
    content:""; position:absolute; inset:1%;
    border:1px solid rgba(184,255,0,.16);
    clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
}

/* corner brackets */
.banner__frame {
    position:absolute; top:.8rem; left:.6rem;
    width:2.6rem; height:2.6rem;
    border-top:1px solid rgba(184,255,0,.40);
    border-left:1px solid rgba(184,255,0,.40);
    pointer-events:none; z-index:1;
}

.banner__frame--r {
    top:auto; left:auto; right:.6rem; bottom:.1rem;
    border-top:0; border-left:0;
    border-right:1px solid rgba(184,255,0,.40);
    border-bottom:1px solid rgba(184,255,0,.40);
}

.banner__diagram { position:relative; z-index:1; width:100%; height:auto }

.diagram-ring { fill:none; stroke:rgba(232,236,236,.15); stroke-width:1.5 }

.diagram-ring--slow {
    stroke: var(--green-hi); stroke-width:1.25;
    stroke-dasharray:2 6;
    transform-box:view-box; transform-origin:50% 50%;
    animation:spin 24s linear infinite;
}

.diagram-ring--inner { stroke:rgba(184,255,0,.36); stroke-dasharray:4 6 }

.diagram-dot { fill:rgba(232,236,236,.50) }
.diagram-dot--accent { fill:var(--green-hi); filter:drop-shadow(0 0 6px rgba(184,255,0,.6)) }
.diagram-tick { stroke:rgba(232,236,236,.25); stroke-width:1.5 }

.readout {
    position:relative; z-index:1;
    display:flex; flex-wrap:wrap; align-items:center; gap:.5rem 1.4rem;
    margin-top:.7rem; justify-content:center;
}

.readout__item {
    display:inline-flex; align-items:center; gap:.5rem;
    font-family:var(--font-mono); font-size:.64rem; letter-spacing:.16em;
    color: var(--txt-lt2);
}

.readout__item i {
    width:.38rem; height:.38rem;
    background: var(--green-hi); border-radius:50%;
    box-shadow:0 0 6px var(--green-hi);
}

.readout__note {
    font-family:var(--font-mono); font-size:.56rem;
    letter-spacing:.14em; text-transform:uppercase;
    color: var(--txt-ltdim);
}

/* ===========================================================
   EMPRESA — WHITE block. Institutional & clean.
   Transition: graphite wedge bleeding left from the hero.
   =========================================================== */

.empresa {
    position:relative; overflow:hidden;
    background: var(--white);
    color: var(--txt-dk);
}

/* graphite diagonal from hero above */
.empresa::before {
    content:""; position:absolute; top:0; left:0; right:0; height:clamp(2.5rem,5vw,3.6rem);
    background: var(--graphite);
    clip-path: polygon(0 0, 100% 0, 100% 46%, 0 100%);
    pointer-events:none; z-index:0;
}

.empresa::after {
    content:""; position:absolute; right:-8rem; top:-6rem;
    width:30rem; height:30rem;
    background: radial-gradient(circle, rgba(184,255,0,.06) 0%, transparent 65%);
    border-radius:50%; pointer-events:none; z-index:0;
}

.empresa__ambient { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0 }
.empresa__ambient .orb { position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none }
.empresa__ambient .orb--d {
    width:22rem; height:22rem; bottom:-8rem; left:-6rem;
    background: radial-gradient(circle, rgba(48,161,4,.06) 0%, transparent 65%);
}

.empresa > .container { position:relative; z-index:1 }

.empresa .eyebrow { color:var(--green) }
.empresa .section-title { color:var(--txt-dk) }
.empresa .section-text { color:var(--txt-dk2) }

.empresa__layout {
    position:relative;
    display:grid; grid-template-columns:1.1fr .9fr;
    gap:clamp(2.5rem,6vw,5rem); align-items:start;
}

.empresa__cta-row { margin-top:2rem }

/* process flow — LIGHT panel, green identity (no black card) */
.empresa__flow {
    position:relative;
    padding: clamp(1.5rem,3vw,2.4rem);
    background:
        var(--HEX_GREEN_LT),
        linear-gradient(165deg, #ffffff 0%, #f2f6ec 100%);
    border:1px solid var(--borda-gn);
    border-top:3px solid var(--green);
    border-radius:18px;
    box-shadow: 0 20px 50px -18px rgba(48,161,4,.18);
}

/* corner brackets */
.empresa__flow::before,
.empresa__flow::after {
    content:""; position:absolute; width:1.6rem; height:1.6rem;
    border-color:var(--green); pointer-events:none;
}
.empresa__flow::before { top:.8rem; left:.8rem; border-top:1.5px solid; border-left:1.5px solid; }
.empresa__flow::after  { bottom:.8rem; right:.8rem; border-bottom:1.5px solid; border-right:1.5px solid; }

.flow-kicker {
    margin-bottom:1rem;
    font-family:var(--font-mono); font-size:.62rem; font-weight:600;
    letter-spacing:.2em;
    color: var(--green);
}

.processo-list { display:grid; gap:0 }

.processo-item {
    display:flex; align-items:center; gap:1.4rem;
    padding:1.25rem 0;
    border-top:1px solid var(--borda-lt);
    transition: transform .3s var(--ease-out), padding-left .3s var(--ease-out);
}

.processo-item:last-child { border-bottom:1px solid var(--borda-lt) }
.processo-item:hover { transform:translateX(6px); padding-left:.4rem }

.processo-item__num {
    flex-shrink:0;
    display:inline-flex; align-items:center; justify-content:center;
    width:3rem; height:3rem;
    background: var(--green);
    clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
    font-family:var(--font-mono); font-size:.68rem; font-weight:600;
    letter-spacing:.08em;
    color: #fff;
    box-shadow: 0 0 18px rgba(48,161,4,.25);
    transition: background .3s ease, box-shadow .3s ease;
}

.processo-item:hover .processo-item__num {
    background: var(--green-hi);
    color:#0a120a;
    box-shadow: 0 0 24px rgba(184,255,0,.35);
}

.processo-item__titulo {
    font-family:var(--font-display); font-size:1.02rem; font-weight:600;
    color: var(--txt-dk);
}

.empresa__flow-tags {
    display:flex; flex-wrap:wrap; gap:.5rem 1.4rem; margin-top:1.1rem;
}

.flow-tag {
    font-family:var(--font-mono); font-size:.62rem;
    letter-spacing:.16em; text-transform:uppercase;
    color: var(--txt-dk2);
}

.flow-tag::before {
    content:"//"; margin-right:.45rem;
    color: var(--green);
}

/* setores */
.setores { position:relative; margin-top:clamp(3rem,6vw,5rem) }

.setores__head {
    display:flex; align-items:baseline; justify-content:space-between; gap:1.5rem;
    padding-top:1.25rem; border-top:1px solid var(--borda-lt);
}

.setores-intro {
    max-width:34rem;
    font-family:var(--font-display); font-size:clamp(.95rem,1.8vw,1.15rem);
    font-weight:600; line-height:1.3; letter-spacing:-.01em;
    color: var(--txt-dk);
}

.setores-count {
    font-family:var(--font-mono); font-size:.68rem; font-weight:600;
    letter-spacing:.18em; color:var(--txt-dk2); white-space:nowrap;
}

.setores-list {
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:0 3rem; margin-top:1.5rem;
}

@media (max-width:900px) { .setores-list { grid-template-columns:repeat(2,1fr) } }
@media (max-width:560px) { .setores-list { grid-template-columns:1fr } }

.setor-row {
    position:relative; display:flex; align-items:center; gap:1rem;
    padding:1.05rem 0; border-top:1px solid var(--borda-lt);
    cursor:default; transition: border-color .3s ease;
}

.setor-row::before {
    content:""; position:absolute; left:0; bottom:-1px;
    height:1px; width:0;
    background: var(--green);
    transition: width .45s var(--ease-out);
}

.setor-row:hover::before { width:100% }

.setor-row__idx {
    font-family:var(--font-mono); font-size:.64rem; letter-spacing:.12em;
    color: var(--green);
}

.setor-row__nome {
    font-family:var(--font-display); font-size:.92rem; font-weight:500;
    line-height:1.3; color:var(--txt-dk);
    transition: color .3s ease, transform .3s var(--ease-out);
}

.setor-row:hover .setor-row__nome { color:var(--green); transform:translateX(3px) }

.setor-row__arrow {
    margin-left:auto;
    font-family:var(--font-mono); font-size:.8rem;
    color:var(--green);
    opacity:0; transform:translateX(-6px);
    transition: opacity .3s ease, transform .3s var(--ease-out);
}

.setor-row:hover .setor-row__arrow { opacity:1; transform:none }

/* ===========================================================
   PRODUTOS — DARK block. Technology, engineering, products.
   Transition: white wedge bleeding right from Empresa above.
   =========================================================== */

.produtos-section {
    position:relative; overflow:hidden;
    background:
        var(--HEX_GREEN_DK),
        linear-gradient(180deg, #0e1418 0%, var(--graphite) 26%);
    color: var(--txt-lt);
}

/* white diagonal from empresa above */
.produtos-section::before {
    content:""; position:absolute; top:0; left:0; right:0; height:clamp(2.5rem,5vw,3.6rem);
    background: #f3f6f0;
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 48%);
    pointer-events:none; z-index:0;
}

/* blueprint grid — structural engineering pattern */
.produtos-section::after {
    content:""; position:absolute; inset:0;
    background-image:
        linear-gradient(rgba(184,255,0,.035) 1px, transparent 1px),
        linear-gradient(90deg, rgba(184,255,0,.035) 1px, transparent 1px);
    background-size:56px 56px;
    -webkit-mask-image: radial-gradient(110% 80% at 50% 30%, #000 20%, transparent 100%);
    mask-image: radial-gradient(110% 80% at 50% 30%, #000 20%, transparent 100%);
    pointer-events:none; z-index:0;
}

.produtos-section .container, .produtos-list { position:relative; z-index:2 }

.produtos-section .section-title { color:#fff }
.produtos-section .eyebrow { color:var(--green-hi) }

.produtos-head {
    position:relative; z-index:1;
    display:flex; align-items:flex-end; justify-content:space-between; gap:2rem;
    margin-bottom:clamp(2.5rem,5vw,3.5rem);
}

.produtos-meta {
    font-size:.68rem; font-weight:600; letter-spacing:.2em;
    white-space:nowrap; color:var(--txt-ltdim); padding-bottom:.5rem;
}

.produtos-list { display:grid }

.produto-detalhe {
    position:relative;
    padding-block:clamp(3rem,7vw,5rem);
}

.produto-detalhe + .produto-detalhe {
    border-top:1px solid var(--borda-dk);
}

.produto-detalhe__grid {
    display:grid; grid-template-columns:1.18fr .82fr;
    gap:clamp(2rem,5vw,4rem); align-items:center;
}

.produto-detalhe--invertido .produto-detalhe__grid .produto-detalhe__visual { order:2 }
.produto-detalhe--invertido .produto-detalhe__grid .produto-detalhe__content { order:1 }

/* product visual — graphite panel inside the dark block */
.produto-detalhe__visual {
    position:relative; display:flex; align-items:center; justify-content:center;
    min-height:clamp(20rem,34vw,28rem);
}

.produto-detalhe__panel {
    position:absolute; inset:4% 2%;
    border-radius:26px;
    background:
        var(--HEX_GREEN_DK),
        linear-gradient(160deg, var(--graphite-2) 0%, var(--graphite) 55%, #14201a 100%);
    border:1px solid rgba(184,255,0,.14);
    box-shadow: 0 2px 12px rgba(0,0,0,.25), 0 24px 70px -18px rgba(184,255,0,.12);
    z-index:0;
}

/* engineering corner brackets */
.produto-detalhe__panel::before,
.produto-detalhe__panel::after {
    content:""; position:absolute; z-index:3; pointer-events:none;
}

.produto-detalhe__panel::before {
    top:.9rem; left:.9rem;
    width:2.2rem; height:2.2rem;
    border-top:1.5px solid rgba(184,255,0,.40);
    border-left:1.5px solid rgba(184,255,0,.40);
}

.produto-detalhe__panel::after {
    bottom:.9rem; right:.9rem;
    width:2.2rem; height:2.2rem;
    border-bottom:1.5px solid rgba(184,255,0,.40);
    border-right:1.5px solid rgba(184,255,0,.40);
}

/* hexagon ring between panel and product image */
.produto-detalhe__rings::after {
    content:""; position:absolute; inset:6%;
    border:1px solid rgba(184,255,0,.14);
    clip-path: polygon(50% 0, 93% 25%, 93% 75%, 50% 100%, 7% 75%, 7% 25%);
}

.produto-detalhe__glow {
    position:absolute; inset:8% -8%;
    background: radial-gradient(ellipse at center, rgba(184,255,0,.09) 0%, rgba(48,161,4,.04) 48%, transparent 72%);
    filter:blur(22px); pointer-events:none;
}

.produto-detalhe__rings { position:absolute; inset:0; pointer-events:none }

.produto-detalhe__ghost {
    position:absolute; top:-.8rem; left:0; z-index:0;
    font-family:var(--font-display);
    font-size:clamp(4.5rem,10vw,7.5rem); font-weight:700;
    letter-spacing:-.04em; line-height:1;
    color:transparent;
    -webkit-text-stroke:1px rgba(184,255,0,.14);
    pointer-events:none;
}

.produto-detalhe__img {
    position:relative; z-index:1;
    width:80%; height:auto;
    filter: drop-shadow(0 14px 44px rgba(0,0,0,.4)) drop-shadow(0 4px 18px rgba(184,255,0,.10));
}

.produto-chip {
    position:absolute; z-index:2;
    font-family:var(--font-mono); font-size:.56rem; letter-spacing:.18em;
    padding:.3rem .6rem;
    border:1px solid var(--borda-dk); border-radius:6px;
    background: rgba(19,25,30,.6);
    color:var(--txt-ltdim); pointer-events:none; white-space:nowrap;
    transition: color .3s ease, border-color .3s ease, background .3s ease;
}

.produto-detalhe__visual:hover .produto-chip { color:var(--green-hi); border-color:var(--green-hi); background:rgba(19,25,30,.85) }

.produto-chip:nth-child(7)  { top:14%;  left:6% }
.produto-chip:nth-child(8)  { top:8%;   right:6% }
.produto-chip:nth-child(9)  { top:52%;  right:4% }
.produto-chip:nth-child(10) { bottom:20%; left:6% }
.produto-chip:nth-child(11) { bottom:10%; right:8% }

.produto-detalhe__titulo {
    max-width:32rem; margin-top:.7rem;
    font-size:clamp(1.35rem,2.6vw,2rem);
    color:#fff;
}

.produto-detalhe__descricao {
    max-width:38rem; margin-top:.9rem; font-size:.94rem;
    color:var(--txt-lt2);
}

.produto-detalhe__bloco { margin-top:2rem; max-width:42rem }

.produto-detalhe__rotulo {
    display:flex; align-items:center; gap:.55rem;
    font-family:var(--font-mono); font-size:.64rem; font-weight:600;
    letter-spacing:.18em; text-transform:uppercase;
    color:var(--txt-ltdim);
}

.produto-detalhe__rotulo::before {
    content:""; width:1.4rem; height:1px;
    background: var(--green-hi);
}

.tag-list { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.9rem }

.tag {
    padding:.5rem .85rem;
    border:1px solid var(--borda-dk); border-radius:8px;
    font-family:var(--font-mono); font-size:.7rem; letter-spacing:.03em;
    color:var(--txt-lt2);
    transition: all .25s ease;
}

.tag:hover {
    color:var(--green-hi);
    border-color:var(--green-hi);
    background:rgba(184,255,0,.08);
    box-shadow:var(--glow-sm);
}

.check-list {
    display:grid; grid-template-columns:1fr 1fr;
    gap:.6rem 1.75rem; margin-top:.9rem;
}

.check-list li {
    position:relative; padding-left:1.35rem;
    font-size:.84rem; line-height:1.55;
    color:var(--txt-lt2);
}

.check-list li::before {
    content:""; position:absolute; left:0; top:.58rem;
    width:.42rem; height:.42rem;
    background:var(--green-hi); border-radius:1px;
    transform:rotate(45deg);
}

.produto-detalhe__extra {
    max-width:42rem; margin-top:2rem;
    padding:1.1rem 1.4rem;
    border-left:3px solid var(--green-hi);
    border-radius:0 10px 10px 0;
    background: linear-gradient(90deg, rgba(184,255,0,.07), rgba(48,161,4,.03), transparent);
}

.produto-detalhe__extra-titulo {
    font-family:var(--font-display); font-size:1rem; font-weight:600;
    color:#fff;
}

.produto-detalhe__extra-texto {
    margin-top:.4rem; font-size:.84rem; line-height:1.6;
    color:var(--txt-lt2);
}

/* ===========================================================
   DIFERENCIAIS — GREEN block. Highlight & solutions.
   Transition: graphite wedge bleeding left from Produtos.
   =========================================================== */

.diferenciais {
    position:relative; overflow:hidden;
    background:
        var(--HEX_WHITE_GN),
        linear-gradient(180deg, #2b8c06 0%, var(--green) 30%);
    color: #fff;
}

/* graphite diagonal from produtos above */
.diferenciais::before {
    content:""; position:absolute; top:0; left:0; right:0; height:clamp(2.5rem,5vw,3.6rem);
    background: var(--graphite);
    clip-path: polygon(0 0, 100% 0, 100% 46%, 0 100%);
    pointer-events:none; z-index:0;
}

.diferenciais::after {
    content:""; position:absolute; top:-10rem; right:-10rem;
    width:36rem; height:36rem;
    background: radial-gradient(circle, rgba(255,255,255,.14) 0%, transparent 60%);
    border-radius:50%; pointer-events:none; z-index:0;
}

.diferenciais__ambient { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0 }
.diferenciais__ambient .orb { position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none }
.diferenciais__ambient .orb--e {
    width:24rem; height:24rem; bottom:-8rem; left:-6rem;
    background: radial-gradient(circle, rgba(0,0,0,.14) 0%, transparent 60%);
}

.diferenciais > .container { position:relative; z-index:1 }

.diferenciais .eyebrow { color:#fff }
.diferenciais .eyebrow::before { background:#fff }

.diferenciais .section-title { color:#fff }

.diferenciais__head {
    position:relative;
    display:flex; align-items:flex-end; justify-content:space-between; gap:2rem;
    padding-bottom:1.4rem;
    border-bottom:1px solid rgba(255,255,255,.28);
}

.diferenciais__head::after {
    content:""; position:absolute; left:0; bottom:-2px;
    width:6rem; height:3px; background:var(--green-hi);
    box-shadow:0 0 14px rgba(184,255,0,.45);
}

.diferenciais__meta {
    font-family:var(--font-display);
    font-size:clamp(3rem,8vw,6rem); font-weight:700;
    line-height:.8; letter-spacing:-.04em;
    color:transparent;
    -webkit-text-stroke:2px rgba(184,255,0,.5);
}

.diferenciais-list {
    position:relative; display:flex; flex-direction:column; gap:0;
    margin-top:2.5rem;
}

.diferencial-item {
    position:relative; display:flex; align-items:center; gap:1.4rem;
    padding:1.3rem 0;
    border-bottom:1px solid rgba(255,255,255,.2);
    transition: background .3s ease, padding-left .3s var(--ease-out);
}

.diferencial-item::before {
    content:""; position:absolute; left:-.8rem; top:50%;
    transform:translateY(-50%) scaleY(0);
    width:.32rem; height:.32rem;
    background:var(--green-hi); border-radius:4px;
    transition: transform .35s var(--ease-out), height .35s var(--ease-out);
}

.diferencial-item:hover::before { transform:translateY(-50%) scaleY(1); height:60% }

.diferencial-item:hover {
    padding-left:.75rem;
    background:rgba(255,255,255,.10);
}

.diferencial-item:first-child { border-top:1px solid rgba(255,255,255,.2) }

.diferencial-item__idx {
    flex-shrink:0; width:3.4rem;
    font-family:var(--font-display); font-size:1.45rem; font-weight:700;
    letter-spacing:-.02em;
    color:transparent;
    -webkit-text-stroke:1px rgba(184,255,0,.55);
    transition: all .3s ease;
}

.diferencial-item:hover .diferencial-item__idx {
    color:#fff;
    -webkit-text-stroke-color:transparent;
}

.diferencial-item__mark {
    flex-shrink:0; width:.5rem; height:.5rem;
    border-radius:50%;
    background:var(--green-hi);
    box-shadow:0 0 8px rgba(184,255,0,.55);
    transition: transform .3s var(--ease-out), box-shadow .3s ease;
}

.diferencial-item__body { flex:1; transition:transform .3s var(--ease-out) }

.diferencial-item__title {
    font-family:var(--font-display); font-size:.95rem; font-weight:600;
    line-height:1.35; color:#fff;
    transition: color .3s ease;
}

.diferencial-item__arrow {
    font-family:var(--font-mono); font-size:.9rem;
    color:var(--green-hi);
    opacity:0; transform:translateX(-8px);
    transition: opacity .3s ease, transform .3s var(--ease-out);
}

.diferencial-item:hover .diferencial-item__mark { transform:scale(1.4); box-shadow:0 0 14px rgba(184,255,0,.65) }
.diferencial-item:hover .diferencial-item__body { transform:translateX(6px) }
.diferencial-item:hover .diferencial-item__arrow { opacity:1; transform:none }

/* ===========================================================
   CONTATO — WHITE block. Clean conversion.
   Transition: green wedge bleeding right from Diferenciais.
   =========================================================== */

.contato {
    position:relative; overflow:hidden;
    background:
        var(--HEX_GREEN_LT),
        linear-gradient(180deg, #ffffff 0%, #f8faf4 100%);
    color: var(--txt-dk);
}

/* green diagonal from diferenciais above */
.contato::before {
    content:""; position:absolute; top:0; left:0; right:0; height:clamp(2.5rem,5vw,3.6rem);
    background: var(--green);
    clip-path: polygon(0 0, 100% 0, 100% 100%, 0 46%);
    pointer-events:none; z-index:0;
}

.contato::after {
    content:""; position:absolute; top:-6rem; right:-6rem;
    width:30rem; height:30rem;
    background: radial-gradient(circle, rgba(48,161,4,.06) 0%, transparent 68%);
    border-radius:50%; pointer-events:none; z-index:0;
}

.contato__ambient { position:absolute; inset:0; overflow:hidden; pointer-events:none; z-index:0 }
.contato__ambient .orb { position:absolute; border-radius:50%; filter:blur(60px); pointer-events:none }
.contato__ambient .orb--a {
    width:24rem; height:24rem; top:-6rem; right:-4rem;
    background: radial-gradient(circle, rgba(48,161,4,.05) 0%, transparent 65%);
}
.contato__ambient .orb--g {
    width:16rem; height:16rem; bottom:4rem; right:-3rem;
    background: radial-gradient(circle, rgba(184,255,0,.05) 0%, transparent 65%);
}

.contato__grid {
    position:relative; z-index:1;
    display:grid; grid-template-columns:.9fr 1.1fr;
    gap:clamp(2.5rem,6vw,5rem); align-items:start;
}

.contato .eyebrow { color:var(--green) }
.contato .section-title { color:var(--txt-dk) }

.contato__sub {
    max-width:30rem; margin-top:1rem; font-size:.94rem; line-height:1.7;
    color:var(--txt-dk2);
}

.contato-info { margin-top:2.2rem }

.contato-info__row {
    padding-block:1.15rem;
    border-bottom:1px solid var(--borda-lt);
}

.contato-info__row:first-child,
.contato-info__row:last-child { border-top:1px solid var(--borda-lt) }

.contato-info__label {
    display:flex; align-items:center; gap:.5rem;
    font-family:var(--font-mono); font-size:.64rem; font-weight:600;
    letter-spacing:.18em; text-transform:uppercase;
    color:var(--green);
}

.contato-info__icon { width:1.05rem; height:1.05rem; flex-shrink:0 }

.contato-info__value {
    margin-top:.3rem;
    font-family:var(--font-display); font-size:1.05rem; font-weight:600;
    letter-spacing:-.01em; color:var(--txt-dk);
}

.contato-info__value a { transition:color .25s ease }
.contato-info__value a:hover { color:var(--green) }

/* form — LIGHT panel, green identity (no black card) */
.contato__form-wrap {
    position:relative; max-width:40rem;
    padding:clamp(1.5rem,3vw,2.4rem);
    background:
        var(--HEX_GREEN_LT),
        linear-gradient(160deg, #ffffff 0%, #f2f6ec 100%);
    border:1px solid var(--borda-gn);
    border-top:3px solid var(--green);
    border-radius:18px;
    color: var(--txt-dk);
    box-shadow: 0 24px 60px -24px rgba(48,161,4,.22);
}

/* corner brackets */
.contato__form-wrap::before,
.contato__form-wrap::after {
    content:""; position:absolute; width:1.6rem; height:1.6rem;
    border-color:var(--green); pointer-events:none;
}
.contato__form-wrap::before { top:.8rem; left:.8rem; border-top:1.5px solid; border-left:1.5px solid; }
.contato__form-wrap::after  { bottom:.8rem; right:.8rem; border-bottom:1.5px solid; border-right:1.5px solid; }

.contato__form-title {
    margin-bottom:1.6rem; padding-left:.9rem;
    border-left:3px solid var(--green);
    font-family:var(--font-display); font-size:1.3rem; font-weight:600;
    color: var(--txt-dk);
}

.site-flash-stack {
    display:flex; flex-direction:column; gap:.6rem;
    margin-bottom:1.1rem;
}

.site-flash {
    pointer-events:auto;
    display:flex; align-items:flex-start; gap:.75rem;
    width:100%; max-width:100%;
    padding:1rem 1.25rem;
    background:#fff;
    border-radius:10px;
    box-shadow:0 14px 32px rgba(19,25,30,.18);
    font-size:.86rem; line-height:1.5;
    color:var(--txt-dk);
    transition:opacity .4s ease, transform .4s ease;
}

.site-flash.is-dismissing { opacity:0; transform:translateY(-12px) }

.site-flash--success { border-left:3px solid var(--green) }
.site-flash--success::before {
    content:"\2713";
    font-family:var(--font-mono); color:var(--green); font-weight:700;
}

.site-flash--error { border-left:3px solid #c82828 }
.site-flash--error::before {
    content:"\2715";
    font-family:var(--font-mono); color:#c82828; font-weight:700;
}

.site-flash--warning { border-left:3px solid #b88c00 }
.site-flash--warning::before {
    content:"!";
    font-family:var(--font-mono); color:#b88c00; font-weight:700;
}

.field-error {
    display:block; margin-top:.35rem;
    font-size:.76rem; color:#c82828;
}

.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:1.1rem }
.form-field--full { grid-column:1 / -1 }

.form-field label {
    display:block; margin-bottom:.4rem;
    font-family:var(--font-mono); font-size:.6rem; font-weight:600;
    letter-spacing:.16em; text-transform:uppercase;
    color: var(--txt-dk2);
}

.required-mark { color:var(--green); margin-left:.2rem }

.form-field--outro { margin-top:.6rem }

.form-input {
    width:100%; padding:.82rem 1rem;
    border:1px solid var(--borda-lt); border-radius:10px;
    background: rgba(255,255,255,.9);
    color:var(--txt-dk);
    font:inherit; font-size:.9rem;
    transition: border-color .25s ease, background .25s ease, box-shadow .25s ease;
}

.form-input:focus {
    outline:none;
    border-color:var(--green);
    background:#fff;
    box-shadow:0 0 0 3px rgba(48,161,4,.12), 0 0 20px rgba(48,161,4,.10);
}

.form-input::placeholder { color:rgba(19,25,30,.35) }

select.form-input {
    appearance:none; -webkit-appearance:none;
    background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%2330a104' stroke-width='1.5'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 1rem center;
    padding-right:2.5rem;
}

select.form-input option { background:#fff; color:var(--txt-dk) }
textarea.form-input { resize:vertical }

.form-submit { grid-column:1 / -1; width:100%; margin-top:.4rem }

/* ===========================================================
   FOOTER — DARK block. Closing.
   Transition: light wedge bleeding left from Contato.
   =========================================================== */

.site-footer {
    position:relative;
    background:
        radial-gradient(circle at 90% 100%, rgba(48,161,4,.14) 0%, transparent 55%),
        radial-gradient(ellipse 34rem 20rem at 8% 38%, rgba(184,255,0,.16) 0%, rgba(48,161,4,.10) 40%, transparent 72%),
        var(--HEX_LIME_DK),
        linear-gradient(180deg, var(--graphite-2) 0%, var(--graphite) 100%);
    color:var(--txt-lt);
}

/* light diagonal from contato above */
.site-footer::before {
    content:""; position:absolute; top:0; left:0; right:0; height:clamp(2.5rem,5vw,3.6rem);
    background: #f3f6f0;
    clip-path: polygon(0 0, 100% 0, 100% 46%, 0 100%);
    pointer-events:none; z-index:0;
}

.site-footer > .container { position:relative; z-index:1 }

.footer-grid {
    display:grid; grid-template-columns:1.4fr 1fr 1fr;
    gap:2.5rem; padding-block:3.2rem;
}

.footer-brand__text {
    max-width:22rem; margin-top:.85rem;
    font-size:.84rem; line-height:1.7;
    color:var(--txt-lt2);
}

.footer-col-title {
    margin-bottom:.95rem;
    font-family:var(--font-mono); font-size:.64rem; font-weight:600;
    letter-spacing:.18em; text-transform:uppercase;
    color:var(--green-hi);
}

.footer-list {
    display:grid; gap:.45rem;
    font-size:.84rem; color:var(--txt-lt2);
}

.footer-list a { transition:color .25s ease }
.footer-list a:hover { color:var(--green-hi) }

.footer-bottom {
    display:flex; align-items:center; justify-content:space-between; gap:1rem;
    padding-block:1.2rem;
    border-top:1px solid var(--borda-dk);
    font-size:.76rem; color:var(--txt-ltdim);
}

.footer-bottom__tag {
    letter-spacing:.12em; font-size:.64rem;
    color:var(--txt-ltdim);
}

.footer-bottom__tag a {
    color:var(--green-hi); opacity:.8;
    transition:opacity .25s ease;
}

.footer-bottom__tag a:hover { opacity:1 }

/* ===========================================================
   WHATSAPP FLOAT
   =========================================================== */

.whatsapp-float {
    position:fixed; right:1.4rem; bottom:4.5rem; z-index:999;
    display:inline-flex; align-items:center; justify-content:center;
    width:3.6rem; height:3.6rem; border-radius:50%;
    background:linear-gradient(135deg, #3ddc6f 0%, #25d366 45%, #0d8a47 100%);
    box-shadow:0 8px 24px -6px rgba(0,0,0,.5), 0 0 22px rgba(37,211,102,.35);
    transition: transform .3s var(--ease-out), box-shadow .3s ease;
}

.whatsapp-float svg { width:1.7rem; height:1.7rem; fill:#fff }

.whatsapp-float::before {
    content:""; position:absolute; inset:-.6rem; border-radius:50%;
    border:1px solid rgba(37,211,102,.4);
    animation: wpp-pulse 2.4s var(--ease-out) infinite;
    pointer-events:none;
}

.whatsapp-float:hover {
    transform:translateY(-4px) scale(1.05);
    box-shadow:0 14px 30px -8px rgba(0,0,0,.5), 0 0 34px rgba(37,211,102,.55);
}

/* ===========================================================
   SCROLL REVEAL
   =========================================================== */

[data-reveal] {
    transition: opacity .8s ease, transform .8s var(--ease-out);
    transition-delay: var(--reveal-delay, 0s);
}

[data-reveal].is-hidden { opacity:0; transform:translateY(24px) }
[data-reveal].is-revealed { opacity:1; transform:none }

/* ===========================================================
   RESPONSIVE
   =========================================================== */

@media (max-width:980px) {
    .banner__inner { grid-template-columns:1fr; gap:3rem }
    .banner__visual { justify-self:start; width:min(100%,30rem); margin-inline:auto }
    .banner__logo-mark { display:none }
    .empresa__layout { grid-template-columns:1fr; gap:2.5rem }
    .produto-detalhe__grid { grid-template-columns:1fr; gap:2.5rem }
    .produto-detalhe--invertido .produto-detalhe__grid .produto-detalhe__visual,
    .produto-detalhe--invertido .produto-detalhe__grid .produto-detalhe__content { order:0 }
    .contato__grid { grid-template-columns:1fr; gap:2.5rem }
    .footer-grid { grid-template-columns:1fr }
}

@media (max-width:767px) {
    .check-list { grid-template-columns:1fr }
    .contact-form { grid-template-columns:1fr }
    .form-field--full, .form-submit { grid-column:1 / -1 }
    .footer-bottom { flex-direction:column; align-items:flex-start; gap:.5rem }
    .hud--tr { right:0 }
    .hud--bl { left:0 }
}

@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto }
    *,*::before,*::after {
        animation-duration:.001s !important;
        animation-iteration-count:1 !important;
        transition-duration:.001s !important;
    }
    [data-reveal] { opacity:1 !important; transform:none !important }
}