/**
 * Estilos para os templates de email e página web.
 *
 * @link       https://jurisensus.com
 * @since      3.0.0
 *
 * @package    Boletim_RPPS
 * @subpackage Boletim_RPPS/assets/css
 */

/* Importação da fonte Inter */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&display=swap');

/* Variáveis de cores */
:root {
    --conteudo-explicado: #007BFF !important;
    --atualizacao: #39B54A !important;
    --fique-de-olho: #F15A24 !important;
    --dica-semana: #ED971B !important;
    --comunicado: #00A99D !important;
    --anuncio: #1744A0 !important;
    --footer-color: #14284A !important;
    --link-hover: #2074FF !important;
}

/* Reset e estilos gerais */
* {
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

body {
    font-family: 'Inter', sans-serif !important;
    line-height: 1.6 !important;
    color: #333333 !important;
    background-color: #F5F5F5 !important;
}

a {
    color: #000000 !important;
    text-decoration: none !important;
    transition: color 0s !important;
}

a:hover {
    color: var(--link-hover) !important;
}

/* Container principal */
.container {
    width: 100% !important;
    max-width: 900px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* Cabeçalho */
.header {
    padding: 60px 30px 40px !important;
    text-align: center !important;
    background-color: #F5F5F5 !important;
    position: relative !important;
}

.header img {
    max-width: 250px !important;
    height: auto !important;
}

.header-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 800 !important;
    font-size: 36px !important;
    margin: 40px 0 25px !important;
    color: #1744A0 !important;
    padding: 15px 0 !important;
}

.header-meta {
    display: flex !important;
    justify-content: space-between !important;
    align-items: center !important;
    margin-bottom: 25px !important;
    padding: 0 30px !important;
}

.header-subtitle, .header-date {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    color: #000000 !important;
}

.header-subtitle {
    text-align: left !important;
}

.header-date {
    text-align: right !important;
}

.header-description {
    max-width: 900px !important;
    margin: 30px auto 30px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    color: #555555 !important;
    line-height: 1.7 !important;
    text-align: justify !important;
    padding: 30px !important;
}

/* Índice */
.index {
    margin: 30px auto 30px !important;
    max-width: 900px !important;
    padding: 0 30px !important;
    text-align: left !important;
}

.index-title {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    margin-bottom: 15px !important;
    color: #000000 !important;
    text-align: left !important;
}

.index-list {
    margin: 0 !important;
    padding: 0 !important;
    list-style-type: none !important;
    text-align: left !important;
}

.index-item {
    padding: 5px 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    text-align: left !important;
}

.index-item:last-child {
    margin-bottom: 0 !important;
}

.index-divider {
    height: 0px !important;
    background-color: #dddddd !important;
    margin: 0 0 30px 0 !important;
    width: 100% !important;
}

/* Estilos específicos para links do índice */
.index-item a, .index a, .index-list a {
    color: #1744A0 !important;
    text-decoration: none !important;
    transition: color 0s !important;
}

.index-item a:hover {
    color: #2074FF !important;
}

/* Componentes */
.componente {
    padding: 30px !important;
    margin: 30px !important;
    background-color: #ffffff !important;
    border-radius: 12px !important;
    position: relative !important;
}

.componente-anuncio {
    background-color: var(--anuncio) !important;
    color: #ffffff !important;
    padding: 40px 30px !important;
}

.componente-header {
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    position: relative !important;
    margin-bottom: 20px !important;
}

.componente-titulo {
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 24px !important;
    margin-bottom: 10px !important;
    color: #333333 !important;
    text-align: left !important;
    width: 100% !important;
    margin-top: 5px !important;
    order: 2 !important;
}

.componente-anuncio .componente-titulo {
    color: #ffffff !important;
    font-size: 24px !important;
}

.componente-tipo {
    position: static !important;
    top: auto !important;
    right: auto !important;
    display: inline-block !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 11px !important;
    padding: 6px 12px !important;
    border-radius: 50px !important;
    color: #ffffff !important;
    margin-bottom: 10px !important;
    order: -1 !important;
    align-self: flex-start !important;
    width: auto !important;
}

/* Estilos de etiquetas componentes */
.componente-conteudo_explicado .componente-tipo {
    background-color: var(--conteudo-explicado) !important;
}

.componente-atualizacao .componente-tipo {
    background-color: var(--atualizacao) !important;
}

.componente-fique_de_olho .componente-tipo {
    background-color: var(--fique-de-olho) !important;
}

.componente-dica_semana .componente-tipo {
    background-color: var(--dica-semana) !important;
}

.componente-comunicado .componente-tipo {
    background-color: var(--comunicado) !important;
}

.componente-conteudo {
    font-family: 'Inter', sans-serif !important;
    font-weight: 400 !important;
    font-size: 16px !important;
    line-height: 1.7 !important;
    color: #555555 !important;
    text-align: left !important;
}

.componente-anuncio .componente-conteudo {
    color: #ffffff !important;
    font-size: 16px !important;
    margin-bottom: 30px !important;
    max-height: none !important;
    overflow: visible !important;
}

.componente-conteudo p {
    margin-bottom: 15px !important;
}

.componente-conteudo ul, 
.componente-conteudo ol {
    margin-left: 20px !important;
    margin-bottom: 15px !important;
}

.componente-conteudo.truncated {
    max-height: 200px !important;
    overflow: hidden !important;
    position: relative !important;
}

.componente-conteudo.truncated:after {
    content: '' !important;
    position: absolute !important;
    bottom: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 60px !important;
    background: linear-gradient(to bottom, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%) !important;
}

.componente-anuncio .componente-conteudo.truncated {
    max-height: none !important;
    overflow: visible !important;
}

.componente-anuncio .componente-conteudo.truncated:after {
    display: none !important;
}

.componente-botoes {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin-top: 20px !important;
}

.mostrar-mais-btn,
.mostrar-menos-btn {
    display: inline-block !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    color: #000000 !important;
    cursor: pointer !important;
    padding: 5px 10px !important;
    border-radius: 4px !important;
}

.componente-anuncio .componente-botoes {
    display: none !important;
}

.mostrar-menos-btn {
    display: none !important;
}

.cta-button {
    display: inline-block !important;
    background-color: #ffffff !important;
    color: var(--anuncio) !important;
    padding: 12px 30px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    text-decoration: none !important;
    border-radius: 50px !important;
    transition: all 0.3s ease !important;
    text-align: left !important;
    margin-top: 20px !important;
}

.cta-button:hover {
    background-color: #f5f5f5 !important;
    color: var(--anuncio) !important;
}

/* Botões de ação do componente */
.componente-acoes {
    position: absolute !important;
    bottom: 20px !important;
    right: 20px !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 10px !important;
    height: 28px !important;
    width: auto !important;
    z-index: 10 !important;
}

/* Estilos comuns para botões de ação */
.componente-mensagem,
.componente-compartilhar,
.componente-mensagem-standalone,
.componente-compartilhar-standalone,
.componente-whatsapp-standalone,
.print-button {
    display: inline-block !important;
    width: 28px !important;
    height: 28px !important;
    position: relative !important;
    cursor: pointer !important;
    z-index: 30 !important;
}

.componente-mensagem img,
.componente-compartilhar img,
.componente-mensagem-standalone img,
.componente-compartilhar-standalone img,
.componente-whatsapp-standalone img,
.print-button img {
    width: 28px !important;
    height: 28px !important;
    display: block !important;
    opacity: 0.8 !important;
    transition: opacity 0.3s ease !important;
}

.componente-mensagem:hover img,
.componente-compartilhar:hover img,
.componente-mensagem-standalone:hover img,
.componente-compartilhar-standalone:hover img,
.componente-whatsapp-standalone:hover img,
.print-button:hover img {
    opacity: 1 !important;
}

.componente-tooltip {
    position: absolute !important;
    bottom: 100% !important;
    right: 0 !important;
    background-color: #333333 !important;
    color: #ffffff !important;
    padding: 5px 10px !important;
    border-radius: 4px !important;
    font-size: 12px !important;
    white-space: nowrap !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.3s ease !important;
    z-index: 31 !important;
}

.componente-mensagem:hover .componente-tooltip,
.componente-compartilhar:hover .componente-tooltip,
.componente-mensagem-standalone:hover .componente-tooltip,
.componente-compartilhar-standalone:hover .componente-tooltip,
.componente-whatsapp-standalone:hover .componente-tooltip,
.print-button:hover .componente-tooltip {
    opacity: 1 !important;
}

/* Posicionamento dos botões de ação */
.componente-mensagem-standalone {
    bottom: 20px !important;
    right: 96px !important;
    position: absolute !important;
}

.componente-whatsapp-standalone {
    bottom: 20px !important;
    right: 58px !important;
    position: absolute !important;
}

.componente-compartilhar-standalone {
    bottom: 20px !important;
    right: 20px !important;
    position: absolute !important;
}

/* Rodapé */
.footer {
    padding: 50px 30px !important;
    margin: 50px 30px !important;
    text-align: center !important;
    background-color: var(--footer-color) !important;
    color: #ffffff !important;
    border-radius: 12px !important;
}

.footer img {
    max-width: 200px !important;
    height: auto !important;
    margin-bottom: 20px !important;
}

.footer-info {
    font-family: 'Inter', sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    margin-bottom: 30px !important;
}

.footer-links {
    margin: 30px 0 !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
}

.footer-links a {
    color: #ffffff !important;
    text-decoration: underline !important;
    margin: 0 10px !important;
}

.footer-links a:hover {
    text-decoration: none !important;
}

.footer p {
    font-size: 14px !important;
}

/* Botão voltar ao topo */
.back-to-top {
    position: fixed !important;
    bottom: 30px !important;
    left: 30px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    color: #1744A0 !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 12px !important;
    cursor: pointer !important;
    z-index: 100 !important;
    opacity: 0.7 !important;
    transition: opacity 0.3s ease !important;
}

.back-to-top:hover {
    opacity: 1 !important;
}

.back-to-top img {
    width: 40px !important;
    height: 40px !important;
    margin-bottom: 5px !important;
}

/* Botão de Impressão */
.print-button-container {
    position: absolute !important;
    top: 20px !important;
    right: 30px !important;
    z-index: 100 !important;
}

.print-button {
    width: 30px !important;
    height: 30px !important;
}

/* Modal de mensagem */
.boletim-rpps-modal-mensagem {
    display: none !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    background-color: rgba(0, 0, 0, 0.5) !important;
    z-index: 9999 !important;
    align-items: center !important;
    justify-content: center !important;
}

.boletim-rpps-modal-mensagem-content {
    position: relative !important;
    width: 100% !important;
    max-width: 600px !important;
    max-height: 90vh !important;
    overflow-y: auto !important;
    background-color: #F5F5F5 !important;
    border-radius: 15px !important;
    padding: 50px !important;
}

.boletim-rpps-modal-mensagem-close {
    position: absolute !important;
    top: 15px !important;
    right: 15px !important;
    cursor: pointer !important;
}

.boletim-rpps-modal-mensagem-close img {
    width: 24px !important;
    height: 24px !important;
}

.boletim-rpps-modal-mensagem-body {
    padding: 15px 0 !important;
}

.boletim-rpps-modal-mensagem-body h2 {
    font-family: 'Inter', sans-serif !important;
    font-size: 20px !important;
    font-weight: 600 !important;
    color: #000000 !important;
    margin-bottom: 20px !important;
    text-align: center !important;
    line-height: 1.4 !important;
}

.boletim-rpps-modal-mensagem-body h2 span {
    font-weight: 400 !important;
}

/* Formulário de mensagem */
#boletim-rpps-form-mensagem {
    margin-top: 20px !important;
}

.boletim-rpps-form-mensagem-field {
    margin-bottom: 15px !important;
}

.boletim-rpps-form-mensagem-field label {
    display: block !important;
    margin-bottom: 5px !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 400 !important;
    font-size: 14px !important;
    color: #000000 !important;
}

.boletim-rpps-form-mensagem-field input,
.boletim-rpps-form-mensagem-field textarea {
    width: 100% !important;
    padding: 10px !important;
    border: none !important;
    border-radius: 7px !important;
    background-color: #FFFFFF !important;
    font-family: 'Inter', sans-serif !important;
    font-size: 14px !important;
    color: #000000 !important;
}

.boletim-rpps-form-mensagem-field input:focus,
.boletim-rpps-form-mensagem-field textarea:focus {
    outline: none !important;
    border: none !important;
    box-shadow: none !important;
}

.boletim-rpps-form-mensagem-submit {
    width: 100% !important;
    padding: 12px !important;
    border: none !important;
    border-radius: 50px !important;
    background-color: #1744A0 !important;
    color: #FFFFFF !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 600 !important;
    font-size: 16px !important;
    cursor: pointer !important;
    transition: background-color 0s !important;
}

.boletim-rpps-form-mensagem-submit:hover {
    background-color: #2074FF !important;
}

/* Mensagem de sucesso */
#boletim-rpps-form-mensagem-sucesso {
    text-align: center !important;
    padding: 30px 0 !important;
}

#boletim-rpps-form-mensagem-sucesso img {
    width: 80px !important;
    height: auto !important;
    margin-bottom: 20px !important;
}

#boletim-rpps-form-mensagem-sucesso p {
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    color: #000000 !important;
    line-height: 1.1em !important;
}

/* Botão Assinar Boletim */
.assinar-boletim-container {
    display: flex !important;
    justify-content: center !important;
    width: 100% !important;
    margin: 30px auto 30px auto !important;
    text-align: center !important;
}

.assinar-boletim-button {
    display: inline-block !important;
    background-color: #1744A0 !important;
    color: #FFFFFF !important;
    font-family: 'Inter', sans-serif !important;
    font-weight: 500 !important;
    font-size: 16px !important;
    padding: 12px 30px !important;
    border-radius: 50px !important;
    text-decoration: none !important;
    transition: background-color 0s !important;
    border: none !important;
    box-shadow: none !important;
    text-align: center !important;
}

.assinar-boletim-button:hover {
    background-color: #2074FF !important;
    color: #FFFFFF !important;
    text-decoration: none !important;
}

.assinar-boletim-button:visited,
.assinar-boletim-button:active,
.assinar-boletim-button:focus {
    color: #FFFFFF !important;
    text-decoration: none !important;
}

/* Consolidação das media queries */
@media screen and (max-width: 768px) {
    /* Cabeçalho - Mobile */
    .container {
        padding: 0 !important;
    }
    
    .header {
        padding: 30px 15px 20px !important;
    }
    
    .header-title {
        font-size: 26px !important;
    }
    
    .header-meta {
        flex-direction: column !important;
        align-items: flex-start !important;
        padding: 0 15px !important;
        margin-bottom: 10px !important;
    }
    
    .header-subtitle, 
    .header-date {
        text-align: left !important;
        margin-bottom: 10px !important;
        padding-left: 0 !important;
    }
    
    .header-description {
        font-size: 16px !important;
        padding: 0 15px !important;
        text-align: left !important;
    }
    
    /* Índice - Mobile */
    .index {
        margin: 5px 0 !important;
        padding: 0 15px !important;
    }
    
    .index-title {
        font-size: 20px !important;
    }
    
    .index-item {
        font-size: 16px !important;
    }
    
    /* Componentes - Mobile */
    .componente {
        padding: 20px !important;
        margin: 20px 15px !important;
    }
    
    .componente-titulo, 
    .componente-anuncio .componente-titulo {
        font-size: 20px !important;
    }
    
    .componente-conteudo,
    .componente-anuncio .componente-conteudo {
        font-size: 15px !important;
    }
    
    .cta-button {
        padding: 10px 20px !important;
        font-size: 16px !important;
    }
    
    /* Rodapé - Mobile */
    .footer {
        padding: 40px 15px !important;
        margin: 40px 15px !important;
    }
    
    .footer-info,
    .footer-links,
    .footer p {
        font-size: 12px !important;
    }
    
    /* Botão voltar ao topo - Mobile */
    .back-to-top {
        bottom: 20px !important;
        left: 15px !important;
    }
    
    .back-to-top span {
        display: none !important;
    }
    
    .back-to-top img {
        width: 45px !important;
        height: 45px !important;
    }
    
    /* Modal - Mobile */
    .boletim-rpps-modal-mensagem-content {
        width: 90% !important;
        padding: 15px !important;
    }
    
    .boletim-rpps-modal-mensagem-body h2 {
        font-size: 15px !important;
    }
    
    /* Botão de impressão - Mobile */
    .print-button-container {
        top: 15px !important;
        right: 15px !important;
    }
    
    .print-button img {
        width: 20px !important;
        height: 20px !important;
    }

    /* Botão assinar - Mobile */
    .assinar-boletim-container {
        margin: 20px auto 15px auto !important;
    }
    
    .assinar-boletim-button {
        font-size: 14px !important;
        padding: 10px 25px !important;
    }
}

/* Estilos para impressão - consolidado */
@media print {
    /* Ocultações para impressão */
    .print-button-container,
    .back-to-top,
    .componente-acoes,
    .componente-botoes,
    .componente-mensagem-standalone,
    .componente-compartilhar-standalone,
    .componente-whatsapp-standalone,
    .index, 
    .index-title,
    .index-list,
    .index-divider,
    .componente-tipo,
    .cta-button,
    .assinar-boletim-container,
    .footer-info a[href*="wa.me"] {
        display: none !important;
    }
    
    /* Ajustes gerais de impressão */
    body {
        background-color: #ffffff !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
    }
    
    /* Tornar todos os textos preto puro */
    body, p, h1, h2, h3, h4, h5, h6, span, div, li, a,
    .componente-titulo, 
    .header-title, 
    .header-subtitle, 
    .header-date,
    .componente-conteudo,
    .footer, 
    .footer-info, 
    .footer-info a,
    .footer p,
    .componente-anuncio .componente-titulo,
    .componente-anuncio .componente-conteudo {
        color: #000000 !important;
    }
    
    /* Ajustes de layout para impressão */
    .container {
        width: 100% !important;
        max-width: 100% !important;
        padding: 0 !important;
        margin: 0 auto !important;
    }
    
    .componente, 
    .componente-titulo, 
    .componente-conteudo,
    .footer,
    .header-description,
    .header-title,
    .header-meta {
        max-width: 650px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        padding-left: 20px !important;
        padding-right: 20px !important;
    }
    
    .componente {
        page-break-inside: avoid !important;
        break-inside: avoid !important;
        width: 650px !important;
        box-sizing: border-box !important;
        padding: 10px !important;
        margin: 10px 0 !important;
        border-radius: 0 !important;
        border: none !important;
        box-shadow: none !important;
    }
    
    /* Espaçamento diferenciado para impressão */
    .header {
        padding: 30px !important;
    }
    
    .header-title {
        margin: 30px 0 !important;
    }
    
    .header-meta {
        margin-bottom: 30px !important;
    }
    
    .header-description {
        margin: 30px 0 !important;
    }
    
    .componente-header {
        margin-bottom: 10px !important;
    }
    
    .componente-conteudo p {
        margin-bottom: 5px !important;
    }
    
    .footer {
        padding: 10px !important;
        margin: 10px 0 !important;
        border-radius: 0 !important;
        border: none !important;
        box-shadow: none !important;
    }
    
    .footer-info {
        margin-bottom: 10px !important;
    }
    
    /* Ajustes para conteúdo truncado em impressão */
    .componente-conteudo.truncated {
        max-height: none !important;
        overflow: visible !important;
    }
    
    .componente-conteudo.truncated:after {
        display: none !important;
    }
    
    /* Ajuste específico para componente "anuncio" */
    .componente-anuncio {
        background-color: #ffffff !important;
    }
}