/*
 * =================================================================
 * CONGRESSO.CSS
 * Estilos personalizados para o
 * VI Congresso Pernambucano de Ortopedia e Traumatologia 2026
 * =================================================================
 *
 * Paleta de cores:
 *   --color-primary-blue  #1D1E7C
 *   --color-red-cross     #E10600
 *   --color-yellow-sun    #FFD400
 *   --color-green-arc     #00A651
 *   --color-dark-text     #1A1A1A
 *   --color-light-gray    #F5F5F5
 *   --color-white         #FFFFFF
 *
 * Fonte: Montserrat 400 | 500 | 700
 * =================================================================
 */

/* -----------------------------------------------------------
   HERO / SEÇÃO INICIAL
----------------------------------------------------------- */

.congresso-hero {
    width: 100%;
    min-height: 100vh;
    background-position: center center;
    background-size: cover;
    background-repeat: no-repeat;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.congresso-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.40);
    z-index: 0;
}

.congresso-hero-logo-wrap {
    position: relative;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 40px 20px;
}

.congresso-hero-logo {
    max-width: 520px;
    width: 90%;
    height: auto;
    display: block;
    filter: drop-shadow(0 4px 24px rgba(0,0,0,0.45));
}

@media (max-width: 576px) {
    .congresso-hero-logo {
        max-width: 300px;
    }
}

/* -----------------------------------------------------------
   BOAS-VINDAS / PRESIDENTE
----------------------------------------------------------- */

.congresso-presidente-foto {
    width: 100%;
    max-width: 380px;
    border-radius: 10px;
    box-shadow: 0 8px 32px rgba(29,30,124,0.18);
    display: block;
    margin: 0 auto;
}

.congresso-placeholder-msg {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    background: var(--color-light-gray);
    border-left: 4px solid var(--color-primary-blue);
    border-radius: 6px;
    padding: 22px 24px;
    margin-bottom: 24px;
}

.congresso-placeholder-msg i {
    font-size: 1.8rem;
    color: var(--color-primary-blue);
    flex-shrink: 0;
    margin-top: 2px;
}

.congresso-placeholder-msg p {
    margin: 0;
    color: #555 !important;
    font-size: 0.97rem;
    line-height: 1.6;
}

/* -----------------------------------------------------------
   PLACEHOLDER "EM BREVE"
----------------------------------------------------------- */

.congresso-placeholder-bloco {
    text-align: center;
    background: rgba(29,30,124,0.05);
    border: 2px dashed rgba(29,30,124,0.20);
    border-radius: 12px;
    padding: 50px 30px;
    max-width: 640px;
    margin: 0 auto;
}

.congresso-placeholder-bloco i {
    display: block;
    font-size: 3rem;
    color: var(--color-primary-blue);
    margin-bottom: 16px;
}

.congresso-placeholder-bloco h4 {
    color: var(--color-primary-blue);
    margin-bottom: 10px;
}

.congresso-placeholder-bloco p {
    color: var(--color-dark-text) !important;
    max-width: 420px;
    margin: 0 auto;
}

/* section-color — alternancia entre azul escuro e laranja */
#comissao.section-base.section-color {
    background-color: var(--color-primary-blue) !important;
}

#programacao.section-base.section-color {
    background-color: var(--color-red-cross) !important;
}

#local.section-base.section-color {
    background-color: var(--color-primary-blue) !important;
}

#contato.section-base.section-color {
    background-color: #fff !important;
}

#inscricoes.section-base {
    background-color: var(--color-primary-blue) !important;
}

#inscricoes .title h1,
#inscricoes .title h2,
#inscricoes .title h3,
#inscricoes .title p {
    color: #fff !important;
}

.congresso-inscricoes-aviso {
    display: inline-block;
    margin-top: 8px;
    margin-bottom: 0;
    padding: 8px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.18);
    border: 1px solid rgba(255, 255, 255, 0.35);
    color: #fff;
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

#programacao h1,
#programacao h2,
#programacao h3,
#programacao h4,
#programacao h5,
#programacao h6,
#programacao p,
#programacao li,
#programacao strong,
#programacao .title p,
#programacao .icon-list li > i,
#programacao a,
#local h1,
#local h2,
#local h3,
#local h4,
#local h5,
#local h6,
#local p,
#local li,
#local strong,
#local .title p,
#local .icon-list li > i,
#local a {
    color: #fff !important;
}

#contato .input-text,
#contato .input-select,
#contato .input-textarea {
    background-color: #fff !important;
    border-color: rgba(26, 26, 26, 0.22) !important;
    color: var(--color-dark-text) !important;
}

#contato .input-text::placeholder,
#contato .input-textarea::placeholder {
    color: rgba(26, 26, 26, 0.58) !important;
}

#contato h1,
#contato h2,
#contato h3,
#contato h4,
#contato h5,
#contato h6,
#contato p,
#contato li,
#contato strong,
#contato .title p,
#contato .icon-list li > i,
#contato a {
    color: var(--color-dark-text) !important;
}

#contato .form-box .btn {
    background-color: var(--color-primary-blue) !important;
    border-color: var(--color-primary-blue) !important;
}

#contato .form-box .btn:hover {
    background-color: #15165e !important;
    border-color: #15165e !important;
}

/* -----------------------------------------------------------
   INSCRIÇÕES / TRABALHOS — CAIXAS "EM BREVE"
----------------------------------------------------------- */

.congresso-em-breve-box,
.congresso-em-breve-box-alt {
    border-radius: 10px;
}

/* -----------------------------------------------------------
   LOCAL DO EVENTO — MAPA
----------------------------------------------------------- */

.congresso-mapa {
    overflow: hidden;
    border-radius: 8px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.12);
    margin-bottom: 16px;
}

.congresso-mapa iframe {
    display: block;
}

.congresso-galeria-local .img-box {
    border-radius: 6px;
    overflow: hidden;
}

.congresso-galeria-local img {
    width: 100%;
    height: 100px;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.congresso-galeria-local .img-box:hover img {
    transform: scale(1.06);
}

/* -----------------------------------------------------------
   REALIZAÇÃO
----------------------------------------------------------- */

.congresso-realizacao-box {
    display: inline-block;
    text-align: center;
}

.congresso-realizacao-logo {
    max-width: 340px;
    max-height: 220px;
    object-fit: contain;
    display: block;
    margin: 0 auto;
}

.congresso-realizacao-nome {
    color: var(--color-dark-text) !important;
    font-size: 0.97rem;
    line-height: 1.6;
    margin: 0;
}

/* -----------------------------------------------------------
   NAVEGAÇÃO — AJUSTES PARA PÁGINA ÚNICA
----------------------------------------------------------- */

nav.menu-top-logo .menu-cnt > ul > li > a {
    font-size: 0.88rem;
}

/* -----------------------------------------------------------
   NAVEGAÇÃO — FUNDO CLARO
----------------------------------------------------------- */

/* Fundo branco em todos os estados do menu fixo */
body > nav.menu-fixed,
body > nav.menu-fixed.scroll-menu {
    background-color: var(--color-white) !important;
    box-shadow: 0 2px 16px rgba(0, 0, 0, 0.10);
}

/* Altura do menu-brand cresce com a logo */
body > nav.menu-fixed .menu-brand {
    height: auto !important;
    padding: 14px 0 !important;
}

/* Tamanho da logo */
body > nav.menu-fixed .menu-brand img {
    max-height: 80px !important;
    width: auto;
}

/* margin-top de main gerenciado pelo theme (style.css: 50px) */

/* Cor dos links do menu no estado normal (desktop) */
nav.menu-fixed .menu-cnt > ul > li > a,
nav.menu-fixed .menu-cnt > ul > li a {
    color: var(--color-dark-text) !important;
}

/* Hover dos links */
nav.menu-fixed .menu-cnt > ul > li:hover > a {
    color: var(--color-primary-blue) !important;
    background-color: transparent !important;
}

/* Ícone hambúrguer (mobile) */
nav.menu-fixed .menu-btn {
    color: var(--color-dark-text) !important;
}

/* Dropdown fundo */
nav.menu-fixed .menu-cnt > ul > li > ul {
    background-color: var(--color-white) !important;
}

/* Links do dropdown */
nav.menu-fixed .menu-cnt > ul > li > ul li a {
    color: var(--color-dark-text) !important;
}

nav.menu-fixed .menu-cnt > ul > li > ul li:hover > a {
    background-color: var(--color-primary-blue) !important;
    color: var(--color-white) !important;
}

/* Mobile — menu aberto */
@media (max-width: 991.98px) {
    nav.menu-fixed .menu-cnt {
        background-color: var(--color-white) !important;
    }
    nav.menu-fixed .menu-cnt > ul > li > a,
    nav.menu-fixed .menu-cnt > ul > li a {
        color: var(--color-dark-text) !important;
    }
}

/* -----------------------------------------------------------
   CONTATO — espaçamento extra
----------------------------------------------------------- */

#contato.section-base {
    padding-top: 100px !important;
    padding-bottom: 100px !important;
}

/* -----------------------------------------------------------
   RODAPÉ
----------------------------------------------------------- */

footer .text-list-line li b {
    font-size: 0.82rem;
}

/* -----------------------------------------------------------
   INSCRIÇÕES — CARDS DE CATEGORIAS
----------------------------------------------------------- */

.congresso-inscricao-card {
    background: #fff;
    border: 1px solid rgba(29,30,124,0.12);
    border-radius: 12px;
    padding: 28px 24px 22px;
    margin-bottom: 24px;
    position: relative;
    box-shadow: 0 2px 12px rgba(29,30,124,0.07);
    transition: box-shadow 0.25s ease, transform 0.25s ease;
    height: calc(100% - 24px);
    display: flex;
    flex-direction: column;
}

.congresso-inscricao-card:hover {
    box-shadow: 0 6px 28px rgba(29,30,124,0.16);
    transform: translateY(-3px);
}

.congresso-inscricao-card-destaque {
    border-color: var(--color-primary-blue);
    border-width: 2px;
}

.congresso-inscricao-card-badge {
    display: inline-block;
    background: var(--color-primary-blue);
    color: #fff;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    padding: 3px 10px;
    border-radius: 20px;
    margin-bottom: 10px;
    align-self: flex-start;
}

.congresso-inscricao-card-nome {
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--color-dark-text);
    line-height: 1.4;
    min-height: 2.8em;
    margin-bottom: 12px;
    text-align: center;
}

.congresso-inscricao-card-preco {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-primary-blue);
    line-height: 1;
    margin-bottom: 18px;
    text-align: center;
}

.congresso-inscricao-card-lotes {
    margin-top: auto;
    border-top: 1px solid rgba(29,30,124,0.10);
    padding-top: 14px;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.congresso-lote {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.85rem;
    color: #888;
    padding: 5px 8px;
    border-radius: 6px;
}

.congresso-lote-ativo {
    background: rgba(29,30,124,0.06);
    color: var(--color-dark-text);
    font-weight: 600;
}

.congresso-lote-ativo span:last-child {
    color: var(--color-primary-blue);
    font-weight: 700;
}

.congresso-inscricao-btn {
    display: block;
    width: 100%;
    text-align: center;
    margin-top: 16px;
    font-size: 0.82rem;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
    padding: 11px 16px;
}

.congresso-btn-breve {
    cursor: default;
    opacity: 0.6;
}

/* -----------------------------------------------------------
   PATROCÍNIO
----------------------------------------------------------- */

.congresso-patrocinio-grid {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 36px;
    margin-bottom: 60px;
}

.congresso-patrocinio-linha {
    display: flex;
 
    justify-content: center;
    align-items: center;
    gap: 24px 48px;
    width: 100%;
}

.congresso-patrocinio-item {
    display: flex;
    justify-content: center;
    align-items: center;
    width: min(240px, 22vw);
    height: 120px;
}

.congresso-patrocinio-logo {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    display: block;
}

.congresso-patrocinio-logo--wide {
    max-width: 100%;
}

@media (max-width: 600px) {
    .congresso-patrocinio-linha {
        gap: 20px;
        flex-wrap: wrap;   
    }

    .congresso-patrocinio-item {
        width: calc(50% - 14px);
        height: 90px;
    }

    .congresso-patrocinio-logo,
    .congresso-patrocinio-logo--wide {
        max-width: 100%;
        max-height: 100%;
    }
}

.congresso-aviso-breve {
    margin-top: 14px;
    font-size: 0.88rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: var(--color-red-cross);
}

/* -----------------------------------------------------------
   BOAS-VINDAS — ASSINATURA DO PRESIDENTE
----------------------------------------------------------- */

.congresso-assinatura {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 2px solid rgba(29,30,124,0.15);
    color: var(--color-dark-text) !important;
    line-height: 1.6;
}

/* -----------------------------------------------------------
   PROGRAMAÇÃO — NOTA INFERIOR
----------------------------------------------------------- */

.congresso-programacao-note {
    color: #777 !important;
    font-style: italic;
    font-size: 0.93rem;
}

.congresso-temas-titulo {
    font-size: 0.80rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--color-primary-blue);
    margin-bottom: 20px;
}

/* -----------------------------------------------------------
   TRABALHOS — LISTA DE NORMAS
----------------------------------------------------------- */

.congresso-normas-list {
    padding-left: 20px;
    margin: 0 0 8px;
}

.congresso-normas-list li {
    margin-bottom: 14px;
    line-height: 1.75;
    color: var(--color-dark-text);
    font-size: 0.96rem;
}

.congresso-normas-list li strong {
    color: var(--color-primary-blue);
}

.congresso-classificacao-list {
    list-style: none;
    padding-left: 4px;
    margin: 10px 0 4px;
}

.congresso-classificacao-list li {

    align-items: baseline;
    gap: 8px;
    
    font-size: 0.95rem;
   
    color: var(--color-dark-text);
}

.congresso-classificacao-list li i {
    color: var(--color-primary-blue);
    flex-shrink: 0;
    font-size: 0.85rem;
}

.congresso-aviso-inline {
    font-size: 0.875rem;
    color: #c0392b;
    font-style: italic;
}

.congresso-trabalhos-acoes {
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
}

footer a {
    transition: opacity 0.2s;
}

footer a:hover {
    opacity: 0.75;
}

/* -----------------------------------------------------------
   RODAPÉ
----------------------------------------------------------- */

.congresso-footer-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 48px 80px;
    max-width: 880px;
    margin: 0 auto;
}

.congresso-footer-bloco h3 {
    margin-bottom: 20px;
}

.congresso-footer-links {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px 32px;
    list-style: none;
    padding: 0;
    margin: 0;
}

.congresso-footer-links li {
    line-height: 1.6;
}

.congresso-footer-bar {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 8px 24px;
}

.congresso-footer-copy,
.congresso-footer-credit {
    margin: 0;
    font-size: inherit;
    letter-spacing: inherit;
}

.congresso-footer-credit {
    opacity: 0.85;
}

.congresso-footer-credit a {
    font-weight: 600;
}

/* -----------------------------------------------------------
   PROGRAMAÇÃO — SISTEMA DE TABS POR DIA / SALA
----------------------------------------------------------- */

#programacao.congresso-prog-section {
    background-color: #0e1060 !important;
    padding-top: 80px !important;
    padding-bottom: 90px !important;
}

/* Day selector */
.congresso-prog-days {
    display: flex;
    justify-content: center;
    gap: 16px;
    margin-bottom: 36px;
    flex-wrap: wrap;
}

.congresso-prog-day-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 18px 36px;
    min-width: 120px;
    border: 2px solid rgba(255,255,255,0.32);
    border-radius: 18px;
    background: rgba(255,255,255,0.05);
    color: rgba(255,255,255,0.72);
    cursor: pointer;
    transition: border-color 0.22s, background 0.22s, color 0.22s, box-shadow 0.22s;
    font-family: inherit;
    gap: 2px;
}

.congresso-prog-day-btn:hover {
    border-color: rgba(255,255,255,0.65);
    color: #fff;
    background: rgba(255,255,255,0.10);
}

.congresso-prog-day-btn.active {
    border-color: #fff;
    background: #fff;
    color: #0e1060;
    box-shadow: 0 6px 24px rgba(0,0,0,0.30);
}

.congresso-prog-day-num {
    display: block;
    font-size: 2.6rem;
    font-weight: 700;
    line-height: 1;
}

.congresso-prog-day-month {
    display: block;
    font-size: 0.85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.14em;
    margin-top: 2px;
}

.congresso-prog-day-week {
    display: block;
    font-size: 0.68rem;
    letter-spacing: 0.04em;
    margin-top: 6px;
    opacity: 0.60;
}

/* Room selector */
.congresso-prog-rooms {
    margin-bottom: 40px;
    padding-top: 8px;
    border-top: 1px solid rgba(255,255,255,0.10);
}

.congresso-prog-rooms-group {
    display: flex;
    justify-content: center;
    gap: 10px 12px;
    flex-wrap: wrap;
    padding-top: 16px;
}

/* Fix: ensure hidden attribute is respected even if overridden by theme */
.congresso-prog-rooms-group[hidden] {
    display: none !important;
}

.congresso-prog-room-btn {
    padding: 9px 22px;
    border: 1.5px solid rgba(255,255,255,0.32);
    border-radius: 999px;
    background: rgba(255,255,255,0.05);
    color: rgba(255,255,255,0.70);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    font-family: inherit;
    letter-spacing: 0.02em;
}

.congresso-prog-room-btn:hover {
    border-color: rgba(255,255,255,0.60);
    color: #fff;
    background: rgba(255,255,255,0.10);
}

.congresso-prog-room-btn.active {
    background: #fff;
    border-color: #fff;
    color: #0e1060;
    box-shadow: 0 4px 16px rgba(0,0,0,0.22);
    font-weight: 700;
}

/* Panel container */
.congresso-prog-panels {
    max-width: 820px;
    margin: 0 auto;
}

/* Panel card */
.congresso-prog-panel {
    display: none;
    background: #fff;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 16px 60px rgba(0,0,0,0.32);
    border: 1px solid rgba(255,255,255,0.08);
}

.congresso-prog-panel.active {
    display: block;
}

/* Module header bar */
.congresso-prog-module-header {
    background: linear-gradient(135deg, #1D1E7C 0%, #2a2b9e 100%);
    padding: 22px 32px;
    display: flex;
    align-items: center;
    gap: 14px;
    border-bottom: 3px solid rgba(255,255,255,0.15);
}

.congresso-prog-module-header-b {
    background: linear-gradient(135deg, #162057 0%, #1f2c7a 100%);
    margin-top: 0;
    border-top: 3px solid rgba(255,255,255,0.06);
}

.congresso-prog-module-badge {
    flex-shrink: 0;
    font-size: 0.60rem;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    background: rgba(255,255,255,0.18);
    border-radius: 999px;
    padding: 4px 11px;
    color: rgba(255,255,255,0.90);
    white-space: nowrap;
}

#programacao .congresso-prog-module-header h3,
#programacao .congresso-prog-module-header-b h3 {
    color: #fff !important;
    margin: 0;
    font-size: 1.35rem;
    font-weight: 700;
    letter-spacing: 0.10em;
    text-transform: uppercase;
}

/* Session label (e.g., "1ª SESSÃO – TRAUMA") */
.congresso-prog-session-label {
    padding: 10px 32px;
    font-size: 0.66rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    background: rgba(225,6,0,0.05);
    border-top: 1px solid rgba(0,0,0,0.07);
    border-bottom: 1px solid rgba(225,6,0,0.12);
    border-left: 3px solid #E10600;
}

#programacao .congresso-prog-session-label {
    color: #c20000 !important;
}

/* Session list */
.congresso-prog-list {
    padding: 0;
}

/* Override broad white-text rule for panel content */
#programacao .congresso-prog-panel p,
#programacao .congresso-prog-panel li,
#programacao .congresso-prog-panel strong {
    color: #1A1A1A !important;
}

#programacao .congresso-prog-panel h3{
    color: #fff;
}

/* Session row */
.congresso-prog-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    padding: 18px 32px;
    border-bottom: 1px solid rgba(0,0,0,0.065);
    transition: background 0.15s;
}

.congresso-prog-item:last-child {
    border-bottom: none;
}

.congresso-prog-item:hover:not(.congresso-prog-break) {
    background: rgba(29,30,124,0.04);
}

/* Time */
#programacao .congresso-prog-time {
    flex-shrink: 0;
    width: 126px;
    padding-top: 3px;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    color: #1D1E7C !important;
    letter-spacing: 0.01em;
    opacity: 0.85;
}

/* Content */
.congresso-prog-content {
    flex: 1;
    min-width: 0;
}

/* Mesa tag */
.congresso-prog-mesa-tag {
    display: inline-block;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    background: rgba(29,30,124,0.08);
    border-radius: 5px;
    padding: 3px 8px;
    margin-bottom: 5px;
}

#programacao .congresso-prog-mesa-tag {
    color: #1D1E7C !important;
}

/* Session title */
#programacao .congresso-prog-title {
    font-size: 0.96rem !important;
    font-weight: 600;
    color: #1a1a2e !important;
    line-height: 1.55;
    margin: 0;
}

/* Break row */
.congresso-prog-break {
    background: rgba(255,212,0,0.09);
}

#programacao .congresso-prog-break .congresso-prog-time {
    color: #8a6e00 !important;
}

#programacao .congresso-prog-break .congresso-prog-title {
    font-size: 0.76rem !important;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.10em;
    color: #6a5500 !important;
}

/* Sub-items label */
.congresso-prog-sub-label {
    padding: 10px 32px 5px;
    font-size: 0.62rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.18em;
    background: rgba(0,0,0,0.025);
    border-top: 1px dashed rgba(0,0,0,0.10);
}

#programacao .congresso-prog-sub-label {
    color: #777 !important;
}

/* Sub-item rows */
.congresso-prog-subitem {
    display: flex;
    gap: 14px;
    padding: 11px 32px 11px 44px;
    border-bottom: 1px solid rgba(0,0,0,0.05);
    background: rgba(0,0,0,0.018);
    transition: background 0.15s;
}

.congresso-prog-subitem:last-child {
    border-bottom: none;
}

.congresso-prog-subitem:hover {
    background: rgba(29,30,124,0.04);
}

#programacao .congresso-prog-sub-time {
    flex-shrink: 0;
    width: 100px;
    padding-top: 2px;
    font-size: 0.72rem !important;
    font-weight: 700;
    color: #7a82c0 !important;
    letter-spacing: 0.01em;
}

#programacao .congresso-prog-sub-title {
    font-size: 0.88rem !important;
    color: #444 !important;
    line-height: 1.5;
    margin: 0;
    flex: 1;
}

/* Sub-topic bullets */
.congresso-prog-topics {
    list-style: none;
    padding: 4px 0 0;
    margin: 4px 0 0;
}

#programacao .congresso-prog-topics li {
    font-size: 0.87rem !important;
    color: #555 !important;
    padding: 3px 0 3px 18px;
    position: relative;
    line-height: 1.45;
}

.congresso-prog-topics li::before {
    content: '–';
    position: absolute;
    left: 4px;
    color: #1D1E7C;
}

/* Mobile */
@media (max-width: 768px) {
    .congresso-prog-day-btn {
        min-width: 96px;
        padding: 14px 22px;
    }

    .congresso-prog-day-num {
        font-size: 2rem;
    }

    .congresso-prog-room-btn {
        font-size: 0.76rem;
        padding: 7px 16px;
    }

    .congresso-prog-item {
        padding: 15px 22px;
    }

    .congresso-prog-module-header,
    .congresso-prog-module-header-b {
        padding: 18px 22px;
    }
}

@media (max-width: 576px) {
    .congresso-prog-days {
        gap: 10px;
    }

    .congresso-prog-day-btn {
        min-width: 80px;
        padding: 12px 14px;
    }

    .congresso-prog-day-num {
        font-size: 1.75rem;
    }

    .congresso-prog-item {
        flex-direction: column;
        gap: 4px;
        padding: 14px 18px;
    }

    #programacao .congresso-prog-time {
        width: auto !important;
        opacity: 1;
    }

    .congresso-prog-subitem {
        flex-direction: column;
        gap: 3px;
        padding: 9px 18px 9px 30px;
    }

    #programacao .congresso-prog-sub-time {
        width: auto !important;
    }

    .congresso-prog-module-header,
    .congresso-prog-module-header-b {
        padding: 16px 18px;
    }

    .congresso-prog-session-label {
        padding: 9px 18px;
    }

    .congresso-prog-sub-label {
        padding: 8px 18px 4px;
    }

    .congresso-prog-panels {
        max-width: 100%;
    }
}

@media (max-width: 768px) {
    .congresso-footer-grid {
        grid-template-columns: 1fr;
        gap: 36px;
        text-align: center;
    }

    .congresso-footer-links {
        grid-template-columns: 1fr;
        justify-items: center;
    }

    .congresso-footer-bar {
        flex-direction: column;
        text-align: center;
    }
}

/* -----------------------------------------------------------
   POPUP AUTOMÁTICO
----------------------------------------------------------- */

.congresso-popup {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.35s ease, visibility 0.35s ease;
}

.congresso-popup.is-open {
    opacity: 1;
    visibility: visible;
}

.congresso-popup[hidden] {
    display: none !important;
}

.congresso-popup-overlay {
    position: absolute;
    inset: 0;
    background: rgba(10, 12, 40, 0.72);
    cursor: pointer;
}

.congresso-popup-dialog {
    position: relative;
    z-index: 1;
    max-width: min(720px, 94vw);
    max-height: 90vh;
    transform: translateY(18px) scale(0.96);
    transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1);
}

.congresso-popup.is-open .congresso-popup-dialog {
    transform: translateY(0) scale(1);
}

.congresso-popup-img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 90vh;
    object-fit: contain;
    border-radius: 8px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
}

.congresso-popup-close {
    position: absolute;
    top: -14px;
    right: -14px;
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background: #fff;
    color: #1D1E7C;
    font-size: 28px;
    line-height: 1;
    cursor: pointer;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.25);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    transition: transform 0.2s ease, background 0.2s ease;
}

.congresso-popup-close:hover {
    transform: scale(1.08);
    background: #FFD400;
}

@media (max-width: 576px) {
    .congresso-popup {
        padding: 16px;
    }

    .congresso-popup-close {
        top: -10px;
        right: -6px;
        width: 36px;
        height: 36px;
        font-size: 24px;
    }
}

/* -----------------------------------------------------------
   UTILITÁRIOS
----------------------------------------------------------- */

.align-center {
    text-align: center;
}

.congresso-secao-oculta {
    display: none !important;
}
