/* =========================================================
   CAMINHO CONFIANTE — folha de estilos única
   Alterar aqui muda o site inteiro.
   ========================================================= */

:root{
  --grafite:#10151C;
  --grafite-claro:#1C242E;
  --betao:#E8E9E4;
  --branco:#FAFAF8;
  --carvalho:#8C2F45;
  --sinal:#F2B705;
  --planta:#1F5FA8;
  --linha-pag:rgba(232,233,228,.05);
  --max:1280px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}

body{
  margin:0;
  color:var(--branco);
  background-color:var(--grafite);
  font-family:"Archivo",system-ui,sans-serif;
  font-weight:400;line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

/* ---------------------------------------------------------
   GRELHA DE FUNDO ANIMADA
   Camada própria, fixa ao ecrã, por baixo de todo o conteúdo.
   --vel: segundos que a grelha demora a percorrer 27px.
          MAIOR = mais lenta. Escala aproximada:
          1 -> 18s   2 -> 9s   3 -> 6s   5 -> 3.6s   10 -> 1.8s
   Para parar a animação, apague a linha "animation:".
   --------------------------------------------------------- */
body::before{
  content:"";
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    repeating-linear-gradient(0deg,var(--linha-pag) 0 1px,transparent 1px 27px),
    repeating-linear-gradient(90deg,var(--linha-pag) 0 1px,transparent 1px 27px);
  will-change:transform;
  animation:desliza var(--vel,9s) linear infinite;
}

@keyframes desliza{
  from{transform:translateX(0)}
  to{transform:translateX(-27px)}
}

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

.envolve{max-width:var(--max);margin:0 auto;padding:0 1.5rem}

/* ---------- tipografia ---------- */
.eyebrow{
  font-family:"JetBrains Mono",monospace;
  font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;
  color:var(--sinal);margin:0 0 1rem;
}
.t-xl{font-size:clamp(2.1rem,5.5vw,3.75rem);font-weight:800;font-stretch:118%;letter-spacing:-.03em;line-height:1.02;margin:0 0 .85rem}
.t-lg{font-size:clamp(1.6rem,3.4vw,2.4rem);font-weight:700;font-stretch:114%;letter-spacing:-.025em;line-height:1.1;margin:0 0 1rem}
.t-md{font-size:1.25rem;font-weight:700;font-stretch:110%;letter-spacing:-.015em;margin:0 0 .5rem}
.lead{font-size:1.0625rem;color:rgba(250,250,248,.62);max-width:52ch;margin:0 0 2.5rem}
.nota{font-size:.875rem;color:rgba(250,250,248,.45)}

.aviso{padding:.9rem 1.1rem;border-radius:4px;font-size:.9375rem;margin:0 0 1.5rem;border:1px solid transparent}
.aviso--ok{background:rgba(120,175,240,.12);border-color:rgba(120,175,240,.4);color:var(--planta)}
.aviso--erro{background:rgba(224,80,60,.12);border-color:rgba(224,80,60,.5);color:#e0503c}

/* ---------- cabeçalho ---------- */
.topo{
  position:sticky;top:0;z-index:50;
  background:rgba(16,21,28,.88);
  backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(232,233,228,.12);
}
.topo__int{max-width:var(--max);margin:0 auto;padding:.9rem 1.5rem;
  display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.marca{font-weight:800;font-stretch:118%;letter-spacing:-.02em;font-size:1.0625rem;text-decoration:none}
.marca span{color:var(--sinal)}
.nav{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}
.nav a{
  font-family:"JetBrains Mono",monospace;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  text-decoration:none;color:rgba(250,250,248,.7);padding:.25rem 0;
  border-bottom:1px solid transparent;
}
.nav a:hover,.nav a[aria-current="page"]{color:var(--branco);border-bottom-color:var(--sinal)}

/* ---------- botões ---------- */
.btn{
  display:inline-flex;align-items:center;gap:.6rem;
  font-family:"JetBrains Mono",monospace;
  font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  text-decoration:none;padding:.85rem 1.4rem;border:1px solid var(--sinal);
  color:var(--sinal);background:transparent;cursor:pointer;
  transition:background .2s,color .2s;
}
.btn:hover{background:var(--sinal);color:var(--grafite)}
.btn--cheio{background:var(--sinal);color:var(--grafite)}
.btn--cheio:hover{background:transparent;color:var(--sinal)}

/* ---------- secções ---------- */
.faixa{padding:5rem 0}
.faixa--fina{padding:3.5rem 0}
.faixa--alt{background:rgba(28,36,46,.55)}
.divisor{border:0;border-top:1px solid rgba(232,233,228,.12);margin:0}

/* =========================================================
   SELETOR DE VERTENTES (home)
   ========================================================= */
.seletor{padding:5rem 0 6rem}
.regua{
  height:13px;margin-bottom:14px;
  border-top:1px solid rgba(232,233,228,.22);
  background-image:repeating-linear-gradient(to right,rgba(232,233,228,.22) 0 1px,transparent 1px 28px);
  background-size:100% 7px;background-repeat:no-repeat;
}
.paineis{display:flex;gap:10px}
.painel{
  position:relative;overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;
  min-width:0;min-height:440px;padding:1.75rem;
  text-decoration:none;color:var(--branco);
  background-color:var(--grafite-claro);
  background-image:
    repeating-linear-gradient(0deg,var(--linha) 0 1px,transparent 1px 27px),
    repeating-linear-gradient(90deg,var(--linha) 0 1px,transparent 1px 27px),
    var(--foto);
  background-size:cover;background-position:center;
  border-top:3px solid var(--cor);
}
.painel::before{
  content:"";position:absolute;inset:0;
  background:linear-gradient(to top,rgba(16,21,28,.94) 0%,rgba(16,21,28,.72) 45%,rgba(16,21,28,.5) 100%);
  transition:background .45s ease;
}
.painel>*{position:relative;z-index:1}
.painel__etiqueta{
  font-family:"JetBrains Mono",monospace;
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:var(--cor);margin-bottom:auto;
}
.painel__titulo{font-size:1.375rem;font-weight:700;font-stretch:112%;letter-spacing:-.02em;line-height:1.15;margin:0 0 .5rem}
.painel__texto{font-size:.9375rem;line-height:1.55;color:rgba(250,250,248,.74);margin:0 0 1.1rem;max-width:34ch}
.painel__cta{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:"JetBrains Mono",monospace;
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  padding-bottom:3px;border-bottom:1px solid var(--cor);
  align-self:flex-start;white-space:nowrap;
}
.painel:focus-visible{outline:3px solid var(--branco);outline-offset:3px}

/* Fotos de stock gratuitas (licença Unsplash, uso comercial livre, sem atribuição
   obrigatória). Trocar por fotos reais dos trabalhos quando houver — ver LEIA-ME.md. */
.painel--madeira{--cor:var(--carvalho);--linha:rgba(200,155,90,.26);
  --foto:url('https://images.unsplash.com/photo-1601058268499-e52658b8bb88?auto=format&fit=crop&w=1600&q=70')}
.painel--energia{--cor:var(--sinal);--linha:rgba(242,183,5,.20);
  --foto:url('https://images.unsplash.com/photo-1758101755915-462eddc23f57?auto=format&fit=crop&w=1600&q=70')}
.painel--imagem{--cor:var(--planta);--linha:rgba(120,175,240,.28);
  --foto:url('https://images.unsplash.com/photo-1762525984874-83d6ddf6a069?auto=format&fit=crop&w=1600&q=70')}

@media (min-width:640px) and (hover:hover){
  .painel{flex:1;transition:flex .5s cubic-bezier(.22,.61,.36,1)}
  .painel__texto,.painel__cta{opacity:0;transition:opacity .3s ease .16s}
  .paineis:hover .painel,.paineis:focus-within .painel{flex:.7}
  .paineis .painel:hover,.paineis .painel:focus-within{flex:2.6}
  .painel:hover::before,.painel:focus-within::before{
    background:linear-gradient(to top,rgba(16,21,28,.9) 0%,rgba(16,21,28,.55) 50%,rgba(16,21,28,.28) 100%)}
  .painel:hover .painel__texto,.painel:hover .painel__cta,
  .painel:focus-within .painel__texto,.painel:focus-within .painel__cta{opacity:1}
}
@media (min-width:640px) and (max-width:1023px){
  .painel{min-height:360px;padding:1.25rem}
  .painel__titulo{font-size:1.125rem}
  .painel__texto{font-size:.875rem}
}
@media (max-width:639px),(hover:none){
  .paineis{flex-direction:column;gap:12px}
  .painel{min-height:230px;padding:1.5rem}
  .regua{display:none}
}

/* =========================================================
   COMPONENTES DE PÁGINA
   ========================================================= */

/* capa das páginas interiores */
.capa{
  position:relative;overflow:hidden;padding:4.5rem 0 3.5rem;
  border-top:3px solid var(--cor,var(--sinal));
  border-bottom:1px solid rgba(232,233,228,.12);
}
.capa>.envolve,.seletor>.envolve{position:relative;z-index:1}
.seletor{position:relative;overflow:hidden}
.fx-rede{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.6}
@media (prefers-reduced-motion:reduce){.fx-rede{opacity:.35}}
.migalhas{
  font-family:"JetBrains Mono",monospace;
  font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(250,250,248,.45);margin:0 0 1.25rem;
}
.migalhas a{text-decoration:none}
.migalhas a:hover{color:var(--branco)}

/* grelha genérica */
.grelha{display:grid;gap:1.25rem}
.grelha--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.grelha--3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}

.cartao{
  background:rgba(28,36,46,.6);
  border:1px solid rgba(232,233,228,.12);
  border-top:2px solid var(--cor,var(--sinal));
  padding:1.5rem;
}
.cartao p{margin:0;color:rgba(250,250,248,.68);font-size:.9375rem}

/* passos numerados */
.passos{list-style:none;margin:0;padding:0;counter-reset:p;display:grid;gap:1.5rem}
.passos li{counter-increment:p;padding-left:3.5rem;position:relative}
.passos li::before{
  content:counter(p,decimal-leading-zero);
  position:absolute;left:0;top:.1rem;
  font-family:"JetBrains Mono",monospace;font-size:.85rem;
  color:var(--sinal);border:1px solid rgba(242,183,5,.4);
  width:2.25rem;height:2.25rem;display:grid;place-items:center;
}
.passos strong{display:block;font-weight:700;font-stretch:110%;margin-bottom:.2rem}
.passos span{color:rgba(250,250,248,.62);font-size:.9375rem}

/* lista de serviços */
.lista{list-style:none;margin:0;padding:0;display:grid;gap:.7rem}
.lista li{padding-left:1.5rem;position:relative;color:rgba(250,250,248,.75)}
.lista li::before{content:"";position:absolute;left:0;top:.7rem;width:8px;height:1px;background:var(--cor,var(--sinal))}

/* portfólio */
.obras{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px}
.obra{
  position:relative;aspect-ratio:4/3;overflow:hidden;
  background-color:var(--grafite-claro);
  background-image:
    repeating-linear-gradient(0deg,rgba(232,233,228,.14) 0 1px,transparent 1px 27px),
    repeating-linear-gradient(90deg,rgba(232,233,228,.14) 0 1px,transparent 1px 27px);
  border:1px solid rgba(232,233,228,.12);
  display:flex;align-items:flex-end;padding:1rem;
}
.obra span{
  font-family:"JetBrains Mono",monospace;font-size:.7rem;
  letter-spacing:.12em;text-transform:uppercase;color:rgba(250,250,248,.5);
}

/* perguntas */
.faq{border-top:1px solid rgba(232,233,228,.12)}
.faq details{border-bottom:1px solid rgba(232,233,228,.12)}
.faq summary{
  cursor:pointer;padding:1.15rem 0;font-weight:700;font-stretch:108%;
  list-style:none;display:flex;justify-content:space-between;gap:1rem;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--sinal);font-family:"JetBrains Mono",monospace}
.faq details[open] summary::after{content:"–"}
.faq p{margin:0 0 1.15rem;color:rgba(250,250,248,.68);max-width:70ch}

/* chamada final */
.cta{
  border:1px solid rgba(242,183,5,.35);
  padding:3rem 2rem;text-align:center;
  background:rgba(28,36,46,.5);
}
.cta .t-lg{margin-bottom:.6rem}
.cta p{color:rgba(250,250,248,.62);margin:0 0 1.75rem}

/* formulário */
.form{display:grid;gap:1.1rem;max-width:640px}
.campo{display:grid;gap:.4rem}
.campo label{
  font-family:"JetBrains Mono",monospace;font-size:.7rem;
  letter-spacing:.14em;text-transform:uppercase;color:rgba(250,250,248,.6);
}
.campo input,.campo select,.campo textarea{
  font-family:inherit;font-size:1rem;color:var(--branco);
  background:rgba(28,36,46,.7);border:1px solid rgba(232,233,228,.18);
  padding:.8rem .9rem;
}
.campo input:focus,.campo select:focus,.campo textarea:focus{
  outline:2px solid var(--sinal);outline-offset:1px;border-color:transparent}
.campo textarea{min-height:150px;resize:vertical}
.consent{display:flex;gap:.7rem;align-items:flex-start;font-size:.875rem;color:rgba(250,250,248,.62)}
.consent input{margin-top:.25rem}
.mel{position:absolute;left:-9999px}

/* dados de contacto */
.dados{list-style:none;margin:0;padding:0;display:grid;gap:1.25rem}
.dados dt{font-family:"JetBrains Mono",monospace;font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(250,250,248,.45);margin-bottom:.25rem}
.dados dd{margin:0;font-size:1.0625rem}
.dados a{text-decoration:none;border-bottom:1px solid var(--sinal)}

/* rodapé */
.rodape{border-top:1px solid rgba(232,233,228,.12);padding:3.5rem 0 2.5rem;margin-top:2rem}
.rodape__grelha{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:2.5rem;margin-bottom:2.5rem}
.rodape h3{font-family:"JetBrains Mono",monospace;font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(250,250,248,.45);margin:0 0 1rem;font-weight:500}
.rodape ul{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.rodape a{text-decoration:none;color:rgba(250,250,248,.75);font-size:.9375rem}
.rodape a:hover{color:var(--branco)}
.legal{border-top:1px solid rgba(232,233,228,.12);padding-top:1.75rem;
  font-size:.8125rem;color:rgba(250,250,248,.4);display:grid;gap:.5rem}
.legal a{color:rgba(250,250,248,.55)}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important}
  body::before{animation:none}
}

/* =========================================================
   BOTÃO FLUTUANTE DE WHATSAPP
   Presente em todas as páginas, canto inferior direito.
   Para remover: apague este bloco e a <a class="zap"> de cada HTML.
   ========================================================= */
.zap{
  position:fixed;right:1.25rem;bottom:1.25rem;z-index:60;
  display:flex;align-items:center;gap:.6rem;
  padding:.8rem 1.1rem;
  background:#1FA855;color:#fff;text-decoration:none;
  border-radius:999px;
  box-shadow:0 6px 20px rgba(0,0,0,.4);
  font-family:"JetBrains Mono",monospace;
  font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;
  transition:transform .2s,background .2s;
}
.zap:hover,.zap:focus-visible{background:#178F47;transform:translateY(-2px)}
.zap svg{width:20px;height:20px;fill:currentColor;flex:none}
@media (max-width:639px){
  .zap{right:1rem;bottom:1rem;padding:.85rem;border-radius:50%}
  .zap span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
}
