* { margin: 0; padding: 0; box-sizing: border-box; }

:root {
  --primary-color: #08BCEF;
  --dark-color: #05445E; /* Tom de azul escuro */
  --light-bg: #f0f9ff;
}

body { 
  font-family: "Roboto", sans-serif; 
  background-color: #e5e5d3; 
  color: #333; 
  line-height: 1.6; 
}

/* Prevenção global contra barra de rolagem horizontal */
html, body {
  max-width: 100%;
  overflow-x: hidden;
}

header { 
  width: 100%;
  display: block;
}

/* =================================================== */
/* --- NAVBAR FIXA E RESPONSIVA --------------------- */
/* =================================================== */

.navbar { 
background-color: var(--dark-color, #05445E) !important;
  border-bottom: 3px solid var(--primary-color, #08BCEF);
  padding: 0.6rem 0;
  z-index: 1030;
}

/* Container do menu */
.container-menu {
  max-width: 1400px;
  margin: 0 auto;
  width: 100%;
  padding: 0 15px;
}

/* Brand / Logo Texto */
.navbar-brand { 
  font-weight: 700; 
  color: #ffffff !important; 
  font-size: 1.25rem;
  display: flex;
  align-items: center;
  gap: 8px;
}

.navbar-brand i { 
  color: #ffffff !important; 
  transition: color 0.3s ease;
}

/* Opcional: Se quiser que ele fique azul ao passar o mouse na marca */
.navbar-brand:hover i { 
  color: var(--primary-color, #08BCEF) !important; 
}

/* Estilização dos Links */
.nav-link { 
  color: rgba(255, 255, 255, 0.88) !important; 
  font-weight: 500;
  padding: 8px 16px !important;
  transition: color 0.3s ease, background-color 0.3s ease;
  border-radius: 4px;
}

.nav-link:hover,
.nav-link:focus,
.nav-item.active .nav-link { 
  color: var(--primary-color) !important; 
}

/* Botão Hambúrguer (Mobile) */
.navbar-toggler {
  border: 1px solid rgba(255, 255, 255, 0.3) !important;
  padding: 6px 10px;
}

.navbar-toggler:focus {
  box-shadow: 0 0 0 3px rgba(8, 188, 239, 0.4) !important;
}

/* Ícone do hambúrguer em branco */
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.95%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e") !important;
}

/* Links do Menu */
.navbar-dark .navbar-nav .nav-link {
  color: rgba(255, 255, 255, 0.9) !important;
  font-weight: 500;
  font-size: 0.95rem;
  padding: 0.5rem 0.75rem !important;
  transition: all 0.2s ease-in-out;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
  color: var(--primary-color, #08BCEF) !important;
}

/* Customização dos Dropdowns */
.dropdown-menu-dark {
  background-color: #032b3c !important;
  border: 1px solid rgba(8, 188, 239, 0.2);
  border-radius: 6px;
  padding: 0.5rem 0;
}

.dropdown-item {
  font-size: 0.9rem;
  padding: 0.5rem 1.25rem;
  color: rgba(255, 255, 255, 0.85);
  transition: background 0.2s ease, color 0.2s ease;
}

.dropdown-item:hover {
  background-color: var(--primary-color, #08BCEF);
  color: #fff !important;
}

/* Ajustes Responsivos para Mobile (Abaixo de 992px) */
@media (max-width: 991.98px) {
  .navbar-collapse {
    background-color: var(--dark-color, #05445E);
    padding: 1rem;
    border-radius: 8px;
    margin-top: 0.5rem;
    box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
    max-height: 80vh;
    overflow-y: auto; /* Rolagem interna se a tela for pequena */
  }

  .nav-item {
    border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  }

  .nav-item:last-child {
    border-bottom: none;
  }

  .dropdown-menu {
    border: none;
    background-color: rgba(0, 0, 0, 0.2) !important;
    padding-left: 1rem;
  }
}

/* Banner Principal (Desktop) */
.banner-wrapper { 
  width: 100%; 
  min-height: 100vh; 
  background-image: url("/static/appCatedral/img/fotocapa-01.jpg"); 
  background-size: cover; 
  background-position: center center; 
  background-repeat: no-repeat;
  background-attachment: fixed; /* Parallax apenas no PC */
  position: relative; 
  display: flex; 
  flex-direction: column; 
  justify-content: flex-start; 
  align-items: flex-start; 
  padding-left: 80px;
  padding-top: 100px; /* Desconto para a navbar fixa */
  border-bottom: 8px solid var(--primary-color, #08BCEF); 
  box-shadow: inset 0 -120px 100px -20px rgba(5, 68, 94, 0.5); 
}

.banner-wrapper::before { 
  content: ""; 
  position: absolute; 
  top: 0; left: 0; right: 0; bottom: 0; 
  background-color: rgba(0, 0, 0, 0.35); 
  z-index: 1; 
}

/* Logo de 50 Anos dentro do Banner */
.banner-wrapper figure {
  margin: 0;
  position: relative;
  z-index: 2;
}

.banner-wrapper img.img-logo { 
  border-radius: 50%; 
  margin-top: 20px; 
  width: 130px; 
  height: 130px; 
  object-fit: cover; 
  position: relative; 
  z-index: 2; 
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.txt-dinamico-catedral::after {
  content: " CATEDRAL S.SEBASTIÃO RJ";
}

/* Texto do Link dinâmico Ler na Íntegra */
.link-dinamico::before {
    content: "Ler na íntegra ";
}

/* =================================================== */
/* --- BANNER E LOGO (RESPONSIVIDADE) ---------------- */
/* =================================================== */

@media (max-width: 1500px) {
  .banner-wrapper img.img-logo {
    width: 10vw; 
    height: 10vw; 
    min-width: 80px;
    position: absolute; 
    top: 3%; 
    left: -3%; 
    transform: translate(2vw, 2vw); 
    transition: all 0.4s ease-in-out;
  }
}

@media (max-width: 1270px) {
  .none { display: none; }
  .siderbar-left-artigos img { width: 200px !important; height: 120px !important; }
  .link-dinamico::before { content: "Ler "; }
}

@media (max-width: 992px) {
  header { 
    width: 100% !important;
    max-width: 100% !important;
  }

  .banner-wrapper { 
    min-height: 90vh; 
    padding-left: 30px; 
    padding-top: 90px;
    background-attachment: scroll !important;
    position: relative !important;
  }
}

@media (max-width: 768px) {
  .banner-wrapper { 
    min-height: 80vh;
    padding: 90px 20px 30px 20px; 
    align-items: center; 
    text-align: center; 
    position: relative !important;
    background-position: center top !important;
  }

  /* Posiciona o container FIGURE no canto superior direito */
  .banner-wrapper figure {
    position: absolute !important;
    top: 90px !important;   /* Fica logo abaixo da navbar */
    left: 20px !important; /* 20px de distância do canto direito */
    right: auto !important;
    margin: 0 !important;
    z-index: 10;
  }

  /* RESETA a imagem para não herdar as regras do @media 1500px */
  .banner-wrapper img.img-logo {
    position: static !important;
    top: auto !important;
    left: auto !important;
    right: auto !important;
    transform: none !important; /* Desativa a translação do 1500px */
    width: 85px !important;
    height: 85px !important;
    margin: 0 !important;
  }
}

@media (max-width: 480px) {
  header { 
    width: 100% !important; 
    max-width: 100% !important;
  }

  .banner-wrapper { 
    padding: 80px 15px 20px 15px; 
    justify-content: center; 
    min-height: 65vh !important;
    background-position: 70% 50% !important; /* 100% na horizontal (Lado direito), 50% na vertical (Centro) */
  }

  /* Posição limpa no mobile pequeno */
  .banner-wrapper figure {
    position: absolute !important;
    top: 80px !important;
    right: 125px !important;
    left: auto !important;
    margin: 0 !important;
  }

  .banner-wrapper img.img-logo {
    width: 80px !important;
    height: 80px !important;
  }
  
  .txt-dinamico-catedral::after {
    content: " CATEDRAL S.SEBASTIÃO";
  }
}

/* Estilos da seção principal */
main { padding: 30px 0 0; }
/* Container Principal */
.container-artigos { width: 100%; max-width: 1500px; margin: 30px auto 80px auto; background-color: var(--light-bg); padding: 20px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); display: flex; flex-direction: row; align-items: stretch; justify-content: center; gap: 20px; border-radius: 8px; padding: 30px;}
/* Container do lado esquerdo */
.siderbar-left-artigos { width: 65%; background-color: #ffffff; display: flex; flex-direction: column; align-items: center; justify-content: center; box-shadow: 2px 0 10px rgba(0,0,0,0.05); overflow: hidden; /* Corta a imagem quando ela cresce no hover */ border-radius: 3px; /* Arredonda o container junto com a imagem */ }
.siderbar-left-artigos img { width: 250px; height: 150px; object-fit: cover; object-position: center; border-radius: 3px; transition: transform 0.3s ease; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); object-fit: cover; }
.siderbar-left-artigos img:hover { transform: scale(1.1); }
.siderbar-left-artigos h2 { font-family: "Roboto", sans-serif; color: var(--dark-color); border-left: 5px solid var(--primary-color); font-size: 1.5em; padding: 20px 0 10px 25px; text-align: left; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }
.card-artigos { display: flex; gap: 20px; justify-content: flex-start; padding: 0 20px 20px;  }
.linha-artigos-noticias { border: 0; height: 1px; background: #b2b6b6; width: 95%; margin: 0 auto 20px auto; }

.card-artigos-texto { font-family: 'Inter', sans-serif; font-size: 1em; text-align: justify; }
.cat-link a { text-decoration: none; color: var(--dark-color); transition: color 0.3s; }
.cat-link a:hover { color: var(--primary-color); text-decoration: underline; }
.card-artigos-texto p { font-size: 1em; color: #1a191b; font-style: italic; padding-right: 20px; }
.card-artigos-texto div { font-size: 0.9em; color: #646363; font-style: italic;  }
.card-artigos-texto h3 { font-size: 1.24em; color: #0a0323; font-weight: 500; letter-spacing: 0.3px; text-transform: uppercase; line-height: 30px; }
.btn-link-sb-lf { display: flex; flex-direction: row; gap: 10px; justify-content: space-between; }
.btn-link-sb-lf a { text-decoration: none; font-weight: 600; color: var(--primary-color);  border: 1.5px solid var(--primary-color); padding: 8px 13px; border-radius: 50px; transition: background-color 0.3s ease, color 0.3s ease; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 1px; }
.btn-link-sb-lf a:hover { background-color: var(--primary-color); color: #fff; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1) }

/* Container do lado direito */
.siderbar-rigth-artigos { width: 40%; margin: 0 auto; }
.siderbar-rigth-artigos h2 { font-family: "Roboto", sans-serif; color: var(--dark-color); border-left: 5px solid var(--primary-color); font-size: 1.4em; padding: 20px 0 10px 25px; text-align: left; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }
.card-evento { display: flex; align-items: center; background-color: #fff; border-left: 4px solid var(--primary-color); margin-bottom: 15px; padding: 10px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); transition: transform 0.2s; }
.card-evento:hover { transform: translateY(-3px); box-shadow: 0 6px 12px rgba(0,0,0,0.1); }
.card-evento img { width: 100px; height: 100px; object-fit: cover; border-radius: 8px; margin-right: 15px; }
.card-evento img:hover { transform: scale(1.1); }
.card-evento-details { flex: 1; }
.card-evento h3 { margin: 0 0 10px 0; font-family: "Playfair Display", serif; font-size: 1.2em; }
.card-evento p { margin: 0; }
/* Link "Ver Próximos" com HTMX */
[hx-get] { color: var(--primary-color) !important; transition: 0.3s; }
[hx-get]:hover { color: var(--dark-color) !important; }

@media (max-width: 992px) {
  header h1,
  header span { font-size: 4vw; } /* Ajustar a disposição dos artigos e eventos */
  .artigos-noticias { flex-direction: column; } /* Ajustar imagens em artigos */
  .artigos-noticias img { width: 100%; max-width: 100%; }
  /* Ajustar os eventos */
  .evento { flex-direction: column; align-items: flex-start; }
  .evento img { width: 100%; max-width: 150px; margin-bottom: 10px; }
}

@media (max-width: 900px) {
  /* Tamanho menor para imagens de eventos */
  .evento img { max-width: 120px; } /* Ajuste na navegação, se necessário */
  .nav-item a { font-size: 0.9em; margin: 6px 8px; }
main { padding: 20px 20px 0 20px; }
.container-artigos { width: 100%; max-width: calc(900px - 40px); margin: 30px auto 30px auto; flex-wrap: wrap; }
.siderbar-left-artigos { width: 100%; flex-wrap: wrap; }
.siderbar-rigth-artigos { width: 100%; margin: 0 auto; }
}

@media (max-width: 768px) {
  .container-artigos { width: 100%; max-width: calc(768px - 40px); margin: 30px auto 30px auto; }
  .siderbar-left-artigos { width: 100%; flex-wrap: wrap; }
  .siderbar-rigth-artigos { width: 100%; margin: 0 auto; }
  .siderbar-left-artigos img { width: 450px !important; height: 250px !important;}
  .card-artigos { width: 100%; display: flex; flex-direction: column !important; align-items: center; justify-content: center;  }
  .card-artigos-texto h3 { font-size: 1.1em; text-align: center; padding: 15px 0 15px 0;}
  .cat-link a { font-size: 1em; border: 1px solid #ccc; padding: 5px 10px; border-radius: 5px; text-transform: uppercase; background-color: #91bfcc4e; }
}
@media (max-width: 600px) {
  .container-artigos { width: 100%; max-width: calc(600px - 40px); margin: 30px auto 30px auto; }
  .siderbar-left-artigos { width: 100%; flex-wrap: wrap; }
  .siderbar-rigth-artigos { width: 100%; margin: 0 auto; }
  .siderbar-left-artigos img { width: 350px !important; height: 200px !important; margin: 0 auto; display: block;}
  .link-dinamico::before { content: "Ler"; }
  .whatsapp { display: none !important;}
}
@media (max-width: 480px) {
  main { padding: 10px 0; max-width: 100%; }
  .siderbar-left-artigos { width: 100%;  }
  .siderbar-left-artigos img { width: 350px !important; height: 200px !important; margin: 0 auto; display: block;}
  .card-artigos { display: flex; flex-direction: column; }
  .container-artigos { width: 100%; padding: 10px; margin: 0px auto 0px auto; }
  .col-artigos { width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;  }
  .card-artigos-texto h3 { font-size: 1.1em; padding: 10px 0 15px; margin: 0 auto; text-align: center; }
  .card-artigos-texto p { padding: 0 10px; }
  .cat-link a { font-size: 1em; border: 1px solid #ccc; padding: 5px 10px; border-radius: 5px; text-transform: uppercase; background-color: #91bfcc4e; }
  .col-artigos img { width: 100%; height: auto; margin: 0 auto; }
  .card-noticias { width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center;  }
  .col-agenda-eventos { max-width: 100%; margin: 0 auto; }
  .evento { width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; }
  .evento img { display: none; }
  section.whatsapp,
  .whatsapp { display: none; }


.siderbar-rigth-artigos { width: 100%; margin: 0 auto; }
.siderbar-rigth-artigos h2 { font-family: "Roboto", sans-serif; color: #111616; font-size: 1.5em; padding: 20px 0 10px 25px; text-align: left; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }
.card-evento { display: flex; align-items: center; background-color: #fff; margin-bottom: 15px; padding: 10px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }
.card-evento img { width: 100px; height: 100px; object-fit: cover; border-radius: 8px; margin-right: 15px; }
.card-evento img:hover { transform: scale(1.1); }
.card-evento-details { flex: 1; }
.card-evento h3 { margin: 0 0 10px 0; font-family: "Playfair Display", serif; font-size: 1.2em; }
.card-evento p { margin: 0; }
}
/* Fim dos estilos da seção principal */

        /* Estilo para os cards do dashboard */
        .card {
            border: none;
            border-top: 3px solid var(--primary-color);
            transition: transform 0.2s;
        }

        .card:hover {
            transform: translateY(-5px);
        }

/* Estilos da seção departamentos */
.container-departamentos { width: 100%; margin: 0 auto; background-color: #1682a6; padding: 60px 20px; text-align: center; border-bottom: 4px solid var(--primary-color); }
.secao-departamentos { width: 95%; max-width: 1600px; margin: 0 auto; background-color: var(--light-bg); padding: 50px 0; text-align: center; display: flex; flex-wrap: wrap; justify-content: center; gap: 20px; padding: 20px; margin-top: 40px; border-radius: 5px; border-bottom: 4px solid var(--primary-color); }
.container-departamentos h2 { font-family: "Playfair Display", serif; font-size: 2.8em; margin-bottom: 40px; color: white; }
.card-departamento { background-color: #fff; border-bottom: 4px solid var(--primary-color); border-radius: 12px; box-shadow: 0 10px 20px rgba(0, 0, 0, 0.5); transition: transform 0.3s ease; overflow: visible; width: calc(80% / 3 - 20px); display: flex; flex-direction: column;   align-items: center; position: relative; }

.card-departamento:hover { transform: translateY(-10px); box-shadow: 0 15px 30px rgba(8, 188, 239, 0.2); /*transform: scale(1.05);*/ }
.card-departamento div { flex-grow: 1; }
.card-departamento img { width: 100%; height: 250px; object-fit: cover; }
.card-departamento h3 { padding: 45px 15px 15px 15px; font-family: "Playfair Display", serif; color: var(--dark-color); text-align: center;  font-size: 1.8em; }
.card-departamento p { padding: 0 25px 20px 25px; font-family: "Roboto", sans-serif; color: #555; font-size: 1.2em; text-align: justify; }
.icone-azul { color: var(--primary-color); font-size: 35px; padding: 15px; background-color: white; border-radius: 50%; display: inline-block; position: absolute; top: 220px; left: 50%; transform: translateX(-50%); box-shadow: 0 4px 10px rgba(0,0,0,0.1); }
.button-departamentos { width: 70%; padding: 12px 20px; margin-bottom: 25px; background-color: var(--dark-color); color: #fff; text-decoration: none; font-weight: 600; border-radius: 50px; transition: background-color 0.3s ease;  text-align: center; }
.button-departamentos:hover { background-color: var(--primary-color); box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); color: #fff; transform: scale(1.05); }

@media (max-width: 1250px) { 
  .card-departamento { width: calc(100% / 3 - 20px); }
}
@media (max-width: 900px) { 
.card-departamento { flex: 1; width: calc(80% / 2 - 20px);  }
.card-ocupando-tudo { flex: 1 1 100%;      /* ocupa toda a linha */ max-width: 98%; width: 98%; }
}
@media (max-width: 700px) {
  .card-departamento { flex: 1 1 100%; }
}
/* Fim dos estilos da seção departamentos */

/* Inicio Home Informações */

.container-informacoes { width: 100%; margin: 0 auto; background-image: url("/static/appCatedral/img-site/bg-03.jpg");   background-size: cover; background-repeat: no-repeat; background-position: center; }
.limitador-pagina { max-width: 1300px; margin: 0 auto; }
.content-inf { display: flex; align-items: center; justify-content: center; gap: 20px; padding: 20px 0; margin: 0 auto; }
.content-inf img { width: 500px; height: auto; margin-right: 20px; object-fit: cover; }
.content-catedral-acao { display: flex; flex-direction: column; align-items: center; padding: 20px; }
.cards-catedral-acao { display: flex; flex-wrap: wrap; gap: 30px; justify-content: space-around; text-align: center;   padding: 20px; }
.card-catedral-acao { border: 1px solid rgba(255, 255, 255, 0.4); background-color: rgba(255, 255, 255, 0.95); padding: 45px 20px 30px; margin: 10px; border-radius: 15px; height: auto; min-height: 250px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease; position: relative; width: calc(300px - 20px); backface-visibility: hidden; /* Evita "tremores" na animação no Chrome */ }
.card-catedral-acao:hover { transform: translateY(-5px); }
.card-catedral-acao.is-visible { /* Sombra mais suave que se expande ao aparecer */ box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); }
.card-bg-funcionamento:hover { background-color: rgba(188, 235, 203, 0.458); }
.link-informacoes-catedral a { text-decoration: none; color:rgb(49, 111, 137); text-align: right; display: block; }
.link-informacoes-catedral a:hover { text-decoration: underline; }

.card-bg-historia:hover { background-color: #70d8df53; }
.card-bg-secretaria:hover { background-color: #bd92e053; }
.card-bg-pastoral:hover { background-color: #dfcca781; }
.card-icone { color: #ffffff; font-size: 20px; padding: 15px; border-radius: 12px; display: inline-block; position: absolute; top: -25px; right: 20px; }
.card-color-funcionamento { background-color: #47a769; }
.card-color-historia { background-color: #30acb4; }
.card-color-secretaria { background-color: #954ecf; }
.card-color-pastoral { background-color: #dfc28d; }
.card-catedral-acao h4 { font-family: "Playfair Display", serif; font-weight: 700; font-size: 22px; color: var(--dark-color); margin: 10px 0 15px 0; text-align: center; }
.content-catedral-acao h2 { font-size: 2em; text-align: left; margin-bottom: 30px; color: #0a133f; font-weight: 700;   text-transform: capitalize; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }
.content-catedral-acao p { font-size: 16px; }
.button-catedral-acao:hover { color: #e1ff00; }
.container-visitantes { max-width: 1100px; width: 100%; margin: 0 auto; padding: 20px; padding-bottom: 80px; }


/* --- CSS para AnimaÃ§Ã£o de Scroll v9 --- */

/* Estado inicial da animação */
.js-scroll-animate { opacity: 0; transition: opacity 0.6s ease-out, transform 0.6s ease-out; }
/* Quando o card entra na tela */
.js-scroll-animate.is-visible { opacity: 1; transform: translateY(0) !important; /* Reseta a posição da animação */ }
.fade-in-down { transform: translateY(40px); /* ComeÃ§a 40px abaixo */ }
.fade-in-right { transform: translateX(-40px); /* ComeÃ§a 40px Ã  esquerda */ }
/* Garantir que a animaÃ§Ã£o nÃ£o atrapalhe o hover original do card */
.card-catedral-acao.js-scroll-animate.is-visible:hover { transform: translateY(-5px); /* MantÃ©m o efeito de subir no hover */ }

/* Título principal */
.container-visitantes h2 { font-family: "Playfair Display", sans-serif; font-size: 2.2em; text-align: center; margin-bottom: 40px; color: var(--dark-color); font-weight: 800; text-shadow: 2px 2px 4px rgba(255,255,255,0.8); }
/* Grid de 3 colunas */ 
.grid { display: flex; gap: 20px; justify-content: space-between; flex-wrap: wrap; }
/* Estilo das colunas */ 
.col-visitantes { flex: 1; min-width: 300px; background-color: #fff; padding: 20px; border-top: 5px solid var(--primary-color); border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15)!important; transition: transform 0.3s ease; text-align: center; backdrop-filter: blur(5px); /* Efeito de vidro se o fundo for a imagem */ background-color: rgba(255, 255, 255, 0.9);}
/* Título de cada coluna */
.col-visitantes:hover { transform: translateY(-10px); }
.col-visitantes h2 { font-family: "Roboto", sans-serif; font-size: 1.2em; margin-bottom: 15px; color: var(--dark-color); font-weight: 700; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }
/* Valor destacado */ 
.valor { font-size: 2em; font-weight: bold; color: #333; }

/* --- Delays para o Efeito Cascata --- */

/* O primeiro card aparece com 200ms de atraso */
.cards-catedral-acao article:nth-child(1) {
    transition-delay: 0.2s;
}

/* O segundo card aparece com 400ms de atraso */
.cards-catedral-acao article:nth-child(2) {
    transition-delay: 0.4s;
}

/* Se você tiver mais de uma fileira de cards, podemos ser mais específicos */
/* Fileira 1 */
.cards-catedral-acao:nth-of-type(1) article:nth-child(1) { transition-delay: 0.2s; }
.cards-catedral-acao:nth-of-type(1) article:nth-child(2) { transition-delay: 0.4s; }

/* Fileira 2 (começa depois que a primeira termina) */
.cards-catedral-acao:nth-of-type(2) article:nth-child(1) { transition-delay: 0.6s; }
.cards-catedral-acao:nth-of-type(2) article:nth-child(2) { transition-delay: 0.8s; }

/* A imagem da Catedral (figure) aparece de imediato para ancorar o olhar */
figure.js-scroll-animate {
    transition-delay: 0s;
}

@media (max-width: 1250px) {
.content-inf img { width: 400px; height: auto; margin-right: -50px; gap: 0; object-fit: cover; }
.card-catedral-acao { padding: 40px 15px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease; position: relative; width: calc(270px - 20px); height: 265px; }
.cards-catedral-acao { display: flex; flex-wrap: nowrap; gap: 20px; justify-content: space-around; text-align: center;   padding: 20px; }

}
@media (max-width: 1000px) {
  .content-inf { flex-direction: column; align-items: center; justify-content: center; width: 100%;}
  .content-inf img { width: 500px; height: auto; margin-right: 20px; object-fit: cover; display: block; margin: 0 auto; }
}
@media (max-width: 480px) {
  .content-inf { flex-direction: column; align-items: center; margin: 0 auto; padding: 20px 0 0 0; }
  .content-inf img { width: 90%; border-radius: 95% !important; display: block; text-align: center; margin: 0 auto; }
  .content-catedral-acao h2 { font-size: 1.4em; text-align: center; margin: 0 auto; }
  .container-visitantes h2 { font-size: 1.4em; text-align: center; font-family: "Playfair Display", serif; /* Estilo catedral */ color: #0a133f; letter-spacing: 1px; }
  .cards-catedral-acao { width: 100%; min-width: 100%; padding: 10px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }
  .card-catedral-acao { width: 90% !important; max-width: 400px; height: auto; margin: 10px auto; padding: 40px 15px; border-radius: 8px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); transition: transform 0.3s ease; position: relative; }
}
/* Fim Estilo página Informações */

/* Início Estilo Pastoral Social */
.container-pastoral, .container-pastoral-atuacao { 
    background-color: #409ab8; 
    border-top: 6px solid rgba(219, 217, 217, 0.844); 
}
.container-pastoral { width: 100%; margin: 0 auto; padding: 20px; border-top: 4px solid var(--primary-color); }
/* Overlay to darken the background */
.secao-pastoral { display: flex; justify-content: center; align-items: center; gap: 30px; max-width: 1300px; width: 100%; margin: 0 auto; padding: 20px; flex-wrap: wrap; }
.sidebar-left-pastoral { flex: 1; flex-basis: 40%; max-width: 480px;}
.sidebar-left-pastoral h2 { color: #fff200; font-size: 1.5em; padding: 0 0 10px 25px; text-align: left; font-weight: 700; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); }
.sidebar-left-pastoral h3 { color: #ffffff; font-size: 2.2em; text-align: left; font-weight: 700; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); padding: 0 0 10px 25px;}
.sidebar-right-pastoral { flex: 1; flex-basis: 60%; max-width: calc(800px - 60px); display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 20px; padding-top: 20px;}
.card-pastoral { display: flex; justify-content: flex-start; align-items:flex-start; gap: 20px; width: calc(350px - 20px); min-height: 180px; padding: 20px; background-color: #ffffff; border-bottom: 4px solid #0d4a5f; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); border-radius: 10px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15)!important; transition: transform 0.3s ease-out, opacity 0.6s ease-out, box-shadow 0.3s ease-out;
    will-change: transform, opacity;}
.card-pastoral:hover {
    transform: translateY(-10px) !important;
    box-shadow: 0 15px 35px rgba(0, 0, 0, 0.25) !important;
    transition-delay: 0s !important; /* Remove o atraso da cascata no hover */
    cursor: pointer;
}

.card-pastoral h4 { font-size: 1.5em; margin-bottom: 15px; text-align: left; color: #409ab8;}
.card-pastoral p { font-size: 1em; text-align: left; color: #333; }
.icone-pastoral { color: white; background-color: #409ab8; padding: 15px; border-radius: 8px; min-height: 60px; display: flex; justify-content: center; align-items: center; }
.card-pastoral2 { flex: 1 1 calc(50% - gap); /* por exemplo, 2 por linha, ajustando o gap */ max-width: calc(50% - gap); }

.container-pastoral-atuacao { width: 100%; margin: 0 auto; padding: 20px; }
.secao-pastoral-atuacao {  display: flex; justify-content: center; align-items: center; gap: 30px; max-width: 1400px; width: 100%; margin: 0 auto; padding: 20px; flex-wrap: wrap; }
.secao-pastoral-atuacao iframe { border: 5px solid #fff; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); width: 690px; height: 395px;}
.siderbar-rigth-pastoral-atuacao { flex: 1; flex-basis: 40%; display: flex; flex-direction: column; justify-content: center; align-items: center;}
.siderbar-rigth-pastoral-atuacao h2 { color: whitesmoke; font-size: 2.4em; letter-spacing: 2px; text-align: left; font-weight: 700; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 1); padding: 0 0 10px 25px;}
.siderbar-rigth-pastoral-atuacao p { color: whitesmoke; font-size: 1.4em; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.6);}
.siderbar-rigth-pastoral-atuacao h3 { color: #ff0; font-size: 1.6em; padding-top: 20px; text-align: center; letter-spacing: 1px; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.8);}
.siderbar-rigth-pastoral-atuacao div a { width: 80%; background-color: #30acb4; display: block; color: #fff; font-weight: 700; margin: 20px auto; text-align: center; text-transform: uppercase; text-decoration: none; font-size: 1.2em; padding: 10px 20px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); border: 2px solid #fff; border-radius: 5px; transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); }
.siderbar-rigth-pastoral-atuacao div a:hover { background-color: #fff; color: #30acb4; border: 2px solid #30acb4; transform: scale(1.05); background-color: #fff; color: #409ab8; box-shadow: 0 8px 20px rgba(0,0,0,0.4); }

/* Fileira 1 */
.sidebar-right-pastoral:nth-of-type(1) .card-pastoral:nth-child(1) { transition-delay: 0.1s; }
.sidebar-right-pastoral:nth-of-type(1) .card-pastoral:nth-child(2) { transition-delay: 0.3s; }

/* Fileira 2 */
.sidebar-right-pastoral:nth-of-type(2) .card-pastoral:nth-child(1) { transition-delay: 0.5s; }
.sidebar-right-pastoral:nth-of-type(2) .card-pastoral:nth-child(2) { transition-delay: 0.7s; }

/* 4. Resetar o delay quando a animação terminar (opcional, mas ajuda no hover) */
.card-pastoral.is-visible:hover {
    transition-delay: 0s !important;
}

@media (max-width: 768px) {
  .content-pastoral { flex-direction: column; }
  .card-pastoral { width: calc(330px - 20px); padding: 20px 10px;}
  .siderbar-rigth-pastoral-atuacao div a { width: 100%; }
  .secao-pastoral-atuacao iframe { width: 600px; height: 345px;}
}
@media (max-width: 480px) {
  .secao-pastoral-atuacao iframe { width: 420px; height: 228px;}
  .sidebar-left-pastoral h3 { font-size: 1.6em; padding-left: 10px; }
  .card-pastoral { width: 100% !important; flex-basis: 100%; }
  
  .secao-pastoral-atuacao { padding: 10px; }
  
  /* O vídeo agora se ajusta perfeitamente a qualquer celular */
  .video-container { max-width: 100%; }
  
  .siderbar-rigth-pastoral-atuacao h2 { font-size: 1.8em; text-align: center; padding-left: 0; }
  .siderbar-rigth-pastoral-atuacao p { font-size: 1.1em; text-align: justify; }
  .secao-pastoral-atuacao iframe { width: 100%; /* Ocupa a largura total do celular */ height: auto; aspect-ratio: 16 / 9; }
/* Fim Pastoral Atuacao */
}

/* Inicio Brecho */
.container-brecho { width: 100%; margin: 0 auto; padding: 70px; background-color: #FBF7F5; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 20px; }
.bg-brecho { background-image: url(/static/appCatedral/img-site/bg-brecho.png); background-size: cover; background-repeat: no-repeat; background-position: center; min-height: 100vh;}
.secao-brecho { position: relative;}
.secao-brecho:hover { transform: scale(1.1); transition: transform 0.3s ease; }
.brecho { width: 100%; border-style: dashed; border:  5px inset rgb(172, 192, 193); border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); }

.container-brecho figcaption { color: #fff; font-size: 2em; text-align: center; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 1); position: absolute; top: 90%; left: 50%; transform: translate(-50%, -50%); }
.container-brecho h2 { font-size: 2.4em; letter-spacing: 2px; text-align: left; font-weight: 700; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); padding: 0 0 10px 25px;}
.container-brecho p { font-size: 1.4em; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.6);}
.container-brecho h3 { color: #ff0; font-size: 1.6em; padding-top: 20px; text-align: center; letter-spacing: 1px; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.8);}
.container-brecho ul li { list-style: none; font-size: 1.2em; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); text-align: center; line-height: 40px;}

/* Garante que o hover funcione após a animação de entrada */
.secao-brecho.js-scroll-animate.is-visible:hover {
    transform: scale(1.05) !important; /* Um zoom mais sutil é mais elegante */
    transition: transform 0.3s ease;
}

/* Ajuste do carrossel para não quebrar em telas pequenas */
.carousel-container {
    display: flex;
    align-items: center;
    scroll-behavior: smooth;
}

/* Melhoria no Modal */
.modal {
    background-color: rgba(0, 0, 0, 0.9); /* Fundo mais escuro para destacar a foto */
    backdrop-filter: blur(8px); /* Efeito moderno atrás da foto expandida */
}

.modal-img {
    border: 3px solid #fff;
    border-radius: 5px;
}

@media (max-width: 768px) {
  .container-brecho { padding: 40px; }
  .container-brecho h2 { font-size: 1.8em; text-align: center; padding: 0 0 10px 0;}
  .container-brecho p { font-size: 1.2em; text-align: center; }
  .container-brecho h3 { font-size: 1.4em; }
  .container-brecho ul li { font-size: 1em; line-height: 30px; }
  .container-brecho figcaption { color: #fff; font-size: 1.6em; }
}
@media (max-width: 480px) {
  .container-brecho { gap: 0; }
  .container-brecho h2 { font-size: 1.4em; text-align: center; padding: 0 0 10px 0;}
  .container-brecho p { font-size: 1em; text-align: center; }
  .container-brecho h3 { font-size: 1.2em; }
  .container-brecho ul li { font-size: 0.9em; line-height: 25px; }
  .container-brecho figcaption { color: #fff; font-size: 1.2em; top: 85%;}
}
/* Fim Brecho */

/* Início Benfeitor */
.container-benfeitor { width: 100%; padding: 60px; background-color: #1682a6; color: #fff; }
.secao-benfeitor { width: 100%; max-width: 950px; margin: 0 auto; display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 40px; }
.secao-benfeitor .siderbar-left { width: calc(380px - 30px); max-width: 380px; }
.container-benfeitor h2 { font-size: 2.8em; line-height: normal; letter-spacing: 2px; text-align: right; font-weight: 700; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);}
.container-benfeitor h3 { color: #ff0; font-size: 2em; text-align: right; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.6); padding-top: 1em;}
.secao-benfeitor .siderbar-right { width: calc(570px - 40px); max-width: 540px; padding: 30px; background-color: #ffffff3f; display: flex; flex-direction: column; justify-content: center; align-items: center;border: 5px solid #fff; border-radius: 10px; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5); }
.container-benfeitor h4 { font-size: 2em; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.6); text-transform: uppercase; text-align: center; padding-bottom: 20px;}
.container-benfeitor p { font-size: 1.4em; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.6); padding-top: 1em;}
.container-benfeitor ul { }
.container-benfeitor ul li { list-style: none; font-size: 1.2em; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); line-height: 35px; }
.container-benfeitor ul li span { font-weight: 700; }
.secao-benfeitor .card-qrcode { width: 80%; display: flex; justify-content: center; align-items: center; gap: 2em; padding-top: 30px;}
.container-benfeitor h5 { font-size: 1.4em; color: #ff0; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.6);}
@media (max-width: 480px) {
  .container-benfeitor h4 { font-size: 1.4em;}
  .secao-benfeitor .card-qrcode { flex-direction: column; gap: 0; }
  .container-benfeitor h5 { font-size: 1.2em; text-align: center;}
}

/* Fim Benfeitor */

/* Inicio Maps */
.container-maps { width: 100%; padding: 60px; background-color: rgba(255, 255, 255, 0.621); color: rgb(116, 38, 38); }
.secao-maps { width: 950px; margin: 0 auto; display: flex; justify-content: center; align-items: center; gap: 4em;}
.secao-maps .siderbar-left { width: 40%;}
.container-maps h2 { font-size: 2em; color:var(--dark-color); line-height: normal; letter-spacing: 2px; text-align: right; font-weight: 700; text-transform: uppercase; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.4);}
.container-maps h3 { color: #f00; font-size: 2em; text-align: right; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.6); padding-top: 1em;}

@media (max-width: 768px) {
.container-maps h2 { font-size: 1.6em; padding: 0 20px 10px 0; }
}
@media (max-width: 480px) {
.container-maps h2 { font-size: 1.2em; text-align: center; }
}
/* Fim Maps */

/* Inicio Footer */
        /* Estilo do Footer */
        .main-footer {
            background-color: var(--dark-color);
            color: white;
            padding-top: 3rem;
            margin-top: 5rem;
            border-top: 4px solid var(--primary-color);
        }

        .footer-link {
            color: rgba(255,255,255,0.7);
            text-decoration: none;
            transition: 0.3s;
        }

        .footer-link:hover {
            color: var(--primary-color);
            padding-left: 5px;
        }

        .footer-social-icons a {
            font-size: 1.5rem;
            color: white;
            margin-right: 15px;
            transition: 0.3s;
        }

        .footer-social-icons a:hover {
            color: var(--primary-color);
        }

        .copyright-bar {
            background-color: rgba(0,0,0,0.2);
            padding: 1.5rem 0;
            margin-top: 2rem;
        }

@media (max-width: 900px) {
  .secao-footer h2 { font-size: 1.4em; text-align: center; }
}
@media (max-width: 480px) {
.secao-footer h2 { font-size: 1em; text-align: center; }

}
/* Fim Footer */

/* Botão Whatsapp */
.whatsapp { position: fixed; width: 60px; height: 60px; bottom: 40px; right: 40px; background-color: #25d366; color: #fff; border-radius: 50px; padding: 30px; text-align: center; font-size: 30px; box-shadow: 2px 2px 3px #999; z-index: 100; display: flex; align-items: center; justify-content: center; cursor: pointer; /* para indicar que é clicável */ opacity: 0; transform: translateY(20px); /* opcional: para efeito de deslizamento */ transition: opacity 0.5s ease, transform 0.5s ease; /* Define duração e atraso para a animação */ animation: fadeInUp 0.5s forwards; animation-delay: 3s; /* ajustes o tempo de atraso aqui */
  }
.whatsapp a { text-decoration: none; color: #fff; text-shadow: 0 4px 8px rgba(0, 0, 0, 0.4); transition: transform 0.3s ease;
  }
.whatsapp a:hover { transform: scale(1.1); }
/* Animação */
@keyframes fadeInUp {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}




/* No seu arquivo estilo-catedral.css */
.conteudo-noticia p {
    margin-bottom: 1.5rem;
    color: #333;
}

/* Deixa o carrossel com cantos arredondados e sombra */
.carousel {
    border-radius: 15px;
    overflow: hidden;
}

.carousel-caption {
    background: rgba(0, 0, 0, 0.6);
    border-radius: 10px;
    padding: 10px;
}

/* Secretaria */
/* Estilização do link de informações */
#cultura-pane .list-group-item a {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-top: 6px;
  padding: 4px 10px;
  font-size: 0.85rem;
  font-weight: 500;
  color: #0d6efd; /* Cor primária do Bootstrap */
  background-color: rgba(13, 110, 253, 0.08);
  border-radius: 6px;
  text-decoration: none;
  transition: all 0.2s ease-in-out;
}

/* Efeito ao passar o mouse (Hover) */
#cultura-pane .list-group-item a:hover {
  color: #fff;
  background-color: #0d6efd;
  transform: translateY(-1px);
  box-shadow: 0 2px 5px rgba(13, 110, 253, 0.2);
}

/* Ajuste no ícone */
#cultura-pane .list-group-item a i {
  font-size: 0.75rem;
}

/* =================================================== */
/* Estilos específicos para a experiência da Visita Virtual */
/* =================================================== */

        .tour-card {
            border: none;
            border-radius: 15px;
            box-shadow: 0 4px 15px rgba(0,0,0,0.08);
            background: #ffffff;
            overflow: hidden;
        }

        /* Imagem Responsiva: 250px no celular / 450px no computador */
        .tour-img {
            height: 250px;
            object-fit: cover;
            width: 100%;
            cursor: zoom-in;
            transition: transform 0.3s ease;
        }

        @media (min-width: 768px) {
            .tour-img {
                height: 450px;
            }
        }

        .tour-img:hover {
            transform: scale(1.01);
        }

        .carousel-item {
            padding: 5px;
        }

        @media (min-width: 768px) {
            .carousel-item {
                padding: 10px;
            }
        }

        .btn-tour {
            font-weight: bold;
            border-radius: 30px;
            padding: 12px 20px;
            font-size: 0.95rem;
        }

        .tour-indicator {
            background-color: var(--dark-color, #05445E);
            color: white;
            padding: 6px 14px;
            border-radius: 20px;
            font-size: 0.8rem;
            font-weight: bold;
            white-space: nowrap;
        }

        /* Ajustes de margem do topo para mobile */
        .hero-banner {
            margin-top: 90px;
        }
        @media (min-width: 992px) {
            .hero-banner {
                margin-top: 130px;
            }
        }