/* MASTER FONT OVERRIDE CSS - FORÇA MÁXIMA */
/* Este ficheiro SOBREPÕE new-brand-colors.css e typography-hierarchy.css */
/* NÃO afeta header, footer, nav - apenas conteúdo principal */

/* ========================================== */
/* DESKTOP - TELAS GRANDES (acima de 1024px) */
/* ========================================== */

@media (min-width: 1025px) {
    /* PARÁGRAFOS PRINCIPAIS - DESKTOP - FORÇA MÁXIMA PARA SOBREPOR OUTROS CSS */
    body main p:not(header p):not(footer p):not(nav p),
    body article p:not(header p):not(footer p):not(nav p),
    body .content p:not(header p):not(footer p):not(nav p),
    body .text-content p:not(header p):not(footer p):not(nav p),
    body .description p:not(header p):not(footer p):not(nav p),
    body .journey-description p:not(header p):not(footer p):not(nav p),
    body .card-text p:not(header p):not(footer p):not(nav p),
    body .section-text p:not(header p):not(footer p):not(nav p),
    body section p:not(header p):not(footer p):not(nav p),
    body div p:not(header p):not(footer p):not(nav p) {
        font-size: 20px !important;
        line-height: 1.8 !important;
        margin-bottom: 20px !important;
    }

    /* SOBREPOR ESTILOS INLINE - DESKTOP - FORÇA MÁXIMA */
    body main p[style]:not(header p):not(footer p):not(nav p),
    body article p[style]:not(header p):not(footer p):not(nav p),
    body .content p[style]:not(header p):not(footer p):not(nav p),
    body .text-content[style]:not(header):not(footer):not(nav),
    body .description[style]:not(header):not(footer):not(nav),
    body section p[style]:not(header p):not(footer p):not(nav p),
    body div p[style]:not(header p):not(footer p):not(nav p) {
        font-size: 20px !important;
        line-height: 1.8 !important;
    }

    /* TÍTULOS - DESKTOP - FORÇA MÁXIMA EXCLUINDO HEADER/FOOTER/NAV */
    body h1:not(header h1):not(footer h1):not(nav h1) { font-size: 40px !important; line-height: 1.3 !important; }
    body h2:not(header h2):not(footer h2):not(nav h2) { font-size: 32px !important; line-height: 1.4 !important; }
    body h3:not(header h3):not(footer h3):not(nav h3) { font-size: 28px !important; line-height: 1.4 !important; }
    body h4:not(header h4):not(footer h4):not(nav h4) { font-size: 24px !important; line-height: 1.5 !important; }
    body h5:not(header h5):not(footer h5):not(nav h5) { font-size: 20px !important; line-height: 1.5 !important; }
    body h6:not(header h6):not(footer h6):not(nav h6) { font-size: 18px !important; line-height: 1.5 !important; }
}

/* ========================================== */
/* TABLET - TELAS MÉDIAS (768px - 1024px) */
/* ========================================== */

@media (min-width: 768px) and (max-width: 1024px) {
    /* PARÁGRAFOS PRINCIPAIS - TABLET - FORÇA MÁXIMA PARA SOBREPOR OUTROS CSS */
    body main p:not(header p):not(footer p):not(nav p),
    body article p:not(header p):not(footer p):not(nav p),
    body .content p:not(header p):not(footer p):not(nav p),
    body .text-content p:not(header p):not(footer p):not(nav p),
    body .description p:not(header p):not(footer p):not(nav p),
    body .journey-description p:not(header p):not(footer p):not(nav p),
    body .card-text p:not(header p):not(footer p):not(nav p),
    body .section-text p:not(header p):not(footer p):not(nav p),
    body section p:not(header p):not(footer p):not(nav p),
    body div p:not(header p):not(footer p):not(nav p) {
        font-size: 18px !important;
        line-height: 1.7 !important;
        margin-bottom: 18px !important;
    }

    /* SOBREPOR ESTILOS INLINE - TABLET - FORÇA MÁXIMA */
    body main p[style]:not(header p):not(footer p):not(nav p),
    body article p[style]:not(header p):not(footer p):not(nav p),
    body .content p[style]:not(header p):not(footer p):not(nav p),
    body .text-content[style]:not(header):not(footer):not(nav),
    body .description[style]:not(header):not(footer):not(nav),
    body section p[style]:not(header p):not(footer p):not(nav p),
    body div p[style]:not(header p):not(footer p):not(nav p) {
        font-size: 18px !important;
        line-height: 1.7 !important;
    }

    /* TÍTULOS - TABLET - FORÇA MÁXIMA EXCLUINDO HEADER/FOOTER/NAV */
    body h1:not(header h1):not(footer h1):not(nav h1) { font-size: 36px !important; line-height: 1.3 !important; }
    body h2:not(header h2):not(footer h2):not(nav h2) { font-size: 28px !important; line-height: 1.4 !important; }
    body h3:not(header h3):not(footer h3):not(nav h3) { font-size: 24px !important; line-height: 1.4 !important; }
    body h4:not(header h4):not(footer h4):not(nav h4) { font-size: 20px !important; line-height: 1.5 !important; }
    body h5:not(header h5):not(footer h5):not(nav h5) { font-size: 18px !important; line-height: 1.5 !important; }
    body h6:not(header h6):not(footer h6):not(nav h6) { font-size: 16px !important; line-height: 1.5 !important; }
}

/* ========================================== */
/* MOBILE - TELAS PEQUENAS (até 767px) */
/* ========================================== */

@media (max-width: 767px) {
    /* PARÁGRAFOS PRINCIPAIS - MOBILE - FORÇA MÁXIMA PARA SOBREPOR OUTROS CSS */
    body main p:not(header p):not(footer p):not(nav p),
    body article p:not(header p):not(footer p):not(nav p),
    body .content p:not(header p):not(footer p):not(nav p),
    body .text-content p:not(header p):not(footer p):not(nav p),
    body .description p:not(header p):not(footer p):not(nav p),
    body .journey-description p:not(header p):not(footer p):not(nav p),
    body .card-text p:not(header p):not(footer p):not(nav p),
    body .section-text p:not(header p):not(footer p):not(nav p),
    body section p:not(header p):not(footer p):not(nav p),
    body div p:not(header p):not(footer p):not(nav p) {
        font-size: 20px !important;
        line-height: 1.8 !important;
        margin-bottom: 16px !important;
    }

    /* SOBREPOR ESTILOS INLINE - MOBILE - FORÇA MÁXIMA */
    body main p[style]:not(header p):not(footer p):not(nav p),
    body article p[style]:not(header p):not(footer p):not(nav p),
    body .content p[style]:not(header p):not(footer p):not(nav p),
    body .text-content[style]:not(header):not(footer):not(nav),
    body .description[style]:not(header):not(footer):not(nav),
    body section p[style]:not(header p):not(footer p):not(nav p),
    body div p[style]:not(header p):not(footer p):not(nav p) {
        font-size: 20px !important;
        line-height: 1.8 !important;
    }

    /* TÍTULOS - MOBILE - FORÇA MÁXIMA EXCLUINDO HEADER/FOOTER/NAV */
    body h1:not(header h1):not(footer h1):not(nav h1) { font-size: 32px !important; line-height: 1.3 !important; }
    body h2:not(header h2):not(footer h2):not(nav h2) { font-size: 24px !important; line-height: 1.4 !important; }
    body h3:not(header h3):not(footer h3):not(nav h3) { font-size: 20px !important; line-height: 1.4 !important; }
    body h4:not(header h4):not(footer h4):not(nav h4) { font-size: 18px !important; line-height: 1.5 !important; }
    body h5:not(header h5):not(footer h5):not(nav h5) { font-size: 16px !important; line-height: 1.5 !important; }
    body h6:not(header h6):not(footer h6):not(nav h6) { font-size: 14px !important; line-height: 1.5 !important; }
}

/* ========================================== */
/* CORREÇÕES ESPECÍFICAS PARA PÁGINAS PROBLEMÁTICAS */
/* ========================================== */

/* DESTINOS.HTML - Sobrepor estilo inline específico */
@media (min-width: 1025px) {
    body .intro-text p[style*="font-size: 18px"] {
        font-size: 20px !important;
        line-height: 1.8 !important;
        padding: 0 20px !important;
        margin-bottom: 20px !important;
    }
}

@media (min-width: 768px) and (max-width: 1024px) {
    body .intro-text p[style*="font-size: 18px"] {
        font-size: 18px !important;
        line-height: 1.7 !important;
        padding: 0 20px !important;
        margin-bottom: 18px !important;
    }
}

@media (max-width: 767px) {
    body .intro-text p[style*="font-size: 18px"] {
        font-size: 20px !important;
        line-height: 1.8 !important;
        padding: 0 20px !important;
        margin-bottom: 16px !important;
    }
}

/* CORREÇÃO ADICIONAL PARA CONTAINER .intro-text */
body .intro-text {
    padding: 0 20px !important;
    max-width: 800px !important;
    margin: 0 auto 80px !important;
    text-align: center !important;
}

/* ========================================== */
/* CLASSES UTILITÁRIAS */
/* ========================================== */

/* Classe para forçar aplicação em conteúdo específico */
.force-font-override p {
    font-size: 20px !important;
    line-height: 1.8 !important;
}

@media (min-width: 768px) and (max-width: 1024px) {
    .force-font-override p {
        font-size: 18px !important;
        line-height: 1.7 !important;
    }
}

@media (max-width: 767px) {
    .force-font-override p {
        font-size: 20px !important;
        line-height: 1.8 !important;
    }
}

/* Classe para desativar override quando necessário */
.no-font-override,
.no-font-override * {
    font-size: inherit !important;
    line-height: inherit !important;
}

/* Classe para texto pequeno quando necessário */
.small-text {
    font-size: 14px !important;
    line-height: 1.5 !important;
}

/* Classe para texto grande quando necessário */
.large-text {
    font-size: 24px !important;
    line-height: 1.6 !important;
}

/* Adições para destinos.html e destinations-en.html */
.content-section p {
    font-size: 16px !important; /* Força o tamanho da fonte */
    padding-left: 15px !important; /* Adiciona padding lateral */
    padding-right: 15px !important; /* Adiciona padding lateral */
    margin-left: 0px !important; /* Garante margem esquerda zero */
    margin-right: 0px !important; /* Garante margem direita zero */
}
.content-section p strong {
    font-size: 16px !important; /* Garante que o strong dentro do p também tenha o tamanho correto */
}

/* Correção específica para textos do blog - evitar quebra no meio de palavras */
#intro-content div[style*="font-size: 20px"],
div[style*="font-size: 16px"],
.news-content p {
    word-break: keep-all !important;
    overflow-wrap: normal !important;
    hyphens: none !important;
}
