/* =========================================================
   HUB TECNOLÓGICO — main.css
   Futurista · Dark · Glassmorphism · Neon
   Desktop first (>= 1200px)
   ========================================================= */

/* ---------- Tokens ---------- */
:root{
    --bg:           #050709;
    --bg-2:         #0a0d12;
    --bg-soft:      #10141b;
    --surface:      rgba(255,255,255,.04);
    --surface-2:    rgba(255,255,255,.06);
    --border:       rgba(255,255,255,.08);
    --border-strong:rgba(255,255,255,.16);

    --text:         #f1f5f9;
    --muted:        #94a3b8;
    --dim:          #64748b;

    --accent:       #c6f73a;   /* lime */
    --accent-2:     #b1e02b;
    --cyan:         #22d3ee;   /* neon cyan */
    --cyan-2:       #06b6d4;

    --glow-accent:  0 0 40px rgba(198,247,58,.35);
    --glow-cyan:    0 0 40px rgba(34,211,238,.35);

    --radius-sm:    10px;
    --radius:       18px;
    --radius-lg:    28px;
    --radius-xl:    36px;

    --shadow-sm:    0 4px 20px rgba(0,0,0,.4);
    --shadow:       0 20px 60px rgba(0,0,0,.5);
    --shadow-lg:    0 30px 80px rgba(0,0,0,.6);

    --container:    1280px;
    --section-py:   120px;
}

/* ---------- Reset / base ---------- */
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
    margin:0;
    font-family:'Montserrat', Arial, sans-serif;
    font-weight:400;
    color:var(--text);
    background:var(--bg);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
    position:relative;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
ul{list-style:none; padding:0; margin:0;}
h1,h2,h3,h4{font-family:'Montserrat',sans-serif; color:#fff; line-height:1.1; margin:0 0 .6em; letter-spacing:-.02em;}
h1{font-size:clamp(2.6rem, 5vw, 4.4rem); font-weight:800;}
h2{font-size:clamp(2rem, 3vw, 3rem); font-weight:800;}
h3{font-size:1.35rem; font-weight:700;}
h4{font-size:1.05rem; font-weight:700;}
p{margin:0 0 1em; color:var(--muted); font-size:1rem;}

.container{
    width:100%;
    max-width:var(--container);
    margin:0 auto;
    padding:0 32px;
    position:relative;
    z-index:2;
}

/* ---------- Background FX ---------- */
.bg-grid{
    position:fixed; inset:0;
    background-image:
            linear-gradient(rgba(255,255,255,.025) 1px, transparent 1px),
            linear-gradient(90deg, rgba(255,255,255,.025) 1px, transparent 1px);
    background-size:60px 60px;
    -webkit-mask-image:radial-gradient(ellipse at center, #000 30%, transparent 80%);
    mask-image:radial-gradient(ellipse at center, #000 30%, transparent 80%);
    pointer-events:none;
    z-index:0;
}
.bg-orbs{position:fixed; inset:0; pointer-events:none; z-index:0; overflow:hidden;}
.orb{
    position:absolute;
    border-radius:50%;
    filter:blur(120px);
    opacity:.45;
}
.orb-1{width:540px; height:540px; background:var(--accent); top:-150px; left:-150px; opacity:.18;}
.orb-2{width:600px; height:600px; background:var(--cyan); top:40%; right:-200px; opacity:.18;}
.orb-3{width:480px; height:480px; background:#8b5cf6; bottom:-180px; left:30%; opacity:.15;}

/* ---------- Common ---------- */
.eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    background:var(--surface);
    border:1px solid var(--border);
    color:#fff;
    font-size:.75rem;
    font-weight:600;
    padding:8px 16px;
    border-radius:999px;
    margin-bottom:20px;
    letter-spacing:.08em;
    text-transform:uppercase;
    backdrop-filter:blur(10px);
}
.eyebrow i{color:var(--accent);}
.highlight{
    background:linear-gradient(135deg, var(--accent), var(--cyan));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    display:inline-block;
}
.glass{
    background:var(--surface);
    border:1px solid var(--border);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    border-radius:var(--radius);
    transition:border-color .25s ease, transform .25s ease, box-shadow .25s ease;
}
.glass:hover{border-color:var(--border-strong);}

/* ---------- Buttons ---------- */
.btn-primary, .btn-ghost{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 26px;
    border-radius:999px;
    font-family:'Montserrat',sans-serif;
    font-weight:600;
    font-size:.95rem;
    border:1.5px solid transparent;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
    white-space:nowrap;
    text-decoration:none;
}
.btn-primary{
    background:linear-gradient(135deg, var(--accent), var(--accent-2));
    color:#0a0d12;
    box-shadow:0 10px 30px rgba(198,247,58,.25), inset 0 1px 0 rgba(255,255,255,.4);
}
.btn-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 40px rgba(198,247,58,.45), inset 0 1px 0 rgba(255,255,255,.5);
}
.btn-ghost{
    background:var(--surface);
    color:#fff;
    border-color:var(--border-strong);
    backdrop-filter:blur(10px);
}
.btn-ghost:hover{
    background:var(--surface-2);
    border-color:var(--accent);
    color:var(--accent);
    transform:translateY(-2px);
}

/* ---------- Header ---------- */
.site-header{
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(5,7,9,.7);
    backdrop-filter:saturate(180%) blur(20px);
    border-bottom:1px solid var(--border);
}
.header-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:24px;
    padding:18px 32px;
}
.logo{display:flex; align-items:center; gap:12px;}
.logo-avatar{height:40px; width:auto;}
.logo-text{height:30px; width:auto; filter:brightness(0) invert(1);}

.main-nav{display:flex; gap:32px;}
.main-nav a{
    font-weight:500;
    font-size:.92rem;
    color:var(--muted);
    position:relative;
    padding:8px 0;
    transition:color .2s ease;
    text-transform: uppercase;
}
.main-nav a:hover{color:#fff;}
.main-nav a:hover::after{
    content:'';
    position:absolute;
    left:0; right:0; bottom:0;
    height:2px;
    background:linear-gradient(90deg, var(--accent), var(--cyan));
    border-radius:2px;
}
.header-cta{padding:11px 22px; font-size:.85rem;}
.nav-toggle{
    display:none;
    background:transparent; border:0; font-size:1.7rem; color:#fff;
}
/* ---------- Hero ---------- */
.hero{
    position:relative;
    padding:60px 0 80px;
    isolation:isolate;          /* mantém o z-index local */
}
.hero-card{
    position:relative;
    border-radius:var(--radius-xl);
    padding:110px 60px 80px;
    text-align:center;
    overflow:visible;           /* deixa o bg vazar do card */
    border:0;
    background:transparent;     /* o card não pinta mais o fundo */
    box-shadow:none;
}
/* Fundo full-bleed: ocupa 100vw, ignorando o container */
.hero-bg{
    position:absolute;
    top:-60px; bottom:-80px;    /* cobre todo o padding do .hero */
    left:50%;
    width:100vw;
    margin-left:-50vw;
    background-size:cover;
    background-position:center;
    opacity:.55;
    z-index:-2;
    pointer-events:none;
}
.hero-overlay{
    position:absolute;
    top:-60px; bottom:-80px;
    left:50%;
    width:100vw;
    margin-left:-50vw;
    background:
            radial-gradient(ellipse at top, rgba(198,247,58,.15), transparent 55%),
            radial-gradient(ellipse at bottom, rgba(34,211,238,.15), transparent 55%),
            linear-gradient(180deg, rgba(5,7,9,.45) 0%, rgba(5,7,9,.85) 100%);
    z-index:-1;
    pointer-events:none;
}
.hero-card > *:not(.hero-bg):not(.hero-overlay){position:relative; z-index:2;}


.hero-badge{
    display:inline-flex; align-items:center; gap:10px;
    background:rgba(255,255,255,.06);
    border:1px solid var(--border-strong);
    padding:8px 18px;
    border-radius:999px;
    font-size:.8rem;
    font-weight:500;
    margin-bottom:30px;
    backdrop-filter:blur(10px);
    color:#fff;
}
.hero-badge .dot{
    width:8px; height:8px; border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 12px var(--accent);
    animation:pulse 1.8s ease-in-out infinite;
}
@keyframes pulse{
    0%,100%{opacity:1; transform:scale(1);}
    50%{opacity:.5; transform:scale(.8);}
}

.hero-title{
    max-width:920px;
    margin:0 auto 24px;
    font-weight:800;
}
.hero-sub{
    font-size:1.15rem;
    color:#cbd5e1;
    max-width:680px;
    margin:0 auto 38px;
}
.hero-actions{
    display:flex; justify-content:center; gap:14px; flex-wrap:wrap;
    margin-bottom:60px;
}
.hero-stats{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:24px;
    max-width:760px;
    margin:0 auto;
    padding-top:40px;
    border-top:1px solid var(--border);
}
.hero-stats > div{text-align:center;}
.hero-stats strong{
    display:block;
    font-size:2rem;
    font-weight:800;
    background:linear-gradient(135deg, var(--accent), var(--cyan));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    margin-bottom:4px;
}
.hero-stats span{font-size:.82rem; color:var(--muted);}

/* ---------- Marquee ---------- */
.marquee-wrap{padding:0 0 80px;}
.marquee{
    overflow:hidden;
    border-top:1px solid var(--border);
    border-bottom:1px solid var(--border);
    padding:22px 0;
    -webkit-mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
    mask-image:linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent);
}
.marquee-track{
    display:flex; gap:50px;
    animation:scroll 40s linear infinite;
    white-space:nowrap;
    width:max-content;
}
.marquee-track span{
    display:inline-flex; align-items:center; gap:10px;
    font-family:'JetBrains Mono', monospace;
    font-size:.95rem;
    color:var(--muted);
    font-weight:500;
}
.marquee-track i{color:var(--accent); font-size:1.1rem;}
@keyframes scroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
}

/* ---------- About ---------- */
.about{padding:var(--section-py) 0;}
.about-grid{
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:30px;
    align-items:stretch;
}
.about-main{
    padding:56px 50px;
}
.about-main h2{margin-bottom:20px;}
.about-side{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}
.about-card{
    padding:30px 26px;
}
.about-icon{
    width:48px; height:48px;
    border-radius:14px;
    background:linear-gradient(135deg, var(--accent), var(--accent-2));
    color:#0a0d12;
    display:flex; align-items:center; justify-content:center;
    font-size:1.4rem;
    margin-bottom:18px;
    box-shadow:var(--glow-accent);
}
.about-card:nth-child(2) .about-icon{background:linear-gradient(135deg, var(--cyan), var(--cyan-2)); box-shadow:var(--glow-cyan); color:#0a0d12;}
.about-card:nth-child(3) .about-icon{background:linear-gradient(135deg, #a78bfa, #8b5cf6); box-shadow:0 0 30px rgba(167,139,250,.35); color:#fff;}
.about-card:nth-child(4) .about-icon{background:linear-gradient(135deg, #fb923c, #f97316); box-shadow:0 0 30px rgba(251,146,60,.35); color:#fff;}

/* ---------- Section head ---------- */
.section-head{
    text-align:center;
    max-width:780px;
    margin:0 auto 70px;
}
.section-sub{color:var(--muted); font-size:1.05rem;}

/* ---------- Services ---------- */
.services{padding:var(--section-py) 0;}
.services-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:20px;
}
.service-card{
    padding:36px 30px;
    position:relative;
    overflow:hidden;
    cursor:pointer;
}
.service-card::before{
    content:'';
    position:absolute; inset:0;
    background:radial-gradient(circle at top right, rgba(198,247,58,.08), transparent 60%);
    opacity:0;
    transition:opacity .3s ease;
}
.service-card:hover{transform:translateY(-6px); border-color:var(--accent);}
.service-card:hover::before{opacity:1;}
.service-card.accent::before{background:radial-gradient(circle at top right, rgba(34,211,238,.1), transparent 60%); opacity:1;}
.service-card.accent{border-color:rgba(34,211,238,.25);}
.service-card.accent .service-icon{background:linear-gradient(135deg, var(--cyan), var(--cyan-2)); box-shadow:var(--glow-cyan);}
.service-icon{
    width:56px; height:56px;
    border-radius:16px;
    background:linear-gradient(135deg, var(--accent), var(--accent-2));
    color:#0a0d12;
    display:flex; align-items:center; justify-content:center;
    font-size:1.55rem;
    margin-bottom:22px;
    box-shadow:var(--glow-accent);
}
.service-card h3{margin-bottom:10px;}
.service-link{
    display:inline-flex; align-items:center; gap:6px;
    font-weight:600; font-size:.88rem;
    color:var(--accent);
    margin-top:14px;
}
.service-link i{transition:transform .2s ease;}
.service-card:hover .service-link i{transform:translate(3px, -3px);}

/* ---------- Products ---------- */
.products{padding:var(--section-py) 0;}
.products-grid{
    display:grid;
    grid-template-columns:repeat(2, 1fr);
    gap:24px;
}
.product-card{
    overflow:hidden;
    display:flex; flex-direction:column;
    padding:0;
}
.product-card:hover{transform:translateY(-6px); border-color:var(--cyan);}
.product-thumb{
    height:240px;
    background-size:cover;
    background-position:center;
    position:relative;
}
.product-thumb::after{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(180deg, transparent 50%, rgba(5,7,9,.7) 100%);
}
.product-body{padding:36px 32px;}
.product-card.featured{
    border-color:rgba(198,247,58,.3);
    box-shadow:0 0 60px rgba(198,247,58,.08);
}
.product-tag{
    display:inline-flex; align-items:center;
    background:rgba(255,255,255,.06);
    border:1px solid var(--border-strong);
    color:#fff;
    padding:6px 14px;
    border-radius:999px;
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    margin-bottom:18px;
}
.product-tag.gold{background:linear-gradient(135deg, #fbbf24, #f59e0b); color:#0a0d12; border-color:transparent;}
.product-tag.green{background:linear-gradient(135deg, #22c55e, #16a34a); color:#fff; border-color:transparent;}
.product-tag.accent{background:linear-gradient(135deg, var(--accent), var(--accent-2)); color:#0a0d12; border-color:transparent;}
.product-card h3{font-size:1.9rem; margin-bottom:12px;}
.product-features{margin-top:20px; display:flex; flex-direction:column; gap:10px;}
.product-features li{
    display:flex; align-items:center; gap:10px;
    font-weight:500; font-size:.93rem;
    color:#cbd5e1;
}
.product-features i{color:var(--accent); font-size:1.05rem;}

/* ---------- Why ---------- */
.why{padding:var(--section-py) 0;}
.why-grid{
    display:grid;
    grid-template-columns:1fr 1.4fr;
    gap:70px;
    align-items:start;
}
.why-items{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.why-item{
    padding:30px 28px;
}
.why-num{
    display:inline-block;
    font-family:'JetBrains Mono', monospace;
    font-size:.9rem;
    font-weight:600;
    background:linear-gradient(135deg, var(--accent), var(--cyan));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    margin-bottom:12px;
    letter-spacing:.05em;
}
.why-item h4{margin-bottom:8px;}
.why-item p{font-size:.93rem; margin:0;}
/* ---------- CTA Banner ---------- */
.cta-banner{padding:60px 0;}
.cta-inner{
    position:relative;
    border-radius:var(--radius-xl);
    text-align:center;
    padding:110px 50px 90px;
    background:linear-gradient(135deg, #0a0d12, #10141b);
    border:1px solid var(--border-strong);
    overflow:hidden;
    isolation:isolate;
    box-shadow:var(--shadow-lg), inset 0 0 0 1px rgba(198,247,58,.05);
}
.cta-bg{
    position:absolute; inset:0;
    background-size:cover;
    background-position:center;
    opacity:.55;
    filter:saturate(1.1) contrast(1.05);
    z-index:0;
    animation:cta-float 18s ease-in-out infinite;
}
.cta-overlay{
    position:absolute; inset:0;
    background:
            radial-gradient(ellipse at center, rgba(5,7,9,.35) 0%, rgba(5,7,9,.75) 55%, rgba(5,7,9,.92) 100%),
            linear-gradient(180deg, rgba(5,7,9,.4) 0%, rgba(5,7,9,.85) 100%);
    z-index:1;
}
.cta-glow{
    position:absolute;
    width:700px; height:700px;
    background:radial-gradient(circle, rgba(198,247,58,.22), transparent 60%);
    top:-260px; left:50%; transform:translateX(-50%);
    pointer-events:none;
    z-index:1;
    filter:blur(10px);
}
.cta-inner > *:not(.cta-bg):not(.cta-overlay):not(.cta-glow){position:relative; z-index:2;}

.cta-badge{
    display:inline-flex; align-items:center; gap:8px;
    padding:8px 16px;
    border:1px solid var(--border-strong);
    border-radius:999px;
    background:rgba(255,255,255,.04);
    backdrop-filter:blur(12px);
    color:#e2e8f0;
    font-size:.8rem; font-weight:600;
    letter-spacing:.04em; text-transform:uppercase;
    margin-bottom:24px;
}
.cta-badge .dot{
    width:8px; height:8px; border-radius:50%;
    background:var(--accent);
    box-shadow:0 0 12px var(--accent);
    animation:pulse 2s ease-in-out infinite;
}

.cta-inner h2{max-width:820px; margin:0 auto 16px; text-shadow:0 4px 30px rgba(0,0,0,.6);}
.cta-inner p{color:#cbd5e1; max-width:580px; margin:0 auto 36px; font-size:1.05rem;}
.cta-actions{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

@keyframes cta-float{
    0%,100%{ transform:scale(1) translateY(0); }
    50%    { transform:scale(1.04) translateY(-8px); }
}
@keyframes pulse{
    0%,100%{ opacity:1; transform:scale(1); }
    50%    { opacity:.6; transform:scale(1.3); }
}

/* ---------- Plans ---------- */
.plans{padding:var(--section-py) 0;}
.plans-grid{
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:22px;
}
.plan-card{
    padding:40px 34px;
    display:flex; flex-direction:column; gap:14px;
    position:relative;
}
.plan-card:hover{transform:translateY(-6px);}
.plan-featured{
    border-color:var(--accent);
    background:linear-gradient(180deg, rgba(198,247,58,.08), rgba(255,255,255,.04));
    box-shadow:0 0 60px rgba(198,247,58,.12);
}
.plan-badge{
    position:absolute; top:-12px; right:24px;
    background:linear-gradient(135deg, var(--accent), var(--accent-2));
    color:#0a0d12;
    padding:5px 14px;
    border-radius:999px;
    font-size:.7rem;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
}
.plan-name{
    text-transform:uppercase;
    letter-spacing:.14em;
    font-size:.78rem;
    font-weight:700;
    color:var(--accent);
}
.plan-price{
    font-family:'Montserrat',sans-serif;
    font-size:2.3rem;
    font-weight:800;
    color:#fff;
    line-height:1;
}
.plan-price small{
    display:inline-block;
    font-size:.85rem;
    font-weight:500;
    color:var(--muted);
    margin-left:6px;
}
.plan-tag{font-size:.92rem; margin:0 0 6px; color:var(--muted);}
.plan-card ul{display:flex; flex-direction:column; gap:11px; margin:8px 0 22px;}
.plan-card ul li{display:flex; align-items:center; gap:12px; font-size:.92rem; color:#cbd5e1;}
.plan-card ul li i{
    flex:0 0 22px;
    width:22px; height:22px;
    display:inline-flex; align-items:center; justify-content:center;
    color:#0a0d12;
    background:radial-gradient(circle at 30% 30%, #e6ff7a 0%, var(--accent) 55%, var(--accent-2) 100%);
    border-radius:50%;
    font-size:.78rem;
    line-height:1;
    padding:0;
    box-shadow:0 0 0 1px rgba(198,247,58,.35), 0 0 14px rgba(198,247,58,.45), inset 0 1px 0 rgba(255,255,255,.5);
    transition:transform .2s ease, box-shadow .2s ease;
}
.plan-featured ul li i{box-shadow:0 0 0 1px rgba(198,247,58,.55), 0 0 18px rgba(198,247,58,.6), inset 0 1px 0 rgba(255,255,255,.55);}

.plan-card a{align-self:flex-start; margin-top:auto;}

/* ---------- Testi ---------- */
.testi{padding:var(--section-py) 0;}
.testi-grid{
    display:grid;
    grid-template-columns:1fr 1.2fr;
    gap:40px;
    align-items:center;
}
.testi-stats .big-stat{
    padding:44px 40px;
    margin-bottom:18px;
    background:linear-gradient(135deg, rgba(198,247,58,.08), rgba(34,211,238,.08));
    border-color:rgba(198,247,58,.2);
}
.big-stat strong{
    display:block;
    font-size:3.4rem;
    font-weight:800;
    background:linear-gradient(135deg, var(--accent), var(--cyan));
    -webkit-background-clip:text;
    background-clip:text;
    color:transparent;
    line-height:1;
    margin-bottom:10px;
}
.big-stat span{color:#cbd5e1; font-size:.95rem;}
.stat-row{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.stat-row > div{padding:26px 20px; text-align:center;}
.stat-row strong{display:block; font-size:1.9rem; font-weight:800; color:#fff;}
.stat-row span{font-size:.84rem; color:var(--muted);}

.testi-card{
    padding:48px 42px;
}
.stars{color:var(--accent); margin:8px 0 18px; font-size:1.1rem; display:flex; gap:4px;}
.testi-quote{
    font-size:1.18rem;
    color:#e2e8f0;
    font-weight:500;
    line-height:1.6;
    margin-bottom:28px;
}
.testi-author{display:flex; align-items:center; gap:14px;}
.avatar{
    width:48px; height:48px;
    border-radius:50%;
    background:linear-gradient(135deg, var(--accent), var(--cyan));
    color:#0a0d12;
    display:flex; align-items:center; justify-content:center;
    font-weight:700;
}
.testi-author strong{display:block; font-size:.95rem; color:#fff;}
.testi-author span{font-size:.82rem; color:var(--muted);}

/* ---------- Contact ---------- */
.contact{padding:var(--section-py) 0;}
.contact-grid{
    display:grid;
    grid-template-columns:1fr 1.05fr;
    gap:50px;
    align-items:start;
}
.info-cards{display:flex; flex-direction:column; gap:14px; margin-top:30px;}
.info-card{
    display:flex; align-items:center; gap:16px;
    padding:18px 22px;
}
.info-icon{
    width:46px; height:46px;
    background:linear-gradient(135deg, var(--accent), var(--accent-2));
    color:#0a0d12;
    border-radius:12px;
    display:flex; align-items:center; justify-content:center;
    font-size:1.2rem;
    flex-shrink:0;
}
.info-card span{font-size:.78rem; color:var(--muted); display:block;}
.info-card strong{font-size:.96rem; color:#fff;}

.contact-form{padding:42px 38px;}
.form-row{margin-bottom:20px;}
.form-row label{display:block; font-weight:600; font-size:.85rem; color:#cbd5e1; margin-bottom:10px;}
.form-row input,
.form-row textarea{
    width:100%;
    padding:14px 16px;
    border-radius:12px;
    border:1px solid var(--border-strong);
    background:rgba(0,0,0,.3);
    font-family:inherit;
    font-size:.95rem;
    color:#fff;
    transition:border-color .2s ease, box-shadow .2s ease;
}
.form-row input::placeholder,
.form-row textarea::placeholder{color:var(--dim);}
.form-row input:focus,
.form-row textarea:focus{
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 3px rgba(198,247,58,.15);
}
.form-row textarea{resize:vertical;}
.form-label{display:block; font-weight:600; font-size:.85rem; color:#cbd5e1; margin-bottom:12px;}
.check-row{
    display:flex;
    flex-wrap:wrap;
    gap:14px;
    align-items:center;
}

.check{
    position:relative;
    display:inline-flex !important;
    align-items:center;
    justify-content:flex-start;
    gap:12px;
    min-height:52px;
    margin:0 !important;
    padding:0 20px !important;
    font-size:.94rem !important;
    font-weight:700 !important;
    line-height:1 !important;
    color:#cbd5e1 !important;
    background:linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.025));
    border:1px solid var(--border-strong);
    border-radius:999px;
    cursor:pointer;
    user-select:none;
    white-space:nowrap;
    vertical-align:middle;
    transition:transform .2s ease, border-color .2s ease, color .2s ease, background .2s ease, box-shadow .2s ease;
}
.check:hover{
    border-color:rgba(198,247,58,.45);
    color:#fff !important;
    transform:translateY(-1px);
}

.check input[type="checkbox"]{
    position:absolute !important;
    inset:0;
    opacity:0;
    width:100% !important;
    height:100% !important;
    margin:0 !important;
    padding:0 !important;
    cursor:pointer;
}

.check-box{
    width:20px;
    height:20px;
    border-radius:7px;
    border:1.5px solid rgba(255,255,255,.18);
    background:#070b11;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 20px;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
    transition:all .2s ease;
}
.check-box::after{
    content:"";
    width:10px;
    height:6px;
    border-left:2px solid #050709;
    border-bottom:2px solid #050709;
    transform:rotate(-45deg) scale(.6);
    opacity:0;
    transition:all .18s ease;
}

.check:has(input:checked){
    background:linear-gradient(180deg, rgba(198,247,58,.18), rgba(198,247,58,.08));
    border-color:rgba(198,247,58,.8);
    color:#fff !important;
    box-shadow:0 0 30px rgba(198,247,58,.18);
}
.check:has(input:checked) .check-box{
    background:linear-gradient(135deg, var(--accent), var(--accent-2));
    border-color:var(--accent);
    box-shadow:0 0 18px rgba(198,247,58,.35);
}
.check:has(input:checked) .check-box::after{
    opacity: 1;
    transform: rotate(-45deg) scale(1);
    margin-bottom: 4px;
}

/* foco acessível pelo teclado */
.check:focus-within{
    outline:2px solid var(--accent);
    outline-offset:2px;
}


/* ---------- Footer ---------- */
.site-footer{
    background:linear-gradient(180deg, transparent, var(--bg-2));
    border-top:1px solid var(--border);
    color:#cbd5e1;
    padding-top:90px;
    margin-top:60px;
}
.footer-grid{
    display:grid;
    grid-template-columns:1.5fr 1fr 1fr 1.2fr;
    gap:50px;
    padding-bottom:60px;
}
.footer-logo{
    height:32px;
    margin-bottom:20px;
    filter:invert(1) brightness(2);   /* deixa o logo branco */
    opacity:.95;
}
.footer-brand p{color:var(--muted); font-size:.92rem;}
.socials{display:flex; gap:10px; margin-top:20px;}
.socials a{
    width:40px; height:40px;
    border-radius:12px;
    background:var(--surface);
    border:1px solid var(--border);
    display:flex; align-items:center; justify-content:center;
    color:#fff;
    transition:all .2s ease;
}
.socials a:hover{
    background:linear-gradient(135deg, var(--accent), var(--accent-2));
    color:#0a0d12;
    transform:translateY(-2px);
}
.site-footer h4{color:#fff; margin-bottom:18px;}
.site-footer ul li{margin-bottom:10px;}
.site-footer ul li a{color:var(--muted); font-size:.92rem; transition:color .15s;}
.site-footer ul li a:hover{color:var(--accent);}
.contact-list li{color:var(--muted); font-size:.92rem; display:flex; align-items:center; gap:10px;}
.contact-list i{color:var(--accent);}
.footer-bottom{
    border-top:1px solid var(--border);
    padding:22px 0;
    text-align:center;
    font-size:.85rem;
    color:var(--dim);
}
