/* ════════ TOKENS ════════ */
:root{
  --paper:#F2F1EC;
  --ink:#111111;
  --ink-soft:#1C1C1C;
  --yellow:#EDFF00;
  --yellow-deep:#D8E800;
  --grey:#9B9B9B;
  --grey-line:#C9C8C2;
  --mono:'Space Mono',monospace;
  --sans:'Archivo',sans-serif;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  line-height:1.5;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}

/* ════════ HELPERS ════════ */
.mono{font-family:var(--mono);text-transform:uppercase;letter-spacing:1.5px}
.tech-label{font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--grey)}
.mark{background:var(--yellow);padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.wrap{padding-left:5vw;padding-right:5vw}

/* registration mark ⊕ */
.reg{width:20px;height:20px;display:inline-block;flex:none}

/* circle states */
.circle{position:relative;border-radius:50%;aspect-ratio:1}
.c-fill{background:var(--ink)}
.c-dot{border:1.5px dashed var(--ink)}
.c-active{background:var(--yellow)}
.c-ghost{border:1.5px solid var(--grey-line)}
.c-center{position:absolute;top:50%;left:50%;width:7px;height:7px;background:var(--ink);transform:translate(-50%,-50%)}
.c-active .c-center{background:var(--ink)}
.c-dot .c-center{background:var(--yellow);width:8px;height:8px}

/* ════════ TOP TECH BAR ════════ */
.techbar{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  display:flex;justify-content:space-between;align-items:center;
  padding:14px 5vw;
  font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;
  color:var(--ink);
  pointer-events:none;
}
.techbar .cmyk{display:inline-flex;gap:3px;margin-left:8px;vertical-align:middle}
.techbar .cmyk span{width:6px;height:6px;display:block}

/* ════════ NAV ════════ */
.nav{
  position:fixed;top:34px;left:0;right:0;z-index:1001;
  display:flex;justify-content:space-between;align-items:center;
  padding:0 5vw;
}
.logo{font-family:var(--sans);font-weight:900;font-size:22px;letter-spacing:-1px}
.logo span{color:var(--ink)}
.logo .dot{color:var(--ink)}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{
  font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;
  position:relative;padding:4px 0;
}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:6px;background:var(--yellow);z-index:-1;transition:width .25s}
.nav-links a:hover::after{width:100%}
.nav-cta{
  font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;
  background:var(--ink);color:var(--paper);padding:9px 16px;transition:background .25s,color .25s;
}
.nav-cta:hover{background:var(--yellow);color:var(--ink)}

/* ════════ HERO ════════ */
.hero{position:relative;min-height:100vh;padding:140px 5vw 0;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-start}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(240px,.9fr);gap:40px;align-items:center;flex:1}
.hero-grid>div:first-child{min-width:0}

.hero-stamp{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--grey);margin-bottom:28px;display:flex;align-items:center;gap:14px}
.hero-stamp .reg{opacity:.6}

.hero h1{
  font-weight:900;
  font-size:clamp(38px,5.6vw,82px);
  line-height:.94;
  letter-spacing:-2px;
  text-transform:uppercase;
  margin-bottom:34px;
  position:relative;
  z-index:2;
}
.hero h1 .yellow-word{position:relative;display:inline-block}
.hero-sub{font-size:clamp(15px,1.5vw,19px);font-weight:400;max-width:440px;color:var(--ink-soft);line-height:1.6;margin-bottom:40px}
.hero-sub b{font-weight:700}
.hero-actions{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.btn{
  font-family:var(--mono);font-size:12px;letter-spacing:1.5px;text-transform:uppercase;
  padding:16px 28px;display:inline-flex;align-items:center;gap:12px;cursor:pointer;border:none;transition:all .25s;
}
.btn-primary{background:var(--ink);color:var(--paper)}
.btn-primary:hover{background:var(--yellow);color:var(--ink)}
.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}
.btn-ghost:hover{background:var(--ink);color:var(--paper)}

/* hero circle plate */
.plate{position:relative;width:100%;max-width:520px;justify-self:end;}
.plate-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;width:100%}
.plate-grid .circle{width:100%}
.plate .reg-tl{position:absolute;top:-24px;left:-10px}
.plate .reg-br{position:absolute;bottom:-20px;right:-6px}
.plate .vline{position:absolute;right:-34px;top:0;bottom:0;width:1px;background:var(--ink)}
.plate .vlabel{position:absolute;right:-58px;top:50%;transform:rotate(90deg);transform-origin:center;font-family:var(--mono);font-size:9px;letter-spacing:2px;color:var(--grey);white-space:nowrap}
.plate-active-label{position:absolute;font-family:var(--mono);font-size:9px;line-height:1.4;color:var(--ink);letter-spacing:1px}

/* big watermark numeral */
.hero-watermark{
  position:absolute;right:-2vw;bottom:-6vw;
  font-weight:900;font-size:34vw;line-height:.7;color:var(--ink);opacity:.04;
  pointer-events:none;user-select:none;z-index:0;
}
.hero-grid,.hero-stamp{position:relative;z-index:1}

/* hero bottom tech strip */
.hero-strip{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:18px 0 26px;border-top:1px solid var(--ink);margin-top:40px;
  font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);
  position:relative;z-index:1;flex-wrap:wrap;
}
.hero-strip .checker{width:60px;height:12px;background-image:linear-gradient(45deg,var(--ink) 25%,transparent 25%,transparent 75%,var(--ink) 75%),linear-gradient(45deg,var(--ink) 25%,transparent 25%,transparent 75%,var(--ink) 75%);background-size:8px 8px;background-position:0 0,4px 4px}

/* ════════ SECTION SHELL ════════ */
.section{position:relative;padding:120px 5vw;border-top:1px solid var(--ink)}
.section-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:64px}
.section-num{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:1px;padding-top:8px}
.section-title{font-weight:800;font-size:clamp(30px,4.5vw,56px);line-height:1;letter-spacing:-1.5px;text-transform:uppercase}
.section-kicker{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--grey);margin-bottom:14px}

/* ════════ SOBRE / SPEC SHEET ════════ */
.about{display:grid;grid-template-columns:1fr 1fr;gap:72px}
.about-lead{font-size:clamp(20px,2.4vw,30px);font-weight:500;line-height:1.35;letter-spacing:-.5px}
.about-body{font-size:16px;line-height:1.7;color:var(--ink-soft);margin-top:24px;max-width:460px}

/* retrato — foto B&W dentro de círculo = ponto de scan */
.about-col-left{min-width:0}
.about-col-right{min-width:0}
.portrait{position:relative;width:min(360px,100%);aspect-ratio:1;margin:0 auto 52px}
.portrait-quadrant{position:absolute;right:-16px;bottom:-16px;width:128px;height:128px;background:var(--yellow);border-radius:128px 0 0 0;z-index:1}
.portrait-circle{position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:var(--grey-line);z-index:2}
.portrait-circle img{width:100%;height:100%;object-fit:cover}
.portrait-ph{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;height:100%;gap:12px;color:var(--grey);font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;text-align:center;padding:20px}
.portrait-ring{position:absolute;inset:-16px;border:1.5px dashed var(--ink);border-radius:50%;z-index:3;pointer-events:none}
.portrait-dot{position:absolute;top:5%;right:4%;width:20px;height:20px;background:var(--yellow);border-radius:50%;z-index:4;box-shadow:0 0 0 5px var(--paper)}
.portrait-dot::after{content:"";position:absolute;top:50%;left:50%;width:6px;height:6px;background:var(--ink);transform:translate(-50%,-50%)}
.portrait-label{position:absolute;left:0;bottom:-28px;z-index:4}
.about-col-left .stats{margin-top:44px}
.about-col-right .specsheet{margin-top:40px}
.specsheet{border-top:1px solid var(--ink)}
.spec-row{display:grid;grid-template-columns:90px 1fr;gap:20px;padding:20px 0;border-bottom:1px solid var(--grey-line);align-items:baseline}
.spec-row .k{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey)}
.spec-row .v{font-size:17px;font-weight:600}
.spec-row .v small{display:block;font-weight:400;font-size:13px;color:var(--grey);font-family:var(--mono);letter-spacing:.5px;margin-top:3px}

.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:80px}
.stat{border-top:3px solid var(--ink);padding-top:14px}
.stat .num{font-weight:900;font-size:clamp(36px,5vw,60px);line-height:.9;letter-spacing:-2px}
.stat .num em{font-style:normal;color:var(--ink);position:relative}
.stat .num em::after{content:"";position:absolute;left:-2px;right:-2px;bottom:4px;height:14px;background:var(--yellow);z-index:-1}
.stat .lbl{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);margin-top:10px}

/* ════════ CASOS / SCAN CARDS ════════ */
.cases-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:20px}
.scan-card{position:relative;border:1px solid var(--ink);background:var(--paper);overflow:hidden;cursor:pointer;transition:transform .35s cubic-bezier(.16,1,.3,1)}
.scan-card:hover{transform:translateY(-6px)}
.scan-card:hover .sc-arrow{opacity:1;transform:translate(0,0)}
.sc-head{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border-bottom:1px solid var(--ink);font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase}
.sc-visual{position:relative;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--ink)}
.sc-visual.light{background:var(--paper);border-bottom:1px solid var(--ink)}
.sc-visual.yellow{background:var(--yellow)}
.sc-circles{display:grid;gap:10px}
/* círculos visíveis em cards de fundo escuro */
.sc-visual:not(.light):not(.yellow) .c-fill{background:var(--paper)}
.sc-visual:not(.light):not(.yellow) .c-dot{border-color:var(--paper)}
.sc-visual:not(.light):not(.yellow) .c-dot .c-center{background:var(--paper)}
.sc-visual:not(.light):not(.yellow) .c-center{background:var(--ink)}
.sc-visual:not(.light):not(.yellow) .c-ghost{border-color:#444}
.sc-body{padding:20px 16px 22px}
.sc-tag{font-family:var(--mono);font-size:9px;letter-spacing:1.5px;text-transform:uppercase;color:var(--ink);display:inline-block;margin-bottom:10px;border-bottom:2px solid var(--yellow);padding-bottom:2px}
.sc-title{font-weight:800;font-size:19px;line-height:1.1;letter-spacing:-.5px;margin-bottom:8px}
.sc-desc{font-size:13px;line-height:1.55;color:var(--ink-soft)}
.sc-arrow{position:absolute;top:14px;right:14px;width:30px;height:30px;background:var(--yellow);display:flex;align-items:center;justify-content:center;opacity:0;transform:translate(6px,-6px);transition:all .25s;z-index:3}
.sc-foot{display:flex;justify-content:space-between;padding:10px 16px;border-top:1px solid var(--grey-line);font-family:var(--mono);font-size:9px;letter-spacing:1px;text-transform:uppercase;color:var(--grey)}
.col-6{grid-column:span 6}
.col-4{grid-column:span 4}
.col-8{grid-column:span 8}

/* ════════ SERVIÇOS ════════ */
.services{background:var(--ink);color:var(--paper);margin:0 -5vw;padding:120px 5vw;border-top:1px solid var(--ink)}
.services .section-title,.services .section-num{color:var(--paper)}
.services .section-kicker{color:var(--yellow)}
.svc-row{
  display:grid;grid-template-columns:60px 1fr auto;gap:24px;align-items:center;
  padding:30px 0;border-bottom:1px solid #333;transition:padding-left .25s;cursor:default;
}
.svc-row:first-of-type{border-top:1px solid #333}
.svc-row:hover{padding-left:16px}
.svc-row:hover .svc-name{color:var(--yellow)}
.svc-num{font-family:var(--mono);font-size:12px;color:var(--yellow);letter-spacing:1px}
.svc-name{font-weight:800;font-size:clamp(22px,3vw,34px);letter-spacing:-1px;transition:color .25s;text-transform:uppercase}
.svc-desc{font-size:14px;color:#aaa;max-width:340px;line-height:1.5;margin-top:6px}
.svc-circles{display:flex;gap:6px}
.svc-circles .circle{width:12px;height:12px}
.svc-circles .c-active{background:var(--yellow)}
.svc-circles .c-ghost{border-color:#444}

/* ════════ CTA ════════ */
.cta{position:relative;padding:140px 5vw;text-align:center;overflow:hidden}
.cta .section-kicker{margin-bottom:24px}
.cta h2{font-weight:900;font-size:clamp(64px,15vw,200px);line-height:.85;letter-spacing:-5px;text-transform:lowercase;position:relative;display:inline-block}
.cta h2 .mark{padding:0 .05em}
.cta-mail{font-family:var(--mono);font-size:clamp(13px,1.6vw,16px);letter-spacing:1px;margin-top:32px;display:inline-block;position:relative}
.cta-mail::after{content:"";position:absolute;left:0;bottom:-3px;width:0;height:2px;background:var(--ink);transition:width .3s}
.cta-mail:hover::after{width:100%}
.cta-btn{margin-top:48px}
.cta-links{display:flex;gap:24px;justify-content:center;margin-top:64px;flex-wrap:wrap}
.cta-links a{font-family:var(--mono);font-size:11px;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey);position:relative;padding:4px 0}
.cta-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:6px;background:var(--yellow);z-index:-1;transition:width .25s}
.cta-links a:hover{color:var(--ink)}
.cta-links a:hover::after{width:100%}

/* ════════ FOOTER ════════ */
.footer{background:var(--ink);color:var(--paper);padding:40px 5vw;display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase}
.footer .reg{color:var(--yellow)}
.footer-handle{color:var(--paper);font-weight:700}
.footer-handle:hover{color:var(--yellow)}

/* ════════ RESPONSIVE ════════ */
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:48px}
  .plate{margin:0 auto;max-width:380px}
  .about{grid-template-columns:1fr;gap:48px}
  .stats{grid-template-columns:1fr 1fr;gap:32px}
  .col-6,.col-4,.col-8{grid-column:span 12}
  .nav-links{display:none}
  .svc-row{grid-template-columns:40px 1fr;gap:14px}
  .svc-circles{display:none}
}
@media(max-width:560px){
  .about-top{flex-direction:column;gap:28px}
  .portrait{width:200px}
  .stats{grid-template-columns:1fr 1fr}
  .footer{flex-direction:column;align-items:flex-start;gap:14px}
  .hero h1{letter-spacing:-1.5px}
}

/* ════════ MULTI-PAGE ADD-ONS ════════ */
.nav-links a.active{color:var(--ink)}
.nav-links a.active::after{width:100%}

/* cabecalho de pagina interna */
.page-header{position:relative;padding:150px 5vw 70px;border-bottom:1px solid var(--ink);overflow:hidden}
.page-header .ph-kicker{font-family:var(--mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--grey);margin-bottom:18px;display:flex;align-items:center;gap:14px}
.page-header .ph-kicker .reg{opacity:.6}
.ph-title{font-weight:900;font-size:clamp(46px,9vw,118px);line-height:.9;letter-spacing:-3px;text-transform:uppercase;position:relative;z-index:2}
.ph-sub{font-size:clamp(15px,1.5vw,19px);font-weight:400;max-width:520px;margin-top:26px;color:var(--ink-soft);line-height:1.6;position:relative;z-index:2}
.ph-num{position:absolute;right:5vw;top:130px;font-family:var(--mono);font-size:12px;letter-spacing:2px;color:var(--grey);z-index:2}
.page-watermark{position:absolute;right:-1vw;bottom:-7vw;font-weight:900;font-size:26vw;line-height:.7;color:var(--ink);opacity:.04;pointer-events:none;user-select:none;z-index:0}

/* navegacao entre paginas (rodape) */
.pagenav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--ink)}
.pagenav a{padding:48px 5vw;display:flex;flex-direction:column;gap:8px;transition:background .25s}
.pagenav a:hover{background:var(--ink);color:var(--paper)}
.pagenav a:hover .pn-lbl{color:var(--yellow)}
.pagenav a:last-child{text-align:right;align-items:flex-end;border-left:1px solid var(--ink)}
.pn-lbl{font-family:var(--mono);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--grey)}
.pn-title{font-weight:800;font-size:clamp(22px,3vw,34px);letter-spacing:-1px;text-transform:uppercase}

/* home: teaser de secoes */
.teaser{border-top:1px solid var(--ink)}
.teaser-row{display:grid;grid-template-columns:90px 1fr auto;gap:30px;align-items:center;padding:40px 5vw;transition:padding-left .25s,background .25s;position:relative}
.teaser-row:hover{padding-left:calc(5vw + 16px);background:var(--ink);color:var(--paper)}
.teaser-row:hover .t-title{color:var(--yellow)}
.teaser-row:hover .t-desc,.teaser-row:hover .t-num{color:var(--paper)}
.teaser-row:not(:last-child){border-bottom:1px solid var(--grey-line)}
.t-num{font-family:var(--mono);font-size:13px;font-weight:700;letter-spacing:1px}
.t-title{font-weight:800;font-size:clamp(26px,4vw,46px);letter-spacing:-1.5px;text-transform:uppercase;line-height:1}
.t-desc{font-size:14px;color:var(--ink-soft);max-width:420px;margin-top:8px;line-height:1.5}
.t-arrow{font-size:28px;flex:none}

@media(max-width:760px){
  .pagenav{grid-template-columns:1fr}
  .pagenav a:last-child{text-align:left;align-items:flex-start;border-left:none;border-top:1px solid var(--ink)}
  .teaser-row{grid-template-columns:40px 1fr;gap:14px}
  .teaser-row .t-arrow{display:none}
  .ph-num{display:none}
}


/* ════════ FORMULARIO CONTATO ════════ */
.contact-form{display:flex;flex-direction:column;gap:22px;max-width:480px}
.ff{display:flex;flex-direction:column;gap:8px}
.ff-label{font-family:var(--mono);font-size:10px;letter-spacing:1.5px;text-transform:uppercase;color:var(--grey)}
.ff-input{background:transparent;border:none;border-bottom:1.5px solid var(--ink);padding:10px 0;font-family:var(--sans);font-size:16px;color:var(--ink);width:100%}
.ff-input::placeholder{color:var(--grey)}
.ff-input:focus{outline:none;border-bottom-color:var(--yellow);box-shadow:0 2px 0 0 var(--yellow)}
textarea.ff-input{resize:vertical;min-height:90px}
