:root{
  --gold:#f2b51d;
  --gold2:#ffd45a;
  --black:#030303;
  --dark:#070707;
  --panel:#0b0b0b;
  --muted:#c9c9c9;
  --border:rgba(255,255,255,.16);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:Arial,Helvetica,sans-serif;background:var(--black);color:#fff;line-height:1.55}
a{text-decoration:none;color:inherit}

.header{
  height:104px;
  padding:0 6.5%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px;
  background:#030303;
  border-bottom:1px solid rgba(255,255,255,.12);
  position:sticky;
  top:0;
  z-index:100;
}
.brand{display:flex;align-items:center;gap:16px}
.brand img{width:74px;height:74px;border-radius:50%;object-fit:cover;border:2px solid var(--gold)}
.brand strong{font-size:34px;font-weight:900;letter-spacing:1px;line-height:1}
.brand strong span,.footer-brand span{color:var(--gold)}
.brand small{display:block;font-size:14px;font-weight:800;letter-spacing:1.2px;margin-top:5px}
nav{display:flex;gap:32px;text-transform:uppercase;font-size:14px;font-weight:800}
nav a{position:relative;color:#f5f5f5}
nav a:hover,nav .active{color:var(--gold)}
nav .active:after,nav a:hover:after{
  content:"";position:absolute;left:0;right:0;bottom:-24px;height:3px;background:var(--gold)
}
.budget{
  border:1px solid var(--gold);
  color:var(--gold);
  padding:15px 22px;
  border-radius:4px;
  text-transform:uppercase;
  font-size:14px;
  font-weight:900
}
.budget:hover{background:var(--gold);color:#111}

.hero{
  position:relative;
  min-height:520px;
  height:72vh;
  overflow:hidden;
  display:flex;
  align-items:center;
  padding:70px 6.5%;
  background:#050505;
}
.hero-img{
  position:absolute;
  inset:0;
  background:url('hero-house.jpg') right center/cover no-repeat;
  transform:scale(1.01);
}
.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,#050505 0%,rgba(5,5,5,.94) 18%,rgba(5,5,5,.64) 43%,rgba(5,5,5,.16) 70%,rgba(5,5,5,.58) 100%),
    linear-gradient(180deg,rgba(0,0,0,0) 0%,#050505 100%);
}
.lightning{
  position:absolute;
  left:-40px;
  top:105px;
  width:420px;
  height:260px;
  opacity:.65;
  filter:drop-shadow(0 0 16px rgba(242,181,29,.55));
  background:
    linear-gradient(118deg,transparent 0 38%,rgba(242,181,29,.75) 38% 39%,transparent 39% 100%),
    linear-gradient(145deg,transparent 0 51%,rgba(242,181,29,.62) 51% 52%,transparent 52% 100%),
    radial-gradient(circle at 15% 45%,rgba(242,181,29,.28),transparent 34%);
}
.hero-content{
  position:relative;
  z-index:5;
  max-width:720px;
}
.tag{
  display:inline-block;
  border:1px solid rgba(255,255,255,.28);
  padding:10px 17px;
  border-radius:4px;
  background:rgba(0,0,0,.42);
  font-size:14px;
  text-transform:uppercase;
  font-weight:900;
  margin-bottom:25px;
}
h1{
  font-size:clamp(42px,5.8vw,72px);
  line-height:1;
  letter-spacing:-1.7px;
  text-transform:uppercase;
  margin-bottom:16px;
}
h1 span{
  display:block;
  color:var(--gold);
}
.hero p{
  max-width:650px;
  color:#f1f1f1;
  font-size:18px;
}
.hero-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin-top:30px;
}
.hero-btn{
  min-width:190px;
  min-height:62px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:12px 18px;
  border:1px solid rgba(242,181,29,.5);
  background:rgba(5,5,5,.55);
  border-radius:5px;
}
.hero-btn.primary{
  background:linear-gradient(135deg,var(--gold2),var(--gold));
  color:#111;
  border:0;
}
.hero-btn b{
  text-transform:uppercase;
  font-size:14px;
}
.hero-btn small{
  font-size:13px;
  opacity:.9;
}

.services{
  padding:18px 6.5% 22px;
  background:linear-gradient(180deg,#050505,#070707);
}
.section-title{text-align:center;margin-bottom:22px}
.section-title small{
  color:var(--gold);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:1px;
}
.section-title h2{
  font-size:32px;
  line-height:1;
  text-transform:uppercase;
  margin-top:4px;
}
.line{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:12px;
  color:var(--gold);
  margin-top:8px;
}
.line span{
  width:38px;
  height:1px;
  background:var(--gold);
}
.service-grid{
  display:grid;
  grid-template-columns:repeat(6,1fr);
  gap:16px;
}
.service-grid article{
  min-height:232px;
  border:1px solid var(--border);
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.01));
  border-radius:4px;
  padding:26px 16px;
  text-align:center;
  transition:.25s;
}
.service-grid article:hover{
  transform:translateY(-5px);
  border-color:var(--gold);
  box-shadow:0 18px 45px rgba(0,0,0,.45);
}
.icon{
  color:var(--gold);
  font-size:42px;
  margin-bottom:18px;
}
.service-grid h3{
  font-size:16px;
  line-height:1.16;
  text-transform:uppercase;
  min-height:42px;
  margin-bottom:12px;
}
.service-grid p{
  color:#ccc;
  font-size:14px;
  min-height:66px;
}
.service-grid a{
  color:var(--gold);
  font-weight:900;
  font-size:14px;
}

.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  padding:0 6.5%;
  background:linear-gradient(90deg,#0a0907,#12100c,#0a0907);
  border-top:1px solid rgba(242,181,29,.15);
  border-bottom:1px solid rgba(242,181,29,.15);
}
.stats div{
  min-height:72px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:15px;
  border-right:1px solid rgba(255,255,255,.12);
}
.stats div:last-child{border-right:0}
.stats span{
  color:var(--gold);
  font-size:32px;
}
.stats strong{
  font-size:28px;
  text-transform:uppercase;
}
.stats small{
  display:block;
  color:#ddd;
  text-transform:uppercase;
  font-size:13px;
}

.about{
  margin:48px 6.5%;
  padding:45px;
  border:1px solid rgba(242,181,29,.28);
  border-radius:6px;
  background:linear-gradient(135deg,rgba(242,181,29,.10),rgba(255,255,255,.03));
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:34px;
}
.about small{
  color:var(--gold);
  font-weight:900;
  text-transform:uppercase;
}
.about h2{
  font-size:36px;
  line-height:1.08;
  margin-top:8px;
}
.about p{
  color:#ddd;
  font-size:18px;
}

.contact{
  padding:20px 6.5% 28px;
  display:grid;
  grid-template-columns:1.25fr 1.35fr 1.8fr 1.25fr;
  gap:28px;
  align-items:stretch;
  background:linear-gradient(180deg,#080808,#050505);
}
.footer-brand{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.footer-brand img{
  width:88px;
  height:88px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid var(--gold);
  margin-bottom:12px;
}
.footer-brand h2{
  font-size:32px;
}
.footer-brand p{
  color:#bbb;
  font-size:14px;
}
.details{
  border-left:1px solid rgba(255,255,255,.14);
  padding-left:28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  color:#eee;
}
.details a{color:#fff}
.map{
  border:1px solid rgba(255,255,255,.15);
  border-radius:4px;
  overflow:hidden;
  align-self:center;
}
.map iframe{
  width:100%;
  height:96px;
  border:0;
  display:block;
  filter:grayscale(.05);
}
.map a{
  display:block;
  text-align:center;
  padding:9px;
  color:var(--gold);
  text-transform:uppercase;
  font-weight:900;
  font-size:14px;
}
.assist{
  border:1px solid rgba(255,255,255,.13);
  border-radius:6px;
  padding:24px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
  text-align:center;
}
.assist div{
  width:62px;
  height:62px;
  border:2px solid #fff;
  border-radius:50%;
  display:grid;
  place-items:center;
  font-size:30px;
  margin-bottom:10px;
}
.assist h3{
  font-size:22px;
  text-transform:uppercase;
}
.assist h3 span{color:var(--gold)}
.assist p{
  color:#ddd;
  font-size:14px;
  margin:8px 0 12px;
}
.assist a{
  background:linear-gradient(135deg,var(--gold2),var(--gold));
  color:#111;
  padding:10px 20px;
  border-radius:4px;
  text-transform:uppercase;
  font-weight:900;
}
footer{
  text-align:center;
  color:#aaa;
  padding:22px 6.5%;
  border-top:1px solid rgba(255,255,255,.08);
  background:#030303;
}

@media(max-width:1180px){
  .service-grid{grid-template-columns:repeat(3,1fr)}
  .contact{grid-template-columns:1fr 1fr}
}
@media(max-width:850px){
  .header{
    height:auto;
    padding:14px 5%;
    flex-wrap:wrap;
    position:relative;
  }
  .brand img{width:58px;height:58px}
  .brand strong{font-size:25px}
  .brand small{font-size:11px}
  nav{
    order:3;
    width:100%;
    overflow:auto;
    justify-content:space-between;
    gap:16px;
    font-size:12px;
  }
  nav .active:after,nav a:hover:after{display:none}
  .budget{font-size:12px;padding:10px 12px}
  .hero{
    height:auto;
    min-height:650px;
    padding:80px 5%;
  }
  .hero-img{
    background-position:center;
    opacity:.72;
  }
  h1{font-size:40px}
  .hero-buttons{flex-direction:column}
  .hero-btn{width:100%}
  .service-grid,.stats,.about,.contact{grid-template-columns:1fr}
  .stats div{border-right:0;border-bottom:1px solid rgba(255,255,255,.1)}
  .about{margin:35px 5%;padding:28px}
  .contact{padding:30px 5%}
  .details{border-left:0;padding-left:0}
  .map iframe{height:180px}
}

/* Animações suaves */
.reveal{
  opacity:0;
  transform:translateY(34px);
  transition:opacity .75s ease, transform .75s ease;
}
.reveal.visible{
  opacity:1;
  transform:translateY(0);
}

/* Formulário de orçamento */
.quote-section{
  margin:50px 6.5%;
  padding:48px;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:34px;
  align-items:start;
  background:linear-gradient(135deg,rgba(242,181,29,.12),rgba(255,255,255,.035));
  border:1px solid rgba(242,181,29,.28);
  border-radius:6px;
}
.quote-text small{
  color:var(--gold);
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:1px;
}
.quote-text h2{
  font-size:38px;
  text-transform:uppercase;
  line-height:1.05;
  margin:8px 0 12px;
}
.quote-text p{
  color:#ddd;
  font-size:18px;
}
.quote-form{
  display:grid;
  gap:14px;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}
.quote-form input,
.quote-form select,
.quote-form textarea{
  width:100%;
  padding:15px 16px;
  border:1px solid rgba(255,255,255,.18);
  background:#0b0b0b;
  color:#fff;
  border-radius:5px;
  font-size:15px;
  outline:none;
}
.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus{
  border-color:var(--gold);
}
.quote-form textarea{
  resize:vertical;
}
.form-actions{
  display:flex;
  gap:12px;
  flex-wrap:wrap;
}
.form-actions button{
  flex:1;
  min-width:190px;
  border:0;
  padding:15px 20px;
  border-radius:5px;
  background:linear-gradient(135deg,var(--gold2),var(--gold));
  color:#111;
  text-transform:uppercase;
  font-weight:900;
  cursor:pointer;
}
.form-actions button:last-child{
  background:#fff;
}
.form-actions button:hover{
  transform:translateY(-2px);
}

@media(max-width:850px){
  .quote-section{
    grid-template-columns:1fr;
    margin:35px 5%;
    padding:28px;
  }
  .form-row{
    grid-template-columns:1fr;
  }
}

/* Correção alinhamento contactos */
.details{
  border-left:1px solid rgba(255,255,255,.14);
  padding-left:28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:10px;
  color:#eee;
  min-width:0;
}
.contact-line{
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  align-items:start;
  gap:10px;
  font-size:16px;
  line-height:1.35;
}
.contact-icon{
  width:26px;
  display:inline-flex;
  justify-content:center;
  color:var(--gold);
}
.contact-line a,
.tech-phone a{
  color:#fff;
  overflow-wrap:anywhere;
}
.team-lines{
  margin-top:8px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,.18);
  display:grid;
  gap:5px;
  font-size:15px;
  line-height:1.3;
}
.team-lines strong{
  color:var(--gold);
}
.tech-phone{
  color:#fff;
  white-space:nowrap;
}
@media(max-width:850px){
  .details{
    border-left:0;
    padding-left:0;
  }
  .tech-phone{
    white-space:normal;
  }
}

.team-row{display:grid;grid-template-columns:170px 1fr;gap:10px;align-items:center}
.team-row strong{color:var(--gold);white-space:nowrap}
.team-row span{white-space:nowrap}
@media(max-width:850px){
.team-row{grid-template-columns:1fr}
.team-row span{white-space:normal}
}

/* Ajuste do mapa */
.map iframe{
    height:220px !important;
    transform:translateY(-25px);
}
@media(max-width:850px){
  .map iframe{
    height:240px !important;
    transform:translateY(-15px);
  }
}

/* Compactar bloco CEO/Direção */
.team-lines{
  font-size:13px !important;
  gap:3px !important;
}
.team-row{
  grid-template-columns:145px 1fr !important;
  gap:6px !important;
}
.team-row strong,
.team-row span,
.team-row a{
  font-size:13px !important;
  line-height:1.15 !important;
}
.team-row span{white-space:nowrap !important;}
@media(max-width:850px){
 .team-row{grid-template-columns:1fr !important;}
 .team-row span{white-space:normal !important;}
}

.team-lines{font-size:12px!important;gap:2px!important;margin-top:6px!important;padding-top:6px!important}
.team-item{font-size:12px!important;line-height:1.1!important;white-space:nowrap!important}
.team-item strong{color:var(--gold);font-size:12px!important}
.team-item a{font-size:12px!important;color:#fff}
