:root{
  --bg:#06091a;
  --panel:#0a1030;
  --panel2:#0d1438;
  --text:#ffffff;
  --muted:rgba(255,255,255,.72);

  --accent:#e8a000;
  --accent2:#f5c030;
  --red:#be1218;

  --gold:#e8a000;
  --border:rgba(232,160,0,.28);
  --shadow:0 20px 45px rgba(0,0,0,.65);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:'Inter',sans-serif;
  background:linear-gradient(180deg, #06091a 0%, #04061a 100%);
  color:var(--text);
  position:relative;
  overflow-x:hidden;
}

/* Headings use Montserrat for a bolder, industrial look */
h1,h2,h3,h4,strong{font-family:'Montserrat',sans-serif}

/* Marca d'água sutil */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background-image:url("../img/logo-preta.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:110vmax;
  opacity:.04;
  pointer-events:none;
}

/* garante conteúdo acima do background */
body::before{
  content:"";
  position:fixed;
  inset:0;
  z-index:0;
  background-image:url("../img/logo-preta.png");
  background-repeat:no-repeat;
  background-position:center;
  background-size:120vmax; /* grande */
  opacity:.06;
  pointer-events:none;
}

/* garante conteúdo acima do background */
.header, .hero, main, footer, .page-hero{position:relative; z-index:1;}

a{color:inherit}
.container{max-width:1100px;margin:0 auto;padding:0 20px}

/* Header */
.header{
  position:fixed; top:0; left:0; right:0;
  z-index:999;
  background:linear-gradient(180deg, rgba(6,9,26,.82), rgba(6,9,26,.97));
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(232,160,0,.20);
  transition:background .2s ease, box-shadow .2s ease;
}
.navbar{
  display:flex; align-items:center; justify-content:space-between;
  gap:16px; padding:16px 0;
}

/* Brand (logo + nome) */
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  text-decoration:none;
}
.brand__logo{width:54px;height:auto;display:block}
.brand__name{
  font-weight:800;
  letter-spacing:.2px;
  color:var(--text);
}
.brand:hover .brand__name{color:var(--accent)}

/* Mobile menu toggle */
.nav-toggle{
  display:none;
  width:44px; height:38px;
  background:transparent;
  border:1px solid rgba(255,255,255,.12);
  border-radius:12px;
  padding:8px;
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  height:2px;
  background:rgba(255,255,255,.85);
  margin:5px 0;
  border-radius:2px;
}

/* Menu */
.nav-menu{
  display:flex; align-items:center;
  list-style:none; gap:22px;
  margin:0; padding:0;
}
.nav-menu a{
  text-decoration:none;
  font-weight:600;
  color:rgba(255,255,255,.88);
  letter-spacing:.4px;
  transition:color .2s;
}
.nav-menu a:hover,
.nav-menu a.active{color:var(--accent)}
.nav-cta{margin-left:6px}

/* Ícones */
.nav-icons{display:flex; align-items:center; gap:10px}
.icon-link{
  width:40px;height:40px;
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:12px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.05);
  transition:transform .2s, border-color .2s, filter .2s;
}
.icon-link:hover{
  transform:translateY(-2px);
  border-color:rgba(47,107,255,.45);
  filter:brightness(1.06);
}
.icon-link svg{width:20px;height:20px;fill:rgba(255,255,255,.88);display:block}
.icon-link:hover svg{fill:var(--accent)}

/* Buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:8px;
  padding:12px 16px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.04);
  color:var(--text);
  text-decoration:none;
  font-weight:700;
  cursor:pointer;
  transition:transform .18s, filter .18s, box-shadow .18s, border-color .18s;
  position:relative; overflow:hidden;
}
.btn:hover{transform:translateY(-2px); filter:brightness(1.06); box-shadow:0 12px 24px rgba(0,0,0,.35)}
.btn:focus{outline:2px solid rgba(255,214,0,.22); outline-offset:2px}
.btn--primary{
  padding:12px 18px;
  border-radius:14px;
  border:1px solid rgba(232,160,0,.55);
  background:linear-gradient(90deg, #e8a000, #c88000);
  color:#fff;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.6px;
  box-shadow:0 12px 30px rgba(232,160,0,.15), 0 6px 18px rgba(0,0,0,.30);
}
.btn--primary:hover{transform:translateY(-3px); box-shadow:0 18px 36px rgba(232,160,0,.22)}
.btn--whatsapp{background:#18b859; border-color:#14a94f; color:#fff}
.btn--ghost{background:transparent; border:1px solid rgba(255,214,0,.28); color:var(--accent)}
.btn--outline{background:transparent; border-color:rgba(255,255,255,.12); color:var(--text)}

.btn__icon{width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.btn__icon svg{width:18px;height:18px;fill:currentColor;display:block}

/* Hero */
.hero{
  position:relative;
  min-height:95vh;
  display:grid;
  place-items:center;
  padding-top:88px;
}
.hero__bg{
  position:absolute; inset:0;
  background:
    radial-gradient(ellipse 80% 60% at 50% 30%, rgba(26,42,107,.55), transparent 70%),
    linear-gradient(180deg, #0c1640 0%, #0a1030 55%, #06091a 100%);
}
.hero__overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(6,9,26,.30) 0%, rgba(6,9,26,.60) 60%, rgba(6,9,26,1) 100%);
}
.hero__content{
  position:relative; z-index:1;
  text-align:center;
  padding:40px 16px 50px;
  max-width:920px;
}
.hero__logo{display:none;}
.hero__title{margin:0; font-size:3.8rem; line-height:1.08; letter-spacing:.6px; text-transform:uppercase; color:#fff;}
.hero__subtitle{margin:18px auto 0; max-width:720px; color:rgba(255,255,255,.86); font-size:1.35rem;}
.hero__actions{margin-top:24px; display:flex; justify-content:center; gap:12px; flex-wrap:wrap;}
.hero__badges{margin-top:22px; display:flex; justify-content:center; gap:10px; flex-wrap:wrap;}
.badge{
  padding:10px 14px;
  border-radius:999px;
  background:rgba(255,214,0,.18);
  border:1px solid rgba(255,214,0,.32);
  color:var(--accent);
  font-weight:700;
  font-size:.92rem;
}

/* Título FW com gradiente dourado */
.fw-mark{
  background:linear-gradient(90deg, #be1218, #e8a000);
  -webkit-background-clip:text;
  background-clip:text;
  color:transparent;
}

/* Sections */
.section{padding:55px 0}
.section--alt{
  background:linear-gradient(180deg, rgba(8,12,32,.96) 0%, rgba(10,16,44,.88) 25%, rgba(8,12,32,.96) 100%);
  border-top:1px solid rgba(232,160,0,.14);
  border-bottom:1px solid rgba(232,160,0,.14);
}
.section__head{text-align:center;margin-bottom:30px}
.section__title{margin:0; font-size:2.6rem; line-height:1.1; color:#fff; text-transform:uppercase; letter-spacing:.3px;}
.section__desc{margin:12px auto 0; color:rgba(255,255,255,.72); font-size:1.18rem; line-height:1.45; max-width:760px;}

/* Testimonials */
.testimonials{padding:48px 0}
.test-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; margin-top:18px}
.testimonial{padding:20px; border-radius:16px; background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,.01)); border:1px solid rgba(255,214,0,.08); box-shadow:0 10px 30px rgba(0,0,0,.45)}
.testimonial blockquote{margin:0 0 12px; color:rgba(255,255,255,.92); font-style:italic; line-height:1.45}
.testimonial .author{font-weight:700; color:var(--accent);}

@media (max-width:900px){
  .test-grid{grid-template-columns:1fr}
}

/* Cards / grid */
.grid{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:20px}
.grid--3{grid-template-columns:repeat(3, minmax(0, 1fr))}
.card{
  background:linear-gradient(150deg, rgba(255,255,255,.05), rgba(255,255,255,.01));
  border:1px solid rgba(255,214,0,.20);
  border-radius:20px;
  padding:24px;
  box-shadow:0 16px 34px rgba(0,0,0,.45);
  transition:transform .25s, border-color .25s, box-shadow .25s;
  transform-style:preserve-3d;
}
.card:hover{
  transform:translateY(-10px);
  border-color:rgba(255,214,0,.45);
  box-shadow:0 20px 70px rgba(0,0,0,.55);
}
.card h3{margin:0 0 10px; color:#fff}
.card p{margin:0; color:var(--muted)}
.card__actions{margin-top:14px; display:flex; gap:10px; flex-wrap:wrap}

.services{display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:18px}
.service{
  display:flex; gap:14px;
  padding:16px;
  border-radius:14px;
  border:1px dashed rgba(255,214,0,.4);
  background:rgba(255,255,255,.04);
}
.service__icon{font-size:1.5rem; width:38px; display:grid; place-items:center;}
.service strong{color:var(--accent);}
.service p{color:rgba(255,255,255,.8); margin:0;}
.center{display:flex; justify-content:center; margin-top:18px}

.post{
  padding:20px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.03);
}
.post h3{margin:0 0 10px}
.post p{margin:0 0 10px; color:var(--muted)}
.link{color:var(--accent); text-decoration:none}
.link:hover{text-decoration:underline}

/* Page hero */
.page-hero{
  position:relative;
  padding-top:90px;
  height:290px;
  display:grid;
  place-items:center;
  text-align:center;
  background:linear-gradient(135deg, rgba(10,20,60,.80), rgba(6,9,26,1));
}
.page-hero__overlay{
  position:absolute; inset:0;
  background:radial-gradient(circle at 30% 30%, rgba(190,18,24,.14), transparent 55%);
}
.page-hero__content{position:relative; z-index:1; padding:0 16px}
.page-hero h1{margin:0; font-size:2rem}
.page-hero p{margin:10px 0 0; color:var(--muted)}

/* Map */
.map-embed{
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
}
.map-embed iframe{width:100%; height:360px; border:0; display:block}

/* Footer */
.footer{
  margin-top:40px;
  border-top:1px solid rgba(255,255,255,.07);
  background:rgba(255,255,255,.02);
}
.footer__inner{
  max-width:1100px;
  margin:0 auto;
  padding:22px 20px;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:16px;
}
.footer__inner p{margin:8px 0 0; color:var(--muted)}
.footer__copy{
  margin:0;
  padding:0 20px 20px;
  color:rgba(255,255,255,.45);
  font-size:.9rem;
  text-align:center;
}

/* Floating WhatsApp */
.float-whats{
  position:fixed;
  right:18px;
  bottom:18px;
  z-index:999;
  background:#25d366;
  color:#07110a;
  text-decoration:none;
  font-weight:900;
  padding:12px 14px;
  border-radius:999px;
  box-shadow:0 18px 40px rgba(0,0,0,.45);
  border:1px solid rgba(0,0,0,.15);
}
.float-whats:hover{filter:brightness(1.05)}

/* Ripple */
.ripple{
  position:absolute;
  border-radius:50%;
  background:rgba(255,255,255,.6);
  transform:scale(0);
  animation:ripple .6s linear;
  pointer-events:none;
}
@keyframes ripple{to{transform:scale(4);opacity:0}}

/* Header shrink */
.header.is-scrolled{
  background:rgba(6,9,26,.97);
  box-shadow:0 10px 30px rgba(0,0,0,.55);
}
.header.is-scrolled .navbar{padding:8px 0}
.header.is-scrolled .brand__logo{width:40px}

/* Responsive */
@media (max-width: 900px){
  .grid{grid-template-columns:1fr}
  .grid--3{grid-template-columns:1fr}
  .services{grid-template-columns:1fr}
  .footer__inner{grid-template-columns:1fr}

  .nav-toggle{display:block}

  .nav-menu{
    position:fixed;
    top:62px;
    right:12px;
    left:12px;
    background:rgba(5,7,10,.95);
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    padding:14px;
    display:none;
    flex-direction:column;
    gap:12px;
    align-items:center;
    text-align:center;
  }
  .nav-menu.open{display:flex}

  .nav-icons{justify-content:center; width:100%; gap:12px}

  .nav-cta{width:100%; display:flex; justify-content:center}
  .nav-cta .btn{width:100%; max-width:320px}

  .brand__name{display:none} /* no mobile deixa só o ícone */
}
.subhead{
  margin:8px 0 14px;
  text-align:center;
  font-size:1.15rem;
  letter-spacing:.3px;
  color:rgba(255,255,255,.92);
}

/* Expandir/colapsar serviços completos */
.services-more{
  max-height: 560px;          /* altura “fechada” */
  overflow: hidden;
  position: relative;
  border-radius: 18px;
}

.services-more::after{
  content:"";
  position:absolute;
  left:0; right:0; bottom:0;
  height:140px;
  background: linear-gradient(180deg, rgba(5,7,10,0), rgba(5,7,10,1));
  pointer-events:none;
}

.services-more.is-open{
  max-height: 2400px;         /* altura “aberta” */
}

.services-more.is-open::after{
  display:none;
}
#servicos{ scroll-margin-top: 90px; }

/* Contact form */
.contact-form label{
  display:block;
  font-weight:600;
  color:rgba(255,255,255,.88);
  font-size:.95rem;
}
.contact-form input,
.contact-form textarea{
  display:block;
  width:100%;
  margin-top:6px;
  padding:10px 14px;
  border-radius:10px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.05);
  color:var(--text);
  font-family:inherit;
  font-size:1rem;
  transition:border-color .2s;
}
.contact-form input:focus,
.contact-form textarea:focus{
  outline:none;
  border-color:rgba(255,214,0,.45);
}
.contact-form textarea{resize:vertical; min-height:100px;}