/* Prime Vision — identidade 2026 */
/* Fontes alojadas no próprio site: carregam logo com a página, sem saltos de formato */
@font-face{font-family:'Anton';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/anton-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-sans-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/ibm-plex-sans-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-sans-latin-600-normal.woff2) format('woff2')}
:root{
  --verde-fundo:#0E2E24; --verde-escuro:#0A231B; --verde-card:#143A2E;
  --areia:#F4EFE6; --areia-2:#E9E2D5; --muted:#B9C9C0; --muted-escuro:#5B6F66;
  --verde:#2BC48A; --verde-texto:#16865C; --laranja:#FF7A1A; --laranja-escuro:#3A1A04;
  --linha:rgba(244,239,230,.14); --linha-clara:rgba(14,46,36,.14);
  --display:'Anton','Vernon Adams',Impact,'Arial Narrow',sans-serif;
  --corpo:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --max:1180px; --gutter:clamp(20px,5vw,56px);
  color-scheme:dark;
}
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--verde-fundo);color:var(--areia);font-family:var(--corpo);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--verde);outline-offset:3px;border-radius:4px}
.wrap{max-width:var(--max);margin:0 auto;padding-inline:var(--gutter)}
.skip{position:absolute;left:-999px;top:8px;background:var(--areia);color:var(--verde-fundo);padding:8px 14px;border-radius:8px;z-index:100}
.skip:focus{left:12px}

/* Tipografia */
.display{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.92;letter-spacing:.005em;margin:0;text-wrap:balance}
.h-xl{font-size:clamp(3.1rem,11vw,8.4rem)}
.h-lg{font-size:clamp(2.4rem,7.2vw,5.2rem)}
.h-md{font-size:clamp(1.8rem,4.4vw,3rem)}
.h-sm{font-size:clamp(1.35rem,2.6vw,1.8rem);line-height:1.02}
.eyebrow{font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--verde);margin:0 0 18px;display:flex;align-items:center;gap:10px}
.eyebrow::before{content:"";width:14px;height:7px;background:var(--laranja);flex:none}
.lead{font-size:clamp(1.08rem,1.9vw,1.3rem);line-height:1.55;color:var(--muted);max-width:40ch;margin:0}
.txt{max-width:62ch;color:var(--muted);margin:0}
.verde{color:var(--verde)} .laranja{color:var(--laranja)}

/* Botões */
.btn{display:inline-flex;align-items:center;gap:10px;min-height:56px;padding:0 28px;border-radius:52px;font-family:var(--corpo);font-weight:500;font-size:1rem;text-decoration:none;border:0;cursor:pointer;transition:transform .25s cubic-bezier(.2,.8,.2,1),background .25s}
.btn-laranja{background:var(--laranja);color:var(--laranja-escuro)}
.btn-laranja:hover{transform:translateY(-2px);background:#ff8c3a}
.btn-linha{background:transparent;color:var(--areia);box-shadow:inset 0 0 0 1.5px var(--linha)}
.btn-linha:hover{box-shadow:inset 0 0 0 1.5px var(--areia)}
.btn .seta{transition:transform .25s}
.btn:hover .seta{transform:translateX(4px)}
.acoes{display:flex;flex-wrap:wrap;gap:12px}

/* Cabeçalho */
.topo{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:rgba(14,46,36,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid transparent;transition:border-color .3s}
.topo.rolou{border-bottom-color:var(--linha)}
.topo .wrap{display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none}
.marca img{height:40px;width:auto}
.marca span{font-family:var(--display);font-size:1.25rem;text-transform:uppercase;letter-spacing:.04em}
.nav{display:none;gap:30px;align-items:center}
.nav a{text-decoration:none;font-size:.95rem;color:var(--muted);position:relative;padding:6px 0}
.nav a:hover,.nav a[aria-current="page"]{color:var(--areia)}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--verde);border-radius:2px}
.topo .btn{display:none;min-height:46px;padding:0 20px;font-size:.92rem}
.burger{width:48px;height:48px;border:0;background:transparent;color:var(--areia);display:grid;place-items:center;cursor:pointer;border-radius:50%}
.burger span{display:block;width:24px;height:2px;background:currentColor;position:relative;transition:transform .3s,background .3s}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:24px;height:2px;background:currentColor;transition:transform .3s}
.burger span::before{top:-7px}.burger span::after{top:7px}
.menu-aberto .burger span{background:transparent}
.menu-aberto .burger span::before{transform:translateY(7px) rotate(45deg)}
.menu-aberto .burger span::after{transform:translateY(-7px) rotate(-45deg)}
@media(min-width:960px){.nav,.topo .btn{display:flex}.burger{display:none}}

/* Menu telemóvel */
.menu-mob{position:fixed;inset:0;z-index:40;background:var(--verde-escuro);padding:calc(96px + env(safe-area-inset-top,0px)) var(--gutter) calc(32px + env(safe-area-inset-bottom,0px));display:flex;flex-direction:column;justify-content:space-between;clip-path:circle(0% at calc(100% - 44px) 36px);transition:clip-path .55s cubic-bezier(.7,0,.2,1);visibility:hidden}
.menu-aberto .menu-mob{clip-path:circle(150% at calc(100% - 44px) 36px);visibility:visible}
.menu-mob nav{display:flex;flex-direction:column;gap:4px}
.menu-mob nav a{font-family:var(--display);text-transform:uppercase;font-size:clamp(2.6rem,12vw,4rem);line-height:1.08;text-decoration:none;opacity:0;transform:translateY(24px);transition:opacity .4s,transform .4s}
.menu-aberto .menu-mob nav a{opacity:1;transform:none}
.menu-mob nav a[aria-current="page"]{color:var(--verde)}
.menu-aberto .menu-mob nav a:nth-child(2){transition-delay:.05s}.menu-aberto .menu-mob nav a:nth-child(3){transition-delay:.1s}
.menu-aberto .menu-mob nav a:nth-child(4){transition-delay:.15s}.menu-aberto .menu-mob nav a:nth-child(5){transition-delay:.2s}
.menu-aberto .menu-mob nav a:nth-child(6){transition-delay:.25s}.menu-aberto .menu-mob nav a:nth-child(7){transition-delay:.3s}
.menu-aberto{overflow:hidden}

/* Secções */
.sec{padding-block:clamp(72px,11vw,140px)}
.sec-clara{background:var(--areia);color:var(--verde-fundo)}
.sec-clara .txt,.sec-clara .lead{color:var(--muted-escuro)}
.sec-clara .eyebrow{color:var(--verde-texto)}
.sec-escura{background:var(--verde-escuro)}
.cab{display:grid;gap:22px;margin-bottom:clamp(40px,6vw,72px)}
@media(min-width:900px){.cab.duas{grid-template-columns:1.1fr .9fr;align-items:end}}

/* Hero */
.hero{padding-block:clamp(48px,9vw,112px) clamp(56px,8vw,96px);position:relative;overflow:hidden}
.hero .display .linha{display:block;overflow:hidden}
.hero .display .linha>span{display:block;animation:subir .9s cubic-bezier(.2,.8,.2,1) both}
.hero .display .linha:nth-child(2)>span{animation-delay:.08s}
.hero .display .linha:nth-child(3)>span{animation-delay:.16s}
@keyframes subir{from{transform:translateY(105%)}to{transform:none}}
.hero-grid{display:grid;gap:36px;margin-top:36px}
@media(min-width:900px){.hero-grid{grid-template-columns:1fr auto;align-items:end}}
.hero-nota{font-family:var(--mono);font-size:.8rem;color:var(--muted);letter-spacing:.04em;display:flex;align-items:center;gap:10px;margin-top:22px}
.pulso{width:8px;height:8px;border-radius:50%;background:var(--verde);box-shadow:0 0 0 0 rgba(43,196,138,.6);animation:pulso 2s infinite}
@keyframes pulso{70%{box-shadow:0 0 0 10px rgba(43,196,138,0)}100%{box-shadow:0 0 0 0 rgba(43,196,138,0)}}
.hero-page{padding-block:clamp(48px,8vw,104px) clamp(40px,6vw,72px)}

/* Faixa de resultados (ticker) */
.ticker{border-block:1px solid var(--linha);overflow:hidden;background:var(--verde-escuro)}
.ticker-pista{display:flex;width:max-content;animation:correr 42s linear infinite}
.ticker:hover .ticker-pista{animation-play-state:paused}
.ticker-item{display:flex;align-items:baseline;gap:12px;padding:22px 36px;border-right:1px solid var(--linha);white-space:nowrap}
.ticker-item b{font-family:var(--display);font-weight:400;font-size:2rem;color:var(--verde);line-height:1}
.ticker-item span{font-size:.92rem;color:var(--muted)}
.ticker-item i{font-style:normal;font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--areia);opacity:.6}
@keyframes correr{to{transform:translateX(-50%)}}

/* Números grandes */
.numeros{display:grid;gap:1px;background:var(--linha-clara);border:1px solid var(--linha-clara);border-radius:20px;overflow:hidden}
@media(min-width:720px){.numeros{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1040px){.numeros{grid-template-columns:repeat(4,1fr)}}
.num{background:var(--areia);padding:32px 28px;display:flex;flex-direction:column;gap:10px}
.num b{font-family:var(--display);font-weight:400;font-size:clamp(3.2rem,6vw,4.4rem);line-height:.9;color:var(--verde-fundo);font-variant-numeric:tabular-nums}
.num b small{font-size:.5em;color:var(--verde-texto);margin-left:4px}
.num p{margin:0;color:var(--muted-escuro);font-size:.95rem;line-height:1.45}
.num .setor{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--verde-texto)}

/* Serviços */
.servicos{display:grid;gap:14px}
@media(min-width:760px){.servicos{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1080px){.servicos.tres{grid-template-columns:repeat(3,1fr)}}
.servico{border:1px solid var(--linha);border-radius:20px;padding:30px 28px;display:flex;flex-direction:column;gap:14px;background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);transition:border-color .3s,transform .35s cubic-bezier(.2,.8,.2,1)}
.servico:hover{border-color:rgba(43,196,138,.55);transform:translateY(-4px)}
.servico .ico{width:48px;height:48px;border-radius:14px;background:rgba(43,196,138,.12);color:var(--verde);display:grid;place-items:center}
.servico .ico svg{width:24px;height:24px}
.servico p{margin:0;color:var(--muted)}
.servico ul{margin:4px 0 0;padding:0;list-style:none;display:grid;gap:8px}
.servico li{position:relative;padding-left:22px;color:var(--muted);font-size:.95rem}
.servico li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;background:var(--verde)}

/* Método */
.metodo{display:grid;gap:0;counter-reset:passo;border-top:1px solid var(--linha)}
.passo{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;padding:28px 0;border-bottom:1px solid var(--linha);counter-increment:passo}
.passo::before{content:counter(passo,decimal-leading-zero);font-family:var(--mono);font-size:.85rem;color:var(--verde);padding-top:10px;grid-row:span 2}
.passo p{margin:0;color:var(--muted);max-width:56ch}
@media(min-width:900px){.passo{grid-template-columns:80px 1fr 1.2fr;align-items:baseline}.passo::before{grid-row:auto}}

/* Construção destaque */
.obra{display:grid;gap:40px}
@media(min-width:960px){.obra{grid-template-columns:1fr 1fr;align-items:center}}
.obra-cards{display:grid;gap:12px}
.obra-card{background:var(--verde-fundo);color:var(--areia);border-radius:20px;padding:26px 26px;display:grid;grid-template-columns:auto 1fr;gap:18px;align-items:center}
.obra-card b{font-family:var(--display);font-weight:400;font-size:3.1rem;line-height:.9;color:var(--verde);min-width:3.4ch;font-variant-numeric:tabular-nums}
.obra-card p{margin:0;color:var(--muted);font-size:.95rem;line-height:1.45}
.obra-card p strong{color:var(--areia);font-weight:500;display:block}

/* Casos */
.casos{display:grid;gap:14px}
@media(min-width:760px){.casos{grid-template-columns:repeat(2,1fr)}}
.caso{border:1px solid var(--linha);border-radius:22px;padding:30px 28px;display:flex;flex-direction:column;gap:16px;transition:border-color .3s}
.caso:hover{border-color:rgba(43,196,138,.55)}
.caso-topo{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.tag{font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;padding:6px 12px;border-radius:30px;background:rgba(43,196,138,.12);color:var(--verde)}
.tag.canal{background:transparent;box-shadow:inset 0 0 0 1px var(--linha);color:var(--muted)}
.caso .big{font-family:var(--display);font-weight:400;font-size:clamp(3.6rem,8vw,5rem);line-height:.88;color:var(--areia);font-variant-numeric:tabular-nums}
.caso .big small{font-size:.4em;color:var(--verde);display:block;margin-top:8px;letter-spacing:.02em}
.caso p{margin:0;color:var(--muted)}
.caso .como{border-top:1px solid var(--linha);padding-top:16px;font-size:.95rem}
.caso .como strong{color:var(--areia);font-weight:500}

/* Testemunhos */
.testemunhos{display:grid;gap:14px}
@media(min-width:860px){.testemunhos{grid-template-columns:repeat(2,1fr)}}
.aval{background:var(--areia-2);border-radius:22px;padding:30px 28px;display:flex;flex-direction:column;gap:18px}
.aval blockquote{margin:0;font-family:var(--display);text-transform:uppercase;font-size:clamp(1.7rem,3.6vw,2.4rem);line-height:1;color:var(--verde-fundo)}
.aval .autor{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-size:.92rem;color:var(--muted-escuro)}
.aval .autor strong{color:var(--verde-fundo);font-weight:500;display:block}
.estrelas{color:var(--laranja);letter-spacing:2px;font-size:1rem}
.videos{display:grid;gap:12px;margin-top:14px;justify-content:center;grid-template-columns:repeat(2,minmax(0,340px))}
@media(min-width:640px){.videos{gap:20px}}
.video{aspect-ratio:9/16;border-radius:18px;overflow:hidden;background:var(--verde-escuro)}
.video iframe{width:100%;height:100%;border:0;display:block}

/* CTA final */
.cta-final{text-align:left}
.cta-box{background:var(--verde);color:var(--verde-escuro);border-radius:28px;padding:clamp(36px,6vw,72px);display:grid;gap:28px;position:relative;overflow:hidden}
.cta-box .display{color:var(--verde-escuro)}
.cta-box p{margin:0;max-width:46ch;font-size:1.1rem;color:#0f3d2d}
.cta-box .btn-laranja{background:var(--verde-escuro);color:var(--areia)}
.cta-box .btn-laranja:hover{background:#06170f}
.cta-box .aro{position:absolute;right:-120px;bottom:-120px;width:360px;height:360px;border-radius:50%;border:2px solid rgba(10,35,27,.18);pointer-events:none}
.cta-box .aro.dois{right:-60px;bottom:-60px;width:240px;height:240px}

/* Sobre */
.duo{display:grid;gap:40px}
@media(min-width:900px){.duo{grid-template-columns:1fr 1fr;align-items:start}}
.pessoas{display:grid;gap:14px}
@media(min-width:600px){.pessoas{grid-template-columns:repeat(2,1fr)}}
.pessoa{border:1px solid var(--linha-clara);border-radius:20px;padding:26px;display:grid;gap:10px}
.pessoa .ini{width:56px;height:56px;border-radius:50%;background:var(--verde-fundo);color:var(--areia);display:grid;place-items:center;font-family:var(--display);font-size:1.4rem}
.pessoa p{margin:0;color:var(--muted-escuro);font-size:.95rem}
.valores{display:grid;gap:0;border-top:1px solid var(--linha)}
.valor{padding:24px 0;border-bottom:1px solid var(--linha);display:grid;gap:8px}
@media(min-width:900px){.valor{grid-template-columns:1fr 1.4fr;gap:40px}}
.valor p{margin:0;color:var(--muted)}

/* Contacto */
.contacto{display:grid;gap:40px}
@media(min-width:960px){.contacto{grid-template-columns:.9fr 1.1fr}}
.canais{display:grid;gap:12px;align-content:start}
.canal{border:1px solid var(--linha);border-radius:18px;padding:20px 22px;display:grid;gap:4px}
.canal span{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--verde)}
.canal a,.canal b{font-size:1.1rem;font-weight:500;text-decoration:none;word-break:break-word}
.form{background:var(--areia);color:var(--verde-fundo);border-radius:24px;padding:clamp(26px,4vw,40px);display:grid;gap:18px}
.campo{display:grid;gap:6px}
.campo label{font-size:.88rem;font-weight:500}
.campo input,.campo select,.campo textarea{font:inherit;font-size:1rem;color:var(--verde-fundo);background:#fff;border:1.5px solid #d9d1c2;border-radius:14px;padding:14px 16px;width:100%;color-scheme:light}
.campo textarea{min-height:120px;resize:vertical}
.campo input:focus,.campo select:focus,.campo textarea:focus{outline:none;border-color:var(--verde-texto);box-shadow:0 0 0 3px rgba(43,196,138,.25)}
.linha2{display:grid;gap:18px}
@media(min-width:620px){.linha2{grid-template-columns:1fr 1fr}}
.form .btn{justify-content:center;width:100%}
.form small{color:var(--muted-escuro);font-size:.84rem}
.form .ok{background:rgba(43,196,138,.15);color:var(--verde-texto);border-radius:14px;padding:14px 16px;font-weight:500}

/* FAQ */
.faq{border-top:1px solid var(--linha)}
.faq details{border-bottom:1px solid var(--linha)}
.faq summary{list-style:none;cursor:pointer;padding:24px 44px 24px 0;position:relative;font-weight:500;font-size:1.08rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:6px;top:50%;width:14px;height:14px;margin-top:-10px;border-right:2px solid var(--verde);border-bottom:2px solid var(--verde);transform:rotate(45deg);transition:transform .3s}
.faq details[open] summary::after{transform:rotate(225deg);margin-top:-2px}
.faq details p{margin:0 0 24px;color:var(--muted);max-width:64ch}

/* Blog */
.posts{display:grid;gap:14px}
@media(min-width:860px){.posts{grid-template-columns:repeat(3,1fr)}}
.post{border:1px solid var(--linha);border-radius:22px;padding:28px 26px;display:flex;flex-direction:column;gap:14px;text-decoration:none;transition:border-color .3s,transform .35s cubic-bezier(.2,.8,.2,1)}
.post:hover{border-color:rgba(43,196,138,.55);transform:translateY(-4px)}
.post .meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.post p{margin:0;color:var(--muted)}
.post .ler{margin-top:auto;color:var(--verde);font-weight:500}
.artigo{max-width:720px}
.artigo+.artigo{margin-top:clamp(64px,9vw,112px);padding-top:clamp(64px,9vw,112px);border-top:1px solid var(--linha-clara)}
.artigo p,.artigo li{color:var(--muted-escuro);font-size:1.05rem;line-height:1.7}
.artigo h3{font-family:var(--display);font-weight:400;text-transform:uppercase;font-size:1.6rem;margin:36px 0 10px;color:var(--verde-fundo)}
.artigo .meta{font-family:var(--mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--verde-texto);margin:18px 0 26px;display:block}
.artigo ul{padding-left:20px}

/* Rodapé */
.rodape{background:var(--verde-escuro);padding-block:64px 36px;border-top:1px solid var(--linha)}
.rodape-grid{display:grid;gap:36px}
@media(min-width:860px){.rodape-grid{grid-template-columns:1.4fr 1fr 1fr}}
.rodape h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--verde);margin:0 0 14px;font-weight:500}
.rodape ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.rodape a{text-decoration:none;color:var(--muted)}
.rodape a:hover{color:var(--areia)}
.rodape .fim{margin-top:48px;padding-top:24px;border-top:1px solid var(--linha);display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between;font-size:.85rem;color:var(--muted)}
.rodape .marca img{height:52px}

/* Botão falar connosco (todas as páginas) */
.contactar{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:45;display:flex;flex-direction:column;align-items:flex-end;gap:12px}
.contactar-btn{display:flex;align-items:center;gap:10px;height:58px;padding:0 20px 0 18px;border-radius:40px;border:0;cursor:pointer;background:var(--laranja);color:var(--laranja-escuro);font:500 .98rem var(--corpo);box-shadow:0 12px 32px rgba(0,0,0,.35);transition:transform .25s,background .25s}
.contactar-btn:hover{transform:translateY(-2px);background:#ff8c3a}
.contactar-btn svg{width:24px;height:24px}
.contactar-btn .i-fechar{display:none}
.contactar.aberto .contactar-btn .i-abrir{display:none}.contactar.aberto .contactar-btn .i-fechar{display:block}
.contactar.aberto .contactar-btn{background:var(--areia)}
@media(max-width:520px){.contactar-btn{width:58px;padding:0;justify-content:center}.contactar-btn .rotulo{display:none}}
.contactar-painel{width:min(300px,calc(100vw - 32px));background:var(--areia);color:var(--verde-fundo);border-radius:22px;padding:18px;box-shadow:0 20px 50px rgba(0,0,0,.4);display:grid;gap:10px;transform-origin:bottom right;animation:abrePainel .3s cubic-bezier(.2,.8,.2,1)}
@keyframes abrePainel{from{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}
.contactar-painel p{margin:0 0 4px;font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted-escuro)}
.opcao{display:flex;align-items:center;gap:14px;padding:14px;border-radius:16px;text-decoration:none;background:#fff;transition:transform .2s}
.opcao:hover{transform:translateX(-3px)}
.opcao svg{width:26px;height:26px;flex:none}
.opcao.whats svg{color:#1DA851}.opcao.ligar svg{color:var(--laranja)}
.opcao span{display:grid;font-size:.86rem;color:var(--muted-escuro);line-height:1.35}
.opcao b{font-size:1rem;color:var(--verde-fundo);font-weight:600}
.canal.destaque{border-color:rgba(255,122,26,.5);background:rgba(255,122,26,.07)}
.canal.destaque span{color:var(--laranja)}
.rodape .fim a{color:var(--muted)}

/* Sobre: factos */
.factos{display:grid;gap:12px}
.facto{background:var(--verde-fundo);color:var(--areia);border-radius:20px;padding:24px 26px;display:grid;grid-template-columns:auto 1fr;gap:20px;align-items:center}
.facto b{font-family:var(--display);font-weight:400;font-size:3.4rem;line-height:.9;color:var(--verde);min-width:1.4ch}
.facto.laranja b{color:var(--laranja)}
.facto p{margin:0;color:var(--muted);font-size:.95rem}
.facto p strong{display:block;color:var(--areia);font-weight:500;font-size:1.05rem}

/* Serviços: linhas grandes */
.progresso{position:sticky;top:calc(72px + env(safe-area-inset-top,0px));z-index:20;height:3px;background:transparent}
.progresso span{display:block;height:100%;width:100%;background:linear-gradient(90deg,var(--verde),var(--laranja));transform-origin:left;transform:scaleX(0)}
.srv-lista{display:grid;gap:14px}
.srv{display:grid;gap:22px;border:1px solid var(--linha);border-radius:26px;padding:clamp(26px,4vw,44px);position:relative;overflow:hidden;transition:border-color .35s}
.srv::after{content:"";position:absolute;left:0;top:0;width:100%;height:3px;background:var(--verde);transform:scaleX(0);transform-origin:left;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.srv.quente::after{background:var(--laranja)}
.srv:hover::after,.srv.visto::after{transform:scaleX(1)}
.srv:hover{border-color:rgba(43,196,138,.45)}.srv.quente:hover{border-color:rgba(255,122,26,.45)}
@media(min-width:860px){.srv{grid-template-columns:auto 1fr;gap:40px}}
.srv-ico .ico{width:72px;height:72px;border-radius:22px;background:rgba(43,196,138,.13);color:var(--verde);display:grid;place-items:center}
.srv.quente .srv-ico .ico{background:rgba(255,122,26,.13);color:var(--laranja)}
.srv-ico .ico svg{width:32px;height:32px}
.srv-corpo{display:grid;gap:16px}
.srv-corpo p{margin:0;color:var(--muted);max-width:60ch;font-size:1.06rem}
.srv-corpo ul{margin:0;padding:0;list-style:none;display:grid;gap:10px}
@media(min-width:860px){.srv-corpo ul{grid-template-columns:repeat(3,1fr);gap:14px}}
.srv-corpo li{padding:14px 16px;border-radius:14px;background:rgba(244,239,230,.04);color:var(--areia);font-size:.94rem;line-height:1.4}
.srv-para{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.srv-para em{font-style:normal;font-family:var(--mono);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.srv-para span{font-size:.82rem;padding:6px 12px;border-radius:30px;box-shadow:inset 0 0 0 1px var(--linha);color:var(--muted)}
.js .revelar[data-lado="esq"]{transform:translateX(-40px)}
.js .revelar[data-lado="dir"]{transform:translateX(40px)}
.js .revelar[data-lado].visto{transform:none}

.faixa{background:var(--verde-fundo);color:var(--areia);border-radius:26px;padding:clamp(28px,5vw,52px);display:grid;gap:18px;align-items:center}
@media(min-width:760px){.faixa{grid-template-columns:auto 1fr;gap:40px}}
.faixa b{font-family:var(--display);font-weight:400;font-size:clamp(4.4rem,11vw,7rem);line-height:.85;color:var(--laranja)}
.faixa p{margin:0;color:var(--muted);font-size:1.08rem;max-width:52ch}
.faixa p strong{color:var(--areia);font-weight:500;display:block;font-size:1.2rem;margin-bottom:6px}

.linha-tempo{position:relative}
.linha-tempo .enche{position:absolute;left:0;top:0;width:2px;height:100%;background:var(--laranja);transform-origin:top;transform:scaleY(0);z-index:1}
.linha-tempo .metodo{border-top:0;padding-left:22px;border-left:2px solid var(--linha)}
.linha-tempo .passo:first-child{padding-top:6px}

/* Revelar ao rolar (só elementos abaixo da dobra; visíveis sem JS) */
.js .revelar{opacity:0;transform:translateY(28px);transition:opacity .8s cubic-bezier(.2,.8,.2,1),transform .8s cubic-bezier(.2,.8,.2,1)}
.js .revelar.visto{opacity:1;transform:none}

/* Com "Reduzir movimento" ligado no telemóvel: animações mais suaves, nunca desligadas */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .revelar,.js .revelar[data-lado]{transform:none;transition:opacity .9s ease}
  .hero .display .linha>span{animation:aparecer 1s ease both}
  .ticker-pista{animation-duration:80s}
  .clientes-pista{animation-duration:120s}
}
@keyframes aparecer{from{opacity:0}to{opacity:1}}

/* Toque: em ecrãs sem hover (telemóvel/tablet), dá feedback visual ao tocar,
   já que os estados :hover abaixo nunca disparam nesses dispositivos */
@media (hover:none){
  .btn-laranja:active{transform:scale(.96);background:#ff8c3a}
  .btn-linha:active{box-shadow:inset 0 0 0 1.5px var(--areia)}
  .servico:active{border-color:rgba(43,196,138,.55);transform:translateY(-2px)}
  .caso:active{border-color:rgba(43,196,138,.55)}
  .post:active{border-color:rgba(43,196,138,.55);transform:translateY(-2px)}
  .srv:active::after{transform:scaleX(1)}
  .opcao:active{transform:scale(.97)}
  .contactar-btn:active{transform:scale(.95)}
}

/* Clientes */
.clientes{background:var(--verde-escuro);padding-block:56px 0;border-top:1px solid var(--linha)}
.clientes .wrap{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;margin-bottom:26px}
.clientes .eyebrow{margin:0}
.clientes-num{margin:0;color:var(--muted);font-size:.95rem}
.clientes-num b{font-family:var(--display);font-weight:400;font-size:1.6rem;color:var(--laranja);margin-right:6px}
.clientes-faixa{overflow:hidden;border-block:1px solid var(--linha);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.clientes-pista{display:flex;width:max-content;animation:correr 45s linear infinite reverse}
.clientes-faixa:hover .clientes-pista{animation-play-state:paused}
.cli{display:flex;align-items:center;gap:28px;padding:26px 0 26px 28px;font-family:var(--display);text-transform:uppercase;font-size:clamp(1.4rem,3vw,2rem);letter-spacing:.02em;color:var(--areia);white-space:nowrap;opacity:.9}

.cli::after{content:"";width:12px;height:6px;background:var(--laranja);flex:none}

