/* FASTEC — folha de estilos.
   Tokens em :root vêm de .design/tokens.css (fonte única de verdade da marca).
   Não adicione cor, fonte ou medida fora dessas variáveis. */

:root{
  /* ---- COR: marca ---- */
  --fs-navy:#0A2540;
  --fs-navy-deep:#06192F;
  --fs-graphite:#475569;
  --fs-graphite-soft:#94A3B8;

  /* ---- COR: neutros ---- */
  --fs-ink:#0B1220;
  --fs-slate:#334155;
  --fs-paper:#F4F5F7;
  --fs-paper-2:#E9ECEF;
  --fs-line:#E2E8F0;
  --fs-white:#FFFFFF;

  /* ---- COR: estado ---- */
  --fs-success:#16794A;
  --fs-danger:#B4232A;

  /* ---- TIPOGRAFIA ---- */
  --fs-font-sans:"Space Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif;
  --fs-font-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;

  --fs-text-xs:0.6875rem;
  --fs-text-sm:0.875rem;
  --fs-text-base:1rem;
  --fs-text-lg:1.125rem;
  --fs-text-xl:1.375rem;
  --fs-text-2xl:1.75rem;
  --fs-text-3xl:2.25rem;
  --fs-text-4xl:3rem;
  --fs-text-5xl:3.75rem;

  --fs-track-tight:-0.035em;
  --fs-track-snug:-0.025em;
  --fs-track-wide:0.22em;

  /* ---- ESPAÇAMENTO (escala 4px) ---- */
  --fs-space-1:4px;   --fs-space-2:8px;   --fs-space-3:12px;
  --fs-space-4:16px;  --fs-space-5:24px;  --fs-space-6:32px;
  --fs-space-7:40px;  --fs-space-8:56px;  --fs-space-9:72px;
  --fs-space-10:96px; --fs-space-11:120px; --fs-space-12:144px;

  /* ---- RAIO ---- */
  --fs-radius-sm:4px;
  --fs-radius-md:6px;
  --fs-radius-lg:14px;
  --fs-radius-xl:18px;

  /* ---- SOMBRA ---- */
  --fs-shadow-sm:0 1px 2px rgba(11,18,32,.06);
  --fs-shadow-md:0 8px 18px -10px rgba(11,18,32,.18);
  --fs-shadow-lg:0 14px 28px -14px rgba(11,18,32,.28);

  /* ---- MOVIMENTO ---- */
  --fs-dur:160ms;
  --fs-ease:cubic-bezier(.2,.6,.3,1);

  /* ---- LAYOUT ---- */
  --fs-container:1200px;
}

/* ---------- FONTES (self-hosted) ---------- */
@font-face{
  font-family:"Space Grotesk";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/space-grotesk.woff2") format("woff2");
}
@font-face{
  font-family:"Space Grotesk";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("../fonts/space-grotesk.woff2") format("woff2");
}
@font-face{
  font-family:"Space Grotesk";
  font-style:normal;
  font-weight:600;
  font-display:swap;
  src:url("../fonts/space-grotesk.woff2") format("woff2");
}
@font-face{
  font-family:"Space Grotesk";
  font-style:normal;
  font-weight:700;
  font-display:swap;
  src:url("../fonts/space-grotesk.woff2") format("woff2");
}
@font-face{
  font-family:"JetBrains Mono";
  font-style:normal;
  font-weight:400;
  font-display:swap;
  src:url("../fonts/jetbrains-mono.woff2") format("woff2");
}
@font-face{
  font-family:"JetBrains Mono";
  font-style:normal;
  font-weight:500;
  font-display:swap;
  src:url("../fonts/jetbrains-mono.woff2") format("woff2");
}

/* ---------- RESET / BASE ---------- */
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:88px;color-scheme:dark}
body{background:var(--fs-navy-deep);color:rgba(255,255,255,.7);font-family:var(--fs-font-sans);-webkit-font-smoothing:antialiased;line-height:1.5}
img{max-width:100%;display:block}
.mono{font-family:var(--fs-font-mono)}
a{color:#fff;text-decoration:none}
a:hover{color:var(--fs-graphite-soft)}
.wrap{max-width:var(--fs-container);margin:0 auto;padding:0 var(--fs-space-6)}
.eyebrow{font-family:var(--fs-font-mono);font-size:var(--fs-text-xs);letter-spacing:var(--fs-track-wide);text-transform:uppercase;color:var(--fs-graphite-soft)}

:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:var(--fs-radius-sm)}

.skip-link{position:absolute;left:var(--fs-space-4);top:-48px;background:#fff;color:var(--fs-navy);padding:12px 18px;border-radius:var(--fs-radius-sm);font-size:var(--fs-text-sm);font-weight:600;z-index:100;transition:top var(--fs-dur) var(--fs-ease)}
.skip-link:focus{top:var(--fs-space-4)}

/* ---------- BOTÕES ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--fs-font-sans);font-weight:600;font-size:var(--fs-text-sm);border-radius:var(--fs-radius-md);padding:14px 22px;border:1px solid transparent;cursor:pointer;transition:background var(--fs-dur) var(--fs-ease),border-color var(--fs-dur) var(--fs-ease),color var(--fs-dur) var(--fs-ease)}
.btn-primary{background:#fff;color:var(--fs-navy)}
.btn-primary:hover{background:var(--fs-paper-2);color:var(--fs-navy)}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.24)}
.btn-ghost:hover{border-color:#fff;color:#fff}
.btn-invert{background:#fff;color:var(--fs-navy)}
.btn-invert:hover{background:var(--fs-paper-2);color:var(--fs-navy)}
.btn-sm{padding:9px 15px;font-size:var(--fs-text-xs)}

/* ---------- NAV ---------- */
.nav{position:sticky;top:0;z-index:50;background:var(--fs-navy);border-bottom:1px solid rgba(255,255,255,.1)}
.nav-inner{display:flex;align-items:center;gap:var(--fs-space-6);padding:16px var(--fs-space-6);max-width:var(--fs-container);margin:0 auto}
.nav-logo{height:26px;display:block}
.nav-links{margin-left:auto;display:flex;align-items:center;gap:var(--fs-space-5)}
.nav-links a:not(.btn){font-size:var(--fs-text-sm);font-weight:500;color:var(--fs-graphite-soft)}
.nav-links a:not(.btn):hover{color:#fff}
.nav-toggle{display:none;margin-left:auto;align-items:center;gap:8px;background:none;border:1px solid rgba(255,255,255,.24);border-radius:var(--fs-radius-sm);padding:8px 12px;cursor:pointer;font-size:var(--fs-text-xs);color:#fff}

/* ---------- MENU MOBILE (drawer) ---------- */
.mobile-menu{position:fixed;inset:0;z-index:60;background:var(--fs-navy);display:flex;flex-direction:column;padding:var(--fs-space-6);transform:translateX(100%);transition:transform calc(var(--fs-dur)*2) var(--fs-ease)}
.mobile-menu[data-open="true"]{transform:translateX(0)}
.mobile-menu[hidden]{display:flex}
.mobile-menu-head{display:flex;align-items:center;justify-content:space-between}
.mobile-menu-close{background:none;border:1px solid rgba(255,255,255,.24);color:#fff;border-radius:var(--fs-radius-sm);padding:8px 12px;cursor:pointer;font-family:var(--fs-font-mono);font-size:var(--fs-text-xs)}
.mobile-menu-links{margin-top:var(--fs-space-8);display:flex;flex-direction:column;gap:var(--fs-space-6)}
.mobile-menu-links a{font-size:var(--fs-text-2xl);font-weight:600;color:#fff;letter-spacing:-.015em}
.mobile-menu-links a:hover{color:var(--fs-graphite-soft)}
.mobile-menu .btn-primary{margin-top:var(--fs-space-6);align-self:flex-start}

/* ---------- HERO ---------- */
.hero{padding:var(--fs-space-12) 0 var(--fs-space-10);position:relative;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:var(--fs-space-9);align-items:center}
.hero h1{font-size:var(--fs-text-5xl);font-weight:700;letter-spacing:var(--fs-track-tight);line-height:1.02;color:#fff;text-wrap:balance;margin-top:var(--fs-space-3)}
.hero p.lead{margin-top:var(--fs-space-4);font-size:var(--fs-text-lg);line-height:1.6;color:rgba(255,255,255,.68);max-width:44ch;text-wrap:pretty}
.hero-cta{display:flex;flex-wrap:wrap;gap:var(--fs-space-3);margin-top:var(--fs-space-6)}

.hero-visual{aspect-ratio:4/3.4;border-radius:var(--fs-radius-xl);background:var(--fs-navy);position:relative;overflow:hidden;display:grid;place-items:center}
.hero-visual::after{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,.045) 1px,transparent 1px);background-size:40px 40px}
.chev-stack{display:flex;gap:0;position:relative;z-index:1}
.chev-stack svg{display:block}

/* ---------- SEÇÃO: CABEÇALHO PADRÃO ---------- */
section{padding:var(--fs-space-10) 0}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--fs-space-6);padding-bottom:var(--fs-space-5);border-bottom:1px solid rgba(255,255,255,.12);margin-bottom:var(--fs-space-8)}
.sec-head h2{font-size:var(--fs-text-3xl);font-weight:700;letter-spacing:var(--fs-track-snug);color:#fff;margin-top:6px;max-width:22ch;text-wrap:balance}
.sec-head .aside{font-size:var(--fs-text-sm);line-height:1.6;color:rgba(255,255,255,.6);max-width:34ch;text-align:right}

/* ---------- SERVIÇOS ---------- */
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--fs-space-4)}
.card{background:var(--fs-navy);border:1px solid rgba(255,255,255,.12);border-radius:var(--fs-radius-lg);padding:var(--fs-space-6);display:flex;flex-direction:column;gap:var(--fs-space-3);transition:border-color var(--fs-dur) var(--fs-ease),transform var(--fs-dur) var(--fs-ease)}
.card:hover{border-color:rgba(255,255,255,.32);transform:translateY(-2px)}
.card .idx{font-family:var(--fs-font-mono);font-size:var(--fs-text-xs);letter-spacing:.2em;color:var(--fs-graphite-soft)}
.card h3{font-size:var(--fs-text-xl);font-weight:600;letter-spacing:-.015em;color:#fff}
.card p{font-size:var(--fs-text-sm);line-height:1.65;color:rgba(255,255,255,.65);text-wrap:pretty}
.card ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:7px;margin-top:auto;padding-top:var(--fs-space-4);border-top:1px solid rgba(255,255,255,.12)}
.card li{font-family:var(--fs-font-mono);font-size:var(--fs-text-xs);color:var(--fs-graphite-soft);display:flex;gap:9px;align-items:center}
.card li::before{content:"";width:9px;height:9px;flex:0 0 9px;background:#fff;clip-path:polygon(0 0,50% 0,100% 50%,50% 100%,0 100%,50% 50%)}

/* ---------- PROCESSO ---------- */
.process{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid rgba(255,255,255,.12);border-radius:var(--fs-radius-lg);overflow:hidden;background:var(--fs-navy)}
.step{padding:var(--fs-space-6);border-right:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:var(--fs-space-3)}
.step:last-child{border-right:0}
.step .n{font-family:var(--fs-font-mono);font-size:var(--fs-text-xs);letter-spacing:.2em;color:var(--fs-graphite-soft)}
.step h3{font-size:var(--fs-text-base);font-weight:600;color:#fff;letter-spacing:-.01em}
.step p{font-size:var(--fs-text-sm);line-height:1.6;color:rgba(255,255,255,.65)}

/* ---------- SOBRE A EMPRESA ---------- */
.about-text p{font-size:var(--fs-text-base);line-height:1.7;color:rgba(255,255,255,.68);max-width:60ch}
.about-text p + p{margin-top:var(--fs-space-4)}

/* ---------- CONTATO ---------- */
.form-msg{padding:14px 18px;border-radius:var(--fs-radius-md);font-size:var(--fs-text-sm);font-weight:500;border:1px solid transparent}
.form-msg.success{background:color-mix(in oklab,var(--fs-success) 20%,var(--fs-navy));border-color:color-mix(in oklab,var(--fs-success) 45%,var(--fs-navy));color:color-mix(in oklab,var(--fs-success) 55%,#fff)}
.form-msg.error{background:color-mix(in oklab,var(--fs-danger) 18%,var(--fs-navy));border-color:color-mix(in oklab,var(--fs-danger) 45%,var(--fs-navy));color:color-mix(in oklab,var(--fs-danger) 55%,#fff)}

.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--fs-space-6);align-items:stretch}
.cta-panel,.form-panel{background:var(--fs-navy);border:1px solid rgba(255,255,255,.12);border-radius:var(--fs-radius-xl);padding:var(--fs-space-8);display:flex;flex-direction:column;justify-content:center}
.cta-panel p{font-size:var(--fs-text-base);line-height:1.6;color:rgba(255,255,255,.68);max-width:42ch}

.contact-form{display:flex;flex-direction:column;gap:var(--fs-space-5)}
.form-row{display:flex;flex-direction:column;gap:8px}
.form-row label{font-family:var(--fs-font-mono);font-size:var(--fs-text-xs);letter-spacing:.14em;text-transform:uppercase;color:var(--fs-graphite-soft)}
.form-row label .opt{text-transform:none;letter-spacing:0;font-family:var(--fs-font-sans);font-size:var(--fs-text-sm);color:var(--fs-graphite-soft)}
.form-row input,.form-row textarea{font-family:var(--fs-font-sans);font-size:var(--fs-text-base);color:#fff;background:var(--fs-navy-deep);border:1px solid rgba(255,255,255,.16);border-radius:var(--fs-radius-md);padding:12px 14px;transition:border-color var(--fs-dur) var(--fs-ease)}
.form-row input::placeholder,.form-row textarea::placeholder{color:rgba(255,255,255,.35)}
.form-row textarea{resize:vertical;min-height:120px;line-height:1.5}
.form-row input:focus,.form-row textarea:focus{border-color:#fff;outline:2px solid #fff;outline-offset:2px}
.contact-form .btn{align-self:flex-start}
.btn-spinner{display:none;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:fs-spin .6s linear infinite}
.btn.is-loading{cursor:not-allowed;opacity:.75}
.btn.is-loading .btn-spinner{display:inline-block}
@keyframes fs-spin{to{transform:rotate(360deg)}}
.form-hp{position:absolute;width:1px;height:1px;overflow:hidden;left:-9999px}
.info-panel{background:var(--fs-navy);color:#fff;border-radius:var(--fs-radius-xl);padding:var(--fs-space-8)}
.info-panel dl{display:flex;flex-direction:column;gap:var(--fs-space-5)}
.info-panel div{display:flex;flex-direction:column;gap:4px;padding-top:var(--fs-space-5);border-top:1px solid rgba(255,255,255,.14)}
.info-panel div:first-child{padding-top:0;border-top:0}
.info-panel dt{font-family:var(--fs-font-mono);font-size:var(--fs-text-xs);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.5)}
.info-panel dd{font-size:var(--fs-text-sm);line-height:1.5;font-weight:500;color:#fff;margin-left:0}
.info-panel dd a{display:inline-flex;align-items:center;gap:var(--fs-space-3);color:#fff}
.icon-whatsapp{flex:0 0 auto;position:relative;top:1px}
.info-panel dd a:hover{color:var(--fs-graphite-soft)}

/* ---------- FOOTER ---------- */
footer{background:var(--fs-navy);color:#fff;margin-top:var(--fs-space-11);padding:var(--fs-space-9) 0 var(--fs-space-6)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:var(--fs-space-8)}
.foot-logo{height:30px;display:block}
.foot-grid > div > p{margin-top:var(--fs-space-4);font-size:var(--fs-text-sm);line-height:1.65;color:rgba(255,255,255,.6);max-width:34ch}
.foot-col h4{font-family:var(--fs-font-mono);font-size:var(--fs-text-xs);letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.45);font-weight:500}
.foot-col ul{list-style:none;padding:0;margin-top:var(--fs-space-4);display:flex;flex-direction:column;gap:11px}
.foot-col a{font-size:var(--fs-text-sm);color:rgba(255,255,255,.82)}
.foot-col a:hover{color:#fff}
.foot-legal{margin-top:var(--fs-space-8);padding-top:var(--fs-space-6);border-top:1px solid rgba(255,255,255,.1);font-size:var(--fs-text-xs);line-height:1.8;color:rgba(255,255,255,.55)}
.foot-base{margin-top:var(--fs-space-6);padding-top:var(--fs-space-5);border-top:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;gap:var(--fs-space-5);flex-wrap:wrap}
.foot-base span{font-family:var(--fs-font-mono);font-size:var(--fs-text-xs);letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.45)}
.foot-base a{color:rgba(255,255,255,.7)}
.foot-base a:hover{color:#fff}

/* ---------- PÁGINAS LEGAIS ---------- */
.legal{padding:var(--fs-space-10) 0 var(--fs-space-11)}
.legal .wrap{max-width:840px}
.legal .eyebrow{margin-bottom:var(--fs-space-3)}
.legal h1{font-size:var(--fs-text-4xl);font-weight:700;letter-spacing:var(--fs-track-tight);color:#fff;text-wrap:balance}
.legal .updated{margin-top:var(--fs-space-3);font-size:var(--fs-text-sm);color:rgba(255,255,255,.55)}
.legal-content{margin-top:var(--fs-space-8);display:flex;flex-direction:column;gap:var(--fs-space-5)}
.legal-content section{padding:0}
.legal-content h2{font-size:var(--fs-text-xl);font-weight:600;letter-spacing:-.01em;color:#fff;margin-bottom:var(--fs-space-3)}
.legal-content p{font-size:var(--fs-text-base);line-height:1.75;color:rgba(255,255,255,.68)}
.legal-content p + p{margin-top:var(--fs-space-3)}
.legal-content ul{margin-top:var(--fs-space-3);padding-left:var(--fs-space-5);display:flex;flex-direction:column;gap:8px}
.legal-content li{font-size:var(--fs-text-base);line-height:1.7;color:rgba(255,255,255,.68)}
.legal-content a{text-decoration:underline}
.legal-back{margin-top:var(--fs-space-9);display:inline-block;font-size:var(--fs-text-sm);font-weight:500}
mark.revisar{background:#FDE68A;color:var(--fs-ink);padding:1px 6px;border-radius:3px;font-size:.85em;font-weight:600}

/* ---------- RESPONSIVO ---------- */
@media(max-width:1000px){
  .hero-grid{grid-template-columns:1fr;gap:var(--fs-space-7)}
  .cards{grid-template-columns:1fr 1fr}
  .process{grid-template-columns:1fr 1fr}
  .step:nth-child(2){border-right:0}
  .step:nth-child(1),.step:nth-child(2){border-bottom:1px solid rgba(255,255,255,.12)}
  .contact-grid{grid-template-columns:1fr}
  .contact-grid > *{min-width:0}
  .foot-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:720px){
  .nav-links{display:none}
  .nav-toggle{display:inline-flex}
  .hero{padding:var(--fs-space-9) 0 var(--fs-space-8)}
  .hero h1{font-size:var(--fs-text-4xl)}
  .cards{grid-template-columns:1fr}
  .process{grid-template-columns:1fr}
  .step{border-right:0;border-bottom:1px solid rgba(255,255,255,.12)}
  .step:last-child{border-bottom:0}
  .sec-head{flex-direction:column;align-items:flex-start}
  .sec-head > *{min-width:0;max-width:100%}
  .sec-head .aside{text-align:left}
  .foot-grid{grid-template-columns:1fr}
  .foot-base{flex-direction:column;gap:var(--fs-space-2)}
  section{padding:var(--fs-space-8) 0}
  .cta-panel,.form-panel,.info-panel{padding:var(--fs-space-6)}
}

/* ---------- MOVIMENTO REDUZIDO ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:0.01ms!important;animation-iteration-count:1!important;transition-duration:0.01ms!important}
  .mobile-menu{transition:none}
}
