/* Site do Centro Médico Barispol: estilo comum a todas as páginas (31-10-2026,
   o site deixou de ser uma só página). Cores, letra e linhas finas iguais às de
   sempre; cores novas entram nas variáveis e no modo escuro. */
:root{
  --marinho:#292F58; --marinho-2:#273069; --azul:#2291CE;
  --fundo:#FFFFFF; --claro:#F5F4F2; --linha:#DDDBD6;
  --t1:#1C2033; --t2:#4E5366;
  --titulo:var(--marinho); --ligacao:var(--marinho-2); --topo:#FFFFFF; --campo:#FFFFFF; --campo-borda:#BDBAB3;
  color-scheme:light;
  --largura:1140px;
}
*{box-sizing:border-box}
body{margin:0;background:var(--fundo);color:var(--t1);font-family:"Titillium Web","Segoe UI",Arial,sans-serif;font-size:16.5px;line-height:1.6}
img{max-width:100%;display:block}
h1,h2,h3{margin:0;font-weight:700;line-height:1.2;color:var(--titulo)}
p{margin:0}
a{color:var(--ligacao)}
.caixa{max-width:var(--largura);margin:0 auto;padding:0 24px}
.etiqueta{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--azul)}

/* botões */
.botao{display:inline-block;font:inherit;font-size:15.5px;font-weight:700;text-decoration:none;padding:12px 24px;border-radius:2px;border:0;cursor:pointer;background:var(--marinho-2);color:#fff}
.botao:hover{background:var(--marinho)}
.botao-claro{background:#fff;color:var(--marinho)}
.botao-claro:hover{background:#EDEFF6}
.botao:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--azul);outline-offset:2px}
.mais a,.ligacao{font-weight:600;text-decoration:underline;text-decoration-color:var(--azul);text-decoration-thickness:2px;text-underline-offset:4px}

/* cabeçalho */
.topo{position:sticky;top:0;z-index:10;background:var(--topo);border-bottom:1px solid var(--linha)}
.topo .caixa{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:20px;height:92px}
.marca{margin-right:auto}
.menu{order:2}
.tema{order:3;display:inline-grid;place-items:center;width:40px;height:40px;border:1px solid var(--linha);border-radius:2px;background:var(--topo);color:var(--titulo);cursor:pointer;padding:0}
.tema svg{width:18px;height:18px}
.tema .sol,html[data-tema="escuro"] .tema .lua{display:none}
html[data-tema="escuro"] .tema .sol{display:block}
.marca{display:flex;align-items:center;gap:12px;text-decoration:none}
.marca img{width:72px;height:72px;object-fit:contain}
.marca span{font-size:19px;font-weight:700;color:var(--titulo);line-height:1.15}
.marca small{display:block;font-size:12.5px;font-weight:600;color:var(--t2)}
.menu{display:flex;gap:28px}
.menu a{font-size:15px;font-weight:600;color:var(--t1);text-decoration:none}
.menu a:hover{color:var(--ligacao);text-decoration:underline}
.menu a.contactos{text-decoration:underline;text-decoration-color:var(--azul);text-decoration-thickness:2px;text-underline-offset:6px;color:var(--titulo)}
.abrir-menu{display:none;order:2;font:inherit;font-size:15px;font-weight:700;color:var(--titulo);background:var(--topo);border:1px solid var(--linha);border-radius:2px;padding:8px 14px;cursor:pointer}
@media(max-width:860px){
  .abrir-menu{display:block}
  .menu{display:none;position:absolute;left:0;right:0;top:100%;background:var(--topo);border-bottom:1px solid var(--linha);flex-direction:column;gap:0;padding:0 24px}
  .menu.aberto{display:flex}
  .menu a{padding:15px 0;border-top:1px solid var(--linha);font-size:16px}
  .menu a.contactos{text-underline-offset:5px}
}

/* abertura */
.abertura{background:var(--marinho);color:#fff}
.abertura .caixa{padding-top:64px;padding-bottom:64px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.foto-abertura{width:100%;height:auto;aspect-ratio:1179/1066;object-fit:cover}
@media(max-width:860px){.abertura .caixa{grid-template-columns:1fr;gap:32px;padding-top:48px;padding-bottom:48px}}
.abertura .etiqueta{color:#9CCFEE}
.abertura h1{color:#fff;font-size:clamp(32px,5vw,52px);max-width:17ch;margin-top:14px}
.abertura p{font-size:19px;color:#D6D9E6;max-width:50ch;margin-top:18px}
.abertura .botao{margin-top:30px}

/* secções */
section{padding:72px 0}
.fundo-claro{background:var(--claro)}
.cabeca{max-width:62ch;margin-bottom:34px}
.cabeca h2{font-size:clamp(26px,3.4vw,34px);margin-top:10px}
.cabeca p{color:var(--t2);margin-top:12px}

/* listas com linhas finas */
.lista{border-top:1px solid var(--linha)}
.linha{display:grid;grid-template-columns:minmax(200px,34%) 1fr;gap:28px;padding:22px 0;border-bottom:1px solid var(--linha)}
.linha h3{font-size:18px}
.linha h3 span{display:block;font-size:14.5px;font-weight:400;color:var(--t2);margin-top:4px}
.linha p{color:var(--t2)}
.linha .mais{margin-top:8px;font-size:15px}
@media(max-width:700px){.linha{grid-template-columns:1fr;gap:8px}}
.nota{margin-top:26px;color:var(--t2);max-width:70ch}

/* processo */
table.fases{width:100%;border-collapse:collapse;font-size:15.5px}
.fases th{text-align:left;font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--t2);padding:0 18px 12px 0;border-bottom:2px solid var(--marinho)}
.fases td{padding:18px 18px 18px 0;border-bottom:1px solid var(--linha);vertical-align:top;color:var(--t2)}
.fases td:first-child{font-weight:700;color:var(--titulo);width:18%}
@media(max-width:700px){
  .fases thead{display:none}
  .fases tr{display:block;padding:16px 0;border-bottom:1px solid var(--linha)}
  .fases td{display:block;padding:2px 0;border:0;width:auto!important}
  .fases td[data-r]::before{content:attr(data-r) ": ";font-weight:600;color:var(--t1)}
}

/* seguros */
.seguros{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--linha)}
.seguros li{padding:13px 0;border-bottom:1px solid var(--linha);font-weight:600}
@media(max-width:700px){.seguros{grid-template-columns:1fr 1fr;column-gap:20px}}

.clinica{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}
.clinica img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover}
.clinica h2{font-size:clamp(26px,3.4vw,34px);margin-top:10px}
.clinica p{color:var(--t2);margin-top:12px}
@media(max-width:860px){.clinica{grid-template-columns:1fr;gap:28px}}

/* galeria e campanhas (só aparecem se houver conteúdo publicado) */
.galeria{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:820px){.galeria{grid-template-columns:1fr}}
.galeria figure{margin:0}
.galeria img{width:100%;height:230px;object-fit:cover}
.galeria .video{position:relative;padding-top:56.25%}
.galeria .video iframe,.galeria .video video{position:absolute;inset:0;width:100%;height:100%;border:0}
.galeria figcaption{font-size:14px;color:var(--t2);margin-top:8px}
#galeria[hidden],#campanhas[hidden]{display:none}
#campanhas{scroll-margin-top:104px}
@media(max-width:560px){.topo .caixa{height:80px}.marca img{width:60px;height:60px}.marca span{font-size:17px}}
.campanha{padding:22px 0;border-bottom:1px solid var(--linha)}
.campanha h3{font-size:18px}
.campanha img{display:block;width:100%;max-width:420px;height:auto;border-radius:6px;margin-bottom:14px}
.campanha.cor{border:0;border-left:6px solid var(--cor);background:var(--claro);padding:24px 24px 24px 22px;border-radius:6px}
.campanha.cor h3{color:var(--cor);font-size:24px}
.campanha .itens{margin:14px 0 4px;padding:0;list-style:none;max-width:520px}
.campanha .itens li{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--linha);color:var(--t1)}
.campanha .itens li b{white-space:nowrap}
.campanha .itens s{color:var(--t2);font-weight:400;margin-right:6px}
.campanha p.fecho{color:var(--t1);font-weight:600}
@media (min-width:760px){
  .campanha.com-imagem{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);column-gap:32px;align-items:start}
  .campanha.com-imagem > img{grid-column:1;grid-row:1 / span 20;margin:0}
  .campanha.com-imagem > :not(img){grid-column:2}
}
.campanha p,.campanha time{display:block;color:var(--t2);margin-top:6px}

/* chamada */
.chamada{background:var(--marinho-2);color:#fff;padding:56px 0}
.chamada .caixa{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px}
.chamada h2{color:#fff;font-size:clamp(24px,3vw,30px)}
.chamada p{color:#D6D9E6;margin-top:8px}

/* perguntas */
.perguntas details{border-bottom:1px solid var(--linha)}
.perguntas details:first-child{border-top:1px solid var(--linha)}
.perguntas summary{cursor:pointer;padding:18px 0;font-weight:700;color:var(--titulo);list-style:none}
.perguntas summary::-webkit-details-marker{display:none}
.perguntas summary::after{content:"+";float:right;font-weight:400;color:var(--t2)}
.perguntas details[open] summary::after{content:"\2212"}
.perguntas p{color:var(--t2);padding:0 0 18px;max-width:70ch}

/* contactos */
.contactos-grelha{display:grid;grid-template-columns:1fr 1.25fr;gap:56px}
@media(max-width:860px){.contactos-grelha{grid-template-columns:1fr;gap:40px}}
.bloco{padding:0 0 18px;margin-bottom:18px;border-bottom:1px solid var(--linha)}
.bloco h3{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--t2);margin-bottom:6px}
.bloco p{color:var(--t1)}
.bloco dl{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0}
.bloco dt{color:var(--t2)}
.bloco dd{margin:0}
.bloco a{color:var(--t1)}
form h3{font-size:20px}
form .dica{color:var(--t2);font-size:15px;margin-top:6px}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px;margin-top:22px}
@media(max-width:560px){.campos{grid-template-columns:1fr}}
label{display:block;font-size:14px;font-weight:600;margin-bottom:6px}
input,select,textarea{width:100%;font:inherit;font-size:16px;padding:11px 12px;border:1px solid var(--campo-borda);border-radius:2px;background:var(--campo);color:var(--t1)}
input[aria-invalid="true"],textarea[aria-invalid="true"]{border-color:#B42318}
textarea{resize:vertical;min-height:130px}
.inteiro{grid-column:1/-1}
.escondido{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.erro{display:none;font-size:13.5px;color:#B42318;margin-top:5px}
input[aria-invalid="true"]+.erro,textarea[aria-invalid="true"]+.erro{display:block}
form .botao{margin-top:22px}
form .aviso{font-size:14px;color:var(--t2);margin-top:10px}
.pronto{margin-top:14px;font-weight:600;color:var(--titulo)}
.pronto.falhou{color:#B42318}
.pronto:empty{display:none}
.mapa{width:100%;height:340px;border:0;margin-top:48px;display:block}

/* rodapé */
footer{background:var(--marinho);color:#C9CCDA;font-size:15px}
footer .caixa{padding-top:54px}
.rodape-grelha{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:40px}
@media(max-width:760px){.rodape-grelha{grid-template-columns:1fr;gap:30px}}
footer h3{color:#fff;font-size:15px;margin-bottom:12px}
footer a{color:#fff;text-decoration:none;display:block;margin-bottom:6px}
footer a:hover{text-decoration:underline}
footer .marca-rodape{display:flex;align-items:center;gap:12px;color:#fff;font-weight:700;font-size:17px}
footer .marca-rodape img{width:76px;height:76px;background:radial-gradient(circle,#fff 70.5%,transparent 71%);padding:7px;object-fit:contain}
.legal{margin-top:44px;padding:20px 0 26px;border-top:1px solid rgba(255,255,255,.18);display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;font-size:13.5px}
.legal a{display:inline;color:#C9CCDA;margin:0}

/* Modo escuro (25-09-2026). A abertura, a chamada e o rodapé continuam em marinho. */
html[data-tema="escuro"]{
  color-scheme:dark;
  --fundo:#11131C; --claro:#1A1D29; --linha:#30354A;
  --t1:#E9EBF2; --t2:#B5BACB;
  --titulo:#D5DAF0; --ligacao:#8CCBF0; --topo:#161925; --campo:#1A1D29; --campo-borda:#3A4056;
}
html[data-tema="escuro"] .marca img{background:radial-gradient(circle,#fff 70.5%,transparent 71%);padding:6px}
html[data-tema="escuro"] .campanha.cor h3{color:#F28DB5}
html[data-tema="escuro"] .botao-claro{background:#fff;color:#292F58}
/* -- Páginas (31-10-2026) -- */
.menu a[aria-current="page"]{color:var(--titulo);text-decoration:underline;text-decoration-color:var(--azul);text-decoration-thickness:2px;text-underline-offset:6px}
@media(min-width:861px) and (max-width:1100px){.menu{gap:18px}.menu a{font-size:14.5px}}

/* Faixa de factos logo a seguir à abertura */
.factos{border-bottom:1px solid var(--linha)}
.factos .caixa{display:grid;grid-template-columns:repeat(4,1fr)}
.facto{padding:22px 20px;border-left:1px solid var(--linha)}
.facto:first-child{border-left:0;padding-left:0}
.facto b{display:block;font-size:17px;color:var(--titulo)}
.facto span{font-size:14.5px;color:var(--t2)}
@media(max-width:860px){.factos .caixa{grid-template-columns:1fr 1fr}.facto:nth-child(odd){border-left:0;padding-left:0}.facto:nth-child(n+3){border-top:1px solid var(--linha)}}

/* Cartões de serviço com fotografia grande. No telemóvel deslizam de lado. */
.cartoes{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.cartao{display:flex;flex-direction:column;background:var(--fundo);border:1px solid var(--linha);text-decoration:none;color:inherit;transition:border-color .15s}
.cartao:hover{border-color:var(--azul)}
.cartao:hover .cartao-foto img{transform:scale(1.03)}
.cartao-foto{overflow:hidden;aspect-ratio:4/3;background:var(--claro)}
.cartao-foto img{width:100%;height:100%;object-fit:cover;transition:transform .4s}
.cartao-corpo{padding:22px 24px 26px;display:flex;flex-direction:column;flex:1}
.cartao h3{font-size:21px}
.cartao p{color:var(--t2);margin-top:8px;font-size:15.5px}
.cartao .seta{margin-top:auto;padding-top:16px;font-weight:700;color:var(--ligacao);font-size:15px}
.cartao .seta::after{content:" ›"}
.cartao-cta{background:var(--marinho);border-color:var(--marinho);color:#fff;justify-content:center}
.cartao-cta .cartao-corpo{justify-content:center}
.cartao-cta h3{color:#fff}
.cartao-cta p{color:#D6D9E6}
.cartao-cta .seta{color:#fff;margin-top:20px}
.carrossel-setas{display:none}
@media(max-width:960px){.cartoes{grid-template-columns:1fr 1fr}}
@media(max-width:640px){
  .cartoes{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:16px;margin:0 -24px;padding:0 24px 8px;scrollbar-width:none;overscroll-behavior-x:contain}
  .cartoes::-webkit-scrollbar{display:none}
  .cartao{flex:0 0 84%;scroll-snap-align:start}
  .carrossel-setas{display:flex;justify-content:space-between;align-items:center;margin-top:14px}
  .carrossel-setas button{width:44px;height:44px;border:1px solid var(--linha);border-radius:2px;background:var(--fundo);color:var(--titulo);font:inherit;font-size:20px;cursor:pointer}
  .carrossel-setas button:disabled{opacity:.35;cursor:default}
  .carrossel-pontos{display:flex;gap:8px}
  .carrossel-pontos span{width:8px;height:8px;border-radius:50%;background:var(--linha)}
  .carrossel-pontos span.activo{background:var(--azul)}
}
@media(prefers-reduced-motion:reduce){.cartao-foto img,.cartao{transition:none}.cartao:hover .cartao-foto img{transform:none}}

/* Passos (como funciona) */
.passos{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:2px solid var(--marinho)}
.passo{padding:24px 24px 6px 0}
.passo+.passo{padding-left:24px;border-left:1px solid var(--linha)}
.passo .num{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--azul)}
.passo h3{font-size:19px;margin-top:6px}
.passo p{color:var(--t2);margin-top:8px;font-size:15.5px}
@media(max-width:760px){.passos{grid-template-columns:1fr}.passo+.passo{padding-left:0;border-left:0;border-top:1px solid var(--linha)}}

/* Cabeçalho das páginas interiores */
.pagina-topo{background:var(--marinho);color:#fff}
.pagina-topo .caixa{display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;padding-top:44px;padding-bottom:48px}
.pagina-topo.sem-foto .caixa{grid-template-columns:1fr}
.migalha{font-size:14px;color:#B9C0DA}
.migalha a{color:#fff}
.pagina-topo h1{color:#fff;font-size:clamp(30px,4.4vw,46px);margin-top:12px;max-width:20ch}
.pagina-topo .intro{font-size:18px;color:#D6D9E6;margin-top:16px;max-width:56ch}
.pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px}
.pills span{font-size:13.5px;font-weight:600;color:#fff;border:1px solid rgba(255,255,255,.32);padding:5px 12px;border-radius:2px}
.accoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.botao-linha{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.55)}
.botao-linha:hover{background:rgba(255,255,255,.1)}
.pagina-topo img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
@media(max-width:860px){.pagina-topo .caixa{grid-template-columns:1fr;gap:28px;padding-top:32px}}

/* Blocos de texto com fotografia ao lado */
.lado{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
.lado img{width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.lado.inverso{grid-template-columns:1.1fr .9fr}
.lado.inverso img{order:2}
.lado h2{font-size:clamp(24px,3vw,30px);margin-top:10px}
.lado p{color:var(--t2);margin-top:12px}
.lado ul{margin:14px 0 0;padding-left:20px;color:var(--t2)}
.lado li{margin-top:4px}
@media(max-width:860px){.lado,.lado.inverso{grid-template-columns:1fr;gap:24px}.lado.inverso img{order:0}}

/* Lista de especialidades */
.especialidades{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--linha)}
.especialidades li{padding:13px 0;border-bottom:1px solid var(--linha);font-weight:600}
@media(max-width:700px){.especialidades{grid-template-columns:1fr 1fr;column-gap:20px}}

/* Barra fixa do WhatsApp no telemóvel */
.fixa{display:none;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--topo);border-top:1px solid var(--linha);padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
.fixa .botao{display:block;text-align:center}
@media(max-width:640px){.fixa{display:block}body.com-fixa{padding-bottom:76px}}

/* Exames em cartões (Imagiologia, 30-10-2026, Elmar: «a antiga tinha mais vida,
   faz uma súmula das duas»): cartão com a preparação destacada e o botão de
   marcação em cada exame; passos numerados; faixa com morada, horário e contactos. */
.exames{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px}
.exame{display:flex;flex-direction:column;border:1px solid var(--linha);border-top:3px solid var(--azul);background:var(--fundo);padding:24px}
.exame h3{font-size:19px}
.exame .desc{color:var(--t2);margin-top:8px;flex:1}
.prep{margin:16px 0 18px;padding:12px 14px;background:var(--claro);border-left:3px solid var(--azul);color:var(--t2);font-size:15px;line-height:1.5}
.prep b{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--titulo);margin-bottom:3px}
.exame .botao{display:block;text-align:center}
.passos.numerados{grid-template-columns:repeat(4,1fr);counter-reset:passo}
.passos.numerados .passo{counter-increment:passo}
.passos.numerados .passo::before{content:counter(passo);display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;background:var(--azul);color:#fff;font-weight:700;font-size:18px;margin-bottom:14px}
.passos.numerados .passo h3{font-size:18px}
.passos.numerados .passo p{color:var(--t2);margin-top:6px}
@media(max-width:900px){.passos.numerados{grid-template-columns:1fr 1fr}.passos.numerados .passo:nth-child(3){padding-left:0;border-left:0}}
@media(max-width:560px){.passos.numerados{grid-template-columns:1fr}.passos.numerados .passo+.passo{padding-left:0;border-left:0;border-top:1px solid var(--linha)}}
.dados{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.dados h3{font-size:13px;letter-spacing:.08em;text-transform:uppercase;color:var(--azul);margin-bottom:8px}
.dados p{color:var(--t2)}
.dados a{font-weight:600}
.dados strong{color:var(--t1)}
@media(max-width:760px){.dados{grid-template-columns:1fr;gap:22px}}
.exame.exame-cta{background:var(--marinho);border-color:var(--marinho);border-top-color:var(--azul)}
.exame.exame-cta h3,.exame.exame-cta .desc{color:#fff}
.exame.exame-cta .desc{opacity:.85}
@media(min-width:1000px){.exame.exame-cta{grid-column:span 2}}

/* Seguradoras com logotipo (30-10-2026, Elmar: «nas seguradoras coloca logotipos»):
   ficheiros em assets/seguros/<nome>.png; enquanto não houver ficheiro, mostra as
   iniciais (site.js marca .sem-logo). */
.seguros-logos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px}
.seguro{border:1px solid var(--linha);background:var(--fundo);padding:16px 14px 12px;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.seguro-logo{display:flex;align-items:center;justify-content:center;width:100%;height:72px;background:#fff}
.seguro-logo img{display:block;width:100%;height:100%;max-width:none;object-fit:contain}
.seguro-logo.sem-logo img{display:none}
.seguro-logo.sem-logo::before{content:attr(data-ini);display:flex;align-items:center;justify-content:center;width:64px;height:64px;border-radius:50%;background:var(--claro);color:var(--titulo);font-weight:700;font-size:20px;letter-spacing:.02em}
html[data-tema="escuro"] .seguro-logo.sem-logo{background:transparent}
.seguro-nome{font-weight:600;font-size:15px;color:var(--titulo);line-height:1.3}
@media(max-width:420px){.seguros-logos{grid-template-columns:1fr 1fr;gap:10px}}

/* Página Contacto (30-10-2026, Elmar: «a página contacto está fora do padrão»):
   formulário de pedido de chamada (entrada-publica) ao lado dos contactos. */
.contacto-grelha{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:start}
@media(max-width:900px){.contacto-grelha{grid-template-columns:1fr;gap:36px}}
.formbox{border:1px solid var(--linha);border-top:3px solid var(--azul);background:var(--fundo);scroll-margin-top:120px}
.formpad{padding:28px}
.formbox h2{font-size:clamp(24px,3vw,30px)}
.formbox .campo{margin-top:18px}
.formbox .dois{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
@media(max-width:560px){.formpad{padding:20px}.formbox .dois{grid-template-columns:1fr}}
.formbox input[aria-invalid="true"]~.erro{display:block}
.formbox .enviar{width:100%;margin-top:24px;font-size:17px;padding:15px 24px}
.formbox .enviar:disabled{opacity:.7;cursor:wait}
.rodape-form{font-size:14.5px;color:var(--t2);margin-top:12px}
.formbox .alt{border-top:1px solid var(--linha);margin-top:20px;padding-top:16px;font-size:14px;color:var(--t2)}
.feito{display:none;padding:40px 24px;text-align:center}
.feito .tick{width:60px;height:60px;border-radius:50%;background:var(--claro);color:var(--azul);display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.feito p{color:var(--t2);margin:10px auto 22px;max-width:42ch}
.formbox.pronto{margin-top:0;font-weight:inherit}
.formbox.pronto .formpad{display:none}
.formbox.pronto .feito{display:block}
.seguinte{margin:0;padding-left:20px;color:var(--t1)}
.seguinte li{margin-bottom:6px}
.contacto-wa{background:var(--marinho);color:#fff;padding:22px}
.contacto-wa h3{color:#fff;font-size:19px}
.contacto-wa p{color:#D6D9E6;margin:6px 0 16px}
.contacto-wa .botao{display:block;text-align:center}

/* Imagens maiores (30-10-2026, Elmar: «as imagens podem estar maiores em cada
   secção»): página mais larga, fotografia do topo com metade da largura, cartões
   de serviço em duas colunas no computador. */
:root{--largura:1240px}
.foto-abertura{aspect-ratio:4/3.4}
.pagina-topo .caixa{padding-bottom:56px}
.pagina-topo img{aspect-ratio:4/3.2}
.cartao-foto{aspect-ratio:16/10}
.cartao h3{font-size:22px}
@media(min-width:861px){
  .abertura .caixa{grid-template-columns:1fr 1.1fr}
  .pagina-topo .caixa{grid-template-columns:1fr 1fr}
  .cartoes{grid-template-columns:repeat(2,1fr);gap:32px}
  .lado{grid-template-columns:1.1fr .9fr}
  .clinica{grid-template-columns:1.25fr .75fr}
}

/* Logótipo maior (30-10-2026, Elmar: «o nosso logotipo está pequeno»): 96 px no
   computador, 70 px no telemóvel. Nunca abaixo disto. */
.topo .caixa{height:112px}
.marca img{width:96px;height:96px}
.marca span{font-size:21px}
.formbox{scroll-margin-top:130px}
@media(max-width:560px){.topo .caixa{height:88px}.marca img{width:70px;height:70px}.marca span{font-size:17px}}

/* Mais vida (30-10-2026, Elmar: «dê mais vida»; política do site humanizado: só as
   cores da marca em blocos lisos, fotografias reais grandes, sem degradês, sem
   sombras, sem efeitos ao passar o rato, sem botão flutuante). Organização
   inspirada nos grandes hospitais: «Marcar» sempre à vista no cabeçalho, atalhos
   para os serviços logo abaixo do topo, horário e telefone à vista. */
:root{--azul-suave:#E8F4FB;--azul-texto:#1C7DB3}
.etiqueta,.passo .num{color:var(--azul-texto)}
.fundo-claro{background:var(--azul-suave)}
/* «Marcar» no cabeçalho */
.marcar-topo{order:3;padding:10px 22px;background:var(--azul);color:#fff}
.marcar-topo:hover{background:var(--marinho-2)}
.tema{order:4}
@media(max-width:860px){.marcar-topo{order:1;margin-left:auto;padding:9px 16px;font-size:15px}.marca{margin-right:0}}
@media(max-width:380px){.marca span{font-size:15px}.marca small{display:none}}
/* topo com a fotografia até à margem do ecrã */
@media(min-width:861px){
  .abertura,.pagina-topo{position:relative}
  .abertura .caixa,.pagina-topo:not(.sem-foto) .caixa{grid-template-columns:1fr 1fr;min-height:520px;padding-top:64px;padding-bottom:64px}
  .foto-abertura,.pagina-topo:not(.sem-foto) img{position:absolute;top:0;right:0;width:50vw;height:100%;aspect-ratio:auto;object-fit:cover}
}
/* atalhos para os serviços, no azul da marca */
.atalhos{background:var(--azul)}
.atalhos .caixa{display:grid;grid-template-columns:repeat(4,1fr)}
.atalhos a{display:block;padding:24px 22px 22px;color:#fff;text-decoration:none;border-left:1px solid rgba(255,255,255,.35)}
.atalhos a:first-child{border-left:0;padding-left:0}
.atalhos b{display:block;font-size:20px}
.atalhos b::after{content:" ›"}
.atalhos span{display:block;font-size:14.5px;color:#EAF5FC;margin-top:4px}
.atalhos a:hover b{text-decoration:underline;text-underline-offset:4px}
@media(max-width:860px){.atalhos .caixa{grid-template-columns:1fr 1fr}.atalhos a:nth-child(odd){border-left:0;padding-left:0}.atalhos a:nth-child(n+3){border-top:1px solid rgba(255,255,255,.35)}.atalhos a{padding:18px 14px}}
/* horário e telefone */
.contacto-faixa{background:var(--azul-suave);border-bottom:1px solid var(--linha)}
.contacto-faixa .caixa{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:20px;padding-bottom:20px}
.contacto-faixa p{color:var(--t1)}
.contacto-faixa b{color:var(--titulo)}
.contacto-faixa .accoes{display:flex;flex-wrap:wrap;gap:10px}
.botao-contorno{background:transparent;color:var(--marinho);border:1px solid var(--marinho)}
.botao-contorno:hover{background:#fff}
/* serviços em mosaicos de fotografia, com o título sobre a imagem */
.mosaicos .cartao{position:relative;border:0;min-height:340px;justify-content:flex-end;background:var(--marinho)}
.mosaicos .cartao-foto{position:absolute;inset:0;aspect-ratio:auto}
.mosaicos .cartao-foto::after{content:"";position:absolute;inset:0;background:rgba(28,32,51,.58)}
.mosaicos .cartao:hover .cartao-foto img{transform:none}
.mosaicos .cartao-corpo{position:relative;padding:26px}
.mosaicos .cartao h3{color:#fff;font-size:26px}
.mosaicos .cartao p{color:#fff;max-width:44ch}
.mosaicos .cartao .seta{display:inline-block;margin-top:14px;padding:9px 18px;border:1px solid #fff;color:#fff;font-weight:700;text-decoration:none}
.mosaicos .cartao:hover .seta{background:#fff;color:var(--marinho)}
.mosaicos .cartao-cta{background:var(--azul)}
@media(min-width:861px){.mosaicos{gap:4px}.mosaicos .cartao{min-height:400px}}
.cartao.cartao-cta h3,.cartao.cartao-cta p{color:#fff}
/* chamada final no azul da marca */
.chamada{background:var(--azul)}
.chamada p{color:#fff}
.mosaicos .cartao-corpo{flex:0 0 auto}
.mosaicos .cartao .seta{margin-top:14px;align-self:flex-start}
@media(max-width:560px){.marca span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}.topo .caixa{gap:10px}}

/* Separadores da página (30-10-2026, inspiração no Hospital da Luz, Elmar:
   «pode subir já a inspiração»): ficam por baixo do cabeçalho ao descer e
   levam a cada parte da página. O botão «Marcar» das listas é igual em todo
   o site. */
.separadores{position:sticky;top:112px;z-index:9;background:var(--fundo);border-bottom:1px solid var(--linha)}
.separadores .caixa{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.separadores .caixa::-webkit-scrollbar{display:none}
.separadores a{flex:none;padding:14px 16px 12px;font-weight:600;font-size:15px;color:var(--t2);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap}
.separadores a:hover{color:var(--titulo)}
.separadores a[aria-current="true"]{color:var(--titulo);border-bottom-color:var(--azul)}
.separadores a[href="#marcar"]{margin-left:auto;color:var(--azul-texto)}
section[id],.chamada[id]{scroll-margin-top:170px}
@media(max-width:560px){.separadores{top:88px}.separadores a{padding:12px 12px 10px;font-size:14.5px}section[id],.chamada[id]{scroll-margin-top:140px}}
.mais a[href^="https://wa.me"]{display:inline-block;padding:8px 16px;background:var(--marinho-2);color:#fff;text-decoration:none;font-weight:700;font-size:14.5px;border-radius:2px}
.mais a[href^="https://wa.me"]:hover{background:var(--marinho)}
.chamada .mais a[href^="https://wa.me"],.mosaicos .mais a{background:#fff;color:var(--marinho)}

/* Grupos de análises dentro do Diagnóstico (30-10-2026, Elmar: «análises clínicas vão
   dentro do diagnóstico»). */
.lab-grupos{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.lab-grupo{display:block;padding:16px;border:1px solid var(--linha);border-top:3px solid var(--azul);text-decoration:none;color:var(--t1);background:var(--fundo)}
.lab-grupo b{display:block;color:var(--titulo);font-size:16.5px}
.lab-grupo span{display:block;font-size:14px;color:var(--t2);margin-top:4px}
.lab-grupo:hover b{text-decoration:underline;text-underline-offset:3px}
@media(max-width:900px){.lab-grupos{grid-template-columns:1fr 1fr}}

/* ── Versão leve (31-10-2026, Elmar: «o site está mal, básico… esse azul escuro
   está muito pesado… vamos usar o outro azul do logotipo; os contornos estão muito
   quadrados… como Facebook, como WhatsApp, mais actualizados»; «podes colocar
   degradê, slide automático»). O azul do logotipo passa a cor principal, o marinho
   fica só nos títulos; blocos claros com degradês suaves, cantos redondos, botões em
   pílula e sombras leves. ───────────────────────────────────────────────────── */
:root{
  --azul-2:#1C7DB3;                         /* azul do logotipo, mais fundo, para texto branco */
  --azul-suave:#EAF5FC;
  --raio:18px; --raio-p:12px;
  --sombra:0 1px 2px rgba(16,42,67,.06),0 6px 20px rgba(34,145,206,.08);
  --sombra-forte:0 2px 6px rgba(16,42,67,.08),0 14px 36px rgba(34,145,206,.14);
  --grad-topo:linear-gradient(135deg,#E6F3FB 0%,#F6FBFE 55%,#FFFFFF 100%);
  --grad-azul:linear-gradient(135deg,#2291CE 0%,#3BA7DD 100%);
  --grad-rodape:linear-gradient(180deg,#F2F8FC 0%,#E6F1F9 100%);
}
html[data-tema="escuro"]{
  --azul-suave:#16283A;
  --grad-topo:linear-gradient(135deg,#132536 0%,#11131C 70%);
  --grad-azul:linear-gradient(135deg,#1C7DB3 0%,#2291CE 100%);
  --grad-rodape:linear-gradient(180deg,#161925 0%,#121521 100%);
  --sombra:0 1px 2px rgba(0,0,0,.3),0 6px 20px rgba(0,0,0,.25);
  --sombra-forte:0 2px 6px rgba(0,0,0,.35),0 14px 36px rgba(0,0,0,.3);
}
/* botões em pílula, azul do logotipo */
.botao{border-radius:999px;background:var(--grad-azul);color:#fff;padding:12px 26px;box-shadow:0 4px 14px rgba(34,145,206,.25);transition:filter .15s,box-shadow .15s}
.botao:hover{background:var(--grad-azul);filter:brightness(1.06);box-shadow:0 6px 18px rgba(34,145,206,.32)}
.botao-claro,.botao-claro:hover{background:#fff;color:var(--azul-2);box-shadow:var(--sombra)}
.botao-linha,.botao-contorno{background:transparent!important;color:var(--azul-2)!important;border:1.5px solid var(--azul)!important;box-shadow:none!important}
.tema,.abrir-menu,.carrossel-setas button{border-radius:999px}
.marcar-topo{border-radius:999px;background:var(--grad-azul)}
.marcar-topo:hover{background:var(--grad-azul);filter:brightness(1.06)}
.mais a[href^="https://wa.me"]{border-radius:999px;background:var(--grad-azul)}
.mais a[href^="https://wa.me"]:hover{background:var(--grad-azul);filter:brightness(1.06)}
input,select,textarea{border-radius:var(--raio-p)}
.pills span{border-radius:999px}

/* cabeçalho mais leve, com sombra quando se desce */
.topo{background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid rgba(34,145,206,.12)}
html[data-tema="escuro"] .topo{background:rgba(22,25,37,.92)}

/* abertura clara com degradê, fotografias em slide com cantos redondos */
.abertura{background:var(--grad-topo);color:var(--t1)}
.abertura .etiqueta{color:var(--azul-2)}
.abertura h1{color:var(--titulo)}
.abertura p{color:var(--t2)}
.abertura .botao-claro{background:var(--grad-azul);color:#fff}
@media(min-width:861px){
  .abertura .caixa{grid-template-columns:1.05fr .95fr;min-height:0;padding-top:56px;padding-bottom:64px}
  .foto-abertura{position:static;width:100%;height:auto}
}
.slides{position:relative;width:100%;aspect-ratio:5/4;border-radius:28px;overflow:hidden;box-shadow:var(--sombra-forte);background:var(--azul-suave)}
.slides img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 1.1s ease}
.slides img.activo{opacity:1}
.slides-pontos{position:absolute;left:0;right:0;bottom:14px;display:flex;justify-content:center;gap:8px;z-index:2}
.slides-pontos button{width:9px;height:9px;padding:0;border:0;border-radius:999px;background:rgba(255,255,255,.65);cursor:pointer;transition:width .3s,background .3s}
.slides-pontos button.activo{width:26px;background:#fff}
.slides-legenda{position:absolute;left:14px;bottom:36px;z-index:2;background:rgba(255,255,255,.9);color:var(--marinho);font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px}
@media(prefers-reduced-motion:reduce){.slides img{transition:none}}

/* topo das páginas internas: o mesmo degradê claro */
.pagina-topo{background:var(--grad-topo);color:var(--t1)}
.pagina-topo h1{color:var(--titulo)}
.pagina-topo .intro{color:var(--t2)}
.pagina-topo .etiqueta{color:var(--azul-2)}
.pagina-topo .pills span{color:var(--azul-2);border-color:rgba(34,145,206,.35);background:#fff}
html[data-tema="escuro"] .pagina-topo .pills span{background:transparent}
@media(min-width:861px){
  .pagina-topo:not(.sem-foto) .caixa{min-height:0;padding-top:48px;padding-bottom:56px}
  .pagina-topo:not(.sem-foto) img{position:static;width:100%;height:auto;aspect-ratio:4/3.2}
}
.pagina-topo img{border-radius:24px;box-shadow:var(--sombra-forte)}
.migalhas a,.pagina-topo .migalhas{color:var(--t2)}

/* atalhos e faixas: azul do logotipo em degradê */
.atalhos{background:var(--grad-azul)}
.chamada{background:var(--grad-azul)}
.contacto-wa{background:var(--grad-azul);border-radius:var(--raio)}

/* cartões arredondados, com sombra leve */
.cartao{border-radius:var(--raio);overflow:hidden;border:1px solid rgba(34,145,206,.12);box-shadow:var(--sombra);transition:box-shadow .2s,transform .2s}
.cartao:hover{box-shadow:var(--sombra-forte)}
.cartao-cta,.exame.exame-cta{background:var(--grad-azul);border-color:transparent}
.mosaicos .cartao{border-radius:var(--raio)}
.mosaicos .cartao-cta{background:var(--grad-azul)}
@media(min-width:861px){.mosaicos{gap:14px}}
.exame,.lab-grupo,.campanha,.campanha.cor,.seguro-logo,.formbox,.dado,.passo,.faq details,details{border-radius:var(--raio)}
.formbox{box-shadow:var(--sombra)}
img[loading="lazy"]:not(.cartao-foto img):not(.seguro-logo img){border-radius:var(--raio)}
.cartao-foto img{border-radius:0}
.fundo-claro{background:var(--azul-suave)}
.passos.numerados .passo::before{background:var(--grad-azul)}
.factos{background:#fff}
html[data-tema="escuro"] .factos{background:transparent}

/* rodapé claro */
footer{background:var(--grad-rodape);color:var(--t2)}
footer h2,footer h3,footer b,footer strong{color:var(--titulo)}
footer a{color:var(--azul-2)}
html[data-tema="escuro"] footer a{color:#8CCBF0}
footer .marca-rodape{color:var(--titulo)}
footer .marca-rodape img{background:#fff;border-radius:50%;box-shadow:var(--sombra)}
.legal{border-top-color:rgba(34,145,206,.18)}
.legal a{color:var(--t2)}
.chamada .botao-linha,.atalhos .botao-linha{color:#fff!important;border-color:rgba(255,255,255,.7)!important}
/* fotografias dos serviços limpas: só um degradê em baixo, para o texto se ler */
.mosaicos .cartao-foto::after{background:linear-gradient(180deg,rgba(16,40,64,0) 35%,rgba(16,40,64,.38) 60%,rgba(16,40,64,.82) 100%)}
.mosaicos .cartao .seta{border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.8);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.mosaicos .cartao:hover .seta{background:#fff;color:var(--azul-2)}
.migalha{color:var(--t2)}
.migalha a{color:var(--azul-2)}
.pagina-topo .botao-claro{background:var(--grad-azul);color:#fff;box-shadow:0 4px 14px rgba(34,145,206,.25)}
