/*
Theme Name: Tema GEIM
Theme URI: https://example.com/
Author: Grupo Espírita Irmã Marisa
Description: Tema institucional do Grupo Espírita Irmã Marisa (Osasco/SP), em estilo portal. Tema clássico, sem frameworks.
Version: 2.22.7
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: tema-geim
*/

/* =========================================================
   ÍNDICE
   1.  Cores (variáveis) e base
   2.  Cabeçalho: faixa superior, logo e menu
   3.  Layout das páginas internas (conteúdo + barra lateral)
   4.  Barra lateral
   5.  Início: carrossel, áreas, destaques, cartões
   6.  Blocos comuns: títulos, textos, números, citação
   7.  Carta, tabelas, escala, agenda
   8.  Assistência social, fotos, ensino, projetos, contato
   9.  Feedback e Pedido de Vibrações
   10. Conteúdo do editor e lista de notícias
   11. Rodapé
   12. Responsivo
   ========================================================= */


/* 1. CORES E BASE ----------------------------------------- */
/* Verde e vermelho tirados da logo (rosas). Mude aqui para trocar o site todo. */
:root{
  --green:#0E7A2F;
  --green-dark:#0A5A22;
  --green-deep:#0F2E1A;
  --green-soft:#EAF5EC;
  --red:#D3141B;
  --red-dark:#A80F15;
  --red-soft:#FDEDED;
  --gray-bg:#F5F5F5;
  --line:#E2E2E2;
  --text:#222222;
  --text-soft:#555555;
  --text-muted:#888888;
  --radius:6px;
}
*{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
body{
  background:#fff;
  color:var(--text);
  font-family:'Yantramanav',Helvetica,Arial,sans-serif;
  font-size:16px;
  line-height:1.6;
}
h1,h2,h3,h4{ line-height:1.25; font-weight:700; }
img{ max-width:100%; height:auto; }
a{ color:var(--green); }
a:hover{ color:var(--red); }

.wrap{ max-width:1140px; margin:0 auto; padding:0 20px; }
.icon{ vertical-align:-2px; flex-shrink:0; }

.screen-reader-text{
  position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(1px,1px,1px,1px); white-space:nowrap;
}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--green); color:#fff; font-weight:700; font-size:14px;
  padding:11px 22px; border-radius:var(--radius); text-decoration:none;
  border:none; cursor:pointer; font-family:inherit; text-transform:uppercase; letter-spacing:0.02em;
  transition:background .15s;
}
.btn:hover{ background:var(--green-dark); color:#fff; }
.btn-red{ background:var(--red); }
.btn-red:hover{ background:var(--red-dark); }
.btn-light{ background:#fff; color:var(--green-dark); }
.btn-light:hover{ background:var(--green-soft); color:var(--green-dark); }


/* 2. CABEÇALHO -------------------------------------------- */

/* Faixa superior */
.topbar{ background:var(--green-dark); color:#E6F2E9; font-size:13px; }
.topbar-inner{ display:flex; justify-content:space-between; align-items:center; gap:16px; min-height:38px; }
.topbar-info{ display:flex; gap:22px; flex-wrap:wrap; }
.topbar-info span{ display:inline-flex; align-items:center; gap:6px; }
.topbar-info a{ color:#fff; text-decoration:none; }
.topbar-info a:hover{ text-decoration:underline; }
.topbar-actions{ display:flex; align-items:center; gap:16px; }
.topbar-link{ color:#fff; font-weight:700; text-decoration:none; text-transform:uppercase; font-size:12.5px; letter-spacing:0.03em; }
.topbar-link:hover{ color:#fff; text-decoration:underline; }
.topbar-social{ color:#fff; display:inline-flex; align-items:center; opacity:.9; }
.topbar-social:hover{ color:#fff; opacity:1; }
.topbar-social .icon{ width:17px; height:17px; }

/* Aviso no topo (Personalizar > GEIM — Aviso no topo do site), nas cores da Casa. */
.site-aviso{ background:var(--green); border-bottom:3px solid var(--red); }
.site-aviso-inner{ display:flex; align-items:center; gap:14px; padding-top:14px; padding-bottom:14px; }
.site-aviso-label{ flex-shrink:0; background:var(--red); color:#fff; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.06em; padding:4px 10px; border-radius:20px; }
.site-aviso p{ font-size:16px; color:#fff; line-height:1.45; font-weight:500; }
.topbar-search{ display:flex; align-items:center; background:rgba(255,255,255,0.12); border-radius:20px; overflow:hidden; }
.topbar-search input{ background:none; border:none; color:#fff; padding:5px 12px; font-family:inherit; font-size:13px; width:150px; outline:none; }
.topbar-search input::placeholder{ color:#CFE3D5; }
.topbar-search button{ background:none; border:none; color:#fff; padding:5px 10px; cursor:pointer; display:flex; }

/* Faixa da logo */
.midbar{
  background:
    radial-gradient(circle at 85% 20%, rgba(211,20,27,0.07), transparent 40%),
    linear-gradient(90deg, #fff 0%, var(--green-soft) 100%);
  border-bottom:1px solid var(--line);
}
.midbar-inner{ display:flex; justify-content:space-between; align-items:center; gap:20px; padding-top:18px; padding-bottom:18px; }
.brand{ display:flex; align-items:center; gap:16px; text-decoration:none; }
.brand-logo{ width:96px; height:72px; object-fit:contain; background:#fff; border-radius:var(--radius); }
.brand-text{ display:flex; flex-direction:column; }
.brand-name{ font-size:26px; font-weight:900; color:var(--green-dark); line-height:1.1; }
.brand-tagline{ font-size:15px; color:var(--red); font-weight:500; margin-top:4px; }
.midbar-cta{ display:flex; flex-direction:column; align-items:flex-end; gap:6px; }
.midbar-note{ font-size:12.5px; color:var(--text-muted); }

/* Menu principal */
.navbar{
  background:var(--gray-bg); border-bottom:1px solid var(--line);
  position:sticky; top:0; z-index:30; box-shadow:0 2px 6px rgba(0,0,0,0.04);
}
body.admin-bar .navbar{ top:32px; }
.navbar-inner{ display:flex; align-items:center; }
.menu-list{ list-style:none; display:flex; flex-wrap:wrap; }
.menu-list > li{ position:relative; }
.menu-list > li > a{
  display:block; padding:15px 8px 12px; color:#6B6B6B; text-decoration:none;
  font-size:13.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.02em;
  border-bottom:3px solid transparent;
}
.menu-list > li:first-child > a{ padding-left:0; }
.menu-list > li > a:hover{ color:var(--green); }
.menu-list > .current-menu-item > a,
.menu-list > .current-menu-ancestor > a,
.menu-list > .current_page_item > a{ color:var(--green); border-bottom-color:var(--red); }
.menu-list .menu-item-has-children > a::after{ content:" ▾"; font-size:11px; }

/* Submenus */
.menu-list .sub-menu{
  list-style:none; position:absolute; left:0; top:100%; min-width:230px; z-index:40;
  background:#fff; border-top:3px solid var(--green); box-shadow:0 8px 20px rgba(0,0,0,0.12);
  display:none;
}
.menu-list li:hover > .sub-menu,
.menu-list li:focus-within > .sub-menu{ display:block; }
.menu-list .sub-menu a{ display:block; padding:10px 16px; color:var(--text); text-decoration:none; font-size:14.5px; border-bottom:1px solid var(--line); }
.menu-list .sub-menu li:last-child a{ border-bottom:none; }
.menu-list .sub-menu a:hover,
.menu-list .sub-menu .current-menu-item > a{ background:var(--green-soft); color:var(--green-dark); }

.menu-toggle{
  display:none; align-items:center; gap:10px; background:none; border:none;
  padding:12px 0; font:inherit; font-weight:700; font-size:15px; text-transform:uppercase;
  color:var(--text); cursor:pointer;
}
.menu-toggle-bars,
.menu-toggle-bars::before,
.menu-toggle-bars::after{ display:block; width:20px; height:2px; background:var(--green-dark); position:relative; content:""; }
.menu-toggle-bars::before{ position:absolute; top:-6px; }
.menu-toggle-bars::after{ position:absolute; top:6px; }


/* 3. LAYOUT DAS PÁGINAS INTERNAS -------------------------- */
.page-layout{
  display:grid; grid-template-columns:280px 1fr; gap:40px;
  grid-template-areas:"sidebar content";
  padding-top:30px; padding-bottom:56px;
}
.page-content{ grid-area:content; min-width:0; }
.page-sidebar{ grid-area:sidebar; }

.breadcrumbs{ font-size:13px; color:var(--text-muted); margin-bottom:8px; }
.breadcrumbs a{ color:var(--text-muted); text-decoration:none; }
.breadcrumbs a:hover{ color:var(--green); }
.breadcrumbs span[aria-hidden]{ margin:0 6px; }
.page-title{ font-size:34px; font-weight:900; color:#333; margin-bottom:26px; padding-bottom:14px; border-bottom:1px solid var(--line); }

/* Cada bloco (section) dentro do conteúdo */
.block{ margin-bottom:44px; }
.block:last-child{ margin-bottom:0; }


/* 4. BARRA LATERAL ---------------------------------------- */
.side-box{ margin-bottom:30px; }
.block-title{
  font-size:16px; font-weight:700; color:#555; text-transform:uppercase; letter-spacing:0.03em;
  padding-bottom:8px; margin-bottom:14px; border-bottom:2px solid var(--line); position:relative;
}
.block-title::after{ content:""; position:absolute; left:0; bottom:-2px; width:48px; height:2px; background:var(--green); }

.side-schedule{ list-style:none; font-size:14px; }
.side-schedule li{ display:grid; grid-template-columns:62px 1fr auto; gap:8px; padding:8px 0; border-bottom:1px dashed var(--line); }
.side-day{ font-weight:700; color:var(--green-dark); }
.side-act{ color:var(--text-soft); line-height:1.35; }
.side-time{ font-weight:700; color:var(--red); white-space:nowrap; }
.side-subpages{ list-style:none; }
.side-subpages a{ display:block; padding:8px 12px; border-left:3px solid var(--line); color:var(--text); text-decoration:none; font-size:15px; }
.side-subpages li + li a{ padding-left:24px; }
.side-subpages a:hover{ border-left-color:var(--green); color:var(--green-dark); background:var(--gray-bg); }
.side-subpages a.is-current{ border-left-color:var(--red); color:var(--green-dark); font-weight:700; background:var(--green-soft); }
.side-contact p{ font-size:14.5px; color:var(--text-soft); margin-bottom:8px; }

/* Lista "Nossas áreas" (barra lateral e Início) */
.areas-list{ list-style:none; }
.areas-list li + li{ margin-top:7px; }
.area-item{
  display:flex; align-items:center; gap:12px; background:#EDEDED; border-radius:var(--radius);
  padding:6px 12px 6px 6px; color:var(--green-dark); text-decoration:none; font-size:15px; font-weight:500;
  transition:background .15s, transform .15s;
}
.area-item:hover,
.area-item.is-current{ background:var(--green-soft); color:var(--green-dark); transform:translateX(3px); }
.area-icon{
  width:34px; height:34px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:12px; font-weight:900; letter-spacing:0.02em;
  box-shadow:inset 0 -3px 0 rgba(0,0,0,0.15);
}
.area-verde{ background:var(--green); }
.area-vermelho{ background:var(--red); }


/* 5. INÍCIO ----------------------------------------------- */
.home-top{ display:grid; grid-template-columns:1fr 330px; gap:30px; padding-top:30px; padding-bottom:40px; }

/* Carrossel */
.carousel{ position:relative; border-radius:var(--radius); overflow:hidden; min-height:380px; background:var(--green-dark); }
.slide{
  position:absolute; inset:0; display:flex; align-items:flex-end;
  padding:40px 70px 56px; color:#fff; opacity:0; visibility:hidden; transition:opacity .6s, visibility .6s;
  background-size:cover; background-position:center;
}
.slide.is-active{ opacity:1; visibility:visible; }
.slide-verde{ background-image:linear-gradient(135deg, var(--green-dark) 0%, var(--green) 100%); }
.slide-vermelho{ background-image:linear-gradient(135deg, var(--red-dark) 0%, var(--red) 100%); }
.slide-foto{ background-position:center top; } /* fotos do carrossel mostram a parte de cima (letreiro da Casa) */
.slide-foto::before{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(10,50,25,0.88) 0%, rgba(10,50,25,0.55) 55%, rgba(10,50,25,0.15) 100%); }
.slide-content{ max-width:520px; position:relative; z-index:1; }
/* Banner com imagem ao lado (retrato ou ilustração) */
.slide.has-media .slide-content{ max-width:56%; }
.slide-media{ position:absolute; right:72px; top:50%; transform:translateY(-50%); width:34%; max-width:270px; margin:0; z-index:1; text-align:center; }
.slide-media img{ display:block; width:100%; height:auto; border:6px solid rgba(255,255,255,0.92); border-radius:var(--radius); box-shadow:0 12px 30px rgba(0,0,0,0.35); }
.slide-media.is-illustration{ max-width:300px; }
.slide-media.is-illustration img{ border:none; box-shadow:none; }
.slide-media figcaption{ margin-top:10px; font-size:12.5px; line-height:1.35; color:#fff; opacity:0.92; font-style:italic; }
.slide .slide-title-main{ font-size:36px; font-weight:900; line-height:1.1; margin-bottom:10px; }
.slide-eyebrow{ display:inline-block; background:rgba(255,255,255,0.18); padding:3px 10px; border-radius:3px; font-size:12.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; margin-bottom:12px; }
.slide h2{ font-size:36px; font-weight:900; line-height:1.1; margin-bottom:10px; }
.slide p{ font-size:17px; opacity:0.92; margin-bottom:18px; }
.carousel-btn{
  position:absolute; top:50%; transform:translateY(-50%); z-index:2;
  width:40px; height:40px; border-radius:50%; border:none; cursor:pointer;
  background:rgba(0,0,0,0.25); color:#fff; font-size:22px; line-height:1;
}
.carousel-btn:hover{ background:rgba(0,0,0,0.45); }
.carousel-prev{ left:14px; }
.carousel-next{ right:14px; }
.carousel-dots{ position:absolute; left:0; right:0; bottom:16px; display:flex; justify-content:center; gap:8px; z-index:2; }
.carousel-dots button{ width:10px; height:10px; border-radius:50%; border:none; background:rgba(255,255,255,0.45); cursor:pointer; padding:0; }
.carousel-dots button.is-active{ background:#fff; }

/* Faixa de destaque (largura total) */
.highlight-band{ background:linear-gradient(90deg, var(--green-dark), var(--green)); color:#fff; }
.highlight-inner{ display:grid; grid-template-columns:1.4fr 1fr; gap:40px; align-items:center; padding-top:40px; padding-bottom:40px; }
.highlight-band .slide-eyebrow{ margin-bottom:10px; }
.highlight-band h2{ font-size:32px; font-weight:900; margin-bottom:10px; }
.highlight-band p{ font-size:16.5px; opacity:0.92; }
.highlight-quote{ border-left:4px solid var(--red); background:rgba(255,255,255,0.08); padding:18px 22px; font-size:19px; font-style:italic; }
.highlight-quote small{ display:block; font-style:normal; font-size:13px; opacity:0.8; margin-top:8px; }
.highlight-actions{ margin-top:20px; display:flex; gap:10px; flex-wrap:wrap; }

/* Seções do Início */
.home-section{ padding-top:44px; padding-bottom:44px; }
.home-section.gray{ background:var(--gray-bg); }

/* Cartões (grade de 3) */
.cards{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.card{
  display:flex; flex-direction:column; background:#fff; border-radius:var(--radius); overflow:hidden;
  border:1px solid var(--line); text-decoration:none; color:var(--text);
  transition:box-shadow .2s, transform .2s;
}
.card:hover{ box-shadow:0 10px 24px rgba(0,0,0,0.10); transform:translateY(-3px); color:var(--text); }
.card-top{ min-height:120px; padding:20px 22px; display:flex; align-items:flex-end; color:#fff; background-size:cover; background-position:center; position:relative; }
.card-top.verde{ background-image:linear-gradient(135deg, var(--green-dark), var(--green)); }
.card-top.vermelho{ background-image:linear-gradient(135deg, var(--red-dark), var(--red)); }
.card-top.foto::before{ content:""; position:absolute; inset:0; background:linear-gradient(0deg, rgba(0,0,0,0.6), rgba(0,0,0,0.05)); }
.card-top h3{ font-size:23px; font-weight:900; text-transform:uppercase; letter-spacing:0.01em; position:relative; }
.card-body{ padding:16px 22px 20px; font-size:15px; color:var(--text-soft); flex:1; display:flex; flex-direction:column; }
.card-body p{ flex:1; }
.card-more{ margin-top:12px; font-size:13.5px; font-weight:700; color:var(--red); text-transform:uppercase; }

/* Programação em cartões de dia */
.week{ display:grid; grid-template-columns:repeat(6,1fr); gap:12px; }
.week-day{ background:#fff; border-radius:var(--radius); border-top:4px solid var(--green); padding:14px 14px 16px; box-shadow:0 1px 3px rgba(0,0,0,0.06); }
.week-day:nth-child(even){ border-top-color:var(--red); }
.week-day .d{ font-weight:900; color:var(--green-dark); text-transform:uppercase; font-size:14px; }
.week-day .t{ font-weight:700; color:var(--red); font-size:20px; margin:2px 0 6px; }
.week-day .a{ font-size:14px; color:var(--text-soft); line-height:1.35; }

/* Notícias no Início */
.news{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.news-item a{ text-decoration:none; }
.news-thumb{ display:block; aspect-ratio:16/10; background:var(--green-soft) center/cover; border-radius:var(--radius); margin-bottom:10px; }
.news-item h3{ font-size:18px; color:var(--text); }
.news-item h3 a{ color:inherit; }
.news-item h3 a:hover{ color:var(--green); }
.news-date{ font-size:12.5px; color:var(--text-muted); margin-top:4px; }


/* 6. BLOCOS COMUNS ---------------------------------------- */
.section-eyebrow{ font-size:12.5px; color:var(--red); font-weight:700; text-transform:uppercase; letter-spacing:0.06em; margin-bottom:4px; }
.section-head{ margin-bottom:22px; }
.section-head h2{
  font-size:25px; font-weight:900; color:var(--text); padding-bottom:10px; margin-bottom:12px;
  border-bottom:2px solid var(--line); position:relative;
}
.section-head h2::after{ content:""; position:absolute; left:0; bottom:-2px; width:60px; height:2px; background:var(--green); }
.section-head .desc{ color:var(--text-soft); font-size:16px; max-width:44em; }

.text-block{ font-size:16px; color:var(--text-soft); max-width:46em; }
.text-block + .text-block{ margin-top:12px; }
.small-note{ font-size:14px; color:var(--text-soft); margin-top:16px; }
.sub-title{ font-size:19px; color:var(--green-dark); margin-top:32px; margin-bottom:8px; }
.sub-title.first{ margin-top:0; }
.post-date{ font-size:13px; color:var(--text-muted); margin-bottom:18px; }
.more-link{ display:inline-block; margin-top:10px; font-size:14px; font-weight:700; color:var(--red); text-decoration:none; text-transform:uppercase; }
.more-link:hover{ text-decoration:underline; color:var(--red-dark); }

/* Citação */
.quote{ font-size:22px; font-style:italic; color:var(--green-dark); border-left:4px solid var(--red); padding:4px 0 4px 18px; max-width:32em; margin:6px 0 8px; }
.quote-cite{ font-size:14px; color:var(--text-muted); padding-left:22px; }

/* Números pequenos */
.mini-stats{ display:flex; gap:32px; margin-top:24px; flex-wrap:wrap; }
.mini-stats.flush{ margin-top:0; }
.mini-stat{ border-left:3px solid var(--red); padding-left:12px; }
.mini-stat .num{ font-weight:900; font-size:22px; color:var(--green-dark); line-height:1.2; }
.mini-stat .label{ font-size:13.5px; color:var(--text-soft); }

/* Números grandes */
.stats{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-top:22px; }
.stats.stats-3{ grid-template-columns:repeat(3,1fr); }
.stat{ background:var(--green-soft); border-radius:var(--radius); padding:20px 18px; border-bottom:4px solid var(--green); }
.stat:nth-child(even){ background:var(--red-soft); border-bottom-color:var(--red); }
.stat .num{ font-size:30px; font-weight:900; color:var(--green-dark); line-height:1.1; }
.stat:nth-child(even) .num{ color:var(--red-dark); }
.stat .label{ font-size:13.5px; color:var(--text-soft); margin-top:6px; line-height:1.35; }

/* Aviso "IMPORTANTE" (template-parts/aviso-saude.php) */
.notice{
  display:flex; gap:16px; align-items:flex-start;
  background:var(--red-soft); border:1px solid #F3C4C6; border-left:5px solid var(--red);
  border-radius:0 var(--radius) var(--radius) 0; padding:20px 22px; margin:6px 0 26px;
}
.notice-icon{
  width:38px; height:38px; flex-shrink:0; border-radius:50%; background:var(--red); color:#fff;
  font-weight:900; font-size:22px; display:flex; align-items:center; justify-content:center;
}
.notice-label{ font-size:13px; font-weight:900; color:var(--red); text-transform:uppercase; letter-spacing:0.08em; margin-bottom:4px; }
.notice-body p{ font-size:15px; color:var(--text-soft); }
.notice-body p + p{ margin-top:10px; }
.notice-body .notice-main{ font-size:16.5px; color:var(--text); line-height:1.55; }
.notice-body .notice-main strong{ color:var(--red-dark); }
.notice-book{ padding-top:10px; border-top:1px dashed #F3C4C6; font-style:italic; }

/* Quadros com título e lista de itens (usados na Livraria e Biblioteca) */
.signup{ border:1px solid var(--line); border-top:4px solid var(--red); border-radius:var(--radius); padding:24px 26px; }
.signup[id]{ scroll-margin-top:70px; }
.signup h3{ font-size:22px; color:var(--green-dark); margin-bottom:6px; }
.signup-head p{ font-size:16px; color:var(--text-soft); }
.check-list{ list-style:none; }
.check-list li{ position:relative; padding:5px 0 5px 28px; font-size:15px; color:var(--text-soft); }
.check-list li::before{
  content:"✓"; position:absolute; left:0; top:6px; width:19px; height:19px; border-radius:50%;
  background:var(--green); color:#fff; font-size:12px; font-weight:900; display:flex; align-items:center; justify-content:center;
}

/* Cartão que abre um painel (assets/js/expandir.js) */
.expandable{ cursor:pointer; transition:box-shadow .2s, transform .2s, background .2s; }
.expandable:hover{ box-shadow:0 8px 20px rgba(0,0,0,0.10); transform:translateY(-2px); }
.expandable.is-open{ background:var(--green-soft); box-shadow:0 0 0 2px var(--green) inset; }
.expand-toggle{
  margin-top:14px; background:var(--red); color:#fff; border:none; border-radius:var(--radius);
  padding:9px 16px; font-family:inherit; font-size:13.5px; font-weight:700; text-transform:uppercase; cursor:pointer;
}
.expand-toggle::after{ content:" ▾"; }
.expandable.is-open .expand-toggle{ background:var(--green-dark); }
.expandable.is-open .expand-toggle::after{ content:" ▴"; }
.expand-panel{ margin-top:20px; border:1px solid var(--line); border-top:4px solid var(--green); border-radius:var(--radius); padding:24px 26px; scroll-margin-top:70px; }

/* Linha do tempo (cronologia dos cursos) */
.timeline-title{ font-size:21px; color:var(--green-dark); margin-bottom:4px; }
.timeline-intro{ font-size:15px; color:var(--text-soft); margin-bottom:20px; }
.timeline{ list-style:none; position:relative; padding-left:0; }
.timeline::before{ content:""; position:absolute; left:39px; top:10px; bottom:10px; width:3px; background:var(--line); border-radius:2px; }
.timeline-item{ position:relative; display:grid; grid-template-columns:80px 1fr; gap:16px; align-items:start; }
.timeline-item + .timeline-item{ margin-top:12px; }
.timeline-year{
  position:relative; z-index:1; justify-self:center; width:42px; height:42px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px; font-weight:900;
}
.etapa-verde .timeline-year{ background:var(--green); }
.etapa-vermelho .timeline-year{ background:var(--red); }
.timeline-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:10px 16px; border-left:4px solid var(--green); }
.etapa-vermelho .timeline-card{ border-left-color:var(--red); }
.timeline-card strong{ font-size:17px; color:var(--text); }
.course-sub{ font-size:14px; font-weight:500; color:var(--text-soft); }

/* Ficha de detalhes de um curso (abre ao clicar no nome) */
.course-details{ display:block; }
.course-details summary{ list-style:none; cursor:pointer; display:flex; flex-direction:column; }
.course-details summary::-webkit-details-marker{ display:none; }
.course-details summary:hover strong{ color:var(--green-dark); }
.course-more{ align-self:flex-start; margin-top:4px; font-size:12.5px; font-weight:700; color:var(--red); text-transform:uppercase; }
.course-more .when-open,
.course-details[open] .course-more .when-closed{ display:none; }
.course-details[open] .course-more .when-open{ display:inline; }
.course-details[open]{ background:var(--green-soft); }
.course-info{ margin-top:12px; padding-top:12px; border-top:1px solid var(--line); }
.course-info h4{ font-size:17px; color:var(--green-dark); text-transform:uppercase; letter-spacing:0.03em; margin-bottom:8px; }
.course-info p{ font-size:15px; color:var(--text-soft); line-height:1.65; }
.course-info p + p{ margin-top:10px; }
.course-req{ margin-top:14px; background:#fff; border:1px solid var(--line); border-left:4px solid var(--red); border-radius:0 var(--radius) var(--radius) 0; padding:12px 14px; font-size:14.5px; color:var(--text); }
.course-req-title{ display:block; font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--red); margin-bottom:2px; }
.course-facts{ display:grid; grid-template-columns:repeat(auto-fit, minmax(170px, 1fr)); gap:10px; margin-top:14px; }
.course-facts div{ background:#fff; border-radius:var(--radius); padding:10px 12px; border-top:3px solid var(--red); }
.course-facts div:nth-child(even){ border-top-color:var(--green); }
.course-facts dt{ font-size:11.5px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--red); }
.course-facts dd{ font-size:14.5px; color:var(--text); margin:2px 0 0; }

/* Cursos oferecidos conforme a demanda (abaixo da cronologia) */
.on-demand{ margin-top:26px; padding-top:22px; border-top:1px dashed var(--line); }
.on-demand-list{ list-style:none; display:flex; flex-wrap:wrap; gap:10px; }
.on-demand-list li{
  background:var(--gray-bg); border:1px dashed var(--text-muted); border-radius:var(--radius);
  padding:10px 16px; font-size:16px; font-weight:700; color:var(--text);
}
.feesp-note{ margin:0 0 24px; font-size:15.5px; color:var(--text); }

/* Aviso de feriados (geim_aviso_feriados() no functions.php) */
.holiday-note{
  display:flex; gap:10px; align-items:flex-start; margin-top:16px;
  background:var(--gray-bg); border-left:4px solid var(--red); border-radius:0 var(--radius) var(--radius) 0;
  padding:12px 16px; font-size:14.5px; color:var(--text-soft); line-height:1.5;
}
.holiday-note .icon{ width:18px; height:18px; color:var(--red); margin-top:2px; }
.holiday-note strong{ color:var(--text); }
.holiday-note.is-compact{ font-size:13px; padding:10px 12px; margin-top:12px; }
.holiday-note.is-compact .icon{ width:15px; height:15px; }
.highlight-band .holiday-note{ background:rgba(255,255,255,0.1); color:#E6F2E9; }

/* Bazar da Pechincha */
.bazar-next{
  display:flex; gap:22px; align-items:center; background:var(--green-soft);
  border-left:5px solid var(--red); border-radius:0 var(--radius) var(--radius) 0; padding:22px 24px;
}
.bazar-date{
  flex-shrink:0; width:110px; padding:12px 0; text-align:center; background:#fff;
  border-radius:var(--radius); border-top:6px solid var(--red); box-shadow:0 2px 8px rgba(0,0,0,0.06);
}
.bazar-day{ display:block; font-size:44px; font-weight:900; color:var(--green-dark); line-height:1; }
.bazar-month{ display:block; font-size:14px; font-weight:700; color:var(--red); text-transform:uppercase; margin-top:4px; }
.bazar-label{ display:block; font-size:12.5px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:0.06em; }
.bazar-when{ font-size:22px; font-weight:900; color:var(--green-dark); line-height:1.25; margin:2px 0 8px; }
.bazar-line{ display:flex; align-items:center; gap:6px; font-size:15px; color:var(--text-soft); }
.bazar-line + .bazar-line{ margin-top:4px; }
.bazar-line .icon{ color:var(--green); }
.bazar-grid{ display:grid; grid-template-columns:1fr 260px; gap:22px; align-items:start; margin-top:22px; }
.bazar-poster, .home-event-poster{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:10px; }
.bazar-poster .card-photos, .home-event-poster .card-photos{ margin-top:0; padding-top:0; }
.bazar-poster .card-photos a:only-child img,
.home-event-poster .card-photos a:only-child img{ height:auto; } /* cartaz aparece inteiro, em qualquer proporção */
.bazar-last{ margin-top:18px; font-size:15px; color:var(--text-soft); }

/* Destaque do dia no topo da página inicial (Personalizar > GEIM — Destaque na página inicial) */
.home-destaque{ background:var(--green-soft); border-bottom:1px solid var(--line); padding:26px 0; }
.home-destaque-inner{ display:grid; grid-template-columns:300px 1fr; gap:34px; align-items:center; }
.home-destaque-poster{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:6px; box-shadow:0 4px 18px rgba(0,0,0,0.08); }
.home-destaque-poster .card-photos{ margin-top:0; padding-top:0; }
.home-destaque-poster .card-photos a:only-child img{ height:auto; }
.home-destaque-text h2{ font-size:32px; font-weight:900; color:var(--green-dark); line-height:1.15; margin:6px 0 10px; }
.home-destaque-text p{ font-size:17px; color:var(--text-soft); max-width:34em; margin-bottom:18px; }

/* Próximo evento na página inicial */
.home-event{ background:var(--green-soft); }
.home-events{ display:grid; grid-template-columns:repeat(auto-fit, minmax(420px, 1fr)); gap:22px; }
.home-event-card{ display:grid; grid-template-columns:170px 1fr; gap:18px; align-items:start; background:#fff; border-radius:var(--radius); padding:16px; box-shadow:0 2px 10px rgba(0,0,0,0.05); }
.home-events.is-single .home-event-card{ grid-template-columns:280px 1fr; gap:30px; padding:22px; }
.home-event-poster{ padding:6px; }
.home-event-title{ font-size:21px; font-weight:900; color:var(--text); margin:2px 0 4px; line-height:1.2; }
.home-event-text .bazar-when{ font-size:17px; margin:0 0 6px; }
.home-event-desc{ font-size:15px; color:var(--text-soft); margin:10px 0 14px; }

/* Cartões da página Eventos */
.event-list{ display:grid; gap:16px; }
.event-card{ display:grid; grid-template-columns:130px 1fr; gap:18px; border:1px solid var(--line); border-top:4px solid var(--green); border-radius:var(--radius); padding:14px; background:#fff; }
.event-card:nth-child(even){ border-top-color:var(--red); }
.event-thumb{ display:block; min-height:170px; border-radius:var(--radius); background:var(--gray-bg) center top/cover no-repeat; }
.event-body{ display:flex; flex-direction:column; align-items:flex-start; }
.event-title{ font-size:20px; font-weight:900; color:var(--green-dark); margin:4px 0 6px; }
.event-summary{ font-size:15px; color:var(--text-soft); }
.event-body .card-more{ margin-top:10px; }

/* Quero doar (page-templates/quero-doar.php) */
.donate-grid{ display:grid; grid-template-columns:1fr 300px; gap:28px; align-items:start; }
.donate-text h3{ font-size:20px; color:var(--green-dark); margin-bottom:10px; }
.donate-text .check-list li{ padding-top:7px; padding-bottom:7px; }
.donate-note{ font-size:15px; color:var(--text-soft); font-style:italic; margin:14px 0 18px; }
.pix-box{ background:var(--green-soft); border-left:5px solid var(--green); border-radius:0 var(--radius) var(--radius) 0; padding:18px 20px; display:flex; flex-direction:column; gap:2px; }
.pix-label{ font-size:12px; font-weight:700; color:var(--red); text-transform:uppercase; letter-spacing:0.05em; margin-top:8px; }
.pix-label:first-child{ margin-top:0; }
.pix-key-row{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.pix-key{ font-size:22px; color:var(--green-dark); letter-spacing:0.02em; }
.pix-copy{ padding:8px 14px; font-size:12.5px; }
.pix-tip{ font-size:13.5px; color:var(--text-soft); margin-top:10px; }
.donate-poster{ background:#fff; border:1px solid var(--line); border-radius:var(--radius); padding:10px; text-align:center; }
.donate-poster .card-photos{ margin-top:0; padding-top:0; }
.donate-poster .card-photos a:only-child img{ height:auto; }
.donate-poster-tip{ font-size:13px; color:var(--text-muted); margin-top:6px; }

/* Item "Quero doar" do menu, em destaque */
.menu-list > li.menu-doar > a{ color:var(--red); }
.menu-list > li.menu-doar > a::before{ content:"♥ "; }

/* Biblioteca */
.book-quote{
  display:flex; gap:18px; align-items:flex-start; background:var(--green-soft);
  border-left:4px solid var(--green); border-radius:0 var(--radius) var(--radius) 0; padding:22px 26px;
}
.book-quote p{ font-size:19px; font-style:italic; color:var(--green-dark); line-height:1.55; }
.book-icon{
  width:52px; height:52px; flex-shrink:0; border-radius:50%; background:var(--green); color:#fff;
  display:flex; align-items:center; justify-content:center;
}
.week.week-5{ grid-template-columns:repeat(5,1fr); }
.week-5 .t{ font-size:17px; }
.signup-docs{ margin-top:12px; }
.book-options{ display:grid; grid-template-columns:1fr 1fr; gap:20px; align-items:start; }
#livraria{ border-top-color:var(--green); }
.option-tag{ display:inline-block; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; padding:3px 10px; border-radius:20px; margin-bottom:8px; color:#fff; }
.tag-verde{ background:var(--green); }
.tag-vermelho{ background:var(--red); }
#horarios{ scroll-margin-top:70px; }

/* Chamada de ação (caixa com botão) */
.cta-box{
  display:flex; align-items:center; justify-content:space-between; gap:20px; flex-wrap:wrap;
  background:var(--green-soft); border-radius:var(--radius); padding:22px 26px; border-left:4px solid var(--red);
}
.cta-box h3{ font-size:20px; color:var(--green-dark); margin-bottom:4px; }
.cta-box p{ font-size:15px; color:var(--text-soft); }

.env-box{ background:var(--green-soft); border-left:4px solid var(--green); padding:16px 20px; font-size:15px; color:var(--text-soft); margin-top:18px; border-radius:0 var(--radius) var(--radius) 0; }
.env-box.spaced, .cta-box.spaced{ margin-top:26px; }


/* 7. CARTA, TABELAS, ESCALA, AGENDA ----------------------- */
.letter{
  background:#fff; border:1px solid var(--line); border-top:4px solid var(--green);
  border-radius:var(--radius); padding:36px 40px; box-shadow:0 2px 10px rgba(0,0,0,0.04);
}
.letter p{ font-size:17px; color:var(--text); line-height:1.8; margin-bottom:16px; max-width:40em; }
.letter .sign{ margin-top:24px; padding-top:16px; border-top:1px solid var(--line); }
.letter .sign .name{ font-size:19px; font-weight:700; color:var(--green-dark); }
.letter .sign .role{ font-size:14px; color:var(--red); font-weight:500; }

table.schedule{ width:100%; border-collapse:collapse; font-size:15px; }
table.schedule th{ text-align:left; background:var(--green); color:#fff; font-weight:700; font-size:13px; text-transform:uppercase; letter-spacing:0.03em; padding:11px 14px; }
table.schedule td{ padding:13px 14px; border-bottom:1px solid var(--line); vertical-align:top; }
table.schedule tr:nth-child(odd) td{ background:var(--gray-bg); }
table.schedule td.day{ color:var(--green-dark); font-weight:900; white-space:nowrap; }
table.schedule td.time{ color:var(--red); font-weight:700; white-space:nowrap; }
table.schedule td.activity{ font-weight:700; width:200px; }
table.schedule td.desc{ color:var(--text-soft); }
table.schedule td.desc strong{ color:var(--red); }
.table-scroll{ overflow-x:auto; }

/* Lista de horários de cada dia (página Atendimentos) */
table.schedule td.times{ width:46%; }
.time-list{ list-style:none; }
.time-list li{ display:flex; justify-content:space-between; gap:10px; padding:3px 0; border-bottom:1px dotted var(--line); font-size:14.5px; }
.time-list li:last-child{ border-bottom:none; }
.time-what{ color:var(--text); }
.time-when{ color:var(--red); font-weight:700; white-space:nowrap; text-align:right; }
table.schedule td.desc .activity-name{ display:block; color:var(--green-dark); font-size:15.5px; margin-bottom:4px; }

.escala-note{ background:var(--red-soft); border-left:4px solid var(--red); padding:14px 18px; font-size:15px; color:var(--text); margin:20px 0 26px; border-radius:0 var(--radius) var(--radius) 0; }
.calendar-embed{ border:1px solid var(--line); border-radius:var(--radius); padding:24px; background:var(--gray-bg); margin-top:26px; font-size:14.5px; color:var(--text-soft); }
.calendar-embed strong{ display:block; color:var(--green-dark); font-size:17px; margin-bottom:4px; }
.calendar-embed iframe{ width:100%; height:520px; border:0; margin-top:14px; display:block; background:#fff; }
.calendar-embed.map{ padding:0; overflow:hidden; }
.calendar-embed.map iframe{ margin-top:0; height:380px; }


/* 8. ASSISTÊNCIA SOCIAL, FOTOS, ENSINO, PROJETOS, CONTATO - */
.social-list{ display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:26px; }
.social-item{ background:#fff; border:1px solid var(--line); border-top:4px solid var(--green); border-radius:var(--radius); padding:18px 20px; }
.social-item:nth-child(4n+2),
.social-item:nth-child(4n+3){ border-top-color:var(--red); }
.social-item h3{ font-size:19px; color:var(--green-dark); margin-bottom:6px; }
.social-item p{ font-size:15px; color:var(--text-soft); }
.social-item .items{ font-size:14px; color:var(--text-muted); margin-top:8px; padding-top:8px; border-top:1px dashed var(--line); }

/* Cartão que é um link inteiro */
.link-card{ display:block; text-decoration:none; color:inherit; transition:box-shadow .2s, transform .2s; }
.link-card:hover{ box-shadow:0 8px 20px rgba(0,0,0,0.10); transform:translateY(-2px); color:inherit; }
.link-card .card-more{ display:inline-block; margin-top:10px; font-size:13.5px; font-weight:700; color:var(--red); text-transform:uppercase; }

/* Cartão com fotos (clicável) */
.has-gallery{ cursor:pointer; transition:box-shadow .2s, transform .2s; display:flex; flex-direction:column; }
.has-gallery .card-photos{ margin-top:auto; padding-top:12px; }
.has-gallery .gallery-open{ align-self:flex-start; }
.has-gallery:hover{ box-shadow:0 8px 20px rgba(0,0,0,0.10); transform:translateY(-2px); }
.card-photos{ display:grid; grid-template-columns:1.6fr 1fr; gap:8px; margin-top:12px; }
.card-photos a{ display:block; border-radius:var(--radius); overflow:hidden; }
.card-photos img{ display:block; width:100%; height:110px; object-fit:cover; transition:transform .3s; }
.card-photos a:only-child{ grid-column:1 / -1; }
.card-photos a:only-child img{ height:170px; }
.has-gallery:hover .card-photos img{ transform:scale(1.04); }
.gallery-open{
  margin-top:10px; background:none; border:none; padding:0; cursor:pointer; font-family:inherit;
  font-size:13.5px; font-weight:700; color:var(--red); text-transform:uppercase;
}
.gallery-open::before{ content:"▣ "; }
.gallery-open:hover{ text-decoration:underline; }

/* Galeria em tela cheia */
.lightbox{
  border:none; padding:0; background:transparent; max-width:100vw; max-height:100vh;
  width:100vw; height:100vh; margin:0;
}
.lightbox[open]{ display:flex; align-items:center; justify-content:center; }
.lightbox::backdrop{ background:rgba(10,20,14,0.9); }
.lightbox figure{ max-width:min(90vw, 1000px); text-align:center; }
.lightbox img{ max-width:100%; max-height:80vh; border-radius:var(--radius); box-shadow:0 10px 40px rgba(0,0,0,0.5); display:block; margin:0 auto; }
.lightbox figcaption{ color:#fff; font-size:16px; margin-top:12px; font-weight:500; white-space:pre; }
.lightbox button{
  position:fixed; background:rgba(255,255,255,0.12); color:#fff; border:none; cursor:pointer;
  width:48px; height:48px; border-radius:50%; font-size:30px; line-height:1; font-family:inherit;
}
.lightbox button:hover{ background:var(--red); }
.lightbox-close{ top:18px; right:18px; }
.lightbox-prev{ left:18px; top:50%; transform:translateY(-50%); }
.lightbox-next{ right:18px; top:50%; transform:translateY(-50%); }
.lightbox.single .lightbox-prev,
.lightbox.single .lightbox-next{ display:none; }

.photo-strip{ display:grid; grid-template-columns:1.3fr 1fr; gap:14px; margin-top:28px; }
.photo-block{ border-radius:var(--radius); width:100%; height:260px; object-fit:cover; display:block; }
.photo-block.tall{ height:300px; }

.ensino-grid{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.ensino-card{ background:var(--gray-bg); border-radius:var(--radius); padding:22px 22px 24px; border-left:4px solid var(--green); }
.ensino-card + .ensino-card{ border-left-color:var(--red); }
.ensino-card h3{ font-size:20px; color:var(--green-dark); margin-bottom:8px; }
.ensino-card p{ font-size:15px; color:var(--text-soft); margin-bottom:16px; }


.contact-grid{ display:grid; grid-template-columns:repeat(auto-fit, minmax(200px, 1fr)); gap:20px; margin-bottom:24px; }
.contact-card a{ overflow-wrap:anywhere; }
.contact-card{ background:var(--gray-bg); border-radius:var(--radius); padding:20px 22px; border-left:4px solid var(--green); }
.contact-card:nth-child(even){ border-left-color:var(--red); }
.contact-card h3{ font-size:14px; text-transform:uppercase; letter-spacing:0.04em; color:var(--text-muted); margin-bottom:6px; }
.contact-card p{ font-size:17px; color:var(--text); }
.contact-card a{ color:var(--green-dark); font-weight:700; text-decoration:none; }


/* 9. FEEDBACK --------------------------------------------- */
.feedback-panel{ background:var(--green-deep); color:#fff; padding:36px 34px; border-radius:var(--radius); }
.feedback-panel h2{ color:#fff; font-size:25px; font-weight:900; margin-bottom:8px; }
.feedback-panel > p{ color:#D7E6DB; font-size:15.5px; max-width:40em; margin-bottom:24px; }
.testimonials{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.testimonial{ background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.14); border-left:4px solid var(--red); padding:16px 18px; border-radius:var(--radius); }
.testimonial .stars{ color:#F5B82E; font-size:15px; margin-bottom:6px; letter-spacing:1px; }
.testimonial p{ color:#F1F6F2; font-size:15px; margin-bottom:8px; }
.testimonial .who{ color:#B9CFBF; font-size:13.5px; font-weight:500; }
.testimonials-empty{ color:#D7E6DB; font-size:15px; font-style:italic; }
.cta-row{ margin-top:22px; }

.feedback-form{ margin-top:30px; padding-top:26px; border-top:1px solid rgba(255,255,255,0.14); }
.feedback-form .comment-reply-title{ color:#fff; font-size:20px; font-weight:700; margin-bottom:8px; }
.feedback-form p{ color:#D7E6DB; font-size:14.5px; margin-bottom:14px; }
.feedback-form label{ display:block; font-size:13px; color:#B9CFBF; margin-bottom:4px; font-weight:500; }
.feedback-form input[type="text"],
.feedback-form input[type="email"],
.feedback-form select,
.feedback-form textarea{
  width:100%; max-width:36em; background:rgba(255,255,255,0.08); color:#fff;
  border:1px solid rgba(255,255,255,0.25); border-radius:var(--radius); padding:10px 12px;
  font-family:inherit; font-size:15px;
}
.feedback-form select option{ color:var(--text); }
.feedback-form textarea{ min-height:120px; }
.feedback-form .comment-form-cookies-consent label{ display:inline; }
.feedback-form a{ color:#F5B82E; }
.feedback-notice{ background:rgba(255,255,255,0.1); border-left:4px solid #F5B82E; padding:12px 16px; font-size:15px; color:#fff; margin-bottom:22px; border-radius:0 var(--radius) var(--radius) 0; }


/* Pedido de Vibrações */
.vib-how{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.vib-how-card{ background:var(--green-soft); border-top:4px solid var(--green); border-radius:var(--radius); padding:18px 20px; }
.vib-how-card.is-red{ background:var(--red-soft); border-top-color:var(--red); }
.vib-how-card h3{ font-size:17px; color:var(--green-dark); margin-bottom:8px; text-transform:uppercase; letter-spacing:0.03em; }
.vib-how-card.is-red h3{ color:var(--red-dark); }
.vib-how-card ol{ padding-left:20px; font-size:15px; color:var(--text-soft); }
.vib-how-card li + li{ margin-top:6px; }
.vib-cuidado{ margin-top:22px; background:var(--gray-bg); border-left:4px solid var(--green); border-radius:0 var(--radius) var(--radius) 0; padding:18px 22px; }
.vib-cuidado h3{ font-size:17px; color:var(--green-dark); margin-bottom:8px; }
.vib-cuidado ol{ padding-left:20px; font-size:15px; color:var(--text-soft); }
.vib-cuidado li + li{ margin-top:6px; }

.vib-form{ max-width:40em; background:#fff; border:1px solid var(--line); border-top:4px solid var(--green); border-radius:var(--radius); padding:24px 26px; }
.vib-form p{ margin-bottom:16px; }
.vib-form label{ display:block; font-size:14px; font-weight:700; color:var(--text); margin-bottom:5px; }
.vib-form input[type="text"],
.vib-form textarea{ width:100%; border:1px solid #CFCFCF; border-radius:var(--radius); padding:10px 12px; font-family:inherit; font-size:15.5px; color:var(--text); background:#fff; }
.vib-form input[type="text"]:focus,
.vib-form textarea:focus{ outline:2px solid var(--green); outline-offset:1px; border-color:var(--green); }
.vib-tipo{ border:none; margin-bottom:16px; display:flex; flex-wrap:wrap; gap:10px; }
.vib-tipo legend{ font-size:14px; font-weight:700; color:var(--text); margin-bottom:6px; width:100%; }
.vib-tipo label{ display:flex; align-items:center; gap:8px; margin:0; font-weight:500; font-size:15.5px; border:1px solid var(--line); border-radius:30px; padding:8px 16px; cursor:pointer; }
.vib-tipo label:has(input:checked){ border-color:var(--green); background:var(--green-soft); color:var(--green-dark); }
.vib-consent label{ display:flex; gap:8px; align-items:flex-start; font-weight:400; font-size:14px; color:var(--text-soft); }
.vib-consent input{ margin-top:4px; flex-shrink:0; }
.vib-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.vib-msg{ max-width:40em; padding:14px 18px; border-radius:0 var(--radius) var(--radius) 0; margin-bottom:18px; font-size:15.5px; }
.vib-msg-ok{ background:var(--green-soft); border-left:4px solid var(--green); color:var(--green-dark); font-weight:500; }
.vib-msg-erro{ background:var(--red-soft); border-left:4px solid var(--red); color:var(--red-dark); }
.vib-sucesso{ max-width:40em; background:var(--green-soft); border:2px solid var(--green); border-radius:var(--radius); padding:34px 30px 30px; text-align:center; outline:none; scroll-margin-top:90px; }
.vib-sucesso-icone{ display:inline-flex; align-items:center; justify-content:center; width:76px; height:76px; border-radius:50%; background:var(--green); color:#fff; margin-bottom:14px; }
.vib-sucesso h3{ font-size:26px; font-weight:900; color:var(--green-dark); margin-bottom:8px; }
.vib-sucesso p{ font-size:17px; color:var(--text); max-width:30em; margin:0 auto 20px; }
.vib-sucesso p strong{ color:var(--green-dark); }
.vib-sucesso .btn-light{ border:1px solid var(--green); }
.vib-enviar:disabled{ opacity:.6; cursor:wait; }
.vib-presencial{ max-width:40em; margin-top:16px; font-size:14.5px; color:var(--text-muted); }


/* 10. CONTEÚDO DO EDITOR E NOTÍCIAS ----------------------- */
.entry-content{ font-size:16.5px; color:var(--text-soft); max-width:46em; }
.entry-content > * + *{ margin-top:14px; }
.entry-content h1,
.entry-content h2,
.entry-content h3{ color:var(--green-dark); margin-top:30px; }
.entry-content h1{ font-size:27px; }
.entry-content h2{ font-size:24px; }
.entry-content h3{ font-size:19px; }
.entry-content ul,
.entry-content ol{ padding-left:22px; }
.entry-content blockquote{ font-size:20px; font-style:italic; color:var(--green-dark); border-left:4px solid var(--red); padding-left:18px; }
.entry-content table{ width:100%; border-collapse:collapse; font-size:15px; }
.entry-content th,
.entry-content td{ text-align:left; padding:11px 14px; border-bottom:1px solid var(--line); }
.entry-content th{ background:var(--green); color:#fff; }
.entry-content img{ border-radius:var(--radius); }

/* Lista numerada do editor = passos com número em círculo */
.entry-content ol{ list-style:none; padding-left:0; counter-reset:passo; }
.entry-content ol > li{ counter-increment:passo; position:relative; padding:12px 0 12px 54px; border-bottom:1px solid var(--line); }
.entry-content ol > li:last-child{ border-bottom:none; }
.entry-content ol > li::before{
  content:counter(passo); position:absolute; left:0; top:10px;
  width:36px; height:36px; border-radius:50%; background:var(--red); color:#fff;
  font-weight:900; font-size:17px; display:flex; align-items:center; justify-content:center;
}
.entry-content ol > li:nth-child(even)::before{ background:var(--green); }

/* Quadro de destaque: no editor, bloco "Grupo" com classe CSS adicional "destaque" */
.entry-content .destaque{
  background:var(--green-soft); border-left:4px solid var(--green); border-radius:0 var(--radius) var(--radius) 0;
  padding:22px 26px; color:var(--text);
}
.entry-content .destaque * + *{ margin-top:12px; } /* vale também com a camada extra que o WordPress põe no bloco Grupo */
.entry-content .destaque h3{ margin-top:0; text-transform:uppercase; letter-spacing:0.04em; font-size:17px; }
.entry-content .destaque p:last-child{ font-weight:700; color:var(--green-dark); }

.post-list article{ padding:20px 0; border-bottom:1px solid var(--line); }
.post-list article:last-child{ border-bottom:none; }
.post-list h2{ font-size:21px; }
.post-list h2 a{ color:var(--text); text-decoration:none; }
.post-list h2 a:hover{ color:var(--green); }
.post-list .meta{ font-size:13px; color:var(--text-muted); margin:4px 0 8px; }
.pagination{ margin-top:26px; font-size:15px; }
.pagination .page-numbers{ display:inline-block; padding:4px 10px; margin-right:4px; border-radius:var(--radius); background:var(--gray-bg); text-decoration:none; }
.pagination .current{ background:var(--green); color:#fff; }


/* Conheça o Espiritismo */
.esp-lead{ font-size:19px; color:var(--green-dark); font-weight:500; max-width:36em; margin-bottom:30px; }
.esp-portrait{ float:right; width:150px; margin:0 0 12px 24px; text-align:center; }
.esp-portrait img{ display:block; width:100%; border-radius:var(--radius); }
.esp-portrait figcaption{ font-size:12.5px; color:var(--text-muted); margin-top:6px; }
.esp-portrait + .entry-content::after{ content:""; display:block; clear:both; }

.aspects{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.aspect{ border-top:3px solid var(--green); padding-top:12px; }
.aspect:nth-child(2){ border-top-color:var(--red); }
.aspect h3{ font-size:18px; color:var(--green-dark); margin-bottom:4px; }
.aspect p{ font-size:15px; color:var(--text-soft); }

.principles{ list-style:none; font-size:15.5px; color:var(--text-soft); max-width:46em; }
.principles li{ padding:7px 0 7px 20px; border-bottom:1px solid var(--line); position:relative; }
.principles li:last-child{ border-bottom:none; }
.principles li::before{ content:""; position:absolute; left:2px; top:16px; width:8px; height:8px; border-radius:50%; background:var(--green); }
.principles strong{ color:var(--text); }

.books{ list-style:none; display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.book{ display:flex; flex-direction:column; align-items:center; text-align:center; }
.book-cover{ display:block; line-height:0; border-radius:3px; box-shadow:2px 3px 8px rgba(0,0,0,0.25); transition:transform .15s ease, box-shadow .15s ease; margin-bottom:10px; }
.book-cover:hover{ transform:translateY(-3px); box-shadow:3px 6px 14px rgba(0,0,0,0.3); }
.book-title{ font-size:14px; font-weight:700; color:var(--text); line-height:1.3; }
.book-year{ font-size:13px; color:var(--text-muted); }
.book-read{ font-size:13px; font-weight:700; text-decoration:none; margin-top:4px; }
.book-read:hover{ text-decoration:underline; }
.book-source{ margin-top:18px; font-size:14px; color:var(--text-muted); max-width:46em; }


/* 11. RODAPÉ ---------------------------------------------- */
.site-footer{ background:var(--green-deep); color:#C9D8CD; font-size:15px; }
.footer-cols{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:36px; padding-top:44px; padding-bottom:36px; }
.site-footer h4{ color:#fff; font-size:15px; text-transform:uppercase; letter-spacing:0.04em; margin-bottom:14px; padding-bottom:8px; border-bottom:2px solid var(--red); display:inline-block; }
.site-footer p{ margin-bottom:10px; }
.site-footer a{ color:#C9D8CD; text-decoration:none; }
.site-footer a:hover{ color:#fff; text-decoration:underline; }
.footer-logo{ width:84px; height:63px; object-fit:contain; background:#fff; border-radius:var(--radius); padding:4px; margin-bottom:12px; display:block; }
.footer-about h4{ border-bottom:none; padding-bottom:0; margin-bottom:6px; text-transform:none; font-size:18px; letter-spacing:0; }
.footer-links{ list-style:none; }
.footer-links li{ padding:4px 0; }
.footer-links a::before{ content:"› "; color:var(--red); font-weight:700; }
.footer-bottom{ background:rgba(0,0,0,0.25); font-size:13px; color:#9FB5A6; padding:14px 0; }


/* 12. RESPONSIVO ------------------------------------------ */
@media(max-width:1180px){
  /* Menu mais compacto em telas médias, para caber em uma linha */
  .menu-list > li > a{ padding:15px 8px 12px; font-size:13px; }
}
@media(min-width:1001px) and (max-width:1100px){
  /* Faixa estreita (tablet deitado, notebook pequeno): menu ainda mais compacto */
  .menu-list > li > a{ padding:15px 6px 12px; font-size:12px; letter-spacing:0; }
  .menu-list .menu-item-has-children > a::after{ content:" ▾"; font-size:9px; }
}
@media(max-width:1000px){
  /* Menu vira botão (12 itens não cabem em uma linha nesta largura) */
  .menu-toggle{ display:flex; }
  .main-menu{ display:none; width:100%; }
  .main-menu.is-open{ display:block; }
  .navbar-inner{ flex-wrap:wrap; }
  .menu-list{ flex-direction:column; padding-bottom:10px; }
  .menu-list > li > a,
  .menu-list > li:first-child > a{ padding:11px 0; border-bottom:1px solid var(--line); font-size:14px; }
  .menu-list > .current-menu-item > a,
  .menu-list > .current_page_item > a{ border-bottom-color:var(--line); }
  .menu-list .sub-menu{ display:block; position:static; box-shadow:none; border-top:none; background:none; min-width:0; }
  .menu-list .sub-menu a{ padding:9px 0 9px 18px; background:none; }
  .menu-list .menu-item-has-children > a::after{ content:""; }
}
@media(max-width:1024px){
  .home-top{ grid-template-columns:1fr; }
  .week, .week.week-5{ grid-template-columns:repeat(3,1fr); }
  .footer-cols{ grid-template-columns:1fr 1fr; }
  .page-layout{ grid-template-columns:240px 1fr; gap:30px; }
}
@media(max-width:782px){
  body.admin-bar .navbar{ top:46px; }
}
@media(max-width:860px){
  .books{ grid-template-columns:repeat(3,1fr); row-gap:22px; }
  /* Barra lateral vai para baixo do conteúdo */
  .page-layout{ grid-template-columns:1fr; grid-template-areas:"content" "sidebar"; }
  .page-sidebar{ border-top:1px solid var(--line); padding-top:28px; }

  .highlight-inner{ grid-template-columns:1fr; gap:22px; }
  .cards, .news{ grid-template-columns:1fr 1fr; }
  .midbar-cta{ display:none; }
  .topbar-address, .topbar-email{ display:none !important; }
}
@media(max-width:600px){
  .home-destaque-inner{ grid-template-columns:1fr; gap:18px; }
  .home-destaque-poster{ max-width:340px; margin:0 auto; }
  .home-destaque-text{ text-align:center; }
  .home-destaque-text h2{ font-size:26px; }
  .site-aviso-inner{ align-items:flex-start; gap:10px; }
  .site-aviso p{ font-size:14.5px; }
  .vib-how{ grid-template-columns:1fr; }
  .vib-form{ padding:18px 16px; }
  .aspects{ grid-template-columns:1fr; }
  .books{ grid-template-columns:1fr 1fr; }
  .esp-portrait{ width:110px; margin-left:16px; }
  .brand-logo{ width:64px; height:48px; }
  .brand-name{ font-size:19px; }
  .brand-tagline{ font-size:13px; }
  .topbar-search{ display:none; }
  .topbar-info span, .topbar-link{ white-space:nowrap; }
  .carousel{ min-height:460px; }
  .slide{ padding:30px 24px 50px; }
  .slide h2,
  .slide .slide-title-main{ font-size:27px; }
  .slide p{ font-size:15.5px; }
  /* No celular, a imagem do banner fica pequena, no alto à direita */
  .slide.has-media .slide-content{ max-width:none; }
  .slide.has-media h2{ padding-right:104px; } /* espaço para a imagem no alto à direita */
  .slide-media{ top:18px; right:18px; transform:none; width:92px; }
  .slide-media.is-illustration{ width:110px; }
  .slide-media img{ border-width:3px; }
  .slide-media figcaption{ display:none; }
  .carousel-btn{ display:none; }
  .cards, .news, .social-list, .ensino-grid, .photo-strip, .contact-grid, .testimonials, .book-options, .donate-grid{ grid-template-columns:1fr; }
  .donate-poster{ max-width:320px; }
  .bazar-next{ flex-direction:column; align-items:flex-start; gap:14px; }
  .bazar-when{ font-size:19px; }
  .bazar-grid{ grid-template-columns:1fr; }
  .bazar-poster{ max-width:320px; }
  .home-events{ grid-template-columns:1fr; }
  .home-event-card, .home-events.is-single .home-event-card{ grid-template-columns:1fr; }
  .home-event-poster{ order:2; max-width:300px; }
  .event-card{ grid-template-columns:90px 1fr; gap:12px; }
  .event-thumb{ min-height:120px; }
  .signup{ padding:20px 18px; }
  .week, .week.week-5{ grid-template-columns:1fr 1fr; }
  .stats{ grid-template-columns:1fr 1fr; }
  .stats.stats-3{ grid-template-columns:1fr; }
  .footer-cols{ grid-template-columns:1fr; gap:24px; }
  .page-title{ font-size:27px; }
  .letter{ padding:26px 20px; }
  .expand-panel{ padding:20px 16px; }
  .timeline::before{ left:16px; }
  .timeline-item{ grid-template-columns:34px 1fr; gap:8px; }
  .timeline-year{ width:32px; height:32px; font-size:13px; }
  .course-details summary, .course-info{ padding-left:0; }
  .timeline-card{ padding:10px 12px; }
  .course-facts{ grid-template-columns:1fr; }
  .feedback-panel{ padding:28px 20px; }
  /* Tabelas viram cartões empilhados: cada linha é um cartão, cada coluna ganha seu rótulo */
  table.schedule, table.schedule tbody, table.schedule tr, table.schedule td{ display:block; width:100%; }
  table.schedule tr:first-child{ display:none; }
  table.schedule tr{ border:1px solid var(--line); border-left:4px solid var(--green); border-radius:var(--radius); margin-bottom:12px; overflow:hidden; }
  table.schedule tr:nth-child(odd){ border-left-color:var(--red); }
  table.schedule tr:nth-child(odd) td{ background:#fff; }
  table.schedule td{ border-bottom:none; padding:4px 14px; }
  table.schedule td:first-child{ padding-top:12px; font-size:17px; }
  table.schedule td:last-child{ padding-bottom:12px; }
  table.schedule td.activity, table.schedule td.times{ width:auto; }
  table.schedule td[data-label]:not(.day)::before{
    content:attr(data-label); display:block; font-size:11.5px; font-weight:700;
    text-transform:uppercase; letter-spacing:0.04em; color:var(--text-muted);
  }
}
