/* 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: 30px 0 64px; }
.kv-intro-in { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 40px 64px; 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: #000; }
body.kv .kv-intro h1 {
    margin: 0; color: #000; font-family: var(--kv-title); font-weight: 700; font-size: clamp(36px, 5.2vw, 76px);
    line-height: .95; letter-spacing: -.05em; text-transform: uppercase; 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: 18px; 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: #000; color: #fff; font-size: 13px; line-height: 1.35; }
.kv-intro-ph figcaption a { color: #fff; 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: #000; 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 #000; }
.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: #000; font-family: var(--kv-title); font-size: clamp(38px, 4.6vw, 64px); font-weight: 700; line-height: 1; letter-spacing: -.05em; 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 #000; }
.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: #000; font-family: var(--kv-title); font-weight: 600; font-size: clamp(20px, 1.9vw, 26px); line-height: 1.15; letter-spacing: -.03em; 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 72px; align-items: start; }
.kv-aside { position: sticky; top: 100px; }
.kv-box { padding: 30px; border: 1px solid #000; background: #fff; }
.kv-box--grey { border-color: var(--kv-neutral); background: var(--kv-neutral); }
body.kv .kv-box h2 { margin: 0 0 10px; color: #000; font-family: var(--kv-title); font-weight: 700; font-size: 24px; line-height: 1.1; letter-spacing: -.03em; 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: #000; font-family: var(--kv-title); font-weight: 600; font-size: clamp(26px, 3vw, 40px); line-height: 1.05; letter-spacing: -.04em; text-transform: uppercase; }

/* Texto que vem da base de dados (páginas do backoffice, artigos do blog) */
.kv-prose { max-width: 72ch; color: var(--kv-grey); font-size: 17px; line-height: 1.7; overflow-wrap: anywhere; }
body.kv .kv-prose h1, body.kv .kv-prose h2 { margin: 1.6em 0 .5em; color: #000; font-family: var(--kv-title); font-weight: 600; font-size: 26px; line-height: 1.2; letter-spacing: -.03em; 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: #000; 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 ol li { list-style: decimal; }
.kv-prose a { color: #000; text-decoration: underline; text-decoration-color: var(--kv-yellow); text-underline-offset: 3px; text-decoration-thickness: 2px; }
.kv-prose strong, .kv-prose b { color: #000; }
.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: 3px solid var(--kv-yellow); }
/* 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 #000; }
.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: #000; 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 #000; outline-offset: 2px; }
.kv-faq details > div { padding: 0 0 18px; }

/* ---------- Parceiros: grelha a preto e branco, sem ligações vazias */
.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; aspect-ratio: 16 / 9; padding: 22px; border-right: 1px solid var(--kv-line); border-bottom: 1px solid var(--kv-line); }
.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: 28px; }
.kv-office { display: flex; flex-direction: column; padding: 30px; border: 1px solid var(--kv-line); }
body.kv .kv-office h2 { margin: 0 0 4px; color: #000; font-family: var(--kv-title); font-weight: 700; font-size: 28px; letter-spacing: -.04em; text-transform: uppercase; }
.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: #000; }
.kv-contact-list a { color: #000; font-weight: 600; text-decoration: underline; text-decoration-color: var(--kv-line); text-underline-offset: 3px; }
.kv-contact-list a:hover { text-decoration-color: var(--kv-yellow); }
.kv-contact-list small { display: block; color: #555; font-size: 13px; font-weight: 400; }
.kv-legal-line { margin: 22px 0 0; font-size: 14px; color: #555; }

/* ---------- Consultores */
.kv-agents { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px 28px; }
.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: #000; font-family: var(--kv-title); font-size: 44px; font-weight: 700; letter-spacing: -.04em; }
body.kv .kv-agent-card h2 { margin: 16px 0 2px; color: #000; font-family: var(--kv-title); font-weight: 600; font-size: 19px; line-height: 1.2; letter-spacing: -.02em; text-transform: none; }
.kv-agent-card h2 a { color: #000; }
.kv-agent-card h2 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 64px; 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: #000; font-family: var(--kv-title); font-weight: 700; font-size: clamp(34px, 4.4vw, 64px); line-height: .95; letter-spacing: -.05em; text-transform: uppercase; }
.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 #000; background: #fff; color: #000; font-size: 17px; }
.kv-social a:hover { background: #000; color: #fff; }

/* ---------- Blog */
.kv-blog { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 48px 64px; align-items: start; }
.kv-blog .kv-posts { grid-template-columns: repeat(2, minmax(0, 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); color: #000; font-size: 14px; }
.kv-cats a:hover, .kv-cats a[aria-current="page"] { border-color: #000; background: #000; color: #fff; }
.kv-post-cat { display: inline-flex; align-items: center; gap: 6px; margin-top: 18px; color: #000; }
.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 #000; }
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: #000; }
.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: #000; font-family: var(--kv-title); font-weight: 700; font-size: clamp(30px, 3.6vw, 48px); line-height: 1.05; letter-spacing: -.04em; 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: #000; }
.kv-share a, .kv-share button { display: inline-flex; align-items: center; gap: 8px; min-height: 42px; padding: 8px 14px; border: 1px solid #000; background: #fff; color: #000; font-family: var(--kv-body); font-size: 14px; cursor: pointer; }
.kv-share a:hover, .kv-share button:hover { background: #000; color: #fff; }

/* 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; }

/* Paginação (front/partials/pagination.blade.php) */
.kv-pages { display: flex; flex-wrap: wrap; gap: 6px; margin: 48px 0 0; padding: 0; list-style: none; }
.kv-pages a, .kv-pages span { display: grid; place-items: center; min-width: 46px; height: 46px; padding: 0 12px; border: 1px solid var(--kv-line); color: #000; font-family: var(--kv-title); font-size: 14px; font-weight: 600; }
.kv-pages a:hover { border-color: #000; }
.kv-pages [aria-current="page"] { border-color: #000; background: #000; color: #fff; }
.kv-pages [aria-disabled="true"] { color: #999; }

/* ---------- 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: 64px; }
body.kv .kv-band h2 { margin: 0; color: #000; font-family: var(--kv-title); font-weight: 700; font-size: clamp(28px, 3.6vw, 52px); line-height: .98; letter-spacing: -.045em; text-transform: uppercase; text-wrap: balance; }
body.kv .kv-band p { max-width: 56ch; margin: 12px 0 0; }

/* ---------- Ecrãs menores */
@media (max-width: 1100px) {
    .kv-agents { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .kv-blog { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 900px) {
    body.kv section.kv-intro { padding: 22px 0 48px; }
    .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-agents { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 18px; }
    .kv-profile .kv-ph { max-width: 320px; }
}
@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-blog .kv-posts, .kv-cta-pair { grid-template-columns: minmax(0, 1fr); }
    .kv-box, .kv-office { padding: 22px; }
    body.kv .kv-lead { font-size: 17px; }
    body.kv h2.kv-h2 { font-size: 23px; }
    .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 #000; }
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: #000; color: #fff; font-family: var(--kv-title); font-size: 14px; font-weight: 700; }
.kv-next strong { color: #000; }
/* Ícones das listas de contactos (Font Awesome do tema) */
.kv-contact-list i { flex: none; width: 18px; margin-top: 3px; color: #000; 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: #000; 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: #000; color: #fff; }
