/*
Theme Name:   Astra Child
Theme URI:    https://wpastra.com/
Description:  Child theme do Astra — IN7 Artes / LusoArte
Author:       LusoArte
Template:     astra
Version:      1.2.2
Text Domain:  astra-child
*/

/* =========================================================
   DESIGN SYSTEM — fonte e cor únicas para todo o site
   (Artistas / Obras / Países / País individual)

   A direção visual foi neutralizada para preto / branco /
   cinza, com controlos retangulares e menos acento cromático.

   FONTE: Montserrat (a mesma que já estava a ser usada no
   menu) — passa a ser usada em todo o texto destas páginas.
   Se quiseres a MESMA fonte também na homepage (Elementor),
   define "Montserrat" em Elementor → Definições do Site →
   Global Fonts, para ficar tudo igual.
========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800&display=swap');

:root {
    --ast-global-color-0: #000000;
    --ast-global-color-1: #111111;
    --e-global-color-astglobalcolor0: #000000;
    --e-global-color-astglobalcolor1: #111111;

    --lusoarte-cor:          #111111;
    --lusoarte-cor-escura:   #000000;
    --lusoarte-preto:        #0f0f0f;
    --lusoarte-cinza-escuro: #333333;
    --lusoarte-cinza:        #757575;
    --lusoarte-cinza-claro:  #d9d9d9;
    --lusoarte-cinza-suave:  #f6f6f6;
    --lusoarte-borda:        #dedede;
    --lusoarte-radius:       0;
    --lusoarte-radius-media: 2px;
    --lusoarte-fonte:        'Montserrat', -apple-system, BlinkMacSystemFont, sans-serif;

    --lusoarte-fs-h1:    40px;
    --lusoarte-fs-h2:    26px;
    --lusoarte-fs-h3:    18px;
    --lusoarte-fs-body:  15px;
    --lusoarte-fs-small: 13px;
}

/* =========================================================
   FOOTER GLOBAL IN7ARTES
========================================================= */

.lusoarte-site-footer {
    margin-top: 96px;
    padding: 0 max(5vw, 24px);
    background: var(--lusoarte-preto);
    color: #fff;
    font-family: var(--lusoarte-fonte);
}

.lusoarte-site-footer-main,
.lusoarte-site-footer-newsletter,
.lusoarte-site-footer-bottom {
    width: min(1200px, 100%);
    margin: 0 auto;
}

.lusoarte-site-footer-main {
    display: grid;
    grid-template-columns: minmax(220px, .9fr) minmax(0, 1.8fr);
    gap: clamp(48px, 9vw, 140px);
    padding: 72px 0 64px;
}

.lusoarte-site-footer-brand p {
    max-width: 300px;
    margin: 24px 0 28px;
    color: rgba(255,255,255,.68);
    font-size: 14px;
    line-height: 1.7;
}

.lusoarte-site-footer-logo {
    display: inline-flex;
    max-width: 172px;
}

.lusoarte-site-footer-logo img {
    display: block;
    width: 100%;
    height: auto;
}

.lusoarte-site-footer-cta,
.lusoarte-site-footer-newsletter-link {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.lusoarte-site-footer-cta:hover,
.lusoarte-site-footer-cta:focus,
.lusoarte-site-footer-newsletter-link:hover,
.lusoarte-site-footer-newsletter-link:focus {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 5px;
}

.lusoarte-site-footer-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 28px;
}

.lusoarte-site-footer-column h2,
.lusoarte-site-footer-newsletter h2 {
    margin: 0;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.lusoarte-site-footer-column ul {
    margin: 20px 0 0;
    padding: 0;
    list-style: none;
}

.lusoarte-site-footer-column li + li {
    margin-top: 11px;
}

.lusoarte-site-footer-column a {
    color: rgba(255,255,255,.68);
    font-size: 13px;
    line-height: 1.45;
    text-decoration: none;
}

.lusoarte-site-footer-column a:hover,
.lusoarte-site-footer-column a:focus {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
}

.lusoarte-site-footer-newsletter {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 32px;
    padding: 34px 0;
    border-top: 1px solid rgba(255,255,255,.2);
    border-bottom: 1px solid rgba(255,255,255,.2);
}

.lusoarte-site-footer-kicker {
    margin: 0 0 12px;
    color: rgba(255,255,255,.58);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.lusoarte-site-footer-newsletter h2 {
    font-size: clamp(18px, 2vw, 24px);
    letter-spacing: 0;
    text-transform: none;
}

.lusoarte-site-footer-newsletter p:last-child {
    margin: 8px 0 0;
    color: rgba(255,255,255,.68);
    font-size: 13px;
}

.lusoarte-site-footer-bottom {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 22px 0;
    color: rgba(255,255,255,.48);
    font-size: 11px;
}

.lusoarte-site-footer-bottom p {
    margin: 0;
}

.lusoarte-site-footer-bottom-links {
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
}

.lusoarte-site-footer-bottom a {
    color: inherit;
    text-decoration: none;
}

.lusoarte-site-footer-bottom a:hover,
.lusoarte-site-footer-bottom a:focus {
    color: #fff;
    text-decoration: underline;
    text-underline-offset: 4px;
}

@media (max-width: 760px) {
    .lusoarte-site-footer {
        margin-top: 64px;
    }

    .lusoarte-site-footer-main {
        display: block;
        padding: 52px 0 44px;
    }

    .lusoarte-site-footer-brand {
        margin-bottom: 44px;
    }

    .lusoarte-site-footer-nav {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        row-gap: 36px;
    }

    .lusoarte-site-footer-newsletter,
    .lusoarte-site-footer-bottom {
        align-items: flex-start;
        flex-direction: column;
    }

    .lusoarte-site-footer-newsletter {
        padding: 28px 0;
    }

    .lusoarte-site-footer-bottom {
        gap: 12px;
    }
}

@media (max-width: 420px) {
    .lusoarte-site-footer-nav {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
   HOMEPAGE PHP
========================================================= */

.lusoarte-home {
    width: 100%;
    font-family: var(--lusoarte-fonte);
    color: var(--lusoarte-preto);
}

.home-hero {
    display: flex;
    min-height: 66vh;
    align-items: center;
    padding: 80px max(8vw, 24px);
    background:
        linear-gradient(120deg, rgba(0,0,0,.92), rgba(0,0,0,.64)),
        linear-gradient(135deg, #111, #4b4b4b);
    color: #fff;
}

/* A homepage usa o mesmo banner/header das páginas PHP, com overlay discreto. */
body.lusoarte-home-page .banner-hero-overlay {
    background:
        linear-gradient(180deg, rgba(0,0,0,.16), rgba(0,0,0,.44)),
        linear-gradient(90deg, rgba(0,0,0,.24), transparent 58%, rgba(0,0,0,.14));
}

.home-hero-content,
.home-explore,
.home-countries,
.home-featured-artists,
.lusoarte-home .blog-home-latest {
    width: 80%;
    max-width: 1800px;
    margin-right: auto;
    margin-left: auto;
}

.home-hero-content { max-width: 940px; margin-left: 8%; }
.home-kicker {
    margin: 0 0 12px;
    color: currentColor;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}
.home-hero h1 {
    max-width: 900px;
    margin: 0;
    color: #fff;
    font-family: var(--lusoarte-fonte);
    font-size: clamp(42px, 7vw, 92px);
    font-weight: 800;
    line-height: .98;
}
.home-hero-intro {
    max-width: 680px;
    margin: 28px 0 0;
    color: rgba(255,255,255,.82);
    font-size: clamp(17px, 2vw, 23px);
    line-height: 1.55;
}
.home-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 34px; }
.home-button {
    display: inline-flex;
    min-height: 46px;
    align-items: center;
    padding: 12px 22px;
    border: 1px solid #fff;
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
    text-decoration: none;
    text-transform: uppercase;
}
.home-button-primary { background: #fff; color: #111; }
.home-button:hover,
.home-button:focus { background: #fff; color: #111; }

.home-explore,
.home-countries,
.home-featured-artists,
.home-community-choices { padding: 86px 0 0; }
.home-featured-works,
.home-reviews { width: 80%; max-width: 1800px; margin: 0 auto; padding: 86px 0 0; }
.home-section-heading { margin-bottom: 30px; }
.home-section-heading .home-kicker { color: var(--lusoarte-cinza); }
.home-section-heading h2 {
    max-width: 760px;
    margin: 0;
    color: var(--lusoarte-preto);
    font-family: var(--lusoarte-fonte);
    font-size: clamp(28px, 4vw, 48px);
    font-weight: 800;
    line-height: 1.08;
}
.home-section-heading p:last-child { max-width: 620px; color: var(--lusoarte-cinza-escuro); line-height: 1.6; }
.home-link-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 16px;
}
.home-link-card {
    position: relative;
    isolation: isolate;
    display: flex;
    min-height: 220px;
    flex-direction: column;
    justify-content: space-between;
    padding: 24px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .16);
    background-color: var(--lusoarte-preto);
    background-image: linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.76) 100%), var(--home-card-image);
    background-position: center;
    background-size: cover;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .16);
    color: #fff;
    text-decoration: none;
    transition: filter .15s ease, transform .15s ease, box-shadow .15s ease;
}
.home-link-card span { color: rgba(255, 255, 255, .78); font-size: 12px; font-weight: 800; }
.home-link-card strong { font-size: 24px; font-weight: 800; text-shadow: 0 1px 12px rgba(0,0,0,.32); }
.home-link-card small { color: rgba(255, 255, 255, .88); font-size: 13px; line-height: 1.5; }
.home-link-card:hover,
.home-link-card:focus { color: #fff; filter: brightness(.94); transform: translateY(-3px); box-shadow: 0 14px 30px rgba(0, 0, 0, .22); }
.home-paises-grid { margin-top: 0; }
.lusoarte-home .blog-home-latest { margin-top: 0; padding: 86px 0; border-top: 0; }

.home-community-choices {
    width: 80%;
    max-width: 1800px;
    margin-right: auto;
    margin-left: auto;
}
.home-community-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
}
.home-community-card {
    position: relative;
    isolation: isolate;
    display: flex;
    min-height: 260px;
    flex-direction: column;
    justify-content: flex-end;
    padding: clamp(24px, 4vw, 48px);
    overflow: hidden;
    background-color: #191919;
    background-position: center;
    background-size: cover;
    color: #fff;
    text-decoration: none;
}
.home-community-card::before {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: '';
    background: linear-gradient(180deg, rgba(0,0,0,.18), rgba(0,0,0,.88));
}
.home-community-card-marketplace {
    background-image: url('https://in7artes.besible.pt/wp-content/uploads/2026/07/In7Artes-hero-01.jpg');
}
.home-community-card-forum {
    background-image: url('https://in7artes.besible.pt/wp-content/uploads/2026/07/WhatsApp-Image-2026-07-10-at-15.07.48.jpeg');
}
.home-community-card .home-kicker {
    margin-bottom: 10px;
    color: rgba(255,255,255,.78);
}
.home-community-card strong {
    max-width: 520px;
    font-size: clamp(26px, 3.6vw, 46px);
    line-height: 1.04;
}
.home-community-card > span:not(.home-kicker) {
    max-width: 520px;
    margin-top: 14px;
    color: rgba(255,255,255,.82);
    line-height: 1.55;
}
.home-community-card b {
    display: inline-flex;
    gap: 8px;
    margin-top: 22px;
    font-size: 12px;
    letter-spacing: .05em;
    text-transform: uppercase;
}
.home-community-card:hover,
.home-community-card:focus {
    color: #fff;
    filter: brightness(.94);
}

.home-featured-artists-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}
.home-featured-artist-card {
    display: block;
    min-width: 0;
    color: var(--lusoarte-preto);
    text-decoration: none;
}
.home-featured-artist-photo {
    display: block;
    aspect-ratio: 1 / 1;
    margin-bottom: 12px;
    overflow: hidden;
    background: var(--lusoarte-cinza-claro);
}
.home-featured-artist-photo img,
.home-featured-artist-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.home-featured-artist-placeholder {
    background: linear-gradient(135deg, #1f1f1f, #707070);
}
.home-featured-artist-card:hover .home-featured-artist-photo,
.home-featured-artist-card:focus .home-featured-artist-photo {
    box-shadow: 0 0 0 3px var(--lusoarte-cor);
}
.home-featured-artist-name {
    display: block;
    font-size: 14px;
    font-weight: 800;
    line-height: 1.25;
}
.home-featured-artist-area {
    display: block;
    margin-top: 3px;
    color: var(--lusoarte-cinza-escuro);
    font-size: 12px;
    line-height: 1.35;
}

.home-featured-works-carousel {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(220px, 1fr);
    gap: 18px;
    overflow-x: auto;
    padding: 4px 2px 18px;
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--lusoarte-cinza) var(--lusoarte-cinza-suave);
}
.home-featured-work-card {
    min-width: 0;
    color: var(--lusoarte-preto);
    scroll-snap-align: start;
    text-decoration: none;
}
.home-featured-work-image {
    display: block;
    aspect-ratio: 4 / 3;
    margin-bottom: 12px;
    overflow: hidden;
    background: var(--lusoarte-cinza-claro);
}
.home-featured-work-image img,
.home-featured-work-placeholder {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.home-featured-work-placeholder { background: linear-gradient(135deg, #ddd, #555); }
.home-featured-work-card:hover .home-featured-work-image,
.home-featured-work-card:focus .home-featured-work-image { box-shadow: 0 0 0 3px var(--lusoarte-cor); }
.home-featured-work-title { display: block; font-size: 14px; font-weight: 800; }

.home-reviews-content {
    min-height: 120px;
    padding: 28px;
    border: 1px solid var(--lusoarte-borda);
    background: var(--lusoarte-cinza-suave);
}

.home-marketplace-banner,
.lusoarte-forum-promo {
    width: 80%;
    max-width: 1800px;
    min-height: 360px;
    margin: 86px auto 0;
    padding: clamp(40px, 7vw, 88px);
    display: flex;
    align-items: center;
    background:
        linear-gradient(90deg, rgba(0,0,0,.86), rgba(0,0,0,.36)),
        var(--home-marketplace-image, var(--forum-promo-image, linear-gradient(135deg, #353535, #b4b4b4)));
    background-position: center;
    background-size: cover;
    color: #fff;
}
.home-promo-copy,
.lusoarte-forum-promo > div { max-width: 560px; }
.home-marketplace-banner h2,
.lusoarte-forum-promo h2 { margin: 0 0 14px; color: #fff; font-size: clamp(30px, 5vw, 58px); line-height: 1.02; }
.home-marketplace-banner p:not(.home-kicker),
.lusoarte-forum-promo p:not(.home-kicker) { max-width: 520px; color: rgba(255,255,255,.84); line-height: 1.65; }
.home-marketplace-banner .home-button,
.lusoarte-forum-promo .home-button { margin-top: 14px; }

@media (max-width: 900px) {
    .home-hero-content { width: 84%; margin-left: 8%; }
    .home-link-grid { grid-template-columns: repeat(2, 1fr); }
    .home-featured-artists-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .home-community-choices { width: 84%; }
    .home-featured-works,
    .home-reviews { width: 84%; }
}
@media (max-width: 520px) {
    .home-hero { min-height: 72vh; padding: 56px 24px; }
    .home-hero-content,
    .home-explore,
    .home-countries,
    .home-featured-artists,
    .home-featured-works,
    .home-reviews,
    .home-community-choices,
    .lusoarte-home .blog-home-latest { width: 92%; }
    .home-hero-content { margin-left: auto; }
    .home-link-grid { grid-template-columns: 1fr; }
    .home-featured-artists-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .home-community-grid { grid-template-columns: 1fr; }
    .home-explore,
    .home-countries,
    .home-featured-artists,
    .home-featured-works,
    .home-reviews,
    .home-community-choices,
    .lusoarte-home .blog-home-latest { padding-top: 58px; }
}

@media (min-width: 901px) {
    /* No desktop, a homepage acompanha o viewport e não o contentor limitado do Astra. */
    body.lusoarte-home-page .home-explore,
    body.lusoarte-home-page .home-countries,
    body.lusoarte-home-page .home-community-choices,
    body.lusoarte-home-page .home-featured-artists,
    body.lusoarte-home-page .home-featured-works,
    body.lusoarte-home-page .home-reviews,
    body.lusoarte-home-page .lusoarte-home .blog-home-latest {
        width: min(80vw, 1800px);
        margin-right: auto;
        margin-left: auto;
    }
}

.banner-hero,
.artistas-page,
.paises-wrapper,
.artistas-toolbar,
.artistas-az-nav,
.pais-section {
    font-family: var(--lusoarte-fonte);
}

/* =========================================================
   0. LARGURA GERAL — Artistas / Obras / Países
   Usamos "%" (não "vw"). É importante: "vw" é relativo ao
   ecrã inteiro e ignora o container onde a div está inserida
   — se o container do Astra for mais estreito, a div "vw"
   transborda para fora dele, o que corta ou desloca o resto
   do conteúdo (foi o que aconteceu). "%" nunca ultrapassa o
   pai, por isso é seguro.

   Para estas páginas ficarem realmente a ocupar 80% do ECRÃ
   (e não 80% do container estreito do Astra), tens de tirar
   primeiro a margem que o Astra aplica por página:

   1. Abre a página (Artistas/Obras/Países) no editor do WP
   2. No painel lateral direito, procura a secção "Astra
      Settings" (ícone da Astra)
   3. Em "Layout", muda "Content Layout" para
      "Full Width / Stretched" (ou "Largura Total")
   4. Repete para as 3 páginas

   Depois disso, o "80%" abaixo passa a ser 80% do ecrã real.
   Sem esse passo, o "80%" é 80% do container do Astra (que já
   deve ser mais estreito) — ainda vais notar alguma melhoria,
   mas não o efeito completo.
========================================================= */

/* =========================================================
   1. PÁGINA "PAÍSES" (grelha de países)
========================================================= */

.paises-wrapper {
    width: 80%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 40px 0;
}

.paises-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
    margin-top: 30px;
}

@media (max-width: 900px) {
    .paises-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
    .paises-grid { grid-template-columns: 1fr; }
}

.paises-grid a.pais-card {
    position: relative;
    display: flex;
    min-height: 220px;
    padding: 22px;
    flex-direction: column;
    justify-content: flex-end;
    overflow: hidden;
    border: 1px solid rgba(255,255,255,.16);
    border-radius: var(--lusoarte-radius);
    background: linear-gradient(135deg, #111, #3a3a3a);
    text-decoration: none;
    color: #fff;
    font-family: var(--lusoarte-fonte);
    box-shadow: 0 18px 38px rgba(0,0,0,.08);
    transition: transform .18s ease, filter .18s ease, box-shadow .18s ease;
}

.paises-grid a.pais-card-com-imagem {
    background-image:
        linear-gradient(180deg, rgba(0,0,0,.08) 0%, rgba(0,0,0,.48) 58%, rgba(0,0,0,.78) 100%),
        var(--pais-banner);
    background-position: center;
    background-size: cover;
}

.paises-grid a.pais-card-sem-imagem {
    background:
        linear-gradient(135deg, rgba(255,255,255,.08), rgba(255,255,255,0)),
        linear-gradient(135deg, #171717, #4b4b4b);
}

.paises-grid a.pais-card:hover {
    filter: brightness(.96);
    transform: translateY(-3px);
    box-shadow: 0 24px 54px rgba(0,0,0,.14);
}

.pais-nome {
    font-size: var(--lusoarte-fs-h3);
    font-weight: 800;
    color: #fff;
    line-height: 1.18;
    text-shadow: 0 2px 14px rgba(0,0,0,.42);
}

.pais-count {
    display: inline-flex;
    align-self: flex-start;
    margin-top: 8px;
    padding: 4px 8px;
    border: 1px solid rgba(255,255,255,.32);
    background: rgba(0,0,0,.24);
    font-size: 11px;
    font-weight: 700;
    opacity: .92;
    color: #fff;
}

/* =========================================================
   2. DIRETÓRIOS (Artistas / Obras / País single)
   Estilos partilhados — usados por page-artistas.php,
   page-obras.php e taxonomy-paises.php
========================================================= */

.artistas-page {
    width: 80%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 40px 0;
}

@media (max-width: 900px) {
    body.page-template-page-artistas .artistas-page,
    body.page-template-page-obras .artistas-page,
    body.page-template-page-artistas .blog-context-section,
    body.page-template-page-obras .blog-context-section {
        width: 92%;
    }

    .artistas-page,
    .paises-wrapper {
        width: 92%;
        padding: 30px 0;
    }

    .directory-intro {
        grid-template-columns: 1fr;
        align-items: start;
        padding: 24px 20px;
    }

    .directory-intro-stats {
        justify-content: flex-start;
        min-width: 0;
    }
}

.artistas-header h1 { font-size: var(--lusoarte-fs-h2); font-family: var(--lusoarte-fonte); margin-bottom: 8px; }

.directory-intro {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 28px;
    align-items: end;
    margin: 0 0 28px;
    padding: 32px 34px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    background: #fff;
    box-shadow: 0 18px 44px rgba(0,0,0,.045);
}

.directory-kicker {
    margin: 0 0 10px;
    color: var(--lusoarte-cinza);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.directory-intro h2 {
    max-width: 760px;
    margin: 0;
    color: var(--lusoarte-preto);
    font-family: var(--lusoarte-fonte);
    font-size: clamp(24px, 2.3vw, 34px);
    font-weight: 800;
    line-height: 1.18;
}

.directory-intro p:not(.directory-kicker) {
    max-width: 800px;
    margin: 16px 0 0;
    color: var(--lusoarte-cinza-escuro);
    font-size: 15px;
    font-weight: 500;
    line-height: 1.65;
}

.directory-intro-stats {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 10px;
    min-width: 220px;
}

.directory-intro-stats span {
    display: inline-flex;
    align-items: center;
    min-height: 36px;
    padding: 8px 15px;
    border: 1px solid var(--lusoarte-preto);
    border-radius: var(--lusoarte-radius);
    background: var(--lusoarte-preto);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    box-shadow: none;
}

.pais-breadcrumb {
    margin: 0 0 16px;
    font-size: 14px;
}
.pais-breadcrumb a {
    color: #555;
    text-decoration: none;
}
.pais-breadcrumb a:hover { text-decoration: underline; }

/* ── Toolbar (pesquisa + filtros) ─────────────────────── */
.artistas-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    align-items: center;
    margin-bottom: 24px;
}
.artista-search-input {
    flex: 1 1 240px;
    min-height: 42px;
    padding: 10px 18px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    background: #fff;
    color: var(--lusoarte-preto);
    font-size: var(--lusoarte-fs-body);
    font-weight: 600;
    transition: border-color .15s, box-shadow .15s;
}
.artista-search-input:focus {
    outline: none;
    border-color: var(--lusoarte-cor);
    box-shadow: 0 0 0 3px rgba(0,0,0,.08);
}
.artistas-filtros { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.artistas-filtros select {
    min-height: 42px;
    padding: 9px 36px 9px 16px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    background-color: #fff;
    color: var(--lusoarte-cinza-escuro);
    font-size: 14px;
    font-weight: 700;
    cursor: pointer;
    transition: border-color .15s, color .15s, box-shadow .15s;
}
.artistas-filtros select:hover,
.artistas-filtros select:focus {
    outline: none;
    border-color: var(--lusoarte-cor);
    color: var(--lusoarte-cor);
    box-shadow: 0 0 0 3px rgba(0,0,0,.06);
}
.limpar-filtros {
    display: inline-flex;
    align-items: center;
    min-height: 42px;
    padding: 9px 16px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    background: #fff;
    color: var(--lusoarte-preto);
    font-size: 13px;
    font-weight: 800;
    text-decoration: none;
}
.limpar-filtros:hover {
    background: var(--lusoarte-cor);
    border-color: var(--lusoarte-cor);
    color: #fff;
}

/* ── Índice A-Z ────────────────────────────────────────── */
.artistas-az-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 32px;
    padding-bottom: 16px;
    border-bottom: 1px solid #eee;
}
.artistas-az-nav a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: var(--lusoarte-radius);
    border: 1px solid transparent;
    text-decoration: none;
    font-weight: 600;
    color: #222;
    transition: background .15s, border-color .15s, color .15s;
}
.artistas-az-nav a:hover {
    background: var(--lusoarte-cor);
    border-color: var(--lusoarte-cor);
    color: #fff;
}

/* ── Secções (usado na página de país single) ─────────── */
.pais-section { margin-bottom: 48px; }
.pais-section-title {
    font-size: var(--lusoarte-fs-h3);
    font-weight: 700;
    margin-bottom: 16px;
    border-bottom: 2px solid var(--lusoarte-preto);
    display: inline-block;
    padding-bottom: 4px;
}

/* ── Grupos e grelha ───────────────────────────────────── */
.letra-grupo { margin-bottom: 40px; }
.letra-titulo {
    font-size: var(--lusoarte-fs-h3);
    font-weight: 700;
    margin-bottom: 16px;
    border-bottom: 2px solid var(--lusoarte-preto);
    display: inline-block;
    padding-bottom: 4px;
}
.artistas-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 20px;
}
.obras-grid {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
}

/* Em mobile, Artistas/Obras ficam sempre com 2 colunas certas
   (antes o "auto-fill" podia dar 1 coluna em ecrãs mais
   estreitos, consoante o tamanho mínimo do cartão). */
@media (max-width: 600px) {
    .artistas-grid,
    .obras-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 14px;
    }
}

/* ── Cartões ───────────────────────────────────────────── */
.artista-card {
    text-decoration: none;
    color: inherit;
    text-align: center;
}

.artista-card:hover,
.artista-card:hover .artista-nome,
.artista-card:hover .obra-titulo,
.artista-card:focus,
.artista-card:focus .artista-nome,
.artista-card:focus .obra-titulo,
.pais-destaque-card:hover,
.pais-destaque-card:hover .pais-destaque-nome,
.single-related-grid .artista-card:hover,
.single-related-grid .artista-card:hover .artista-nome {
    color: var(--lusoarte-preto) !important;
}

.artista-card:hover .obra-artista,
.artista-card:hover .obra-ano {
    color: var(--lusoarte-cinza-escuro) !important;
}

.artista-card:hover img,
.pais-destaque-card:hover img {
    filter: grayscale(8%) brightness(.96);
}

.artista-card,
.artista-card .artista-nome,
.artista-card .obra-titulo,
.pais-destaque-card,
.pais-destaque-card .pais-destaque-nome {
    transition: color .15s ease, filter .15s ease, transform .15s ease;
}
.artista-foto img,
.artista-foto-placeholder {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border-radius: var(--lusoarte-radius-media);
    background: #eee;
    display: block;
}

/* Obras em proporção retrato 3:4 */
.obra-foto img,
.obra-placeholder {
    aspect-ratio: 3 / 4 !important;
    border-radius: var(--lusoarte-radius-media);
    background: #eee;
    display: block;
    width: 100%;
    object-fit: cover;
}

.artista-nome,
.obra-titulo  { margin-top: 8px; font-size: 14px; font-weight: 600; }
.obra-artista { font-size: 12px; color: #555; margin-top: 2px; }
.obra-ano     { font-size: 11px; color: #888; margin-top: 1px; }

/* ── Estados ───────────────────────────────────────────── */
.sem-resultados { padding: 24px 0 40px; color: #777; }
.artista-card.escondido { display: none; }
.letra-grupo.escondido  { display: none; }

/* Estilos do banner de topo do País (single) foram unificados
   com o banner-hero partilhado (Artistas/Obras/Países) — ver
   secção "BANNER DE TOPO" mais abaixo, bloco "EXTENSÕES — País". */

/* =========================================================
   5. BANNER HERO — topo das páginas Artistas e Obras
   Já NÃO é gerado aqui no HTML da página — é injetado pelo
   hook "astra_header_after" do Astra (ver functions.php),
   logo a seguir ao cabeçalho e fora do container da página.
   Por isso ocupa sempre 100% da largura do ecrã, tal como a
   barra de navegação, e o conteúdo por baixo (toolbar, índice
   A-Z, grelha) continua a 80% dentro de .artistas-page.

   Os textos, imagem e links dos botões editam-se no início
   de cada ficheiro PHP (page-artistas.php / page-obras.php,
   ANTES do get_header()) — não é preciso mexer aqui a não ser
   que queiras mudar o estilo visual.
========================================================= */

.banner-hero {
    position: relative;
    width: 100%;

    min-height: 55vh;
    display: flex;
    align-items: center;
    justify-content: center;

    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;

    margin-bottom: 40px;
}

.banner-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(0,0,0,.28) 0%, rgba(0,0,0,.64) 100%),
        linear-gradient(90deg, rgba(0,0,0,.38) 0%, rgba(0,0,0,0) 48%, rgba(0,0,0,.38) 100%);
}

.banner-hero-conteudo {
    position: relative;
    z-index: 1;
    width: 70%;
    max-width: 720px;
    margin: 0 auto;
    padding: 60px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 16px;
}

.banner-hero-logo {
    width: 160px;
    max-width: 50%;
    height: auto;
    margin-bottom: 8px;
}

.banner-hero-titulo {
    font-size: var(--lusoarte-fs-h1);
    font-family: var(--lusoarte-fonte);
    font-weight: 800;
    line-height: 1.15;
    color: #fff;
    margin: 0;
}

.banner-hero-subtitulo {
    font-size: var(--lusoarte-fs-body);
    font-family: var(--lusoarte-fonte);
    line-height: 1.6;
    color: #f2f2f2;
    max-width: 520px;
    margin: 0;
}

.banner-hero-botoes {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 10px;
}

.banner-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 28px;
    border-radius: var(--lusoarte-radius);
    font-size: 14px;
    font-family: var(--lusoarte-fonte);
    font-weight: 800;
    text-decoration: none;
    transition: transform .15s ease, background .15s ease, color .15s ease, border-color .15s ease;
}

.banner-btn-primario {
    background: #fff;
    color: var(--lusoarte-preto);
    border: 1px solid #fff;
    box-shadow: 0 10px 24px rgba(0,0,0,.18);
}
.banner-btn-primario:hover {
    background: var(--lusoarte-preto);
    border-color: var(--lusoarte-preto);
    color: #fff;
    transform: translateY(-1px);
}

.banner-btn-secundario {
    background: rgba(255,255,255,.08);
    backdrop-filter: blur(3px);
    color: #fff;
    border: 1px solid rgba(255,255,255,.46);
}
.banner-btn-secundario:hover {
    background: #fff;
    border-color: #fff;
    color: var(--lusoarte-preto);
    transform: translateY(-1px);
}

/* =========================================================
   EXTENSÕES — País (single): botão voltar, bandeira,
   contadores e pills sobre o banner-hero partilhado.
========================================================= */

/* Botão "Voltar" sobreposto no topo do banner, acima da
   bandeira/título — fora do fluxo centrado do conteúdo. */
.banner-hero-voltar {
    position: absolute;
    z-index: 2;
    top: 130px; /* por baixo do menu transparente sobreposto */
    left: max(10vw, calc((100vw - 1800px) / 2));
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 10px 20px;
    border-radius: var(--lusoarte-radius);
    background: rgba(255,255,255,.16);
    backdrop-filter: blur(3px);
    border: 1px solid rgba(255,255,255,.35);
    color: #fff;
    font-family: var(--lusoarte-fonte);
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
    transition: background .15s ease, transform .15s ease;
}
.banner-hero-voltar:hover {
    background: rgba(255,255,255,.3);
    transform: translateX(-2px);
}

body.tax-paises .banner-hero-overlay {
    background:
        radial-gradient(circle at 50% 48%, rgba(0,0,0,.58) 0%, rgba(0,0,0,.38) 34%, rgba(0,0,0,.2) 58%, rgba(0,0,0,.5) 100%),
        linear-gradient(180deg, rgba(0,0,0,.42) 0%, rgba(0,0,0,.66) 100%);
}

body.tax-paises .banner-hero-conteudo {
    max-width: 780px;
}

body.tax-paises .banner-hero-titulo {
    font-size: clamp(42px, 4vw, 62px);
    font-weight: 800;
    text-shadow: 0 4px 22px rgba(0,0,0,.72), 0 1px 2px rgba(0,0,0,.9);
}

body.tax-paises .banner-hero-subtitulo {
    max-width: 640px;
    font-size: 17px;
    font-weight: 500;
    color: #fff;
    text-shadow: 0 3px 16px rgba(0,0,0,.82), 0 1px 2px rgba(0,0,0,.9);
}

.banner-hero-bandeira {
    width: 80px;
    height: auto;
    border-radius: var(--lusoarte-radius);
    box-shadow: 0 2px 10px rgba(0,0,0,.35);
    margin-bottom: 4px;
}

.banner-hero-contadores {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--lusoarte-fonte);
}
.banner-hero-contadores span {
    background: rgba(255,255,255,.16);
    backdrop-filter: blur(2px);
    color: #fff;
    padding: 6px 14px;
    border-radius: var(--lusoarte-radius);
    border: 1px solid rgba(255,255,255,.3);
}

.banner-hero-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: center;
}
.banner-hero-pill {
    display: inline-flex;
    align-items: center;
    padding: 6px 16px;
    border: 1px solid rgba(255,255,255,.28);
    border-radius: var(--lusoarte-radius);
    background: rgba(0,0,0,.42);
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    font-family: var(--lusoarte-fonte);
    box-shadow: 0 2px 8px rgba(0,0,0,.25);
}

@media (max-width: 768px) {
    .banner-hero { min-height: 50vh; }
    .banner-hero-conteudo { width: 88%; padding: 40px 16px; }
    .banner-hero-titulo { font-size: 28px; }
    .banner-hero-voltar {
        top: 90px;
        left: 6vw;
        padding: 8px 16px;
        font-size: 13px;
    }

    body.tax-paises .banner-hero-overlay {
        background:
            radial-gradient(circle at 52% 47%, rgba(0,0,0,.66) 0%, rgba(0,0,0,.48) 42%, rgba(0,0,0,.28) 64%, rgba(0,0,0,.58) 100%),
            linear-gradient(180deg, rgba(0,0,0,.4) 0%, rgba(0,0,0,.68) 100%);
    }

    body.tax-paises .banner-hero-titulo {
        font-size: clamp(34px, 9vw, 44px);
        line-height: 1.08;
    }

    body.tax-paises .banner-hero-subtitulo {
        font-size: 17px;
        line-height: 1.55;
    }
}

/* =========================================================
   6. LARGURA UNIFORME — Artistas / Obras / Países / País (single)
   Reforço via CSS (além do filtro "astra_page_layout" no
   functions.php): garante que nenhum wrapper do Astra corta
   ou estreita o nosso container de 80vw nestas 4 páginas.
========================================================= */

body.lusoarte-uniform-width #primary,
body.lusoarte-uniform-width #main,
body.lusoarte-uniform-width .ast-container {
    max-width: none !important;
    width: 100% !important;
    overflow: visible !important;
}

/* =========================================================
   7. HEADER TRANSPARENTE SOBREPOSTO — em todas as páginas com
   banner (Artistas / Obras / Países / País individual), igual
   ao que já existe na homepage em Elementor.

   O Astra (versão "Header Builder") tem várias camadas de
   wrapper à volta da barra do menu, e a cor de fundo pode
   estar em qualquer uma delas consoante a versão/configuração
   — por isso aplicamos "transparent" a todas as candidatas
   possíveis, e só tornamos "position:absolute" o wrapper mais
   exterior (#masthead), para não partir o layout interno.

   IMPORTANTE: classes como ".ast-builder-grid-row" são
   partilhadas entre o cabeçalho E o rodapé no Astra (mesmo
   sistema "Builder"). Por isso todos os seletores abaixo estão
   prefixados com "#masthead" — assim só afetam o cabeçalho e
   nunca tocam no footer.

   Se mesmo assim não ficar 100% transparente, manda-me um
   print da aba "Elements" do DevTools com o separador
   "Computed" aberto no elemento que ainda tem fundo preto —
   aí vejo exatamente qual a classe a apanhar.
========================================================= */

body.has-banner-hero #masthead,
body.has-banner-hero #masthead #ast-desktop-header,
body.has-banner-hero #masthead #ast-mobile-header,
body.has-banner-hero #masthead .site-header,
body.has-banner-hero #masthead .ast-main-header-wrap,
body.has-banner-hero #masthead .ast-primary-header-bar-wrap,
body.has-banner-hero #masthead .ast-primary-header-bar,
body.has-banner-hero #masthead .site-primary-header-wrap,
body.has-banner-hero #masthead .main-header-bar-wrap,
body.has-banner-hero #masthead .main-header-bar,
body.has-banner-hero #masthead .site-header-primary-section,
body.has-banner-hero #masthead .site-header-primary-section-left,
body.has-banner-hero #masthead .site-header-primary-section-center,
body.has-banner-hero #masthead .site-header-primary-section-right,
body.has-banner-hero #masthead .ast-above-header,
body.has-banner-hero #masthead .ast-above-header-bar,
body.has-banner-hero #masthead .ast-builder-grid-row {
    background: transparent !important;
    background-color: transparent !important;
    box-shadow: none !important;
    border-bottom: none !important;
}

body.has-banner-hero #masthead {
    position: absolute !important;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 60;
}

/* Dar respiração ao logótipo/ícones (deixarem de ficar colados
   às bordas do ecrã) — "encaixota" a linha do menu com margens
   laterais, tal como acontece na homepage. Também prefixado
   com "#masthead" para não afetar o footer.

   SÓ NO DESKTOP: em mobile isto estava a fazer com que a linha
   encolhesse ao tamanho do conteúdo (logo + hamburger) e depois
   o "margin:auto" centrava esse bloco no meio do ecrã, em vez
   de ficar logo à esquerda e hamburger à direita. */
@media (min-width: 922px) {
    body.has-banner-hero #masthead .ast-primary-header-bar,
    body.has-banner-hero #masthead .main-header-bar,
    body.has-banner-hero #masthead .ast-builder-grid-row-container,
    body.has-banner-hero #masthead .ast-builder-grid-row {
        max-width: 1800px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: clamp(24px, 5vw, 80px) !important;
        padding-right: clamp(24px, 5vw, 80px) !important;
        box-sizing: border-box !important;
    }
}

/* MOBILE: espaço fixo mais pequeno, sem max-width/margin:auto,
   e forçamos a linha a ocupar 100% da largura com o logo/menu
   nos cantos (nunca centrados). */
@media (max-width: 921.99px) {
    body.has-banner-hero #masthead .ast-primary-header-bar,
    body.has-banner-hero #masthead .main-header-bar,
    body.has-banner-hero #masthead .ast-builder-grid-row-container,
    body.has-banner-hero #masthead .ast-builder-grid-row {
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
        box-sizing: border-box !important;
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
    }
}

@media (min-width: 922px) {
    body.has-banner-hero #masthead #ast-desktop-header,
    body.has-banner-hero #masthead #ast-desktop-header .ast-main-header-wrap,
    body.has-banner-hero #masthead #ast-desktop-header .ast-primary-header-bar,
    body.has-banner-hero #masthead #ast-desktop-header .site-primary-header-wrap {
        width: 100% !important;
        max-width: none !important;
        box-sizing: border-box !important;
    }

    body.has-banner-hero #masthead #ast-desktop-header .site-primary-header-wrap {
        max-width: 1800px !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    body.has-banner-hero #masthead #ast-desktop-header .ast-builder-grid-row {
        display: grid !important;
        grid-template-columns: minmax(78px, auto) minmax(0, 1fr) minmax(58px, auto) !important;
        align-items: center !important;
        column-gap: clamp(12px, 1.8vw, 30px) !important;
        width: 100% !important;
        min-width: 0 !important;
    }

    body.has-banner-hero #masthead #ast-desktop-header .site-header-primary-section-left,
    body.has-banner-hero #masthead #ast-desktop-header .site-header-primary-section-center,
    body.has-banner-hero #masthead #ast-desktop-header .site-header-primary-section-right,
    body.has-banner-hero #masthead #ast-desktop-header .ast-builder-menu-1,
    body.has-banner-hero #masthead #ast-desktop-header .ast-main-header-bar-alignment,
    body.has-banner-hero #masthead #ast-desktop-header .main-header-bar-navigation,
    body.has-banner-hero #masthead #ast-desktop-header .main-navigation {
        min-width: 0 !important;
        max-width: 100% !important;
    }

    body.has-banner-hero #masthead #ast-desktop-header .site-header-primary-section-center {
        justify-content: center !important;
    }

    body.has-banner-hero #masthead #ast-desktop-header .main-header-menu {
        display: flex !important;
        flex-wrap: nowrap !important;
        justify-content: center !important;
        max-width: 100% !important;
    }

    body.has-banner-hero #masthead #ast-desktop-header .main-header-menu > .menu-item > .menu-link {
        padding-left: clamp(8px, .72vw, 14px) !important;
        padding-right: clamp(8px, .72vw, 14px) !important;
        white-space: nowrap !important;
        font-size: 13px;
    }

    body.has-banner-hero #masthead #ast-desktop-header .custom-logo-link img {
        width: clamp(72px, 6vw, 97px) !important;
        max-width: clamp(72px, 6vw, 97px) !important;
        height: auto !important;
    }
}

@media (min-width: 922px) and (max-width: 1180px) {
    body.has-banner-hero #masthead #ast-desktop-header .ast-header-social-1-wrap {
        display: none !important;
    }

    body.has-banner-hero #masthead #ast-desktop-header .ast-builder-grid-row {
        grid-template-columns: minmax(70px, auto) minmax(0, 1fr) minmax(0, auto) !important;
        column-gap: 12px !important;
    }

    body.has-banner-hero #masthead #ast-desktop-header .main-header-menu > .menu-item > .menu-link {
        padding-left: 7px !important;
        padding-right: 7px !important;
        font-size: 12px;
        letter-spacing: .04em;
    }
}

body.has-banner-hero .banner-hero {
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: 0;
    box-sizing: border-box;
    margin-top: 0;
}

/* Respiração extra entre o menu transparente (sobreposto) e o
   logótipo/título do banner — ajusta este valor se quiseres
   mais ou menos espaço. */
body.has-banner-hero .banner-hero-conteudo {
    padding-top: 150px;
}

/* =========================================================
   7b. CONTROLOS GLOBAIS — Elementor, formulários e wpForo
========================================================= */

body input[type="text"],
body input[type="email"],
body input[type="url"],
body input[type="tel"],
body input[type="search"],
body input[type="password"],
body input[type="number"],
body select,
body textarea,
body .elementor-field,
body #wpforo-wrap input[type="text"],
body #wpforo-wrap input[type="search"],
body #wpforo-wrap input[type="email"],
body #wpforo-wrap input[type="password"],
body #wpforo-wrap select,
body #wpforo-wrap textarea,
body #wpforo #wpforo-wrap input[type="text"],
body #wpforo #wpforo-wrap input[type="search"],
body #wpforo #wpforo-wrap input[type="email"],
body #wpforo #wpforo-wrap input[type="password"],
body #wpforo #wpforo-wrap select,
body #wpforo #wpforo-wrap textarea {
    border-radius: var(--lusoarte-radius) !important;
}

body button,
body .button,
body .ast-button,
body .ast-custom-button,
body input[type="button"],
body input[type="submit"],
body input[type="reset"],
body .elementor-button,
body .wp-block-button__link,
body #wpforo-wrap .wpf-button,
body #wpforo-wrap button,
body #wpforo-wrap input[type="submit"],
body #wpforo #wpforo-wrap .wpf-button,
body #wpforo #wpforo-wrap button,
body #wpforo #wpforo-wrap input[type="submit"] {
    border-radius: var(--lusoarte-radius) !important;
}

body button:hover,
body .button:hover,
body .ast-button:hover,
body input[type="button"]:hover,
body input[type="submit"]:hover,
body .elementor-button:hover,
body .wp-block-button__link:hover,
body #wpforo-wrap .wpf-button:hover,
body #wpforo #wpforo-wrap .wpf-button:hover {
    border-color: var(--lusoarte-preto) !important;
    background-color: var(--lusoarte-preto) !important;
    color: #fff !important;
}

body a:hover,
body a:focus,
body .entry-meta a:not(.ast-button):hover,
body .entry-meta a:not(.ast-button):focus,
body .elementor a:hover,
body .elementor a:focus,
body #wpforo-wrap a:hover,
body #wpforo-wrap a:focus {
    color: var(--lusoarte-preto);
}

/* =========================================================
   7c. CONTACTOS PHP
========================================================= */

body.lusoarte-contact-page #primary,
body.lusoarte-contact-page .ast-container {
    max-width: none !important;
    width: 100% !important;
}

body.lusoarte-contact-page .site-content {
    padding-top: 0;
    padding-bottom: 0;
}

.contact-page {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    padding: 72px 0 96px;
    color: var(--lusoarte-preto);
}

.contact-page-intro {
    max-width: 700px;
    margin-bottom: 48px;
}

.contact-page-kicker {
    margin: 0 0 12px;
    color: var(--lusoarte-cinza-escuro);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.contact-page h1,
.contact-page h2,
.contact-page p {
    margin-top: 0;
}

.contact-page h1 {
    margin-bottom: 16px;
    font-size: clamp(38px, 6vw, 64px);
    line-height: 1;
}

.contact-page-intro > p:last-child,
.contact-page-form-heading > p:last-child {
    max-width: 620px;
    margin-bottom: 0;
    color: var(--lusoarte-cinza-escuro);
    font-size: 18px;
    line-height: 1.6;
}

.contact-page-grid {
    display: grid;
    grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
    gap: 48px;
    align-items: stretch;
}

.contact-page-details {
    display: grid;
    gap: 20px;
    align-content: start;
}

.contact-detail {
    display: grid;
    grid-template-columns: 48px 1fr;
    gap: 16px;
    align-items: start;
    padding: 20px 0;
    border-top: 1px solid var(--lusoarte-cinza-claro);
}

.contact-detail:last-child {
    border-bottom: 1px solid var(--lusoarte-cinza-claro);
}

.contact-detail-icon {
    display: grid;
    width: 48px;
    height: 48px;
    place-items: center;
    border: 1px solid var(--lusoarte-preto);
}

.contact-detail-icon svg {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.5;
}

.contact-detail h2 {
    margin-bottom: 7px;
    font-size: 15px;
    letter-spacing: .03em;
    text-transform: uppercase;
}

.contact-detail p {
    margin-bottom: 0;
    color: var(--lusoarte-cinza-escuro);
    line-height: 1.7;
}

.contact-detail a {
    color: inherit;
}

.contact-page-map {
    min-height: 360px;
    background: var(--lusoarte-cinza-claro);
}

.contact-page-map iframe {
    display: block;
    width: 100%;
    min-height: 360px;
    height: 100%;
    border: 0;
}

.contact-page-territory {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    display: flex;
    min-height: 360px;
    align-items: center;
    justify-content: center;
    padding: 0;
    color: #fff;
}

.contact-page-territory::after {
    position: absolute;
    inset: 0;
    z-index: -1;
    content: '';
    background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.28));
}

.contact-page-territory-images {
    position: absolute;
    inset: 0;
    z-index: -2;
    display: block;
}

.contact-page-territory-images img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

body.page-template-page-artistas .site-content > .ast-container,
body.page-template-page-obras .site-content > .ast-container {
    display: block;
}

body.page-template-page-artistas .artistas-page,
body.page-template-page-obras .artistas-page,
body.page-template-page-artistas .blog-context-section,
body.page-template-page-obras .blog-context-section {
    width: 80%;
    max-width: 1800px;
    margin-right: auto;
    margin-left: auto;
    float: none;
    clear: both;
}

body.page-template-page-artistas .artistas-page > .home-featured-artists,
body.page-template-page-obras .artistas-page > .home-featured-works {
    width: 100%;
    max-width: none;
    margin-bottom: 48px;
}

body.page-template-page-artistas .blog-context-section,
body.page-template-page-obras .blog-context-section {
    display: block;
    flex: none;
    margin-bottom: 56px;
}

body.lusoarte-contact-page .site-content > .ast-container {
    display: block;
}

body.lusoarte-contact-page .contact-page,
body.lusoarte-contact-page .lusoarte-forum-promo {
    width: 80%;
    max-width: 1800px;
    margin-right: auto;
    margin-left: auto;
}

/* O template de contactos usa agora <main id="main">; esta regra mantém
   a mesma largura editorial das restantes páginas sem perder semântica. */
body.lusoarte-contact-page main#main.contact-page {
    width: 80% !important;
    max-width: 1800px !important;
    margin-right: auto;
    margin-left: auto;
}

@media (max-width: 900px) {
    body.page-template-page-artistas .artistas-page,
    body.page-template-page-obras .artistas-page,
    body.page-template-page-artistas .blog-context-section,
    body.page-template-page-obras .blog-context-section {
        width: 84%;
    }
}

@media (max-width: 520px) {
    body.page-template-page-artistas .artistas-page,
    body.page-template-page-obras .artistas-page,
    body.page-template-page-artistas .blog-context-section,
    body.page-template-page-obras .blog-context-section {
        width: 92%;
    }

    body.page-template-page-artistas .artistas-page > .home-featured-artists,
    body.page-template-page-obras .artistas-page > .home-featured-works {
        margin-bottom: 32px;
    }
}

.contact-page-territory-copy {
    max-width: 360px;
    padding: 48px;
}

.contact-page-territory .contact-page-kicker {
    color: #d8d8d8;
}

.contact-page-territory strong,
.contact-page-territory span {
    display: block;
}

.contact-page-territory strong {
    margin-bottom: 14px;
    font-size: clamp(28px, 4vw, 46px);
    line-height: 1.05;
}

.contact-page-territory span {
    color: #e5e5e5;
    line-height: 1.6;
}

.contact-page-form {
    display: grid;
    grid-template-columns: minmax(220px, .7fr) minmax(0, 1.3fr);
    gap: 48px;
    margin-top: 72px;
    padding-top: 56px;
    border-top: 1px solid var(--lusoarte-cinza-claro);
}

.contact-page-form-heading h2 {
    margin-bottom: 14px;
    font-size: clamp(28px, 4vw, 42px);
    line-height: 1.1;
}

.contact-page-form .srfm-form {
    width: 100%;
}

.lusoarte-contact-form {
    display: grid;
    gap: 18px;
}

.lusoarte-contact-form p {
    margin: 0;
}

.lusoarte-contact-form label {
    display: block;
    margin-bottom: 7px;
    font-weight: 600;
}

.lusoarte-contact-form input:not([type="hidden"]),
.lusoarte-contact-form textarea {
    width: 100%;
    color: var(--lusoarte-preto);
    background: #fff;
    border: 1px solid #8a8a8a;
    box-shadow: none;
}

.lusoarte-contact-form input:not([type="hidden"]):focus,
.lusoarte-contact-form textarea:focus {
    border-color: var(--lusoarte-preto);
    outline: 2px solid var(--lusoarte-preto);
    outline-offset: 1px;
}

.lusoarte-contact-form button {
    justify-self: start;
    padding: 13px 24px;
    color: #fff;
    background: var(--lusoarte-preto);
    border: 1px solid var(--lusoarte-preto);
    cursor: pointer;
}

.lusoarte-contact-form button:hover,
.lusoarte-contact-form button:focus {
    color: var(--lusoarte-preto);
    background: #fff;
}

.lusoarte-contact-form-privacy {
    color: var(--lusoarte-cinza-escuro);
    font-size: 14px;
    line-height: 1.6;
}

.contact-form-feedback {
    grid-column: 1 / -1;
    margin: 0 0 18px;
    padding: 14px 16px;
    border: 1px solid var(--lusoarte-borda);
}

.contact-form-feedback-success { background: #eef6ef; }
.contact-form-feedback-error { background: #fff4f1; }

.lusoarte-contact-form-honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.contact-form-unavailable {
    padding: 28px;
    border: 1px solid var(--lusoarte-borda);
    background: var(--lusoarte-cinza-suave);
    color: var(--lusoarte-cinza-escuro);
    line-height: 1.7;
}
.contact-form-unavailable p { margin: 0; }
.contact-form-unavailable p + p { margin-top: 10px; }

.contact-legal-notice {
    margin-top: 64px;
    padding: 28px;
    border: 1px solid var(--lusoarte-borda);
    background: var(--lusoarte-cinza-suave);
}
.contact-legal-notice h2 { margin-bottom: 10px; font-size: 22px; }
.contact-legal-notice p:last-child { max-width: 760px; margin-bottom: 0; color: var(--lusoarte-cinza-escuro); line-height: 1.7; }

/* O formulário existente traz estilos de tema escuro do SureForms.
   Nesta página PHP o fundo é claro, por isso estes controlos precisam
   de contraste explícito. */
body.lusoarte-contact-page .contact-page-form .srfm-form .srfm-input-common {
    color: var(--lusoarte-preto) !important;
    background-color: #fff !important;
    border: 1px solid #8a8a8a !important;
    box-shadow: none;
}

body.lusoarte-contact-page .contact-page-form .srfm-form .srfm-input-common::placeholder {
    color: #4a4a4a !important;
    opacity: 1;
}

body.lusoarte-contact-page .contact-page-form .srfm-form .srfm-input-common:focus {
    border-color: var(--lusoarte-preto) !important;
    outline: 2px solid var(--lusoarte-preto);
    outline-offset: 1px;
}

@media (max-width: 800px) {
    .contact-page {
        padding: 48px 0 64px;
    }

    .contact-page-grid,
    .contact-page-form {
        grid-template-columns: 1fr;
        gap: 32px;
    }

    .contact-page-map,
    .contact-page-map iframe {
        min-height: 280px;
    }

    .home-marketplace-banner,
    .lusoarte-forum-promo {
        width: 92%;
        min-height: 320px;
        margin-top: 58px;
        padding: 40px 28px;
    }

    .contact-page-territory-copy { padding: 36px 28px; }
}

.single-country-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.single-country-badge img {
    display: block;
    width: 28px;
    height: 20px;
    object-fit: cover;
    border: 1px solid var(--lusoarte-cinza-claro);
}

/* =========================================================
   8. BLOG NATIVO — arquivo, cartões e artigos relacionados
========================================================= */

.blog-page,
.blog-single-page {
    width: min(1120px, calc(100% - 32px));
    margin: 0 auto;
    padding: 72px 0 96px;
}

.blog-page-intro,
.blog-single-header {
    max-width: 760px;
    margin-bottom: 48px;
}

.blog-kicker {
    margin: 0 0 12px;
    color: var(--lusoarte-cinza-escuro);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.blog-page h1,
.blog-single-page h1 {
    margin: 0 0 16px;
    font-size: clamp(40px, 7vw, 76px);
    line-height: .98;
}

.blog-page-intro > p:last-child {
    margin: 0;
    color: var(--lusoarte-cinza-escuro);
    font-size: 18px;
    line-height: 1.6;
}

.blog-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.blog-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    border: 1px solid var(--lusoarte-cinza-claro);
    background: #fff;
}

.blog-card-image {
    display: block;
    aspect-ratio: 16 / 10;
    overflow: hidden;
    background: var(--lusoarte-cinza-claro);
}

.blog-card-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .2s ease;
}

.blog-card-image:hover img,
.blog-card-image:focus img {
    transform: scale(1.03);
}

.blog-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 24px;
}

.blog-card-date,
.blog-single-date {
    margin: 0 0 10px;
    color: var(--lusoarte-cinza-escuro);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.blog-card h2,
.blog-card h3 {
    margin: 0 0 12px;
    font-size: 22px;
    line-height: 1.15;
}

.blog-card h2 a,
.blog-card h3 a {
    color: var(--lusoarte-preto);
}

.blog-card-content > p:not(.blog-card-date) {
    margin: 0 0 20px;
    color: var(--lusoarte-cinza-escuro);
    line-height: 1.6;
}

.blog-card-link,
.blog-see-all,
.blog-single-meta a {
    color: var(--lusoarte-preto);
    font-size: 13px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.blog-card-link {
    margin-top: auto;
}

.blog-section-header {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.blog-section-header h2 {
    margin: 0 0 8px;
    font-size: clamp(28px, 4vw, 44px);
    line-height: 1.05;
}

.blog-section-header p:last-child {
    margin: 0;
    color: var(--lusoarte-cinza-escuro);
}

.blog-context-section,
.blog-home-accordion {
    width: min(1120px, calc(100% - 32px));
    margin: 72px auto 0;
    padding-top: 56px;
    border-top: 1px solid var(--lusoarte-cinza-claro);
}

.pais-blog-inline {
    margin: 48px 0 64px;
    padding: 32px 0 0;
    border-top: 1px solid var(--lusoarte-cinza-claro);
}

.pais-blog-inline .blog-context-section {
    width: 100%;
    margin: 0;
    padding: 0;
    border-top: 0;
}

.pais-blog-inline .blog-card-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.blog-archive-grid {
    margin-bottom: 48px;
}

.blog-empty {
    padding: 32px;
    border: 1px solid var(--lusoarte-cinza-claro);
}

.blog-home-accordion .blog-accordion-items {
    border-top: 1px solid var(--lusoarte-cinza-claro);
}

.blog-home-accordion details {
    border-bottom: 1px solid var(--lusoarte-cinza-claro);
}

.blog-home-accordion summary {
    display: grid;
    grid-template-columns: 120px 1fr 24px;
    gap: 20px;
    align-items: center;
    padding: 20px 0;
    cursor: pointer;
    list-style: none;
}

.blog-home-accordion summary::-webkit-details-marker {
    display: none;
}

.blog-home-accordion summary::after {
    content: '+';
    font-size: 24px;
    font-weight: 300;
    text-align: right;
}

.blog-home-accordion details[open] summary::after {
    content: '−';
}

.blog-home-accordion summary span {
    color: var(--lusoarte-cinza-escuro);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.blog-home-accordion summary strong {
    font-size: 18px;
}

.blog-home-accordion details > div {
    max-width: 760px;
    padding: 0 64px 24px 140px;
}

.blog-home-accordion details p {
    margin: 0 0 12px;
    color: var(--lusoarte-cinza-escuro);
    line-height: 1.6;
}

.blog-home-accordion details a {
    color: var(--lusoarte-preto);
    font-weight: 700;
}

.blog-single-header {
    margin-bottom: 32px;
}

.blog-single-image {
    margin-bottom: 48px;
}

.blog-single-image img {
    display: block;
    width: 100%;
    max-height: 620px;
    object-fit: cover;
}

.blog-single-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 220px;
    gap: 64px;
}

.blog-single-content {
    max-width: 760px;
    font-size: 18px;
    line-height: 1.75;
}

.blog-single-content img {
    max-width: 100%;
    height: auto;
}

.blog-single-meta {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 12px;
    padding-top: 8px;
    font-size: 13px;
}

.blog-single-tags,
.blog-single-countries {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.blog-single-tags a,
.blog-single-countries a {
    padding: 6px 10px;
    border: 1px solid var(--lusoarte-cinza-claro);
}

@media (max-width: 800px) {
    .blog-page,
    .blog-single-page {
        padding: 48px 0 64px;
    }

    .blog-card-grid,
    .blog-single-layout,
    .pais-blog-inline .blog-card-grid {
        grid-template-columns: 1fr;
    }

    .blog-section-header {
        align-items: flex-start;
        flex-direction: column;
    }

    .blog-home-accordion summary {
        grid-template-columns: 88px 1fr 20px;
        gap: 12px;
    }

    .blog-home-accordion details > div {
        padding: 0 32px 24px 100px;
    }
}

body .banner-hero a:hover,
body .banner-hero a:focus,
body .paises-grid a:hover,
body .paises-grid a:focus,
body .artistas-az-nav a:hover,
body .artistas-az-nav a:focus,
body .limpar-filtros:hover,
body .limpar-filtros:focus,
body .pagina-link.pagina-ativa,
body .single-primary-action:hover,
body .single-primary-action:focus {
    color: #fff;
}

body.has-banner-hero #masthead .main-header-menu > .menu-item > .menu-link,
body.has-banner-hero #masthead .main-header-menu > .menu-item > .menu-link:hover,
body.has-banner-hero #masthead .main-header-menu > .menu-item > .menu-link:focus,
body.has-banner-hero #masthead .main-header-menu > .current-menu-item > .menu-link,
body.has-banner-hero #masthead .main-header-menu > .current_page_item > .menu-link,
body.has-banner-hero #masthead .ast-builder-social-element,
body.has-banner-hero #masthead .ast-builder-social-element:hover,
body.has-banner-hero #masthead .ast-builder-social-element:focus,
body.has-banner-hero #masthead .ast-mobile-menu-trigger-minimal,
body.has-banner-hero #masthead .ast-mobile-menu-trigger-minimal:hover,
body.has-banner-hero #masthead .ast-mobile-menu-trigger-minimal:focus {
    color: #fff !important;
    background: transparent !important;
}

body.has-banner-hero #masthead .ast-builder-social-element {
    --color: #fff !important;
}

body.has-banner-hero #masthead svg,
body.has-banner-hero #masthead svg path {
    fill: currentColor !important;
}

body.lusoarte-light-header #masthead,
body.lusoarte-light-header #masthead #ast-desktop-header,
body.lusoarte-light-header #masthead #ast-mobile-header,
body.lusoarte-light-header #masthead .site-header,
body.lusoarte-light-header #masthead .ast-main-header-wrap,
body.lusoarte-light-header #masthead .ast-primary-header-bar-wrap,
body.lusoarte-light-header #masthead .ast-primary-header-bar,
body.lusoarte-light-header #masthead .site-primary-header-wrap,
body.lusoarte-light-header #masthead .main-header-bar-wrap,
body.lusoarte-light-header #masthead .main-header-bar,
body.lusoarte-light-header #masthead .site-header-primary-section,
body.lusoarte-light-header #masthead .ast-builder-grid-row,
body.lusoarte-light-header .ast-mobile-header-content,
body.lusoarte-light-header .ast-mobile-header-content .main-header-menu,
body.lusoarte-light-header .ast-mobile-header-content .main-header-menu .menu-link {
    background: #fff !important;
    background-color: #fff !important;
    box-shadow: none !important;
}

body.lusoarte-light-header #masthead {
    position: relative !important;
    border-bottom: 1px solid var(--lusoarte-borda);
    z-index: 60;
}

body.lusoarte-light-header #masthead .main-header-menu > .menu-item > .menu-link,
body.lusoarte-light-header #masthead .main-header-menu > .menu-item > .menu-link:hover,
body.lusoarte-light-header #masthead .main-header-menu > .menu-item > .menu-link:focus,
body.lusoarte-light-header #masthead .main-header-menu > .current-menu-item > .menu-link,
body.lusoarte-light-header #masthead .main-header-menu > .current_page_item > .menu-link,
body.lusoarte-light-header #masthead .ast-builder-social-element,
body.lusoarte-light-header #masthead .ast-builder-social-element:hover,
body.lusoarte-light-header #masthead .ast-builder-social-element:focus,
body.lusoarte-light-header #masthead .ast-mobile-menu-trigger-minimal,
body.lusoarte-light-header #masthead .ast-mobile-menu-trigger-minimal:hover,
body.lusoarte-light-header #masthead .ast-mobile-menu-trigger-minimal:focus {
    color: var(--lusoarte-preto) !important;
    background: transparent !important;
}

body.lusoarte-light-header #masthead .ast-builder-social-element {
    --color: var(--lusoarte-preto) !important;
}

body.lusoarte-light-header #masthead svg,
body.lusoarte-light-header #masthead svg path {
    fill: currentColor !important;
}

body.lusoarte-single-post #masthead,
body.lusoarte-single-post #masthead #ast-desktop-header,
body.lusoarte-single-post #masthead #ast-mobile-header,
body.lusoarte-single-post #masthead .site-header,
body.lusoarte-single-post #masthead .ast-main-header-wrap,
body.lusoarte-single-post #masthead .ast-primary-header-bar-wrap,
body.lusoarte-single-post #masthead .ast-primary-header-bar,
body.lusoarte-single-post #masthead .site-primary-header-wrap,
body.lusoarte-single-post #masthead .main-header-bar-wrap,
body.lusoarte-single-post #masthead .main-header-bar,
body.lusoarte-single-post #masthead .site-header-primary-section,
body.lusoarte-single-post #masthead .ast-builder-grid-row {
    background: var(--lusoarte-preto) !important;
    background-color: var(--lusoarte-preto) !important;
    box-shadow: none !important;
}

body.lusoarte-single-post #masthead {
    position: relative !important;
    border-bottom: 1px solid #292929;
    z-index: 60;
}

body.lusoarte-single-post #masthead .main-header-menu > .menu-item > .menu-link,
body.lusoarte-single-post #masthead .main-header-menu > .menu-item > .menu-link:hover,
body.lusoarte-single-post #masthead .main-header-menu > .menu-item > .menu-link:focus,
body.lusoarte-single-post #masthead .ast-builder-social-element,
body.lusoarte-single-post #masthead .ast-builder-social-element:hover,
body.lusoarte-single-post #masthead .ast-builder-social-element:focus,
body.lusoarte-single-post #masthead .ast-mobile-menu-trigger-minimal,
body.lusoarte-single-post #masthead .ast-mobile-menu-trigger-minimal:hover,
body.lusoarte-single-post #masthead .ast-mobile-menu-trigger-minimal:focus {
    color: #fff !important;
    background: transparent !important;
}

body.lusoarte-single-post #masthead .ast-builder-social-element {
    --color: #fff !important;
}

body.lusoarte-single-post #masthead svg,
body.lusoarte-single-post #masthead svg path {
    fill: currentColor !important;
}

/* =========================================================
   8b. BLOG / ARTIGOS / CONTACTOS — reforço responsivo
========================================================= */

body.lusoarte-blog-page .banner-hero,
body.lusoarte-contact-page .banner-hero {
    min-height: 55vh;
    margin-bottom: 0;
}

body.lusoarte-blog-page .banner-hero {
    height: clamp(500px, calc(55vh + 210px), 605px);
    min-height: 0;
}

body.lusoarte-blog-page .banner-hero-conteudo,
body.lusoarte-contact-page .banner-hero-conteudo {
    padding-top: 120px;
}

body.lusoarte-blog-page .blog-page,
body.lusoarte-contact-page .contact-page {
    padding-top: 72px;
}

body.lusoarte-blog-page .site-content > .ast-container {
    display: block;
}

body.lusoarte-blog-page .blog-page,
body.lusoarte-blog-page .lusoarte-forum-promo {
    float: none;
    clear: both;
    display: block;
    width: min(1120px, calc(100% - 32px));
    margin-left: auto;
    margin-right: auto;
}

body.lusoarte-blog-page .lusoarte-forum-promo {
    margin-top: 0;
}

body.lusoarte-blog-page .blog-card,
body.lusoarte-blog-page .blog-card-content {
    background: #fff !important;
    color: var(--lusoarte-preto) !important;
}

body.lusoarte-blog-page .blog-card h2,
body.lusoarte-blog-page .blog-card h2 a,
body.lusoarte-blog-page .blog-card-content > p:not(.blog-card-date),
body.lusoarte-blog-page .blog-card-date {
    color: var(--lusoarte-preto) !important;
}

body.lusoarte-single-post,
body.lusoarte-single-post .site-content,
body.lusoarte-single-post #primary,
body.lusoarte-single-post #main,
body.lusoarte-single-post .blog-single-page,
body.lusoarte-single-post .blog-single-article {
    background: #fff !important;
    color: var(--lusoarte-preto) !important;
}

body.lusoarte-single-post .blog-single-page {
    max-width: 1120px;
}

body.lusoarte-single-post .blog-single-content,
body.lusoarte-single-post .blog-single-content p,
body.lusoarte-single-post .blog-single-content li,
body.lusoarte-single-post .blog-single-content blockquote,
body.lusoarte-single-post .blog-single-content h2,
body.lusoarte-single-post .blog-single-content h3,
body.lusoarte-single-post .blog-single-content h4 {
    color: var(--lusoarte-preto) !important;
}

body.lusoarte-single-post .blog-single-content a,
body.lusoarte-single-post .blog-single-meta a {
    color: var(--lusoarte-preto) !important;
    text-decoration: underline;
    text-underline-offset: 3px;
}

body.lusoarte-single-post .blog-single-content img {
    display: block;
    max-width: 100%;
    height: auto;
}

/* O Astra usa uma variável escura no fundo dos artigos em mobile. As páginas
   institucionais e legais devem manter o fundo branco e texto legível. */
body.lusoarte-institutional-page.ast-separate-container .ast-article-single {
    background: #fff !important;
    color: var(--lusoarte-preto) !important;
}

body.lusoarte-institutional-page .entry-content,
body.lusoarte-institutional-page .entry-content p,
body.lusoarte-institutional-page .entry-content li,
body.lusoarte-institutional-page .entry-content h1,
body.lusoarte-institutional-page .entry-content h2,
body.lusoarte-institutional-page .entry-content h3,
body.lusoarte-institutional-page .entry-content h4,
body.lusoarte-institutional-page .entry-content strong {
    color: var(--lusoarte-preto) !important;
}

@media (max-width: 921.99px) {
    body #masthead .custom-logo-link {
        display: inline-flex;
        align-items: center;
        min-width: 72px;
        min-height: 58px;
    }

    body #masthead .custom-logo-link img,
    body #masthead .custom-logo {
        display: block;
        width: auto !important;
        max-width: 110px !important;
        height: auto !important;
        max-height: 58px;
        object-fit: contain;
    }

    body.lusoarte-blog-page .banner-hero,
    body.lusoarte-contact-page .banner-hero {
        min-height: 50vh;
    }

    body.lusoarte-blog-page .banner-hero {
        height: auto;
        min-height: 50vh;
    }

    body.lusoarte-blog-page .banner-hero-conteudo,
    body.lusoarte-contact-page .banner-hero-conteudo {
        padding-top: 92px;
    }

    body.lusoarte-blog-page .blog-page,
    body.lusoarte-contact-page .contact-page,
    body.lusoarte-single-post .blog-single-page {
        width: min(100% - 32px, 760px);
        padding-top: 48px;
        padding-bottom: 64px;
    }

    body.lusoarte-contact-page main#main.contact-page {
        width: min(100% - 32px, 760px) !important;
    }

    body.lusoarte-single-post .blog-single-header h1 {
        font-size: clamp(34px, 10vw, 54px);
        line-height: 1.05;
        overflow-wrap: anywhere;
    }

    body.lusoarte-single-post .blog-single-image {
        margin-bottom: 32px;
    }

    body.lusoarte-single-post .blog-single-content {
        max-width: none;
        font-size: 16px;
        line-height: 1.7;
    }
}

/* =========================================================
   8. PAGINAÇÃO — Artistas / Obras
========================================================= */

.lusoarte-paginacao {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    margin-top: 48px;
    flex-wrap: wrap;
    font-family: var(--lusoarte-fonte);
}

.pagina-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 6px;
    border-radius: var(--lusoarte-radius);
    border: 1px solid var(--lusoarte-borda);
    color: var(--lusoarte-cinza-escuro);
    text-decoration: none;
    font-size: 14px;
    font-weight: 800;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}

.pagina-link:hover {
    border-color: var(--lusoarte-cor);
    color: var(--lusoarte-cor);
}

.pagina-link.pagina-ativa {
    background: var(--lusoarte-cor);
    border-color: var(--lusoarte-cor);
    color: #fff;
}

.pagina-reticencias {
    color: var(--lusoarte-cinza);
    padding: 0 4px;
}

/* =========================================================
   PÁGINA PAÍS — V2 (hero pills, timeline, secções destaque)
   A interface editorial usa a mesma linguagem neutra do resto
   do tema: preto, branco, cinzas e imagens como destaque.
   ========================================================= */

.pais-single-v2 { --destaque-cor: var(--lusoarte-cor); }

/* Timeline "Evolução artística" */
.pais-timeline-section { margin: 8px 0 48px; font-family: var(--lusoarte-fonte); }
.pais-timeline {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 24px;
    position: relative;
    padding-top: 24px;
    border-top: 2px solid #eee;
}
.pais-timeline-item { position: relative; padding-left: 4px; }
.pais-timeline-dot {
    display: block;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: var(--lusoarte-preto);
    box-shadow: 0 0 0 4px rgba(0,0,0,.08);
    margin-top: -32px;
    margin-bottom: 12px;
}
.pais-timeline-periodo {
    font-size: 14px;
    font-weight: 700;
    color: var(--lusoarte-preto);
    margin-bottom: 6px;
}
.pais-timeline-texto {
    font-size: 13px;
    color: var(--lusoarte-cinza-escuro);
    line-height: 1.5;
}

/* Cabeçalho de secção com link "Ver todos" */
.pais-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    border-bottom: 2px solid var(--lusoarte-preto);
    margin-bottom: 20px;
}
.pais-section-header .pais-section-title { border-bottom: none; margin-bottom: 0; padding-bottom: 10px; }
.pais-ver-todos {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 14px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    font-family: var(--lusoarte-fonte);
    font-size: 13px;
    font-weight: 800;
    color: var(--lusoarte-cinza-escuro);
    text-decoration: none;
    white-space: nowrap;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}
.pais-ver-todos:hover {
    background: var(--lusoarte-cor);
    border-color: var(--lusoarte-cor);
    color: #fff;
}

/* Grelhas de destaque (artistas / obras) */
.pais-destaque-section { margin-bottom: 48px; }
.pais-destaque-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 20px;
}
.pais-destaque-card {
    display: block;
    text-decoration: none;
    color: inherit;
    font-family: var(--lusoarte-fonte);
    transition: transform .15s ease;
}
.pais-destaque-card:hover { transform: translateY(-4px); }
.pais-destaque-foto {
    aspect-ratio: 1 / 1;
    border-radius: var(--lusoarte-radius-media);
    overflow: hidden;
    background: #f0f0f0;
    margin-bottom: 10px;
    box-shadow: 0 0 0 0 transparent;
    transition: box-shadow .15s ease;
}
.pais-destaque-card:hover .pais-destaque-foto {
    box-shadow: 0 0 0 3px var(--lusoarte-cor);
}
.pais-destaque-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pais-destaque-foto.obra-foto { aspect-ratio: 4 / 3; }
.pais-destaque-nome {
    font-size: 14px;
    font-weight: 700;
    color: var(--lusoarte-preto);
    margin-bottom: 2px;
}
.pais-destaque-area {
    font-size: 12px;
    color: var(--lusoarte-cinza-escuro);
}

/* Tabs de filtro por categoria (obras em destaque) */
.pais-filtro-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 20px;
}
.pais-filtro-tab {
    font-family: var(--lusoarte-fonte);
    font-size: 13px;
    font-weight: 800;
    padding: 9px 18px;
    border-radius: var(--lusoarte-radius);
    border: 1px solid var(--lusoarte-borda);
    background: #fff;
    color: var(--lusoarte-cinza-escuro);
    cursor: pointer;
    transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.pais-filtro-tab:hover { border-color: var(--lusoarte-cor); color: var(--lusoarte-cor); }
.pais-filtro-tab.is-active {
    background: var(--lusoarte-cor);
    border-color: var(--lusoarte-cor);
    color: #fff;
}

@media (max-width: 600px) {
    .pais-destaque-grid { grid-template-columns: repeat(2, 1fr); gap: 14px; }
    .pais-timeline { grid-template-columns: 1fr 1fr; }
}

/* =========================================================
   SINGLES — Artista / Obra
   ========================================================= */

.single-lusoarte {
    width: 80%;
    max-width: 1800px;
    margin: 0 auto;
    padding: 72px 0 80px;
    font-family: var(--lusoarte-fonte);
    color: var(--lusoarte-preto);
}

.single-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin-bottom: 28px;
    padding: 9px 18px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    color: var(--lusoarte-cinza-escuro);
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
    transition: border-color .15s ease, color .15s ease, transform .15s ease;
}

.single-back-link:hover {
    border-color: var(--lusoarte-cor);
    color: var(--lusoarte-cor);
    transform: translateX(-2px);
}

.single-profile-hero,
.single-work-hero {
    display: grid;
    grid-template-columns: minmax(280px, .9fr) minmax(320px, 1.1fr);
    gap: clamp(32px, 5vw, 76px);
    align-items: center;
    margin-bottom: 64px;
}

.single-work-hero {
    grid-template-columns: minmax(320px, 1.05fr) minmax(320px, .95fr);
    align-items: start;
}

.single-profile-media,
.single-work-main-image {
    overflow: hidden;
    background: #f1f1f1;
}

.single-profile-media {
    border-radius: var(--lusoarte-radius-media);
    aspect-ratio: 4 / 5;
}

.single-work-main-image {
    border-radius: var(--lusoarte-radius-media);
    aspect-ratio: 4 / 5;
}

.single-profile-media img,
.single-work-main-image img,
.single-profile-placeholder,
.single-work-placeholder {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.single-lightbox-trigger {
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    color: inherit;
    text-decoration: none;
    cursor: zoom-in;
}

.single-lightbox-trigger span {
    position: absolute;
    right: 16px;
    bottom: 16px;
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 14px;
    border-radius: var(--lusoarte-radius);
    background: rgba(255,255,255,.18);
    backdrop-filter: blur(4px);
    border: 1px solid rgba(255,255,255,.34);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    opacity: 0;
    transform: translateY(6px);
    transition: opacity .15s ease, transform .15s ease;
}

.single-lightbox-trigger:hover span {
    opacity: 1;
    transform: translateY(0);
}

.single-profile-placeholder,
.single-work-placeholder {
    background: linear-gradient(135deg, #eeeeee, #d9d9d9);
}

.single-work-thumbs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    margin-top: 12px;
}

.single-work-thumbs a {
    display: block;
    overflow: hidden;
    border-radius: var(--lusoarte-radius-media);
}

.single-work-thumbs img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    background: #eee;
    display: block;
    transition: transform .18s ease, filter .18s ease;
}

.single-work-thumbs a:hover img {
    filter: brightness(.88);
    transform: scale(1.03);
}

.single-kicker {
    margin: 0 0 12px;
    color: var(--lusoarte-cor);
    font-size: 13px;
    font-weight: 800;
    text-transform: uppercase;
}

.single-profile-copy h1,
.single-work-copy h1 {
    margin: 0;
    font-size: clamp(38px, 4vw, 68px);
    line-height: 1.05;
    font-weight: 800;
    letter-spacing: 0;
}

.single-lead {
    max-width: 680px;
    margin: 22px 0 0;
    color: var(--lusoarte-cinza-escuro);
    font-size: 18px;
    line-height: 1.65;
    font-weight: 500;
}

.single-meta-strip,
.single-social-links,
.single-artists-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-top: 24px;
}

.single-meta-strip span,
.single-meta-strip a,
.single-social-links a,
.single-artists-list a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 14px;
    border-radius: var(--lusoarte-radius);
    background: #f5f5f5;
    color: var(--lusoarte-cinza-escuro);
    text-decoration: none;
    font-size: 13px;
    font-weight: 700;
}

.single-meta-strip a,
.single-social-links a,
.single-artists-list a {
    border: 1px solid transparent;
}

.single-meta-strip a:hover,
.single-social-links a:hover,
.single-artists-list a:hover {
    border-color: var(--lusoarte-cor);
    color: var(--lusoarte-cor);
}

.single-artists-list a {
    background: var(--lusoarte-cinza-suave);
    color: var(--lusoarte-preto);
}

.single-content-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(260px, 360px);
    gap: clamp(28px, 4vw, 56px);
    align-items: start;
}

.single-section {
    margin-bottom: 44px;
}

.single-section h2,
.single-info-panel h2,
.single-section-header h2 {
    display: inline-block;
    margin: 0 0 18px;
    padding-bottom: 5px;
    border-bottom: 2px solid var(--lusoarte-cor);
    font-size: 20px;
    font-weight: 800;
    line-height: 1.2;
}

.single-rich-text {
    max-width: 820px;
    color: var(--lusoarte-cinza-escuro);
    font-size: 16px;
    line-height: 1.75;
}

.single-rich-text p {
    margin: 0 0 18px;
}

.single-quote {
    margin: 0 0 44px;
    padding: 28px 0 28px 28px;
    border-left: 4px solid var(--lusoarte-cor);
    color: var(--lusoarte-preto);
    font-size: clamp(22px, 2.4vw, 34px);
    line-height: 1.35;
    font-weight: 700;
}

.single-info-panel {
    margin-bottom: 22px;
    padding: 24px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    background: #fff;
}

.single-info-panel p,
.single-info-panel ul {
    margin: 0;
    color: var(--lusoarte-cinza-escuro);
    font-size: 14px;
    line-height: 1.6;
}

.single-info-panel ul {
    padding-left: 18px;
}

.single-info-panel li + li {
    margin-top: 8px;
}

.single-video iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 0;
    border-radius: var(--lusoarte-radius);
}

.single-section-header {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 18px;
    border-bottom: 2px solid var(--lusoarte-cor);
    margin-bottom: 22px;
}

.single-section-header h2 {
    border-bottom: 0;
    margin-bottom: 0;
    padding-bottom: 10px;
}

.single-section-header a {
    display: inline-flex;
    align-items: center;
    min-height: 34px;
    padding: 7px 14px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    color: var(--lusoarte-cinza-escuro);
    text-decoration: none;
    font-size: 13px;
    font-weight: 800;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.single-section-header a:hover {
    background: var(--lusoarte-cor);
    border-color: var(--lusoarte-cor);
    color: #fff;
}

.single-related-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 20px;
}

.single-work-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin: 28px 0 0;
}

.single-work-facts div {
    padding: 16px;
    border-radius: var(--lusoarte-radius);
    background: #f7f7f7;
}

.single-work-facts dt {
    margin: 0 0 4px;
    color: var(--lusoarte-cinza);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.single-work-facts dd {
    margin: 0;
    color: var(--lusoarte-preto);
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
}

.single-primary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 24px;
    padding: 12px 22px;
    border-radius: var(--lusoarte-radius);
    background: var(--lusoarte-cor);
    color: #fff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 800;
}

.single-primary-action:hover {
    background: var(--lusoarte-cor-escura);
    color: #fff;
}

.single-artist-panel {
    display: grid;
    grid-template-columns: 88px 1fr;
    gap: 16px;
    padding: 18px;
    border: 1px solid var(--lusoarte-borda);
    border-radius: var(--lusoarte-radius);
    color: inherit;
    text-decoration: none;
    background: #fff;
}

.single-artist-panel + .single-artist-panel {
    margin-top: 16px;
}

.single-artist-panel-photo {
    overflow: hidden;
    border-radius: var(--lusoarte-radius-media);
    aspect-ratio: 1 / 1;
    background: #eee;
}

.single-artist-panel-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.single-artist-panel span {
    display: block;
    margin-bottom: 4px;
    color: var(--lusoarte-cor);
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
}

.single-artist-panel strong {
    display: block;
    font-size: 16px;
    line-height: 1.25;
}

.single-artist-panel p {
    margin: 8px 0 0;
    color: var(--lusoarte-cinza-escuro);
    font-size: 13px;
    line-height: 1.45;
}

.lusoarte-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px;
    background: rgba(0,0,0,.86);
    opacity: 0;
    pointer-events: none;
    transition: opacity .18s ease;
}

.lusoarte-lightbox.is-open {
    opacity: 1;
    pointer-events: auto;
}

.lusoarte-lightbox img {
    max-width: min(1180px, 94vw);
    max-height: 88vh;
    width: auto;
    height: auto;
    object-fit: contain;
    border-radius: var(--lusoarte-radius-media);
    box-shadow: 0 24px 80px rgba(0,0,0,.42);
}

.lusoarte-lightbox-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 44px;
    height: 44px;
    border: 1px solid rgba(255,255,255,.32);
    border-radius: var(--lusoarte-radius);
    background: rgba(255,255,255,.14);
    color: #fff;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
}

.lusoarte-lightbox-close:hover {
    background: var(--lusoarte-cor);
    border-color: var(--lusoarte-cor);
}

.lusoarte-back-to-top {
    position: fixed;
    right: clamp(16px, 3vw, 32px);
    bottom: clamp(16px, 3vw, 32px);
    z-index: 999;
    display: grid;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0;
    border: 1px solid var(--lusoarte-cor);
    border-radius: 50%;
    background: #fff;
    color: var(--lusoarte-cor);
    box-shadow: 0 6px 18px rgba(0, 0, 0, .14);
    font-size: 22px;
    line-height: 1;
    cursor: pointer;
}

.lusoarte-back-to-top:hover {
    background: var(--lusoarte-cor);
    color: #fff;
}

.lusoarte-back-to-top:focus-visible {
    outline: 3px solid #0b57d0;
    outline-offset: 3px;
}

.lusoarte-back-to-top[hidden] {
    display: none;
}

@media (max-width: 900px) {
    .single-lusoarte {
        width: 92%;
        padding: 38px 0 56px;
    }

    .single-profile-hero,
    .single-work-hero,
    .single-content-layout {
        grid-template-columns: 1fr;
    }

    .single-profile-hero,
    .single-work-hero {
        gap: 24px;
        margin-bottom: 44px;
    }

    .single-profile-media {
        max-height: 560px;
    }

    .single-profile-copy h1,
    .single-work-copy h1 {
        font-size: clamp(34px, 10vw, 48px);
    }

    .single-lead {
        font-size: 16px;
        line-height: 1.6;
    }

    .single-work-facts {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 560px) {
    .single-work-facts,
    .single-related-grid {
        grid-template-columns: 1fr 1fr;
    }

    .single-info-panel {
        padding: 18px;
    }

    .single-artist-panel {
        grid-template-columns: 72px 1fr;
        padding: 14px;
    }
}

/* Ajustes finais de mobile — diretórios e single de país */
@media (max-width: 768px) {
    .directory-intro {
        display: block;
        margin-bottom: 24px;
        padding: 22px 18px;
        overflow: hidden;
    }

    .directory-intro h2,
    .directory-intro p:not(.directory-kicker) {
        max-width: none;
        width: 100%;
    }

    .directory-intro h2 {
        font-size: 24px;
        line-height: 1.22;
    }

    .directory-intro p:not(.directory-kicker) {
        font-size: 15px;
        line-height: 1.55;
        word-break: normal;
        overflow-wrap: normal;
    }

    .directory-intro-stats {
        display: flex;
        justify-content: flex-start;
        gap: 10px;
        min-width: 0;
        margin-top: 18px;
    }

    .directory-intro-stats span {
        flex: 0 1 auto;
        min-height: 34px;
        padding: 8px 14px;
        font-size: 13px;
    }

    body.tax-paises .banner-hero-voltar {
        top: 128px;
        left: 6vw;
    }

    .pais-section-header {
        align-items: flex-start;
    }

    .pais-section-header .pais-section-title {
        padding-bottom: 14px;
    }

    .pais-ver-todos {
        margin-top: 4px;
    }
}
