/* Archivo (SIL Open Font License), alojada neste servidor: nenhum pedido a terceiros. */
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;
  src:url(fontes/archivo-latin-ext.woff2) format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Archivo";font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;
  src:url(fontes/archivo-latin.woff2) format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Materiais: aço de quadro elétrico, alumínio do contador, corrente vermelha. */
:root{
  --aco-950:#131A21;
  --aco-900:#19212A;
  --aco-850:#1F2832;
  --aco-800:#26303B;
  --aco-700:#323E4A;
  --aco-600:#47545F;
  --aco-400:#7F8C99;
  --aco-300:#A7B3BE;
  --aco-100:#E7EBEE;
  --cal:#FFFFFF;
  --nevoa:#F2F4F6;
  --tinta:#19212A;
  --tinta-2:#55606B;
  --traco:#DCE1E6;
  --chapa:#E7E9EB;
  --chapa-escura:#C9CDD1;
  --vermelho:#EC3013;
  --vermelho-escuro:#C2260E;
  --vermelho-acao:#D42A11;
  --corrente:#FF5A36;
  --rio:#4C86A8;
  --largura:76rem;
  --margem:clamp(1.25rem,4vw,2.5rem);
  --topo-h:4.5rem;
  --grelha:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/40px 40px,
           linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/40px 40px;
  --grao:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .07 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E");
  font-family:"Archivo",system-ui,sans-serif;
  font-variation-settings:"wdth" 100;
  color:var(--tinta);
  background:var(--cal);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--topo-h) + 1rem);-webkit-text-size-adjust:100%}
body{margin:0;font-size:1.125rem;line-height:1.55;background:var(--cal)}
img,svg{display:block;max-width:100%}
a{color:inherit}
:focus-visible{outline:3px solid var(--vermelho);outline-offset:3px;border-radius:2px}
.contentor{max-width:var(--largura);margin:0 auto;padding:0 var(--margem)}
.sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.salto{position:absolute;left:-999px;top:0;background:var(--tinta);color:#fff;padding:.75rem 1rem;z-index:50}
.salto:focus{left:1rem;top:1rem}

/* Tipografia: a mesma família, larga nas afirmações e estreita nas anotações técnicas. */
h1,h2,h3{margin:0;font-weight:800;line-height:1.02;letter-spacing:-.015em;text-wrap:balance}
h1{font-size:clamp(2.6rem,5.6vw,4.5rem);font-variation-settings:"wdth" 125;font-weight:850;line-height:.98;letter-spacing:-.025em}
h2{font-size:clamp(2.1rem,4vw,3.25rem);font-variation-settings:"wdth" 120}
h3{font-size:1.375rem;font-variation-settings:"wdth" 110;font-weight:750;line-height:1.2}
p{margin:0}
.lead{font-size:clamp(1.1875rem,1.7vw,1.375rem);max-width:34ch;line-height:1.5}
.secundario{color:var(--tinta-2)}

/* Botões */
.botao{display:inline-flex;align-items:center;justify-content:center;min-height:3.25rem;padding:.8rem 1.5rem;
  background:var(--vermelho-acao);color:#fff;font-weight:700;font-size:1.1875rem;text-decoration:none;border-radius:3px;
  font-variation-settings:"wdth" 110;transition:background-color .15s,transform .15s}
.botao:hover{background:#B5230D}
.botao:active{transform:translateY(1px)}
.ligacao{font-weight:650;text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.3em;text-decoration-color:currentColor}
.ligacao:hover{text-decoration-color:var(--vermelho)}

/* Cabeçalho: acompanha o fundo da secção que está por baixo (claro por omissão) */
.topo{position:fixed;inset:0 0 auto;z-index:30;height:var(--topo-h);display:flex;align-items:center;color:var(--tinta);
  background:rgba(255,255,255,.92);box-shadow:0 1px 0 rgba(25,33,42,.1);
  -webkit-backdrop-filter:saturate(1.4) blur(12px);backdrop-filter:saturate(1.4) blur(12px);
  transition:background-color .35s ease,box-shadow .35s ease,color .35s ease}
.topo .contentor{width:100%;display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.marca-topo{position:relative;display:block}
.marca-topo img{height:1.5rem;width:auto;transition:opacity .35s ease}
.marca-topo .logo-claro{position:absolute;left:0;top:0;opacity:0}
.topo nav{display:flex;align-items:center;gap:1.75rem;font-weight:600;font-size:1rem}
.topo nav a{text-decoration:none;transition:color .2s}
.topo nav a:not(.botao):hover{color:var(--vermelho-escuro)}
.topo .botao{min-height:2.75rem;font-size:1rem;padding:.6rem 1.1rem;white-space:nowrap}
/* Sobre o painel, o mapa e o recrutamento */
.js .topo.escuro{color:var(--aco-100);background:rgba(25,33,42,.84);box-shadow:0 1px 0 rgba(255,255,255,.08);
  -webkit-backdrop-filter:saturate(1.2) blur(12px);backdrop-filter:saturate(1.2) blur(12px)}
.js .topo.escuro .logo-claro{opacity:1}
.js .topo.escuro .logo-escuro{opacity:0}
.js .topo.escuro nav a:not(.botao):hover{color:#fff;text-decoration:underline;text-underline-offset:.35em}
/* No topo da página, sobre o painel: sem fundo */
.js .topo.escuro.transparente{background:rgba(25,33,42,0);box-shadow:0 1px 0 rgba(255,255,255,0);-webkit-backdrop-filter:none;backdrop-filter:none}
@media (max-width:720px){.topo nav a:not(.botao){display:none}}
@media (max-width:420px){.marca-topo img{height:1.25rem}.topo .botao{font-size:.9375rem;padding:.55rem .9rem}}

/* Painel principal: aço com esquema unifilar */
.hero{position:relative;isolation:isolate;overflow:hidden;color:var(--aco-100);
  background:radial-gradient(70rem 40rem at 72% 45%,#24303B 0%,transparent 70%),var(--aco-900);
  padding:calc(var(--topo-h) + clamp(2.5rem,7vw,5.5rem)) 0 clamp(4rem,9vw,7rem);min-height:min(54rem,100svh);display:flex;align-items:center}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--grao);pointer-events:none}
.hero .contentor{width:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,5rem);align-items:center}
.hero h1{margin-bottom:1.75rem;color:#fff}
.hero .lead{color:var(--aco-300);margin-bottom:2.5rem}
.acoes{display:flex;flex-wrap:wrap;align-items:center;gap:1.25rem 1.75rem}
.hero .ligacao{color:#fff}
@media (max-width:900px){.hero .contentor{grid-template-columns:1fr}.hero{min-height:0}}

.esquema{position:absolute;inset:0;width:100%;height:100%;z-index:-2;max-width:none;
  -webkit-mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 35%,#000 60%);mask-image:linear-gradient(90deg,rgba(0,0,0,.35) 0%,rgba(0,0,0,.55) 35%,#000 60%)}
.esquema .fio{fill:none;stroke:#3A4652;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.esquema .barramento{stroke:#56636F;stroke-width:3.5}
.esquema .simbolo{fill:var(--aco-900);stroke:#56636F;stroke-width:1.5}
.esquema text{font-family:"Archivo",sans-serif;font-variation-settings:"wdth" 72;font-weight:550;font-size:14px;letter-spacing:.03em;fill:var(--aco-400)}
.pulso{fill:none;stroke:var(--corrente);stroke-width:3;stroke-linecap:round;stroke-dasharray:.035 2;stroke-dashoffset:.035;opacity:0;
  filter:drop-shadow(0 0 6px rgba(255,90,54,.9))}
.hero.ligado .pulso.principal{animation:corrente 1.9s cubic-bezier(.5,.05,.4,1) .25s 1 both}
.hero.ligado .pulso.r1{animation:ambiente 9s ease-in-out 2.6s 4}
.hero.ligado .pulso.r2{animation:ambiente 9s ease-in-out 5.2s 4}
.hero.ligado .pulso.r3{animation:ambiente 9s ease-in-out 7.4s 4}
@keyframes corrente{0%{stroke-dashoffset:.035;opacity:1}92%{opacity:1}100%{stroke-dashoffset:-1;opacity:0}}
@keyframes ambiente{0%{stroke-dashoffset:.035;opacity:.75}22%{opacity:.75}26%{stroke-dashoffset:-1;opacity:0}100%{stroke-dashoffset:-1;opacity:0}}
@media (max-width:900px){.esquema .so-largo{display:none}.esquema{-webkit-mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.25) 70%);mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.25) 70%)}}

/* O contador */
.contador{justify-self:center;width:min(100%,27rem);position:relative;
  background:radial-gradient(120% 90% at 30% 15%,#FBFBFC 0%,var(--chapa) 55%,#D2D6DA 100%);
  border-radius:2rem;padding:2.25rem 1.6rem 1.5rem;color:var(--tinta);
  box-shadow:inset 0 0 0 1px #fff,inset 0 -6px 14px rgba(25,33,42,.1),0 2px 0 #9AA3AB,0 40px 70px -30px rgba(0,0,0,.75),0 0 0 1px rgba(0,0,0,.25);
  display:flex;flex-direction:column;gap:1rem}
.contador::before,.contador::after{content:"";position:absolute;width:.85rem;height:.85rem;border-radius:50%;top:.9rem;
  background:radial-gradient(circle at 35% 35%,#fff,#AEB3B8 70%);box-shadow:inset 0 0 0 1px rgba(25,33,42,.18)}
.contador::before{left:.9rem}.contador::after{right:.9rem}
.marca-chapa{display:flex;justify-content:space-between;align-items:baseline;padding:0 .35rem;font-size:.8125rem;color:var(--tinta-2);font-variation-settings:"wdth" 90}
.marca-chapa strong{color:var(--tinta);font-size:.9375rem;font-variation-settings:"wdth" 112;letter-spacing:.01em}
.janela{--h:clamp(3.4rem,13vw,4.4rem);background:#14181B;border-radius:.6rem;padding:.5rem;display:flex;gap:.45rem;
  box-shadow:inset 0 2px 6px rgba(0,0,0,.6),0 0 0 4px #F7F8F9,0 0 0 5px var(--chapa-escura);position:relative}
.janela::after{content:"";position:absolute;inset:.5rem;border-radius:.3rem;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,0) 38%,rgba(0,0,0,0) 62%,rgba(0,0,0,.3))}
.hero.ligado .janela{animation:acende 1.1s ease-out 1.95s 1}
@keyframes acende{0%{box-shadow:inset 0 2px 6px rgba(0,0,0,.6),0 0 0 4px #F7F8F9,0 0 0 5px var(--chapa-escura),0 0 0 0 rgba(255,90,54,0)}
  30%{box-shadow:inset 0 2px 6px rgba(0,0,0,.6),0 0 0 4px #F7F8F9,0 0 0 5px var(--corrente),0 0 26px 6px rgba(255,90,54,.55)}
  100%{box-shadow:inset 0 2px 6px rgba(0,0,0,.6),0 0 0 4px #F7F8F9,0 0 0 5px var(--chapa-escura),0 0 0 0 rgba(255,90,54,0)}}
.rolos{display:flex;gap:.25rem;flex:4}
.rolos.anos{flex:2}
.rolo{flex:1;min-width:0;height:var(--h);overflow:hidden;border-radius:.2rem;background:#fff;
  font-size:calc(var(--h) * .74);font-weight:700;font-variation-settings:"wdth" 80;font-variant-numeric:tabular-nums;color:var(--tinta)}
.anos .rolo{background:var(--vermelho);color:#fff}
.rolo span{display:flex;flex-direction:column;align-items:center;transform:translateY(calc(var(--d) * -1 * var(--h)));
  transition:transform 1.7s cubic-bezier(.2,.75,.15,1);transition-delay:calc(1.9s + var(--i) * 130ms)}
.rolo span b{height:var(--h);line-height:var(--h);font-weight:inherit}
.js .hero:not(.ligado) .rolo span{transform:translateY(0);transition:none}
.legenda-janela{display:flex;padding:0 .5rem;font-size:.8125rem;color:var(--tinta-2);margin-top:-.25rem}
.legenda-janela span:first-child{flex:4}.legenda-janela span:last-child{flex:2;color:var(--vermelho-escuro);font-weight:650;padding-left:.45rem}
.chapa-baixo{display:grid;grid-template-columns:auto 1fr 1fr;gap:1rem;align-items:center;padding:1rem .35rem 0;border-top:1px solid var(--chapa-escura);
  font-size:.8125rem;color:var(--tinta-2);font-variation-settings:"wdth" 90}
.estrela{width:2.5rem;height:2.5rem;color:var(--vermelho);border-radius:50%;background:#F7F8F9;box-shadow:inset 0 1px 3px rgba(25,33,42,.25);padding:.2rem}
.estrela svg{transition:transform 2.4s cubic-bezier(.2,.75,.15,1) 1.85s}
.js .hero:not(.ligado) .estrela svg{transform:rotate(-720deg);transition:none}
.chapa-baixo dl{margin:0}.chapa-baixo dt{font-size:.75rem}
.chapa-baixo dd{margin:0;color:var(--tinta);font-weight:600;font-variant-numeric:tabular-nums}

/* Secções */
.seccao{padding:clamp(4.5rem,10vw,8rem) 0}
.cabeca{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1.25rem 4rem;align-items:end;margin-bottom:clamp(2.5rem,5vw,4rem)}
.cabeca p{max-width:44ch}
@media (max-width:860px){.cabeca{grid-template-columns:1fr}}

/* Serviços: a fotografia do terreno abre a secção; a ficha dos serviços assenta na sua base */
.servicos{background:var(--nevoa);padding-bottom:clamp(4.5rem,10vw,8rem)}
.faixa-foto{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--aco-900);height:clamp(28rem,46vw,44rem)}
.faixa-foto picture{position:absolute;inset:0;z-index:-2}
.faixa-foto img{width:100%;height:100%;max-width:none;object-fit:cover;object-position:62% 45%}
/* Funde o aço do painel no céu e dá contraste ao título sem escurecer o técnico */
.faixa-foto::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,var(--aco-900) 0%,rgba(25,33,42,.55) 12%,rgba(25,33,42,0) 32%),
             linear-gradient(90deg,rgba(19,26,33,.86) 0%,rgba(19,26,33,.5) 30%,rgba(19,26,33,0) 56%)}
.faixa-foto .contentor{padding-top:clamp(5rem,10vw,8.5rem)}
.faixa-foto h2{color:#fff;margin-bottom:1.1rem;max-width:11ch}
.faixa-foto p{color:var(--aco-100);max-width:28ch;font-size:1.1875rem;line-height:1.5}
/* Ficha: um único painel, os cinco serviços em colunas */
.lista-servicos{list-style:none;margin:calc(-1 * clamp(3.5rem,6vw,5.5rem)) 0 0;padding:0;position:relative;z-index:1;
  display:grid;grid-template-columns:repeat(5,minmax(0,1fr));background:var(--cal);border-radius:8px;overflow:hidden;
  border-top:4px solid var(--vermelho);box-shadow:0 34px 60px -34px rgba(19,26,33,.55),0 0 0 1px rgba(19,26,33,.06)}
.lista-servicos li{display:flex;flex-direction:column;gap:.8rem;padding:1.75rem 1.5rem 2rem;border-left:1px solid var(--traco)}
.lista-servicos li:first-child{border-left:0}
.lista-servicos .icone{width:3.25rem;height:3.25rem;flex:none;display:grid;place-items:center;border:1.5px solid var(--tinta);border-radius:6px;background:var(--cal);margin-bottom:.35rem}
.lista-servicos svg{width:1.9rem;height:1.9rem;color:var(--tinta)}
.lista-servicos h3{font-size:1.1875rem;line-height:1.2}
.lista-servicos p{color:var(--tinta-2);font-size:1rem;line-height:1.5}
@media (max-width:1100px){
  .lista-servicos{grid-template-columns:repeat(3,minmax(0,1fr))}
  .lista-servicos li:nth-child(n+4){border-top:1px solid var(--traco)}
  .lista-servicos li:nth-child(4){border-left:0}
  .lista-servicos li:nth-child(5){grid-column:span 2}
}
@media (max-width:700px){
  .faixa-foto{height:min(72svh,30rem);display:flex;align-items:flex-end}
  .faixa-foto img{object-position:50% 50%}
  .faixa-foto::before{background:linear-gradient(180deg,var(--aco-900) 0%,rgba(25,33,42,0) 26%,rgba(19,26,33,0) 42%,rgba(19,26,33,.9) 100%)}
  .faixa-foto .contentor{width:100%;padding-top:0;padding-bottom:4.25rem}
  .lista-servicos{grid-template-columns:1fr;margin-top:-2.5rem}
  .lista-servicos li:nth-child(5){grid-column:auto}
  .lista-servicos li{display:grid;grid-template-columns:3.25rem minmax(0,1fr);gap:.35rem 1.25rem;padding:1.4rem 1.25rem;border-left:0}
  .lista-servicos li+li{border-top:1px solid var(--traco)}
  .lista-servicos .icone{grid-row:span 2;margin:0}
}
/* Aproximação lenta da fotografia enquanto a secção atravessa o ecrã */
@supports (animation-timeline: view()){
  .faixa-foto img{animation:aproxima linear both;animation-timeline:view();animation-range:entry 0% exit 40%}
  @keyframes aproxima{from{transform:scale(1.12)}to{transform:scale(1)}}
}

/* Processo: a linha energiza da ordem ao relatório */
.passos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;counter-reset:passo;position:relative}
.passos::before,.passos::after{content:"";position:absolute;left:1.5rem;right:calc(25% - 1.5rem);top:1.5rem;height:0;border-top:2px dashed #C3CAD1}
.passos::after{border-top:3px solid var(--vermelho);transform-origin:left;transition:transform 1.8s cubic-bezier(.45,.05,.3,1) .2s}
.js .passos:not(.visivel)::after{transform:scaleX(0)}
.passos li{counter-increment:passo;position:relative;--atraso:calc(var(--n) * .55s + .2s)}
.passos li::before{content:counter(passo);display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;margin-bottom:1.5rem;position:relative;z-index:1;
  background:var(--cal);border:2px solid var(--vermelho);color:var(--vermelho-escuro);font-weight:800;font-size:1.125rem;font-variation-settings:"wdth" 112;
  transition:border-color .4s,color .4s,background-color .4s,box-shadow .4s;transition-delay:var(--atraso)}
.passos li:last-child::before{background:var(--vermelho-acao);color:#fff;box-shadow:0 0 0 6px rgba(236,48,19,.15)}
.js .passos:not(.visivel) li::before{border-color:#C3CAD1;color:var(--tinta-2);background:var(--cal);box-shadow:none}
.passos h3{margin-bottom:.5rem}
.passos p{color:var(--tinta-2);font-size:1.0625rem;max-width:30ch}
@media (max-width:860px){
  .passos{grid-template-columns:1fr;gap:2rem}
  .passos::before,.passos::after{left:1.5rem;right:auto;top:1.5rem;bottom:2.5rem;height:auto;border-top:0;border-left:2px dashed #C3CAD1}
  .passos::after{border-left:3px solid var(--vermelho);transform-origin:top}
  .js .passos:not(.visivel)::after{transform:scaleY(0)}
  .passos li{padding-left:4.5rem;min-height:3rem}.passos li::before{position:absolute;left:0;top:-.4rem;margin:0}
}

/* Onde trabalhamos: painel de aço com o mapa */
.zona{background:var(--grelha),var(--aco-900);color:var(--aco-100);position:relative;isolation:isolate}
.zona::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--grao);pointer-events:none}
.zona .contentor{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:3rem clamp(3rem,6vw,6rem);align-items:center}
.zona h2{color:#fff;margin-bottom:1.25rem}
.zona .texto p{color:var(--aco-300);max-width:36ch}
.concelhos{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:.25rem 1rem}
.concelhos button{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:.7rem;width:100%;padding:.55rem .6rem;margin-left:-.6rem;border-radius:4px;cursor:pointer;
  font-weight:600;color:var(--aco-100);transition:background-color .15s}
.concelhos button::before{content:"";width:.75rem;height:.75rem;border-radius:50%;border:2px solid var(--aco-100);flex:none}
.concelhos .base button::before{background:var(--vermelho);border-color:var(--vermelho)}
.concelhos button:hover,.concelhos button:focus-visible,.concelhos button.ativo{background:rgba(255,255,255,.07)}
.concelhos button:focus-visible{outline:3px solid var(--vermelho);outline-offset:0}
.concelhos button[aria-pressed="true"]{background:rgba(255,255,255,.12);box-shadow:inset 3px 0 0 var(--vermelho)}
.mapa-svg path[data-concelho]{cursor:pointer}
.mapa{margin:0;border:1px solid var(--aco-700);border-radius:10px;background:var(--aco-950);overflow:hidden;box-shadow:0 30px 60px -35px rgba(0,0,0,.8)}
.mapa-svg{width:100%;height:auto}
.mapa figcaption{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1.5rem;padding:.85rem 1.1rem;border-top:1px solid var(--aco-800);
  font-size:.8125rem;color:var(--aco-400);font-variation-settings:"wdth" 85}
.mapa figcaption a{color:var(--aco-300)}
.legenda{display:flex;flex-wrap:wrap;gap:.4rem 1.1rem;list-style:none;margin:0;padding:0}
.legenda li{display:flex;align-items:center;gap:.45rem}
.legenda i{display:inline-block;width:1.1rem;height:.7rem;border-radius:2px}
.legenda .l-base{background:rgba(236,48,19,.35);border:1.5px solid var(--vermelho)}
.legenda .l-vizinho{background:#2A3540;border:1.5px solid #6A7784}
.legenda .l-rio{height:0;border-top:2px solid var(--rio);border-radius:0}
.legenda .l-estrada{height:0;border-top:2px solid #8C99A5;border-radius:0}
.legenda .l-fronteira{height:0;border-top:1.5px dashed #9AA7B3;border-radius:0}
@media (max-width:900px){.zona .contentor{grid-template-columns:1fr}}

.mapa-svg .contexto{fill:#1B232B;stroke:#2B3540;stroke-width:1}
.mapa-svg .vizinho{fill:#26303B;stroke:#6A7784;stroke-width:1.3;transition:fill .2s,stroke .2s}
.mapa-svg .base{fill:rgba(236,48,19,.2);stroke:var(--vermelho);stroke-width:2;transition:fill .2s}
.mapa-svg .vizinho.ativo{fill:#34424F;stroke:#C9D2DA}
.mapa-svg .base.ativo{fill:rgba(236,48,19,.36)}
.mapa-svg .rio{fill:none;stroke:var(--rio);stroke-linecap:round;stroke-linejoin:round}
.mapa-svg .rio.menor{stroke-width:.9;opacity:.65}
.mapa-svg .rio.maior{stroke-width:2.2}
.mapa-svg .fronteira{fill:none;stroke:#9AA7B3;stroke-width:1.2;stroke-dasharray:5 4;opacity:.8}
.mapa-svg .estrada{fill:none;stroke-linecap:round;stroke-linejoin:round}
.mapa-svg .estrada.secundaria{stroke:#3B4753;stroke-width:.8}
.mapa-svg .estrada.principal{stroke:#5E6B78;stroke-width:1.15}
.mapa-svg .estrada.autoestrada{stroke:#8C99A5;stroke-width:2}
.mapa-svg text{font-family:"Archivo",sans-serif;font-variation-settings:"wdth" 88;font-weight:650;font-size:14px;fill:var(--aco-100);
  paint-order:stroke;stroke:var(--aco-950);stroke-width:4px;stroke-linejoin:round}
.mapa-svg .localidade .ponto{fill:var(--aco-100);stroke:var(--aco-950);stroke-width:2}
.mapa-svg .localidade.base .ponto{fill:var(--vermelho)}
.mapa-svg .localidade.base text{font-size:17px;font-weight:800;font-variation-settings:"wdth" 105}
.mapa-svg .localidade.referencia .ponto{fill:var(--aco-400)}
.mapa-svg .localidade.referencia text{fill:var(--aco-400);font-weight:550}
.mapa-svg .localidade .onda{fill:none;stroke:var(--vermelho);stroke-width:2;opacity:0}
.mapa-svg .localidade.ativo .ponto{stroke:#fff}
.mapa-svg .escala path,.mapa-svg .norte path{stroke:var(--aco-300);stroke-width:2;fill:none}
.mapa-svg .norte path{fill:var(--aco-300);stroke:none}
.mapa-svg .escala text,.mapa-svg .norte text{font-size:12px;fill:var(--aco-300);font-weight:600}
/* Revelação do mapa: limites desenham-se, depois acendem as sedes de concelho */
.js .mapa:not(.visivel) .vizinho,.js .mapa:not(.visivel) .base{stroke-dasharray:1;stroke-dashoffset:1;fill-opacity:0}
.mapa.visivel .vizinho,.mapa.visivel .base{stroke-dasharray:1;animation:limite 1.4s cubic-bezier(.4,0,.2,1) both,preenche .8s ease 1s both}
.mapa.visivel .base{animation-delay:.5s,1.4s}
@keyframes limite{from{stroke-dasharray:1;stroke-dashoffset:1}to{stroke-dasharray:1;stroke-dashoffset:0}}
@keyframes preenche{from{fill-opacity:0}to{fill-opacity:1}}
.js .mapa:not(.visivel) .localidade,.js .mapa:not(.visivel) .estrada,.js .mapa:not(.visivel) .rio{opacity:0}
.mapa .localidade,.mapa .estrada,.mapa .rio{transition:opacity .7s ease .9s}
.mapa .localidade.vizinho{transition-delay:1.6s}
.mapa .localidade.base{transition-delay:2s}
.mapa.visivel .localidade.base .onda{animation:onda 1.6s ease-out 2.2s 2}
@keyframes onda{0%{opacity:.9;r:6px}100%{opacity:0;r:30px}}

/* Com quem trabalhamos */
.parceiros{padding:clamp(3.5rem,7vw,5rem) 0}
.parceiros .contentor{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:2rem clamp(3rem,6vw,6rem);align-items:center}
.parceiros h2{font-size:clamp(1.6rem,2.6vw,2rem)}
.logos{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:2rem 3.5rem}
.logos .marca{height:5.25rem;display:flex;align-items:center}
.logos img{width:auto}
.logos .artifel{height:5.25rem}
.logos .visabeira{height:2.9rem}
.logos .e-redes{height:2.4rem}
@media (max-width:860px){.parceiros .contentor{grid-template-columns:1fr}}

/* Recrutamento */
.contacto{background:var(--grelha),var(--aco-900);color:#fff;position:relative;isolation:isolate}
.contacto::after{content:"";position:absolute;inset:0;z-index:-1;background:var(--grao);pointer-events:none}
.contacto .contentor{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:2.5rem clamp(3rem,6vw,6rem);align-items:start}
.contacto .intro p{color:var(--aco-300);margin-top:1.25rem;max-width:40ch}
.requisitos{list-style:none;margin:1.75rem 0 0;padding:1.25rem 0 0;border-top:1px solid var(--aco-700);color:#fff;font-weight:600}
.requisitos li{display:flex;gap:.75rem;align-items:baseline}
.requisitos li::before{content:"";width:.6rem;height:.6rem;border-radius:50%;background:var(--vermelho);flex:none;transform:translateY(-.1em)}
.contacto .nota{font-size:1rem;color:var(--aco-400)}
.contacto .nota a{color:#fff}
.formulario{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;padding:clamp(1.25rem,3vw,2rem);background:rgba(19,26,33,.6);border:1px solid var(--aco-700);border-radius:10px}
.campo{display:flex;flex-direction:column;gap:.4rem;min-width:0}
.campo.largo{grid-column:1/-1}
.campo label{font-weight:650;font-size:1rem}
.campo .ajuda{font-size:.9375rem;color:var(--aco-400);font-weight:400}
.formulario input[type=text],.formulario input[type=tel],.formulario input[type=email],.formulario textarea{
  width:100%;font:inherit;font-size:1.0625rem;color:#fff;background:var(--aco-850);border:1.5px solid var(--aco-600);border-radius:4px;padding:.75rem .85rem;min-height:3rem;transition:border-color .15s}
.formulario textarea{min-height:7rem;resize:vertical}
.formulario input:hover,.formulario textarea:hover{border-color:var(--aco-400)}
.formulario input:focus,.formulario textarea:focus{outline:none;border-color:#fff;box-shadow:0 0 0 3px var(--vermelho)}
.formulario input[type=file]{font:inherit;font-size:1rem;color:var(--aco-300);max-width:100%}
.formulario input[type=file]::file-selector-button{font:inherit;font-weight:650;color:var(--tinta);background:#fff;border:0;border-radius:3px;padding:.6rem 1rem;margin-right:1rem;cursor:pointer}
.confirmacao{display:flex;gap:.75rem;align-items:flex-start;font-size:1rem;color:var(--aco-100);line-height:1.45;font-weight:400!important}
.confirmacao input{width:1.25rem;height:1.25rem;margin:.1rem 0 0;accent-color:var(--vermelho);flex:none}
.erro{color:#FFA390;font-size:.9375rem}
.erro:empty{display:none}
.formulario [aria-invalid=true]{border-color:#FF7A5C}
.aviso-dados{grid-column:1/-1;font-size:.9375rem;color:var(--aco-300);line-height:1.5}
.aviso-dados a{color:#fff}
.enviar{grid-column:1/-1;margin-top:.25rem}
.enviar .botao{border:0;cursor:pointer;font-family:inherit}
.enviar .botao[disabled]{opacity:.6;cursor:progress}
.estado{grid-column:1/-1;padding:1rem 1.1rem;border-radius:4px;background:var(--aco-850);border-left:4px solid var(--vermelho)}
.estado.sucesso{border-left-color:#3FB07A}
.armadilha{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
@media (max-width:860px){.contacto .contentor{grid-template-columns:1fr}}
@media (max-width:560px){.formulario{grid-template-columns:1fr}}

/* Rodapé */
.rodape{padding:3.5rem 0 2.5rem;font-size:1rem;border-top:4px solid var(--vermelho)}
.rodape .grelha{display:grid;grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr));gap:2rem 3rem}
.rodape img{height:1.375rem;width:auto;margin-bottom:1rem}
.rodape h2{font-size:1rem;font-variation-settings:"wdth" 100;font-weight:700;margin-bottom:.6rem;letter-spacing:0}
.rodape address{font-style:normal;color:var(--tinta-2)}
.rodape .secundario a{text-decoration-color:var(--traco)}
.base-rodape{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--traco);display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.9375rem;color:var(--tinta-2)}
.base-rodape a{text-decoration:none}.base-rodape a:hover{text-decoration:underline}
@media (max-width:720px){.rodape .grelha{grid-template-columns:1fr}}

/* Página de texto (política de privacidade) */
.documento{padding:calc(var(--topo-h) + clamp(2rem,5vw,4rem)) 0 clamp(4rem,8vw,6rem)}
.documento .contentor{max-width:46rem}
.documento h1{font-size:clamp(2.2rem,5vw,3.25rem);font-variation-settings:"wdth" 118;margin-bottom:1rem}
.documento .atualizado{color:var(--tinta-2);margin-bottom:2.5rem}
.documento h2{font-size:1.5rem;font-variation-settings:"wdth" 106;margin:2.75rem 0 .9rem}
.documento p,.documento li{color:var(--tinta);max-width:68ch}
.documento p+p{margin-top:.9rem}
.documento ul{padding-left:1.25rem;margin:.75rem 0 0}
.documento li+li{margin-top:.45rem}
.documento table{width:100%;border-collapse:collapse;margin-top:1rem;font-size:1rem}
.documento th,.documento td{text-align:left;vertical-align:top;padding:.75rem .75rem .75rem 0;border-bottom:1px solid var(--traco)}
.documento th{font-weight:700;border-bottom:2px solid var(--tinta)}
.documento .resumo{background:var(--nevoa);border-left:4px solid var(--vermelho);padding:1.25rem 1.4rem;border-radius:3px}
@media (max-width:620px){.documento table,.documento tbody,.documento tr,.documento td{display:block}.documento thead{display:none}
  .documento td{border:0;padding:.2rem 0}.documento tr{padding:.9rem 0;border-bottom:1px solid var(--traco)}.documento td:first-child{font-weight:700}}

/* Movimento reduzido: tudo no estado final, sem animações */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .hero:not(.ligado) .rolo span{transform:translateY(calc(var(--d) * -1 * var(--h)))}
  .js .hero:not(.ligado) .estrela svg{transform:none}
  .pulso{display:none}
}
