/* =====================================================================
   Diocese de Vitória — camada do site sobre o design system.
   1) Neutraliza os espaçamentos padrão do Divi nas seções do tema (.sv-secao)
   2) Cabeçalho, menu em tela cheia e rodapé globais
   3) Padrões de página que o design system não cobre (grades, listas, formulários)
   Usa só os tokens de tokens.css.
   ===================================================================== */

/* ---------- 1. Base e Divi ---------- */
body.sv-site { margin: 0; font-family: var(--font-sans); font-size: 17px; line-height: 1.65; color: var(--tinta); background: var(--branco); -webkit-font-smoothing: antialiased; }
body.sv-site #page-container { padding-top: 0 !important; margin-top: 0 !important; overflow: clip; }
body.sv-site #main-content { background: transparent; }
body.sv-site #main-content .container::before { display: none; }

.et_pb_section.sv-secao { padding: 0; background-color: transparent; }
.sv-secao .et_pb_row { width: 100%; max-width: none; padding: 0; margin: 0; }
.sv-secao .et_pb_column { float: none; width: 100% !important; margin: 0 !important; }
.sv-secao .et_pb_module { margin: 0; }
.sv-secao .et_pb_text_inner > *:first-child { margin-top: 0; }

/* Divi impõe cores, tamanhos e paddings em títulos, parágrafos e listas: devolvemos ao sistema.
   :where(.sv) deixa estas regras com a força de um seletor de tag: vencem o CSS do Divi (que carrega antes)
   e perdem para as classes sv-* (cor do botão, título verde do card). */
:where(.sv) h1, :where(.sv) h2, :where(.sv) h3, :where(.sv) h4, :where(.sv) h5, :where(.sv) h6 { padding: 0; color: inherit; font-family: var(--font-display); line-height: 1.15; }
:where(.sv) a { color: inherit; }
:where(.sv) img { max-width: 100%; height: auto; display: block; }
:where(.sv) strong, :where(.sv) b { font-weight: 800; }
.sv p { padding: 0; }
.et_pb_section.sv-secao ul, .et_pb_section.sv-secao ol, .sv-rodape ul, .sv-menu ul { list-style: none; padding: 0; margin: 0; line-height: inherit; }
.et_pb_section.sv-secao .sv-texto ul:not([class]) { list-style: disc; padding-left: 1.3em; }
.et_pb_section.sv-secao .sv-texto ol:not([class]) { list-style: decimal; padding-left: 1.3em; }
.et_pb_section.sv-escuro, .sv-secao.sv-escuro { background-color: var(--preto); color: var(--branco); }
.et_pb_section.sv-claro, .sv-secao.sv-claro { background-color: var(--branco); color: var(--tinta); }
.et_pb_section.sv-suave, .sv-secao.sv-suave { background-color: var(--verde-claro); color: var(--tinta); }

.sv-pular { position: absolute; left: var(--space-4); top: -100px; z-index: 2000; padding: var(--space-3) var(--space-4); background: var(--verde); color: var(--on-verde); font-weight: 800; text-decoration: none; }
.sv-pular:focus { top: var(--space-4); }
.sv-visualmente-oculto { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Layout ---------- */
.sv-container { width: 100%; max-width: calc(var(--container) + 2 * var(--space-6)); margin: 0 auto; padding-left: var(--space-6); padding-right: var(--space-6); }
.sv-leitura { max-width: var(--leitura); margin-left: auto; margin-right: auto; }
.sv-bloco { padding-top: clamp(64px, 6vw, 96px); padding-bottom: clamp(64px, 6vw, 96px); }
.sv-bloco-topo { padding-top: clamp(64px, 6vw, 96px); }
.sv-centro-texto { text-align: center; }
.sv-titulo-secao { font-size: clamp(26px, 1vw + 1.1rem, 32px); margin: 0 0 var(--space-6); }
.sv-titulo-secao + .sv-intro { margin-top: calc(-1 * var(--space-4)); }
.sv-intro { font-size: 19px; line-height: 1.6; margin: 0 0 var(--space-7); }
.sv-escuro .sv-intro, .sv-escuro .sv-suave-texto { color: var(--texto-suave-escuro); }
.sv-claro .sv-suave-texto, .sv-suave .sv-suave-texto { color: var(--texto-suave); }
.sv-centro-texto .sv-intro { max-width: 640px; margin-left: auto; margin-right: auto; }
.sv-eyebrow + .sv-display, .sv-eyebrow + .sv-h2, .sv-eyebrow + h2 { margin-top: var(--space-2); }
.sv-escuro .sv-eyebrow { color: var(--verde); }
.sv-claro .sv-eyebrow, .sv-suave .sv-eyebrow { color: var(--verde-escuro); }
.sv-hero .sv-eyebrow { color: var(--branco); }

.sv-grid { display: grid; gap: var(--space-5); }
.sv-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7); align-items: center; }
.sv-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.sv-grid-pessoas { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-7) var(--space-6); }
@media (max-width: 980px) { .sv-grid-3, .sv-grid-pessoas { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sv-grid-2 { grid-template-columns: 1fr; gap: var(--space-6); } }
@media (max-width: 767px) { .sv-grid-3, .sv-grid-pessoas { grid-template-columns: 1fr; } .sv-container { padding-left: var(--space-4); padding-right: var(--space-4); } }

.sv-acoes { display: flex; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-6); }
.sv-centro-texto .sv-acoes { justify-content: center; }

/* ---------- Hero: home e páginas internas ---------- */
.sv-hero { min-height: min(92vh, 760px); }
.sv-hero .sv-hero-conteudo { padding-top: calc(var(--space-10) + var(--space-5)); padding-bottom: var(--space-10); }
.sv-hero-midia video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.sv-hero-texto { max-width: 560px; margin: 0; font-size: 19px; line-height: 1.6; text-shadow: var(--shadow-texto); }
.sv-hero-pagina { min-height: 440px; }
.sv-hero-pagina .sv-hero-conteudo { padding-top: calc(var(--space-9) + var(--space-7)); padding-bottom: var(--space-8); }
.sv-hero-pagina .sv-display { font-size: clamp(32px, 2.2vw + 1rem, 44px); line-height: 1.05; max-width: 22ch; }
.sv-hero.sv-centro .sv-hero-texto { margin-left: auto; margin-right: auto; }
.sv-hero-conteudo .sv-display { font-size: clamp(40px, 3.5vw + 1rem, 64px); }
.sv-hero-pagina .sv-hero-conteudo .sv-display { font-size: clamp(32px, 2.2vw + 1rem, 44px); }
.sv-hero-pagina .sv-hero-midia::after { background: var(--overlay); }

/* Faixa de destaque: o intro fica sobre branco, os cards sobre a faixa verde */
.sv-faixa { padding-left: 0; padding-right: 0; }
.sv-faixa.sv-sobe { margin-top: -120px; background: transparent; }
.sv-faixa.sv-sobe .sv-faixa-intro { background: var(--branco); padding: var(--space-5); align-self: stretch; }
.sv-faixa-intro .sv-h2 { font-size: 24px; }
.sv-faixa-grid { grid-template-columns: 1.3fr repeat(3, 1fr); }
@media (max-width: 900px) { .sv-faixa-grid { grid-template-columns: 1fr; } }
.sv-destaque .sv-destaque-img { position: relative; }
.sv-destaque .sv-destaque-img::before { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,0) 60%); }
.sv-destaque .sv-destaque-img .sv-eyebrow { position: relative; color: var(--branco); }
.sv-destaque .sv-link { color: var(--branco); }
@media (max-width: 900px) { .sv-faixa.sv-sobe { margin-top: -60px; } }
@media (max-width: 767px) { .sv-faixa.sv-sobe { margin-top: 0; } }

/* ---------- Cabeçalho global ---------- */
.sv-header { position: fixed; top: 0; left: 0; right: 0; z-index: 900; background: transparent; }
.sv-header.sv-fixo { background: rgba(0, 0, 0, .94); color: var(--branco); box-shadow: 0 1px 0 var(--linha-escura); }
.sv-header.sv-fixo .sv-hamburguer span { background: var(--verde); }
.sv-header.sv-fixo .sv-header-local { color: var(--verde); }
body.admin-bar .sv-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .sv-header { top: 46px; } }
.sv-header-logo img { height: 96px; width: auto; display: block; transition: height .25s; }
.sv-header.sv-fixo .sv-header-logo img { height: 64px; }
.sv-header-local svg { width: 14px; height: 18px; }
.sv-hamburguer:hover span { background: var(--verde); }
body.sv-header-solido #et-main-area { padding-top: 104px; }
@media (max-width: 767px) {
  .sv-header { padding: var(--space-3) var(--space-4); }
  .sv-header-logo img { height: 64px; }
  .sv-header-local span { display: none; }
  .sv-header-acoes { gap: var(--space-4); }
  body.sv-header-solido #et-main-area { padding-top: 76px; }
}

/* ---------- Menu em tela cheia ---------- */
.sv-menu-overlay { position: fixed; inset: 0; z-index: 1000; min-height: 100vh; overflow-y: auto; align-items: stretch; flex-direction: column; background-color: var(--carvao); }
.sv-menu-overlay[hidden] { display: none; }
body.admin-bar .sv-menu-overlay { top: 32px; }
.sv-menu-topo { position: relative; display: flex; justify-content: space-between; align-items: center; padding: var(--space-5) var(--space-6); }
.sv-menu-topo img { height: 96px; width: auto; }
.sv-fechar { display: grid; place-items: center; width: 48px; height: 48px; background: none; border: 2px solid var(--verde); color: var(--branco); cursor: pointer; font: 400 28px/1 var(--font-sans); }
.sv-fechar:hover { background: var(--verde); color: var(--on-verde); }
.sv-menu-overlay .sv-menu-lista { flex: 1; align-content: center; max-width: calc(var(--container) + 2 * var(--space-6)); margin: 0 auto; padding-bottom: var(--space-9); align-items: start; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); }
.sv-menu-item { padding: var(--space-6) var(--space-3); }
.sv-menu-item > a { font-size: 15px; }
.sv-menu-item > a:hover { color: var(--verde); }
.sv-menu-item:not(.sv-aberto) > .sv-submenu { display: none; }
.sv-menu-item.current-menu-item > a, .sv-menu-item.current-menu-ancestor > a { color: var(--verde); }
.sv-submenu .current-menu-item > a { box-shadow: inset 0 -5px 0 var(--laranja); }
.sv-menu-rodape { position: relative; display: flex; flex-wrap: wrap; gap: var(--space-5); justify-content: center; padding: 0 var(--space-6) var(--space-6); font-size: 15px; color: var(--texto-suave-escuro); }
.sv-menu-rodape a { color: var(--branco); text-decoration: none; font-weight: 700; }
.sv-menu-rodape a:hover { color: var(--verde); }
body.sv-menu-aberto { overflow: hidden; }
@media (max-width: 767px) {
  .sv-menu-overlay .sv-menu-lista { grid-template-columns: 1fr; gap: 0; padding: 0 var(--space-4) var(--space-8); }
  .sv-menu-item { padding: var(--space-3) var(--space-3); }
  .sv-menu-item > a { font-size: 19px; }
  .sv-menu-topo { padding: var(--space-3) var(--space-4); }
  .sv-menu-topo img { height: 48px; }
}

/* ---------- Texto corrido ---------- */
.sv-texto { font-size: 17px; line-height: 1.65; }
.sv-texto > * + * { margin-top: var(--space-4); }
.sv-texto h2 { font-size: clamp(26px, 1vw + 1.1rem, 32px); font-weight: 800; font-style: italic; text-transform: uppercase; margin-top: var(--space-7); }
.sv-texto h3 { font-size: 24px; font-weight: 800; line-height: 1.25; margin-top: var(--space-6); }
.sv-texto li + li { margin-top: var(--space-2); }
.sv-claro .sv-texto a, .sv-suave .sv-texto a { color: var(--verde-escuro); text-decoration: underline; text-underline-offset: 3px; }
.sv-escuro .sv-texto a { color: var(--verde); }
.sv-lead { font-size: 19px; line-height: 1.6; }

/* Citação bíblica */
.sv-citacao { margin: 0; font-family: var(--font-display); font-size: clamp(22px, 1vw + 1rem, 28px); font-weight: 800; font-style: italic; line-height: 1.3; }
.sv-citacao.sv-leitura { margin-left: auto; margin-right: auto; }
.sv-citacao cite { display: block; margin-top: var(--space-3); font-family: var(--font-sans); font-size: 14px; font-style: normal; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--laranja); }

/* Lista numerada (Declaração de Jerusalém) */
.sv-numerada { list-style: none; counter-reset: sv-n; display: grid; gap: var(--space-5); margin: 0; padding: 0; }
.sv-numerada > li { counter-increment: sv-n; display: grid; grid-template-columns: 64px 1fr; gap: var(--space-4); align-items: start; padding-top: var(--space-5); border-top: 1px solid var(--linha-clara); }
.sv-escuro .sv-numerada > li { border-top-color: var(--linha-escura); }
.sv-numerada > li::before { content: counter(sv-n, decimal-leading-zero); font-family: var(--font-display); font-size: 32px; font-weight: 900; font-style: italic; line-height: 1; color: var(--verde-escuro); }
.sv-escuro .sv-numerada > li::before { color: var(--verde); }

/* Itens com título (ministérios, princípios) */
.sv-itens { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--space-5); margin: 0; padding: 0; list-style: none; }
.sv-item { padding: var(--space-5); background: var(--branco); border-top: 4px solid var(--verde); }
.sv-escuro .sv-item { background: var(--grafite); }
.sv-item h3 { margin: 0 0 var(--space-2); font-size: 19px; font-weight: 800; line-height: 1.3; text-transform: uppercase; }
.sv-item p { margin: 0; }
.sv-claro .sv-item { background: var(--verde-claro); }

/* Marcadores com triângulo laranja (lista simples) */
.sv-marcadores { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-3); }
.sv-marcadores li { position: relative; padding-left: calc(var(--marcador) + var(--space-3)); }
.sv-marcadores li::before { content: ""; position: absolute; left: 0; top: .45em; width: var(--marcador); height: var(--marcador); background: var(--laranja); clip-path: polygon(0 0, 0 100%, 100% 100%); }

/* Imagem dentro do conteúdo */
.sv-foto { width: 100%; border-radius: var(--radius-sm); aspect-ratio: 4 / 3; object-fit: cover; background: var(--carvao); }
.sv-foto-chanfro { clip-path: polygon(0 0, 100% 0, 100% calc(100% - var(--chanfro-foto)), calc(100% - var(--chanfro-foto)) 100%, 0 100%); }

/* ---------- Igrejas ---------- */
.sv-igreja { display: flex; flex-direction: column; background: var(--grafite); color: var(--branco); }
.sv-igreja-foto { aspect-ratio: 3 / 2; width: 100%; object-fit: cover; background: var(--carvao); }
.sv-igreja-corpo { display: grid; gap: var(--space-3); padding: var(--space-5) var(--space-4) var(--space-4); flex: 1; align-content: start; }
.sv-igreja-cidade { color: var(--verde); margin: 0; }
.sv-igreja h3 { margin: 0; font-size: 19px; font-weight: 800; line-height: 1.3; text-transform: uppercase; }
.sv-igreja-info { display: grid; gap: var(--space-2); margin: 0; font-size: 15px; line-height: 1.5; color: var(--texto-suave-escuro); }
.sv-igreja-info dt { font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--branco); margin-top: var(--space-2); }
.sv-igreja-info dd { margin: 0; }
.sv-igreja-info a { color: var(--verde); }
.sv-igreja-acoes { display: flex; flex-wrap: wrap; gap: var(--space-3); padding: 0 var(--space-4) var(--space-5); }
.sv-igreja-acoes .sv-btn { min-height: 44px; padding: 0 var(--space-4); }

/* Horários (lista compacta) */
.sv-horarios { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 0 var(--space-6); margin: 0; padding: 0; list-style: none; }
.sv-horarios li { display: grid; gap: var(--space-1); padding: var(--space-5) 0; border-top: 1px solid var(--linha-clara); }
.sv-horarios h3 { margin: 0; font-size: 19px; font-weight: 800; line-height: 1.3; }
.sv-horarios .sv-meta { color: var(--texto-suave); }
.sv-horarios ul { list-style: none; margin: var(--space-2) 0 0; padding: 0; }
.sv-horarios ul li { display: block; padding: 0; border: 0; font-weight: 700; color: var(--verde-escuro); }

/* ---------- Pessoas ---------- */
.sv-pessoa-foto { overflow: hidden; }
.sv-pessoa-foto img { width: 100%; height: 100%; object-fit: cover; object-position: center 20%; }
.sv-pessoa-nome { font-size: 22px; }
.sv-escuro .sv-pessoa-cargo { color: var(--texto-suave-escuro); }

/* ---------- Mensagens, vídeo, contribuição ---------- */
.sv-video { position: relative; aspect-ratio: 16 / 9; background: var(--carvao); }
.sv-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.sv-msg-img img { width: 100%; height: 100%; object-fit: cover; }
.sv-msg-img.sv-sem-foto { display: grid; place-items: center; }
.sv-msg-img.sv-sem-foto img { width: 55%; height: auto; object-fit: contain; }
.sv-msg-resumo { margin: 0; font-size: 15px; line-height: 1.5; color: var(--texto-suave-escuro); }
.sv-msg-data { font-size: 14px; font-weight: 600; color: var(--texto-suave-escuro); }
.sv-msg:hover .sv-msg-titulo { text-decoration: underline; text-underline-offset: 3px; }

.sv-contribua { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-7); align-items: center; }
.sv-dados { display: grid; grid-template-columns: max-content 1fr; gap: var(--space-2) var(--space-5); margin: 0; padding: var(--space-6); background: var(--branco); border-top: 4px solid var(--verde); }
.sv-dados dt { font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--texto-suave); }
.sv-dados dd { margin: 0; font-weight: 800; }
@media (max-width: 900px) { .sv-contribua { grid-template-columns: 1fr; } }
@media (max-width: 480px) { .sv-dados { grid-template-columns: 1fr; gap: 0; } .sv-dados dd + dt { margin-top: var(--space-3); } }

/* ---------- Formulários (módulo Formulário de contato do Divi) ---------- */
.sv-form-titulo { margin: 0 0 var(--space-2); }
.sv-form { max-width: var(--leitura); margin: var(--space-6) auto 0; }
.sv-form .et_pb_contact_form { display: grid; grid-template-columns: 1fr; gap: var(--space-4); margin: 0; }
.sv-form .et_pb_contact_field { width: 100% !important; margin: 0 !important; padding: 0 !important; float: none !important; }
.sv-form .et_pb_contact_field_last, .sv-form .et_pb_contact_field[data-type="text"], .sv-form .et_pb_contact_field.sv-largo { grid-column: 1 / -1; }
.sv-form .et_pb_contact_form_label { position: static !important; display: block !important; width: auto; height: auto; clip: auto; margin-bottom: var(--space-2); font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.sv-form input.input, .sv-form textarea.input, .sv-form .et_pb_contact_captcha { width: 100%; padding: var(--space-3) var(--space-4) !important; border: 2px solid var(--texto-suave) !important; border-radius: var(--radius-0) !important; background: var(--branco) !important; color: var(--tinta) !important; font: 400 17px/1.5 var(--font-sans) !important; }
.sv-form textarea.input { min-height: 160px; }
.sv-form input.input:focus, .sv-form textarea.input:focus { outline: 3px solid var(--verde); outline-offset: 3px; border-color: var(--tinta) !important; }
.sv-form .et_contact_bottom_container { grid-column: 1 / -1; display: flex; align-items: center; justify-content: flex-end; gap: var(--space-4); float: none; margin: 0; }
.sv-form .et_pb_contact_right { color: inherit; }
.sv-form .et_pb_contact_captcha { width: 72px; display: inline-block; }
.sv-form .et_pb_contact_submit, .sv-form .et_pb_button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; margin: 0; padding: 0 var(--space-6) !important; font: 800 14px/1 var(--font-sans) !important; letter-spacing: .04em; text-transform: uppercase; background: var(--verde) !important; color: var(--on-verde) !important; border: 2px solid var(--verde) !important; border-radius: var(--radius-0) !important; cursor: pointer; transition: background .15s, color .15s; }
.sv-form .et_pb_contact_submit:hover, .sv-form .et_pb_button:hover { background: var(--verde-escuro) !important; border-color: var(--verde-escuro) !important; color: var(--branco) !important; padding: 0 var(--space-6) !important; }
.sv-form .et_pb_contact_submit::after, .sv-form .et_pb_button::after { display: none !important; }
.sv-form .et-pb-contact-message { grid-column: 1 / -1; font-weight: 700; }
.sv-escuro .sv-form input.input, .sv-escuro .sv-form textarea.input { border-color: var(--texto-suave-escuro) !important; }

/* ---------- Artigo (single.php) ---------- */
.sv-artigo-topo { padding-top: 120px; padding-bottom: var(--space-8); }
.sv-artigo h1 { font-size: clamp(30px, 2vw + 1rem, 44px); }
.sv-artigo-capa { max-width: var(--container); margin: 0 auto; padding: 0 var(--space-6); }
.sv-artigo-capa img { width: 100%; max-height: 640px; object-fit: cover; border-radius: var(--radius-sm); }
.sv-artigo-corpo { padding: var(--space-8) var(--space-5) var(--space-9); }
.sv-artigo-corpo .sv-texto img { border-radius: var(--radius-sm); }
.sv-artigo-corpo .gallery, .sv-artigo-corpo .et_pb_gallery_grid .et_pb_gallery_items { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); gap: var(--space-3); }
.sv-artigo-corpo .et_pb_gallery_item { width: auto !important; margin: 0 !important; }
.sv-artigo-nav { display: flex; justify-content: space-between; gap: var(--space-5); margin-top: var(--space-8); padding-top: var(--space-5); border-top: 1px solid var(--linha-clara); }

/* ---------- Rodapé global ---------- */
.sv-rodape { background: var(--preto); color: var(--branco); font-size: 15px; line-height: 1.6; }
.sv-rodape-grade { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: var(--space-7); padding-top: var(--space-9); padding-bottom: var(--space-8); }
.sv-rodape img { height: 112px; width: auto; margin-bottom: var(--space-4); }
.sv-rodape h2 { margin: 0 0 var(--space-4); font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--verde); font-family: var(--font-sans); line-height: 1.3; }
.sv-rodape p { margin: 0 0 var(--space-3); color: var(--texto-suave-escuro); }
.sv-rodape p strong { color: var(--branco); }
.sv-rodape a { color: var(--branco); text-decoration: none; }
.sv-rodape a:hover { color: var(--verde); }
.sv-rodape ul { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); }
.sv-rodape-social { display: flex; gap: var(--space-3); margin-top: var(--space-4); }
.sv-rodape-social a { display: grid; place-items: center; width: 40px; height: 40px; border-radius: var(--radius-full); background: var(--verde); color: var(--on-verde); }
.sv-rodape-social a:hover { background: var(--branco); color: var(--tinta); }
.sv-rodape-social svg { width: 18px; height: 18px; fill: currentColor; }
.sv-rodape-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3); padding-top: var(--space-5); padding-bottom: var(--space-5); border-top: 1px solid var(--linha-escura); font-size: 14px; color: var(--texto-suave-escuro); }
@media (max-width: 900px) { .sv-rodape-grade { grid-template-columns: 1fr; gap: var(--space-6); } }

/* Páginas antigas (sem o layout do tema) recebem ao menos a tipografia do sistema */
body.sv-header-solido #main-content h1, body.sv-header-solido #main-content h2 { font-family: var(--font-display); }

/* Utilitários de página */
.sv-acoes.sv-centro-texto { justify-content: center; }
.sv-destaque-img.sv-larga { aspect-ratio: 2 / 1; }
.sv-secao .et_pb_row.sv-colunas { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-7); max-width: calc(var(--container) + 2 * var(--space-6)); margin: 0 auto; padding: clamp(64px, 6vw, 96px) var(--space-6); }
.sv-secao .et_pb_row.sv-colunas > .et_pb_column { width: auto !important; }
@media (max-width: 900px) { .sv-secao .et_pb_row.sv-colunas { grid-template-columns: 1fr; padding-left: var(--space-4); padding-right: var(--space-4); } }
.sv-secao .sv-colunas .sv-form { margin-top: 0; max-width: none; padding: 0; }
.sv-contatos { list-style: none; margin: var(--space-6) 0 0; padding: 0; display: grid; gap: var(--space-5); }
.sv-contatos li { display: grid; gap: var(--space-1); }
.sv-contatos strong { font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; color: var(--verde-escuro); }
.sv-contatos a { color: var(--tinta); font-weight: 700; text-decoration: none; }
.sv-contatos a:hover { color: var(--verde-escuro); text-decoration: underline; }
.sv-widget { min-height: 200px; }
.sv-aviso { padding: var(--space-6); border: 2px dashed var(--texto-suave); text-align: center; color: var(--texto-suave); }
.sv-form-titulo + .sv-intro { margin-bottom: 0; }
.sv-secao .sv-form { max-width: calc(var(--leitura) + 2 * var(--space-4)); margin: var(--space-6) auto 0; padding: 0 var(--space-4) clamp(64px, 6vw, 96px); }
.sv-mt-6 { margin-top: var(--space-6); }
.sv-mt-7 { margin-top: var(--space-7); }
.sv-grid.sv-topo { align-items: start; }

/* Nossa fé: logotipo da GAFCON sobre a Declaração de Jerusalém e foto de Richard Hooker */
.sv-logo-parceiro { display: block; width: 100%; max-width: 280px; height: auto; margin-bottom: var(--space-5); }
.sv-hooker { max-width: 360px; margin-bottom: var(--space-4); }

/* Contato: contatos em duas colunas, alinhadas com as colunas do formulário logo abaixo */
.sv-secao ul.sv-contatos-linha { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: var(--space-4); row-gap: var(--space-6); max-width: var(--leitura); margin: var(--space-7) auto 0; text-align: left; }
.sv-contatos-linha li { align-content: start; }
.sv-contatos-linha a, .sv-contatos-linha span { overflow-wrap: break-word; }
@media (max-width: 560px) { .sv-secao ul.sv-contatos-linha { grid-template-columns: 1fr; } }

/* Formulários: um campo abaixo do outro; texto do botão numa linha só */
.sv-form .et_pb_contact_submit, .sv-form .et_pb_button { white-space: nowrap; }

/* Mapa das igrejas: módulo Mapa do Divi na largura do conteúdo e lista por região */
.sv-secao .sv-mapa { max-width: var(--container); margin: var(--space-6) auto 0; padding: 0 var(--space-6); }
.sv-mapa .et_pb_map { height: clamp(360px, 55vh, 520px); }
.sv-mapa-previa { display: grid; place-items: center; min-height: 360px; background: var(--grafite); color: var(--texto-suave-escuro); text-align: center; }
.sv-lista-mapa li > .sv-eyebrow { margin: 0; color: var(--verde-escuro); }
.sv-lista-mapa ul { margin: var(--space-2) 0 0; padding: 0; list-style: none; }
.sv-lista-mapa-links { display: flex; flex-wrap: wrap; gap: var(--space-5); margin-top: var(--space-3); }
@media (max-width: 767px) { .sv-secao .sv-mapa { padding: 0 var(--space-4); } }

/* Palavra e Vida: leitura bíblica do dia, botões das categorias e páginas de categoria */
.sv-leitura-do-dia { max-width: var(--leitura); margin: 0 auto; text-align: center; }
.sv-leitura-do-dia .sv-acoes { justify-content: center; gap: var(--space-5); }
.et_pb_section:has(.sv-leitura-vazia), .sv-secao:has(.sv-leitura-vazia) { display: none; }
.sv-categorias { justify-content: center; }
.sv-arquivo .sv-artigo-topo .sv-container { text-align: center; }
.sv-arquivo .sv-display { font-size: clamp(32px, 2.2vw + 1rem, 44px); line-height: 1.05; margin: 0 auto; }
.sv-arquivo .sv-eyebrow a { color: inherit; text-decoration: none; }
.sv-arquivo .sv-intro { max-width: var(--leitura); margin: var(--space-4) auto 0; }
.sv-paginacao { margin-top: var(--space-8); }
.sv-paginacao .nav-links { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-2); }
.sv-paginacao .page-numbers { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 var(--space-3); border: 2px solid var(--tinta); color: var(--tinta); font-weight: 600; text-decoration: none; }
.sv-paginacao .page-numbers.current, .sv-paginacao a.page-numbers:hover { background: var(--tinta); color: var(--branco); }
.sv-paginacao .page-numbers.dots { border-color: transparent; }

/* Tradução: PT · EN · ES no cabeçalho; esconde a barra e os balões do tradutor do Google */
.sv-idiomas { display: flex; align-items: center; gap: 2px; }
.sv-idiomas button { min-width: 36px; min-height: 36px; padding: 0 var(--space-2); background: none; border: 0; border-bottom: 2px solid transparent; color: inherit; font-family: var(--font-sans); font-size: 13px; font-weight: 800; letter-spacing: .04em; cursor: pointer; opacity: .75; }
.sv-idiomas button:hover, .sv-idiomas button:focus-visible { opacity: 1; }
.sv-idiomas button[aria-pressed="true"] { opacity: 1; border-bottom-color: var(--laranja); }
.sv-header.sv-fixo .sv-idiomas { color: var(--branco); }
@media (max-width: 767px) { .sv-header-acoes { gap: var(--space-3); } .sv-idiomas button { min-width: 32px; padding: 0 4px; } }
body > .skiptranslate, iframe.skiptranslate, .goog-te-banner-frame, #goog-gt-tt, .goog-te-balloon-frame { display: none !important; }
body { top: 0 !important; }
.goog-text-highlight { background: none !important; box-shadow: none !important; }
