*, *::before, *::after { margin: 0; padding: 0; box-sizing: border-box; }

:root {
    --dark:      #080F1E;
    --dark-2:    #0D1526;
    --white:     #FFFFFF;
    --off-white: #F4F6FF;
    --text:      #080F1E;
    --text-dim:  rgba(8,15,30,0.52);
    --accent:    #0055EE;
    --accent-2:  #4D86FF;
    --accent-3:  #63C5FF;
    --accent-4:  #FF5C00;
    --border:    rgba(8,15,30,0.10);
    --border-a:  rgba(0,85,238,0.25);
    --sg: 'Space Grotesk', sans-serif;
    --ease: cubic-bezier(.215,.61,.355,1);
}

html { scroll-behavior: auto; }
body {
    background: var(--white);
    color: var(--text);
    font-family: var(--sg);
    font-size: clamp(15px,1.1vw,17px);
    line-height: 1.6;
    overflow-x: hidden;
    cursor: none;
    opacity: 0;
    transition: opacity .5s ease;
}
body.ready { opacity: 1; }
body.no-scroll { overflow: hidden; }
h1,h2,h3,h4,h5 { font-family: var(--sg); line-height: 1.1; letter-spacing: -.03em; }
a { color: inherit; text-decoration: none; }
img { display: block; }
::selection { background: var(--accent); color: #fff; }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: #f5f5f5; }
::-webkit-scrollbar-thumb { background: var(--accent); border-radius: 0; }

.container { width: 100%; max-width: 1380px; margin: 0 auto; padding: 0 clamp(20px,5vw,70px); }
.container-expand { width: 100%; padding: 0 clamp(20px,5vw,70px); }

/* ─── PRELOADER ─── */
#preloader {
    position: fixed; inset: 0; background: var(--dark); z-index: 10000;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.pre-logo-wrap { overflow: hidden; margin-bottom: 32px; }
.pre-logo { display: flex; align-items: center; gap: 14px; transform: translateY(100%); }
.pre-icon { width: 44px; height: 44px; flex-shrink: 0; }
.pre-text { font-size: 1.7rem; font-weight: 700; color: #fff; letter-spacing: -.04em; }
.pre-text em { font-style: normal; font-weight: 300; color: var(--accent-2); }
.pre-bar { width: 180px; height: 1px; background: rgba(255,255,255,0.1); overflow: hidden; }
.pre-fill { height: 100%; width: 0; background: var(--accent); }
.pre-pct { font-size: 0.72rem; color: rgba(255,255,255,.3); margin-top: 10px; letter-spacing: .1em; font-weight: 300; }

/* ─── CURSOR ─── */
.c-dot { width:7px; height:7px; background:var(--accent); border-radius:50%; position:fixed; top:0; left:0; pointer-events:none; z-index:9999; transform:translate(-50%,-50%); }
.c-ring { width:34px; height:34px; border:1.5px solid rgba(0,85,238,.28); border-radius:50%; position:fixed; top:0; left:0; pointer-events:none; z-index:9998; transform:translate(-50%,-50%); transition:width .28s var(--ease),height .28s var(--ease),border-color .28s; }
.c-ring.big { width:54px; height:54px; border-color:var(--accent); }

/* ─── NAV ─── */
.via-navbar {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    padding: 30px 70px;
    display: flex; align-items: flex-end; justify-content: space-between;
    transition: all .2s var(--ease);
    background: transparent;
}
.via-navbar.via-active {
    padding-top: 18px; padding-bottom: 18px;
    background: var(--dark);
    box-shadow: 0 2px 40px rgba(0,0,0,.4);
}
.via-navbar-left { display: flex; align-items: flex-end; }
.via-navbar-right { display: flex; align-items: flex-end; }
.via-menu-logo { display: flex; align-items: center; gap: 12px; }
.nav-icon { width: 36px; height: 36px; flex-shrink: 0; }
.logo-wordmark { display: flex; flex-direction: column; }
.logo-name { font-size: 1.1rem; font-weight: 700; color: #fff; letter-spacing: -.03em; line-height: 1; }
.logo-name span { font-weight: 300; color: var(--accent-2); }
.logo-tagline { font-size: 0.68rem; color: rgba(255,255,255,.45); letter-spacing: .06em; font-weight: 300; text-transform: lowercase; }
.via-navbar-nav { display: flex; align-items: flex-end; gap: 0; }
.via-navbar-nav-item { padding: 0 20px; }
.via-navbar-nav-link {
    color: rgba(255,255,255,.75); font-size: 1rem; font-weight: 300;
    letter-spacing: .018em; padding: 0; position: relative;
    transition: color .2s; display: inline-block;
}
.via-navbar-nav-link::before {
    content: ''; width: 100%; height: 0; position: absolute;
    bottom: -4px; background: #fff; opacity: 0;
    transition: height .3s var(--ease), opacity .3s;
}
.via-navbar-nav-link:hover { color: #fff; }
.via-navbar-nav-link:hover::before { height: 1px; opacity: 1; }
.nav-cta {
    color: #fff; font-size: 0.9rem; font-weight: 500;
    padding: 10px 22px; border: 1px solid rgba(255,255,255,.3);
    border-radius: 4px; transition: background .2s, border-color .2s;
    white-space: nowrap; cursor: none;
}
.nav-cta:hover { background: var(--accent); border-color: var(--accent); }
.burger { display: none; flex-direction: column; gap: 5px; cursor: none; background: none; border: none; padding: 4px; }
.burger span { display: block; width: 24px; height: 1.5px; background: #fff; transition: transform .3s, opacity .3s; }
.burger.on span:nth-child(1) { transform: translateY(6.5px) rotate(45deg); }
.burger.on span:nth-child(2) { opacity: 0; }
.burger.on span:nth-child(3) { transform: translateY(-6.5px) rotate(-45deg); }
.m-menu {
    position: fixed; inset: 0; background: var(--dark); z-index: 999;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 32px;
    opacity: 0; pointer-events: none; transition: opacity .35s var(--ease);
}
.m-menu.open { opacity: 1; pointer-events: all; }
.m-menu a { font-size: clamp(1.6rem,5vw,2.8rem); font-weight: 700; color: #fff; letter-spacing: -.03em; transition: color .2s; }
.m-menu a:hover { color: var(--accent-2); }

/* ─── HERO ─── */
#hero {
    min-height: 100vh; display: flex; flex-direction: column; justify-content: flex-end;
    padding: 0 clamp(20px,5vw,70px) 80px;
    position: relative; overflow: hidden;
    background: var(--dark);
}
.hero-grid {
    position: absolute; inset: 0; z-index: 0;
    background-image:
        linear-gradient(rgba(255,255,255,.04) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,.04) 1px, transparent 1px);
    background-size: 80px 80px;
    mask-image: radial-gradient(ellipse 80% 80% at 50% 50%, black 10%, transparent 100%);
}
.hero-glow {
    position: absolute; top: -15%; left: 50%; transform: translateX(-50%);
    width: 70vw; height: 55vw; max-width: 900px; max-height: 700px;
    background: radial-gradient(ellipse at 40% 45%,
        rgba(0,85,238,.18) 0%,
        rgba(77,134,255,.07) 40%,
        transparent 70%);
    border-radius: 50%; z-index: 0;
    animation: glowpulse 10s ease-in-out infinite;
}
@keyframes glowpulse {
    0%,100% { opacity:.8; transform:translateX(-50%) scale(1); }
    50% { opacity:1; transform:translateX(-50%) scale(1.12); }
}
.hero-inner { position: relative; z-index: 1; max-width: 1380px; margin: 0 auto; width: 100%; }
.hero-label {
    font-size: .72rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase;
    color: var(--accent-2); margin-bottom: 30px;
    display: flex; align-items: center; gap: 12px;
    opacity: 0; transform: translateY(16px);
}
.hero-label::before { content: ''; display: block; width: 22px; height: 1px; background: var(--accent-2); }
.hero-title {
    font-size: clamp(2.8rem,7vw,7.5rem); font-weight: 700;
    line-height: 1; letter-spacing: -.04em;
    color: #fff; margin-bottom: 50px;
}
.hl { overflow: hidden; display: block; }
.hl-i { display: block; transform: translateY(110%); }
.hl-i em { font-style: italic; font-weight: 300; color: var(--accent-2); }
.hero-foot { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; }
.hero-desc {
    max-width: 460px; color: rgba(255,255,255,.5); font-size: clamp(1rem,1.2vw,1.1rem);
    font-weight: 300; line-height: 1.75; opacity: 0; transform: translateY(16px);
}
.hero-btns { display: flex; align-items: center; gap: 14px; flex-shrink: 0; opacity: 0; transform: translateY(16px); }

/* ─── BUTTONS ─── */
.btn-p {
    font-size: .82rem; font-weight: 600; letter-spacing: .05em; text-transform: uppercase;
    padding: 14px 30px; background: var(--accent); color: #fff; border-radius: 3px;
    cursor: none; display: inline-flex; align-items: center; gap: 8px;
    position: relative; overflow: hidden;
    transition: transform .3s var(--ease), box-shadow .3s;
}
.btn-p::before { content:''; position:absolute; inset:0; background:var(--accent-2); transform:scaleX(0); transform-origin:left; transition:transform .35s var(--ease); }
.btn-p:hover::before { transform:scaleX(1); }
.btn-p:hover { transform:translateY(-2px); box-shadow:0 14px 36px rgba(0,85,238,.28); }
.btn-p span, .btn-p i { position:relative; z-index:1; }

.btn-text {
    font-size: .85rem; font-weight: 500; color: rgba(255,255,255,.65);
    cursor: none; display: inline-flex; align-items: center; gap: 10px;
    transition: color .2s; position: relative;
}
.btn-text::after {
    content: ''; width: 0; height: 1px; display: inline-block;
    background: currentColor; margin-bottom: 1px;
    transition: width .3s var(--ease), margin-left .3s var(--ease);
    margin-left: 0;
}
.btn-text:hover::after { width: 28px; margin-left: 8px; }
.btn-text:hover { color: #fff; }

.btn-text-dark {
    font-size: .85rem; font-weight: 500; color: var(--text-dim);
    cursor: none; display: inline-flex; align-items: center; gap: 10px;
    transition: color .2s; position: relative;
}
.btn-text-dark::after {
    content: ''; width: 0; height: 1px; display: inline-block;
    background: currentColor; margin-bottom: 1px;
    transition: width .3s var(--ease), margin-left .3s var(--ease);
    margin-left: 0;
}
.btn-text-dark:hover::after { width: 28px; margin-left: 8px; }
.btn-text-dark:hover { color: var(--text); }

.hero-scroll { position:absolute; bottom:32px; left:50%; transform:translateX(-50%); display:flex; flex-direction:column; align-items:center; gap:8px; opacity:0; z-index:1; }
.hero-scroll span { font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.3); font-weight:300; }
.scroll-line { width:1px; height:50px; background:linear-gradient(to bottom,var(--accent-2),transparent); animation:spulse 2s ease-in-out infinite; }
@keyframes spulse {
    0%   { transform:scaleY(0); transform-origin:top; }
    50%  { transform:scaleY(1); transform-origin:top; }
    51%  { transform:scaleY(1); transform-origin:bottom; }
    100% { transform:scaleY(0); transform-origin:bottom; }
}

/* CYCLING WORD */
.cycle-wrap { display:inline-block; position:relative; vertical-align:bottom; min-height:1em; transition:width .35s cubic-bezier(.34,1.56,.64,1); overflow:visible; }
.cycle-word { display:inline-block; white-space:nowrap; color:var(--accent-2); font-style:italic; font-weight:300; position:absolute; top:0; left:0; }
.cycle-word.in  { animation:cyc-in  .4s var(--ease) forwards; }
.cycle-word.out { animation:cyc-out .3s ease-in forwards; }
@keyframes cyc-in  { from{opacity:0;filter:blur(10px);transform:translateY(-22px)} to{opacity:1;filter:blur(0);transform:translateY(0)} }
@keyframes cyc-out { from{opacity:1;filter:blur(0);transform:translateY(0)} to{opacity:0;filter:blur(10px);transform:translateY(22px)} }

/* ─── MARQUEE ─── */
.marquee-wrap { padding:20px 0; overflow:hidden; border-top:1px solid var(--border); border-bottom:1px solid var(--border); background:var(--off-white); }
.m-track { display:flex; width:max-content; will-change:transform; }
.m-track + .m-track { margin-top:8px; }
.m-chunk { display:flex; align-items:center; gap:36px; padding-right:36px; font-size:.72rem; font-weight:500; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); white-space:nowrap; }
.m-chunk.blue { color:var(--accent-2); }
.m-dot { width:4px; height:4px; border-radius:50%; background:var(--accent); flex-shrink:0; }

/* ─── BLOCK PADDING ─── */
.block { padding: clamp(50px,7vw,100px) 0; }
.block-large { padding: clamp(80px,10vw,160px) 0; }
.block-xl { padding: clamp(80px,10vw,180px) 0; }

/* ─── CLIENTS ─── */
#clientes { border-bottom: 1px solid var(--border); }
.clients-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:36px; }
.section-eyebrow { font-size:.72rem; font-weight:500; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); display:flex; align-items:center; gap:10px; }
.section-eyebrow::before { content:''; display:block; width:18px; height:1px; background:var(--accent); }
.clients-count { font-size:.8rem; color:var(--text-dim); font-weight:300; }
.clients-scroll { overflow:hidden; position:relative; }
.clients-scroll::before, .clients-scroll::after { content:''; position:absolute; top:0; width:100px; height:100%; z-index:2; }
.clients-scroll::before { left:0; background:linear-gradient(to right, var(--white), transparent); }
.clients-scroll::after  { right:0; background:linear-gradient(to left, var(--white), transparent); }
.clients-track { display:flex; width:max-content; will-change:transform; }
.client-item {
    padding:0 36px; display:flex; align-items:center; height:68px;
    border-right:1px solid var(--border);
    font-size:clamp(.85rem,1.1vw,1rem); font-weight:600; letter-spacing:.03em;
    color:var(--text-dim); white-space:nowrap; transition:color .2s;
}
.client-item:hover { color:var(--text); }

/* ─── SECTION TITLE ─── */
.s-title { font-size:clamp(2rem,4vw,4.6rem); font-weight:700; letter-spacing:-.04em; line-height:1.05; }
.s-title-sm { font-size:clamp(1.5rem,3vw,2.8rem); font-weight:700; letter-spacing:-.03em; line-height:1.1; }

/* ─── CARD BORDA ─── */
.card-borda-section {
    background: var(--white);
    border-bottom: 1px solid var(--border);
}
.cbs-head { margin-bottom: clamp(40px,5vw,64px); }
.cbs-sub { color:var(--text-dim); font-size:clamp(1rem,1.2vw,1.1rem); font-weight:300; line-height:1.75; max-width:380px; margin-top:12px; }

.card-borda-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
}
.card-borda-container {
    position: relative; overflow: hidden;
    width: 380px; height: 240px; flex-shrink: 0;
}
.card-borda-container._2 { margin-left: -110px; }
.card-borda-container._3 { margin-left: -55px; }
.card-borda-container._4 { margin-left: -55px; margin-top: -40px; }
.card-borda-container._5 { margin-left: -110px; margin-top: -40px; }
.card-borda-container._6 { margin-left: -55px; margin-top: -40px; }

.card-borda {
    border: 1.5px solid var(--border);
    border-radius: 28px 14px;
    position: absolute; inset: 0;
    width: 320px; margin: 0 auto;
    transform: skew(-14deg);
    transition: border-color .3s;
}
.card-borda-container:hover .card-borda { border-color: var(--accent); }

.card-borda-text {
    position: absolute; inset: 0; z-index: 2;
    display: flex; flex-direction: column; justify-content: center;
    padding: 0 24px 0 100px;
}
.card-num { font-size: .65rem; font-weight: 600; letter-spacing: .14em; color: var(--accent); margin-bottom: 10px; }
.card-title { font-size: clamp(.9rem,1.2vw,1.1rem); font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.card-desc { font-size: .78rem; color: var(--text-dim); font-weight: 300; line-height: 1.6; margin-top: 8px; }

/* ─── SOLUTION CARDS ─── */
.solution-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
}
.sol-card {
    position: relative; overflow: hidden;
    width: 480px; height: 320px; flex-shrink: 0;
    display: block; cursor: none;
    color: var(--text);
    transition: color .3s;
}
.sol-card._2 { margin-left: -130px; }
.sol-card._3 { margin-left: -100px; margin-top: -50px; }
.sol-card._4 { margin-left: -130px; margin-top: -50px; }

.sol-card:hover { color: #fff; }

.sol-borda {
    border: 1.5px solid var(--accent);
    border-radius: 34px 17px;
    position: absolute; inset: 0;
    width: 420px; margin: 0 auto;
    transform: skew(-14deg);
    transition: background .35s var(--ease);
}
.sol-card._2 .sol-borda { border-color: var(--accent-4); }
.sol-card._3 .sol-borda { border-color: var(--accent-3); }
.sol-card._4 .sol-borda { border-color: #A855F7; }

.sol-card:hover .sol-borda { background: var(--accent); }
.sol-card._2:hover .sol-borda { background: var(--accent-4); }
.sol-card._3:hover .sol-borda { background: var(--accent-3); }
.sol-card._4:hover .sol-borda { background: #A855F7; }

.sol-borda-text {
    position: absolute; inset: 0; z-index: 2;
    display: flex; flex-direction: row; align-items: center; justify-content: center;
    padding: 0 40px 0 130px;
}
.sol-inner { width: 100%; }
.sol-num { font-size: .65rem; font-weight: 600; letter-spacing: .14em; color: var(--accent); margin-bottom: 10px; transition: color .3s; }
.sol-card._2 .sol-num { color: var(--accent-4); }
.sol-card._3 .sol-num { color: var(--accent-3); }
.sol-card._4 .sol-num { color: #A855F7; }
.sol-card:hover .sol-num { color: rgba(255,255,255,.7); }
.sol-title { font-size: clamp(1.1rem,1.6vw,1.6rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.15; }
.sol-link {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: .75rem; font-weight: 500; margin-top: 14px;
    color: var(--text-dim); transition: color .2s;
}
.sol-link-line { display: inline-block; width: 0; height: 1px; background: currentColor; margin-bottom: 1px; transition: width .3s var(--ease), margin-left .3s; }
.sol-card:hover .sol-link { color: rgba(255,255,255,.8); }
.sol-card:hover .sol-link-line { width: 24px; margin-left: 6px; }

/* ─── ABOUT / STATS ─── */
#sobre { background: var(--off-white); }
.sobre-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 72px; align-items: start; }
.sobre-txt { color: var(--text-dim); font-size: clamp(1rem,1.2vw,1.1rem); font-weight: 300; line-height: 1.8; margin-bottom: 18px; }
.sobre-txt strong { color: var(--text); font-weight: 600; }
.stats-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: var(--border); border: 1px solid var(--border); }
.stat-card { background: var(--white); padding: 32px 26px; position: relative; overflow: hidden; }
.stat-card::after { content:''; position:absolute; bottom:0; left:0; width:100%; height:2px; background:var(--accent); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.stat-card:hover::after { transform:scaleX(1); }
.stat-num { font-size: clamp(2rem,3.5vw,3.8rem); font-weight: 700; letter-spacing: -.04em; line-height: 1; margin-bottom: 6px; }
.stat-num em { color: var(--accent); font-style: normal; }
.stat-lbl { font-size: .75rem; color: var(--text-dim); letter-spacing: .04em; font-weight: 300; }

/* ─── BIG NUMBERS ─── */
#numeros { background: var(--dark); }
.nums-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; margin-bottom: clamp(40px,5vw,64px); }
.nums-desc { color: rgba(255,255,255,.45); font-size: clamp(1rem,1.2vw,1.1rem); font-weight: 300; line-height: 1.8; max-width: 380px; }
.nums-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 1px; background: rgba(255,255,255,.06); }
.num-item { padding: 50px 32px; text-align: center; }
.num-big { font-size: clamp(3rem,6vw,6.5rem); font-weight: 700; letter-spacing: -.05em; line-height: 1; color: #fff; margin-bottom: 10px; }
.num-big em { color: var(--accent-2); font-style: normal; }
.num-lbl { font-size: .72rem; color: rgba(255,255,255,.45); letter-spacing: .07em; text-transform: uppercase; font-weight: 300; }

/* ─── PROCESS ─── */
#processo { background: var(--white); }
.proc-grid { display: grid; grid-template-columns: repeat(5,1fr); gap: 1px; background: var(--border); border: 1px solid var(--border); margin-top: clamp(36px,4vw,52px); }
.proc-step { padding: 32px 22px; background: var(--white); transition: background .25s; }
.proc-step:hover { background: var(--off-white); }
.proc-n { font-size: .65rem; font-weight: 600; letter-spacing: .12em; color: var(--accent); margin-bottom: 16px; }
.proc-icon { width: 40px; height: 40px; border: 1.5px solid var(--border-a); border-radius: 8px; display: flex; align-items: center; justify-content: center; margin-bottom: 14px; transition: background .25s; }
.proc-icon i { font-size: .9rem; color: var(--accent); }
.proc-step:hover .proc-icon { background: rgba(0,85,238,.07); }
.proc-title { font-size: 1rem; font-weight: 700; letter-spacing: -.02em; margin-bottom: 8px; }
.proc-desc { font-size: .78rem; color: var(--text-dim); line-height: 1.65; font-weight: 300; }

/* ─── PROJECTS ─── */
#projetos { background: var(--off-white); }
.proj-head { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:clamp(32px,4vw,48px); }
.proj-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.proj-card {
    border:1px solid var(--border); border-radius:12px;
    overflow:hidden; background:var(--white); cursor:none;
    transition:transform .3s var(--ease), border-color .3s, box-shadow .3s;
    position:relative;
}
.proj-link-overlay { position:absolute; inset:0; z-index:2; }
.proj-card:hover { transform:translateY(-5px); border-color:var(--border-a); box-shadow:0 20px 44px rgba(0,85,238,.09); }
.proj-thumb { aspect-ratio:16/9; position:relative; overflow:hidden; }
.proj-thumb-bg { width:100%; height:100%; display:block; object-fit:cover; transition:transform .5s var(--ease); }
.proj-card:hover .proj-thumb-bg { transform:scale(1.04); }
.proj-badge { position:absolute; top:12px; left:12px; font-size:.6rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:4px 10px; border-radius:3px; background:rgba(255,255,255,.92); backdrop-filter:blur(8px); color:var(--accent); border:1px solid rgba(0,85,238,.15); }
.proj-info { padding:18px 20px 22px; }
.proj-name { font-size:clamp(.95rem,1.2vw,1.05rem); font-weight:700; letter-spacing:-.02em; margin-bottom:5px; }
.proj-tagline { font-size:.76rem; color:var(--text-dim); font-weight:300; }

/* ─── CTA ─── */
#cta { background: var(--dark); position: relative; overflow: hidden; }
.cta-glow { position:absolute; inset:0; background:radial-gradient(ellipse 60% 80% at 50% 50%,rgba(0,85,238,.16) 0%,transparent 70%); pointer-events:none; }
.cta-inner { position:relative; z-index:1; text-align:center; }
.cta-eyebrow { font-size:.72rem; letter-spacing:.12em; text-transform:uppercase; color:var(--accent-2); margin-bottom:22px; font-weight:500; }
.cta-title { font-size:clamp(2rem,5vw,5rem); font-weight:700; letter-spacing:-.04em; line-height:1.02; margin-bottom:16px; color:#fff; }
.cta-title em { font-style:italic; font-weight:300; color:var(--accent-2); }
.cta-sub { font-size:clamp(1rem,1.2vw,1.1rem); color:rgba(255,255,255,.4); font-weight:300; max-width:400px; margin:0 auto 32px; }
.cta-email { display:inline-block; font-size:clamp(.95rem,2vw,1.6rem); font-weight:700; letter-spacing:-.02em; color:var(--accent-2); margin-bottom:30px; transition:color .2s; }
.cta-email:hover { color:#fff; }

/* ─── FOOTER ─── */
footer { background: var(--dark); border-top: 1px solid rgba(255,255,255,.06); padding: clamp(44px,6vw,72px) 0 28px; }
.ft-top { display:grid; grid-template-columns:1.5fr 1fr 1fr; gap:52px; margin-bottom:44px; }
.ft-logo { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.ft-logo-icon { width:32px; height:32px; }
.ft-logo-name { font-size:1.05rem; font-weight:700; color:#fff; letter-spacing:-.03em; }
.ft-logo-name span { font-weight:300; color:var(--accent-2); }
.ft-desc { font-size:.9rem; color:rgba(255,255,255,.38); font-weight:300; line-height:1.75; max-width:240px; }
.ft-social { display:flex; gap:8px; margin-top:20px; }
.ft-soc { width:34px; height:34px; border:1px solid rgba(255,255,255,.1); border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:.76rem; color:rgba(255,255,255,.38); transition:border-color .2s,color .2s; }
.ft-soc:hover { border-color:var(--accent); color:var(--accent-2); }
.ft-col-title { font-size:.68rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.28); margin-bottom:16px; }
.ft-links { list-style:none; display:flex; flex-direction:column; gap:10px; }
.ft-links a { font-size:.9rem; color:rgba(255,255,255,.38); font-weight:300; transition:color .2s; }
.ft-links a:hover { color:#fff; }
.ft-bottom { display:flex; align-items:center; justify-content:space-between; padding-top:22px; border-top:1px solid rgba(255,255,255,.06); }
.ft-copy { font-size:.72rem; color:rgba(255,255,255,.24); font-weight:300; }
.ft-copy a { color:var(--accent-2); }

/* ─── REVEALS ─── */
.rv  { opacity:0; transform:translateY(28px); }
.rvl { opacity:0; transform:translateX(-28px); }
.rvr { opacity:0; transform:translateX(28px); }

/* ─── RESPONSIVE ─── */
@media(max-width:1100px) {
    .via-navbar { padding: 24px 40px; }
    .via-navbar.via-active { padding: 14px 40px; }
    .proc-grid { grid-template-columns:repeat(3,1fr); }
    .proj-grid { grid-template-columns:repeat(2,1fr); }
    .sol-card { width: 380px; }
    .sol-card._2 { margin-left: -100px; }
    .sol-card._3 { margin-left: -80px; margin-top: -40px; }
    .sol-card._4 { margin-left: -100px; margin-top: -40px; }
    .sol-borda { width: 330px; }
    .card-borda-container { width: 320px; height: 210px; }
    .card-borda { width: 280px; }
    .card-borda-container._2 { margin-left: -80px; }
    .card-borda-container._3 { margin-left: -40px; }
    .card-borda-container._4 { margin-left: -40px; }
    .card-borda-container._5 { margin-left: -80px; }
    .card-borda-container._6 { margin-left: -40px; }
    .nums-grid { grid-template-columns:repeat(2,1fr); }
}
@media(max-width:900px) {
    .via-navbar { padding: 20px 24px; }
    .via-navbar.via-active { padding: 12px 24px; }
    .via-navbar-nav, .nav-cta { display: none; }
    .burger { display: flex; }
    .sobre-grid { grid-template-columns:1fr; gap:40px; }
    .nums-intro { grid-template-columns:1fr; gap:20px; }
    .ft-top { grid-template-columns:1fr; gap:28px; }
    .hero-foot { flex-direction:column; align-items:flex-start; }
    .card-borda-grid, .solution-grid {
        flex-direction: column; align-items: center;
    }
    .card-borda-container,
    .card-borda-container._2,
    .card-borda-container._3,
    .card-borda-container._4,
    .card-borda-container._5,
    .card-borda-container._6 {
        width: 100%; height: 160px; margin: 0 0 1px 0;
    }
    .card-borda { width: calc(100% - 40px); transform: skew(-8deg); }
    .card-borda-text { padding: 0 20px 0 40px; }
    .sol-card, .sol-card._2, .sol-card._3, .sol-card._4 {
        width: 100%; height: 180px; margin: 0 0 1px 0;
    }
    .sol-borda { width: calc(100% - 40px); transform: skew(-8deg); }
    .sol-borda-text { padding: 0 20px 0 40px; }
}
@media(max-width:768px) {
    .stats-grid { grid-template-columns:1fr 1fr; }
    .proc-grid { grid-template-columns:1fr 1fr; }
    .proj-grid { grid-template-columns:1fr; }
    .ft-bottom { flex-direction:column; gap:8px; text-align:center; }
    .nums-grid { grid-template-columns:1fr 1fr; }
    .proj-head { flex-direction:column; align-items:flex-start; gap:16px; }
}
@media(max-width:520px) {
    .stats-grid { grid-template-columns:1fr; }
    .proc-grid { grid-template-columns:1fr; }
    .nums-grid { grid-template-columns:1fr; }
}
