@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=Merriweather:wght@300;700&display=swap');

/* --- 1. CABEÇALHO --- */
.pkp_structure_head {
    background-color: #d0d0d0;
    background-image:linear-gradient(to right, rgb(0 0 0 / 65%), #ffffff00), url(https://comunicacao.grupolusofona.pt/2020-2021/revistas/_header-top-revistas.jpg);
    background-size: cover !important;
    background-position: center !important;
    height: 250px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    border-bottom: 4px solid #000000;
}

/* --- 2. ESTRUTURA PRINCIPAL EM GRID (COLUNAS) --- */
.pkp_structure_content {
    display: grid !important;
    grid-template-columns: 1fr 300px; /* Esquerda fluida, Direita com 300px fixos */
    gap: 0 40px; /* 40px de espaço entre os artigos e a coluna direita */
    max-width: 1200px !important;
    margin: 20px auto !important;
    border: none !important;
    align-items: start; 
}

/* --- 3. ÁREA DOS ARTIGOS E NOTÍCIAS --- */
.pkp_structure_main { 
    grid-column: 1; 
    grid-row: 1 / 99; /* Permite que os blocos da direita se empilhem sem empurrar a esquerda */
    /*width: 100% !important; */
    float: none !important; 
    border: none !important; 
}

/* --- 4. BARRA LATERAL (Invisível, serve apenas de contentor) --- */
.pkp_structure_sidebar.left {
    display: contents !important; 
}

/* --- 5. IDIOMA NO TOPO (Design Moderno em Botões "Pill") --- */
.pkp_block.block_language {
    grid-column: 1 / -1 !important; /* Ocupa as duas colunas no topo */
    grid-row: 1 !important;
    display: flex !important;
    justify-content: flex-end !important; /* Encosta à direita */
    background: transparent !important; 
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 0 20px 0 !important;
    width: 100% !important;
}

.pkp_block.block_language .title { display: none !important; }

.pkp_block.block_language .content,
.pkp_block.block_language .content ul { 
    display: flex !important; 
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    list-style: none !important; 
    gap: 10px !important; 
    margin: 0 !important; 
    padding: 0 !important; 
    width: 100% !important;
}

.pkp_block.block_language li {
    margin: 0 !important;
    padding: 0 !important;
}

/* Estilo Base dos Idiomas (Inativos) */
.pkp_block.block_language li a {
    display: inline-block !important;
    padding: 6px 14px !important;
    background: #ffffff !important;
    color: #555 !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    border-radius: 20px !important; /* Formato Pílula */
    border: 1px solid #eaeaea !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.04) !important;
    transition: all 0.3s ease !important;
}

.pkp_block.block_language li a:hover { 
    border-color: #CC1F47 !important; 
    color: #000000 !important; 
    transform: translateY(-2px); /* Efeito de elevação */
}

/* Estilo do Idioma Selecionado (Ativo) */
.pkp_block.block_language .current a { 
    background: #CC1F47 !important;
    color: #fff !important;
    border-color: #CC1F47 !important;
    box-shadow: 0 4px 10px rgba(204, 31, 71, 0.25) !important;
}

/* --- 6. TODOS OS BLOCOS (INFORMATION, CUSTOM, ETC) NA COLUNA DIREITA --- */
.pkp_structure_sidebar .pkp_block:not(.block_language) {
    display: block !important;
    grid-column: 2; /* Tranca todos os blocos na coluna da direita */
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    border: 1px solid #eee;
    box-shadow: 0 2px 8px rgba(0,0,0,0.03);
    margin-top: 0;
    margin-bottom: 20px; /* Espaço entre os vários blocos */
    width: 100%;
}

/* Força o Bloco Custom a ficar debaixo da Information 
.pkp_block.block_information { order: 1 !important; }
.pkp_block.block_custom { order: 2 !important; }*/

.pkp_structure_sidebar .pkp_block:not(.block_language) .title {
    border-left: 4px solid #CC1F47;
    padding-left: 15px;
    font-family: 'Inter', sans-serif;
    margin-bottom: 15px;
    font-size: 16px;
    color: #111;
}

.pkp_structure_sidebar .pkp_block:not(.block_language) ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

.pkp_structure_sidebar .pkp_block:not(.block_language) li {
    margin-bottom: 10px;
}


.pkp_structure_sidebar .pkp_block:not(.block_language) a:hover {
    color: #CC1F47;
}

/* --- 7. REMOÇÃO DA LINHA CINZENTA DO TEMA BASE --- */
.pkp_structure_content:before, 
.pkp_structure_content:after, 
.pkp_structure_main:before, 
.pkp_structure_main:after,
.has_sidebar:before {
    display: none !important;
    content: none !important;
    width: 0 !important;
}

/* --- 8. CARTÕES E REVISTAS (TAMANHO 200x240 + 4 CANTOS ARREDONDADOS) --- */
.journals ul { 
    display: flex; 
    flex-direction: column; 
    gap: 30px; 
    padding: 0; 
    list-style: none; 
}

/* Card exterior principal */
.has_thumb {
    display: flex !important;
    background: #fff !important;
    border-radius: 16px !important;
    border: 2px solid transparent !important;
    overflow: hidden !important; 
    box-shadow: 0 5px 15px rgba(0,0,0,0.05) !important;
    transition: 0.3s;
    align-items: center !important; /* Centraliza a imagem verticalmente no card */
}

.has_thumb:hover {
    border-color: #CC1F47 !important;
    transform: translateY(-3px);
}

/* Container da Imagem com 200px por 240px exatos */
.thumb { 
    width: 270px !important;       /* Largura exata pedida */
    min-width: 270px !important;
    height: 241px !important;      /* Altura exata pedida */
    overflow: hidden !important; 
    margin: 15px !important;       /* Espaçamento para a imagem não colar nas bordas */
    padding: 0 !important;
    border-radius: 14px !important; /* Arredonda os 4 cantos da caixa */
}

/* Força a tag <a> interna a ocupar 100% da área */
.thumb a {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
    border-radius: 14px !important; /* Arredonda os 4 cantos do link */
}

/* Imagem com 4 cantos arredondados e corte proporcional */
.thumb img, 
.has_thumb .thumb img { 
    width: 100% !important; 
    height: 100% !important; 
    object-fit: cover !important;  /* Mantém a proporção sem distorcer */
    border-radius: 14px !important; /* Arredonda os 4 bicos da imagem */
}

.pkp_page_index .journals .thumb+.body {
    padding: 20px 25px 20px 10px !important;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.pkp_page_index .journals h3 a {
    font-family: 'Inter', sans-serif !important;
    font-size: 20px !important;
    color: #111 !important;
    text-decoration: none !important;
}

.description p { 
    font-size: 13px !important; 
    color: #666 !important; 
    line-height: 1.5; 
    margin-top: 10px; 
}

/* --- 9. BOTÕES PEQUENOS E LADO A LADO --- */
.links { 
    margin-top: 20px !important; 
    display: flex !important; 
    flex-direction: row !important; 
    gap: 10px !important; 
    border: none !important;
}

.view, .current {
    display: inline-block !important;
    padding: 0 !important;
    border-radius: 6px !important;
    width: fit-content !important;
}

.view a, .current a {
    display: block !important;
    padding: 8px 16px !important;
    font-size: 10px !important;
    text-transform: uppercase;
    font-weight: 700 !important;
    text-decoration: none !important;
}

.view { background: #CC1F47 !important; }
.view a { color: #fff !important; }
.view:hover { background: #000 !important; }
.current a { color: #333 !important; }

/* --- 10. LOGO --- */
.pkp_site_name .is_img img { max-width: 300px !important; }

/* --- 11. PÁGINAS INTERNAS (ARTIGOS E NOTÍCIAS) --- */
.page_index_journal h2, .current_issue h2, .cmp_announcements h2 {
    border-left: 4px solid #CC1F47;
    padding-left: 15px;
    font-family: 'Inter', sans-serif;
}

.obj_announcement_summary, .obj_article_summary {
    background: #fff;
    padding: 20px;
    border-radius: 12px;
    margin-bottom: 10px;
    margin-top: 10px;
    border: 1px solid #eee;
    box-shadow: 0 2px 8px rgba(0,0,0,0.03);
    transition: 0.3s;
}

.obj_announcement_summary:hover, .obj_article_summary:hover {
    border-color: #CC1F47;
}

.pkp_page_index .cmp_announcements>.obj_announcement_summary:before {
    content: ' ';
    position: absolute;
    top: 0;
    right: -1px;
    width: 1px;
    height: 100%;
    border-left: none;
}

.pkp_page_index .cmp_announcements .more:before {
    content: ' ';
    position: absolute;
    top: 0;
    left: 0;
    width: 1px;
    padding: 5px;
    height: 100%;
    border-left: none;
}

.obj_announcement_summary .read_more:after {
    display: inline-block;
    font: normal normal normal 14px / 1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    transform: translate(0, 0);
    content: "\f054";
    position: absolute;
    top: 6px;
    right: 0;
    width: 2.143rem;
    height: 2.143rem;
    line-height: 2.143rem;
    text-align: center;
}

.obj_announcement_summary .read_more, .obj_galley_link.pdf {
    display: inline-block !important;
    margin-top: 10px;
    padding: 6px 26px !important;
    background: #CC1F47 !important;
    color: #fff !important;
    font-size: 10px !important;
    text-transform: uppercase;
    font-weight: 700;
    border-radius: 4px;
    text-decoration: none !important;
}

.obj_announcement_summary .read_more:hover, .obj_galley_link.pdf:hover {
    background: #000 !important;
}

.current_issue .heading .cover img {
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.1);
}

.pkp_page_index .cmp_announcements>.obj_announcement_summary, .pkp_page_index .cmp_announcements .more .obj_announcement_summary {
    padding-left: 2.143rem;
    padding-right: 2.143rem;
}

@media (min-width: 768px) {
    .pkp_page_index .cmp_announcements>.obj_announcement_summary {
       float: left;
    }
}

.pkp_page_index .cmp_announcements .more {
    float: right;
    padding-top: 0px;
    padding-bottom: 1.43rem;
}

.cmp_announcements.highlight_first .obj_announcement_summary {
    background: #fff;
    border-radius: 12px;
    margin-bottom: 10px;
    margin-top: 10px;
    border: none;
    box-shadow: none;
    transition: 0.3s;
}

/* --- 12. NAVEGAÇÃO E MENU DE TOPO --- */
.pkp_site_nav_menu {
    background: #000000bd;
    padding-left: 5px;
    padding-right: 5px;
}

.cmp_button_wire, .obj_galley_link {
    border: 0px solid #006798!important;
}

.pkp_navigation_primary > li > a:hover,
.pkp_navigation_primary > li > a:focus {
    border-color: transparent;
}

.pkp_site_nav_menu a {
    color: rgb(255 255 255 / 100%);
    text-decoration: none;
    text-shadow: 1px 1px 3px rgb(255 255 255 / 30%);
    font-weight: 500;
    letter-spacing: 0.5px;
}

.pkp_site_nav_toggle {
    position: absolute;
    top: 0;
    left: 0;
    width: 2.857rem;
    height: 2.857rem;
    border: 0;
    background: #CC1F47!important;
    box-shadow: 1px 0 0 rgba(255, 255, 255, 0.2), -1px 0 0 rgba(255, 255, 255, 0.2);
    z-index: 999;
}

.pkp_navigation_user li a {
    color: #fff !important;
}

.pkp_navigation_user li {
    text-align: left;
    background-color: #CC1F47;
    padding: 5px;
}

.pkp_navigation_user>li:last-child>a {
    margin-right: 0;
}

@media (min-width: 992px) {
    .pkp_nav_list ul a:hover, .pkp_nav_list ul a:focus {
        outline: 0;
        background: none;
        border-color: #fff;
    }
    .pkp_navigation_search_wrapper a {
        margin: .357rem .5em 0;
        padding: .357rem .5em calc(.714rem - 2px);
        border-bottom: 2px solid transparent; 
        color: rgb(255 255 255 / 70%);
        text-decoration: none;
    }
    .pkp_navigation_search_wrapper a:hover {
        color: rgb(255 255 255 / 100%);
        border-color: transparent;
    }
    .pkp_nav_list ul a {
        display: block;
        padding-left: .357rem;
        border-left: .357rem solid transparent;
    }
    .pkp_navigation_primary>li>a:focus {
        background: #000000!important;
        outline: 0;
    }
}

/* --- 13. ADAPTAÇÃO PARA MODO TELEMÓVEL --- */
@media (max-width: 800px) {
    .has_thumb { flex-direction: column !important; }
    .thumb { width: 100% !important; height: 200px; }
    
    .pkp_structure_content {
        grid-template-columns: 1fr !important; /* Apenas 1 coluna no telemóvel */
    }
    .pkp_structure_main {
        grid-column: 1 !important; 
        grid-row: 2 !important; /* Fica abaixo do idioma */
    }
    .pkp_structure_sidebar .pkp_block:not(.block_language) {
        grid-column: 1 !important; /* Passa todos os blocos para baixo do conteúdo */
    }
    
    /* Idioma centralizado no telemóvel */
    .pkp_block.block_language .content,
    .pkp_block.block_language .content ul {
        justify-content: center !important;
    }
}

/* ==========================================================
   14. EXCEÇÃO: APENAS A HOMEPAGE DO PORTAL GERAL 
   Garante que o design da página inicial do portal 
   (onde estão as revistas) volta a ficar igual ao que estava!
   ========================================================== */
.pkp_structure_content:has(.page_index_site) {
    display: flex !important;
    flex-direction: column !important;
}

.pkp_structure_content:has(.page_index_site) .pkp_structure_main {
    width: 100% !important;
    order: 2 !important;
}

/* Na página do portal não queremos a barra lateral à direita visível, excepto o Idioma */
.pkp_structure_content:has(.page_index_site) .pkp_structure_sidebar .pkp_block:not(.block_language) {
    display: none !important;
}

/* Garante que o idioma continua no topo da página geral */
.pkp_structure_content:has(.page_index_site) .pkp_block.block_language {
    order: -1 !important;
}

/* --- ESCONDER TEXTO SOLTO NO TOPO DO BODY --- */
body {
    text-indent: -9999px !important; /* Atira o texto solto para fora do ecrã */
    line-height: 0 !important; /* Remove o espaço vertical deixado pelo texto */
}

/* --- REPOR A FORMATAÇÃO NORMAL PARA O SITE --- */
.pkp_structure_page {
    text-indent: 0 !important; /* Traz os textos normais de volta */
    line-height: 1.5 !important; /* Repõe o espaçamento normal das linhas */
}


/* --- Home remover top --- */
.pkp_page_index.pkp_op_index:has(.page_index_site)  .pkp_navigation_user: {
    position: relative !important;
    top: -40px !important;
}


/* --- Espaçamento revistas ---*/
@media (min-width: 768px) {
    .obj_issue_toc .galleys, .obj_issue_toc .section {
        position: relative;
        margin: 0 -2.143rem !important;
       
    }
}
@media (min-width: 992px) {
    .obj_issue_toc .galleys, .obj_issue_toc .section {
        margin: 0 -2.143rem !important;
    }
}

.cmp_article_list>li {
    margin-bottom: 1.143rem !important;;
}

.obj_article_details .main_entry .item .label {
    margin: 0!important;
    font-family: Lato, sans-serif;
    font-size: 1.143rem;
    font-weight: 700;
}
@media (min-width: 992px) {
    .obj_article_details .item {
        padding: 0.5rem!important;
    }
	.pkp_structure_main p, .pkp_structure_main ul {
    /*line-height: 1.3rem !important;*/
    margin: 1.43rem 0;
}
}

@media (min-width: 992px) {
    .pkp_site_name .is_img img {
        max-height: 120px!important;
    }
}

.cmp_button, .cmp_form .buttons button, .page_lost_password .buttons button, .page_search .submit button, .block_make_submission a {
    display: inline-block;
    padding: 0.2em 1em;
    background: #eee;
    border: none;
    border-top-color: #bbb!important;
    border-radius: 20px !important;
    box-shadow:none;
    font-size: 0.93rem;
    line-height: calc(2.143rem - 2px);
    font-weight: 700;
    color: #000;
    text-decoration: none;
	
}


@media (min-width: 992px) {
    .pkp_navigation_user_wrapper {
        top: -63px !important;
	}
}


.pkp_brand_footer img {
	max-width:65% !important;
}


.pkp_site_name .is_img img {
    max-height: 6rem;
}

.pkp_site_name {
    margin-top: -27px;
}


@media (min-width: 1200px) {
    .obj_article_details .main_entry {
        padding-top: 25px;
        padding-right: 15px;
		padding-left:22px;
	}
}


@media (min-width: 992px) {
    .pkp_structure_main {
        padding: 0;
	}
}


@media (min-width: 768px) {
    .obj_article_details .entry_details {
        padding: 5px;
    }
}