/* ------------------------------------------------------------------ */
/* Pinhalmed — camada v8                                               */
/* Paleta e tipografia alinhadas com o padrão Pinhalmed Charneca.      */
/* Squad Digital — www.squaddigital.pt                                 */
/* ------------------------------------------------------------------ */

:root {
  --pmd-azul:          #004AAD;   /* azul da barra superior */
  --pmd-azul-filtro:   #0B428B;   /* filtro do banner (tom médio) */
  --pmd-azul-fundo:    #0B3677;   /* filtro do banner (tom profundo) */
  --pmd-azul-escuro:   #072a5c;
  --pmd-verde:         #89D957;   /* verde de destaque */
  --pmd-verde-borda:   #6FC33C;
  --pmd-verde-texto:   #17330a;
  --pmd-claro:         #F7F8FA;
  --pmd-cinza:         #5b6672;
}

/* Tokens do tema (o ficheiro base define-os em HSL sem hsl()) */
:root, :host, .dark {
  --primary: 214 100% 34%;
  --primary-foreground: 0 0% 100%;
  --secondary: 214 100% 96%;
  --secondary-foreground: 214 100% 34%;
  --accent: 214 100% 96%;
  --accent-foreground: 214 100% 34%;
  --ring: 214 100% 34%;
  --input: 214 32% 91%;
  --sidebar-primary: 214 100% 34%;
  --sidebar-ring: 214 100% 34%;
  --sidebar-accent: 214 100% 96%;
  --sidebar-accent-foreground: 214 100% 34%;
  --chart-1: 214 100% 34%;
  --chart-2: 214 100% 96%;
  --app-font-sans: "DM Sans", "Inter", system-ui, -apple-system, sans-serif;
  --app-font-serif: "Fraunces", "Playfair Display", Georgia, serif;
}

body { font-family: var(--app-font-sans); }

/* Títulos serifados, como no padrão de referência */
.font-serif { font-family: var(--app-font-serif); font-optical-sizing: auto; }

/* Botão verde de marcação — tom do padrão de referência */
.pmd-cta-verde {
  border-color: var(--pmd-verde-borda) !important;
  background: var(--pmd-verde) !important;
  color: var(--pmd-verde-texto) !important;
  font-family: var(--app-font-sans) !important;
  box-shadow: 0 10px 25px rgba(111, 195, 60, .32) !important;
}
.pmd-cta-verde:hover {
  background: var(--pmd-verde-borda) !important;
  box-shadow: 0 14px 30px rgba(111, 195, 60, .45) !important;
}
.pmd-cta-verde:focus-visible { outline-color: var(--pmd-azul-fundo) !important; }


/* ------------------------------------------------------------------ */
/* Linha de contactos no topo do cabeçalho                             */
/* ------------------------------------------------------------------ */

.pmd-topo {
  background: #003a86;
  color: #fff;
  font-family: var(--app-font-sans);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}
.pmd-topo-interior {
  max-width: 80rem;
  margin: 0 auto;
  padding: .38rem 1rem .3rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: .1rem 1.5rem;
}

.pmd-topo-tels { display: flex; flex-wrap: wrap; align-items: center; gap: .1rem .5rem; }
.pmd-topo-etiqueta {
  font-size: .7rem; font-weight: 700; letter-spacing: .14em;
  text-transform: uppercase; color: var(--pmd-verde); margin-right: .25rem;
}
.pmd-topo-item { display: inline-flex; align-items: center; gap: .5rem; }
.pmd-topo-sep { color: rgba(255, 255, 255, .32); }
.pmd-topo-tels a {
  color: #fff; font-size: .84rem; font-weight: 600;
  letter-spacing: .01em; text-decoration: none; white-space: nowrap;
}
.pmd-topo-tels a:hover { color: var(--pmd-verde); }
.pmd-topo-tels sup { font-size: .68em; opacity: .8; margin-left: .08em; }

.pmd-topo-acoes { display: flex; flex-wrap: wrap; align-items: center; gap: .35rem 1rem; }
.pmd-topo-acoes a {
  display: inline-flex; align-items: center; gap: .4rem;
  font-size: .82rem; font-weight: 600; text-decoration: none; white-space: nowrap;
}
.pmd-topo-area { color: var(--pmd-verde); }
.pmd-topo-area:hover { color: #fff; }
.pmd-topo-email { color: rgba(255, 255, 255, .9); }
.pmd-topo-email:hover { color: var(--pmd-verde); }
.pmd-topo-acoes a:focus-visible,
.pmd-topo-tels a:focus-visible { outline: 2px solid #fff; outline-offset: 3px; border-radius: 3px; }

.pmd-topo-nota {
  order: 3; flex: 1 0 100%; margin: 0;
  text-align: right; font-size: .64rem; line-height: 1.35;
  color: rgba(255, 255, 255, .6);
}

@media (max-width: 900px) {
  .pmd-topo-interior { justify-content: center; padding: .45rem 1rem .35rem; gap: .25rem .9rem; }
  .pmd-topo-tels { justify-content: center; }
  .pmd-topo-acoes { justify-content: center; }
  .pmd-topo-nota { text-align: center; }
}
@media (max-width: 480px) {
  .pmd-topo-tels a { font-size: .8rem; }
  .pmd-topo-acoes a { font-size: .78rem; }
  .pmd-topo-nota { font-size: .6rem; }
}

/* Banner — filtro azul escuro uniforme e destaque verde no título */
.pmd-hero-filtro { background: rgba(9, 52, 112, .92); }
.pmd-hero-destaque { color: var(--pmd-verde); font-style: italic; }
.pmd-hero-topo {
  align-items: flex-start;
  padding-top: 12.5rem;
  padding-bottom: 3.5rem;
}
@media (min-width: 901px) {
  /* alinhado ao topo, e não centrado: deixa espaço em baixo para a lista
     de resultados da pesquisa abrir sem sair da janela */
  .pmd-hero-topo { align-items: flex-start; padding-top: 10rem; padding-bottom: 5rem; }
}

/* Os ícones laterais tapavam o texto do banner em ecrãs estreitos.
   Aí já existem os contactos no topo e os botões de marcação em baixo. */
@media (max-width: 1179px) { .pmd-icones-lat { display: none !important; } }
/* acima disso, o banner reserva espaço à direita para não passar por baixo deles */
@media (min-width: 1180px) { .pmd-hero-grelha { padding-right: 4.5rem; } }

/* ------------------------------------------------------------------ */
/* Barra de atalhos (logo abaixo do banner)                            */
/* ------------------------------------------------------------------ */

.pmd-barra-atalhos {
  background: var(--pmd-claro);
  border-bottom: 1px solid #e3e7ee;
}
.pmd-barra-atalhos .pmd-ba-interior {
  max-width: 80rem;
  margin: 0 auto;
  padding: 1.6rem 1rem 1.8rem;
}
.pmd-ba-titulo {
  margin: 0 0 1rem;
  text-align: center;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--pmd-azul);
}
.pmd-ba-lista {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .9rem;
}
.pmd-ba-quadro {
  flex: 0 1 15rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .55rem;
  min-height: 100%;
  padding: 1.15rem 1.15rem 1.25rem;
  border: 1px solid #dbe2ec;
  border-radius: 1rem;
  background: #fff;
  color: inherit;
  text-align: left;
  text-decoration: none;
  cursor: pointer;
  font-family: var(--app-font-sans);
  transition: border-color .18s, box-shadow .18s, transform .18s;
}
.pmd-ba-quadro:hover {
  border-color: var(--pmd-azul);
  box-shadow: 0 12px 26px rgba(0, 74, 173, .14);
  transform: translateY(-3px);
}
.pmd-ba-quadro:focus-visible { outline: 3px solid var(--pmd-azul); outline-offset: 3px; }

.pmd-ba-ico {
  display: grid;
  place-items: center;
  width: 46px; height: 46px;
  border-radius: .85rem;
  background: #e8f0fb;
  color: var(--pmd-azul);
  transition: background .18s, color .18s;
}
.pmd-ba-quadro:hover .pmd-ba-ico { background: var(--pmd-azul); color: #fff; }

.pmd-ba-rotulo {
  font-size: .98rem; font-weight: 700; line-height: 1.25; color: #0f172a;
}
.pmd-ba-nota { font-size: .8rem; line-height: 1.4; color: var(--pmd-cinza); }

.pmd-ba-quadro--destaque {
  border-color: var(--pmd-verde-borda);
  background: #f4fbee;
}
.pmd-ba-quadro--destaque .pmd-ba-ico { background: var(--pmd-verde); color: var(--pmd-verde-texto); }
.pmd-ba-quadro--destaque:hover {
  border-color: var(--pmd-verde-borda);
  box-shadow: 0 12px 26px rgba(111, 195, 60, .3);
}
.pmd-ba-quadro--destaque:hover .pmd-ba-ico { background: var(--pmd-verde-borda); color: var(--pmd-verde-texto); }
.pmd-ba-quadro--destaque:focus-visible { outline-color: var(--pmd-verde-borda); }

@media (max-width: 700px) {
  .pmd-ba-quadro { flex: 1 1 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .pmd-ba-quadro, .pmd-ba-ico { transition: none; }
  .pmd-ba-quadro:hover { transform: none; }
}

/* ------------------------------------------------------------------ */
/* Cartão Germano de Sousa — Centro de Anatomia Patológica             */
/* ------------------------------------------------------------------ */

.pmd-anatomia {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem 1.4rem;
  padding: 1.1rem 1.35rem;
  border: 1px solid #e3e7ee;
  border-left: 4px solid var(--pmd-azul);
  border-radius: 1rem;
  background: #fff;
  text-decoration: none;
  color: inherit;
  transition: border-color .18s, box-shadow .18s, transform .18s;
}
.pmd-anatomia:hover {
  border-color: var(--pmd-azul);
  box-shadow: 0 10px 24px rgba(0, 74, 173, .12);
  transform: translateY(-2px);
}
.pmd-anatomia:focus-visible { outline: 3px solid var(--pmd-azul); outline-offset: 3px; }
.pmd-anatomia img { height: 42px; width: auto; object-fit: contain; flex: 0 0 auto; }
.pmd-anatomia-texto { flex: 1 1 16rem; min-width: 0; }
.pmd-anatomia-texto strong {
  display: block;
  font-size: .95rem;
  color: #111827;
  margin-bottom: .15rem;
}
.pmd-anatomia-texto span { display: block; font-size: .85rem; line-height: 1.45; color: var(--pmd-cinza); }
.pmd-anatomia-seta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  font-size: .85rem;
  font-weight: 700;
  color: var(--pmd-azul);
}
@media (prefers-reduced-motion: reduce) {
  .pmd-anatomia { transition: none; }
  .pmd-anatomia:hover { transform: none; }
}

/* ------------------------------------------------------------------ */
/* Rodapé — bloco legal                                                */
/* ------------------------------------------------------------------ */

.pmd-rodape-legal {
  display: flex;
  flex-wrap: wrap;
  gap: .4rem 1rem;
  align-items: center;
  justify-content: center;
}
.pmd-rodape-legal a,
.pmd-rodape-legal button {
  color: rgba(255, 255, 255, .78);
  font-size: .82rem;
  background: none;
  border: 0;
  padding: 0;
  cursor: pointer;
  text-decoration: none;
  font-family: inherit;
}
.pmd-rodape-legal a:hover,
.pmd-rodape-legal button:hover { color: #fff; text-decoration: underline; }
.pmd-rodape-legal a:focus-visible,
.pmd-rodape-legal button:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }

/* ------------------------------------------------------------------ */
/* Consentimento de cookies                                            */
/* ------------------------------------------------------------------ */

.pmd-ck-barra {
  position: fixed;
  left: 0; right: 0; bottom: 0;
  z-index: 80;
  padding: 1.1rem 1rem calc(1.1rem + env(safe-area-inset-bottom, 0px));
  background: #fff;
  border-top: 4px solid var(--pmd-azul);
  box-shadow: 0 -12px 32px rgba(7, 42, 92, .18);
  font-family: var(--app-font-sans);
}
.pmd-ck-interior {
  max-width: 72rem; margin: 0 auto;
  display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem;
}
.pmd-ck-texto { flex: 1 1 22rem; font-size: .92rem; line-height: 1.55; color: #1f2937; margin: 0; }
.pmd-ck-texto a { color: var(--pmd-azul); font-weight: 600; }
.pmd-ck-acoes { display: flex; flex-wrap: wrap; gap: .6rem; }
.pmd-ck-bt {
  min-height: 46px; padding: .6rem 1.3rem;
  border-radius: 999px; border: 2px solid var(--pmd-azul);
  background: #fff; color: var(--pmd-azul);
  font: 700 .92rem/1 var(--app-font-sans); cursor: pointer;
  transition: background .18s, color .18s;
}
.pmd-ck-bt:hover { background: var(--pmd-azul); color: #fff; }
.pmd-ck-bt--aceitar { background: var(--pmd-verde); border-color: var(--pmd-verde-borda); color: var(--pmd-verde-texto); }
.pmd-ck-bt--aceitar:hover { background: var(--pmd-verde-borda); color: var(--pmd-verde-texto); }
.pmd-ck-bt:focus-visible { outline: 3px solid var(--pmd-azul-fundo); outline-offset: 3px; }

.pmd-ck-overlay {
  position: fixed; inset: 0; z-index: 90;
  display: flex; align-items: center; justify-content: center;
  padding: 1rem; background: rgba(7, 42, 92, .55);
}
.pmd-ck-painel {
  width: min(38rem, 100%); max-height: 90vh; overflow: auto;
  background: #fff; border-radius: 1.25rem; padding: 1.75rem;
  font-family: var(--app-font-sans);
}
.pmd-ck-painel h2 { margin: 0 0 .5rem; font: 700 1.4rem/1.25 var(--app-font-serif); color: #111827; }
.pmd-ck-painel > p { margin: 0 0 1.25rem; font-size: .92rem; line-height: 1.6; color: #374151; }
.pmd-ck-opcao {
  display: flex; gap: .85rem; padding: .95rem 0; border-top: 1px solid #e5e7eb;
}
.pmd-ck-opcao input { margin-top: .25rem; width: 20px; height: 20px; accent-color: var(--pmd-azul); }
.pmd-ck-opcao strong { display: block; font-size: .95rem; color: #111827; }
.pmd-ck-opcao span { display: block; font-size: .85rem; line-height: 1.5; color: var(--pmd-cinza); }
.pmd-ck-rodape { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-end; margin-top: 1.35rem; }

/* ------------------------------------------------------------------ */
/* Páginas institucionais (HTML estático)                              */
/* ------------------------------------------------------------------ */

.pmd-pagina {
  margin: 0;
  background: var(--pmd-claro);
  color: #1f2937;
  font: 400 1rem/1.65 var(--app-font-sans);
  -webkit-font-smoothing: antialiased;
}
.pmd-pg-topo { background: var(--pmd-azul); color: #fff; }
.pmd-pg-topo-interior {
  max-width: 72rem; margin: 0 auto; padding: 1rem;
  display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem;
}
.pmd-pg-topo img { height: 34px; width: auto; }
.pmd-pg-topo nav { display: flex; flex-wrap: wrap; gap: 1.1rem; font-size: .92rem; }
.pmd-pg-topo nav a { color: rgba(255, 255, 255, .88); text-decoration: none; font-weight: 500; }
.pmd-pg-topo nav a:hover { color: #fff; text-decoration: underline; }

.pmd-pg-cabecalho { background: var(--pmd-azul-fundo); color: #fff; padding: 3.5rem 1rem 3rem; }
.pmd-pg-cabecalho div { max-width: 72rem; margin: 0 auto; }
.pmd-pg-cabecalho p.pmd-pg-sobretitulo {
  margin: 0 0 .75rem; font-size: .74rem; font-weight: 700;
  letter-spacing: .18em; text-transform: uppercase; color: var(--pmd-verde);
}
.pmd-pg-cabecalho h1 { margin: 0 0 .75rem; font: 700 clamp(2rem, 5vw, 3rem)/1.12 var(--app-font-serif); }
.pmd-pg-cabecalho p.pmd-pg-resumo { margin: 0; max-width: 44rem; font-size: 1.05rem; color: rgba(255, 255, 255, .85); }

.pmd-pg-conteudo { max-width: 52rem; margin: -2rem auto 4rem; padding: 0 1rem; }
.pmd-pg-cartao { background: #fff; border-radius: 1.25rem; padding: clamp(1.5rem, 4vw, 3rem); box-shadow: 0 12px 40px rgba(7, 42, 92, .08); }
.pmd-pg-cartao h2 { margin: 2.25rem 0 .75rem; font: 700 1.4rem/1.3 var(--app-font-serif); color: #111827; }
.pmd-pg-cartao h2:first-child { margin-top: 0; }
.pmd-pg-cartao h3 { margin: 1.5rem 0 .5rem; font: 700 1.05rem/1.4 var(--app-font-sans); color: var(--pmd-azul); }
.pmd-pg-cartao p, .pmd-pg-cartao li { color: #374151; }
.pmd-pg-cartao ul, .pmd-pg-cartao ol { padding-left: 1.25rem; }
.pmd-pg-cartao li { margin-bottom: .4rem; }
.pmd-pg-cartao a { color: var(--pmd-azul); font-weight: 600; }
.pmd-pg-cartao table { width: 100%; border-collapse: collapse; margin: 1rem 0; font-size: .92rem; }
.pmd-pg-cartao th, .pmd-pg-cartao td { border: 1px solid #e5e7eb; padding: .6rem .75rem; text-align: left; vertical-align: top; }
.pmd-pg-cartao th { background: var(--pmd-claro); font-weight: 700; color: #111827; }

.pmd-pg-aviso {
  margin: 1.5rem 0; padding: 1rem 1.15rem;
  border-left: 4px solid var(--pmd-verde-borda); border-radius: .5rem;
  background: #f4fbee; font-size: .9rem; color: #26401a;
}
.pmd-pg-rodape { background: var(--pmd-azul-fundo); color: rgba(255, 255, 255, .78); padding: 2.5rem 1rem; }
.pmd-pg-rodape div { max-width: 72rem; margin: 0 auto; font-size: .85rem; }
.pmd-pg-rodape a { color: #fff; }
.pmd-pg-rodape .pmd-rodape-legal { justify-content: flex-start; margin-bottom: 1rem; }

.pmd-pg-voltar {
  display: inline-flex; align-items: center; gap: .4rem; margin-top: 2rem;
  font-weight: 700; color: var(--pmd-azul); text-decoration: none;
}
.pmd-pg-voltar:hover { text-decoration: underline; }

/* FAQ */
.pmd-faq details {
  border: 1px solid #e5e7eb; border-radius: .85rem;
  padding: .95rem 1.15rem; margin-bottom: .7rem; background: #fff;
}
.pmd-faq details[open] { border-color: var(--pmd-azul); }
.pmd-faq summary { cursor: pointer; font-weight: 700; color: #111827; }
.pmd-faq summary:focus-visible { outline: 3px solid var(--pmd-azul); outline-offset: 3px; }
.pmd-faq details p { margin: .7rem 0 0; }

/* Contactos */
.pmd-unidades { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr)); margin: 1.25rem 0; }
.pmd-unidade { border: 1px solid #e5e7eb; border-radius: 1rem; padding: 1.1rem 1.25rem; background: var(--pmd-claro); }
.pmd-unidade h3 { margin: 0 0 .35rem; }
.pmd-unidade p { margin: 0 0 .35rem; font-size: .9rem; }

/* ------------------------------------------------------------------ */
/* Cartões de unidade com dois destinos                                */
/* ------------------------------------------------------------------ */

.pmd-cartao-clinica { position: relative; }
/* o link interno cobre o cartão todo, sem aninhar âncoras */
.pmd-link-cobre::after { content: ""; position: absolute; inset: 0; z-index: 0; }
.pmd-link-topo { position: relative; z-index: 1; }

.pmd-bt-externo {
  display: inline-flex; align-items: center; gap: .4rem;
  min-height: 38px; padding: .38rem 1rem;
  border: 2px solid var(--pmd-azul); border-radius: 999px;
  font: 700 .82rem/1 var(--app-font-sans);
  color: var(--pmd-azul); text-decoration: none;
  transition: background .18s, color .18s;
}
.pmd-bt-externo:hover { background: var(--pmd-azul); color: #fff; }
.pmd-bt-externo:focus-visible { outline: 3px solid var(--pmd-azul); outline-offset: 3px; }

/* ------------------------------------------------------------------ */
/* Aviso da página de acordos                                          */
/* ------------------------------------------------------------------ */

.pmd-aviso-acordos {
  max-width: 44rem;
  margin: 0 auto 2rem;
  padding: .95rem 1.2rem;
  border: 1px solid #dbe2ec;
  border-left: 4px solid var(--pmd-azul);
  border-radius: .75rem;
  background: #fff;
  font-size: .95rem;
  line-height: 1.55;
  color: #374151;
  text-align: left;
}
.pmd-aviso-acordos strong { color: var(--pmd-azul); }

/* ------------------------------------------------------------------ */
/* Navegação: mais itens exigem um ponto de corte mais alto            */
/* ------------------------------------------------------------------ */

@media (max-width: 1180px) {
  .pmd-nav-desk { display: none !important; }
  .pmd-nav-burger { display: block !important; }
  .pmd-nav-mob { display: flex !important; }
}

/* ------------------------------------------------------------------ */
/* Ícones flutuantes laterais — verde ao passar o rato                 */
/* ------------------------------------------------------------------ */

.pmd-flutuante:hover,
.pmd-flutuante:focus-visible {
  background: var(--pmd-verde) !important;
  color: var(--pmd-verde-texto) !important;
}
.pmd-flutuante:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }

/* ------------------------------------------------------------------ */
/* Pinhalmed PSI                                                       */
/* ------------------------------------------------------------------ */

.pmd-psi-fundo { background: #225d8e; }
.pmd-psi-texto { color: #225d8e; }

/* ------------------------------------------------------------------ */
/* Banner em duas colunas                                              */
/* ------------------------------------------------------------------ */

.pmd-hero-conteudo { position: relative; z-index: 30; }

/* Enquanto a lista de resultados está aberta, os botões flutuantes de
   marcação saem da frente — ficavam por cima da lista. */
body.pmd-pesquisa-aberta .pmd-mo-lancadores {
  opacity: 0;
  visibility: hidden;
  transition: opacity .15s ease;
}

.pmd-hero-grelha {
  display: grid;
  gap: 2.5rem;
  align-items: center;
  width: 100%;
  text-align: left;
}
@media (min-width: 1024px) {
  .pmd-hero-grelha {
    grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
    gap: 3.5rem;
  }
}

.pmd-hero-coluna { min-width: 0; }

.pmd-hero-sobretitulo {
  display: flex;
  align-items: center;
  gap: .85rem;
  margin: 0 0 1.5rem;
  font-size: .74rem;
  font-weight: 700;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, .88);
}
.pmd-hero-traco {
  display: block;
  width: 2.4rem;
  height: 3px;
  border-radius: 2px;
  background: var(--pmd-verde);
  flex: 0 0 auto;
}

.pmd-hero-acoes {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .85rem;
  margin: 0 0 2.25rem;
}
/* dentro do banner o botão verde deixa de estar centrado */
.pmd-hero-acoes .pmd-cta-verde { margin: 0; }

.pmd-hero-bt-claro {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 1rem 2rem;
  border: 2px solid rgba(255, 255, 255, .5);
  border-radius: 999px;
  color: #fff;
  font: 700 1.05rem/1 var(--app-font-sans);
  text-decoration: none;
  transition: background .18s, color .18s, border-color .18s;
}
.pmd-hero-bt-claro:hover { background: #fff; color: var(--pmd-azul); border-color: #fff; }
.pmd-hero-bt-claro:focus-visible { outline: 3px solid var(--pmd-verde); outline-offset: 3px; }

.pmd-hero-numeros {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .5rem 1.1rem;
  font-size: .92rem;
  font-weight: 500;
  color: rgba(255, 255, 255, .8);
}
.pmd-hero-numeros span[aria-hidden] { color: var(--pmd-verde); }

/* ---- cartão de pesquisa ---- */

.pmd-hero-cartao {
  background: #f7f8fa;
  border-radius: 1.5rem;
  padding: clamp(1.5rem, 3vw, 2.25rem);
  box-shadow: 0 30px 60px rgba(4, 24, 56, .35);
  color: #1f2937;
  min-width: 0;
}
.pmd-hero-cartao-topo {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  padding-bottom: 1.1rem;
  border-bottom: 1px solid #e3e7ee;
}
.pmd-hero-cartao-etiqueta {
  margin: 0;
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--pmd-azul);
}
.pmd-hero-cartao-emblema {
  display: grid;
  place-items: center;
  width: 40px; height: 40px;
  border-radius: 999px;
  background: var(--pmd-verde);
  color: var(--pmd-verde-texto);
  flex: 0 0 auto;
}
.pmd-hero-cartao-titulo {
  margin: 1.4rem 0 .65rem;
  font: 700 clamp(1.5rem, 3vw, 2rem)/1.15 var(--app-font-serif);
  color: #0f172a;
}
.pmd-hero-cartao-texto {
  margin: 0 0 1.4rem;
  font-size: .98rem;
  line-height: 1.55;
  color: #4b5563;
}

/* a pesquisa ocupa a largura do cartão */
.pmd-hero-pesquisa > div { max-width: none !important; margin-left: 0; margin-right: 0; }
.pmd-hero-pesquisa > div > div:first-child {
  border: 1px solid #dbe2ec;
  box-shadow: 0 4px 14px rgba(4, 24, 56, .08);
}
.pmd-hero-pesquisa input { font-size: 1rem !important; padding-top: .9rem; padding-bottom: .9rem; }

/* A lista de resultados sai para fora do cartão: tem de ficar acima da
   secção seguinte e dos botões flutuantes de marcação (z-index 60). */
.pmd-hero-pesquisa > div { z-index: 80; }
.pmd-hero-pesquisa > div > div:not(:first-child) {
  max-height: min(26rem, 52vh);
  box-shadow: 0 24px 60px rgba(4, 24, 56, .35);
}
/* o banner deixa de recortar: garante que nada mais transborda para os lados */
.pmd-hero-topo { overflow-x: clip; }

@media (max-width: 1023px) {
  .pmd-hero-grelha { gap: 2rem; }
  .pmd-hero-cartao { box-shadow: 0 18px 40px rgba(4, 24, 56, .3); }
}
@media (prefers-reduced-motion: reduce) {
  .pmd-hero-bt-claro { transition: none; }
}
