/**
 * ICP — tema "Avivamento Moderno" (inspiração: lakewoodchurch.com).
 * Escuro profundo + acento laranja ICP, tipografia display Sora,
 * corpo Albert Sans, cards arredondados, botões pill, footer em colunas.
 * Carregado automaticamente pelo Cassiopeia
 * (media/templates/site/cassiopeia/css/user.css).
 * Tema anterior (fiel ao site Joomla 1.5): beta_files/tema-classico/.
 */
@import url(https://fonts.googleapis.com/css2?family=Sora:wght@600;700;800&family=Albert+Sans:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap);

/* =====================================================================
   1. TOKENS
   ===================================================================== */
body.site {
    --icp-bg: #131416;
    --icp-bg-alt: #0c0d0f;
    --icp-surface: #1d1f22;
    --icp-line: rgba(255, 255, 255, 0.08);
    --icp-text: rgba(255, 255, 255, 0.74);
    --icp-muted: rgba(255, 255, 255, 0.55);
    --icp-title: #ffffff;
    --icp-red: #5e0f0f;       /* vermelho escuro (menu estilo Watoto) */
    --icp-red-deep: #420909;
    --icp-accent: #ff9000;
    --icp-accent-soft: rgba(255, 144, 0, 0.12);
    --icp-radius: 18px;
    --icp-shadow: 0 12px 32px rgba(0, 0, 0, 0.35);
    --icp-display: 'Sora', 'Albert Sans', sans-serif;
    --icp-body: 'Albert Sans', 'Open Sans', sans-serif;
    --cassiopeia-font-family-body: 'Albert Sans', sans-serif;
    --cassiopeia-font-family-headings: 'Sora', sans-serif;
}

/* =====================================================================
   2. BASE
   ===================================================================== */
body.site {
    background: var(--icp-bg);
    color: var(--icp-text);
    font-family: var(--icp-body);
    font-size: 16px;
    line-height: 1.65;
}
.site-grid {
    background-color: var(--icp-bg);
}
h1, h2, h3, h4, h5, h6,
.page-header h1, .item-page h1 {
    font-family: var(--icp-display);
    color: var(--icp-title);
    letter-spacing: -0.02em;
}
a {
    color: var(--icp-accent);
    text-decoration: none;
}
a:hover, a:focus {
    color: #ffb04d;
}
/* .text-muted padrão do Bootstrap (#6c757d) fica ilegível no fundo escuro:
   clareia para um cinza discreto porém legível. */
.text-muted,
small.text-muted,
.small.text-muted,
.article-info .text-muted,
.list-group-item .text-muted {
    color: var(--icp-muted) !important;
}
::selection {
    background: var(--icp-accent);
    color: #000;
}
::-webkit-scrollbar {
    width: 12px;
    background: var(--icp-bg-alt);
}
::-webkit-scrollbar-thumb {
    background: #2c2e32;
    border-radius: 6px;
    border: 3px solid var(--icp-bg-alt);
}
::-webkit-scrollbar-thumb:hover {
    background: var(--icp-accent);
}

/* botão pill reutilizável */
.icp-btn,
.moduletablemaispregacoes > a,
.item-page .com-content-article__readmore a,
.readmore a,
.blog-item .readmore a {
    display: inline-block;
    padding: 12px 30px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #ffffff;
    font-family: var(--icp-body);
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color 0.25s ease, border-color 0.25s ease,
                color 0.25s ease, transform 0.25s ease;
}
.icp-btn:hover,
.moduletablemaispregacoes > a:hover,
.item-page .com-content-article__readmore a:hover,
.readmore a:hover,
.blog-item .readmore a:hover {
    background-color: var(--icp-accent);
    border-color: var(--icp-accent);
    color: #000000;
    transform: translateY(-2px);
}

/* eyebrow (rótulo pequeno acima dos títulos display) */
.icp-eyebrow {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: center;
    color: var(--icp-accent);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.24em;
    text-transform: uppercase;
}
.icp-eyebrow::before {
    content: '';
    width: 28px;
    height: 2px;
    background: var(--icp-accent);
}

/* reveal no scroll (classe aplicada pelo user.js; sem JS nada fica oculto) */
.icp-reveal {
    opacity: 0;
    transform: translateY(26px);
    transition: opacity 0.7s ease, transform 0.7s ease;
}
.icp-reveal.is-in {
    opacity: 1;
    transform: none;
}
@media (prefers-reduced-motion: reduce) {
    .icp-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }
}

/* =====================================================================
   3. ESTRUTURA (grid Cassiopeia — regras funcionais)
   ===================================================================== */
.site-grid > .container-banner,
.site-grid > .container-top-a,
.site-grid > .container-bottom-a {
    grid-column: full-start / full-end;
}
.container-top-a,
.container-bottom-a {
    display: block;
}
.container-banner {
    margin: 0;
}
.container-top-a .card, .container-bottom-a .card,
.container-top-b .card, .container-bottom-b .card {
    background: none;
    border: 0;
    border-radius: 0;
    margin: 0;
}
.container-top-a .card-body, .container-bottom-a .card-body,
.container-top-b .card-body, .container-bottom-b .card-body {
    padding: 0;
}
.container-top-a a,
.container-bottom-a a {
    text-decoration: none;
}

/* =====================================================================
   4. TOPBAR utilitária
   ===================================================================== */
.container-topbar {
    background-color: var(--icp-bg-alt);
    /* sem borda: a junção com o degradê da nav fica invisível (sem faixa) */
    color: var(--icp-text);
    font-family: var(--icp-body);
    font-size: 12.5px;
    padding: 0;
}
.icp-topbar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0;
    margin: 0;
    padding: 0;
    min-height: 42px;
}
/* divisor vertical comum a todos os blocos da barra */
.icp-topbar .icp-transmissao,
.icp-topbar .icp-info,
.icp-topbar .icp-lider12 {
    display: inline-flex;
    align-items: center;
    height: 42px;
    padding: 0 16px;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
}

/* ---- esquerda: CULTO AO VIVO com indicador "ao vivo" pulsante ---- */
.icp-topbar .icp-transmissao {
    gap: 9px;
    font-weight: 700;
    font-size: 11.5px;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: #ffffff;
    /* primeiro item: sem divisor e colado à borda (10px) */
    border-left: 0;
    padding-left: 10px;
}
.icp-topbar .icp-transmissao::before {
    content: '';
    width: 8px;
    height: 8px;
    border-radius: 50%;
    flex: none;
    /* apagada por padrão (sem transmissão = agenda) */
    background: rgba(255, 255, 255, 0.28);
}
/* ao vivo de verdade: bolinha vermelha pulsando (classe via user.js) */
.icp-topbar .icp-transmissao.is-live::before {
    background: #ff3b30;
    animation: icp-live 1.8s ease-out infinite;
}
@keyframes icp-live {
    0%   { box-shadow: 0 0 0 0 rgba(255, 59, 48, 0.55); }
    70%  { box-shadow: 0 0 0 7px rgba(255, 59, 48, 0); }
    100% { box-shadow: 0 0 0 0 rgba(255, 59, 48, 0); }
}
/* texto da live em destaque, com seta */
.icp-topbar .icp-transmissao.is-live a {
    color: #ff5a4d;
    font-weight: 700;
    letter-spacing: 0.04em;
}
.icp-topbar .icp-transmissao.is-live a::after {
    content: ' \2192';
}
.icp-topbar .icp-transmissao.is-live a:hover {
    color: #ff7a6e;
}
/* botão "Ativar áudio" ao lado de ESTAMOS TRANSMITINDO (desmuta o vídeo do hero) */
.icp-topbar .icp-audio-btn {
    margin-left: 9px; padding: 1px 9px 2px; border: 0; border-radius: 11px;
    background: #ff5a4d; color: #fff; font: inherit; font-size: 11px; font-weight: 700;
    letter-spacing: .02em; cursor: pointer; vertical-align: 1px;
    animation: icp-audio-pulse 1.5s ease-in-out infinite;
}
.icp-topbar .icp-audio-btn:hover { background: #ff7a6e; }
.icp-topbar .icp-audio-btn.is-on { background: rgba(255,255,255,.16); animation: none; }
@keyframes icp-audio-pulse { 0%, 100% { opacity: 1; } 50% { opacity: .55; } }
.icp-topbar .icp-transmissao img {
    display: none; /* ícone de câmera antigo removido */
}
.icp-topbar .icp-transmissao a {
    color: var(--icp-accent);
    text-transform: none;
    letter-spacing: 0;
    font-size: 12.5px;
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}
.icp-topbar .icp-transmissao a:hover {
    color: #ffb04d;
}

/* ---- direita: contato (telefone, endereço) com ícones SVG ---- */
.icp-topbar .icp-info {
    gap: 7px;
    font-weight: 500;
    font-size: 12.5px;
    color: rgba(255, 255, 255, 0.6);
}
.icp-topbar .icp-info::before {
    content: '';
    width: 13px;
    height: 13px;
    flex: none;
    background-position: center;
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0.7;
}
/* telefone = 1º .icp-info (logo após o "ao vivo"); inicia o grupo da direita */
.icp-topbar .icp-transmissao + .icp-info {
    margin-left: auto;
}
.icp-topbar .icp-transmissao + .icp-info::before {
    background-image: url('/media/icp/icons/phone.svg');
}
/* endereço = .icp-info que segue outro .icp-info */
.icp-topbar .icp-info + .icp-info::before {
    background-image: url('/media/icp/icons/pin.svg');
}

/* ---- redes: à direita, junto ao Líder12 (área social/acesso) ---- */
.icp-topbar .icp-redes {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    height: 42px;
    padding: 0 16px;
    border-left: 1px solid rgba(255, 255, 255, 0.08);
}
.icp-topbar .icp-redes a {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.14);
    transition: background-color 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
}
.icp-topbar .icp-redes a:hover {
    transform: translateY(-1px);
}
.icp-topbar .icp-redes a[href*="fb"]:hover,
.icp-topbar .icp-redes a[href*="facebook"]:hover {
    background: #1877f2;
    border-color: #1877f2;
}
.icp-topbar .icp-redes a[href*="youtube"]:hover {
    background: #ff0000;
    border-color: #ff0000;
}
.icp-topbar .icp-redes img {
    width: 13px !important;
    height: 13px !important;
    display: block;
    opacity: 1;
}

/* ---- Líder12: acesso na extrema direita ---- */
.icp-topbar .icp-lider12 {
    margin-left: 0;
}
.icp-topbar .icp-lider12 img {
    height: 24px !important;
    width: auto !important;
    transition: transform 0.2s ease, opacity 0.2s ease;
    opacity: 0.92;
}
.icp-topbar .icp-lider12 img:hover {
    transform: scale(1.05);
    opacity: 1;
}

/* =====================================================================
   5. NAV sticky (logo esquerda + menu direita)
   ===================================================================== */
.container-header {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    position: fixed;           /* Watoto: header FIXO sobre o vídeo/conteúdo */
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 1200;
    background-color: transparent;
    background-image: none;
    /* sem borda inferior: o degradê some suavemente */
}
/* header estilo Watoto: faixa fina (topbar) no topo + logo (esq) + hambúrguer (dir).
   A nav horizontal antiga fica oculta (o menu agora é o overlay vermelho). */
.container-header .container-nav { display: none; }
/* fundo do header num pseudo-elemento (não é ancestral com backdrop-filter,
   então os dropdowns mantêm o blur próprio). Degradê com a MESMA cor da topbar:
   opaco até o fim da topbar (a topbar sólida tampa) e degradê linear contínuo
   até transparente na base da nav — sem faixa, só na área da logo+menu. */
.container-header::before {
    content: '';
    position: absolute;
    inset: 0 0 -60px 0; /* leve degradê preto→transparente p/ legibilidade sobre o vídeo */
    z-index: -1;
    background: linear-gradient(to bottom,
        rgba(0, 0, 0, 0.7) 0%,
        rgba(0, 0, 0, 0.32) 50%,
        rgba(0, 0, 0, 0) 100%);
    pointer-events: none;
}
.container-header .container-topbar {
    width: 100%;
}
.container-header > .grid-child {
    width: auto;
    max-width: none;
    margin: 0;
    padding: 0;
}
.container-header .navbar-brand {
    margin: 5px 0 5px 20px;
    padding: 0;
}
.container-header .navbar-brand img,
.container-header .navbar-brand .icp-logo-mix {
    height: 78px; /* 52px + 50% */
    width: auto;
    display: block;
}
/* logo composta: chama animada original (Swiffy 273×103, janela de 80px)
   + texto branco recortado da PNG (300×108, texto a partir de x=82) */
.container-header .navbar-brand .icp-logo-mix {
    display: flex;
    align-items: center;
    gap: 4px;
}
.icp-logo-mix .icp-chama-wrap {
    position: relative;
    height: 100%;
    aspect-ratio: 80 / 103;
    overflow: hidden;
}
.icp-logo-mix .icp-chama-wrap iframe {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    aspect-ratio: 273 / 103;
    border: 0;
    pointer-events: none;
    background: transparent;
    color-scheme: light; /* evita iframe escurecido por dark-mode do browser */
}
.icp-logo-mix .icp-texto-wrap {
    position: relative;
    height: 100%;
    aspect-ratio: 218 / 108;
    overflow: hidden;
}
.icp-logo-mix .icp-texto-wrap img {
    position: absolute;
    top: 0;
    left: -37.6%; /* desloca os 82px da chama da PNG para fora da janela */
    height: 100%;
    width: auto;
    max-width: none;
    /* sombrinha escura no texto da logo */
    filter: drop-shadow(0px 0px 5px rgba(0, 0, 0, 1));
}
.container-header .container-nav {
    margin-left: auto;
    background-color: transparent;
    padding: 0 8px 0 0;
}

/* menu principal: itens brancos com sublinhado laranja animado */
.icp-topmenu ul {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
}
.icp-topmenu > ul > li {
    position: relative;
}
.icp-topmenu > ul > li > a,
.icp-topmenu > ul > li > a:not([href]):not([class]) {
    position: relative;
    display: block;
    padding: 28px 18px;
    color: #ffffff;
    font-family: var(--icp-body);
    font-weight: 600;
    font-size: 20px;
    letter-spacing: -0.02em;
    text-transform: lowercase;
    text-decoration: none;
    text-shadow: 0px 0px 5px #000;
    cursor: pointer;
    transition: color 0.2s ease;
}
.icp-topmenu > ul > li > a::after {
    content: '';
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    height: 2px;
    background: var(--icp-accent);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform 0.25s ease;
}
.icp-topmenu > ul > li:hover > a,
.icp-topmenu > ul > li:hover > a:not([href]):not([class]) {
    color: var(--icp-accent);
}
.icp-topmenu > ul > li:hover > a::after {
    transform: scaleX(1);
}
.icp-topmenu li ul {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 240px;
    background-color: rgba(20, 21, 24, 0.42); /* vidro fosco, como o header */
    backdrop-filter: blur(22px) saturate(1.7);
    -webkit-backdrop-filter: blur(22px) saturate(1.7);
    border: 1px solid var(--icp-line);
    border-radius: 14px;
    box-shadow: var(--icp-shadow);
    padding: 8px;
    z-index: 1020;
    flex-direction: column;
}
.icp-topmenu li:hover > ul {
    display: flex;
}
/* "contato" (último item, colado à direita): abre o dropdown alinhado à direita
   para não sair da tela */
.icp-topmenu > ul > li:last-child > ul {
    left: auto;
    right: 0;
}
.icp-topmenu li ul li { position: relative; } /* ancora o flyout de 3º nível ao item */
.icp-topmenu li ul li a {
    display: block;
    padding: 10px 14px;
    border-radius: 9px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 14px;
    font-weight: 500;
    text-decoration: none;
    transition: background-color 0.18s ease, color 0.18s ease;
}
.icp-topmenu li ul li a:hover {
    background-color: var(--icp-accent-soft);
    color: var(--icp-accent);
}
/* submenu de 3º nível (Agenda → Encontros/Anual/Semanal): abre ao lado */
.icp-topmenu li.icp-has-sub > a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    cursor: pointer;
}
.icp-topmenu li.icp-has-sub > a::after {
    content: '\203A'; /* › */
    color: var(--icp-accent);
    font-size: 16px;
    line-height: 1;
}
.icp-topmenu li ul li ul {
    top: -8px;        /* alinha ao padding do dropdown pai */
    left: auto;
    right: 100%;      /* abre para a ESQUERDA (menu fica à direita → não corta a tela) */
    margin: 0;        /* SEM vão: evita perder o :hover ao mirar o submenu lateral */
    /* vidro aninhado não funciona: fundo sólido no 3º nível */
    background-color: #1c1d21;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
}
/* ponte invisível entre "Agenda" e o flyout lateral (à esquerda): mantém o hover */
.icp-topmenu li.icp-has-sub::before {
    content: '';
    position: absolute;
    top: 0;
    right: 100%;
    width: 12px;
    height: 100%;
}
@media (max-width: 700px) {
    /* no mobile o 3º nível abre embaixo, recuado */
    .icp-topmenu li ul li ul {
        position: static;
        margin: 0 0 0 14px;
        border: 0;
        box-shadow: none;
        padding: 0;
    }
    .icp-topmenu li.icp-has-sub > a::after { content: '\203A'; }
}

/* =====================================================================
   6. HERO (slider 1) + "ACONTECE NA ICP" (sliders 2/3)
   ===================================================================== */
.container-banner {
    background-color: var(--icp-bg);
}
.icp-header-sliders {
    display: flex;
    flex-direction: column;
    max-width: none;
    margin: 0;
}
.icp-slider-box {
    position: relative;
    overflow: hidden;
    background-color: var(--icp-bg-alt);
    line-height: 0; /* sem caixa de linha fantasma: a moldura abraça o slider */
}
.icp-slider-box #wowslider-container1,
.icp-slider-box #wowslider-container2,
.icp-slider-box #wowslider-container3 {
    width: 100%;
}
/* hero em card arredondado, como os secundários */
.icp-slider-box[data-icp-slider="1"] {
    width: calc(100% - 48px);
    max-width: 1872px;
    margin: 24px auto 0;
    border-radius: var(--icp-radius);
    border: 1px solid var(--icp-line);
    box-shadow: var(--icp-shadow);
}
/* hero "ambiente": a moldura adota a altura real do WOWSlider (~720px, não
   gigante); a arte aparece INTEIRA (contain) e as sobras são preenchidas pela
   própria arte desfocada (.icp-hero-bg, sincronizada pelo user.js). NÃO fixar
   a altura da box: se ela ficar menor que o slider, o overflow:hidden corta a
   base da arte (o "ACAMPAMENTO MAANAIM" sumia). */
.icp-slider-box[data-icp-slider="1"] .icp-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    /* claro o bastante para a sombra 3D da arte aparecer sobre ele */
    filter: blur(26px) brightness(0.68) saturate(1.15);
    transform: scale(1.18);
    z-index: 0;
}
.icp-slider-box[data-icp-slider="1"] #wowslider-container1 {
    position: relative;
    z-index: 1;
}
.icp-slider-box[data-icp-slider="1"] #wowslider-container1 .ws_images img,
.icp-slider-box[data-icp-slider="1"] #wowslider-container1 .ws_effect img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    /* sombra que contorna a ARTE (não a caixa): flutuação 3D sobre o fundo blur */
    filter: drop-shadow(0 10px 10px rgba(0, 0, 0, 0.8));
}
/* o CSS dos engines trava o slider em 1280/640px e o card fica com sobras;
   libera os limites para o slider preencher a moldura em qualquer largura */
.icp-slider-box #wowslider-container1,
.icp-slider-box #wowslider-container1 .ws_images,
.icp-slider-box #wowslider-container1 .ws_images ul a,
.icp-slider-box #wowslider-container2,
.icp-slider-box #wowslider-container2 .ws_images,
.icp-slider-box #wowslider-container2 .ws_images ul a,
.icp-slider-box #wowslider-container3,
.icp-slider-box #wowslider-container3 .ws_images,
.icp-slider-box #wowslider-container3 .ws_images ul a,
.icp-slider-box #wowslider-container4,
.icp-slider-box #wowslider-container4 .ws_images,
.icp-slider-box #wowslider-container4 .ws_images ul a {
    max-width: none;
    max-height: none;
}
/* Bullets dos banners secundários FORA da caixa, acima dela. A caixa mantém
   overflow:hidden (arte arredondada). Como os ws_bullets ficam no fundo do
   #wowslider-container (e seriam cortados), o user.js os MOVE para o wrapper
   .icp-slider-wrap, que envolve a caixa SEM overflow → aparecem acima.
   engine usa #wowslider-containerN .ws_bullets (ID) → precisa de !important. */
.icp-slider-wrap { position: relative; }
/* enquanto ainda estão dentro da caixa (antes do user.js mover): escondidos */
.icp-header-right .icp-slider-box .ws_bullets { display: none !important; }
/* já no wrapper (fora da caixa): visíveis e posicionados acima */
.icp-slider-wrap > .ws_bullets {
    display: block !important;
    position: absolute !important;
    bottom: 100% !important;       /* acima da caixa */
    top: auto !important;
    margin-bottom: 5px !important; /* 5px de distância do topo do banner */
    left: 50% !important;
    right: auto !important;
    transform: translateX(-50%);
    z-index: 70;
    float: none;
    padding: 0 !important;
    text-align: center;
    white-space: nowrap;
}
/* banner com 1 só imagem: sem bullets (classe posta pelo user.js no wrap) */
.icp-slider-wrap.icp-single .ws_bullets { display: none !important; }
/* estilo dos pontos (~8px, brancos 50% transparente) */
.icp-header-right .ws_bullets div { float: none !important; }
.icp-header-right .ws_bullets a {
    width: 8px !important;
    height: 8px !important;
    padding: 0 !important;
    margin: 0 5px !important;
    border-radius: 50% !important;
    display: inline-block !important;
    float: none !important;
    vertical-align: middle;
    overflow: hidden !important;          /* corta qualquer texto interno */
    font-size: 0 !important;
    line-height: 0 !important;
    background-color: rgba(255, 255, 255, 0.5) !important;
}
/* o <a> do bullet contém um <span> com o número do slide (posto pelo user.js);
   a CSS do engine que o escondia não alcança mais os bullets movidos p/ o wrap */
.icp-header-right .ws_bullets a span { display: none !important; }
.icp-header-right .ws_bullets a.ws_selbull,
.icp-header-right .ws_bullets a:hover {
    background-color: rgba(255, 255, 255, 0.9) !important;
}
.icp-slider-box[data-icp-slider="1"]::after {
    content: '';
    position: absolute;
    inset: auto 0 0 0;
    height: 90px;
    background: linear-gradient(to top, rgba(19, 20, 22, 0.55), transparent);
    pointer-events: none;
    z-index: 10;
}
/* o WOWSlider usa z-index altos nos controles — garante bullets acima */
.icp-slider-box[data-icp-slider="1"] .ws_bullets {
    z-index: 70;
}

/* dupla de eventos em cards */
.icp-header-right {
    display: grid;
    /* acomoda 2 ou 3 cards (slider vazio é ocultado pelo user.js) */
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 28px;
    width: 100%;
    max-width: 1560px; /* cards maiores: artes inteiras e legíveis */
    margin: 0 auto;
    padding: 0 24px 96px;
}
/* nunca cortar a arte: qualquer proporção aparece inteira (sobras escuras) */
#wowslider-container2 .ws_images img,
#wowslider-container3 .ws_images img,
#wowslider-container4 .ws_images img {
    object-fit: contain;
    background-color: var(--icp-bg-alt);
}
.icp-header-right .icp-slider-box {
    border-radius: var(--icp-radius);
    border: 1px solid var(--icp-line);
    box-shadow: var(--icp-shadow);
}
/* heading injetado pelo user.js entre o hero e a dupla */
.icp-acontece-head {
    text-align: center;
    padding: 88px 20px 40px;
}
.icp-acontece-head h2 {
    font-family: var(--icp-display);
    font-size: clamp(2rem, 4.2vw, 3.4rem);
    font-weight: 800;
    color: var(--icp-title);
    margin: 14px 0 0;
}

/* =====================================================================
   7. SEÇÕES DA HOME
   ===================================================================== */

/* ---------- bem-vindo: foto + texto em duas colunas ---------- */
.moduletablebemvindo {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 40px;
    align-items: center;
    max-width: 1080px;
    margin: 0 auto;
    padding: 96px 20px 40px;
}
.moduletablebemvindo h1 {
    grid-column: 1 / -1;
    font-family: var(--icp-display);
    font-size: clamp(2rem, 4.2vw, 3.4rem);
    font-weight: 800;
    color: var(--icp-title);
    text-align: center;
    margin: 0 0 16px;
}
.moduletablebemvindo h1::before {
    content: 'A CASA DO AVIVAMENTO';
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    color: var(--icp-accent);
    font-family: var(--icp-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.24em;
    margin-bottom: 16px;
}
.moduletablebemvindo img,
.moduletablebemvindo video {
    width: 220px;
    height: 220px;
    border-radius: 50%;
    object-fit: cover;
    border: 3px solid var(--icp-line);
    box-shadow: var(--icp-shadow);
    float: none;
    margin: 0;
    display: block;
}
.moduletablebemvindo video {
    /* Safari (macOS/iOS) não recorta border-radius em <video>; a máscara força o círculo */
    -webkit-mask-image: radial-gradient(circle closest-side, #000 99.5%, transparent 100%);
            mask-image: radial-gradient(circle closest-side, #000 99.5%, transparent 100%);
}
.moduletablebemvindo div.textobemvindo {
    height: auto;
    display: block;
}
.moduletablebemvindo p {
    font-family: var(--icp-body);
    font-weight: 400;
    font-size: 17.5px;
    line-height: 1.75;
    color: var(--icp-text);
    margin: 0;
}
.moduletablebemvindo p em {
    color: var(--icp-accent);
    font-style: normal;
    font-weight: 600;
}

/* ---------- acessos especiais ---------- */
.moduletableacessos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
    gap: 18px;
    max-width: 1040px;
    margin: 0 auto;
    padding: 24px 20px 72px;
}
.moduletableacessos .icp-acesso {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
    padding: 22px 20px;
    min-height: 138px;
    background: var(--icp-surface);
    border: 1px solid var(--icp-line);
    border-radius: 16px;
    text-decoration: none;
    transition: transform 0.25s ease, border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}
.moduletableacessos .icp-acesso:hover {
    transform: translateY(-4px);
    border-color: var(--icp-accent);
    background: #212327;
    box-shadow: 0 18px 38px -16px rgba(255, 144, 0, 0.45);
}
.moduletableacessos .icp-acesso-ico {
    width: 42px;
    height: 42px;
    padding: 8px;
    flex: none;
    color: var(--icp-accent);
    background: var(--icp-accent-soft);
    border-radius: 12px;
}
/* ícone em imagem (ex.: logo Líder 12): chip neutro, logo contido na cor original */
.moduletableacessos img.icp-acesso-ico {
    padding: 6px;
    color: inherit;
    background: rgba(255, 255, 255, 0.08);
    object-fit: contain;
}
.moduletableacessos .icp-acesso-txt {
    display: flex;
    flex-direction: column;
    gap: 3px;
}
.moduletableacessos .icp-acesso-txt strong {
    font-family: var(--icp-display);
    font-size: 1.12rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--icp-title);
}
.moduletableacessos .icp-acesso-txt small {
    font-family: var(--icp-body);
    font-size: 0.84rem;
    color: var(--icp-muted);
}
/* mobile: os 4 acessos em DUAS colunas (no desktop o auto-fit segue inalterado) */
@media (max-width: 640px) {
    .moduletableacessos {
        grid-template-columns: 1fr 1fr;
        gap: 12px;
        padding: 20px 14px 52px;
    }
    .moduletableacessos .icp-acesso {
        padding: 16px 14px;
        gap: 12px;
        min-height: 118px;
    }
    .moduletableacessos .icp-acesso-txt strong { font-size: 1rem; }
}

/* ---------- caminho + encontros ---------- */
.icp-blocos0 {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: stretch;
    gap: 32px;
    max-width: 1500px;
    margin: 0 auto;
    padding: 0 20px 96px;
}
.icp-bloco0a {
    margin: 0;
    flex: 1 1 520px;
    max-width: 826px; /* 780px das fatias + padding */
    background: var(--icp-surface);
    border: 1px solid var(--icp-line);
    border-radius: var(--icp-radius);
    box-shadow: var(--icp-shadow);
    padding: 22px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.caminho_corpo {
    text-align: center;
    clear: both;
    margin-left: 0;
    max-width: 100%;
}
/* fatias do caminho fluidas (somam 780px) — fecham em qualquer largura */
.caminho_corpo img {
    height: auto;
}
.caminho_corpo img[src*="_01"] { width: 100%; }
.caminho_corpo img[src*="_02"],
.caminho_corpo img[src*="_03"] { width: 50%; }
.caminho_corpo img[src*="_04"] { width: calc(100% * 315 / 780); }
.caminho_corpo img[src*="_05"] { width: calc(100% * 154 / 780); }
.caminho_corpo img[src*="_06"] { width: calc(100% * 149 / 780); }
.caminho_corpo img[src*="_07"] { width: calc(100% * 136 / 780); }
.caminho_corpo img[src*="_08"] { width: calc(100% * 26 / 780); }
.icp-bloco0b {
    margin: 0;
    flex: 0 1 650px;
    max-width: 100%;
}
.icp-encontros {
    display: block;
    position: relative;
    width: 650px;
    max-width: 100%;
    min-height: 429px;
    margin-top: 0;
    border-radius: var(--icp-radius);
    overflow: hidden;
    background: var(--icp-bg-alt);
    border: 1px solid var(--icp-line);
    box-shadow: var(--icp-shadow);
    text-decoration: none;
    transition: transform 0.3s ease;
}
.icp-encontros:hover { transform: translateY(-4px); }
/* foto aérea do acampamento (drone) com Ken Burns: zoom/pan lento cinematográfico */
.icp-encontros::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background: url('/images/encontros_maanaim_drone.jpg') center/cover no-repeat;
    animation: encKenBurns 26s ease-in-out infinite alternate;
    will-change: transform;
}
@keyframes encKenBurns {
    from { transform: scale(1.08) translate(0, 0); }
    to   { transform: scale(1.2) translate(-2%, -1.5%); }
}
@media (prefers-reduced-motion: reduce) {
    .icp-encontros::before { animation: none; transform: scale(1.06); }
}
.icp-encontros::after {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 1;
    background: linear-gradient(to bottom, rgba(0, 0, 0, 0.74) 0%, rgba(0, 0, 0, 0.5) 42%, rgba(0, 0, 0, 0.88) 100%);
}
.icp-encontros h1 {
    position: relative;
    z-index: 2;
    margin: 0;
    padding: 24px 28px 4px;
    font-family: var(--icp-display);
    font-size: clamp(1.5rem, 2.4vw, 2.1rem);
    font-weight: 800;
    color: #ffffff;
}
/* === Encontros Maanaim: "lineup" com o próximo em destaque (montado pelo user.js) === */
.icp-encontros .enc_lista {
    position: relative;
    z-index: 2;
    display: block;
    padding: 2px 26px 22px;
}
/* card do PRÓXIMO encontro (destaque + contagem regressiva) */
.enc_next {
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
    margin-bottom: 12px;
    background: rgba(8, 6, 3, 0.5);
    border: 1px solid rgba(255, 144, 0, 0.6);
    border-radius: 14px;
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}
/* legibilidade dos textos sobre a foto aérea */
.enc_next_pub, .enc_next_count, .enc_row_pub, .enc_row_date, .enc_cta {
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.75);
}
.enc_next_date {
    flex: none;
    display: flex; flex-direction: column;
    align-items: center; justify-content: center;
    width: 70px; height: 70px;
    border-radius: 12px;
    background: var(--icp-accent);
    color: #1a1206;
    box-shadow: 0 8px 20px -6px rgba(255, 144, 0, 0.6);
}
.enc_next_dia { font-family: var(--icp-display); font-weight: 800; font-size: 32px; line-height: 1; }
.enc_next_mes { font-family: var(--icp-body); font-weight: 700; font-size: 12px; letter-spacing: 1.5px; margin-top: 2px; }
.enc_next_info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.enc_badge {
    align-self: flex-start;
    font-family: var(--icp-body); font-size: 10px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase;
    color: var(--icp-accent);
}
.enc_next_pub { font-family: var(--icp-display); font-weight: 800; font-size: 25px; color: #fff; line-height: 1.08; }
.enc_next_count { font-family: var(--icp-body); font-size: 13px; color: rgba(255, 255, 255, 0.82); }
/* lista dos próximos */
.enc_more { display: flex; flex-direction: column; }
.enc_row {
    display: flex; align-items: center; gap: 14px;
    padding: 9px 4px;
    border-top: 1px solid rgba(255, 255, 255, 0.1);
    transition: padding-left 0.22s ease;
}
.enc_row:hover { padding-left: 10px; }
.enc_row_date {
    flex: none; width: 62px;
    font-family: var(--icp-body); font-size: 12px; color: rgba(255, 255, 255, 0.6); letter-spacing: 0.5px;
}
.enc_row_date b { font-family: var(--icp-display); font-weight: 800; font-size: 18px; color: var(--icp-accent); margin-right: 2px; }
.enc_row_pub { flex: 1; font-family: var(--icp-display); font-weight: 700; font-size: 16px; color: #fff; }
.enc_row_arrow { color: var(--icp-accent); font-size: 22px; font-weight: 700; opacity: 0; transform: translateX(-4px); transition: all 0.22s ease; }
.enc_row:hover .enc_row_arrow { opacity: 1; transform: translateX(0); }
.enc_cta {
    display: inline-block; margin-top: 13px;
    font-family: var(--icp-body); font-size: 13px; font-weight: 700; letter-spacing: 0.5px;
    color: var(--icp-accent);
}
.icp-encontros:hover .enc_cta { text-decoration: underline; }

/* "Agenda" (o que está acontecendo) — cada dia em um CARD (grid responsivo) */
.moduletableagendalista {
    max-width: 1080px;
    margin: 8px auto 0;
}
.moduletableagendalista .agenda_links { text-align: right; margin-bottom: 14px; }
.moduletableagendalista .agenda_links a { color: var(--icp-accent); font-size: 13px; font-weight: 600; text-decoration: none; }
.moduletableagendalista .agenda_vazia { text-align: center; color: rgba(255, 255, 255, 0.5); }
.moduletableagendalista [data-icp-agenda] {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    gap: 18px;
}
.agenda_dia {
    flex: 0 0 auto;          /* largura pelo conteúdo: título não quebra */
    min-width: 210px;
    max-width: 420px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 18px 20px;
    background: var(--icp-surface);
    border: 1px solid var(--icp-line);
    border-radius: var(--icp-radius);
    box-shadow: var(--icp-shadow);
    transition: border-color 0.25s ease, transform 0.25s ease;
}
.agenda_dia:hover { border-color: rgba(255, 144, 0, 0.45); transform: translateY(-3px); }
.agenda_data {
    display: flex;
    align-items: baseline;
    gap: 10px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--icp-line);
}
.agenda_num { font-family: var(--icp-display); font-weight: 800; font-size: 34px; line-height: 1; color: var(--icp-accent); }
.agenda_sem { font-size: 12px; text-transform: uppercase; letter-spacing: 0.04em; color: rgba(255, 255, 255, 0.55); }
.agenda_eventos { display: flex; flex-direction: column; gap: 8px; }
.agenda_ev { color: rgba(255, 255, 255, 0.88); line-height: 1.3; white-space: nowrap; }
.agenda_hora { display: inline-block; color: var(--icp-accent); font-weight: 700; font-size: 14px; margin-right: 8px; }
.agenda_nome { font-size: 14px; }

/* ---------- faixa escura: pregações / redes / mapas / icptv ---------- */
.container-bottom-a {
    background-color: var(--icp-bg-alt);
    background-image: url('/images/pattern.png');
    background-blend-mode: overlay;
    padding-bottom: 96px;
    border-top: 1px solid var(--icp-line);
}

/* títulos de seção dos módulos (h1 dos headers) com eyebrow via ::before */
.moduletablebloco1_header1,
.moduletablebloco4_header1,
.moduletablerodape1_header {
    text-align: center;
    padding: 96px 20px 8px;
}
.moduletablebloco1_header1 h1,
.moduletablebloco4_header1 h1,
.moduletablerodape1_header h1 {
    font-family: var(--icp-display);
    font-size: clamp(2.2rem, 5vw, 4rem);
    font-weight: 800;
    color: var(--icp-title);
    margin: 14px 0 0;
}
.moduletablebloco1_header1 h1::before,
.moduletablebloco4_header1 h1::before,
.moduletablerodape1_header h1::before {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    font-family: var(--icp-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.24em;
    color: var(--icp-accent);
    margin-bottom: 14px;
}
.moduletablebloco1_header1 h1::before { content: 'MULTIMÍDIA'; }
.moduletablebloco4_header1 h1::before { content: 'MINISTÉRIOS E DEPARTAMENTOS'; }
.moduletablerodape1_header h1::before { content: 'VISITE-NOS'; }
.moduletablebloco1_header1 h2,
.moduletablebloco4_header1 h2,
.moduletablerodape1_header h2 {
    font-family: var(--icp-body);
    font-size: 16.5px;
    font-weight: 400;
    letter-spacing: 0;
    color: rgba(255, 255, 255, 0.55);
    margin: 12px 0 36px;
}
.moduletablerodape1_header h2 a span {
    color: rgba(255, 255, 255, 0.55) !important;
    transition: color 0.2s ease;
}
.moduletablerodape1_header h2 a:hover span {
    color: var(--icp-accent) !important;
}
.citacao_biblica {
    font-size: 13px;
    font-weight: 400;
    color: var(--icp-accent);
}

/* vitrine de pregações */
.pregacoes .mod-articlesnews {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 8px 20px 0;
}
@media (max-width: 980px) {
    .pregacoes .mod-articlesnews { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 600px) {
    .pregacoes .mod-articlesnews { grid-template-columns: repeat(2, 1fr); gap: 12px; }
    /* mobile: exibe 4 cards (2x2) — esconde o 5º solitário */
    .pregacao_bloco:nth-child(n+5) { display: none; }
}
/* === Cards "poster" cinematográficos (estilo streaming) === */
.pregacao_bloco {
    position: relative;
    width: auto;
    aspect-ratio: 3 / 4;
    padding: 0;
    text-align: left;
    transition: transform 0.35s ease;
}
.pregacao_bloco:hover { transform: translateY(-6px); }
.pregacao_bloco > a {
    position: absolute;
    inset: 0;
    display: block;
    border-radius: 18px;
    overflow: hidden;
    -webkit-mask-image: none;
            mask-image: none;
    border: 1px solid var(--icp-line);
    box-shadow: 0 16px 32px -16px rgba(0, 0, 0, 0.85);
    transition: box-shadow 0.35s ease, border-color 0.35s ease;
}
.pregacao_bloco:hover > a {
    border-color: var(--icp-accent);
    box-shadow: 0 26px 50px -18px rgba(255, 144, 0, 0.5);
}
.pregacao_foto {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    transition: transform 0.6s ease;
}
.pregacao_bloco:hover .pregacao_foto { transform: scale(1.07); }
/* vídeo do autor (mudo, em loop) que surge sobre a foto ao passar o mouse */
.pregacao_foto_video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
    z-index: 1;
}
.pregacao_bloco > a.video-on .pregacao_foto_video { opacity: 1; }
/* gradiente cinematográfico (legibilidade do texto na base) */
.pregacao_bloco > a::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(8, 9, 11, 0.94) 6%, rgba(8, 9, 11, 0.5) 34%, rgba(8, 9, 11, 0) 62%);
    z-index: 2;
    pointer-events: none;
}
/* foto redonda do autor na PÁGINA de uma pregação (acima do título) */
.icp-autor-foto {
    display: block;
    width: 130px;
    height: 130px;
    border-radius: 50% !important; /* vence regra global de img em artigo (12px) */
    object-fit: cover;
    margin: 4px auto 18px;
    border: 3px solid var(--icp-line);
    box-shadow: var(--icp-shadow);
}
/* foto do autor com vídeo (página da pregação): clipe redondo + vídeo sobre a foto */
.icp-autor-foto-wrap {
    position: relative;
    width: 130px;
    height: 130px;
    margin: 4px auto 18px;
    border-radius: 50%;
    overflow: hidden;
    /* Safari (macOS/iOS) não recorta o <video> com overflow:hidden; a máscara força o círculo */
    -webkit-mask-image: radial-gradient(circle closest-side, #000 99.5%, transparent 100%);
            mask-image: radial-gradient(circle closest-side, #000 99.5%, transparent 100%);
    border: 3px solid var(--icp-line);
    box-shadow: var(--icp-shadow);
}
.icp-autor-foto-wrap .icp-autor-foto {
    width: 100%;
    height: 100%;
    margin: 0;
    border: 0;
    box-shadow: none;
}
.icp-autor-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity .35s ease;
    pointer-events: none;
}
.icp-autor-foto-wrap.video-on .icp-autor-video { opacity: 1; }
/* página da pregação: cabeçalho (título + detalhes) centralizado sob a foto */
.com-content-article.item-page.icp-pregacao-art .page-header,
.com-content-article.item-page.icp-pregacao-art .article-info {
    text-align: center;
}
.com-content-article.item-page.icp-pregacao-art .article-info dd {
    margin-left: 0;
}

/* ===== Página "Apóstolos e Pastores" (equipe 2025) ===== */
.icp-pastores { max-width: 1180px; margin: 0 auto; padding: 8px 0 32px; }
.icp-pastores-intro { text-align: center; margin: 8px auto 40px; max-width: 760px; }
.icp-pastores-intro .icp-eyebrow {
    display: block; color: var(--icp-accent); font-family: var(--icp-body);
    font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px;
}
.icp-pastores-intro h1 {
    font-family: var(--icp-display); font-weight: 800; color: var(--icp-title);
    font-size: clamp(2rem, 4.4vw, 3.2rem); margin: 0 0 14px; line-height: 1.05;
}
.icp-pastores-intro p { color: var(--icp-text); font-size: 1.05rem; line-height: 1.7; margin: 0; }

/* hero com a imagem (pastor/rebanho) e degradê que funde no fundo escuro */
.icp-pastores-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 340px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 90px 28px 40px; margin: 0 0 48px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.18) 0%, rgba(10,11,13,.5) 52%, rgba(10,11,13,.95) 100%),
        url('/images/pastores/bg_pastores.jpg');
    background-size: cover; background-position: center;
}
.icp-pastores-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-pastores-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2.1rem, 5vw, 3.2rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-pastores-hero p { color: rgba(255,255,255,.94); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 640px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
@media (max-width: 640px) { .icp-pastores-hero { min-height: 270px; padding: 60px 18px 30px; } }

/* destaque apóstolos */
.icp-pastor-destaque {
    display: grid; grid-template-columns: 340px 1fr; gap: 36px; align-items: center;
    background: var(--icp-surface); border: 1px solid var(--icp-line); border-radius: 22px;
    padding: 26px; margin-bottom: 56px; box-shadow: var(--icp-shadow);
}
/* destaque invertido (foto à direita) — alterna com o de cima */
.icp-pastor-destaque--rev { grid-template-columns: 1fr 340px; }
.icp-pastor-destaque--rev .icp-pastor-destaque-foto { order: 2; }
.icp-pastor-destaque img {
    width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 18px;
    display: block; border: 1px solid var(--icp-line);
}
.icp-pastor-destaque .icp-eyebrow {
    color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px;
    font-weight: 700; letter-spacing: 3px;
}
.icp-pastor-destaque h2 {
    font-family: var(--icp-display); font-weight: 800; color: var(--icp-title);
    font-size: clamp(1.6rem, 3vw, 2.3rem); margin: 8px 0 14px;
}
.icp-pastor-destaque p { color: var(--icp-text); line-height: 1.75; margin: 0; font-size: 1.02rem; }

/* títulos de seção */
.icp-pastores-sec {
    font-family: var(--icp-display); font-weight: 800; color: var(--icp-title);
    font-size: clamp(1.4rem, 2.6vw, 2rem); text-align: center; margin: 0 0 28px;
    position: relative; padding-bottom: 14px;
}
.icp-pastores-sec::after {
    content: ""; position: absolute; left: 50%; bottom: 0; transform: translateX(-50%);
    width: 56px; height: 3px; border-radius: 3px; background: var(--icp-accent);
}

/* grade de casais */
.icp-pastores-grid {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
    gap: 22px; margin: 0 0 56px;
}
.icp-pastor-card { margin: 0; text-align: center; }
.icp-pastor-card img {
    width: 100%; aspect-ratio: 1/1; object-fit: cover; border-radius: 16px; display: block;
    border: 1px solid var(--icp-line); box-shadow: var(--icp-shadow);
    transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}
.icp-pastor-card:hover img {
    transform: translateY(-5px); border-color: var(--icp-accent);
    box-shadow: 0 18px 38px -16px rgba(255, 144, 0, 0.45);
}
.icp-pastor-card figcaption {
    font-family: var(--icp-display); font-weight: 700; color: var(--icp-title);
    font-size: 1.02rem; margin-top: 12px; line-height: 1.25;
}
@media (max-width: 720px) {
    .icp-pastor-destaque { grid-template-columns: 1fr; gap: 20px; padding: 18px; text-align: center; }
    .icp-pastor-destaque--rev .icp-pastor-destaque-foto { order: 0; }
    .icp-pastor-destaque img { max-width: 280px; margin: 0 auto; }
    .icp-pastores-grid { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 16px; }
    .icp-pastor-card figcaption { font-size: 0.9rem; }
}

.pregacao_middle {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 4;
    display: flex;
    flex-direction: column;
    gap: 4px;
    margin: 0;
    padding: 14px 14px 15px;
    pointer-events: none;
}
a.contentpagetitlepregacoes {
    font-family: var(--icp-display);
    font-size: 14px;
    font-weight: 800;
    line-height: 1.18;
    color: #ffffff !important;
    text-decoration: none;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.7);
    pointer-events: auto;
    transition: color 0.2s ease;
}
a.contentpagetitlepregacoes:hover {
    color: var(--icp-accent) !important;
}
.icp-preg-autor {
    font-family: var(--icp-body);
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.4px;
    color: var(--icp-accent);
    text-shadow: 0 1px 6px rgba(0, 0, 0, 0.6);
}
.moduletablemaispregacoes {
    clear: both;
    text-align: center;
    padding: 56px 0 0;
}

/* ===== Página "Nossa Visão" (visão celular) ===== */
.icp-visao { max-width: 1000px; margin: 0 auto; }
/* hero com a imagem (leão/trigo) e degradê que funde no fundo escuro */
.icp-visao-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 360px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 90px 28px 40px; margin: 0 0 40px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.15) 0%, rgba(10,11,13,.5) 52%, rgba(10,11,13,.95) 100%),
        url('/images/visao/bg_nossavisao.jpg');
    background-size: cover; background-position: center;
}
.icp-visao-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-visao-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2.1rem, 5vw, 3.2rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-visao-hero p { color: rgba(255,255,255,.94); font-size: 1.1rem; line-height: 1.5; margin: 0; max-width: 600px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
@media (max-width: 640px) { .icp-visao-hero { min-height: 270px; padding: 60px 18px 30px; } }
.icp-visao-lead {
    font-size: 1.2rem; line-height: 1.75; color: var(--icp-text);
    border-left: 3px solid var(--icp-accent); padding-left: 18px; margin: 0 0 40px;
}
.icp-visao-h {
    font-family: var(--icp-display); font-weight: 800; color: var(--icp-title);
    font-size: clamp(1.5rem, 3vw, 2.1rem); text-align: center; margin: 48px 0 10px;
}
.icp-visao-h::before {
    content: attr(data-eyebrow); display: block; color: var(--icp-accent);
    font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 8px;
}
.icp-visao > p { color: var(--icp-text); line-height: 1.75; text-align: center; max-width: 720px; margin: 0 auto 28px; }
/* topo: 1º parágrafo + banner lado a lado */
.icp-visao-topo { display: flex; gap: 30px; align-items: center; margin-bottom: 44px; }
.icp-visao-topo .icp-visao-lead { flex: 1 1 auto; margin: 0; }
.icp-visao-topo img.icp-escada-banner {
    flex: 0 0 220px; width: 220px; max-width: 220px; height: auto; margin: 0;
    border-radius: 14px; border: 1px solid var(--icp-line); box-shadow: var(--icp-shadow);
}

/* escada do sucesso: 4 passos */
.icp-escada {
    display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin: 8px 0 16px;
    counter-reset: passo;
}
.icp-escada-step {
    position: relative; background: var(--icp-surface); border: 1px solid var(--icp-line);
    border-radius: 16px; padding: 50px 18px 22px; text-align: center; margin-top: 38px;
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.icp-escada-step:hover { transform: translateY(-5px); border-color: var(--icp-accent); box-shadow: 0 18px 38px -16px rgba(255,144,0,.4); }
/* ícone de letra (G/C/D/E) no topo do card, para fora dele */
.icp-escada-step .icp-escada-letra {
    position: absolute; top: -38px; left: 50%; transform: translateX(-50%);
    width: 76px; height: 76px; object-fit: contain;
    filter: drop-shadow(0 6px 12px rgba(0,0,0,.5));
}
.icp-escada-step h3 { font-family: var(--icp-display); font-weight: 800; color: var(--icp-title); font-size: 1.15rem; margin: 0 0 8px; text-transform: uppercase; letter-spacing: .5px; }
.icp-escada-step p { color: var(--icp-muted); font-size: .92rem; line-height: 1.55; margin: 0; }

/* perguntas frequentes da visão */
.icp-visao-faq { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 8px 0 24px; }
.icp-faq-item { background: var(--icp-surface); border: 1px solid var(--icp-line); border-radius: 16px; padding: 24px 26px; }
.icp-faq-item h3 { font-family: var(--icp-display); font-weight: 700; color: var(--icp-accent); font-size: 1.12rem; margin: 0 0 10px; }
.icp-faq-item p { color: var(--icp-text); line-height: 1.7; margin: 0; }
.icp-faq-item.icp-faq-wide { grid-column: 1 / -1; }
@media (max-width: 760px) {
    .icp-visao-topo { flex-direction: column; gap: 16px; }
    .icp-visao-topo img.icp-escada-banner { flex: none; width: 200px; max-width: 200px; margin: 0 auto; }
    .icp-escada { grid-template-columns: 1fr 1fr; gap: 46px 14px; }
    .icp-visao-faq { grid-template-columns: 1fr; }
}

/* hero da listagem "Estudos bíblicos" (na descrição da categoria) */
.icp-estudos-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 80px 28px 36px; margin: 0 0 36px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.3) 0%, rgba(10,11,13,.5) 50%, rgba(10,11,13,.95) 100%),
        url('/images/estudos/bg_biblia.jpg');
    background-size: cover; background-position: center;
}
.icp-estudos-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-estudos-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2rem, 4.6vw, 3rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-estudos-hero p { color: rgba(255,255,255,.94); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 620px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
@media (max-width: 640px) { .icp-estudos-hero { min-height: 260px; padding: 56px 18px 28px; } }
/* capa do estudo (imagem no topo do texto, antes do conteúdo) */
.icp-estudo-capa { margin: 0 0 22px; }
/* figure.icp-estudo-capa p/ vencer a especificidade de `.item-page img, .blog-item img { height:auto }` do tema */
figure.icp-estudo-capa img { width: 100%; height: 200px; object-fit: cover; border-radius: 14px; display: block; border: 1px solid var(--icp-line); }
@media (max-width: 560px) { figure.icp-estudo-capa img { height: 140px; } }
/* navegação Anterior/Próximo do artigo: legível no tema escuro (era cinza quase invisível) */
.item-page a.btn-secondary { color: var(--icp-text); background: var(--icp-surface); border-color: var(--icp-line); }
.item-page a.btn-secondary:hover { color: var(--icp-title); border-color: var(--icp-accent); }

/* ===== Página "Pregações online" (hero na descrição da categoria 14) ===== */
.icp-pregacoes-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 80px 28px 36px; margin: 0 0 30px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.28) 0%, rgba(10,11,13,.58) 50%, rgba(10,11,13,.96) 100%),
        url('/images/pregacoes/bg_pregacoes.jpg');
    background-size: cover; background-position: center;
}
.icp-pregacoes-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-pregacoes-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2rem, 4.6vw, 3rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-pregacoes-hero p { color: rgba(255,255,255,.94); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 620px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
@media (max-width: 640px) { .icp-pregacoes-hero { min-height: 260px; padding: 56px 18px 28px; } }

/* ===== Página "Fale com um pastor" (com_contact cat 56) ===== */
.icp-falepastor-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 320px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 80px 28px 36px; margin: 0 0 32px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.22) 0%, rgba(10,11,13,.55) 52%, rgba(10,11,13,.96) 100%),
        url('/images/pastores/bg_pastores.jpg');
    background-size: cover; background-position: center;
}
.icp-falepastor-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-falepastor-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2rem, 4.6vw, 3rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-falepastor-hero p { color: rgba(255,255,255,.94); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 640px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
@media (max-width: 640px) { .icp-falepastor-hero { min-height: 250px; padding: 56px 18px 28px; } }
/* grade de cards de pastores */
.icp-falepastor-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; margin-top: 6px; }
.icp-falepastor-card {
    display: flex; flex-direction: column; align-items: center; text-align: center;
    background: var(--icp-surface); border: 1px solid var(--icp-line); border-radius: 16px;
    padding: 24px 16px 20px; text-decoration: none; transition: transform .2s ease, border-color .2s ease;
}
.icp-falepastor-card:hover { transform: translateY(-4px); border-color: var(--icp-accent); }
.icp-fp-foto { width: 96px; height: 96px; border-radius: 50%; overflow: hidden; border: 2px solid var(--icp-line); margin-bottom: 14px; background: var(--icp-bg-alt); transition: border-color .2s ease; }
.icp-falepastor-card:hover .icp-fp-foto { border-color: var(--icp-accent); }
.icp-fp-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.icp-fp-nome { font-family: var(--icp-display); font-weight: 700; color: var(--icp-title); font-size: 1rem; line-height: 1.25; }
.icp-fp-pos { color: var(--icp-accent); font-size: .82rem; margin-top: 3px; }
.icp-fp-btn { margin-top: 13px; display: inline-block; background: var(--icp-accent-soft); color: var(--icp-accent); border: 1px solid rgba(255,144,0,.3); border-radius: 999px; padding: 7px 16px; font-size: .82rem; font-weight: 600; transition: background .2s ease, color .2s ease; }
.icp-falepastor-card:hover .icp-fp-btn { background: var(--icp-accent); color: #17110a; }
@media (max-width: 900px) { .icp-falepastor-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 640px) { .icp-falepastor-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; } .icp-fp-foto { width: 80px; height: 80px; } }
/* a grade (JS) mostra todos os contatos → esconde a paginação/contador nativos do com_contact */
.itemid-161 .com-contact-category__pagination, .itemid-161 .com-contact-category__counter,
.itemid-160 .com-contact-category__pagination, .itemid-160 .com-contact-category__counter { display: none; }
/* card de SETOR (Outros assuntos): ícone de envelope no lugar da foto */
.icp-fp-foto.is-ico { display: flex; align-items: center; justify-content: center; background: var(--icp-accent-soft); border-color: rgba(255,144,0,.25); }
.icp-fp-ico { width: 42px; height: 42px; color: var(--icp-accent); }
.icp-falepastor-card:hover .icp-fp-foto.is-ico { background: var(--icp-accent); }
.icp-falepastor-card:hover .icp-fp-ico { color: #17110a; }
/* (os campos de usuário foto/vídeo + título "Campos" são removidos pela Opção do com_contact
   "Mostrar Campos Personalizados do Utilizador"=nenhum — não por CSS) */
/* página individual do contato: foto redonda, menor (180px = vitrine de pregações da home), à esquerda */
/* o template põe a foto numa coluna à direita do grid → vira block p/ empilhar foto e texto */
.com-contact__container { display: block !important; }
.com-contact__thumbnail {
    width: 180px !important;
    max-width: 180px !important;
    margin: 4px 0 18px 0 !important;   /* foto à esquerda, texto logo ABAIXO (em seguida) */
    text-align: left !important;
}
.com-contact__thumbnail img {
    width: 180px !important;
    height: 180px !important;
    max-width: 180px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
    border: 3px solid var(--icp-line);
    box-shadow: var(--icp-shadow);
    margin: 0 !important;
}
/* hero "Outros assuntos" (fale conosco) — mesmo estilo */
.icp-faleconosco-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 300px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 76px 28px 34px; margin: 0 0 32px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.22) 0%, rgba(10,11,13,.55) 52%, rgba(10,11,13,.96) 100%),
        url('/images/pastores/bg_pastores.jpg');
    background-size: cover; background-position: center 30%;
}
.icp-faleconosco-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-faleconosco-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2rem, 4.6vw, 3rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-faleconosco-hero p { color: rgba(255,255,255,.94); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 640px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
@media (max-width: 640px) { .icp-faleconosco-hero { min-height: 230px; padding: 54px 18px 26px; } }

/* ===== Página /encontros (JEvents) — hero + cards montados pelo user.js ===== */
body.icp-enc-page .contentheading,
body.icp-enc-page .jeventpage > .actions,
body.icp-enc-page .eventlist { display: none !important; }
.icp-encontros-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 280px; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end;
    padding: 54px 44px 36px; margin: 0 0 30px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.25) 0%, rgba(10,11,13,.55) 50%, rgba(10,11,13,.95) 100%),
        url('/images/pregacoes/bg_pregacoes.jpg');
    background-size: cover; background-position: center 40%;
}
.icp-encontros-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-encontros-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2rem, 4.6vw, 3rem); margin: 0 0 12px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-encontros-hero p { color: rgba(255,255,255,.92); font-size: 1.04rem; line-height: 1.6; margin: 0; max-width: 600px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
.icp-enc-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); gap: 16px; }
.icp-enc-card {
    --cor: var(--icp-accent); --cor-soft: rgba(255,144,0,.12);
    display: flex; align-items: center; gap: 18px;
    background: var(--icp-surface, #17191c);
    border: 1px solid var(--icp-line); border-left: 3px solid var(--cor);
    border-radius: 14px; padding: 16px 20px;
    transition: transform .2s ease, background .2s ease;
}
.icp-enc-card:hover { transform: translateY(-3px); background: rgba(255,255,255,.03); }
.icp-enc-data {
    flex: 0 0 auto; width: 70px; height: 70px; border-radius: 14px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    background: var(--cor-soft); border: 1px solid var(--cor);
}
.icp-enc-dia { font-family: var(--icp-display); font-weight: 800; font-size: 27px; color: var(--cor); line-height: 1; }
.icp-enc-mes { font-size: 11px; font-weight: 700; letter-spacing: .12em; color: var(--cor); margin-top: 2px; }
.icp-enc-corpo { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.icp-enc-eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.42); }
.icp-enc-publico { font-family: var(--icp-display); font-weight: 700; font-size: 19px; color: var(--cor); line-height: 1.1; }
.icp-enc-quando { font-size: 13px; color: rgba(255,255,255,.6); }
.icp-enc-card.pub-mulheres { --cor: #ec4899; --cor-soft: rgba(236,72,153,.13); }
.icp-enc-card.pub-mocas    { --cor: #b07cf5; --cor-soft: rgba(176,124,245,.13); }
.icp-enc-card.pub-homens   { --cor: #4a92f0; --cor-soft: rgba(74,146,240,.13); }
.icp-enc-card.pub-rapazes  { --cor: #1bb89c; --cor-soft: rgba(27,184,156,.13); }
@media (max-width: 560px) {
    .icp-encontros-hero { min-height: 210px; padding: 38px 22px 24px; }
    .icp-enc-grid { grid-template-columns: 1fr; }
}

/* ===== Página /agenda-icp (calendário mensal JEvents) — hero + navegação + legenda ===== */
body.icp-agenda-page .contentheading,
body.icp-agenda-page .jeventpage > .actions { display: none !important; }
.icp-agenda-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 250px; display: flex; flex-direction: column; align-items: flex-start; justify-content: flex-end;
    padding: 48px 44px 32px; margin: 0 0 26px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.25) 0%, rgba(10,11,13,.58) 50%, rgba(10,11,13,.95) 100%),
        url('/images/pregacoes/bg_pregacoes.jpg');
    background-size: cover; background-position: center 42%;
}
.icp-agenda-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-agenda-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2rem, 4.4vw, 2.8rem); margin: 0 0 10px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-agenda-hero p { color: rgba(255,255,255,.92); font-size: 1.02rem; line-height: 1.6; margin: 0; max-width: 560px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
/* título do mês "Junho, 2026" */
.com_jevents .month_date { text-align: center; margin: 6px 0 18px; }
.com_jevents .month_title, .com_jevents .month_title_year {
    display: inline !important; font-family: var(--icp-display) !important; font-weight: 800 !important;
    font-size: 30px !important; color: #fff !important;
}
.com_jevents .month_title_year { color: var(--icp-accent) !important; }
/* botões de visão (Por ano/mês/semana/Hoje/Ir para mês) → pills */
.new-navigation .nav-items {
    display: flex !important; flex-wrap: wrap; gap: 8px; justify-content: center;
    margin: 0 0 18px !important; padding: 0 !important; list-style: none;
}
.new-navigation .nav-items > div {
    border: 1px solid var(--icp-line) !important; border-radius: 999px !important;
    background: var(--icp-surface) !important; overflow: hidden; margin: 0 !important;
}
.new-navigation .nav-items > div a {
    display: block !important; padding: 8px 18px !important; color: rgba(255,255,255,.75) !important;
    font-size: 13.5px; font-weight: 600; text-decoration: none !important; background: transparent !important;
}
.new-navigation .nav-items > div:hover { border-color: var(--icp-accent) !important; }
.new-navigation .nav-items > div:hover a { color: var(--icp-accent) !important; }
.new-navigation .nav-items > div.active { background: var(--icp-accent) !important; border-color: var(--icp-accent) !important; }
.new-navigation .nav-items > div.active a { color: #17110a !important; }
/* barra de navegação do mês [Maio | 21 Junho | Julho] — remove o vermelho berrante */
.jev_monthv .jev_header2 {
    display: flex !important; align-items: stretch; justify-content: space-between; gap: 12px;
    background: transparent !important; border: 0 !important; margin: 0 0 4px !important; padding: 0 !important;
}
.jev_header2 .previousmonth, .jev_header2 .nextmonth, .jev_header2 .currentmonth {
    background: var(--icp-surface) !important; border: 1px solid var(--icp-line) !important; margin: 0 !important;
}
.jev_header2 .previousmonth, .jev_header2 .nextmonth {
    border-radius: 12px !important; flex: 0 0 auto; transition: border-color .2s ease; padding: 0 !important;
    display: flex !important; align-items: center; justify-content: center;
}
.jev_header2 .previousmonth:hover, .jev_header2 .nextmonth:hover { border-color: var(--icp-accent) !important; }
.jev_header2 .previousmonth a, .jev_header2 .nextmonth a {
    display: inline-flex !important; align-items: center; gap: 9px;
    padding: 11px 20px !important; color: #fff !important; font-weight: 600; font-size: 14px;
}
/* a seta nativa (mini_arrow*.gif) vem de regra com #id no events_css.css → precisa especificidade >= */
body #jevents_body .jev_toprow div.previousmonth a,
body #jevents_body .jev_toprow div.nextmonth a { background-image: none !important; }
.jev_header2 .previousmonth a::before { content: '\2039'; color: var(--icp-accent); font-size: 19px; line-height: 1; }
.jev_header2 .nextmonth a::after { content: '\203A'; color: var(--icp-accent); font-size: 19px; line-height: 1; }
.jev_header2 .currentmonth {
    flex: 1; display: flex; align-items: center; justify-content: center; padding: 6px 14px !important;
    border-radius: 12px !important; font-family: var(--icp-display) !important;
    font-weight: 700; font-size: 15px; color: rgba(255,255,255,.72) !important;
}
/* legenda de categorias: OCULTA a pedido (não exibir as categorias) */
.event_legend_container, .event_legend_desc, .event_legend, .ev_legend { display: none !important; }
/* grade: dia de hoje em destaque */
.cal_today, td.cal_today, .month_cell_st.cal_today { box-shadow: inset 0 0 0 2px var(--icp-accent) !important; }
/* grade mensal — eventos: hora em laranja + título em branco, como chip limpo */
.cal_dayshasevents .month_cell_st {
    border-bottom: 0 !important;
    border-radius: 0 6px 6px 0 !important;
    padding: 3px 8px !important;
    margin: 0 3px 3px 0 !important;
    background: rgba(255,255,255,.045) !important;
    transition: background .15s ease;
}
.cal_dayshasevents .month_cell_st:hover { background: rgba(255,255,255,.10) !important; }
.cal_titlelink, .cal_titlelink:hover, .cal_titlelink:focus {
    display: block !important; text-decoration: none !important;
    font-size: 11.5px !important; line-height: 1.3;
    background: transparent !important;   /* JEvents flat punha #f7f7f7 no hover -> branco no branco */
}
.cal_titlelink .icp-cal-hora { display: block; color: var(--icp-accent) !important; font-weight: 700; font-size: 11px; letter-spacing: .02em; }
.cal_titlelink .icp-cal-tit { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; color: rgba(255,255,255,.82) !important; font-weight: 500; overflow: hidden; }
.cal_titlelink:hover .icp-cal-tit { color: #fff !important; }
/* tooltip (Bootstrap popover) do evento: era fundo branco → escurece + texto claro + seta escura */
.popover { background-color: var(--icp-surface) !important; border: 1px solid var(--icp-line) !important; }
.popover .popover-body { color: rgba(255,255,255,.85) !important; background: transparent !important; }
.popover .popover-body b, .popover .popover-body strong, .popover .popover-body .fwb { color: #fff !important; }
.popover .popover-body a { color: var(--icp-accent) !important; }
.popover .popover-arrow::after,
.bs-popover-auto[data-popper-placement^="top"] > .popover-arrow::after { border-top-color: var(--icp-surface) !important; }
.bs-popover-auto[data-popper-placement^="bottom"] > .popover-arrow::after { border-bottom-color: var(--icp-surface) !important; }
.bs-popover-auto[data-popper-placement^="left"] > .popover-arrow::after { border-left-color: var(--icp-surface) !important; }
.bs-popover-auto[data-popper-placement^="right"] > .popover-arrow::after { border-right-color: var(--icp-surface) !important; }
.popover .popover-arrow::before { border-color: transparent !important; }
/* visão anual/lista (.ev_td_li reformatado pelo user.js): hora início em destaque + título + meta */
body.icp-agenda-page ul.ev_ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
body.icp-agenda-page li.ev_td_li {
    display: flex !important; align-items: baseline; gap: 16px;
    background: var(--icp-surface) !important;
    border-top: 1px solid var(--icp-line) !important;
    border-right: 1px solid var(--icp-line) !important;
    border-bottom: 1px solid var(--icp-line) !important;
    border-left-width: 4px !important; border-left-style: solid !important;
    border-radius: 10px !important; padding: 12px 16px !important; margin: 0 0 8px !important;
    list-style: none !important;
}
body.icp-agenda-page li.ev_td_li::before { content: none !important; }
.icp-ano-hora { flex: 0 0 auto; min-width: 50px; font-family: var(--icp-display); font-weight: 700; font-size: 16px; color: var(--icp-accent); }
.icp-ano-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.icp-ano-info .ev_link_row { color: #fff !important; font-weight: 600; font-size: 15px; text-decoration: none !important; }
.icp-ano-info .ev_link_row:hover { color: var(--icp-accent) !important; }
.icp-ano-meta { font-size: 12.5px; color: rgba(255,255,255,.55); }

/* ===== Artigos da trilha "Caminho" (Aceitar Jesus, Confiar, Conectar, Crescer, Servir) =====
   menus 162-166. Mantém as imagens (float) e melhora a tipografia no tema escuro. */
:is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page { max-width: 900px; margin: 0 auto; }
:is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page [id] { overflow: hidden; } /* contém os floats */
:is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page h2 {
    font-family: var(--icp-display); font-weight: 800; color: var(--icp-title);
    font-size: clamp(1.45rem, 3vw, 1.95rem); line-height: 1.2; margin: 0 0 6px;
}
:is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page h3 {
    font-family: var(--icp-display); font-weight: 700; color: var(--icp-accent);
    font-size: 1.12rem; text-transform: uppercase; letter-spacing: .05em; margin: 36px 0 0;
}
:is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page hr {
    border: 0; border-top: 1px solid var(--icp-line); margin: 12px 0 22px;
}
:is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page p {
    color: var(--icp-text); line-height: 1.8; font-size: 1.02rem; margin: 0 0 18px;
}
:is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page img {
    border-radius: 14px; border: 1px solid var(--icp-line); box-shadow: var(--icp-shadow);
    max-width: 44%; height: auto; margin: 4px 22px 14px 0 !important;
}
/* versículo em destaque (era <span style="font-size:24px">) */
:is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page p span[style*="24px"] {
    display: block; color: var(--icp-accent); font-family: var(--icp-display); font-style: italic;
    font-size: clamp(1.2rem, 2.4vw, 1.5rem) !important; line-height: 1.5; padding: 6px 0 6px 20px;
    border-left: 3px solid var(--icp-accent); margin: 8px 0;
}
@media (max-width: 600px) {
    :is(.itemid-162, .itemid-163, .itemid-164, .itemid-165, .itemid-166) .item-page img {
        float: none !important; display: block; width: 100% !important; max-width: 100%;
        margin: 0 0 16px 0 !important;
    }
}

/* ===== Página "Acampamento Maanaim" ===== */
.icp-maanaim { max-width: 920px; margin: 0 auto; }
.icp-maanaim-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 360px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 90px 28px 40px; margin: 0 0 36px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.18) 0%, rgba(10,11,13,.5) 52%, rgba(10,11,13,.95) 100%),
        url('/images/maanaim/bg_maanaim.jpg');
    background-size: cover; background-position: center;
}
.icp-maanaim-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-maanaim-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2rem, 4.6vw, 3rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-maanaim-hero p { color: rgba(255,255,255,.94); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 600px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
.icp-maanaim-lead { text-align: center; color: var(--icp-text); font-size: 1.08rem; line-height: 1.75; margin: 0 auto 36px; max-width: 720px; }
.icp-maanaim-lead strong { color: var(--icp-title); }
.icp-maanaim-feats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; margin: 0 0 36px; }
.icp-maanaim-feat { background: var(--icp-surface); border: 1px solid var(--icp-line); border-radius: 16px; padding: 24px 18px; text-align: center; transition: transform .25s ease, border-color .25s ease; }
.icp-maanaim-feat:hover { transform: translateY(-4px); border-color: var(--icp-accent); }
.icp-maanaim-ico { width: 38px; height: 38px; color: var(--icp-accent); margin: 0 auto 12px; display: block; }
.icp-maanaim-feat strong { display: block; font-family: var(--icp-display); font-weight: 800; color: var(--icp-title); font-size: 1.08rem; margin-bottom: 4px; }
.icp-maanaim-feat span { color: var(--icp-muted); font-size: .9rem; }
.icp-maanaim-cta { text-align: center; }
@media (max-width: 640px) { .icp-maanaim-hero { min-height: 270px; padding: 60px 18px 30px; } .icp-maanaim-feats { grid-template-columns: 1fr; } }
/* --- Batistério: galeria (3 fotos, do meio em destaque, abre em lightbox) --- */
.icp-maanaim-bloco { margin: 0 0 40px; }
.icp-maanaim-bloco-head { text-align: center; margin: 0 0 22px; }
.icp-maanaim-bloco-head .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 8px; }
.icp-maanaim-bloco-head h2 { font-family: var(--icp-display); font-weight: 800; color: var(--icp-title); font-size: clamp(1.5rem, 3vw, 2rem); margin: 0; }
.icp-maanaim-galeria { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: center; }
.icp-mn-foto {
    display: block; border-radius: 16px; overflow: hidden;
    border: 1px solid var(--icp-line); box-shadow: 0 16px 36px -18px rgba(0, 0, 0, 0.85);
    transition: transform 0.35s ease, box-shadow 0.35s ease; cursor: zoom-in;
}
.icp-mn-foto img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; display: block; transition: transform 0.5s ease; }
.icp-mn-foto:nth-child(2) { transform: scale(1.06); z-index: 2; }
.icp-mn-foto:hover { transform: scale(1.09); box-shadow: 0 26px 50px -18px rgba(255, 144, 0, 0.5); z-index: 3; }
.icp-mn-foto:hover img { transform: scale(1.06); }
@media (max-width: 640px) {
    .icp-maanaim-galeria { grid-template-columns: 1fr 1fr; gap: 10px; }
    .icp-mn-foto:nth-child(2) { transform: none; }
    .icp-mn-foto:hover { transform: scale(1.03); }
}
/* --- Jardim Getsemani: banner imersivo (foto + texto sobreposto) --- */
.icp-maanaim-getsemani {
    position: relative; border-radius: 18px; overflow: hidden;
    min-height: 340px; display: flex; align-items: center;
    background-size: cover; background-position: center; margin: 0 0 40px;
}
.icp-maanaim-getsemani::before {
    content: ''; position: absolute; inset: 0;
    background: linear-gradient(90deg, rgba(8, 9, 11, 0.93) 0%, rgba(8, 9, 11, 0.6) 48%, rgba(8, 9, 11, 0.2) 100%);
}
.icp-maanaim-getsemani-card { position: relative; z-index: 1; max-width: 480px; padding: 40px 38px; }
.icp-maanaim-getsemani-card .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 11px; font-weight: 700; letter-spacing: 3px; text-transform: uppercase; margin-bottom: 8px; }
.icp-maanaim-getsemani-card h2 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(1.6rem, 3.2vw, 2.3rem); margin: 0 0 12px; text-shadow: 0 2px 18px rgba(0, 0, 0, 0.6); }
.icp-maanaim-getsemani-card p { color: rgba(255, 255, 255, 0.92); font-size: 1.05rem; line-height: 1.6; margin: 0; text-shadow: 0 1px 10px rgba(0, 0, 0, 0.6); }
@media (max-width: 640px) {
    .icp-maanaim-getsemani { min-height: 320px; align-items: flex-end; }
    .icp-maanaim-getsemani::before { background: linear-gradient(to top, rgba(8, 9, 11, 0.95) 0%, rgba(8, 9, 11, 0.4) 68%); }
    .icp-maanaim-getsemani-card { padding: 28px 22px; }
}
/* --- Lightbox (galeria em tela cheia) --- */
.icp-lightbox {
    position: fixed; inset: 0; z-index: 9999; display: none;
    align-items: center; justify-content: center;
    background: rgba(5, 6, 8, 0.93); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
}
.icp-lightbox.is-open { display: flex; }
.icp-lb-img { max-width: 90vw; max-height: 88vh; border-radius: 12px; box-shadow: 0 30px 80px -20px rgba(0, 0, 0, 0.9); }
.icp-lb-close, .icp-lb-prev, .icp-lb-next {
    position: absolute; background: rgba(255, 255, 255, 0.12); color: #fff; border: 0; cursor: pointer;
    border-radius: 50%; width: 52px; height: 52px; font-size: 30px; line-height: 50px; padding: 0; transition: background 0.2s ease;
}
.icp-lb-close:hover, .icp-lb-prev:hover, .icp-lb-next:hover { background: var(--icp-accent); color: #1a1206; }
.icp-lb-close { top: 22px; right: 22px; font-size: 26px; }
.icp-lb-prev { left: 22px; top: 50%; transform: translateY(-50%); }
.icp-lb-next { right: 22px; top: 50%; transform: translateY(-50%); }
@media (max-width: 600px) { .icp-lb-prev { left: 10px; } .icp-lb-next { right: 10px; } .icp-lb-close { top: 12px; right: 12px; } }

/* ===== Página "Localização" (cards de local) ===== */
.icp-locais-wrap { max-width: 1100px; margin: 0 auto; }
/* hero com a imagem (estrada/natureza) e degradê que funde no fundo escuro */
.icp-locais-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 340px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 90px 28px 40px; margin: 0 0 44px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.18) 0%, rgba(10,11,13,.5) 52%, rgba(10,11,13,.95) 100%),
        url('/images/localizacao/bg_localizacao.jpg');
    background-size: cover; background-position: center;
}
.icp-locais-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-locais-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2rem, 4.4vw, 3rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-locais-hero p { color: rgba(255,255,255,.94); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 640px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
@media (max-width: 640px) { .icp-locais-hero { min-height: 270px; padding: 60px 18px 30px; } }
.icp-locais-intro { text-align: center; max-width: 720px; margin: 4px auto 40px; }
.icp-locais-intro .icp-eyebrow {
    display: block; color: var(--icp-accent); font-family: var(--icp-body);
    font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px;
}
.icp-locais-intro h1 {
    font-family: var(--icp-display); font-weight: 800; color: var(--icp-title);
    font-size: clamp(2rem, 4.4vw, 3rem); margin: 0 0 14px;
}
.icp-locais-intro p { color: var(--icp-text); line-height: 1.7; margin: 0; }
.icp-locais {
    display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 24px;
}
.icp-local-card {
    display: flex; flex-direction: column; background: var(--icp-surface);
    border: 1px solid var(--icp-line); border-radius: 18px; overflow: hidden;
    transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
}
.icp-local-card:hover { transform: translateY(-5px); border-color: var(--icp-accent); box-shadow: 0 18px 38px -16px rgba(255,144,0,.4); }
.icp-local-foto { aspect-ratio: 16 / 9; overflow: hidden; background: var(--icp-bg-alt); }
.icp-local-foto img { width: 100%; height: 100%; object-fit: cover; display: block; }
.icp-local-foto--vazia { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: var(--icp-muted); }
.icp-local-foto--vazia svg { width: 34px; height: 34px; opacity: .7; }
.icp-local-foto--vazia span { font-size: .85rem; }
.icp-local-corpo { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.icp-local-corpo h3 { font-family: var(--icp-display); font-weight: 800; color: var(--icp-accent); font-size: 1.18rem; margin: 0 0 8px; line-height: 1.2; }
.icp-local-end { color: var(--icp-text); margin: 0 0 4px; line-height: 1.5; }
.icp-local-ref { color: var(--icp-muted); font-size: .85rem; margin: 0 0 16px; }
.icp-local-btn {
    margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px;
    background: var(--icp-accent); color: #1a1205; font-family: var(--icp-body); font-weight: 700;
    padding: 10px 18px; border-radius: 10px; text-decoration: none; transition: filter .2s ease, transform .2s ease;
}
.icp-local-btn svg { width: 16px; height: 16px; }
.icp-local-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.icp-local-end + .icp-local-ref { margin-top: 0; }
.icp-local-corpo .icp-local-end:last-of-type { margin-bottom: 16px; }

/* ===== Página "Horários de Culto" (cards por dia) ===== */
.icp-cultos-wrap { max-width: 1100px; margin: 0 auto; }
/* hero com a imagem (relógio) e degradê que funde no fundo escuro */
.icp-cultos-hero {
    position: relative; border-radius: 22px; overflow: hidden;
    min-height: 340px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 90px 28px 40px; margin: 0 0 44px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.25) 0%, rgba(10,11,13,.45) 50%, rgba(10,11,13,.95) 100%),
        url('/images/cultos/bg_horario.jpg');
    background-size: cover; background-position: center;
}
.icp-cultos-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.7); }
.icp-cultos-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2.1rem, 5vw, 3.2rem); margin: 0 0 14px; text-shadow: 0 2px 22px rgba(0,0,0,.6); }
.icp-cultos-hero p { color: rgba(255,255,255,.94); font-size: 1.05rem; line-height: 1.6; margin: 0; max-width: 640px; text-shadow: 0 2px 16px rgba(0,0,0,.7); }
@media (max-width: 640px) { .icp-cultos-hero { min-height: 270px; padding: 60px 18px 30px; } }
.icp-cultos-intro { text-align: center; max-width: 720px; margin: 4px auto 40px; }
.icp-cultos-intro .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; }
.icp-cultos-intro h1 { font-family: var(--icp-display); font-weight: 800; color: var(--icp-title); font-size: clamp(2rem, 4.4vw, 3rem); margin: 0 0 14px; }
.icp-cultos-intro p { color: var(--icp-text); line-height: 1.7; margin: 0; }
.icp-cultos { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; align-items: start; max-width: 820px; margin: 0 auto; }
.icp-culto-col { display: flex; flex-direction: column; gap: 22px; }
@media (max-width: 640px) { .icp-cultos { grid-template-columns: 1fr; max-width: 420px; } }
.icp-culto-dia { background: var(--icp-surface); border: 1px solid var(--icp-line); border-radius: 18px; padding: 22px 24px 8px; transition: border-color .25s ease, box-shadow .25s ease; }
.icp-culto-dia:hover { border-color: var(--icp-accent); box-shadow: 0 18px 38px -18px rgba(255,144,0,.35); }
.icp-culto-dia > h3 { font-family: var(--icp-display); font-weight: 800; color: var(--icp-title); font-size: 1.3rem; margin: 0 0 6px; padding-bottom: 12px; position: relative; }
.icp-culto-dia > h3::after { content: ""; position: absolute; left: 0; bottom: 0; width: 42px; height: 3px; border-radius: 3px; background: var(--icp-accent); }
.icp-culto-item { display: flex; gap: 14px; padding: 15px 0; border-top: 1px solid var(--icp-line); align-items: flex-start; }
.icp-culto-hora { flex: none; min-width: 60px; text-align: center; background: var(--icp-accent-soft); color: var(--icp-accent); font-family: var(--icp-display); font-weight: 800; font-size: .98rem; padding: 7px 8px; border-radius: 9px; }
.icp-culto-info { display: flex; flex-direction: column; gap: 3px; padding-top: 2px; }
.icp-culto-nome { color: var(--icp-title); font-weight: 700; line-height: 1.3; }
.icp-culto-local { color: var(--icp-muted); font-size: .82rem; }
.icp-culto-live { display: inline-flex; align-items: center; gap: 5px; margin-left: 8px; vertical-align: middle; font-family: var(--icp-body); font-size: .68rem; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: #ff5a4d; }
.icp-culto-live::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #ff3b30; box-shadow: 0 0 0 0 rgba(255,59,48,.6); animation: icp-live 1.8s infinite; }
.icp-cultos-acoes { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 34px; }
.icp-cultos-nota { text-align: center; color: var(--icp-muted); max-width: 720px; margin: 26px auto 0; font-size: .92rem; line-height: 1.6; }
.icp-cultos-nota strong { color: var(--icp-text); }
.icp-cultos-yt { text-align: center; margin-top: 28px; }
.icp-yt-btn {
    display: inline-flex; align-items: center; gap: 14px; background: var(--icp-surface);
    border: 1px solid var(--icp-line); border-radius: 14px; padding: 13px 24px; text-decoration: none;
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.icp-yt-btn:hover { border-color: #ff0000; transform: translateY(-2px); box-shadow: 0 16px 32px -16px rgba(255,0,0,.55); }
.icp-yt-logo { width: 40px; height: 28px; flex: none; }
.icp-yt-btn span { display: flex; flex-direction: column; text-align: left; }
.icp-yt-btn strong { color: var(--icp-title); font-family: var(--icp-display); font-weight: 700; font-size: 1.02rem; line-height: 1.2; }
.icp-yt-btn small { color: var(--icp-muted); font-size: .82rem; }

/* ===== Página "Ofertas e Dízimos" ===== */
.icp-ofertas { max-width: 1000px; margin: 0 auto; }
/* hero com a imagem (mãos/trigo) e degradê que funde no fundo escuro */
.icp-ofertas-hero {
    position: relative; border-radius: 22px; overflow: hidden; isolation: isolate;
    min-height: 360px; display: flex; flex-direction: column; align-items: center; justify-content: flex-end;
    text-align: center; padding: 90px 28px 40px; margin: 0 0 26px;
    background-image:
        linear-gradient(to bottom, rgba(10,11,13,.15) 0%, rgba(10,11,13,.5) 52%, rgba(10,11,13,.95) 100%),
        url('/images/ofertas/bg_dizimos.jpg');
    background-size: cover; background-position: center 38%;
}
.icp-ofertas-hero .icp-eyebrow { display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 10px; text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.icp-ofertas-hero h1 { font-family: var(--icp-display); font-weight: 800; color: #fff; font-size: clamp(2.1rem, 5vw, 3.2rem); margin: 0 0 16px; text-shadow: 0 2px 22px rgba(0,0,0,.55); }
.icp-ofertas-verso { font-family: var(--icp-display); font-style: italic; color: rgba(255,255,255,.94); font-size: 1.12rem; line-height: 1.6; margin: 0 auto; max-width: 640px; text-shadow: 0 2px 16px rgba(0,0,0,.6); }
.icp-ofertas-verso span { display: block; font-style: normal; font-size: .82rem; letter-spacing: 2px; color: var(--icp-accent); margin-top: 8px; font-family: var(--icp-body); font-weight: 700; text-shadow: 0 1px 8px rgba(0,0,0,.6); }
.icp-ofertas-lead { text-align: center; color: var(--icp-text); line-height: 1.7; margin: 0 auto 44px; max-width: 680px; }
@media (max-width: 640px) { .icp-ofertas-hero { min-height: 280px; padding: 64px 20px 30px; } }
.icp-ofertas-sec { font-family: var(--icp-display); font-weight: 800; color: var(--icp-title); font-size: clamp(1.4rem, 2.6vw, 2rem); text-align: center; margin: 12px 0 6px; }
.icp-ofertas-sec::before { content: attr(data-eyebrow); display: block; color: var(--icp-accent); font-family: var(--icp-body); font-size: 12px; font-weight: 700; letter-spacing: 3px; margin-bottom: 8px; }
.icp-ofertas-sub { text-align: center; color: var(--icp-muted); margin: 0 0 24px; font-size: .92rem; }
.icp-ofertas-sub strong { color: var(--icp-text); }
/* divisor entre o PIX e as contas bancárias */
.icp-ofertas-div { display: flex; align-items: center; gap: 18px; max-width: 520px; margin: 60px auto; color: var(--icp-muted); }
.icp-ofertas-div::before, .icp-ofertas-div::after { content: ""; flex: 1; height: 1px; background: var(--icp-line); }
.icp-ofertas-div span { font-family: var(--icp-body); font-size: .8rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; }

/* chaves PIX */
.icp-pix { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; margin: 0 0 12px; }
.icp-pix-card { background: var(--icp-surface); border: 1px solid var(--icp-line); border-radius: 18px; padding: 22px 22px 20px; display: flex; flex-direction: column; }
.icp-pix-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.icp-pix-tipo { font-family: var(--icp-display); font-weight: 800; color: var(--icp-title); font-size: 1.05rem; text-transform: uppercase; letter-spacing: .5px; }
/* chip branco com a logo do banco (PIX e contas) */
.icp-banco-logo { width: 46px; height: 46px; flex: none; border-radius: 11px; background: #fff; padding: 6px; box-sizing: border-box; object-fit: contain; display: block; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
.icp-pix-chave { font-family: ui-monospace, "Cascadia Code", Consolas, monospace; color: var(--icp-title); font-size: 1.05rem; font-weight: 600; word-break: break-all; background: var(--icp-bg-alt); border: 1px dashed var(--icp-line); border-radius: 10px; padding: 12px 14px; margin-bottom: 16px; }
.icp-pix-copiar { margin-top: auto; align-self: flex-start; display: inline-flex; align-items: center; gap: 8px; cursor: pointer; background: var(--icp-accent); color: #1a1205; font-family: var(--icp-body); font-weight: 700; font-size: .92rem; border: 0; padding: 10px 18px; border-radius: 10px; transition: filter .2s ease, transform .2s ease, background .2s ease; }
.icp-pix-copiar svg { width: 16px; height: 16px; }
.icp-pix-copiar:hover { filter: brightness(1.07); transform: translateY(-1px); }
.icp-pix-copiar.copiado { background: #2ecc71; color: #06210f; }

/* contas bancárias */
.icp-contas { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; margin: 0 0 24px; }
.icp-conta-card { background: var(--icp-surface); border: 1px solid var(--icp-line); border-radius: 16px; padding: 20px 22px; }
.icp-conta-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--icp-line); }
.icp-conta-banco { font-family: var(--icp-display); font-weight: 800; font-size: 1.02rem; color: var(--icp-title); line-height: 1.2; }
.icp-conta-card ul { list-style: none; margin: 0; padding: 0; }
.icp-conta-card li { color: var(--icp-text); line-height: 1.9; font-size: .95rem; }
.icp-conta-card strong { color: var(--icp-title); }
.icp-ofertas-fim { text-align: center; color: var(--icp-accent); font-family: var(--icp-display); font-weight: 700; font-size: 1.1rem; margin: 8px 0 0; }

/* grade de logos das redes */
/* grade (antes do JS montar o carrossel) */
.moduletableredes_logos {
    display: flex;
    flex-flow: row wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 20px;
}
.moduletableredes_logos img {
    object-fit: contain;
    margin: 14px;
    opacity: 0.92;
}
/* carrossel infinito em 2 linhas (uma p/ esquerda, outra p/ direita),
   montado pelo user.js — logos alternados, sem repetir entre as linhas */
.moduletableredes_logos.icp-marquee {
    display: block;
    max-width: 100%;
    margin: 0;
    padding: 0;
}
.icp-marquee-row {
    overflow: hidden;
    /* esmaece as bordas para a entrada/saída dos logos */
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.icp-marquee-row + .icp-marquee-row { margin-top: 26px; }
.icp-marquee-row .icp-marquee-track {
    display: flex;
    align-items: center;
    width: max-content;
    animation: icp-redes-scroll 120s linear infinite;
    /* roda na GPU → movimento fluido, sem jank */
    will-change: transform;
    backface-visibility: hidden;
    -webkit-backface-visibility: hidden;
    transform: translateZ(0);
}
.icp-marquee-row.icp-marquee-rtl .icp-marquee-track {
    animation-direction: reverse; /* esta linha desliza para a direita */
}
.icp-marquee-row:hover .icp-marquee-track {
    animation-play-state: paused;
}
@keyframes icp-redes-scroll {
    from { transform: translate3d(0, 0, 0); }
    to   { transform: translate3d(-50%, 0, 0); }
}
.icp-marquee-track a {
    flex: none;
    display: inline-flex;
    align-items: center;
}
.icp-marquee-track img {
    flex: none;
    height: 93px; /* 62px + 50% */
    width: auto;
    object-fit: contain;
    margin: 0 36px;
    opacity: 0.82;
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.icp-marquee-track img:hover {
    opacity: 1;
    transform: scale(1.08);
}
@media (prefers-reduced-motion: reduce) {
    .icp-marquee-track { animation: none; }
}

/* mapas em cards lado a lado */
.moduletablemapa {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 28px;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}
.moduletablemapa .maps {
    display: contents;
}
.moduletablemapa iframe {
    display: block;
    width: 100%;
    height: 300px;
    border-radius: var(--icp-radius);
    border: 1px solid #d8d8d8; /* invertida pelo filter, vira sutil escura */
    filter: invert(1) hue-rotate(180deg);
}
.moduletablemapa br {
    display: none;
}

/* icptv */
.moduletablerodape1_header_icptv {
    margin: 80px auto 0;
    text-align: center;
    max-width: 760px;
    padding: 40px 20px;
    background: var(--icp-surface);
    border: 1px solid var(--icp-line);
    border-radius: var(--icp-radius);
    box-shadow: var(--icp-shadow);
}
.moduletablerodape1_header_icptv img {
    max-width: 220px;
    transition: transform 0.25s ease;
}
.moduletablerodape1_header_icptv a:hover img {
    transform: scale(1.05);
}
.moduletablerodape1_header_icptv h2 {
    font-family: var(--icp-body);
    font-size: 15px;
    font-weight: 400;
    color: rgba(255, 255, 255, 0.55);
    margin: 14px 0 0;
}

/* ---------- Agenda (mod_jevents_cal) na home — vence o CSS claro do JEvents ---------- */
.moduletablebloco4_header1#agenda h1::before { content: 'PROGRAME-SE'; }
.container-bottom-a table.flatcal_main_t {
    background: var(--icp-surface) !important;
    border: 1px solid var(--icp-line) !important;
    border-radius: var(--icp-radius);
    box-shadow: var(--icp-shadow);
    color: rgba(255, 255, 255, 0.8) !important;
    border-collapse: separate;
    border-spacing: 3px;
    width: auto !important;
    min-width: 360px;
    margin: 8px auto 0;
    padding: 12px 16px 16px;
    font-family: var(--icp-body);
}
.container-bottom-a .flatcal_main_t td,
.container-bottom-a .flatcal_main_t th { background: transparent !important; border: 0 !important; }
.container-bottom-a .flatcal_navbar td { padding: 4px 0 12px !important; }
.container-bottom-a .flatcal_month_label,
.container-bottom-a .flatcal_month_label a {
    font-family: var(--icp-display) !important;
    font-weight: 700 !important;
    font-size: 18px !important;
    color: #ffffff !important;
    text-decoration: none !important;
}
.container-bottom-a .link_prev a,
.container-bottom-a .link_next a { color: var(--icp-accent) !important; font-size: 18px !important; text-decoration: none !important; }
.container-bottom-a .flatcal_weekdays td {
    color: var(--icp-accent) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase;
    padding-bottom: 8px !important;
}
.container-bottom-a .flatcal_daycell,
.container-bottom-a .flatcal_sundaycell { color: rgba(255, 255, 255, 0.5) !important; padding: 6px !important; text-align: center; }
.container-bottom-a .flatcal_othermonth { color: rgba(255, 255, 255, 0.18) !important; }
.container-bottom-a .flatcal_todaycell { background: rgba(255, 144, 0, 0.16) !important; border-radius: 7px; }
.container-bottom-a .flatcal_daylink,
.container-bottom-a .flatcal_sundaylink { color: #ffffff !important; font-weight: 700 !important; text-decoration: none !important; }
/* dia com evento: bolinha laranja */
.container-bottom-a .flatcal_busylink {
    display: inline-block;
    min-width: 26px;
    height: 26px;
    line-height: 26px;
    background: var(--icp-accent) !important;
    color: #000 !important;
    border-radius: 50%;
    font-weight: 700;
    text-decoration: none !important;
}
.container-bottom-a .full_cal_link a,
.container-bottom-a .mod_events_link a { color: var(--icp-accent) !important; text-decoration: none !important; }
.container-bottom-a .full_cal_link { padding-top: 10px; text-align: center; display: block; }

/* ---------- Estudos bíblicos (mod_articles_news, sfx .estudos) na home ---------- */
.moduletablebloco4_header1#estudos h1::before { content: 'A PALAVRA'; }
.container-bottom-a .card.estudos {
    max-width: 880px;
    margin: 8px auto 0 !important;
    padding: 40px !important;
    border-radius: var(--icp-radius) !important;
    border: 1px solid var(--icp-line) !important;
    box-shadow: var(--icp-shadow);
    background-image: linear-gradient(rgba(12, 13, 15, 0.78), rgba(12, 13, 15, 0.92)), url('/images/bg_biblia.jpg') !important;
    background-size: cover !important;
    background-position: center !important;
}
.estudos .mod-articlesnews__item { display: block; }
.estudos .mod-articlesnews img {
    float: left;
    width: 160px;
    height: 160px;
    object-fit: cover;
    border-radius: 12px;
    margin: 0 26px 10px 0;
    border: 1px solid var(--icp-line);
}
.estudos h3, .estudos .newsflash-title {
    font-family: var(--icp-display);
    font-size: clamp(1.4rem, 2.4vw, 2rem);
    font-weight: 800;
    margin: 0 0 12px;
}
.estudos h3 a, .estudos .newsflash-title a { color: #ffffff; text-decoration: none; }
.estudos h3 a:hover { color: var(--icp-accent); }
.estudos .estudos_autor {
    color: var(--icp-accent);
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin: -6px 0 14px;
}
.estudos p { color: rgba(255, 255, 255, 0.78); font-size: 16px; line-height: 1.7; }
.estudos .readmore a, .estudos a.readmore {
    display: inline-block;
    margin-top: 14px;
    padding: 11px 26px;
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 999px;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.estudos .readmore a:hover, .estudos a.readmore:hover { background: var(--icp-accent); border-color: var(--icp-accent); color: #000; }

/* =====================================================================
   8. PÁGINAS INTERNAS
   ===================================================================== */
.container-component {
    padding-top: 40px;
    padding-bottom: 72px;
}
.page-header h1,
.page-header h2 {
    font-family: var(--icp-display);
    font-weight: 800;
    color: var(--icp-accent);
}
.item-page, .blog-item, .com-content-category-blog__item,
.com-content-category__table {
    color: var(--icp-text);
}
.blog-item, .com-content-category-blog__item {
    background: var(--icp-surface);
    border: 1px solid var(--icp-line);
    border-radius: var(--icp-radius);
    padding: 28px;
    margin-bottom: 24px;
}
/* o tema zera o padding desses itens (seletor mais específico) → forçar o respiro */
.com-content-category-blog__item.blog-item { padding: 28px 30px !important; }

/* ===== Listagem em LISTA de categoria (com_content) — ex.: Estudos para Célula =====
   tabela Bootstrap (table-striped/bordered/hover) deixada elegante no tema escuro:
   linhas viram "cards", cabeçalho em destaque, badge de acessos no tom do tema. */
.com-content-category__table {
    --bs-table-bg: transparent; --bs-table-striped-bg: transparent; --bs-table-hover-bg: transparent;
    --bs-table-border-color: transparent; --bs-table-color: var(--icp-text);
    --bs-table-striped-color: var(--icp-text); --bs-table-hover-color: var(--icp-text);
    width: 100%; border: 0; background: transparent;
    border-collapse: separate; border-spacing: 0 8px; margin-top: 6px;
}
.com-content-category__table thead th {
    background: transparent; border: 0; text-align: left;
    color: var(--icp-accent); font-family: var(--icp-display);
    font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em;
    padding: 0 18px 10px;
}
.com-content-category__table tbody > tr > * {
    background: var(--icp-surface); border: 0;
    border-top: 1px solid var(--icp-line); border-bottom: 1px solid var(--icp-line);
    padding: 14px 18px; vertical-align: middle; transition: background .18s ease, border-color .18s ease;
}
.com-content-category__table tbody > tr > *:first-child {
    border-left: 1px solid var(--icp-line); border-radius: 12px 0 0 12px;
}
.com-content-category__table tbody > tr > *:last-child {
    border-right: 1px solid var(--icp-line); border-radius: 0 12px 12px 0;
}
.com-content-category__table tbody > tr:hover > * {
    background: var(--icp-accent-soft); border-color: rgba(255, 144, 0, .32);
}
.com-content-category__table th.list-title { font-weight: 600; }
.com-content-category__table th.list-title a {
    color: var(--icp-title); font-family: var(--icp-display); font-weight: 600;
    font-size: 1rem; text-decoration: none; transition: color .18s ease;
}
.com-content-category__table th.list-title a:hover { color: var(--icp-accent); }
.com-content-category__table .list-date { color: var(--icp-muted); white-space: nowrap; font-size: .9rem; }
.com-content-category__table .list-author { color: var(--icp-text); }
.com-content-category__table .list-hits .badge {
    background: var(--icp-accent-soft) !important; color: var(--icp-accent) !important;
    border: 1px solid rgba(255, 144, 0, .3); font-weight: 600;
    padding: .4em .75em; border-radius: 999px;
}
/* seletor "Mostrar #" (form-select) estava branco no tema escuro */
.com-content-category__pagination .form-select {
    background-color: var(--icp-surface); color: var(--icp-text);
    border: 1px solid var(--icp-line); border-radius: 10px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ffffff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3E%3C/svg%3E");
}
/* paginação não pode estourar a tela: quebra em linhas (não força tudo numa linha só) */
.pagination { flex-wrap: wrap; gap: 6px; max-width: 100%; }
.pagination .page-item { margin: 0; }
@media (max-width: 768px) {
    .pagination { justify-content: center; width: 100%; }
}

/* ===== Estudos para Célula (menu 141) — BLOG: 1 destaque + LISTA de 20 títulos (paginada) =====
   1 leading (destaque com VISUALIZAR, card .com-content-category-blog__item já estilizado) + 20 "intro"
   COMPACTADOS via CSS como lista de títulos (esconde Detalhes/autor/data/VISUALIZAR nos intros), em 2
   colunas. Paginação nativa é LIMPA (avanço 21) — mantida visível. */
.itemid-141 .com-content-category-blog__items:not(.items-leading) {
    display: block !important; columns: 2; column-gap: 24px; margin-top: 14px;
}
.itemid-141 .com-content-category-blog__items:not(.items-leading) .item-content {
    background: transparent !important; border: 0 !important; padding: 0 !important;
    margin: 0 !important; box-shadow: none !important;
}
/* cada item = botão da lista (título + data), área toda clicável no hover */
.itemid-141 .com-content-category-blog__items:not(.items-leading) .com-content-category-blog__item {
    background: transparent !important; box-shadow: none !important;
    border: 1px solid transparent !important; border-radius: 8px;
    padding: 7px 12px !important; margin: 0 0 4px !important; break-inside: avoid;
    transition: background .15s ease, border-color .15s ease;
}
.itemid-141 .com-content-category-blog__items:not(.items-leading) .com-content-category-blog__item:hover {
    background: var(--icp-accent-soft) !important; border-color: rgba(255, 144, 0, .3) !important;
}
/* mostra só TÍTULO + DATA (esconde "Detalhes", autor e o link VISUALIZAR) */
.itemid-141 .com-content-category-blog__items:not(.items-leading) .item-content > *:not(.page-header):not(.article-info) { display: none; }
.itemid-141 .com-content-category-blog__items:not(.items-leading) .page-header { margin: 0; padding: 0; border: 0; }
.itemid-141 .com-content-category-blog__items:not(.items-leading) .page-header h2 { margin: 0; }
.itemid-141 .com-content-category-blog__items:not(.items-leading) .page-header h2 a {
    display: block; margin: 0; color: var(--icp-text);
    font-family: var(--icp-display); font-weight: 500; font-size: .92rem; line-height: 1.25;
    text-decoration: none; text-transform: none;
}
.itemid-141 .com-content-category-blog__items:not(.items-leading) .com-content-category-blog__item:hover .page-header h2 a { color: var(--icp-accent); }
.itemid-141 .com-content-category-blog__items:not(.items-leading) .article-info { margin: 2px 0 0; padding: 0; font-size: .76rem; color: var(--icp-muted); }
.itemid-141 .com-content-category-blog__items:not(.items-leading) .article-info .article-info-term,
.itemid-141 .com-content-category-blog__items:not(.items-leading) .article-info .createdby { display: none; }
.itemid-141 .com-content-category-blog__items:not(.items-leading) .article-info .published { margin: 0; }
.itemid-141 .com-content-category-blog__items:not(.items-leading) .article-info .published .icon-calendar { display: none; }
@media (max-width: 560px) { .itemid-141 .com-content-category-blog__items:not(.items-leading) { columns: 1; } }
@media (max-width: 560px) {
    .com-content-category__table thead th { padding: 0 12px 8px; font-size: .66rem; }
    .com-content-category__table tbody > tr > * { padding: 11px 12px; }
    .com-content-category__table th.list-title a { font-size: .9rem; }
    /* no celular mostra só Título + Data (autor é sempre o mesmo; acessos cabe melhor escondido) */
    .com-content-category__table thead th:nth-child(3),
    .com-content-category__table thead th:nth-child(4),
    .com-content-category__table tbody > tr > *:nth-child(3),
    .com-content-category__table tbody > tr > *:nth-child(4) { display: none; }
    .com-content-category__table thead th:nth-child(2) { text-align: right; }
    .com-content-category__table tbody > tr > *:nth-child(2) {
        border-right: 1px solid var(--icp-line); border-radius: 0 12px 12px 0;
        text-align: right;
    }
}
.page-header h2 a, .item-title a {
    color: var(--icp-title);
    text-decoration: none;
    transition: color 0.2s ease;
}
.page-header h2 a:hover, .item-title a:hover {
    color: var(--icp-accent);
}
.article-info.muted, .article-info-term, dd.published, dd.create {
    color: rgba(255, 255, 255, 0.4);
    font-size: 13px;
}
.item-page img, .blog-item img {
    max-width: 100%;
    height: auto;
    border-radius: 12px;
}
blockquote {
    border-left: 3px solid var(--icp-accent);
    padding-left: 18px;
    color: rgba(255, 255, 255, 0.6);
}
.card {
    background-color: var(--icp-surface);
    border: 1px solid var(--icp-line);
    border-radius: var(--icp-radius);
    color: var(--icp-text);
}
.card a {
    color: #ffc173;
}
.card a:hover {
    color: var(--icp-accent);
}
.card .card-header {
    background-color: rgba(255, 255, 255, 0.03);
    color: var(--icp-accent);
    font-family: var(--icp-body);
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-size: 13px;
    border-bottom: 1px solid var(--icp-line);
}
.com-content-category__table, .table {
    color: var(--icp-text);
}
.com-content-category__table a, .table a {
    text-decoration: none;
}
.com-content-category__table a:hover, .table a:hover {
    text-decoration: underline;
}
.container-component select,
.container-component .form-select,
.container-component .form-control {
    background-color: var(--icp-surface);
    border: 1px solid var(--icp-line);
    color: #ffffff;
    border-radius: 10px;
}
.table > :not(caption) > * > * {
    background-color: transparent;
    color: inherit;
    border-bottom-color: var(--icp-line);
}
.pagination .page-link {
    background-color: var(--icp-surface);
    border-color: var(--icp-line);
    color: rgba(255, 255, 255, 0.8);
    margin: 0 3px;
    border-radius: 10px !important;
    transition: background-color 0.2s ease, color 0.2s ease;
}
.pagination .page-link:hover {
    background-color: var(--icp-accent-soft);
    color: var(--icp-accent);
}
.pagination .page-item.active .page-link,
.pagination .active > .page-link,
.pagination .page-link.active,
.pagination .page-link[aria-current] {
    background-color: var(--icp-accent) !important;
    border-color: var(--icp-accent) !important;
    color: #17110a !important;   /* texto escuro sobre o laranja (antes ficava laranja no laranja) */
    font-weight: 700;
}
.container-breadcrumbs {
    background: transparent;
}
.mod-breadcrumbs {
    background: var(--icp-surface);
    border: 1px solid var(--icp-line);
    border-radius: 999px;
    padding: 8px 20px !important;
    font-size: 13px;
}
.mod-breadcrumbs a {
    color: rgba(255, 255, 255, 0.65);
}
.mod-breadcrumbs a:hover {
    color: var(--icp-accent);
}
.btn-secondary {
    background-color: var(--icp-surface);
    border-color: var(--icp-line);
}
hr {
    border-color: var(--icp-line);
}

/* formulários (contato, busca, login) */
.form-control, .form-select {
    background-color: var(--icp-bg-alt);
    border-color: var(--icp-line);
    color: #fff;
    border-radius: 10px;
}
.form-control:focus, .form-select:focus {
    background-color: var(--icp-bg-alt);
    border-color: var(--icp-accent);
    color: #fff;
    box-shadow: 0 0 0 3px var(--icp-accent-soft);
}
/* Select (ex.: "Mostrar #" da paginação): o Cassiopeia usa images/select-bg.svg (fundo CLARO,
   background-size 1856px) como fundo → no tema escuro o select ficava branco e a letra (branca) sumia.
   Aqui troca-se por fundo escuro + uma seta laranja própria; e as <option> e o popup nativo em dark. */
select, .form-select {
    color-scheme: dark;
    background-color: var(--icp-bg-alt) !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='none' stroke='%23ff9000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round' d='M4 6l4 4 4-4'/%3E%3C/svg%3E") !important;
    background-size: 15px !important;
    background-position: right 12px center !important;
    background-repeat: no-repeat !important;
    padding-right: 34px !important;
    color: #fff !important;
}
.container-component { color-scheme: dark; }
select option,
.form-select option,
.form-control option {
    background-color: #17191c;
    color: #fff;
}
/* página de login (/especial = item "Especial", com_users): links de recuperação no tema escuro */
.com-users-login__options.list-group { border-radius: 12px; overflow: hidden; max-width: 420px; }
.com-users-login__options .list-group-item {
    background-color: var(--icp-surface) !important;
    border-color: var(--icp-line) !important;
    color: var(--icp-accent) !important;
}
.com-users-login__options .list-group-item:hover { background-color: var(--icp-bg-alt) !important; }
.com-users-login__options .list-group-item a { color: var(--icp-accent) !important; text-decoration: none; }

/* === Form "Criar Artigo" no frontend (envio de estudo da Área do Líder) — tema escuro === */
joomla-tab, joomla-tab-element { background-color: var(--icp-surface) !important; display: block; border-radius: 10px; }
joomla-tab > div, joomla-tab-element > div, joomla-tab .tab-content, joomla-tab .tab-pane, joomla-tab-element .tab-content, joomla-tab-element .tab-pane { background-color: transparent !important; }
joomla-tab .nav-tabs, joomla-tab-element .nav-tabs { border-color: var(--icp-line) !important; background: transparent !important; }
joomla-tab .nav-tabs .nav-link, joomla-tab-element .nav-tabs .nav-link { color: rgba(255,255,255,.6) !important; background: transparent !important; border-color: transparent !important; }
joomla-tab .nav-tabs .nav-link.active, joomla-tab-element .nav-tabs .nav-link.active { color: var(--icp-accent) !important; background: var(--icp-bg-alt) !important; border-color: var(--icp-line) var(--icp-line) var(--icp-bg-alt) !important; }
/* abas hidratadas via JS = <div role="tablist"><button role="tab"> (texto escuro no escuro) */
joomla-tab [role="tablist"], .edit [role="tablist"] { border-bottom: 1px solid var(--icp-line) !important; gap: 4px; }
joomla-tab [role="tablist"] button[role="tab"], .edit [role="tablist"] button[role="tab"] {
    color: rgba(255,255,255,.6) !important; background: transparent !important;
    border: 1px solid transparent !important; border-bottom: 0 !important;
}
joomla-tab [role="tablist"] button[role="tab"]:hover, .edit [role="tablist"] button[role="tab"]:hover { color: rgba(255,255,255,.9) !important; }
joomla-tab [role="tablist"] button[aria-selected="true"], .edit [role="tablist"] button[aria-selected="true"] {
    color: var(--icp-accent) !important; background: var(--icp-bg-alt) !important;
    border-color: var(--icp-line) var(--icp-line) var(--icp-bg-alt) !important;
}
.edit.item-page legend, fieldset.options-form, fieldset.options-form legend, .edit fieldset, .edit legend { background-color: transparent !important; color: var(--icp-text) !important; border-color: var(--icp-line) !important; }
.edit.item-page label, .com-content-form label, .edit fieldset label, .controls label { color: rgba(255,255,255,.78) !important; }
.edit .form-text, .edit small { color: rgba(255,255,255,.5) !important; }
/* Choices.js (select de categoria/tags) */
.choices__inner { background-color: var(--icp-bg-alt) !important; border-color: var(--icp-line) !important; }
.choices__list--dropdown, .choices__list--dropdown .choices__list { background-color: var(--icp-surface) !important; border-color: var(--icp-line) !important; }
.choices__list--dropdown .choices__item { color: var(--icp-text) !important; }
.choices__list--dropdown .choices__item--selectable.is-highlighted { background-color: var(--icp-bg-alt) !important; }
.choices__item { color: var(--icp-text) !important; }
.choices__input { background-color: transparent !important; color: var(--icp-text) !important; }
/* date picker (publish_up/down) */
.calendar-container { background-color: var(--icp-surface) !important; border-color: var(--icp-line) !important; color: var(--icp-text) !important; }
.calendar-container .table, .calendar-container td, .calendar-container th, .calendar-container .day { background-color: transparent !important; color: var(--icp-text) !important; border-color: var(--icp-line) !important; }
.calendar-container .day:hover { background-color: var(--icp-bg-alt) !important; }

/* === Menu "Área do Líder" (przildemar logado) como BARRA HORIZONTAL de botões no topo === */
.icp-area-lider { background: var(--icp-surface) !important; border: 1px solid var(--icp-line) !important; border-radius: 12px !important; padding: 10px 14px !important; margin: 6px 0 20px !important; }
.icp-area-lider ul, .icp-area-lider .mod-menu { list-style: none !important; margin: 0 !important; padding: 0 !important; display: flex !important; flex-direction: row !important; flex-wrap: wrap !important; justify-content: flex-start !important; gap: 10px !important; align-items: center !important; }
.icp-area-lider li { margin: 0 !important; }
.icp-area-lider li a {
    display: inline-flex; align-items: center; gap: 7px;
    padding: 9px 16px; border-radius: 8px;
    background: var(--icp-bg-alt); border: 1px solid var(--icp-line);
    color: rgba(255,255,255,.85) !important; font-weight: 600; font-size: 14px;
    text-decoration: none !important; transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.icp-area-lider li a:hover { border-color: var(--icp-accent); color: var(--icp-accent) !important; }
.icp-area-lider li.current a, .icp-area-lider li.active a { background: var(--icp-accent); color: #17110a !important; border-color: var(--icp-accent); }
/* os 2 "enviar" (ações principais) com leve destaque */
.icp-area-lider li:nth-child(1) a, .icp-area-lider li:nth-child(2) a { border-color: rgba(255,144,0,.45); }
.btn-primary {
    background-color: var(--icp-accent);
    border-color: var(--icp-accent);
    color: #000;
    border-radius: 999px;
    font-weight: 700;
}
.btn-primary:hover {
    background-color: #ffb04d;
    border-color: #ffb04d;
    color: #000;
}

/* =====================================================================
   9. FOOTER em colunas
   ===================================================================== */
.container-footer,
.container-footer footer,
.footer {
    margin: 0;
    padding: 0;
    background: var(--icp-bg-alt) !important;
}
.container-footer .grid-child {
    display: block;
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 0;
}
.icp-footer {
    color: var(--icp-text);
    text-align: left;
    border-top: 1px solid var(--icp-line);
    background-image: url('/images/pattern.png');
    background-blend-mode: overlay;
}
.icp-footer .icp-footer-inner {
    display: grid;
    grid-template-columns: 1.5fr 1fr 1.35fr 1fr;
    gap: 44px;
    max-width: 1220px;
    margin: 0 auto;
    padding: 66px 24px 44px;
}
.icp-footer .icp-ft-col { min-width: 0; }
.icp-footer .icp-ft-tit {
    font-family: var(--icp-body);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--icp-accent);
    margin: 6px 0 20px;
    padding-bottom: 12px;
    position: relative;
}
.icp-footer .icp-ft-tit::after {
    content: '';
    position: absolute;
    left: 0; bottom: 0;
    width: 30px; height: 2px;
    background: var(--icp-accent);
    border-radius: 2px;
}
/* coluna 1 — marca */
.icp-footer img.icp-footer-logo { width: 196px; max-width: 100%; display: block; margin: 0 0 20px; }
.icp-footer .icp-ft-sobre {
    font-family: var(--icp-body);
    font-size: 14px; line-height: 1.65;
    color: rgba(255,255,255,.58);
    margin: 0 0 22px; max-width: 290px;
}
.icp-footer .icp-ft-redes { display: flex; gap: 12px; }
.icp-footer .icp-ft-redes a {
    width: 42px; height: 42px;
    display: inline-flex; align-items: center; justify-content: center;
    border-radius: 50%;
    background: rgba(255,255,255,.05);
    border: 1px solid var(--icp-line);
    color: #fff;
    transition: background .25s ease, color .25s ease, transform .25s ease, border-color .25s ease;
}
.icp-footer .icp-ft-redes a:hover {
    background: var(--icp-accent); border-color: var(--icp-accent);
    color: #17110a; transform: translateY(-3px);
}
.icp-footer .icp-ft-redes svg { width: 19px; height: 19px; fill: currentColor; }
/* coluna 2 — navegação */
.icp-footer .icp-ft-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.icp-footer .icp-ft-links a {
    font-family: var(--icp-body); font-size: 14.5px;
    color: rgba(255,255,255,.72); text-decoration: none;
    display: inline-block;
    transition: color .2s ease, transform .2s ease;
}
.icp-footer .icp-ft-links a:hover { color: var(--icp-accent); transform: translateX(5px); }
/* coluna 3 — sedes */
.icp-footer .icp-ft-sede { display: flex; gap: 13px; margin-bottom: 18px; }
.icp-footer .icp-ft-sigla {
    font-family: var(--icp-display); font-weight: 800; font-size: 21px;
    color: var(--icp-accent); line-height: 1.1; flex: 0 0 auto;
}
.icp-footer .icp-ft-sede > div { display: flex; flex-direction: column; gap: 4px; }
.icp-footer .icp-ft-sede strong { font-size: 14px; font-weight: 600; color: #fff; }
.icp-footer .icp-ft-sede span { font-size: 12.5px; color: rgba(255,255,255,.5); line-height: 1.5; }
/* coluna 4 — contato */
.icp-footer .icp-ft-tel {
    display: inline-block; font-family: var(--icp-display); font-weight: 700;
    font-size: 23px; color: #fff; text-decoration: none; margin: 0 0 20px;
    transition: color .2s ease;
}
.icp-footer .icp-ft-tel:hover { color: var(--icp-accent); }
.icp-footer .icp-ft-cultos { display: flex; flex-direction: column; gap: 5px; }
.icp-footer .icp-ft-cultos-tit {
    font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
    color: rgba(255,255,255,.42); margin-bottom: 4px;
}
.icp-footer .icp-ft-cultos span:not(.icp-ft-cultos-tit) {
    font-size: 14px; color: rgba(255,255,255,.78);
}
.icp-footer .icp-ft-cultos b { color: var(--icp-accent); font-weight: 700; }
/* faixa inferior */
.icp-footer .icp-footer-bottom {
    border-top: 1px solid var(--icp-line);
    max-width: 1220px; margin: 0 auto;
    padding: 22px 24px;
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    flex-wrap: wrap;
}
.icp-footer .icp-footer-bottom > span { font-family: var(--icp-body); font-size: 12.5px; color: rgba(255,255,255,.45); }
.icp-footer .icp-rodape-cidade {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--icp-body); font-weight: 700; letter-spacing: .14em;
    color: var(--icp-accent); font-size: 12px;
}
.icp-footer .icp-rodape-cidade img { width: 20px; height: 20px; }

/* =====================================================================
   10. MOBILE (manter no FIM para vencer regras de mesma especificidade)
   ===================================================================== */
@media (max-width: 980px) {
    .icp-header-right {
        grid-template-columns: 1fr;
        max-width: 640px;
    }
    .moduletablemapa {
        grid-template-columns: 1fr;
        max-width: 640px;
    }
    .icp-footer .icp-footer-inner {
        grid-template-columns: 1fr 1fr;
        gap: 36px 32px;
    }
    .icp-footer .icp-footer-bottom {
        justify-content: center;
        text-align: center;
    }
    /* faixa fina do topo: em telas menores esconde ENDEREÇO e REDES
       (mantém AO VIVO; o telefone segue no tablet, some só no celular ≤700) */
    .icp-topbar .icp-info + .icp-info,   /* endereço (2º .icp-info) */
    .icp-topbar .icp-redes {
        display: none;
    }
}
@media (max-width: 700px) {
    /* topbar compacta: sem divisores nem altura fixa (os blocos empilham) */
    .icp-topbar {
        justify-content: center;
        gap: 6px 14px;
        padding: 9px 12px;
        min-height: 0;
        text-align: center;
    }
    .icp-topbar .icp-transmissao,
    .icp-topbar .icp-info,
    .icp-topbar .icp-lider12 {
        border-left: 0;
        height: auto;
        padding: 0;
    }
    .icp-topbar .icp-info {
        display: none; /* telefone e endereço só no desktop */
    }
    .icp-topbar .icp-lider12 {
        display: none; /* Líder12 oculto no celular (faixa fina = só AO VIVO) */
    }
    .icp-topbar .icp-transmissao {
        margin-left: 0;
        flex-wrap: wrap;
        justify-content: center;
    }
    .icp-topbar .icp-transmissao + .icp-info {
        margin-left: 0;
    }
    .icp-topbar .icp-redes {
        margin-left: 0;
        order: -1;
    }
    /* nav: logo à esquerda, hambúrguer à direita */
    .container-header {
        justify-content: center;
        position: static; /* sticky alto demais em telas pequenas */
    }
    .container-header .navbar-brand {
        margin: 5px auto 5px 10px; /* logo à esquerda c/ 10px; o resto vai p/ a direita */
    }
    .container-header .navbar-brand img,
    .container-header .navbar-brand .icp-logo-mix {
        height: 65px; /* mobile: 25% menor (era 87px) */
    }
    .container-header .container-nav {
        margin: 0 auto;
    }
    .icp-topmenu > ul {
        justify-content: center;
    }
    .icp-topmenu > ul > li > a,
    .icp-topmenu > ul > li > a:not([href]):not([class]) {
        padding: 12px 13px;
        font-size: 14px;
    }
    .icp-topmenu > ul > li > a::after {
        left: 13px;
        right: 13px;
        bottom: 6px;
    }
    /* hero e eventos: altura natural do slider (sem aspect-ratio forçado, que
       cortaria a base da arte como no desktop) */
    .icp-slider-box[data-icp-slider="1"] {
        width: calc(100% - 24px);
        margin: 12px auto 0;
        border-radius: 12px;
    }
    /* vídeo principal no mobile: como o banner do slide principal (margens laterais
       de 12px + cantos arredondados), porém com 10px de margem no topo.
       (seletor com `body` p/ vencer a regra base `.icp-video-hero{width:100%}` que
       vem depois no arquivo com a mesma especificidade) */
    body .icp-video-hero {
        width: calc(100% - 24px);
        margin: 10px auto 0;
        border-radius: 12px;
    }
    .icp-acontece-head {
        padding: 56px 16px 28px;
    }
    .icp-header-right {
        gap: 20px;
        padding: 0 16px 56px;
    }
    /* bem-vindo empilha */
    .moduletablebemvindo {
        grid-template-columns: 1fr;
        gap: 24px;
        padding: 56px 16px 24px;
        justify-items: center;
        text-align: center;
    }
    .moduletablebemvindo img,
    .moduletablebemvindo video {
        width: 180px;
        height: 180px;
    }
    /* acessos */
    .moduletableacessos {
        padding: 12px 16px 48px;
    }
    /* caminho: fatias proporcionais (somam 780px) */
    .icp-blocos0 {
        gap: 24px;
        padding: 0 16px 56px;
    }
    .icp-bloco0a {
        padding: 12px;
        width: 100%;
    }
    .caminho_corpo img {
        height: auto;
    }
    .caminho_corpo img[src*="_01"] { width: 100%; }
    .caminho_corpo img[src*="_02"],
    .caminho_corpo img[src*="_03"] { width: 50%; }
    .caminho_corpo img[src*="_04"] { width: calc(100% * 315 / 780); }
    .caminho_corpo img[src*="_05"] { width: calc(100% * 154 / 780); }
    .caminho_corpo img[src*="_06"] { width: calc(100% * 149 / 780); }
    .caminho_corpo img[src*="_07"] { width: calc(100% * 136 / 780); }
    .caminho_corpo img[src*="_08"] { width: calc(100% * 26 / 780); }
    .icp-bloco0b {
        width: 100%;
    }
    .icp-encontros {
        width: 100%;
        height: auto;
        aspect-ratio: 650 / 429;
    }
    /* seções */
    .moduletablebloco1_header1,
    .moduletablebloco4_header1,
    .moduletablerodape1_header {
        padding: 56px 16px 4px;
    }
    .container-bottom-a {
        padding-bottom: 56px;
    }
    .moduletablerodape1_header_icptv {
        margin: 48px 16px 0;
    }
    /* internas */
    .blog-item, .com-content-category-blog__item {
        padding: 18px;
    }
    .com-content-category-blog__item.blog-item { padding: 18px !important; }
    /* footer */
    .icp-footer .icp-footer-inner {
        grid-template-columns: 1fr;
        gap: 34px;
        padding: 46px 18px 30px;
        text-align: center;
    }
    .icp-footer img.icp-footer-logo,
    .icp-footer .icp-ft-sobre { margin-left: auto; margin-right: auto; }
    .icp-footer .icp-ft-tit { display: block; }
    .icp-footer .icp-ft-tit::after { left: 50%; transform: translateX(-50%); }
    .icp-footer .icp-ft-redes { justify-content: center; }
    .icp-footer .icp-ft-sede { text-align: left; max-width: 320px; margin-left: auto; margin-right: auto; }
    .icp-footer .icp-footer-bottom { flex-direction: column; text-align: center; }
}

/* =====================================================================
   12. JEvents — DARK MODE (componente + módulos), segue o tema escuro.
   O tema "flat" do JEvents usa fundos claros (#FFF/#F7F7F7) e texto preto;
   aqui forçamos os tokens escuros do site nas classes do JEvents.
   ===================================================================== */
/* tipografia e bordas gerais */
.jeventpage, .jeventpage td, .jeventpage th,
.cal_table, .cal_table td, .cal_table th,
.jev_listrow, .jev_listrow td,
.ev_table, .ev_table td, .eventtable, .eventtable td {
    color: var(--icp-text) !important;
    border-color: var(--icp-line) !important;
}
.jeventpage h1, .jeventpage h2, .jeventpage h3, .jeventpage h4,
.jev_header2, .jev_toprow, .cal_header, .jev_monthtitle {
    color: var(--icp-title) !important;
}
.jeventpage a, .cal_table a, .jev_listrow a, .jev_toprow a,
.cal_daylink, .cal_titlelink, .ev_link_event, .ev_link_row, .ev_link_weekday {
    color: var(--icp-accent) !important;
}
.jeventpage a:hover, .cal_table a:hover, .cal_daylink:hover,
.cal_titlelink:hover, .jev_toprow a:hover {
    color: #ffb04d !important;
}
/* zera os fundos claros das caixas/tabelas */
.jeventpage, .jeventpage table, .cal_table,
.jeventpage .contentpaneopen, .jeventpage .jev_clear {
    background-color: transparent !important;
}
/* células do calendário (visão de mês) */
.cal_table td, .cal_cell_rows td,
.cal_daysnoevents, .cal_dayshasevents,
td.cal_daysnoevents, td.cal_dayshasevents {
    background-color: var(--icp-surface) !important;
}
/* cabeçalho com os nomes dos dias da semana (mês) e faixas de dia (semana/lista) */
.cal_daysnames, .cal_top_day_names, .cal_table th,
.cal_daysnames td, .jev_daysnames {
    background-color: var(--icp-bg-alt) !important;
    color: var(--icp-title) !important;
    border-color: var(--icp-line) !important;
}
/* dias de outro mês: mais apagados */
.cal_othermonth, td.cal_othermonth {
    background-color: var(--icp-bg) !important;
    opacity: 0.55;
}
/* dia de hoje: leve realce laranja */
.cal_today, td.cal_today, .caltoday, .cal_table .today {
    background-color: var(--icp-accent-soft) !important;
}
/* barra de navegação (mês anterior/seguinte, alternar visão, ícones) */
.jev_toprow, .jev_header2, .jev_monthv, .jev_weekv, .jev_dayv,
.ev_iconbar, .navigationbar, .jevtoolbar, .nav_links, .jev_navbar {
    background-color: var(--icp-bg-alt) !important;
    color: var(--icp-text) !important;
    border-color: var(--icp-line) !important;
}
.jev_toprow a, .ev_iconbar a, .navigationbar a, .jev_navbar a {
    color: var(--icp-text) !important;
}
/* listas de eventos, detalhe e linhas zebradas */
.jev_listrow, .jev_listrow td, .ev_table, .ev_table td,
.eventtable, .eventtable td,
.jeventpage tr.sectiontableentry1, .jeventpage tr.sectiontableentry2,
.jeventpage .row0, .jeventpage .row1 {
    background-color: var(--icp-surface) !important;
}
/* tooltip / modal do JEvents */
.jevtip, .jevtip_content, .jev_modal, .hasjevtip .jevtip {
    background-color: var(--icp-surface) !important;
    color: var(--icp-text) !important;
    border-color: var(--icp-line) !important;
}
/* módulos JEvents (mini-calendário, últimos eventos) fora do componente */
.modjeventscalrow, .modjevents, .mod_events, .jevmodule,
.cal_table.moduletable td {
    background-color: var(--icp-surface) !important;
    color: var(--icp-text) !important;
    border-color: var(--icp-line) !important;
}
/* campos de formulário (busca/filtro) dentro do JEvents */
.jeventpage input, .jeventpage select, .jeventpage textarea {
    background-color: var(--icp-bg-alt) !important;
    color: var(--icp-text) !important;
    border: 1px solid var(--icp-line) !important;
}
/* células do mês (são DIVs .month_cell_st, não td) e container de lista */
.month_cell, .jev_listview, .cal_data, .ev_cellcontainer {
    background-color: var(--icp-surface) !important;
    color: var(--icp-text) !important;
    border-color: var(--icp-line) !important;
}
/* .month_cell_st (chip do evento): NÃO sobrescrever o border-left (= cor da categoria, inline) */
.month_cell_st {
    background-color: var(--icp-surface) !important;
    color: var(--icp-text) !important;
    border-top-color: var(--icp-line) !important;
    border-right-color: var(--icp-line) !important;
    border-bottom-color: var(--icp-line) !important;
}
/* legenda de categorias (rótulos com fundo branco) */
.event_legend_desc, .event_legend, .legend, .ev_legend {
    background-color: transparent !important;
    color: var(--icp-text) !important;
}
/* botões do JEvents (imprimir, navegação, etc.) */
.com_jevents button, .jeventpage button, .com_jevents input[type="button"],
.com_jevents input[type="submit"] {
    background-color: var(--icp-bg-alt) !important;
    color: var(--icp-text) !important;
    border: 1px solid var(--icp-line) !important;
}

/* =====================================================================
   13. TOPO ESTILO WATOTO — hero de vídeo + header fixo (logo + hambúrguer)
       + menu overlay vermelho escuro
   ===================================================================== */
/* hambúrguer (3 traços) à direita, fixo no header */
.icp-burger {
    margin-left: auto;
    margin-right: 26px;
    width: 26px;               /* tamanho pedido (era 40px) */
    height: 18px;
    padding: 0;
    background: none;
    border: 0;
    cursor: pointer;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    z-index: 1300;
    transition: opacity 0.2s ease;
}
.icp-burger span {
    display: block;
    height: 3px;
    width: 100%;
    border-radius: 2px;
    background: #ffffff;
    box-shadow: 0 0 4px rgba(0, 0, 0, 0.6);
    transition: transform 0.3s ease, opacity 0.25s ease, background-color 0.3s ease;
}
.icp-burger:hover span { background: var(--icp-accent); }
.icp-burger.is-open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
.icp-burger.is-open span:nth-child(2) { opacity: 0; }
.icp-burger.is-open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* faixa fina utilitária sobre o vídeo (AO VIVO + contatos + redes + Líder12),
   ocupa a 1ª linha do header fixo; logo + hambúrguer descem p/ a 2ª linha */
.container-header .container-topbar {
    flex: 0 0 100%;
    width: 100%;
    background-color: rgba(0, 0, 0, 0.42);
    -webkit-backdrop-filter: blur(6px);
    backdrop-filter: blur(6px);
    border-bottom: 1px solid rgba(255, 255, 255, 0.10);
}
/* barra mais baixa (faixa fina) */
.container-header .icp-topbar { min-height: 34px; }
.container-header .icp-topbar .icp-transmissao,
.container-header .icp-topbar .icp-info,
.container-header .icp-topbar .icp-lider12,
.container-header .icp-topbar .icp-redes { height: 34px; }
/* mais contraste sobre o vídeo */
.container-header .icp-topbar .icp-info { color: rgba(255, 255, 255, 0.82); }
.container-header .icp-topbar .icp-lider12 img { height: 21px !important; }
.container-header .icp-topbar .icp-redes a { width: 24px; height: 24px; }

/* marcador do módulo "Vídeo Topo ICP" — invisível; só sinaliza ao user.js que esta
   página deve ter o vídeo (visibilidade controlada pela atribuição de menu do módulo) */
.icp-video-mount,
.moduletable.icp-video-flag { display: none !important; }

/* hero de vídeo (1ª dobra) */
.icp-video-hero {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;     /* vídeo SEMPRE com a largura da tela; altura acompanha (16:9), sem corte */
    overflow: hidden;
    background: #000;
}
.icp-video-wrap { position: absolute; inset: 0; pointer-events: none; }
.icp-video-wrap iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}
/* leve véu p/ contraste do header sobre o vídeo */
.icp-video-veil {
    position: absolute;
    inset: 0;
    pointer-events: none;
    background: linear-gradient(to bottom,
        rgba(0, 0, 0, 0.35) 0%,
        rgba(0, 0, 0, 0.08) 35%,
        rgba(0, 0, 0, 0.45) 100%);
}

/* overlay = backdrop escurecido; o menu é um PAINEL no canto direito (estilo Watoto) */
.icp-menu-overlay {
    position: fixed;
    inset: 0;
    z-index: 1250;
    background: rgba(0, 0, 0, 0.55);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease;
}
body.icp-menu-open { overflow: hidden; }
body.icp-menu-open .icp-menu-overlay { opacity: 1; visibility: visible; }
/* hambúrguer some quando o painel abre (o painel tem o próprio "×") */
body.icp-menu-open .icp-burger { opacity: 0; pointer-events: none; }
.icp-menu-close {
    position: absolute;
    top: 60px;
    right: 20px;
    z-index: 2;              /* ACIMA do painel (senão o painel o cobre e o "×" some) */
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 34px;
    line-height: 1;
    color: #fff;
    background: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 50%;
    cursor: pointer;
    opacity: 1;
    transition: background-color 0.2s ease, transform 0.2s ease;
}
.icp-menu-close:hover { background: rgba(255, 255, 255, 0.2); transform: rotate(90deg); }
/* PAINEL: drawer ancorado à direita (no desktop é só o canto), rola por dentro */
.icp-menu-inner {
    position: absolute;
    top: 0;
    right: 0;
    height: 100%;
    width: min(420px, 92vw);
    margin: 0;
    max-width: none;
    padding: 15px 34px 48px;     /* topo livre para o botão "×" */
    text-align: left;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    background: linear-gradient(160deg, var(--icp-red) 0%, var(--icp-red-deep) 100%);
    box-shadow: -14px 0 46px rgba(0, 0, 0, 0.45);
    transform: translateX(40px);
    transition: transform 0.32s ease;
}
body.icp-menu-open .icp-menu-inner { transform: translateX(0); }
/* logo da igreja (inteira em BRANCO) no espaço acima do menu.
   icp_logo2.png = chama vermelha + texto branco; o filtro deixa TUDO branco. */
.icp-menu-inner::before {
    content: '';
    display: block;
    width: 200px;
    height: 70px;
    margin: 0 0 26px;
    background: url('/images/icp_logo2.png') no-repeat left center / contain;
    filter: brightness(0) invert(1);
    opacity: 0.96;
}
/* o menu clonado vira lista vertical alinhada à esquerda, com hierarquia */
.icp-menu-inner .icp-topmenu ul { flex-direction: column; align-items: stretch; gap: 0; }
.icp-menu-inner .icp-topmenu > ul > li { position: static; }
.icp-menu-inner .icp-topmenu > ul > li + li {
    border-top: 1px solid rgba(255, 255, 255, 0.12);
}
/* nível 1 = cabeçalho do grupo (destaque) */
.icp-menu-inner .icp-topmenu > ul > li > a,
.icp-menu-inner .icp-topmenu > ul > li > a:not([href]):not([class]) {
    display: block;
    padding: 11px 4px 5px;
    font-size: 21px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.01em;
    color: #fff;
    text-align: left;
    text-shadow: none;
}
.icp-menu-inner .icp-topmenu > ul > li > a::after { display: none; } /* sem sublinhado animado */
.icp-menu-inner .icp-topmenu > ul > li:hover > a { color: rgba(255, 255, 255, 0.82); }
/* submenus: estáticos e sempre visíveis (sem hover/flutuante) */
.icp-menu-inner .icp-topmenu li ul,
.icp-menu-inner .icp-topmenu li ul li ul {
    display: flex !important;
    position: static !important;
    flex-direction: column;
    inset: auto !important;
    margin: 0 0 8px !important;
    min-width: 0;
    background: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
/* nível 2 = itens recuados, mais leves */
.icp-menu-inner .icp-topmenu li ul li a {
    display: block;
    color: rgba(255, 255, 255, 0.72);
    font-size: 15px;
    line-height: 1.25;
    padding: 4px 8px 4px 4px;
    text-align: left;
    transition: color 0.15s ease;
}
.icp-menu-inner .icp-topmenu li ul li a:hover { background: none; color: #fff; }
/* nível 3 (Agenda → Encontros/Anual ICP/Semanal) = mais recuo, menor */
.icp-menu-inner .icp-topmenu li ul li ul li a {
    padding-left: 20px;
    font-size: 13.5px;
    color: rgba(255, 255, 255, 0.55);
}
/* "Agenda" = abre/fecha (accordion): seta indicadora + submenu recolhido por padrão.
   O <a>Agenda</a> não tem href → o user.js usa o clique nele só p/ alternar (.is-open). */
.icp-menu-inner .icp-topmenu li.icp-has-sub > a { cursor: pointer; }
.icp-menu-inner .icp-topmenu li.icp-has-sub > a::after {
    content: '\25B8';            /* seta ▸ */
    display: inline-block;
    margin-left: 6px;
    font-size: 0.8em;
    opacity: 0.75;
    transition: transform 0.25s ease;
}
.icp-menu-inner .icp-topmenu li.icp-has-sub.is-open > a::after { transform: rotate(90deg); } /* ▾ */
/* efeito SLIDE: o submenu desliza (max-height + opacity), em vez de aparecer instantâneo */
.icp-menu-inner .icp-topmenu li.icp-has-sub > ul {
    display: flex !important;    /* sempre flex; o recolhimento é via max-height */
    overflow: hidden;
    max-height: 0;
    opacity: 0;
    margin: 0 !important;
    transition: max-height 0.35s ease, opacity 0.3s ease;
}
.icp-menu-inner .icp-topmenu li.icp-has-sub.is-open > ul { max-height: 240px; opacity: 1; }
.icp-menu-inner .icp-topmenu li.icp-has-sub::before { display: none; } /* sem ponte de hover */

/* páginas SEM o módulo de vídeo (ex.: internas, abertas por um item de menu):
   o header deixa de sobrepor o vídeo e vira barra sólida sticky no topo, com o
   conteúdo logo abaixo (sem o degradê preto que existe só p/ legibilidade no vídeo). */
body.icp-no-hero .container-header {
    position: sticky;
    top: 0;
    background-color: var(--icp-bg-alt);
}
body.icp-no-hero .container-header::before { display: none; }

@media (max-width: 700px) {
    .icp-burger { margin-right: 16px; }
    /* no celular o painel ocupa a largura toda (mesma hierarquia à esquerda) */
    .icp-menu-inner {
        width: 100%;
        max-width: none;
        padding: 15px 22px 44px;  /* mesmo topo do desktop (15px) */
    }
}
