@font-face{font-family:'Archivo';font-style:normal;font-weight:400 800;font-display:swap;src:url('/letras/archivo.woff2') format('woff2');}

/* ── A QUINTA VOLTA (08/09/2026, «não gostei do todo branco. faz do zero com
   ideias tuas»). Tela verde-garrafa e texto em creme; as casas em cartões
   brancos com as fotografias reais a dar a luz; mostarda só onde se carrega.
   Nem branco, nem bege, nem escuro-néon: uma cor de casa própria. ──────── */
:root{
  /* 08/09, nona volta («está difícil acertar as cores. faz do zero com ideias
     tuas. vê sites de exemplo»). Vistos ao vivo: idealista.pt, zillow.com e
     gov.uk. O que os três têm em comum é o que aqui está: página BRANCA, texto
     quase preto, tipos grandes, e UMA cor saturada só na acção e no prazo. A
     cor deste site são as fotografias das casas — não um fundo pintado, que foi
     o que se recusou seis vezes hoje (bege, azul-marinho, verde, cobalto,
     carvão, cinza-quente). */
  --tela:#ffffff; --tela-2:#f4f4f5; --tela-3:#ebebed; --linha:#dcdcdf; --linha-2:#efeff1;
  --creme:#111113; --creme-2:#4a4a50; --creme-3:#75757d;
  --carta:#ffffff; --carta-2:#f4f4f5; --tinta:#111113; --tinta-2:#4a4a50; --tinta-3:#75757d; --regua:#dcdcdf;
  --accao:#e8112d; --accao-esc:#c20d24; --accao-tinta:#ffffff;
  --urgente:#e8112d; --aviso:#b45309; --calmo:#0f7a45;
  --urgente-l:#e8112d; --aviso-l:#b45309; --calmo-l:#0f7a45;
  --larg:1320px;
  --letra:'Archivo',ui-sans-serif,system-ui,'Segoe UI',Roboto,sans-serif;
}
*{box-sizing:border-box}
html{color-scheme:light;scroll-behavior:smooth}
body{margin:0;background:var(--tela);color:var(--creme);font-family:var(--letra);font-size:16px;line-height:1.5;
  -webkit-text-size-adjust:100%;font-variant-numeric:tabular-nums}
img{max-width:100%;display:block}
a{color:var(--creme)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--accao);outline-offset:2px}
.salta{position:absolute;left:-9999px}
.salta:focus{left:8px;top:8px;background:var(--tinta);color:#fff;padding:10px 14px;z-index:99}
.env{max-width:var(--larg);margin:0 auto;padding:0 24px}
.vers{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--creme-2);font-weight:700}
.t-urgente{color:var(--urgente)} .t-aviso{color:var(--aviso)} .t-calmo{color:var(--calmo)}

header.topo{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.96);backdrop-filter:blur(8px);border-bottom:2px solid var(--tinta)}
.topo .env{display:flex;align-items:center;gap:26px;min-height:64px;flex-wrap:wrap}
.marca{font-weight:800;font-size:20px;letter-spacing:-.02em;text-decoration:none;color:var(--creme);display:flex;align-items:center;gap:10px}
.marca .pulso{width:12px;height:12px;border-radius:2px;background:var(--accao);position:relative}
.marca .pulso::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--accao);opacity:.6;animation:pulso 1.8s ease-out infinite}
@keyframes pulso{0%{transform:scale(.5);opacity:.8}100%{transform:scale(1.6);opacity:0}}
nav.menu{margin-left:auto;display:flex;gap:2px;flex-wrap:wrap}
nav.menu a{text-decoration:none;color:var(--creme-2);font-size:14px;font-weight:700;padding:8px 11px;border-radius:6px}
nav.menu a:hover{color:var(--creme);background:var(--tela-3)}
nav.menu a[aria-current]{color:var(--creme);background:var(--tela-3)}
nav.menu a.cta{background:var(--accao);color:#fff}
nav.menu a.cta:hover{background:var(--accao-esc);color:#fff}
.datador{border-bottom:1px solid var(--linha);font-size:13px;color:var(--creme-2);background:var(--tela-2)}
.datador .env{display:flex;flex-wrap:wrap;min-height:34px;align-items:center}
.datador span{padding-right:16px;margin-right:16px;border-right:1px solid var(--linha)}
.datador span:last-child{border:none;margin-left:auto;padding:0}
.datador b{color:var(--creme)}
.datador.velha{background:var(--urgente-l);color:#fff}
.datador.velha span{color:#fff}
.datador.velha b,.datador.velha a{color:#fff}

/* ── a montra ─────────────────────────────────────────────────────────── */
.montra{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:36px;padding:30px 0 44px}
.cabeca-montra{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:18px}
.cabeca-montra h1{font-size:clamp(28px,3.8vw,46px);letter-spacing:-.03em;line-height:1.02;margin:0;font-weight:800;color:var(--creme)}
.cabeca-montra h1 small{display:block;font-size:15px;letter-spacing:0;color:var(--creme-2);font-weight:500;margin-top:10px}
.relogio{font-weight:800;font-size:clamp(30px,3.2vw,44px);letter-spacing:-.03em;line-height:1;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;color:var(--urgente-l)}
.relogio .h{font-size:.6em;color:var(--creme-2)}
.relogio small{font-family:var(--letra);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--creme-3);font-weight:700;width:100%;text-align:right}
.filtros{display:flex;gap:12px;flex-wrap:wrap;align-items:end;padding:14px 16px;border-radius:6px;background:var(--tela-2);margin-bottom:22px;border:1px solid var(--linha)}
.filtros label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--creme-2);font-weight:700;display:grid;gap:4px;margin:0}
.filtros select,.filtros input{font:inherit;font-size:14px;padding:0 10px;height:46px;box-sizing:border-box;border:1px solid var(--linha);border-radius:6px;background:#fff;color:var(--tinta);min-width:150px;width:auto;max-width:none}
.filtros .conta{margin-left:auto;font-size:14px;color:var(--creme-2);align-self:center;white-space:nowrap}
.filtros .conta b{color:var(--creme)}
.grelha-casas{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px 18px}
.casa{text-decoration:none;color:var(--tinta);display:block;border-radius:6px;overflow:hidden;background:var(--carta);border:1px solid var(--linha);transition:transform .15s,box-shadow .15s}
.casa:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(17,17,19,.14);border-color:var(--tinta)}
.casa .foto{aspect-ratio:4/3;background:var(--carta-2);position:relative;overflow:hidden}
.casa .foto img{width:100%;height:100%;object-fit:cover}
.casa .foto .sem{position:absolute;inset:0;display:grid;place-items:center;color:var(--tinta-3);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.casa .foto .prazo{position:absolute;left:10px;top:10px;font-size:12px;font-weight:700;padding:4px 9px 4px 8px;border-radius:3px;
  background:rgba(12,12,14,.74);color:#fff;display:inline-flex;align-items:center;gap:6px;letter-spacing:.01em}
.casa .foto .prazo::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;flex:none}
/* o urgente continua a ser um selo cheio: e o unico que tem de gritar */
.casa .foto .prazo.t-urgente{background:var(--urgente-l);font-weight:800}
.casa .foto .prazo.t-urgente::before{background:#fff}
.casa .foto .prazo.t-aviso::before{background:#f0a64a}
.casa .foto .prazo.t-calmo::before{background:#57d08e}
.casa .corpo{padding:12px 14px 14px}
.casa .renda{font-size:24px;font-weight:800;letter-spacing:-.02em;line-height:1;color:var(--tinta)}
.casa .renda small{font-size:13px;font-weight:500;color:var(--tinta-2);letter-spacing:0}
.casa .tipo{margin-top:6px;font-size:14px;color:var(--tinta);font-weight:700}
.casa .tipo span{color:var(--tinta-2);font-weight:500}
.casa .onde{font-size:13.5px;color:#3b3d44;margin-top:2px}
.casa .conc{font-size:12px;letter-spacing:.06em;color:var(--tinta-2);font-weight:700;margin-top:8px;padding-top:8px;border-top:1px solid var(--regua)}
.casa .conc{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.casa .conc .fora{font-weight:700;font-size:13px;color:var(--tinta-2);letter-spacing:0}
/* ⛔ A ligação estica-se por cima do cartão inteiro (o cartão deixou de ser um
   <a> porque um <button> dentro de uma âncora é HTML invalido). O botão de
   copiar sobe acima dessa camada com o z-index. */
.casa{position:relative;scroll-margin-top:96px}
.casa .abre{text-decoration:none;color:inherit}
.casa .abre::after{content:"";position:absolute;inset:0;z-index:0}
/* 44x23 nao e alvo para um dedo: o botao passa a ter 40 px de altura, com o
   texto onde estava (o padding cresce para baixo e para cima) */
.casa .copiar{position:relative;z-index:1;background:none;border:none;padding:9px 6px;margin:-9px -6px;min-height:40px;cursor:pointer;
  font:inherit;font-size:12.5px;font-weight:700;color:var(--tinta-3);text-decoration:underline;
  text-decoration-color:var(--regua);white-space:nowrap}
.casa .copiar:hover{color:var(--accao);text-decoration-color:var(--accao)}
.casa .copiar.feito{color:var(--calmo);text-decoration:none}
/* a casa que veio pela ligação acende-se, para se saber qual é */
.casa:target{outline:3px solid var(--accao);outline-offset:-3px}
.casa:target .foto{background:var(--accao)}
.casa:hover .conc .fora{color:var(--accao)}
.casa[hidden]{display:none}
.vazio{grid-column:1/-1;padding:40px 0;color:var(--creme-2);text-align:center}
.mais-casas{text-align:center;padding:26px 0 4px}
.mais-casas .bt{font-size:15px;padding:14px 28px}
.mais-casas .bt[hidden]{display:none}
.mais-casas .nota{margin-left:auto;margin-right:auto}
.vazio a{color:var(--tinta)}

.trilho{position:sticky;top:80px;display:grid;gap:18px;align-self:start}
.painel{border-radius:6px;overflow:hidden;background:var(--carta);color:var(--tinta);border:1px solid var(--linha)}
.painel .cab{padding:12px 16px;border-bottom:1px solid var(--regua);font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3);font-weight:700;display:flex;justify-content:space-between}
svg.mapa{width:100%;height:auto;display:block;background:#fafafb}
svg.mapa .fundo{fill:#fafafb}
svg.mapa .grade line{stroke:#eeeef0;stroke-width:1}
svg.mapa .grade text{font-size:12px;fill:#a9b3ad}
svg.mapa .terra{fill:#e9e9ec}
svg.mapa .costa{fill:none;stroke:#b9c5bd;stroke-width:1.2;stroke-linejoin:round}
svg.mapa .distritos text{font-size:12px;letter-spacing:.16em;fill:#a3ada7;font-weight:700;text-anchor:middle}
svg.mapa .ponto .brilho{display:none}
svg.mapa .ponto .anel{fill:none;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:anel 2.2s ease-out infinite;animation-delay:calc(var(--i,0)*.25s)}
@keyframes anel{0%{transform:scale(1);opacity:.8}100%{transform:scale(3);opacity:0}}
svg.mapa .ponto .nucleo{stroke:#fff;stroke-width:2}
svg.mapa .ponto.t-urgente .nucleo,svg.mapa .ponto.t-urgente .anel{fill:var(--urgente-l);stroke:var(--urgente-l)}
svg.mapa .ponto.t-aviso .nucleo,svg.mapa .ponto.t-aviso .anel{fill:var(--aviso-l);stroke:var(--aviso-l)}
svg.mapa .ponto.t-calmo .nucleo,svg.mapa .ponto.t-calmo .anel{fill:var(--calmo-l);stroke:var(--calmo-l)}
svg.mapa .ponto.t-urgente .anel,svg.mapa .ponto.t-aviso .anel,svg.mapa .ponto.t-calmo .anel{fill:none}
svg.mapa .ponto .nucleo{stroke:#fff}
svg.mapa .ponto.aceso .nucleo{stroke:var(--tinta);stroke-width:3}
svg.mapa .etiqueta rect{fill:#fff;stroke-width:1}
svg.mapa .etiqueta line{stroke-width:1}
svg.mapa .etiqueta text{font-size:12px;font-weight:800;letter-spacing:.02em;fill:var(--tinta)}
svg.mapa .etiqueta.t-urgente rect,svg.mapa .etiqueta.t-urgente line{stroke:var(--urgente-l)}
svg.mapa .etiqueta.t-aviso rect,svg.mapa .etiqueta.t-aviso line{stroke:var(--aviso-l)}
svg.mapa .etiqueta.t-calmo rect,svg.mapa .etiqueta.t-calmo line{stroke:var(--calmo-l)}
svg.mapa .ilha rect{fill:#fff;stroke:#cfd8d2;stroke-width:1;stroke-dasharray:3 3}
svg.mapa .ilha-com rect{stroke:var(--calmo-l);stroke-dasharray:none}
svg.mapa .ilha-nome{font-size:12px;letter-spacing:.16em;fill:#a3ada7;font-weight:700}
svg.mapa .ilha-n{font-size:12px;fill:var(--tinta-2)}
.painel table{width:100%;border-collapse:collapse;font-size:13.5px}
.painel td{padding:9px 16px;border-bottom:1px solid var(--regua);vertical-align:middle;color:var(--tinta)}
.painel tr:last-child td{border-bottom:none}
.painel tr:hover td,.painel tr.aceso td{background:var(--carta-2)}
.painel td a{text-decoration:none;font-weight:800;color:var(--tinta)}
.painel td a:hover{text-decoration:underline;text-underline-offset:4px}
.painel td .sub{display:block;font-size:12px;color:var(--tinta-2);font-weight:500}
.painel td.n{text-align:right;white-space:nowrap;font-weight:800;font-size:16px}
.painel td.n.t-urgente{color:var(--urgente-l)} .painel td.n.t-aviso{color:var(--aviso-l)} .painel td.n.t-calmo{color:var(--calmo-l)}
.painel td.n small{display:inline;font-size:12px;letter-spacing:.06em;text-transform:lowercase;color:var(--tinta-2);font-weight:600;margin-left:2px}
.painel .pe{padding:10px 16px;font-size:12.5px;color:var(--tinta-2);border-top:1px solid var(--regua)}
.painel .pe a{font-weight:800;text-decoration:none;color:var(--tinta)}

/* ── o corpo ───────────────────────────────────────────────────────────── */
section{padding:38px 0 44px;border-top:1px solid var(--linha)}
h2,h1.rubrica{font-size:clamp(22px,2.6vw,30px);letter-spacing:-.025em;margin:0 0 4px;font-weight:800;line-height:1.1;color:var(--creme)}
h3{font-size:17px;margin:0 0 6px;font-weight:800;letter-spacing:-.01em}
.sub{color:var(--creme-2);margin:0 0 18px;max-width:64ch}
.resposta{font-size:19px;max-width:60ch;margin:0 0 16px;color:var(--creme-2);line-height:1.45}
.resposta b{color:var(--creme)}
.nota{font-size:13.5px;color:var(--creme-3);max-width:66ch;margin-top:10px}
.nota a{color:var(--creme-2)}
.duas{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.tres{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.numeros{display:flex;gap:44px;flex-wrap:wrap}
.numeros div b{display:block;font-size:clamp(40px,5vw,64px);font-weight:800;letter-spacing:-.04em;line-height:.95;color:var(--tinta)}
.numeros div span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--creme-3);font-weight:700}

/* a caixa branca genérica: tabelas, formulários, planos, veredictos vivem em branco */
.branco{background:var(--carta);color:var(--tinta);border-radius:12px;padding:20px 22px}
.branco h2,.branco h3{color:var(--tinta)}
.branco .sub,.branco .nota,.branco p{color:var(--tinta-2)}
.branco a{color:var(--tinta)}

.razao{width:100%;border-collapse:collapse;font-size:15px;background:var(--carta);color:var(--tinta);border-radius:12px;overflow:hidden}
.razao th{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3);font-weight:700;text-align:left;padding:12px 14px;border-bottom:1px solid var(--tinta)}
.razao td{padding:13px 14px;border-bottom:1px solid var(--regua);vertical-align:top}
.razao td.n{text-align:right;white-space:nowrap}
.razao td.d{text-align:right;white-space:nowrap;font-weight:800;font-size:22px;line-height:1}
.razao td.d.t-urgente{color:var(--urgente-l)} .razao td.d.t-aviso{color:var(--aviso-l)} .razao td.d.t-calmo{color:var(--calmo-l)}
.razao td.d small{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--tinta-3);margin-top:3px}
.razao td a.nome{font-weight:800;text-decoration:none;font-size:16px;color:var(--tinta)}
.razao td a.nome:hover{text-decoration:underline;text-underline-offset:4px}
.razao .prog{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3);font-weight:700;display:block;margin-top:2px}
.razao .tip{font-size:13px;color:var(--tinta-2)}
.razao tr:hover td{background:var(--carta-2)}
.rolar{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:12px}
table.tabela-fontes td:first-child{white-space:normal;min-width:200px}
table{border-collapse:collapse;width:100%;font-size:15px;background:var(--carta);color:var(--tinta)}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--regua);white-space:nowrap}
th{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--tinta-3);border-bottom:1px solid var(--tinta);font-weight:700}
td.num{text-align:right}

.passos{counter-reset:p;display:grid;gap:0;max-width:72ch;padding:0;margin:0}
.passos li{list-style:none;counter-increment:p;position:relative;padding:14px 0 14px 60px;border-bottom:1px solid var(--linha);color:var(--creme-2)}
.passos li::before{content:counter(p,decimal-leading-zero);position:absolute;left:0;top:12px;font-weight:800;font-size:26px;letter-spacing:-.04em;color:var(--aviso-l);line-height:1}
.passos b{display:block;color:var(--creme)}
.lista-apoios{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.lista-apoios li{padding:14px 0;border-bottom:1px solid var(--linha)}
.lista-apoios a{font-weight:800;text-decoration:none;font-size:17px;color:var(--creme)}
.lista-apoios a:hover{text-decoration:underline;text-underline-offset:4px}
.lista-apoios p{margin:3px 0 0;color:var(--creme-2);font-size:14.5px}

.bt{display:inline-block;text-decoration:none;font-weight:800;font-size:14px;padding:13px 20px;border-radius:6px;border:1px solid var(--tinta);background:var(--tinta);color:#fff}
.bt.claro{background:transparent;color:var(--creme)}
.bt.accao{background:var(--accao);border-color:var(--accao);color:var(--accao-tinta)}
.bt:hover{background:var(--accao-esc);border-color:var(--accao-esc);color:var(--accao-tinta)}
.botoes{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.et{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--creme-3)}
.et.prog{color:var(--creme-2);border:1px solid var(--linha);padding:2px 7px;border-radius:4px;font-size:12px}
.dados{display:flex;gap:22px;flex-wrap:wrap;margin:10px 0 0;font-size:15px;color:var(--creme-2)}
.dados b{color:var(--creme)}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.chip{font-size:12.5px;font-weight:700;border:1px solid var(--linha);padding:2px 8px;border-radius:99px;color:var(--creme-2)}
.contagem{display:flex;align-items:flex-end;gap:16px;margin:18px 0 8px;flex-wrap:wrap}
.contagem .n{font-size:clamp(56px,9vw,104px);font-weight:800;line-height:.86;letter-spacing:-.045em;color:var(--urgente-l)}
.contagem .txt{font-size:15px;color:var(--creme-2);max-width:26ch;padding-bottom:4px}
.contagem .txt b{color:var(--creme);display:block;font-size:16px}
.cartao{border-top:1px solid var(--linha);padding:14px 0 16px}
.cartao h3 a{text-decoration:none}
.cartao p{margin:0 0 8px;color:var(--creme-2);font-size:14.5px}
.grelha{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 40px}
.prazo{text-align:right;min-width:110px}
.prazo .n{font-size:40px;font-weight:800;line-height:1;display:block;color:var(--urgente-l)}
.prazo .u,.prazo .d{font-size:12.5px;color:var(--creme-2);display:block;margin-top:3px;letter-spacing:.08em;text-transform:uppercase}
details{border-bottom:1px solid var(--linha);padding:12px 0}
summary{cursor:pointer;font-weight:800;font-size:16px;list-style:none;position:relative;padding-left:28px}
summary::-webkit-details-marker{display:none}
summary::before{content:"+";position:absolute;left:0;top:-2px;width:20px;height:20px;line-height:19px;
  text-align:center;border:1.5px solid var(--linha);border-radius:4px;font-size:15px;color:var(--accao)}
details[open] summary::before{content:"−";border-color:var(--accao)}
details:hover summary::before{border-color:var(--accao)}
details p{padding-left:28px}
details p{color:var(--creme-2);margin:10px 0 0;max-width:70ch}
form.caixa{background:var(--carta);color:var(--tinta);border-radius:6px;padding:24px;max-width:640px;border:1px solid var(--linha)}
form.caixa a{color:var(--tinta)}
form.caixa .nota{color:var(--tinta-2)}
label{display:block;font-weight:700;font-size:14px;margin:14px 0 5px}
input,select,textarea{font:inherit;padding:11px 12px;border:1px solid var(--regua);border-radius:6px;background:#fff;width:100%;max-width:420px;color:var(--tinta)}
textarea{max-width:none;resize:vertical}
button{font:inherit;font-weight:800;font-size:14px;padding:13px 20px;border-radius:6px;border:1px solid var(--accao);background:var(--accao);color:#fff;cursor:pointer;margin-top:18px}
button:hover{background:var(--accao-esc);border-color:var(--accao-esc)}
.caixa-aviso{border-left:3px solid var(--accao);padding:10px 16px;font-size:15px;margin:16px 0;background:var(--tela-3);border-radius:0 8px 8px 0;color:var(--creme-2)}
.caixa-aviso b{color:var(--creme)}
.caixa-aviso a{color:var(--creme)}
.veredicto{background:var(--carta);color:var(--tinta);border-radius:6px;padding:16px 18px;margin-top:12px;border:1px solid var(--linha)}
.veredicto h3{color:var(--tinta)}
.veredicto.sim h3::before{content:"✓ ";color:var(--calmo-l)}
.veredicto.nao h3::before{content:"✕ ";color:var(--urgente-l)}
.veredicto ul{margin:8px 0 0;padding-left:20px;color:var(--tinta-2);font-size:15px}
.veredicto .nota,.veredicto a{color:var(--tinta-2)}
#saida .caixa-aviso{background:var(--carta);color:var(--tinta)} #saida .caixa-aviso b{color:var(--tinta)} #saida .caixa-aviso a{color:var(--tinta)}

/* planos */
.planos{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.planos.quatro{grid-template-columns:repeat(4,1fr)}
.planos.duas-col{grid-template-columns:repeat(2,1fr);max-width:900px}
.vigia-grelha{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.vigia-o-que .resposta{margin-bottom:22px}
.preco-grande{font-size:clamp(44px,6vw,72px);font-weight:800;letter-spacing:-.04em;line-height:1;color:var(--creme);margin-bottom:18px}
.preco-grande small{font-size:16px;font-weight:500;color:var(--creme-2);letter-spacing:0}
.lista-check{list-style:none;padding:0;margin:0 0 16px;display:grid;gap:12px}
.lista-check li{padding-left:30px;position:relative;color:var(--creme-2);font-size:15.5px;line-height:1.5}
.lista-check li::before{content:"✓";position:absolute;left:0;top:0;color:var(--accao);font-weight:800;font-size:18px}
.lista-check li b{color:var(--creme)}
.vigia-forma select[multiple]{padding:0;height:auto}
.vigia-forma select[multiple] option{padding:3px 10px}
@media (max-width:900px){ .vigia-grelha{grid-template-columns:1fr;gap:24px} }
.painel.oferta{outline:3px solid var(--accao);outline-offset:-3px}
.painel.oferta .corpo{padding:14px 16px 16px}
.painel.oferta p{margin:0 0 12px;color:var(--tinta-2);font-size:14.5px}
.painel.oferta p b{color:var(--tinta)}
.painel.oferta .bt{display:block;text-align:center}
.painel.oferta .mais{display:block;margin-top:10px;font-size:13px;color:var(--tinta-2)}
.plano{background:var(--carta);color:var(--tinta);border-radius:6px;padding:24px;display:flex;flex-direction:column;border:1px solid var(--linha)}
.plano.destaque{outline:3px solid var(--accao);outline-offset:-3px}
.plano .nome{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3);font-weight:700}
.plano .preco{font-size:40px;font-weight:800;letter-spacing:-.03em;line-height:1;margin:8px 0 2px;color:var(--tinta)}
.plano .preco small{font-size:14px;font-weight:500;color:var(--tinta-2);letter-spacing:0}
.plano .como{font-size:13px;color:var(--tinta-2);margin-bottom:14px}
.plano ul{margin:0 0 16px;padding-left:18px;color:var(--tinta-2);font-size:14.5px;display:grid;gap:6px}
.plano ul b{color:var(--tinta)}
.plano form{margin-top:auto}
.plano input{max-width:none}
.plano button{width:100%;margin-top:10px}
.plano .nota{margin-top:10px;font-size:12.5px;color:var(--tinta-2)}
.plano .bt.claro{color:var(--tinta);border-color:var(--tinta)}
.plano .nota b{color:var(--tinta)}
.paga{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.paga div a{color:var(--tinta)}
.paga div{background:var(--tela-2);border-radius:6px;padding:18px 20px}
.paga div b{display:block;font-size:20px;letter-spacing:-.02em;color:var(--tinta);margin-bottom:6px}
.paga div p{margin:0;color:var(--creme-2);font-size:14.5px}

.fotos-ficha{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin:12px 0 4px}
.fotos-ficha figure{margin:0;background:var(--carta);color:var(--tinta);border-radius:10px;overflow:hidden}
.fotos-ficha img{aspect-ratio:4/3;object-fit:cover;width:100%}
.fotos-ficha figcaption{padding:8px 10px;font-size:13px;color:var(--tinta-2)}
.fotos-ficha figcaption b{color:var(--tinta);font-size:15px}

/* ── a funcionalidade (08/09): para quem serve, o filtro «só as que me servem»,
   o calendário de trás para a frente e a lista de papéis ─────────────── */
.casa .serve{font-size:12.5px;color:#55585f;margin-top:6px;line-height:1.35}
.filtros .paramim{display:inline-flex;align-items:center;gap:8px;flex-wrap:nowrap;text-transform:none;letter-spacing:0;font-size:14px;font-weight:700;color:var(--tinta);
  height:46px;box-sizing:border-box;padding:0 14px;border:1.5px solid var(--accao);border-radius:6px;background:#fff;cursor:pointer;width:auto}
.filtros .paramim input{width:18px;height:18px;min-width:0;margin:0;padding:0;accent-color:var(--accao)}
.filtros .paramim small{font-weight:500;color:var(--tinta-3);font-size:12px;white-space:nowrap}
.filtros .paramim small:empty{display:none}
.filtros .paramim small:not(:empty)::before{content:"— "}
.calendario{margin-top:22px;border:1px solid var(--linha);border-radius:8px;overflow:hidden;background:#fff}
.calendario .cab{display:flex;justify-content:space-between;gap:12px;padding:10px 16px;background:var(--tinta);color:#fff;font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.calendario .cab span:last-child{color:rgba(255,255,255,.6)}
.calendario ol{list-style:none;margin:0;padding:0}
.calendario li{display:grid;grid-template-columns:minmax(150px,auto) 1fr;gap:2px 18px;padding:12px 16px;border-top:1px solid var(--regua);align-items:baseline}
.calendario li:first-child{border-top:none}
.calendario li>span{font-size:14px;color:var(--tinta-2)}
.calendario li>span b{color:var(--tinta)}
.calendario li>span b.ja{color:var(--urgente)}
.calendario li>b{font-size:15px}
.calendario li>small{grid-column:2;font-size:13px;color:var(--tinta-3)}
.calendario .nota{padding:10px 16px;margin:0;border-top:1px solid var(--regua);max-width:none}
details.papeis{margin-top:14px;border:1px solid var(--linha);border-radius:8px;padding:12px 16px}
details.papeis summary{padding-left:28px}
details.papeis summary small{font-weight:500;font-size:13px;color:var(--tinta-3);margin-left:8px}
details.papeis ul{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:8px}
details.papeis label{display:flex;gap:10px;align-items:flex-start;font-size:15px;cursor:pointer;line-height:1.4}
details.papeis input{width:18px;height:18px;margin-top:3px;flex:none;accent-color:var(--accao)}
details.papeis input:checked+*{color:var(--tinta-3)}
@media (max-width:620px){ .calendario li{grid-template-columns:1fr} .calendario li>small{grid-column:1} }
/* os outros apoios dobrados: quem quer, abre */
details.apoios-dobra summary{padding-left:28px;margin-top:6px}
details.apoios-dobra .apoios-compactos{margin-top:12px}
/* ── o funil para o Vigia (08/09) ─────────────────────────────────── */
.bt-grande small{display:block;font-size:13px;font-weight:600;opacity:.82;margin-top:3px;letter-spacing:0}
.conversa .abre .ou{margin:14px 0 0;font-size:15px}
.conversa .abre .ou a{color:rgba(255,255,255,.85);text-decoration-color:rgba(255,255,255,.45)}
.cta-linha{display:grid;grid-template-columns:1fr auto;gap:18px 28px;align-items:center;margin-top:22px;padding:18px 22px;
  background:var(--tela-2);border-radius:8px;border-left:4px solid var(--accao)}
.cta-linha p{margin:0;color:var(--tinta-2);font-size:15px;max-width:70ch}
.cta-linha p b{color:var(--tinta)}
.cta-linha .bt{white-space:nowrap}
.casa.casa-vigia{background:var(--tinta);color:#fff;border-color:var(--tinta);padding:22px 20px;display:flex;flex-direction:column;gap:8px;text-decoration:none}
.casa.casa-vigia .et{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.65);font-weight:700}
.casa.casa-vigia h3{margin:0;font-size:22px;letter-spacing:-.02em;color:#fff;line-height:1.1}
.casa.casa-vigia p{margin:0 0 6px;font-size:14px;color:rgba(255,255,255,.8);line-height:1.45;flex:1}
.casa.casa-vigia .bt{text-align:center}
section#vigia{background:var(--tela-2)}
.exemplo-aviso{background:#fff;border:1px solid var(--linha);border-radius:8px;padding:14px 16px;margin:0 0 20px;font-size:14px;box-shadow:0 8px 24px rgba(17,17,19,.06)}
.ea-cab{display:flex;justify-content:space-between;align-items:center;font-size:12px;color:var(--tinta-3);margin-bottom:8px}
.ea-de{font-weight:800;color:var(--tinta);display:inline-flex;align-items:center;gap:6px}
.ea-de i{width:10px;height:10px;border-radius:2px;background:var(--accao);display:inline-block}
.ea-assunto{font-weight:800;font-size:15px;color:var(--tinta);margin-bottom:10px;line-height:1.3}
.ea-casa{display:flex;gap:12px;align-items:center;padding:10px;background:var(--tela-2);border-radius:6px}
.ea-casa img{width:96px;height:72px;object-fit:cover;border-radius:4px;flex:none}
.ea-casa b{color:var(--tinta);font-size:15px}
.ea-casa span{color:#55585f;font-size:13px}
.ea-pe{margin-top:10px;font-size:12px;color:var(--tinta-3);line-height:1.4}
.confianca{list-style:none;padding:0;margin:14px 0 0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:13px;color:var(--tinta-2)}
.confianca li{padding-left:18px;position:relative}
.confianca li::before{content:"✓";position:absolute;left:0;color:var(--calmo);font-weight:800}
.faq{max-width:860px}
.apoios-compactos{display:grid;grid-template-columns:1fr 1fr;gap:0 40px}
.apoio{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;gap:2px 12px;padding:12px 0;border-top:1px solid var(--linha);text-decoration:none;color:var(--tinta);align-items:baseline}
.apoio .et{grid-row:1/3;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--tinta-3);font-weight:700;width:92px;padding-top:3px}
.apoio b{font-size:15.5px;letter-spacing:-.01em}
.apoio>span:last-child{font-size:13.5px;color:var(--tinta-2)}
.apoio:hover b{color:var(--accao)}
.barra-vigia{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#fff;border-top:2px solid var(--tinta);box-shadow:0 -8px 30px rgba(17,17,19,.12)}
.barra-vigia .env{display:flex;align-items:center;gap:16px;padding-top:10px;padding-bottom:10px}
.barra-vigia span{flex:1;font-size:14.5px;color:var(--tinta-2)}
.barra-vigia span b{color:var(--tinta)}
.barra-vigia span .curto{display:none}
.barra-vigia .bt{white-space:nowrap;padding:11px 18px}
.barra-vigia .fechar{background:none;border:none;font-size:22px;line-height:1;color:var(--tinta-3);cursor:pointer;padding:4px 6px}
.barra-vigia .fechar:hover{color:var(--tinta)}
body.com-barra{padding-bottom:64px}
@media (max-width:760px){
  .cta-linha{grid-template-columns:1fr} .cta-linha .bt{text-align:center}
  .apoios-compactos{grid-template-columns:1fr}
  .barra-vigia span{font-size:13px} .barra-vigia span .longo{display:none} .barra-vigia span .curto{display:inline}
  .casa.casa-vigia{grid-column:1/-1;padding:18px 16px} .casa.casa-vigia h3{font-size:19px}
}
/* paginas de texto corrido: linhas de 120 caracteres nao se leem */
.prosa .env>*{max-width:72ch}
.fecha{background:var(--tinta);color:#fff;border:none}
.fecha .env{padding-top:38px;padding-bottom:38px}
.fecha-miolo{display:grid;grid-template-columns:1.4fr 1fr;gap:32px;align-items:center}
.fecha h2{color:#fff;margin:0 0 8px;font-size:clamp(24px,3vw,32px);letter-spacing:-.02em}
.fecha p{color:rgba(255,255,255,.78);margin:0;font-size:15.5px;max-width:60ch}
.fecha-accao{text-align:right}
.fecha-accao .bt{display:inline-block}
.fecha-accao span{display:block;margin-top:10px;font-size:13px;color:rgba(255,255,255,.6)}
@media (max-width:760px){ .fecha-miolo{grid-template-columns:1fr} .fecha-accao{text-align:left} .fecha-accao .bt{display:block;text-align:center} }
footer{border-top:2px solid var(--tinta);padding:30px 0 48px;font-size:13.5px;color:var(--creme-2);background:var(--tela-2)}
footer .env{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:30px}
footer a{color:var(--creme-2)}
footer .naosomos{border-left:4px solid var(--accao);padding:8px 14px;color:var(--creme);max-width:52ch;margin:0 0 14px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:6px}

@media (max-width:1040px){ .montra{grid-template-columns:1fr} .trilho{position:static} .planos,.planos.quatro,.tres{grid-template-columns:1fr 1fr} .paga{grid-template-columns:1fr 1fr} }
@media (max-width:700px){ .planos,.planos.quatro{grid-template-columns:1fr} }
@media (max-width:700px){ .paga{grid-template-columns:1fr} }
@media (max-width:760px){
  .duas,.lista-apoios{grid-template-columns:1fr} .prazo{text-align:left}
  footer .env{grid-template-columns:1fr} .datador span:last-child{margin-left:0}
  .grelha-casas{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:14px 12px} .casa .renda{font-size:20px}
}
@media (prefers-reduced-motion:reduce){ .marca .pulso::after,svg.mapa .ponto .anel{animation:none} }
@media print{ .topo,.datador,footer,.botoes,.filtros{display:none} body{background:#fff;color:#000} }

/* ── A CONVERSA (08/09: «tem de ajudar pessoas básicas a concorrer. tem de ser um
   site intuitivo»). Uma pergunta de cada vez, botões grandes, zero jargão. ── */
.conversa{max-width:none;margin:0 auto;padding:0 0 30px}
.conversa .passo:not(.abre){max-width:820px;margin:0 auto;padding:36px 24px 0}
.conversa .abre{position:relative;min-height:min(74vh,700px);display:flex;align-items:center;padding:64px 24px 64px;
  background-size:cover;background-position:center}
.conversa .abre::before{content:"";position:absolute;inset:0;z-index:0;
  background:linear-gradient(90deg,rgba(10,10,12,.86) 0%,rgba(10,10,12,.72) 42%,rgba(10,10,12,.25) 78%,rgba(10,10,12,.12) 100%)}
.conversa .abre .miolo{max-width:1180px;margin:0 auto;width:100%;position:relative;z-index:1}
.conversa .abre .miolo>*{max-width:620px}
.conversa .abre .legenda-foto{position:absolute;right:20px;top:16px;z-index:2;font-size:12px;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;font-weight:700;background:rgba(10,10,12,.55);padding:6px 10px;border-radius:4px}
.bt-grande{max-width:560px}
.conversa .abre h1{font-size:clamp(32px,5.4vw,58px);letter-spacing:-.03em;line-height:1.02;margin:0 0 14px;font-weight:800;color:#fff}
.conversa .abre p{font-size:clamp(17px,2.2vw,21px);color:rgba(255,255,255,.9);margin:0 0 22px;max-width:34ch}
.conversa .abre p b{color:#fff}
.bt-grande{display:block;width:100%;text-align:center;font-size:clamp(17px,2.2vw,21px);font-weight:800;padding:20px 24px;border-radius:6px;
  background:var(--accao);color:var(--accao-tinta);text-decoration:none;border:none;cursor:pointer;font-family:inherit}
.bt-grande:hover{background:var(--accao-esc)}
.bt-grande.claro{background:transparent;color:#fff;border:2px solid rgba(255,255,255,.75);margin-top:10px}
.bt-grande.claro:hover{background:#fff;color:var(--tinta);border-color:#fff}
.passo{display:none}
.passo.activo{display:block}
/* ⛔ `.conversa .abre{display:flex}` ganhava a `.passo{display:none}` por
   especificidade, e o heroi ficava SEMPRE visivel — a pergunta abria por
   baixo dele, abaixo da dobra num telemovel. */
.conversa .abre:not(.activo){display:none}
/* o scrollIntoView alinha ao topo da janela — e o cabecalho fixo (64 px) ficava
   por cima da pergunta. A margem de rolagem deixa-o de fora. */
#conversa{scroll-margin-top:84px}
.passo .pergunta{font-size:clamp(24px,3.6vw,38px);letter-spacing:-.025em;line-height:1.08;margin:0 0 6px;font-weight:800;color:var(--creme)}
.passo .ajuda-p{color:var(--creme-2);margin:0 0 18px;font-size:16px}
.opcoes{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.opcoes button{margin:0;padding:18px 14px;font-size:17px;font-weight:800;border-radius:6px;background:var(--carta);color:var(--tinta);border:2px solid var(--linha);text-align:left;line-height:1.2}
.opcoes button small{display:block;font-weight:500;color:var(--tinta-2);font-size:13.5px;margin-top:3px}
.opcoes button:hover{border-color:var(--accao);color:var(--accao)}
.opcoes.largas{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.progresso{display:flex;gap:6px;margin:0 0 22px}
.progresso i{height:5px;flex:1;border-radius:99px;background:var(--linha)}
.progresso i.feito{background:var(--accao)}
.voltar{background:none;border:none;color:var(--creme-3);font-weight:700;padding:0;margin:18px 0 0;cursor:pointer;font-size:14px}
.voltar:hover{color:var(--creme)}
.resultado .grande{font-size:clamp(34px,6vw,64px);letter-spacing:-.035em;line-height:1;font-weight:800;color:var(--creme);margin:0 0 8px}
.resultado .grande b{color:var(--urgente-l)}
.resultado .prazo-txt{font-size:19px;color:var(--creme-2);margin:0 0 22px}
.resultado .prazo-txt b{color:var(--creme)}
.tres-casas{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:0 0 22px}
.saidas{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:8px}
.saida{background:var(--carta);color:var(--tinta);border-radius:6px;padding:20px;display:flex;flex-direction:column;border:1px solid var(--linha)}
.saida.paga{outline:3px solid var(--accao);outline-offset:-3px}
.saida .nome{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tinta-3);font-weight:700}
.saida h3{font-size:22px;letter-spacing:-.02em;margin:6px 0 8px;color:var(--tinta)}
.saida p{margin:0 0 14px;color:var(--tinta-2);font-size:15px}
.saida .bt{margin-top:auto;text-align:center;display:block}
.saida .bt.accao{color:var(--accao-tinta)}
.saida .bt.claro{color:var(--tinta);border-color:var(--tinta)}
.saida .bt.claro:hover{color:#fff}
.passos4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:8px}
.passos4 div{background:var(--tela-2);border-radius:6px;padding:18px;border-top:3px solid var(--accao)}
.passos4 div b{display:block;font-size:30px;color:var(--accao);letter-spacing:-.04em;line-height:1;margin-bottom:8px}
.passos4 div span{color:var(--creme-2);font-size:14.5px}
.passos4 div span strong{color:var(--creme)}
@media (max-width:760px){ .tres-casas{grid-template-columns:1fr 1fr} .saidas{grid-template-columns:1fr} .passos4{grid-template-columns:1fr 1fr} }
/* ⛔ Depois da dos 760 DE PROPOSITO: as duas casam num telemovel e quem ganha
   e a ultima escrita, nao a mais estreita. */
@media (max-width:620px){
  .passos4{grid-template-columns:1fr}
  /* a barra da data: sem tracos pendurados no fim de cada linha */
  .datador .env{display:block;padding-top:6px;padding-bottom:6px}
  .datador span{display:block;padding:1px 0;margin:0;border:none}
  .datador span:last-child{margin-left:0}
  /* o heroi: manda o texto, nao a fotografia */
  .conversa .abre{min-height:auto;padding:30px 20px 52px}
  /* ⛔ a legenda da foto vai para BAIXO: em cima, com o heroi encolhido,
     caia por cima do titulo — encolher uma caixa move o que esta preso a ela */
  .conversa .abre .legenda-foto{top:auto;bottom:12px;left:20px;right:20px;font-size:10.5px;
    letter-spacing:.1em;background:rgba(10,10,12,.5);padding:5px 8px}
  /* o cabecalho: 130 px fixos num ecra de 844 era um terco do telemovel */
  header.topo{position:static}
  .topo .env{min-height:0;padding-top:8px;padding-bottom:6px;gap:6px 14px}
  .marca{font-size:18px}
  nav.menu{gap:0;margin-left:0;width:100%}
  nav.menu a{padding:7px 9px;font-size:13.5px}
  /* os filtros deixam de ficar aos degraus: cada um ocupa a linha inteira */
  .filtros{display:grid;grid-template-columns:1fr;gap:12px}
  .filtros label{width:100%}
  .filtros select,.filtros input{width:100%;min-width:0}
  .filtros .conta{margin-left:0}
  .conversa .abre::before{background:linear-gradient(180deg,rgba(10,10,12,.86) 0%,rgba(10,10,12,.74) 70%,rgba(10,10,12,.8) 100%)}
}
