/* ══════════════════════════════════════════════════════════
   Página da agência
   ══════════════════════════════════════════════════════════ */
.ag-topo { padding-top:24px; padding-bottom:0; }
.ag-topo-in { display:flex; gap:22px; align-items:center; background:#fff; border:1px solid var(--borda-lt);
  border-radius:var(--r-md); padding:22px 24px; }
.ag-logo { width:92px; height:92px; flex-shrink:0; background:#fff; border:1px solid var(--borda-lt); border-radius:var(--r);
  display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ag-logo img { width:100%; height:100%; object-fit:contain; padding:8px; }
.ag-logo.sem-logo { background:var(--teal-bg); color:var(--teal); font-size:1.8rem; font-weight:800; border:none; }
.ag-id { min-width:0; flex:1; }
.ag-id h1 { font-size:clamp(1.35rem,2.6vw,1.75rem); line-height:1.25; }
.ag-verif { display:inline-block; vertical-align:middle; font-size:.72rem; font-weight:700; background:var(--verde-bg); color:#00692e;
  padding:3px 9px; border-radius:99px; margin-left:6px; }
.ag-meta { display:flex; flex-wrap:wrap; gap:4px 0; margin-top:6px; color:var(--texto-2); font-size:.92rem; }
.ag-meta > * + *::before { content:'·'; margin:0 8px; color:var(--texto-3); }
.ag-meta a { color:inherit; }
.ag-estrelas { color:#e5a500; letter-spacing:1px; white-space:nowrap; }
.ag-estrelas small { color:var(--texto-3); letter-spacing:0; }
.ag-estrelas.grande { font-size:1.15rem; }

.ag-corpo { display:grid; grid-template-columns:minmax(0,1fr) 360px; gap:30px; align-items:start; padding-top:20px; padding-bottom:64px; }
.ag-principal { min-width:0; }
.ag-bloco { background:#fff; border:1px solid var(--borda-lt); border-radius:var(--r-md); padding:22px 24px; margin-bottom:20px; }
.ag-bloco h2 { font-size:1.2rem; margin-bottom:12px; }
.ag-bloco h2 .mudo { font-weight:500; font-size:1rem; }
.ag-sobre { line-height:1.75; color:var(--texto-2); }
.ag-sobre.curto { max-height:9.2em; overflow:hidden; -webkit-mask-image:linear-gradient(#000 60%, transparent); mask-image:linear-gradient(#000 60%, transparent); }

.ag-carteira { background:transparent; border:none; padding:0; }
.ag-carteira-cab { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.ag-carteira-cab h2 { margin:0; }
.ag-separadores { display:flex; gap:6px; flex-wrap:wrap; }
.ag-separadores a { padding:7px 14px; border-radius:99px; border:1px solid var(--borda); font-size:.86rem; font-weight:600; color:var(--navy); background:#fff; }
.ag-separadores a small { color:var(--texto-3); font-weight:500; margin-left:3px; }
.ag-separadores a.activo { background:var(--navy); border-color:var(--navy); color:#fff; }
.ag-separadores a.activo small { color:rgba(255,255,255,.7); }
.ag-filtros { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin-bottom:16px; }
.ag-filtros .filtro-select { width:auto; min-width:170px; max-width:100%; }
.ag-grelha .cartao-agencia { display:none; }   /* a agência já é a página */
.ag-grelha .cartao-rodape { justify-content:flex-end; }

.ag-equipa { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:14px; }
.ag-membro { text-align:center; display:flex; flex-direction:column; align-items:center; gap:3px; padding:12px 8px; }
.ag-membro-foto { width:72px; height:72px; border-radius:50%; overflow:hidden; background:var(--teal-bg); color:var(--teal);
  display:flex; align-items:center; justify-content:center; font-weight:800; font-size:1.4rem; margin-bottom:6px; }
.ag-membro-foto img { width:100%; height:100%; object-fit:cover; }

.ag-avaliacoes { display:grid; gap:12px; margin-top:14px; }
.ag-aval { border:1px solid var(--borda-lt); border-radius:var(--r); padding:14px 16px; }
.ag-aval p { margin:6px 0; color:var(--texto-2); line-height:1.6; }
.ag-avaliar { margin-top:14px; }
.ag-avaliar summary { list-style:none; display:inline-flex; cursor:pointer; }
.ag-avaliar summary::-webkit-details-marker { display:none; }
.ag-avaliar form { max-width:460px; }
.ag-rating { border:none; display:flex; flex-direction:row-reverse; justify-content:flex-end; gap:2px; margin-bottom:10px; }
.ag-rating legend { width:100%; }
.ag-rating input { position:absolute; opacity:0; pointer-events:none; }
.ag-rating label { font-size:1.8rem; color:var(--borda); cursor:pointer; line-height:1; }
.ag-rating input:checked ~ label, .ag-rating label:hover, .ag-rating label:hover ~ label { color:#e5a500; }
.ag-rating input:focus-visible + label { outline:2px solid var(--teal); border-radius:4px; }

.ag-lateral { position:sticky; top:calc(var(--header-h) + 16px); display:flex; flex-direction:column; gap:16px; }
.ag-contacto { background:#fff; border:1px solid var(--borda); border-radius:var(--r-md); box-shadow:var(--sombra-sm); padding:20px; scroll-margin-top:calc(var(--header-h) + 12px); }
.ag-contacto h2 { font-size:1.05rem; margin-bottom:14px; }
.ag-form { display:flex; flex-direction:column; gap:10px; margin-top:4px; }
.ag-info { background:#fff; border:1px solid var(--borda-lt); border-radius:var(--r-md); padding:16px 18px; display:flex; flex-direction:column; gap:12px; font-size:.9rem; }
.ag-info-l { display:flex; gap:10px; align-items:flex-start; color:var(--texto-2); word-break:break-word; }
.ag-info-i { width:20px; flex-shrink:0; text-align:center; }
.ag-servicos { display:flex; flex-wrap:wrap; gap:6px; }
.ag-servicos span { background:var(--fundo); border-radius:99px; padding:4px 10px; font-size:.78rem; color:var(--texto-2); }

@media (max-width:1100px) { .ag-corpo { grid-template-columns:minmax(0,1fr) 320px; } .ag-grelha.grelha-imoveis.g3 { grid-template-columns:repeat(2,1fr); } }
@media (max-width:960px) {
  .ag-corpo { grid-template-columns:1fr; }
  .ag-lateral { position:static; }   /* no telemóvel: barra fixa com Ligar/Mensagem; o contacto fica no fim */
}
@media (max-width:768px) {
  .ag-topo { padding-top:16px; }
  .ag-topo-in { padding:16px; gap:14px; }
  .ag-logo { width:68px; height:68px; }
  .ag-corpo { padding-top:16px; padding-bottom:40px; gap:16px; }
  .ag-bloco { padding:18px; }
  .ag-filtros .filtro-select { flex:1 1 100%; }
  .ag-grelha.grelha-imoveis.g3 { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  .ag-grelha .cartao-media { aspect-ratio:16/10; }
  .ag-grelha .cartao-corpo { padding:12px 14px; }
}
