/* =====================================================================
   ID Repair — site público
   Tudo com prefixo .site (o backoffice usa style.css e nunca se mistura).
   Paleta: ficheiro "Color Scheme.png" (2C5772 · 386173 · F27243 · F1B093 · F0EDE2).
   Cores sólidas, sem gradientes. Todas as cores vêm destas variáveis.
   ===================================================================== */
:root{
  /* Paleta */
  --aco:#2C5772;             /* azul-aço: secções escuras, títulos, marca */
  --aco-2:#386173;           /* azul-ardósia: superfícies dentro das secções escuras */
  --coral:#F27243;           /* botões e destaques (texto por cima: --tinta, contraste 5:1) */
  --pessego:#F1B093;         /* destaques suaves; título do hero */
  --creme:#F0EDE2;           /* fundo das secções claras; texto sobre azul-aço */

  /* Derivadas da paleta */
  --aco-escuro:#234659;      /* rodapé e cortina (um tom abaixo do azul-aço) */
  --coral-hover:#F58B64;     /* coral mais claro no hover (o texto escuro ganha contraste) */
  --coral-texto:#A3421F;     /* coral para texto pequeno sobre claro (contraste AA) */
  --pessego-suave:#FAE3D7;   /* fundo de ícones, chips e cartões suaves */
  --creme-2:#E7E2D3;         /* fundo alternado das secções claras */
  --linha:#DAD3C1;           /* bordas sobre claro */
  --linha-escura:rgba(240,237,226,.16); /* bordas sobre azul-aço */
  --tinta:#1D2B35;           /* texto principal */
  --tinta-suave:#4E5D66;     /* texto secundário sobre claro */
  --claro-suave:#C9D6DE;     /* texto secundário sobre azul-aço (5.2:1) */
  --branco:#FFFFFF;

  --raio:10px;
  --raio-g:18px;
  --sombra-cartao:0 1px 2px rgba(29,43,53,.05),0 10px 30px -10px rgba(29,43,53,.14);
  --sombra-elevada:0 2px 4px rgba(29,43,53,.06),0 24px 48px -14px rgba(29,43,53,.25);
  --curva:cubic-bezier(.22,.61,.36,1);

  /* Nomes antigos ainda usados no JavaScript da página */
  --laranja-botao:var(--coral-texto);
}
.site *{box-sizing:border-box;margin:0;padding:0}
.site [hidden]{display:none!important}
html{scroll-behavior:smooth}
.site{
  margin:0;
  font-family:'Archivo',system-ui,-apple-system,sans-serif;
  color:var(--tinta);background:var(--creme);line-height:1.6;
  -webkit-font-smoothing:antialiased;overflow-x:clip;
}
.site img{max-width:100%;display:block}
.site a{color:inherit;text-decoration:none}
.site :where(a,button,input,select,textarea,summary):focus-visible{outline:2px solid var(--aco);outline-offset:3px;border-radius:4px}
.site :where(.processo,.orcamento-lado,footer) :where(a,button):focus-visible{outline-color:var(--creme)}
.site .wrap{width:min(1180px,92vw);margin-inline:auto;position:relative}
.site ::selection{background:var(--coral);color:var(--tinta)}

/* ---------- Animações de entrada (só quando há JS; ver "reduzir movimento" no fim) ----------
   Usa animation + translate (e não transition + transform) para não interferir
   com os efeitos de hover dos cartões. */
.js .site [data-revela]{opacity:0}
.js .site [data-revela].visivel{animation:revela .75s var(--curva) var(--atraso,0s) both}
@keyframes revela{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}

/* ---------- Cabeçalho ---------- */
.site .topo{position:sticky;top:0;z-index:50;background:rgba(240,237,226,.9);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--linha);transition:background-color .3s,border-color .3s,box-shadow .3s}
.site .topo.solido{box-shadow:0 8px 24px -16px rgba(29,43,53,.35)}
.site .topo .topo-int{position:static}
.site .topo-int{display:flex;align-items:center;gap:1.5rem;height:68px}
.site .marca{display:flex;align-items:center;gap:.6rem;font-weight:800;font-size:1.15rem;letter-spacing:-.02em}
.site .marca img{width:38px;height:38px;border-radius:9px;flex:none;object-fit:contain;background:#fff}
.site .marca-nome{white-space:nowrap}
.site .m-azul{color:var(--aco);transition:color .3s}
.site .m-laranja{color:var(--coral)}
.site .nav{margin-left:auto;display:flex;align-items:center;gap:.25rem;font-size:.95rem;font-weight:500}
.site .nav a:not(.tel-topo){padding:.5rem .8rem;border-radius:999px;transition:color .2s,background-color .2s}
.site .nav a:not(.tel-topo):hover{color:var(--aco);background:var(--pessego-suave)}
.site .nav > .tel-topo{display:none}
.site .tel-topo{background:var(--coral);color:var(--tinta);font-weight:700;padding:.6rem 1.15rem;border-radius:999px;font-size:.95rem;transition:background-color .2s;white-space:nowrap}
.site .tel-topo:hover{background:var(--coral-hover)}
.site .menu-btn{display:none;margin-left:auto;background:none;border:0;padding:.6rem;cursor:pointer;border-radius:8px}
.site .menu-btn span{display:block;width:22px;height:2px;background:var(--tinta);margin:5px 0;transition:transform .25s,opacity .25s,background-color .3s;border-radius:2px}
.site .menu-btn[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.site .menu-btn[aria-expanded="true"] span:nth-child(2){opacity:0}
.site .menu-btn[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}


/* ---------- Botões ---------- */
.site .btn{position:relative;overflow:hidden;isolation:isolate;padding:.9rem 1.55rem;min-height:50px;border-radius:999px;font-weight:700;font-size:1rem;border:1.5px solid transparent;cursor:pointer;transition:background-color .25s,color .25s,border-color .25s,box-shadow .25s,transform .25s var(--curva);display:inline-flex;align-items:center;justify-content:center;gap:.55rem;font-family:inherit;line-height:1.2}
.site .btn svg{width:18px;height:18px;flex:none;transition:transform .25s var(--curva)}
.site .btn:hover svg{transform:translateX(3px)}
.site .btn:active{transform:translateY(1px) scale(.99)}
.site .btn-principal{background:var(--coral);color:var(--tinta);box-shadow:0 10px 24px -12px rgba(242,114,67,.8)}
.site .btn-principal:hover{background:var(--coral-hover);transform:translateY(-2px);box-shadow:0 14px 28px -12px rgba(242,114,67,.85)}
/* Reflexo que atravessa o botão ao passar o rato. */
.site .btn-principal::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);transform:translateX(-120%);transition:transform .7s var(--curva)}
.site .btn-principal:hover::after{transform:translateX(120%)}
.site .btn-secundario{border-color:var(--aco);color:var(--aco);background:transparent}
.site .btn-secundario:hover{background:var(--aco);color:var(--creme);transform:translateY(-2px)}
.site .btn-largo{width:100%}

/* Botão "Contactar agora" com as opções WhatsApp / Instagram / Email */
.site .contacto-menu{position:relative}
.site .contacto-opcoes{display:none;position:absolute;top:calc(100% + .6rem);left:0;z-index:40;min-width:260px;background:#fff;border:1px solid var(--linha);border-radius:14px;box-shadow:var(--sombra-elevada);overflow:hidden;padding:.35rem;color:var(--tinta)}
.site .contacto-opcoes.aberto{display:block;animation:surge .22s var(--curva)}
.site .contacto-opcoes a{display:block;padding:.75rem 1rem;border-radius:10px;transition:background-color .15s}
.site .contacto-opcoes a:hover{background:var(--pessego-suave)}
.site .contacto-opcoes b{display:block;font-size:.98rem;color:var(--aco)}
.site .contacto-opcoes span{display:block;font-size:.83rem;color:var(--tinta-suave)}
@keyframes surge{from{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}

/* ---------- Textura das secções escuras: só uma grelha subtil (sem manchas de luz) ---------- */
.site .hero-fundo{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:0}
.site .bolha{display:none}
.site .grelha{position:absolute;inset:0;background-image:linear-gradient(rgba(240,237,226,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(240,237,226,.07) 1px,transparent 1px);background-size:56px 56px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 20%,transparent 75%);mask-image:radial-gradient(ellipse 70% 60% at 50% 40%,#000 20%,transparent 75%)}

/* ---------- Hero ---------- */
.site .hero{position:relative;overflow:hidden;background:var(--aco);color:var(--creme);padding:clamp(2.5rem,6vw,5rem) 0 clamp(3.5rem,8vw,6.5rem)}
.site .hero-int{position:relative;z-index:1;display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(2rem,5vw,4rem);align-items:center}
.site .etiqueta{display:inline-flex;align-items:center;gap:.6rem;font-size:.85rem;font-weight:500;color:var(--creme);padding:.45rem .95rem .45rem .75rem;border:1px solid var(--linha-escura);background:var(--aco-2);border-radius:999px;margin-bottom:1.5rem}
.site .pulso{width:8px;height:8px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 0 rgba(242,114,67,.6);animation:pulso 2s infinite;flex:none}
@keyframes pulso{70%{box-shadow:0 0 0 9px rgba(242,114,67,0)}100%{box-shadow:0 0 0 0 rgba(242,114,67,0)}}
.site .hero h1{font-size:clamp(2.3rem,5.2vw,3.7rem);line-height:1.02;letter-spacing:-.045em;font-weight:900;margin-bottom:1.3rem;text-wrap:balance;color:var(--creme)}
.site .hero h1 em{font-style:normal;color:var(--pessego)}
.site .lead{font-size:clamp(1.02rem,1.6vw,1.18rem);color:var(--claro-suave);max-width:46ch;margin-bottom:2rem}
.site .botoes{display:flex;flex-wrap:wrap;gap:.8rem;margin-bottom:2.4rem;position:relative;z-index:5} /* acima dos selos: o menu "Contactar agora" abre por cima deles */
.site .hero .btn-secundario{border-color:rgba(240,237,226,.45);color:var(--creme);background:transparent}
.site .hero .btn-secundario:hover{background:var(--creme);color:var(--aco);border-color:var(--creme)}
.site .selos{display:flex;flex-wrap:wrap;gap:.75rem;font-size:.85rem;color:var(--claro-suave)}
.site .selos > div{padding:.8rem 1.1rem;border:1px solid var(--linha-escura);background:var(--aco-2);border-radius:14px;min-width:120px}
.site .selos b{display:block;color:var(--creme);font-size:1.4rem;font-weight:800;letter-spacing:-.03em;line-height:1.2}

/* ---------- Telemóvel interativo ---------- */
.site .palco{position:relative;display:flex;flex-direction:column;align-items:center;gap:.9rem}
/* Anel tracejado coral a rodar devagar + círculo sólido por trás do telemóvel */
.site .anel{position:absolute;top:44%;left:50%;width:min(420px,90vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;border:2px dashed rgba(242,114,67,.55);animation:roda 40s linear infinite;pointer-events:none}
@keyframes roda{to{transform:translate(-50%,-50%) rotate(360deg)}}
.site .palco::before{content:"";position:absolute;top:44%;left:50%;width:min(340px,80vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;background:var(--aco-2);pointer-events:none}
.site .palco svg{position:relative;z-index:1;width:min(270px,62vw);height:auto;touch-action:none;cursor:grab;filter:drop-shadow(0 30px 40px rgba(18,35,46,.55))}
.site .palco svg:active{cursor:grabbing}
.site .fissura{stroke:#fff;fill:none;stroke-linecap:round;opacity:.95}
.site #brilho{opacity:0;transition:opacity .5s}
.site .reparado #brilho{opacity:1}
.site .instrucao{position:relative;z-index:1;font-size:.9rem;color:var(--claro-suave);text-align:center;min-height:2.8em;max-width:28ch}
.site .instrucao b{color:var(--creme)}
.site .reparado .instrucao b{color:var(--pessego)}
.site .barra{position:relative;z-index:1;width:min(270px,62vw);height:5px;background:var(--aco-2);border-radius:3px;overflow:hidden}
.site .barra i{display:block;height:100%;width:0;background:var(--coral);border-radius:3px;transition:width .12s linear}
.site .reparado .barra i{background:var(--pessego)}
.site .repor{position:relative;z-index:1;background:none;border:0;font:inherit;font-size:.85rem;color:var(--claro-suave);text-decoration:underline;text-underline-offset:3px;cursor:pointer;padding:.4rem;min-height:36px}
.site .repor:hover{color:var(--creme)}
/* Cartões a flutuar à volta do telemóvel */
.site .flutua{position:absolute;z-index:2;display:flex;align-items:center;gap:.65rem;padding:.7rem .95rem;border-radius:14px;background:var(--creme);border:1px solid var(--linha);box-shadow:0 18px 36px -16px rgba(18,35,46,.6);font-size:.8rem;color:var(--tinta-suave);line-height:1.3;pointer-events:none;animation:flutuar 6s ease-in-out infinite}
.site .flutua b{display:block;color:var(--tinta);font-size:.88rem}
.site .flutua i{width:30px;height:30px;border-radius:9px;flex:none}
.site .flutua i.ok{background:var(--aco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0EDE2' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/15px no-repeat}
.site .flutua i.bat{background:var(--coral) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D2B35' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='7' width='16' height='10' rx='2'/%3E%3Cpath d='M22 11v2M6 11v2M10 11v2'/%3E%3C/svg%3E") center/17px no-repeat}
.site .flutua.f1{top:14%;left:-4%}
.site .flutua.f2{top:52%;right:-6%;animation-delay:-3s}
@keyframes flutuar{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* ---------- Faixa animada ---------- */
.site .faixa{position:relative;overflow:hidden;background:var(--coral);padding:1rem 0}
.site .faixa-trilho{display:flex;width:max-content;animation:desliza 45s linear infinite}
.site .faixa:hover .faixa-trilho{animation-play-state:paused}
.site .faixa ul{display:flex;list-style:none;flex:none}
.site .faixa li{display:flex;align-items:center;gap:2rem;padding-right:2rem;font-weight:700;font-size:1.02rem;color:var(--tinta);white-space:nowrap}
.site .faixa li::after{content:"";width:7px;height:7px;border-radius:50%;background:var(--aco);flex:none}
@keyframes desliza{to{transform:translateX(-50%)}}

/* ---------- Secções ---------- */
.site section{position:relative;padding:clamp(4rem,9vw,7rem) 0}
.site section[id]{scroll-margin-top:68px}
.site .cabec{max-width:62ch;margin-bottom:clamp(2.25rem,4.5vw,3.5rem)}
.site .sobretitulo{display:inline-flex;align-items:center;gap:.6rem;font-family:'IBM Plex Mono',monospace;font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--coral-texto);margin-bottom:.9rem}
.site .sobretitulo::before{content:"";width:22px;height:2px;background:var(--coral);border-radius:2px}
.site .cabec h2{font-size:clamp(1.9rem,4vw,2.9rem);letter-spacing:-.04em;line-height:1.08;font-weight:800;margin-bottom:.8rem;text-wrap:balance;color:var(--aco)}
.site .cabec p:not(.sobretitulo){color:var(--tinta-suave);font-size:1.05rem}

/* Cartão com um foco de luz pêssego que segue o rato (ver JS: --mx/--my) */
.site .cartao-luz{position:relative;isolation:isolate}
.site .cartao-luz::before{content:"";position:absolute;inset:0;border-radius:inherit;z-index:-1;opacity:0;transition:opacity .35s;background:radial-gradient(380px circle at var(--mx,50%) var(--my,0%),rgba(241,176,147,.28),transparent 45%)}
.site .cartao-luz:hover::before{opacity:1}

/* Serviços */
.site .servicos-grelha{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.site .servico{display:flex;flex-direction:column;background:#fff;border:1px solid var(--linha);border-radius:var(--raio-g);padding:1.75rem;box-shadow:var(--sombra-cartao);transition:transform .35s var(--curva),box-shadow .35s var(--curva),border-color .35s}
.site .servico:hover{transform:translateY(-6px);box-shadow:var(--sombra-elevada);border-color:var(--pessego)}
.site .servico-num{position:absolute;top:1.25rem;right:1.5rem;font-family:'IBM Plex Mono',monospace;font-size:.8rem;color:var(--tinta-suave)}
.site .servico-icone{width:54px;height:54px;border-radius:15px;background:var(--aco);color:var(--creme);display:grid;place-items:center;margin-bottom:1.35rem;transition:transform .35s var(--curva),background-color .35s,color .35s}
.site .servico:hover .servico-icone{transform:rotate(-6deg) scale(1.06);background:var(--coral);color:var(--tinta)}
.site .servico-icone svg{width:26px;height:26px}
.site .servico h3{font-size:1.3rem;font-weight:800;letter-spacing:-.025em;line-height:1.2;color:var(--aco)}
.site .servico-sub{font-size:.9rem;color:var(--tinta-suave);margin:.2rem 0 1.1rem}
.site .lista{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.5rem}
.site .lista li{list-style:none;font-size:.84rem;background:var(--creme);border:1px solid var(--linha);padding:.3rem .7rem;border-radius:999px;color:var(--tinta)}
.site .ver-precos{margin-top:auto;align-self:flex-start;display:inline-flex;align-items:center;gap:.4rem;white-space:nowrap;font-weight:700;font-size:.95rem;color:var(--aco);min-height:44px}
.site .ver-precos svg{width:16px;height:16px;transition:transform .25s var(--curva)}
.site .ver-precos:hover svg,.site .servico:hover .ver-precos svg{transform:translateX(4px)}

/* ---------- Calculadora ---------- */
.site .calc{background:var(--creme-2);background-image:radial-gradient(rgba(44,87,114,.14) 1px,transparent 1px);background-size:22px 22px}
.site .calc-int{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(1.5rem,4vw,3rem);align-items:start}
.site .calc-escolhas{background:#fff;border:1px solid var(--linha);border-radius:var(--raio-g);padding:clamp(1.25rem,3vw,2rem);box-shadow:var(--sombra-cartao)}
.site .campo{margin-bottom:1.6rem}
.site .campo:last-child{margin-bottom:0}
.site .campo > p{font-size:.85rem;font-weight:700;margin-bottom:.7rem;letter-spacing:.01em}
.site .chips{display:flex;flex-wrap:wrap;gap:.5rem}
.site .chip{font:inherit;font-size:.9rem;padding:.55rem 1rem;min-height:44px;border:1px solid var(--linha);background:#fff;border-radius:999px;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s,transform .2s var(--curva);color:var(--tinta);display:inline-flex;align-items:center;gap:.4rem}
.site .chip:hover{border-color:var(--aco);transform:translateY(-1px)}
.site .chip[aria-pressed="true"]{background:var(--aco);border-color:var(--aco);color:var(--creme)}
.site .chip[aria-pressed="true"]::before{content:"";width:14px;height:14px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F0EDE2' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/contain no-repeat}
/* Talão: recibo com a borda de baixo recortada */
.site .talao{position:sticky;top:92px;filter:drop-shadow(0 22px 30px rgba(29,43,53,.18))}
.site .talao-topo{background:var(--aco);color:var(--creme);padding:1rem 1.35rem;display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-radius:var(--raio-g) var(--raio-g) 0 0}
.site .talao-topo h3{font-size:.95rem;font-weight:600;letter-spacing:.02em}
.site .talao-topo code{font-family:'IBM Plex Mono',monospace;font-size:.8rem;opacity:.8}
.site .talao-corpo{background:#fff;padding:1.35rem}
.site #resumo{list-style:none;margin-bottom:1rem;font-size:.9rem}
.site #resumo li{display:flex;justify-content:space-between;gap:1rem;padding:.5rem 0;border-bottom:1px dashed var(--linha);animation:surge .25s var(--curva)}
.site #resumo li span:last-child{font-family:'IBM Plex Mono',monospace;white-space:nowrap;color:var(--tinta-suave)}
.site .vazio{color:var(--tinta-suave);font-size:.9rem;padding:.5rem 0 1rem}
.site .total{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding-top:.5rem}
.site .total span{font-size:.85rem;color:var(--tinta-suave)}
.site .total b{font-size:2rem;font-weight:800;color:var(--aco);letter-spacing:-.03em;font-variant-numeric:tabular-nums;display:inline-block}
.site .salta{animation:salta .4s var(--curva)}
@keyframes salta{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
.site .prazo-linha{font-size:.88rem;color:var(--tinta-suave);margin-top:.35rem}
.site .prazo-linha b{color:var(--tinta);font-weight:600}
.site .talao-corpo .btn{width:100%;margin-top:1.2rem}
.site .talao-rodape{position:relative;background:var(--pessego-suave);border-top:1px dashed var(--pessego);padding:.9rem 1.35rem 1.4rem;font-size:.8rem;color:var(--tinta);-webkit-mask:linear-gradient(#000,#000) top/100% calc(100% - 10px) no-repeat,radial-gradient(circle at 10px 10px,transparent 6px,#000 6.5px) bottom/20px 10px repeat-x;mask:linear-gradient(#000,#000) top/100% calc(100% - 10px) no-repeat,radial-gradient(circle at 10px 10px,transparent 6px,#000 6.5px) bottom/20px 10px repeat-x}

/* ---------- Comparador ---------- */
.site .comparador{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.5rem,4vw,3rem);align-items:center}
.site .sliders{display:flex;flex-direction:column;gap:1.8rem}
.site .slider-campo label{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;font-size:.92rem;font-weight:600;margin-bottom:.75rem}
.site .slider-campo output{font-family:'IBM Plex Mono',monospace;font-size:1.15rem;color:var(--aco);font-weight:500;background:#fff;border:1px solid var(--linha);padding:.15rem .6rem;border-radius:8px}
.site input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer}
.site input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:var(--aco)}
.site input[type=range]::-moz-range-track{height:6px;border-radius:3px;background:var(--aco)}
.site input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-9px;border-radius:50%;background:var(--coral);border:3px solid #fff;box-shadow:0 3px 10px rgba(29,43,53,.35);transition:transform .15s}
.site input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--coral);border:3px solid #fff;box-shadow:0 3px 10px rgba(29,43,53,.35)}
.site input[type=range]:active::-webkit-slider-thumb{transform:scale(1.15)}
.site input[type=range]:focus-visible{outline:none}
.site input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 5px rgba(44,87,114,.35)}
.site .balanca{position:relative;overflow:hidden;border-radius:var(--raio-g);padding:2rem;background:var(--pessego-suave);border:1px solid var(--pessego);box-shadow:var(--sombra-cartao)}
.site .poupanca b{display:inline-block;font-size:clamp(2.6rem,7vw,3.8rem);font-weight:900;letter-spacing:-.05em;color:var(--aco);line-height:1;font-variant-numeric:tabular-nums;margin-bottom:.4rem}
.site .poupanca span{display:block;font-size:.95rem;color:var(--tinta)}
.site .balanca hr{border:0;border-top:1px dashed var(--pessego);margin:1.25rem 0}
.site .balanca p{font-size:.92rem;color:var(--tinta)}
.site .balanca p b{color:var(--aco)}
.site .aviso-negativo{color:var(--coral-texto);font-weight:700}

/* ---------- Como funciona (linha do tempo) ---------- */
.site .processo{background:var(--aco);color:var(--creme);overflow:hidden}
.site .processo .wrap{z-index:1}
.site .processo .cabec h2{color:var(--creme)}
.site .processo .cabec p:not(.sobretitulo){color:var(--claro-suave)}
.site .processo .sobretitulo,.site .orcamento-lado .sobretitulo{color:var(--creme)}
.site .passos{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;counter-reset:p}
/* Linha que se "enche" de coral quando a secção aparece */
.site .passos::before,.site .passos::after{content:"";position:absolute;top:26px;left:26px;right:calc(25% - 26px);height:2px;border-radius:2px}
.site .passos::before{background:var(--linha-escura)}
.site .passos::after{background:var(--coral);transform-origin:left;transform:scaleX(0);transition:transform 1.4s var(--curva) .3s}
.site .passos.visivel::after,html:not(.js) .site .passos::after{transform:scaleX(1)}
.site .passo{position:relative;padding:0 .25rem}
.site .passo::before{counter-increment:p;content:counter(p,decimal-leading-zero);position:relative;z-index:1;display:grid;place-items:center;width:54px;height:54px;border-radius:50%;background:var(--aco);border:2px solid var(--linha-escura);color:var(--creme);font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:.95rem;transition:background-color .4s,border-color .4s,color .4s,box-shadow .4s;transition-delay:calc(.3s + var(--i,0) * .3s)}
.site .passos.visivel .passo::before,html:not(.js) .site .passo::before{background:var(--coral);border-color:var(--coral);color:var(--tinta);box-shadow:0 0 0 6px rgba(242,114,67,.2)}
.site .passo h3{font-size:1.12rem;margin:1.1rem 0 .45rem;font-weight:700;letter-spacing:-.015em}
.site .passo p{font-size:.92rem;color:var(--claro-suave)}

/* ---------- Confiança ---------- */
.site .confianca{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.site .item{background:#fff;border:1px solid var(--linha);border-radius:var(--raio-g);padding:1.75rem;box-shadow:var(--sombra-cartao);transition:transform .35s var(--curva),box-shadow .35s var(--curva),border-color .35s}
.site .item:hover{transform:translateY(-4px);box-shadow:var(--sombra-elevada);border-color:var(--pessego)}
.site .item-icone{display:grid;place-items:center;width:48px;height:48px;border-radius:14px;background:var(--pessego-suave);color:var(--aco);margin-bottom:1.1rem;transition:background-color .3s,color .3s}
.site .item:hover .item-icone{background:var(--aco);color:var(--creme)}
.site .item-icone svg{width:24px;height:24px}
.site .item h3{font-size:1.12rem;font-weight:800;margin-bottom:.45rem;letter-spacing:-.02em;line-height:1.3;color:var(--aco)}
.site .item p{font-size:.94rem;color:var(--tinta-suave)}

/* ---------- Pedido de orçamento ---------- */
.site .orcamento{background:var(--creme-2)}
.site .orcamento-int{display:grid;grid-template-columns:.9fr 1.1fr;gap:1.25rem;align-items:stretch}
.site .orcamento-lado{position:relative;overflow:hidden;background:var(--aco);color:var(--creme);border-radius:var(--raio-g);padding:clamp(1.75rem,4vw,2.75rem)}
.site .orcamento-lado > *:not(.hero-fundo){position:relative;z-index:1}
.site .orcamento-lado h2{font-size:clamp(1.8rem,3.5vw,2.5rem);letter-spacing:-.04em;line-height:1.1;font-weight:800;margin-bottom:.7rem}
.site .orcamento-lado > p:not(.sobretitulo){color:var(--claro-suave)}
.site .vantagens{list-style:none;margin:1.6rem 0;display:grid;gap:.7rem}
.site .vantagens li{display:flex;align-items:center;gap:.7rem;font-size:.96rem}
.site .vantagens li::before{content:"";width:22px;height:22px;flex:none;border-radius:50%;background:var(--coral) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231D2B35' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center/12px no-repeat}
.site .lado-contactos{display:grid;gap:.5rem;padding-top:1.4rem;border-top:1px solid var(--linha-escura)}
.site .lado-contactos > *{display:block;padding:.7rem .9rem;border-radius:12px;background:var(--aco-2);border:1px solid var(--linha-escura);font-size:.95rem;transition:border-color .2s;overflow-wrap:anywhere}
.site .lado-contactos a:hover{border-color:var(--pessego)}
.site .lado-contactos span{display:block;font-family:'IBM Plex Mono',monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--claro-suave);margin-bottom:.1rem}
.site .orcamento-form{background:#fff;border:1px solid var(--linha);border-radius:var(--raio-g);padding:clamp(1.5rem,4vw,2.5rem);box-shadow:var(--sombra-cartao)}
.site .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
.site .form-grid label{display:block;font-size:.85rem;font-weight:600;margin-bottom:.4rem}
.site input[type=text],.site input[type=tel],.site input[type=email],.site select,.site textarea{width:100%;min-height:50px;padding:.8rem 1rem;border:1.5px solid var(--linha);border-radius:12px;font:inherit;font-size:.96rem;background:#FCFBF7;color:var(--tinta);transition:border-color .2s,box-shadow .2s,background-color .2s}
.site input:hover,.site select:hover,.site textarea:hover{border-color:#BFB6A0}
.site input:focus,.site select:focus,.site textarea:focus{outline:none;background:#fff;border-color:var(--aco);box-shadow:0 0 0 4px rgba(44,87,114,.16)}
.site .largo{grid-column:1/-1}
.site textarea{min-height:130px;resize:vertical}
.site .nota{font-size:.83rem;color:var(--tinta-suave);margin-top:.8rem}
.site .nota a{color:var(--aco);text-decoration:underline;text-underline-offset:2px}

/* ---------- Rodapé ---------- */
.site footer{position:relative;background:var(--aco-escuro);color:var(--claro-suave);padding:3.5rem 0 2rem;font-size:.92rem;border-top:4px solid var(--coral)}
.site .rodape-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem;margin-bottom:2.5rem}
.site .marca-rodape{margin-bottom:.9rem}
.site .marca-rodape .m-azul{color:var(--creme)}
.site footer h4{color:var(--creme);font-size:.95rem;margin-bottom:.8rem;font-weight:600}
.site footer a{transition:color .2s}
.site footer a:hover{color:var(--pessego)}
.site footer li{list-style:none;margin-bottom:.4rem}
.site .legal{border-top:1px solid var(--linha-escura);padding-top:1.25rem;font-size:.83rem;color:var(--claro-suave);display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between}

/* ---------- Páginas simples (política de privacidade, termos, sucesso, acompanhamento) ---------- */
.site .pagina-simples{padding:clamp(3rem,6vw,4.5rem) 0;max-width:820px}
.site .pagina-simples h1{font-size:clamp(1.9rem,4vw,2.7rem);letter-spacing:-.04em;line-height:1.1;font-weight:800;margin-bottom:.6rem;color:var(--aco)}
.site .pagina-simples h2{font-size:1.3rem;margin:2rem 0 .6rem;letter-spacing:-.02em;color:var(--aco)}
.site .pagina-simples p{color:var(--tinta-suave);margin-bottom:.9rem}
.site .pagina-simples ul{margin:0 0 .9rem 1.3rem;color:var(--tinta-suave)}
.site .pagina-simples a:not(.btn){color:var(--aco);text-decoration:underline;text-underline-offset:2px}
.site .aviso{background:var(--pessego-suave);border:1px solid var(--pessego);color:#6E2F14;padding:1rem 1.25rem;border-radius:12px;margin:0 0 1.25rem}
.site .badge-estado{display:inline-block;padding:.45rem 1.1rem;border-radius:999px;background:var(--aco);color:var(--creme);font-weight:600;font-size:.95rem}

/* ---------- Responsivo ---------- */
@media (max-width:1000px){
  .site .servicos-grelha{grid-template-columns:1fr 1fr}
  .site .servicos-grelha > :last-child:nth-child(odd){grid-column:1/-1}
  .site .flutua.f1{left:0}
  .site .flutua.f2{right:0}
}
@media (max-width:900px){
  .site .hero-int{grid-template-columns:1fr}
  .site .palco{margin-top:1.5rem}
  .site .calc-int,.site .comparador,.site .orcamento-int{grid-template-columns:1fr}
  .site .talao{position:static}
  .site .passos{grid-template-columns:1fr 1fr;gap:2rem 1.25rem}
  .site .passos::before,.site .passos::after{display:none}
  .site .confianca{grid-template-columns:1fr}
  .site .rodape-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:720px){
  .site .menu-btn{display:block}
  .site .nav{position:absolute;top:68px;left:0;right:0;background:var(--creme);flex-direction:column;align-items:stretch;gap:0;padding:.5rem 4vw 1rem;border-bottom:1px solid var(--linha);box-shadow:0 20px 30px -20px rgba(29,43,53,.35);display:none;margin-left:0}
  .site .nav.aberto{display:flex;animation:surge .2s var(--curva)}
  .site .nav a:not(.tel-topo){padding:.9rem .25rem;border-bottom:1px solid var(--linha);border-radius:0;color:var(--tinta)}
  .site .topo-int > .tel-topo{display:none}
  .site .nav .tel-topo{display:block;text-align:center;margin-top:.9rem}
  .site .servicos-grelha{grid-template-columns:1fr}
  .site .form-grid{grid-template-columns:1fr}
  .site .botoes .btn{flex:1 1 100%}
  .site .contacto-menu{flex:1 1 100%}
  .site .contacto-menu .btn{width:100%}
  .site .contacto-opcoes{left:0;right:0;min-width:0}
  .site .etiqueta{font-size:.74rem;padding:.4rem .8rem .4rem .65rem}
  .site .selos{flex-wrap:nowrap;gap:.5rem}
  .site .selos > div{flex:1 1 0;min-width:0;padding:.7rem .75rem}
  .site .selos b{font-size:1.1rem}
  .site .flutua{font-size:.72rem;padding:.55rem .7rem}
  .site .flutua b{font-size:.8rem}
  .site .flutua i{width:26px;height:26px}
  .site .flutua.f1{top:8%;left:-2%}
  .site .flutua.f2{top:58%;right:-2%}
  .site .passos{grid-template-columns:1fr}
  .site .rodape-grid{grid-template-columns:1fr}
  .site .legal{flex-direction:column;gap:.5rem}
}
@media (prefers-reduced-motion:reduce){
  .site *,.site *::before,.site *::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .js .site [data-revela]{opacity:1}
}

/* ---------- Cortina "Em breve" ---------- */
.site .cortina{position:relative;overflow:hidden;min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;background:var(--aco);color:var(--creme)}
.site .cortina-int{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;justify-content:center;width:min(760px,92vw);margin-inline:auto;padding:4rem 0 3rem;animation:revela .8s var(--curva) both}
.site .cortina-marca{margin-bottom:2.5rem;font-size:1.35rem}
.site .cortina-marca img{width:46px;height:46px;border-radius:12px}
.site .cortina-marca .m-azul{color:var(--creme)}
.site .cortina .etiqueta{align-self:flex-start}
.site .cortina h1{font-size:clamp(2.6rem,7vw,4.6rem);line-height:1;letter-spacing:-.05em;font-weight:900;margin-bottom:1.3rem;text-wrap:balance;color:var(--creme)}
.site .cortina .lead{max-width:52ch;margin-bottom:2.2rem}
.site .cortina-botoes{margin-bottom:1.8rem}
.site .btn-vidro{border-color:rgba(240,237,226,.45);color:var(--creme);background:transparent}
.site .btn-vidro:hover{background:var(--creme);color:var(--aco);border-color:var(--creme);transform:translateY(-2px)}
.site .cortina-info{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.9rem;color:var(--claro-suave)}
.site .cortina-info span{padding:.4rem .85rem;border:1px solid var(--linha-escura);border-radius:999px;background:var(--aco-2)}
.site .cortina-rodape{background:transparent;position:relative;z-index:1;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;width:min(1180px,92vw);margin-inline:auto;padding:1.25rem 0 1.5rem;border-top:1px solid var(--linha-escura);font-size:.82rem;color:var(--claro-suave)}
.site .cortina-rodape a:hover{color:var(--pessego)}

/* Faixa que só quem tem sessão no backoffice vê enquanto a cortina está ativa */
.site .faixa-previsualizacao{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:100;width:max-content;max-width:calc(100vw - 32px);padding:.7rem 1.1rem;border-radius:14px;background:var(--aco-escuro);color:var(--creme);font-size:.85rem;box-shadow:0 16px 40px -12px rgba(0,0,0,.5);border:1px solid var(--coral)}
.site .faixa-previsualizacao a{color:var(--pessego);text-decoration:underline;text-underline-offset:2px;margin-left:.35rem}
@media (max-width:720px){
  .site .cortina-botoes .btn{flex:1 1 100%}
  .site .cortina-rodape{flex-direction:column}
}

/* Chave de acesso na cortina (discreta, só aparece se houver chave definida no backoffice) */
.site .cortina-chave{margin-top:2.2rem;max-width:460px;font-size:.9rem;color:var(--claro-suave)}
.site .cortina-chave summary{cursor:pointer;display:inline-block;padding:.3rem 0;text-decoration:underline;text-underline-offset:3px}
.site .cortina-chave summary:hover{color:var(--creme)}
.site .cortina-chave form{margin-top:.9rem}
.site .cortina-chave label{display:block;font-weight:600;color:var(--creme);margin-bottom:.4rem}
.site .cortina-chave-linha{display:flex;gap:.5rem}
.site .cortina-chave input{flex:1;min-width:0;min-height:50px;padding:.8rem 1rem;border-radius:12px;border:1.5px solid var(--linha-escura);background:var(--aco-2);color:var(--creme);font:inherit}
.site .cortina-chave input:focus{outline:none;border-color:var(--pessego);box-shadow:0 0 0 4px rgba(241,176,147,.25)}
.site .cortina-chave-erro{margin-top:.6rem;color:var(--creme);font-weight:600;border-left:3px solid var(--coral);padding-left:.6rem}

/* =====================================================================
   Topo claro: a página começa em branco sólido e passa a creme à medida que se
   faz scroll (o JS do layout põe --creme-p de 0% a 100%). O hero não tem fundo
   próprio, por isso acompanha a cor da página. A cortina é branca sólida.
   Estas regras sobrepõem-se às versões escuras definidas acima.
   ===================================================================== */
.site{background:color-mix(in srgb,var(--creme) var(--creme-p,100%),#fff)}
.site .topo{background:color-mix(in srgb,color-mix(in srgb,var(--creme) var(--creme-p,100%),#fff) 92%,transparent)}
.site .hero{background:transparent;color:var(--tinta)}
.site .cortina{background:#fff;color:var(--tinta)}
.site .grelha{display:none} /* sem grelha/degradê em nenhuma secção (hero, como funciona, cortina) */
.site .hero h1,.site .cortina h1{color:var(--aco)}
.site .hero h1 em{color:var(--coral-texto)}
.site .hero .lead,.site .cortina .lead{color:var(--tinta-suave)}
.site .etiqueta{background:#fff;border-color:var(--linha);color:var(--tinta)}
.site .hero .btn-secundario{border-color:var(--aco);color:var(--aco);background:transparent}
.site .hero .btn-secundario:hover{background:var(--aco);color:var(--creme);border-color:var(--aco)}
.site .selos{color:var(--tinta-suave)}
.site .selos > div{background:#fff;border-color:var(--linha);box-shadow:var(--sombra-cartao)}
.site .selos b{color:var(--aco)}
/* Telemóvel: círculo pêssego suave por trás e anel tracejado coral */
.site .palco::before{background:var(--pessego-suave)}
.site .palco svg{filter:drop-shadow(0 26px 34px rgba(29,43,53,.28))}
.site .instrucao{color:var(--tinta-suave)}
.site .instrucao b{color:var(--aco)}
.site .reparado .instrucao b{color:var(--coral-texto)}
.site .barra{background:var(--linha)}
.site .reparado .barra i{background:var(--aco)}
.site .repor{color:var(--tinta-suave)}
.site .repor:hover{color:var(--aco)}
.site .flutua{background:#fff}
/* Cortina */
.site .cortina-marca .m-azul{color:var(--aco)}
.site .btn-vidro{border-color:var(--aco);color:var(--aco);background:transparent}
.site .btn-vidro:hover{background:var(--aco);color:var(--creme);border-color:var(--aco)}
.site .cortina-info{color:var(--tinta-suave)}
.site .cortina-info span{background:#fff;border-color:var(--linha)}
.site .cortina-rodape{border-top-color:var(--linha);color:var(--tinta-suave)}
.site .cortina-rodape a:hover{color:var(--aco)}
.site .cortina-chave{color:var(--tinta-suave)}
.site .cortina-chave summary:hover{color:var(--aco)}
.site .cortina-chave label{color:var(--tinta)}
.site .cortina-chave input{background:#fff;border-color:var(--linha);color:var(--tinta)}
.site .cortina-chave input:focus{border-color:var(--aco);box-shadow:0 0 0 4px rgba(44,87,114,.16)}
.site .cortina-chave-erro{color:var(--tinta)}

/* Campo-armadilha contra robôs no formulário (fora do ecrã, invisível para pessoas) */
.site .armadilha{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
