/* Páginas interiores do site público no desenho novo (o molde da página inicial): H1 em cima, à esquerda e a preto,
   fotografia real, poucos blocos e um só botão amarelo. Usado em /vender-casa, /empresa, /consultoria, /contactos,
   /recrutamento, /consultores, /consultor/{id}, no blog e nas páginas de texto (crédito, certificado, reabilitação).
   Assenta nas variáveis e nos blocos de kinvest.css (.kv-wrap, .kv-sec, .kv-head, .kv-btn, .kv-people…).
   Nota: o pages.css é do backoffice (lista de páginas no admin), por isso este ficheiro é outro. */

/* O tema dá 90px a todas as <section>: estes blocos tratam do seu próprio espaço */
body.kv section.kv-band { padding: 0; }

/* ---------- Topo da página */
body.kv section.kv-intro { padding: clamp(22px, 12px + 1.6vw, 40px) 0 var(--kv-sec-y); }
.kv-intro-in { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px clamp(40px, 5vw, 112px); align-items: center; }
.kv-intro--solo .kv-intro-in { grid-template-columns: minmax(0, 1fr); }
.kv-intro-copy > .kv-caps { display: block; margin-bottom: 18px; color: var(--kv-black); }
body.kv .kv-intro h1 {
    margin: 0; color: var(--kv-black); font-family: var(--kv-title); font-weight: 700; font-size: var(--kv-fs-h1);
    line-height: 1.05; letter-spacing: -.02em; text-transform: none; text-wrap: balance;
}
body.kv .kv-intro--solo h1 { max-width: 18ch; }
body.kv .kv-lead { max-width: 52ch; margin: 22px 0 0; color: var(--kv-grey); font-size: var(--kv-fs-lead); line-height: 1.55; }
.kv-intro .kv-acts { margin-top: 30px; align-items: center; }
.kv-intro-ph { position: relative; margin: 0; aspect-ratio: 4 / 3; overflow: hidden; background: var(--kv-neutral); }
.kv-intro-ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
/* Montra da agência: o letreiro está à direita da fotografia */
.kv-intro-ph img[src*="agencia-k-invest"] { object-position: 82% 50%; }
.kv-intro-ph figcaption { position: absolute; left: 0; bottom: 0; max-width: 100%; padding: 8px 12px; background: var(--kv-black); color: var(--kv-white); font-size: 13px; line-height: 1.35; }
.kv-intro-ph figcaption a { color: var(--kv-white); text-decoration: underline; text-underline-offset: 3px; }
/* Selo de confiança junto ao título (licença AMI) */
.kv-trust { display: flex; flex-wrap: wrap; gap: 6px 22px; margin: 26px 0 0; padding: 0; list-style: none; font-size: 14px; color: var(--kv-grey); }
body.kv .kv-trust li { display: flex; align-items: center; gap: 8px; }
.kv-trust li::before { content: ""; width: 8px; height: 8px; background: var(--kv-black); flex: none; }

/* ---------- Números (só os que se podem defender; ver FrontController::aboutUs) */
.kv-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 0; border-top: 2px solid var(--kv-black); }
.kv-facts > div { padding: 26px 26px 0 0; }
.kv-facts > div + div { padding-left: 26px; border-left: 1px solid var(--kv-line); }
body.kv .kv-facts dt { margin: 8px 0 0; color: var(--kv-grey); font-family: var(--kv-body); font-size: 15px; font-weight: 400; }
body.kv .kv-facts dd { margin: 0; color: var(--kv-black); font-family: var(--kv-title); font-size: clamp(38px, 4.6vw, 64px); font-weight: 700; line-height: 1.05; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.kv-facts > div { display: flex; flex-direction: column-reverse; justify-content: flex-end; }

/* ---------- Três pontos (texto, sem ícones de tema) */
.kv-points { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 2px solid var(--kv-black); }
.kv-points > div { padding: 30px 30px 6px 0; border-right: 1px solid var(--kv-line); }
.kv-points > div + div { padding-left: 30px; }
.kv-points > div:last-child { border-right: 0; }
.kv-points--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.kv .kv-points h3 { margin: 0 0 12px; color: var(--kv-black); font-family: var(--kv-title); font-weight: 600; font-size: clamp(20px, 1.9vw, 26px); line-height: 1.15; letter-spacing: -.02em; text-transform: none; }
body.kv .kv-points p { margin: 0 0 14px; font-size: 15.5px; }
body.kv .kv-points ul { margin: 0 0 14px; padding-left: 18px; }
body.kv .kv-points li { display: list-item; list-style: disc; margin: 3px 0; font-size: 15.5px; color: var(--kv-grey); }

/* ---------- Texto e coluna lateral */
.kv-split { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr); gap: 40px clamp(40px, 5vw, 112px); align-items: start; }
.kv-aside { position: sticky; top: 100px; }
.kv-box { padding: var(--kv-pad); border: 1px solid var(--kv-black); background: var(--kv-white); }
.kv-box--grey { border-color: var(--kv-neutral); background: var(--kv-neutral); }
body.kv .kv-box h2 { margin: 0 0 10px; color: var(--kv-black); font-family: var(--kv-title); font-weight: 700; font-size: 24px; line-height: 1.1; letter-spacing: -.02em; text-transform: none; }
body.kv .kv-box p { margin: 0 0 18px; font-size: 15.5px; }
body.kv h2.kv-h2 { margin: 0 0 22px; color: var(--kv-black); font-family: var(--kv-title); font-weight: 600; font-size: var(--kv-fs-h2); line-height: 1.05; letter-spacing: -.02em; text-transform: none; }
/* Nas páginas interiores o título de secção (.kv-head h2) tem o tamanho do .kv-h2; o de cartaz (até 84px, kinvest.css) é só da página inicial */
body.kv .kv-head h2 { font-size: var(--kv-fs-h2); }

/* Texto que vem da base de dados (páginas do backoffice, artigos do blog) */
.kv-prose { max-width: 68ch; color: var(--kv-grey); font-size: 17px; line-height: 1.6; overflow-wrap: anywhere; }
body.kv .kv-prose h1, body.kv .kv-prose h2 { margin: 1.6em 0 .5em; color: var(--kv-black); font-family: var(--kv-title); font-weight: 600; font-size: 26px; line-height: 1.2; letter-spacing: -.02em; text-transform: none; }
body.kv .kv-prose h3, body.kv .kv-prose h4, body.kv .kv-prose h5, body.kv .kv-prose h6 { margin: 1.4em 0 .4em; color: var(--kv-black); font-family: var(--kv-title); font-weight: 600; font-size: 20px; line-height: 1.25; letter-spacing: -.02em; text-transform: none; }
.kv-prose > :first-child { margin-top: 0 !important; }
body.kv .kv-prose p { margin: 0 0 1em; color: var(--kv-grey); font-size: 17px; line-height: 1.7; text-align: left !important; }
body.kv .kv-prose ul, body.kv .kv-prose ol { margin: 0 0 1em; padding-left: 22px; }
body.kv .kv-prose li { display: list-item; margin: .3em 0; color: var(--kv-grey); font-size: 17px; line-height: 1.6; }
body.kv .kv-prose ul li { list-style: disc; }
body.kv .kv-prose ul ul li { list-style: circle; }
body.kv .kv-prose li > ul, body.kv .kv-prose li > ol { margin: .3em 0 0; }
body.kv .kv-prose hr { margin: 2em 0; border: 0; border-top: 1px solid var(--kv-line); }
body.kv .kv-prose ol li { list-style: decimal; }
.kv-prose a { color: var(--kv-black); text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1.5px; }
.kv-prose a:hover { text-decoration-thickness: 2.5px; }
.kv-prose strong, .kv-prose b { color: var(--kv-black); }
.kv-prose img { max-width: 100%; height: auto !important; }
.kv-prose iframe, .kv-prose video { max-width: 100%; }
.kv-prose table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
.kv-prose td, .kv-prose th { padding: 8px 10px; border: 1px solid var(--kv-line); }
.kv-prose blockquote { margin: 1.2em 0; padding-left: 18px; border-left: 2px solid var(--kv-black); }
/* Os textos antigos trazem cores e letra do editor (style="…"): a página manda */
body.kv .kv-prose [style*="color"] { color: inherit !important; }
body.kv .kv-prose [style*="font-family"] { font-family: inherit !important; }
body.kv .kv-prose [style*="font-size"] { font-size: inherit !important; }
body.kv .kv-prose [style*="text-align"] { text-align: left !important; }

/* Perguntas frequentes (reabilitação) */
.kv-faq { max-width: 72ch; margin-top: 40px; border-top: 2px solid var(--kv-black); }
.kv-faq details { border-bottom: 1px solid var(--kv-line); }
.kv-faq summary { display: flex; justify-content: space-between; gap: 16px; padding: 18px 0; color: var(--kv-black); font-family: var(--kv-title); font-size: 17px; font-weight: 600; line-height: 1.35; cursor: pointer; list-style: none; }
.kv-faq summary::-webkit-details-marker { display: none; }
.kv-faq summary::after { content: "+"; flex: none; font-size: 22px; line-height: 1; }
.kv-faq details[open] summary::after { content: "−"; }
.kv-faq summary:focus-visible { outline: 2px solid var(--kv-black); outline-offset: 2px; }
.kv-faq details > div { padding: 0 0 18px; }

/* ---------- Parceiros: grelha a preto e branco, sem ligações vazias */
/* Um bloco "tight" (sem espaço em cima: parceiros, avaliações) logo a seguir a um bloco cinzento ficava colado a ele */
body.kv .sv-sec--grey + .kv-sec--tight, body.kv .kv-sec--grey + .kv-sec--tight { padding-top: var(--kv-sec-y); }
.kv-partners { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--kv-line); border-left: 1px solid var(--kv-line); }
body.kv .kv-partners li { display: grid; place-items: center; align-content: center; gap: 14px; text-align: center; padding: 26px 22px; border-right: 1px solid var(--kv-line); border-bottom: 1px solid var(--kv-line); }
.kv-partners span { display: block; color: var(--kv-muted); font-size: 13px; line-height: 1.4; }
.kv-partners span strong { display: block; color: #000; font-size: 14px; }
.kv-partners img { max-width: 100%; max-height: 82px; width: auto; height: auto; filter: grayscale(1) contrast(1.1); mix-blend-mode: multiply; opacity: .85; }

/* ---------- Escritórios (/contactos) */
.kv-offices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--kv-gap); }
.kv-office { display: flex; flex-direction: column; padding: var(--kv-pad); border: 1px solid var(--kv-line); }
body.kv .kv-office h2 { margin: 0 0 4px; color: var(--kv-black); font-family: var(--kv-title); font-weight: 700; font-size: 28px; letter-spacing: -.02em; text-transform: none; }
.kv-office address { margin: 14px 0 18px; font-style: normal; font-size: 16px; line-height: 1.55; }
.kv-office .kv-more { align-self: flex-start; margin-top: auto; }
.kv-contact-list { display: grid; gap: 12px; margin: 0 0 22px; padding: 0; list-style: none; }
body.kv .kv-contact-list li { display: flex; gap: 12px; align-items: flex-start; font-size: 16px; line-height: 1.4; }
.kv-contact-list .kv-i { margin-top: 2px; color: var(--kv-black); }
.kv-contact-list a { color: var(--kv-black); font-weight: 600; text-decoration: underline; text-decoration-color: var(--kv-line-strong); text-underline-offset: 4px; }
.kv-contact-list a:hover { text-decoration-color: var(--kv-black); }
.kv-contact-list small { display: block; color: var(--kv-muted); font-size: 13px; font-weight: 400; }
.kv-legal-line { margin: 22px 0 0; font-size: 14px; color: var(--kv-muted); }

/* ---------- Consultores */
.kv-agents { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 40px var(--kv-gap); }
.kv-agent-card { display: flex; flex-direction: column; min-width: 0; }
.kv-agent-card .kv-ph { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--kv-neutral); }
.kv-agent-card .kv-ph img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; filter: grayscale(1); transition: filter .5s ease; }
.kv-agent-card:hover .kv-ph img, .kv-agent-card:focus-within .kv-ph img { filter: none; }
.kv-ph-empty { display: grid !important; place-items: center; color: var(--kv-black); font-family: var(--kv-title); font-size: 44px; font-weight: 700; letter-spacing: -.02em; }
/* Nome do consultor: h3, debaixo do h2 da equipa (ou do "A equipa" da página da agência) */
body.kv .kv-agent-card h3 { margin: 16px 0 2px; color: var(--kv-black); font-family: var(--kv-title); font-weight: 600; font-size: 19px; line-height: 1.2; letter-spacing: -.02em; text-transform: none; }
.kv-agent-card h3 a { color: var(--kv-black); }
.kv-agent-card h3 a::after { content: none; }
.kv-agent-card > span { font-size: 14px; }
.kv-agent-card .kv-contact-list { gap: 8px; margin: 14px 0 16px; }
body.kv .kv-agent-card .kv-contact-list li { font-size: 15px; }
.kv-agent-card .kv-more { align-self: flex-start; margin-top: auto; }

.kv-profile { display: grid; grid-template-columns: minmax(0, 360px) minmax(0, 1fr); gap: 40px clamp(40px, 5vw, 96px); align-items: start; }
.kv-profile .kv-ph { aspect-ratio: 4 / 5; overflow: hidden; background: var(--kv-neutral); }
.kv-profile .kv-ph img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; filter: grayscale(1); }
body.kv .kv-profile h1 { margin: 0; color: var(--kv-black); font-family: var(--kv-title); font-weight: 700; font-size: clamp(34px, 4.4vw, 64px); line-height: 1.05; letter-spacing: -.02em; text-transform: none; }
.kv-profile .kv-contact-list { margin-top: 26px; }
.kv-profile-about { max-width: 64ch; margin: 26px 0 0; white-space: pre-line; }
.kv-social { display: flex; gap: 8px; margin: 22px 0 0; padding: 0; list-style: none; }
.kv-social a { display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--kv-black); border-radius: var(--kv-radius); background: var(--kv-white); color: var(--kv-black); font-size: 17px; }
.kv-social a:hover { background: var(--kv-black); color: var(--kv-white); }

/* ---------- Blog */
.kv-blog { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px 64px; align-items: start; }
/* 1 coluna no telemóvel, 2 no tablet e a 1440, 3 em 2K */
.kv-blog .kv-posts { grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); }
.kv-cats { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 34px; padding: 0; list-style: none; }
.kv-cats a { display: inline-block; padding: 8px 14px; border: 1px solid var(--kv-line); border-radius: var(--kv-radius-sm); color: var(--kv-black); font-size: 14px; }
.kv-cats a:hover, .kv-cats a[aria-current="page"] { border-color: var(--kv-black); background: var(--kv-black); color: var(--kv-white); }
.kv-post-cat { display: inline-flex; align-items: center; gap: 6px; margin-top: 18px; color: var(--kv-black); }
.kv-post-cat .kv-i { width: 15px; height: 15px; }
.kv-post-cat + time { margin-top: 6px !important; }
.kv-side-list { margin: 0; padding: 0; list-style: none; border-top: 2px solid var(--kv-black); }
body.kv .kv-side-list li { padding: 14px 0; border-bottom: 1px solid var(--kv-line); }
.kv-side-list a { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 14px; align-items: center; color: var(--kv-black); }
.kv-side-list img { width: 84px; height: 63px; object-fit: cover; background: var(--kv-neutral); }
.kv-side-list strong { display: block; font-family: var(--kv-title); font-size: 14px; font-weight: 600; line-height: 1.3; }
.kv-side-list span { font-size: 13.5px; color: var(--kv-grey); }
.kv-side h2 { margin: 0 0 14px; }

.kv-article { max-width: 760px; }
.kv-article-ph { margin: 0 0 30px; aspect-ratio: 16 / 9; overflow: hidden; background: var(--kv-neutral); }
.kv-article-ph img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.kv .kv-article h1 { margin: 10px 0 26px; color: var(--kv-black); font-family: var(--kv-title); font-weight: 700; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.05; letter-spacing: -.02em; text-transform: none; text-wrap: balance; }
.kv-article-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--kv-grey); }

/* Partilha sem serviços de terceiros: ligações diretas (nada carrega antes do clique) */
.kv-share { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 36px 0 0; padding: 22px 0 0; border-top: 1px solid var(--kv-line); }
.kv-share > span { margin-right: 6px; color: var(--kv-black); }
.kv-share a, .kv-share button { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 14px; border: 1.5px solid var(--kv-black); border-radius: var(--kv-radius); background: var(--kv-white); color: var(--kv-black); font-family: var(--kv-title); font-size: 14px; font-weight: 600; letter-spacing: 0; cursor: pointer; }
.kv-share a:hover, .kv-share button:hover { background: var(--kv-black); color: var(--kv-white); }

/* Chamada no fim do artigo */
.kv-cta-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 40px 0 0; }
.kv-cta-pair .kv-box { display: flex; flex-direction: column; align-items: flex-start; }
.kv-cta-pair .kv-btn { margin-top: auto; }


/* ---------- Faixa final com uma chamada à ação (cinzento, só o botão a amarelo) */
.kv-band { background: var(--kv-neutral); }
.kv-band-in { display: grid; grid-template-columns: minmax(0, 1.4fr) auto; gap: 24px 48px; align-items: center; padding-block: var(--kv-band-y); }
body.kv .kv-band h2 { margin: 0; color: var(--kv-black); font-family: var(--kv-title); font-weight: 700; font-size: clamp(28px, 3.6vw, 52px); line-height: 1.05; letter-spacing: -.02em; text-transform: none; text-wrap: balance; }
body.kv .kv-band p { max-width: 56ch; margin: 12px 0 0; }

/* ---------- Ecrãs menores */
@media (max-width: 1100px) {
    .kv-blog { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
    .kv-intro-in, .kv-split, .kv-profile, .kv-band-in { grid-template-columns: minmax(0, 1fr); }
    .kv-intro-ph { aspect-ratio: 16 / 10; }
    .kv-aside { position: static; }
    .kv-points, .kv-points--2 { grid-template-columns: minmax(0, 1fr); }
    .kv-points > div, .kv-points > div + div { padding: 24px 0 8px; border-right: 0; border-bottom: 1px solid var(--kv-line); }
    .kv-offices { grid-template-columns: minmax(0, 1fr); }
    .kv-partners { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .kv-profile .kv-ph { max-width: 320px; }
}
/* Telemóvel: um consultor por linha, retrato pequeno à esquerda e os contactos ao lado
   (em duas colunas os emails partiam letra a letra e o retrato 4:5 enchia o ecrã) */
@media (max-width: 599.98px) {
    .kv-agents { grid-template-columns: minmax(0, 1fr); gap: 0; border-top: 1px solid var(--kv-line); }
    .kv-agent-card { display: grid; grid-template-columns: 96px minmax(0, 1fr); align-content: start; column-gap: 16px; padding-block: 20px; border-bottom: 1px solid var(--kv-line); }
    .kv-agent-card > * { grid-column: 2; }
    .kv-agent-card > .kv-ph { grid-column: 1; grid-row: 1 / span 5; align-self: start; }
    body.kv .kv-agent-card h3 { margin-top: 0; }
    .kv-agent-card .kv-contact-list { margin: 10px 0 12px; }
    .kv-ph-empty { font-size: 32px; }
    .kv-profile .kv-ph { max-width: 220px; }
}
@media (max-width: 620px) {
    .kv-facts { grid-template-columns: minmax(0, 1fr); }
    .kv-facts > div, .kv-facts > div + div { padding: 20px 0; border-left: 0; border-bottom: 1px solid var(--kv-line); }
    .kv-cta-pair { grid-template-columns: minmax(0, 1fr); }
    .kv-intro .kv-acts .kv-btn { width: 100%; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
    .kv-agent-card .kv-ph img { transition: none; }
}

/* Passos numerados ("O que acontece a seguir", /vender-casa) */
.kv-next { margin: 0; padding: 0; list-style: none; counter-reset: kvnext; border-top: 2px solid var(--kv-black); }
body.kv .kv-next li { position: relative; display: block; padding: 18px 0 18px 52px; border-bottom: 1px solid var(--kv-line); color: var(--kv-grey); font-size: 16px; line-height: 1.5; }
.kv-next li::before { counter-increment: kvnext; content: counter(kvnext); position: absolute; left: 0; top: 16px; display: grid; place-items: center; width: 34px; height: 34px; background: var(--kv-black); color: var(--kv-white); font-family: var(--kv-title); font-size: 14px; font-weight: 700; }
.kv-next strong { color: var(--kv-black); }
/* Ícones das listas de contactos (Font Awesome do tema) */
.kv-contact-list i { flex: none; width: 18px; margin-top: 3px; color: var(--kv-black); text-align: center; }
/* O nome da marca escreve-se sempre "K-Invest", também dentro de títulos em maiúsculas */
.kv-brand { text-transform: none; }
/* Nos textos antigos há parágrafos inteiros marcados como título (h4–h6): ficam mais pequenos */
body.kv .kv-prose h4, body.kv .kv-prose h5, body.kv .kv-prose h6 { font-size: 18px; line-height: 1.4; }
.kv-contact-list a, .kv-contact-list span { min-width: 0; overflow-wrap: anywhere; }
body.kv .kv-post h2 { margin: 8px 0 10px; color: var(--kv-black); font-family: var(--kv-title); font-weight: 600; font-size: 20px; line-height: 1.2; letter-spacing: -.015em; text-transform: none; }
.kv-share [data-copied] { background: var(--kv-black); color: var(--kv-white); }
/* Brand Kit 3.0: caixa-alta só em etiquetas de 1–3 palavras. As datas dos artigos e a linha "Consultor K-Invest · Agência …"
   são mais longas: ficam em letra normal. O título "Últimos imóveis" da barra lateral é uma etiqueta (o h2 da base tirava-lhe a caixa-alta). */
.kv-post time.kv-caps, .kv-profile .kv-caps { font-size: 13px; letter-spacing: 0; text-transform: none; color: var(--kv-muted); }
body.kv .kv-side h2.kv-caps { font-size: 12px; line-height: 16px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }

/* Artigo do blog: ler a seguir (mesma categoria) e anterior / seguinte */
.kv-read-next { margin: 44px 0 0; }
.kv-read-next ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--kv-line); }
.kv-read-next li { border-bottom: 1px solid var(--kv-line); }
.kv-read-next a { display: block; padding: 14px 0; color: var(--kv-black); font-weight: 600; text-decoration: none; }
.kv-read-next a:hover { text-decoration: underline; text-decoration-color: var(--kv-yellow); text-underline-offset: 3px; }
.kv-post-nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; margin: 32px 0 0; }
.kv-post-nav a { display: flex; flex-direction: column; gap: 4px; padding: 16px; border: 1px solid var(--kv-line); border-radius: var(--kv-radius); color: var(--kv-black); text-decoration: none; }
.kv-post-nav a:hover { border-color: var(--kv-black); }
.kv-post-nav-next { grid-column: 2; text-align: right; }
@media (max-width: 575.98px) { .kv-post-nav { grid-template-columns: 1fr; } .kv-post-nav-next { grid-column: auto; text-align: left; } }

/* Línguas que o consultor fala ("PT · EN · FR"), nos cartões da página dos consultores e na página de cada um */
body.kv .kv-langs { margin: 6px 0 0; color: var(--kv-black); font-size: 13px; font-weight: 600; letter-spacing: .06em; line-height: 1.3; }
body.kv .kv-langs--profile { margin-top: 12px; font-size: 14px; }
/* Filtro "Fala…" (debaixo dos atalhos das equipas): um botão por língua, o escolhido a amarelo */
.kv-langfilter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 4px; margin-bottom: 28px; }
.kv-langfilter[hidden], .kv-agent-card[hidden], .kv-sec[hidden], .sv-teams a[hidden] { display: none !important; }
.kv-langfilter-t { margin-right: 4px; color: var(--kv-black); font-weight: 600; font-size: 14px; }
.kv-langfilter button { padding: 8px 14px; border: 1px solid var(--kv-line-strong); border-radius: var(--kv-radius); background: transparent; color: #000; font: inherit; font-weight: 600; font-size: 14px; line-height: 1.2; cursor: pointer; }
.kv-langfilter button:hover { border-color: #000; }
.kv-langfilter button[aria-pressed="true"] { border-color: var(--kv-yellow); background: var(--kv-yellow); }
