/* ==========================================================
   GZ TECH — Design tokens
   Grafite profundo + duo âmbar elétrico / ciano
   ========================================================== */

:root{
  --bg:            #0b0c0f;
  --bg-panel:      #15161b;
  --bg-panel-2:    #1b1c22;
  --ink:           #f6f5f2;
  --ink-muted:     #a9a7a3;
  --ink-faint:     #6f6e6c;
  --accent:        #ffb020;
  --accent-2:      #29d9ff;
  --accent-soft:   rgba(255,176,32,.14);
  --accent-line:   rgba(255,176,32,.40);
  --accent-glow:   rgba(255,176,32,.35);
  --accent2-glow:  rgba(41,217,255,.30);
  --line:          rgba(242,240,235,.10);
  --line-strong:   rgba(242,240,235,.18);

  --display: "Fraunces", "Iowan Old Style", serif;
  --body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
  --mono: "Space Mono", ui-monospace, monospace;

  --wrap: 1160px;
  --radius: 2px;
}


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

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--body);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

img{
  max-width:100%;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

ul{
  list-style:none;
  margin:0;
  padding:0;
}

h1,
h2,
h3{
  font-family:var(--display);
  font-weight:600;
  line-height:1.12;
  margin:0;
  letter-spacing:-0.01em;
}

p{
  margin:0;
}

.wrap{
  max-width:var(--wrap);
  margin:0 auto;
  padding:0 28px;
}


/* ==========================================================
   TEXT
   ========================================================== */

.eyebrow{
  font-family:var(--mono);
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--accent);
  margin:0 0 14px;
}

.tag-edit{
  font-family:var(--mono);
  font-size:11px;
  color:var(--accent);
  border:1px solid var(--accent-line);
  padding:1px 6px;
  border-radius:2px;
  margin-left:4px;
  white-space:nowrap;
}

::selection{
  background:var(--accent);
  color:#141312;
}


/* ==========================================================
BUTTONS — SPECULAR
========================================================== */

.btn{
  position:relative;
  isolation:isolate;
  overflow:hidden;

  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;

  padding:14px 26px;
  border-radius:var(--radius);

  font-family:var(--body);
  font-weight:600;
  font-size:14.5px;
  letter-spacing:.01em;

  border:1px solid transparent;
  cursor:pointer;

  transform:translateZ(0);

  transition:
    transform .22s ease,
    background .22s ease,
    border-color .22s ease,
    color .22s ease,
    box-shadow .22s ease;
}

/* Luz especular */
.btn::before{
  content:"";
  position:absolute;
  z-index:-1;

  width:180px;
  height:180px;

  left:var(--mx,50%);
  top:var(--my,50%);

  transform:translate(-50%,-50%);

  background:radial-gradient(
    circle,
    rgba(255,255,255,.42) 0%,
    rgba(255,255,255,.16) 18%,
    rgba(255,255,255,.05) 38%,
    transparent 70%
  );

  opacity:0;

  transition:
    opacity .25s ease,
    left .08s linear,
    top .08s linear;

  pointer-events:none;
}

.btn:hover::before{
  opacity:1;
}

.btn:hover{
  transform:translateY(-2px);
}

/* ----------------------------------------------------------
   BOTÃO PRINCIPAL
---------------------------------------------------------- */

.btn-accent{
  background:var(--accent);
  color:#141312;

  box-shadow:
    0 0 0 0 rgba(255,176,32,0);
}

.btn-accent:hover{
  background:#ffc453;

  box-shadow:
    0 10px 30px var(--accent-glow);
}

/* ----------------------------------------------------------
   BOTÃO GHOST
---------------------------------------------------------- */

.btn-ghost{
  background:transparent;
  border-color:var(--line-strong);
  color:var(--ink);
}

.btn-ghost::before{
  background:radial-gradient(
    circle,
    rgba(255,176,32,.32) 0%,
    rgba(255,176,32,.12) 25%,
    transparent 70%
  );
}

.btn-ghost:hover{
  border-color:var(--accent);
  color:var(--accent);

  box-shadow:
    0 0 20px rgba(255,176,32,.12);
}

/* ----------------------------------------------------------
   INSTAGRAM
---------------------------------------------------------- */

.btn-instagram{
  position:relative;

  display:inline-flex;
  align-items:center;
  justify-content:center;

  margin-left:10px;

  color:var(--ink);
  border:1px solid var(--line-strong);
  background:transparent;

  transition:
    transform .22s ease,
    border-color .22s ease,
    color .22s ease,
    box-shadow .22s ease;
}

.btn-instagram::before{
  background:radial-gradient(
    circle,
    rgba(255,176,32,.30) 0%,
    rgba(255,176,32,.10) 30%,
    transparent 70%
  );
}

.btn-instagram:hover{
  border-color:var(--accent);
  color:var(--accent);

  box-shadow:
    0 0 20px rgba(255,176,32,.12);
}

/* ----------------------------------------------------------
   TAMANHOS
---------------------------------------------------------- */

.btn-lg{
  padding:17px 34px;
  font-size:16px;
}

.btn-sm{
  padding:9px 16px;
  font-size:13px;
}


/* ==========================================================
   HEADER
   ========================================================== */

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  background:rgba(18,19,22,.86);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}

.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:76px;
}

.brand-mark{
  height:90px;
  width:auto;
}

.main-nav{
  display:flex;
  align-items:center;
  gap:90px;
}

.main-nav a{
  font-size:14px;
  color:var(--ink-muted);
  transition:color .18s ease;
}

.main-nav a:hover{
  color:var(--ink);
}

.nav-cta{
  position:relative;
  overflow:hidden;
  isolation:isolate;

  color:var(--accent) !important;
  border:1px solid var(--accent-line);

  padding:9px 16px;
  border-radius:var(--radius);

  transition:
    box-shadow .2s ease,
    background .2s ease,
    border-color .2s ease,
    transform .2s ease;
}

.nav-cta::before{
  content:"";
  position:absolute;
  z-index:-1;

  width:120px;
  height:120px;

  left:var(--mx,50%);
  top:var(--my,50%);

  transform:translate(-50%,-50%);

  background:radial-gradient(
    circle,
    rgba(255,176,32,.35),
    transparent 70%
  );

  opacity:0;

  transition:
    opacity .2s ease,
    left .08s linear,
    top .08s linear;

  pointer-events:none;
}

.nav-cta:hover{
  background:var(--accent-soft);
  border-color:var(--accent);
  box-shadow:0 0 18px var(--accent-glow);
  transform:translateY(-1px);
}

.nav-cta:hover::before{
  opacity:1;
}

.nav-toggle{
  display:none;
  flex-direction:column;
  justify-content:center;
  gap:5px;
  width:36px;
  height:36px;
  background:transparent;
  border:none;
  cursor:pointer;
}

.nav-toggle span{
  display:block;
  height:1.5px;
  background:var(--ink);
  width:100%;
  transition:.2s;
}


/* ==========================================================
   HERO
   ========================================================== */

.hero{
  position:relative;
  overflow:hidden;
  padding:96px 0 0;
}

.hero::before,
.hero::after{
  content:"";
  position:absolute;
  border-radius:50%;
  filter:blur(90px);
  pointer-events:none;
  z-index:0;
}

.hero::before{
  width:520px;
  height:520px;
  top:-180px;
  right:-120px;
  background:radial-gradient(
    circle,
    var(--accent-glow),
    transparent 70%
  );
}

.hero::after{
  width:460px;
  height:460px;
  bottom:-220px;
  left:-140px;
  background:radial-gradient(
    circle,
    var(--accent2-glow),
    transparent 70%
  );
}

.hero-watermark{
  position:absolute;
  right:-6%;
  top:50%;
  transform:translateY(-50%);
  width:640px;
  max-width:70vw;
  opacity:.06;
  pointer-events:none;
  z-index:0;
}

.hero-inner{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:40px;
  align-items:center;
  padding-bottom:80px;
}

.hero-copy h1{
  font-size:clamp(2.4rem,4.4vw,3.6rem);
  color:var(--ink);
}

.hero-copy h1 em{
  font-style:normal;
  background:linear-gradient(
    100deg,
    var(--accent),
    var(--accent-2)
  );
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

.hero-sub{
  margin:26px 0 34px;
  max-width:52ch;
  color:var(--ink-muted);
  font-size:17px;
}

.hero-actions{
  display:flex;
  gap:16px;
  flex-wrap:wrap;
}

.hero-flag{
  margin-top:30px;
  font-family:var(--mono);
  font-size:12.5px;
  color:var(--ink-faint);
  letter-spacing:.02em;
}

.hero-visual{
  position:relative;
  display:flex;
  justify-content:center;
}

.hero-visual::before{
  content:"";
  position:absolute;
  width:300px;
  height:300px;
  border-radius:50%;
  background:radial-gradient(
    circle,
    var(--accent-glow),
    transparent 72%
  );
  filter:blur(10px);
  z-index:0;
}

.hero-logo{
  position:relative;
  z-index:1;
  width:100%;
  max-width:340px;
  filter:
    drop-shadow(0 30px 60px rgba(0,0,0,.55))
    drop-shadow(0 0 40px rgba(255,176,32,.18));
}


/* ==========================================================
   CIRCUIT DIVIDER
   ========================================================== */

.circuit-divider{
  width:100%;
  height:44px;
  display:block;
  position:relative;
  z-index:1;
}

.circuit-divider path{
  fill:none;
  stroke:var(--line-strong);
  stroke-width:1.4;
}

.circuit-divider circle{
  fill:var(--accent);
}

.circuit-divider .pulse{
  fill:var(--accent-2);
  filter:drop-shadow(0 0 6px var(--accent-2));
  animation:pulseTravel 4.5s linear infinite;
}

@keyframes pulseTravel{
  0%{
    offset-distance:0%;
    opacity:0;
  }

  8%{
    opacity:1;
  }

  92%{
    opacity:1;
  }

  100%{
    offset-distance:100%;
    opacity:0;
  }
}


/* ==========================================================
   ABOUT
   ========================================================== */

.about{
  padding:100px 0;
  background:var(--bg-panel);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.about-inner{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:64px;
  align-items:start;
}

.about-text h2{
  font-size:clamp(1.7rem,3vw,2.3rem);
  margin-bottom:20px;
}

.about-text p{
  color:var(--ink-muted);
  max-width:50ch;
  font-size:16px;
}

.about-badges{
  display:flex;
  flex-direction:column;
  gap:26px;
}

.about-badges li{
  display:grid;
  grid-template-columns:44px 1fr;
  gap:18px;
  padding-bottom:24px;
  border-bottom:1px solid var(--line);
}

.about-badges li:last-child{
  border-bottom:none;
  padding-bottom:0;
}

.badge-mark{
  font-family:var(--mono);
  color:var(--accent);
  font-size:13px;
  border:1px solid var(--accent-line);
  background:var(--accent-soft);
  width:34px;
  height:34px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  box-shadow:0 0 18px var(--accent-glow);
}

.about-badges strong{
  display:block;
  margin-bottom:6px;
  font-size:15.5px;
}

.about-badges p{
  color:var(--ink-muted);
  font-size:14.5px;
}


/* ==========================================================
   SECTION HEAD
   ========================================================== */

.section-head{
  max-width:640px;
  margin:0 auto 56px;
  text-align:center;
}

.section-head h2{
  font-size:clamp(1.8rem,3.2vw,2.4rem);
}

.section-lede{
  margin-top:16px;
  color:var(--ink-muted);
  font-size:16px;
}


/* ==========================================================
   SERVICES
   ========================================================== */

.services{
  padding:110px 0;
}

.service-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:var(--line);
  border:1px solid var(--line);
}

.service-card{
  background:var(--bg);
  padding:38px 32px;
  transition:
    background .25s ease,
    transform .25s ease;
  position:relative;
}

.service-card:hover{
  background:var(--bg-panel);
  transform:translateY(-4px);
}

.service-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:46px;
  height:46px;
  border-radius:10px;
  color:var(--accent);
  background:var(--accent-soft);
  border:1px solid var(--accent-line);
  font-size:19px;
  margin-bottom:22px;
  transition:
    box-shadow .25s ease,
    border-color .25s ease;
}

.service-card:hover .service-icon{
  box-shadow:0 0 22px var(--accent-glow);
  border-color:var(--accent);
}

.service-card h3{
  font-size:18px;
  margin-bottom:12px;
  font-weight:600;
}

.service-card p{
  color:var(--ink-muted);
  font-size:14.5px;
}


/* ==========================================================
   BRANDS / CARROSSEL
   ========================================================== */

.brands{
  padding:90px 0 110px;
  background:var(--bg-panel);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.brand-marquee{
  width:100%;
  overflow:hidden;
  position:relative;

  mask-image:linear-gradient(
    90deg,
    transparent,
    #000 8%,
    #000 92%,
    transparent
  );

  -webkit-mask-image:linear-gradient(
    90deg,
    transparent,
    #000 8%,
    #000 92%,
    transparent
  );
}

.brand-track{
  display:flex;
  gap:20px;
  width:max-content;

  animation:
    scrollBrands 32s linear infinite;

  will-change:transform;
  transform:translate3d(0,0,0);
}

.brand-marquee:hover .brand-track{
  animation-play-state:paused;
}

.brand-tile{
  flex:0 0 220px;
  width:220px;
  height:96px;

  display:flex;
  align-items:center;
  justify-content:center;

  background:var(--bg-panel-2);
  border:1px solid var(--line-strong);
  border-radius:10px;

  transition:
    border-color .25s ease,
    box-shadow .25s ease,
    transform .25s ease;
}

.brand-tile:hover{
  border-color:var(--accent-line);
  box-shadow:0 0 24px var(--accent-glow);
  transform:translateY(-3px);
}

.brand-tile img{
  max-height:90px;
  max-width:100%;
  width:auto;
  height:auto;
  display:block;

  opacity:1;
  filter:none;

  transition:
    transform .25s ease;
}

.brand-tile:hover img{
  opacity:1;
  filter:none;
  transform:scale(1.03);
}

.brand-tile span{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.08em;
  color:var(--ink-faint);
}


/* ==========================================================
   CARROSSEL INFINITO
   ========================================================== */

@keyframes scrollBrands{

  0%{
    transform:translate3d(0,0,0);
  }

  100%{
    transform:translate3d(-50%,0,0);
  }

}


/* ==========================================================
   LOCATION
   ========================================================== */

.location{
  padding:110px 0;
}

.location-inner{
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:60px;
  align-items:center;
}

.location-text h2{
  font-size:clamp(1.7rem,3vw,2.2rem);
  margin-bottom:18px;
}

.location-text p{
  color:var(--ink-muted);
  max-width:46ch;
}

.location-meta{
  margin:26px 0 32px;
  display:flex;
  flex-direction:column;
  gap:10px;
}

.location-meta li{
  font-size:14.5px;
  color:var(--ink-muted);
}

.location-meta strong{
  color:var(--ink);
  font-weight:600;
}

.location-map{
  aspect-ratio:4/3;
  border:1px solid var(--accent-line);
  border-radius:12px;
  overflow:hidden;
  box-shadow:
    0 0 40px rgba(0,0,0,.4),
    0 0 0 1px rgba(255,176,32,.06) inset;
}

.location-map iframe{
  width:100%;
  height:100%;
  filter:saturate(1.15);
}


/* ==========================================================
   CTA FINAL
   ========================================================== */

.cta-final{
  position:relative;
  overflow:hidden;
  padding:120px 0;
  background:
    linear-gradient(
      120deg,
      var(--accent) 0%,
      #ffcf6b 45%,
      var(--accent-2) 100%
    );
  color:#141312;
  text-align:center;
}

.cta-final .eyebrow{
  color:#2e2a20;
}

.cta-final h2{
  color:#141312;
  font-size:clamp(2rem,3.6vw,2.8rem);
}

.cta-watermark{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  width:900px;
  max-width:120vw;
  opacity:.08;
  pointer-events:none;
}

.cta-inner{
  position:relative;
  max-width:620px;
  margin:0 auto;
}

.cta-sub{
  margin:18px 0 34px;
  font-size:17px;
  color:#26241f;
}

.cta-final .btn-accent{
  background:#141312;
  color:var(--accent);
  box-shadow:0 10px 30px rgba(0,0,0,.35);
}

.cta-final .btn-accent:hover{
  background:#232019;
  box-shadow:0 14px 36px rgba(0,0,0,.45);
}

.cta-final .tag-edit{
  border-color:rgba(20,19,18,.4);
  color:#141312;
}

.cta-alt{
  margin-top:20px;
  font-size:13.5px;
  color:#2e2a20;
}

.cta-alt a{
  text-decoration:underline;
}


/* ==========================================================
   FOOTER
   ========================================================== */

.site-footer{
  padding:80px 0 0;
  background:var(--bg-panel-2);
  border-top:1px solid var(--line);
}

.footer-inner{
  display:grid;
  grid-template-columns:1.4fr .8fr .8fr;
  gap:48px;
  padding-bottom:56px;
  border-bottom:1px solid var(--line);
}

.footer-brand .brand-mark{
  height:90px;
  margin-bottom:18px;
}

.footer-brand p{
  color:var(--ink-muted);
  font-size:14px;
  max-width:32ch;
}

.footer-social{
  display:flex;
  gap:18px;
  margin-top:20px;
}

.footer-social a{
  font-size:13.5px;
  color:var(--accent);
}

.footer-social a:hover{
  color:var(--accent-2);
}

.footer-col h4{
  font-family:var(--mono);
  font-size:12px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin-bottom:18px;
}

.footer-col{
  display:flex;
  flex-direction:column;
  gap:12px;
}

.footer-col a,
.footer-col span{
  font-size:14px;
  color:var(--ink-muted);
}

.footer-col a:hover{
  color:var(--ink);
}

.footer-legal{
  display:flex;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px;
  padding:22px 0;

  font-family:var(--mono);
  font-size:12px;
  color:var(--ink-faint);
}


/* ==========================================================
   WHATSAPP WIDGET
   ========================================================== */

.wa-widget{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:80;

  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:14px;
}

.wa-fab{
  width:58px;
  height:58px;
  border-radius:50%;

  background:var(--accent);
  color:#141312;

  border:none;
  cursor:pointer;

  display:flex;
  align-items:center;
  justify-content:center;

  box-shadow:
    0 12px 28px rgba(0,0,0,.4),
    0 0 0 0 var(--accent-glow);

  transition:
    transform .2s ease,
    box-shadow .2s ease;

  animation:waPulse 2.6s ease-in-out infinite;
}

.wa-fab:hover{
  transform:scale(1.08);
  animation-play-state:paused;
}

@keyframes waPulse{

  0%,
  100%{
    box-shadow:
      0 12px 28px rgba(0,0,0,.4),
      0 0 0 0 var(--accent-glow);
  }

  50%{
    box-shadow:
      0 12px 28px rgba(0,0,0,.4),
      0 0 0 12px rgba(255,176,32,0);
  }

}

.wa-bubble{
  position:relative;

  width:250px;

  background:var(--bg-panel);
  border:1px solid var(--line-strong);
  border-radius:8px;

  padding:18px 18px 20px;

  box-shadow:0 20px 40px rgba(0,0,0,.4);

  opacity:0;
  transform:translateY(10px) scale(.97);

  pointer-events:none;

  transition:
    opacity .25s ease,
    transform .25s ease;
}

.wa-bubble.is-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}

.wa-bubble p{
  font-size:14px;
  margin-bottom:14px;
  color:var(--ink);
}

.wa-close{
  position:absolute;
  top:8px;
  right:10px;

  background:none;
  border:none;

  color:var(--ink-faint);

  font-size:18px;
  cursor:pointer;
  line-height:1;
}


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

[data-reveal]{
  opacity:0;
  transform:translateY(18px);

  transition:
    opacity .7s ease,
    transform .7s ease;
}

[data-reveal].is-in{
  opacity:1;
  transform:translateY(0);
}


/* ==========================================================
   TABLET
   ========================================================== */

@media (max-width:920px){

  .hero-inner{
    grid-template-columns:1fr;
    padding-bottom:60px;
  }

  .hero-visual{
    order:-1;
    max-width:220px;
    margin:0 auto 20px;
  }

  .about-inner{
    grid-template-columns:1fr;
    gap:44px;
  }

  .service-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .location-inner{
    grid-template-columns:1fr;
  }

  .footer-inner{
    grid-template-columns:1fr 1fr;
  }

}


/* ==========================================================
   MOBILE
   ========================================================== */

@media (max-width:680px){

  .wrap{
    padding-left:20px;
    padding-right:20px;
  }

  /* HEADER */

  .main-nav{
    position:fixed;
    top:76px;
    left:0;
    right:0;

    background:var(--bg);
    border-bottom:1px solid var(--line);

    flex-direction:column;
    align-items:flex-start;
    gap:0;

    padding:8px 28px 20px;

    transform:translateY(-8px);
    opacity:0;
    pointer-events:none;

    transition:.2s ease;
  }

  .main-nav.is-open{
    opacity:1;
    transform:translateY(0);
    pointer-events:auto;
  }

  .main-nav a{
    padding:12px 0;
    width:100%;
    border-bottom:1px solid var(--line);
  }

  .nav-cta{
    margin-top:12px;
    text-align:center;
  }

  .nav-toggle{
    display:flex;
  }


  /* SERVICES */

  .service-grid{
    grid-template-columns:1fr;
  }


  /* FOOTER */

  .footer-inner{
    grid-template-columns:1fr;
    gap:36px;
  }


  /* HERO */

  .hero{
    padding-top:70px;
  }


  /* WHATSAPP */

  .wa-bubble{
    width:220px;
  }


  /* ======================================================
     CARROSSEL MOBILE
     ====================================================== */

  .brand-track{
    gap:14px;

    /*
      Mais rápido no celular para ficar
      claramente perceptível.
    */
    animation-duration:22s;

    /*
      Mantém a aceleração constante.
    */
    animation-timing-function:linear;

    /*
      Evita pequenos problemas de renderização.
    */
    will-change:transform;
  }

  .brand-tile{
    flex:0 0 180px;
    width:180px;
    height:85px;
  }

  .brand-tile img{
    max-width:90%;
    max-height:78px;
  }

}

@media (prefers-reduced-motion: reduce){

  html{
    scroll-behavior:auto;
  }

  [data-reveal]{
    opacity:1;
    transform:none;
    transition:none;
  }

}
