/* ===========================================================================
   G.E.E.A.L. — Site institucional. Identidade: uva (roxo), dourado, verde folha.
   =========================================================================== */
:root {
  --uva:          #5B2A6B;   /* roxo principal (cacho) */
  --uva-escuro:   #3D1A4A;   /* roxo profundo (faixas) */
  --uva-clara:    #7B3F8C;   /* roxo claro */
  --uva-suave:    #F3ECF6;   /* lavanda de fundo */
  --dourado:      #C9A24B;   /* borda/realce da logo */
  --dourado-claro:#E4CC86;
  --verde:        #5A8F3C;   /* folha */
  --verde-claro:  #86B85E;
  --creme:        #FBF9F5;   /* fundo geral */
  --texto:        #2A2230;
  --texto-suave:  #6B6276;
  --branco:       #FFFFFF;
  --borda:        #ECE6F0;
  --raio:         14px;
  --raio-sm:      9px;
  --sombra:       0 4px 18px rgba(61,26,74,.08);
  --sombra-forte: 0 10px 34px rgba(61,26,74,.16);
  --container:    1100px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body.site {
  margin: 0;
  font-family: "Inter", "Segoe UI", system-ui, sans-serif;
  color: var(--texto);
  background: var(--creme);
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
body.site h1, body.site h2, body.site h3 { font-family: "Playfair Display", Georgia, serif; line-height: 1.2; }
img { max-width: 100%; display: block; }
a { color: var(--uva); }

/* ---- Cabeçalho ---- */
.site-topo {
  position: sticky; top: 0; z-index: 50;
  background: rgba(255,255,255,.92); backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--borda);
}
.site-topo-inner {
  max-width: var(--container); margin: 0 auto; padding: .6rem 1.5rem;
  display: flex; align-items: center; justify-content: space-between; gap: 1rem;
}
.site-marca { display: flex; align-items: center; gap: .6rem; text-decoration: none; color: var(--uva-escuro); }
.site-marca img { height: 52px; width: auto; }
.site-marca-txt { display: flex; flex-direction: column; line-height: 1.05; }
.site-marca-txt strong { font-family: "Playfair Display", serif; font-size: 1.15rem; letter-spacing: .5px; color: var(--uva-escuro); }
.site-marca-txt span { font-size: .68rem; letter-spacing: 1.5px; text-transform: uppercase; color: var(--dourado); font-weight: 600; }
.site-menu { display: flex; align-items: center; gap: .25rem; flex-wrap: wrap; }
.site-menu a {
  color: var(--texto); text-decoration: none; font-size: .92rem; font-weight: 500;
  padding: .5rem .8rem; border-radius: 999px; transition: background .15s, color .15s;
}
.site-menu a:hover { background: var(--uva-suave); color: var(--uva); }
.site-menu a.contato-cta { background: var(--uva); color: #fff; padding: .5rem 1.1rem; }
.site-menu a.contato-cta:hover { background: var(--uva-escuro); }
.menu-toggle { display: none; background: none; border: 0; font-size: 1.4rem; color: var(--uva-escuro); cursor: pointer; }

/* ---- Conteúdo ---- */
.site-conteudo { max-width: var(--container); margin: 0 auto; padding: 2.5rem 1.5rem; }
.site-flash {
  background: #eaf7ee; color: #1d7a3e; border: 1px solid #b9e3c6;
  padding: .8rem 1.1rem; border-radius: var(--raio-sm); margin-bottom: 1.25rem; font-weight: 500;
}

/* ---- Hero ---- */
/* Atmosfera espiritual e serena: céu noturno índigo->ametista->azul-petróleo,
   uma aura de luz nascendo do lótus, um campo de estrelas sutil e água na base. */
.site-hero {
  position: relative; overflow: hidden; color: #fff;
  background:
    radial-gradient(70% 60% at 72% 70%, rgba(244,233,200,.30), rgba(201,162,75,.10) 35%, transparent 60%),
    radial-gradient(120% 80% at 50% 120%, rgba(120,160,190,.30), transparent 60%),
    linear-gradient(165deg, #221536 0%, #3D1A4A 38%, #4A4476 72%, #355A6E 100%);
}
/* campo de estrelas / bokeh — substitui o padrão de uvas */
.site-hero::after {
  content: ""; position: absolute; inset: 0; opacity: .5; pointer-events: none;
  background-image: url("/assets/img/site/luz-pattern.svg"); background-size: 360px;
  -webkit-mask-image: radial-gradient(120% 100% at 70% 40%, #000 40%, transparent 85%);
          mask-image: radial-gradient(120% 100% at 70% 40%, #000 40%, transparent 85%);
}
/* lâmina de água espelhada na base */
.site-hero::before {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 38%;
  background:
    linear-gradient(180deg, transparent, rgba(150,180,205,.10) 45%, rgba(120,160,190,.26));
  pointer-events: none;
}
.site-hero-inner {
  position: relative; z-index: 1; max-width: var(--container); margin: 0 auto;
  padding: 4.5rem 1.5rem; display: grid; grid-template-columns: 1.2fr .8fr; gap: 2rem; align-items: center;
}
.site-hero h1 { font-size: clamp(2rem, 4vw, 3.1rem); margin: 0 0 1rem; color: #fff; }
.site-hero p { font-size: 1.12rem; max-width: 36ch; color: #f1e8f5; margin: 0 0 1.6rem; }
.site-hero .selo { display: inline-block; font-size: .72rem; letter-spacing: 2px; text-transform: uppercase; color: var(--dourado-claro); font-weight: 700; margin-bottom: .8rem; }
.site-hero-arte { position: relative; justify-self: center; }
/* aura de luz pulsando atrás do lótus */
.site-hero-arte::before {
  content: ""; position: absolute; top: 50%; left: 50%; width: 115%; aspect-ratio: 1;
  transform: translate(-50%, -46%);
  background: radial-gradient(circle, rgba(255,250,235,.40), rgba(228,204,134,.18) 35%, transparent 68%);
  pointer-events: none;
  animation: auraPulsa 7s ease-in-out infinite;
}
.site-hero-arte img {
  position: relative;
  width: min(360px, 78vw);
  filter: drop-shadow(0 12px 38px rgba(228,204,134,.30));
  animation: lotusFlutua 6s ease-in-out infinite;
}
@keyframes lotusFlutua {
  0%, 100% { transform: translateY(0); }
  50%      { transform: translateY(-10px); }
}
@keyframes auraPulsa {
  0%, 100% { opacity: .8; transform: translate(-50%, -46%) scale(1); }
  50%      { opacity: 1;  transform: translate(-50%, -46%) scale(1.07); }
}
@media (prefers-reduced-motion: reduce) {
  .site-hero-arte img, .site-hero-arte::before { animation: none; }
}

/* ---- Botões ---- */
.site-btn {
  display: inline-flex; align-items: center; gap: .5rem; background: var(--dourado); color: var(--uva-escuro);
  padding: .75rem 1.6rem; border: none; border-radius: 999px; text-decoration: none; cursor: pointer;
  font-size: 1rem; font-weight: 700; transition: transform .15s, box-shadow .15s, background .15s;
}
.site-btn:hover { background: var(--dourado-claro); transform: translateY(-2px); box-shadow: var(--sombra-forte); }
.site-btn.alt { background: rgba(255,255,255,.14); color: #fff; border: 1px solid rgba(255,255,255,.35); }
.site-btn.alt:hover { background: rgba(255,255,255,.24); }
.site-btn-pequeno {
  display: inline-flex; align-items: center; gap: .35rem; background: var(--uva); color: #fff;
  padding: .35rem .9rem; border-radius: 999px; text-decoration: none; font-size: .85rem; font-weight: 600;
}
.site-btn-pequeno:hover { background: var(--uva-escuro); }

/* ---- Seções ---- */
.site-secao { margin-top: 3rem; }
.site-secao > h2, .site-pagina h1 { position: relative; display: inline-block; }
.site-secao > h2 { font-size: 1.7rem; color: var(--uva-escuro); margin-bottom: 1.2rem; }
.site-secao > h2::after, .site-pagina > h1::after {
  content: ""; display: block; width: 56px; height: 4px; border-radius: 2px;
  background: linear-gradient(90deg, var(--dourado), var(--verde)); margin-top: .5rem;
}

/* ---- Atalhos (home) ---- */
.site-atalhos { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1rem; }
.site-atalho {
  background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); padding: 1.4rem 1rem;
  text-align: center; text-decoration: none; color: var(--texto); transition: transform .15s, box-shadow .15s, border-color .15s;
}
.site-atalho:hover { transform: translateY(-3px); box-shadow: var(--sombra); border-color: var(--dourado); }
.site-atalho i { font-size: 1.7rem; color: var(--uva); margin-bottom: .5rem; display: block; }
.site-atalho span { font-weight: 600; font-size: .95rem; }

/* ---- Cards (notícias/eventos/álbuns) ---- */
.site-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 1.4rem; }
.site-card {
  display: flex; flex-direction: column; background: #fff; border: 1px solid var(--borda);
  border-radius: var(--raio); overflow: hidden; text-decoration: none; color: inherit;
  transition: transform .15s, box-shadow .15s; box-shadow: var(--sombra);
}
.site-card:hover { transform: translateY(-4px); box-shadow: var(--sombra-forte); }
.site-card img { width: 100%; height: 165px; object-fit: cover; }
.site-card .sem-capa { height: 165px; display: grid; place-items: center; background: linear-gradient(135deg, var(--uva-suave), #fff); color: var(--uva-clara); font-size: 2rem; }
.site-card-corpo { padding: 1rem 1.15rem 1.25rem; display: flex; flex-direction: column; gap: .35rem; flex: 1; }
.site-card-corpo h3 { margin: 0; color: var(--uva-escuro); font-size: 1.12rem; }
.site-card-data { color: var(--texto-suave); font-size: .82rem; display: inline-flex; align-items: center; gap: .35rem; }
.site-card-data i { color: var(--dourado); }
.site-card p { margin: .2rem 0 0; font-size: .92rem; color: var(--texto-suave); }

/* ---- Cabeçalho de seção com "ver mais" ---- */
.site-secao-topo { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.site-secao-topo > h2 { margin-bottom: 1.2rem; }
.site-vermais { font-size: .9rem; font-weight: 600; text-decoration: none; color: var(--uva); white-space: nowrap; }
.site-vermais:hover { color: var(--uva-escuro); }
.site-vermais i { font-size: .78rem; margin-left: .25rem; }

/* ---- Evento em destaque ---- */
.site-tag-destaque {
  display: inline-flex; align-items: center; gap: .4rem; margin-bottom: 1rem;
  font-size: .72rem; letter-spacing: 1.5px; text-transform: uppercase; font-weight: 700;
  color: var(--uva); background: var(--uva-suave); padding: .4rem .9rem; border-radius: 999px;
}
.site-tag-destaque i { color: var(--dourado); }
.site-destaque {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  background: #fff; border: 1px solid var(--borda); border-radius: var(--raio);
  overflow: hidden; text-decoration: none; color: inherit; box-shadow: var(--sombra);
  transition: transform .15s, box-shadow .15s;
}
.site-destaque:hover { transform: translateY(-3px); box-shadow: var(--sombra-forte); }
.site-destaque-img { min-height: 240px; background-size: cover; background-position: center; }
.site-destaque-img.sem-capa { display: grid; place-items: center; background: linear-gradient(135deg, var(--uva), var(--uva-clara)); color: var(--dourado-claro); font-size: 3.5rem; }
.site-destaque-corpo { padding: 1.8rem 2rem; display: flex; flex-direction: column; gap: .7rem; justify-content: center; }
.site-destaque-corpo h2 { margin: 0; color: var(--uva-escuro); font-size: 1.7rem; }
.site-destaque-meta { display: flex; flex-wrap: wrap; gap: .4rem 1.3rem; color: var(--texto-suave); font-size: .9rem; }
.site-destaque-meta span { display: inline-flex; align-items: center; gap: .4rem; }
.site-destaque-meta i { color: var(--dourado); }
.site-destaque-corpo p { margin: 0; color: var(--texto-suave); }
.site-destaque-cta { margin-top: .3rem; font-weight: 700; color: var(--uva); }
.site-destaque-cta i { font-size: .82rem; margin-left: .3rem; transition: transform .15s; }
.site-destaque:hover .site-destaque-cta i { transform: translateX(4px); }

/* ---- Bloco "Quem somos" na home ---- */
.site-boasvindas {
  background: var(--uva-suave); border-radius: var(--raio); padding: 2rem 2.2rem;
}
.site-boasvindas > h2 { margin-top: 0; }
.site-boasvindas p { margin: 0 0 1rem; max-width: 70ch; }
.site-boasvindas-acoes { display: flex; gap: .75rem; flex-wrap: wrap; margin-top: .6rem; }

/* ---- Página de conteúdo ---- */
.site-pagina { max-width: var(--container); margin: 0 auto; padding: 2.5rem 1.5rem; }
.site-pagina h1 { font-size: 2.1rem; color: var(--uva-escuro); margin-top: 0; }
.site-pagina h2 { color: var(--uva-escuro); margin-top: 2rem; }
.site-corpo { font-size: 1.05rem; }
.site-corpo img { border-radius: var(--raio); margin: 1rem 0; }
.site-corpo a { color: var(--uva); }
.site-capa { width: 100%; max-height: 380px; object-fit: cover; border-radius: var(--raio); margin: 1.25rem 0; box-shadow: var(--sombra); }

/* ---- Sobre: Missão / Visão / Valores ---- */
.mvv-destaques { display: grid; grid-template-columns: 1fr 1fr; gap: 1.4rem; margin: 1.5rem 0 .5rem; }
.mvv-card {
  position: relative; background: #fff; border: 1px solid var(--borda); border-radius: var(--raio);
  padding: 2rem 1.8rem; box-shadow: var(--sombra); border-top: 4px solid var(--dourado);
}
.mvv-card.mvv-visao { border-top-color: var(--verde); }
.mvv-icone {
  display: grid; place-items: center; width: 54px; height: 54px; border-radius: 14px;
  background: var(--uva-suave); color: var(--uva); font-size: 1.4rem; margin-bottom: .9rem;
}
.mvv-visao .mvv-icone { background: #eef6e6; color: var(--verde); }
.mvv-card h2 { margin: 0 0 .5rem; color: var(--uva-escuro); font-size: 1.4rem; }
.mvv-card h2::after { content: none; }
.mvv-card p { margin: 0; color: var(--texto-suave); font-size: 1rem; }

.mvv-valores { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1.2rem; }
.valor-card {
  background: #fff; border: 1px solid var(--borda); border-radius: var(--raio); padding: 1.5rem 1.3rem;
  transition: transform .15s, box-shadow .15s; box-shadow: var(--sombra);
}
.valor-card:hover { transform: translateY(-4px); box-shadow: var(--sombra-forte); }
.valor-icone {
  display: grid; place-items: center; width: 46px; height: 46px; border-radius: 12px;
  background: linear-gradient(135deg, var(--uva), var(--uva-clara)); color: #fff; font-size: 1.2rem; margin-bottom: .8rem;
}
.valor-card h3 { margin: 0 0 .35rem; color: var(--uva-escuro); font-size: 1.1rem; }
.valor-card p { margin: 0; color: var(--texto-suave); font-size: .92rem; }
@media (max-width: 700px) { .mvv-destaques { grid-template-columns: 1fr; } }

/* ---- Galeria ---- */
.site-galeria-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: .9rem; }
.site-galeria-grade figure { margin: 0; border-radius: var(--raio-sm); overflow: hidden; box-shadow: var(--sombra); }
.site-galeria-grade img { width: 100%; height: 175px; object-fit: cover; transition: transform .3s; }
.site-galeria-grade figure:hover img { transform: scale(1.06); }
.site-galeria-grade figcaption { font-size: .8rem; color: var(--texto-suave); padding: .4rem .6rem; background: #fff; }
.galeria-foto { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.galeria-foto img { display: block; }

/* ---- Lightbox da galeria ---- */
.lightbox {
  position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center;
  background: rgba(20, 8, 26, .92); padding: 4rem 1rem; gap: .5rem;
}
.lightbox[hidden] { display: none; }
.lightbox-fig { margin: 0; max-width: 100%; max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: .8rem; }
.lightbox-fig img { max-width: min(1100px, 90vw); max-height: 82vh; width: auto; height: auto; border-radius: var(--raio-sm); box-shadow: 0 20px 60px rgba(0,0,0,.5); }
.lightbox-fig figcaption { color: #f1e8f5; font-size: .95rem; text-align: center; max-width: 70ch; }
.lightbox-fechar {
  position: absolute; top: 1rem; right: 1.2rem; background: none; border: 0; color: #fff;
  font-size: 2.4rem; line-height: 1; cursor: pointer; opacity: .85; transition: opacity .15s;
}
.lightbox-fechar:hover { opacity: 1; }
.lightbox-nav {
  flex: 0 0 auto; background: rgba(255,255,255,.12); border: 0; color: #fff; cursor: pointer;
  width: 48px; height: 48px; border-radius: 999px; font-size: 1.1rem; display: grid; place-items: center;
  transition: background .15s;
}
.lightbox-nav:hover { background: rgba(255,255,255,.28); }
@media (max-width: 640px) {
  .lightbox { padding: 3rem .5rem; }
  .lightbox-nav { position: absolute; bottom: 1.2rem; }
  .lightbox-prev { left: 25%; }
  .lightbox-next { right: 25%; }
}

/* ---- Biblioteca / Horários ---- */
.site-biblioteca, .site-horarios { list-style: none; padding: 0; margin: .5rem 0 1.5rem; }
.site-biblioteca li, .site-horarios li {
  background: #fff; border: 1px solid var(--borda); border-left: 4px solid var(--dourado);
  border-radius: var(--raio-sm); padding: .85rem 1.1rem; margin-bottom: .6rem;
  display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; justify-content: space-between;
}
.site-horarios li { border-left-color: var(--verde); }
.site-horarios li strong { color: var(--uva-escuro); }

/* ---- Contato ---- */
.site-contato-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: start; }
.site-contato-dados { list-style: none; padding: 0; }
.site-contato-dados li { display: flex; align-items: center; gap: .7rem; padding: .5rem 0; }
.site-contato-dados i { color: var(--uva); width: 1.3rem; text-align: center; }
.site-mapa { margin: 1rem 0; }
.site-mapa iframe { width: 100%; border: 0; border-radius: var(--raio); min-height: 220px; }
.site-form { display: flex; flex-direction: column; gap: .85rem; }
.site-form label { display: flex; flex-direction: column; gap: .3rem; font-weight: 500; font-size: .92rem; color: var(--texto-suave); }
.site-form input, .site-form textarea {
  padding: .7rem .85rem; border: 1px solid var(--borda); border-radius: var(--raio-sm);
  font: inherit; background: #fff; color: var(--texto);
}
.site-form input:focus, .site-form textarea:focus { outline: 2px solid var(--uva-clara); outline-offset: 1px; border-color: var(--uva-clara); }
.site-hp { position: absolute; left: -5000px; }
.site-erro { background: #fdecec; color: #b33a3a; padding: .7rem .9rem; border-radius: var(--raio-sm); margin-bottom: .5rem; }

/* ---- Rodapé ---- */
.site-rodape { margin-top: 4rem; background: var(--uva-escuro); color: #efe6f3; }
.site-rodape-inner { max-width: var(--container); margin: 0 auto; padding: 2.5rem 1.5rem 1.5rem; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 2rem; }
.site-rodape h4 { color: #fff; font-family: "Playfair Display", serif; margin: 0 0 .8rem; font-size: 1.05rem; }
.site-rodape a { color: #efe6f3; text-decoration: none; display: block; padding: .2rem 0; font-size: .92rem; }
.site-rodape a:hover { color: var(--dourado-claro); }
.site-rodape .rodape-sobre p { font-size: .9rem; color: #d8c9e0; margin: .3rem 0 0; }
.site-rodape .rodape-frase {
  font-family: "Playfair Display", Georgia, serif; font-style: italic;
  font-size: 1.05rem; line-height: 1.5; color: var(--dourado-claro);
  margin: 0 0 .6rem; padding-left: .9rem; border-left: 2px solid var(--dourado);
}
.site-redes { display: flex; gap: .6rem; margin-top: .8rem; }
.site-redes a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.1); padding: 0; font-size: 1.05rem; }
.site-redes a:hover { background: var(--dourado); color: var(--uva-escuro); }
.site-redes a.rede-whatsapp { background: #25D366; color: #fff; }
.site-redes a.rede-whatsapp:hover { background: #1da851; color: #fff; }
.site-rodape-base { border-top: 1px solid rgba(255,255,255,.12); text-align: center; padding: 1rem 1.5rem; font-size: .82rem; color: #c9b9d2; }

/* ---- Responsivo ---- */
@media (max-width: 820px) {
  .site-hero-inner { grid-template-columns: 1fr; text-align: center; padding: 3rem 1.5rem; }
  .site-hero p { margin-left: auto; margin-right: auto; }
  .site-hero-arte { order: -1; }
  .site-hero-arte img { width: 200px; }
  .site-contato-grid { grid-template-columns: 1fr; }
  .site-rodape-inner { grid-template-columns: 1fr; gap: 1.5rem; }
  .site-destaque { grid-template-columns: 1fr; }
  .site-destaque-img { min-height: 180px; }
}
@media (max-width: 640px) {
  .menu-toggle { display: block; }
  .site-menu { display: none; position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; background: #fff; border-bottom: 1px solid var(--borda); padding: .5rem 1rem 1rem; gap: .15rem; }
  .site-menu.aberto { display: flex; }
  .site-menu a { padding: .7rem .5rem; }
  .site-topo-inner { position: relative; }
}

/* ===== Página Nossa História ===== */
.hist-intro { text-align: center; padding: 1rem 0 .5rem; }
.hist-sub { color: var(--texto-suave); max-width: 680px; margin: .4rem auto 0; }
.hist-citacao {
  border-left: 4px solid var(--dourado);
  background: var(--uva-suave);
  margin: 1.4rem 0; padding: 1rem 1.2rem; border-radius: 0 8px 8px 0;
  font-family: "Playfair Display", Georgia, serif; font-size: 1.15rem; font-style: italic; color: var(--uva-escuro);
}
.hist-citacao cite { display: block; margin-top: .5rem; font-size: .9rem; font-style: normal; color: var(--dourado); font-family: Inter, sans-serif; }

/* Timeline zig-zag */
.hist-timeline { position: relative; margin: 1.5rem 0; padding: .5rem 0; }
.hist-timeline::before {
  content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 3px;
  background: linear-gradient(var(--uva), var(--dourado), var(--verde)); transform: translateX(-50%);
}
.hist-ev { width: 48%; box-sizing: border-box; margin-bottom: 1.6rem; position: relative; }
.hist-ev:nth-child(odd)  { margin-left: 0; }
.hist-ev:nth-child(even) { margin-left: 52%; }
.hist-card { background: #fff; border: 1px solid var(--borda); border-radius: 10px; overflow: hidden; box-shadow: 0 3px 12px rgba(91,42,107,.08); }
.hist-foto { display: block; width: 100%; padding: 0; border: 0; background: none; cursor: zoom-in; }
.hist-foto img { width: 100%; height: 170px; object-fit: cover; display: block; transition: transform .3s ease; }
.hist-foto:hover img { transform: scale(1.04); }
.hist-card-corpo { padding: .8rem 1rem 1rem; }
.hist-ano { display: inline-block; background: var(--dourado-claro); color: var(--uva-escuro); font-weight: 700; font-size: .8rem; padding: .15rem .7rem; border-radius: 12px; }
.hist-local { font-family: "Playfair Display", Georgia, serif; color: var(--uva-escuro); font-size: 1.05rem; margin: .5rem 0 .3rem; }
.hist-nota { color: var(--texto-suave); font-size: .92rem; margin: 0; line-height: 1.5; }
.hist-dot { position: absolute; top: 1.2rem; width: 14px; height: 14px; border-radius: 50%; background: var(--dourado); border: 3px solid var(--creme); box-shadow: 0 0 0 2px var(--dourado); }
.hist-ev:nth-child(odd)  .hist-dot { right: -8.5%; }
.hist-ev:nth-child(even) .hist-dot { left: -8.5%; }

.hist-fecho { text-align: center; }
.hist-cta { display: flex; gap: .75rem; justify-content: center; flex-wrap: wrap; margin-top: 1rem; }

@media (max-width: 720px) {
  .hist-timeline::before { left: 9px; }
  .hist-ev, .hist-ev:nth-child(odd), .hist-ev:nth-child(even) { width: 100%; margin-left: 28px; }
  .hist-ev:nth-child(odd) .hist-dot, .hist-ev:nth-child(even) .hist-dot { left: -28px; right: auto; }
}

/* ===== Orações ===== */
.oracoes-intro { text-align: center; }
.oracoes-sub { color: var(--texto-suave); }
.oracao-destaque { display: block; text-decoration: none; color: #fff; background: linear-gradient(160deg, var(--uva), var(--uva-escuro)); border-radius: 14px; padding: 26px; margin: 1.5rem 0 2rem; box-shadow: 0 8px 24px rgba(91,42,107,.22); position: relative; overflow: hidden; }
.oracao-destaque::before { content: "✦"; position: absolute; top: -14px; right: 14px; font-size: 110px; color: rgba(228,204,134,.16); }
.oracao-selo { display: inline-block; background: var(--dourado); color: var(--uva-escuro); font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; padding: 4px 12px; border-radius: 20px; }
.oracao-destaque h2 { font-family: "Playfair Display", serif; font-size: 26px; margin: 12px 0 6px; color: #fff; }
.oracao-destaque-meta { color: var(--dourado-claro); font-size: 13px; margin-bottom: 14px; }
.oracao-destaque-cta { font-weight: 600; color: var(--dourado-claro); }
.oracoes-secao-tit { font-family: "Playfair Display", serif; color: var(--uva-escuro); border-bottom: 2px solid var(--dourado); padding-bottom: 4px; }
.oracao-card { border: 1px solid var(--borda); border-left: 4px solid var(--dourado); border-radius: 10px; padding: 16px 18px; margin-bottom: 12px; background: #fff; }
.oracao-card h3 { font-family: "Playfair Display", serif; margin: 0 0 4px; }
.oracao-card h3 a { color: var(--uva-escuro); text-decoration: none; }
.oracao-card-meta { font-size: 12.5px; color: var(--texto-suave); display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 6px; }
.oracao-card-meta .autor { color: var(--uva); font-weight: 600; }
.oracao-ler { color: var(--uva); font-weight: 600; font-size: 13px; text-decoration: none; }

/* Detalhe da oração */
.oracao-voltar a { color: var(--uva); text-decoration: none; font-size: 14px; }
.oracao-detalhe h1 { font-family: "Playfair Display", serif; }
.oracao-meta { color: var(--texto-suave); font-size: 13.5px; display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 18px; }
.oracao-meta .autor { color: var(--uva); font-weight: 600; }
.oracao-conteudo { font-size: 16px; line-height: 1.75; margin-bottom: 24px; }
.oracao-conteudo img { max-width: 100%; height: auto; border-radius: 8px; }

/* Compartilhar */
.oracao-compartilhar { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; padding: 14px 0; border-top: 1px solid var(--borda); border-bottom: 1px solid var(--borda); margin-bottom: 24px; }
.oracao-compartilhar > span { color: var(--texto-suave); font-size: 14px; }
.comp-btn { display: inline-flex; align-items: center; gap: .4rem; border: 1px solid var(--borda); background: #fff; color: var(--uva); padding: .45rem .9rem; border-radius: 20px; cursor: pointer; font-size: .9rem; text-decoration: none; }
.comp-btn:hover { background: var(--uva-suave); }
.comp-wpp { color: #1da851; border-color: #bfe6cc; }

/* Comentários */
.oracao-coments h2 { font-family: "Playfair Display", serif; color: var(--uva-escuro); font-size: 20px; }
.coment-vazio { color: var(--texto-suave); }
.coment-item { border-bottom: 1px solid var(--borda); padding: 10px 0; }
.coment-nome { font-weight: 600; color: var(--uva); }
.coment-data { color: #9b93a6; font-size: 12px; margin-left: 8px; }
.coment-txt { font-size: 14px; margin: 4px 0 0; color: var(--texto); }
.coment-form { display: flex; flex-direction: column; gap: 8px; margin-top: 16px; max-width: 520px; }
.coment-form input, .coment-form textarea { padding: 9px 11px; border: 1px solid var(--borda); border-radius: 8px; font-family: inherit; font-size: 14px; }
.coment-form .site-btn { align-self: flex-start; }
.hp-campo { position: absolute; left: -9999px; width: 1px; height: 1px; opacity: 0; }

/* Botão Facebook compartilhar */
.comp-fb { color: #1877F2; border-color: #bcd4fb; }

/* Card 1080×1080 da oração (gerado em PNG; fica fora da tela) */
.oracao-card-wrap { position: absolute; left: -99999px; top: 0; width: 1080px; height: 1080px; overflow: hidden; }
.oracao-card-img {
  width: 1080px; height: 1080px; box-sizing: border-box; position: relative; overflow: hidden;
  font-family: Inter, system-ui, sans-serif; color: #2A2230;
  background: linear-gradient(160deg, #FBF9F5, #F3ECF6);
  display: flex; flex-direction: column;
}
.oracao-card-img .oc-top { background: #5B2A6B; color: #fff; padding: 54px 64px; display: flex; align-items: center; justify-content: space-between; }
.oracao-card-img .oc-marca { font-family: "Playfair Display", Georgia, serif; font-size: 52px; font-weight: 700; letter-spacing: 1px; }
.oracao-card-img .oc-logo { width: 132px; height: 132px; border-radius: 50%; background: #fff; border: 5px solid #C9A24B; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.oracao-card-img .oc-logo img { width: 108px; height: 108px; object-fit: contain; }
.oracao-card-img .oc-body { flex: 1; padding: 70px 70px; display: flex; flex-direction: column; }
.oracao-card-img .oc-selo { align-self: flex-start; background: #E4CC86; color: #5B2A6B; font-size: 28px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; padding: 12px 32px; border-radius: 40px; }
.oracao-card-img .oc-titulo { font-family: "Playfair Display", Georgia, serif; font-size: 78px; line-height: 1.1; color: #3D1A4A; margin: 40px 0 30px; }
.oracao-card-img .oc-trecho { font-size: 40px; line-height: 1.5; color: #5B4A66; margin: 0; display: -webkit-box; -webkit-line-clamp: 7; -webkit-box-orient: vertical; overflow: hidden; }
.oracao-card-img .oc-meta { margin-top: auto; font-size: 36px; color: #5B2A6B; display: flex; gap: 40px; }
.oracao-card-img .oc-foot { height: 30px; background: linear-gradient(90deg, #5B2A6B, #C9A24B, #5A8F3C); }

/* Botão Story */
.comp-story { color: #C13584; border-color: #f0c4dd; }

/* Card story 1080×1920 (9:16) */
.oracao-story-img {
  width: 1080px; height: 1920px; box-sizing: border-box; position: relative; overflow: hidden;
  font-family: Inter, system-ui, sans-serif; color: #fff;
  background: linear-gradient(165deg, #5B2A6B 0%, #3D1A4A 55%, #2A1438 100%);
  display: flex; flex-direction: column; padding: 90px 80px;
}
.oracao-story-img::before { content: "✦"; position: absolute; top: 120px; right: 60px; font-size: 320px; color: rgba(228,204,134,.10); }
.oracao-story-img .os-top { display: flex; align-items: center; gap: 28px; }
.oracao-story-img .os-logo { width: 130px; height: 130px; border-radius: 50%; background: #fff; border: 6px solid #C9A24B; display: flex; align-items: center; justify-content: center; overflow: hidden; flex: 0 0 auto; }
.oracao-story-img .os-logo img { width: 104px; height: 104px; object-fit: contain; }
.oracao-story-img .os-marca { font-family: "Playfair Display", Georgia, serif; font-size: 60px; font-weight: 700; letter-spacing: 1px; }
.oracao-story-img .os-body { flex: 1; display: flex; flex-direction: column; justify-content: center; min-height: 0; padding: 60px 0; }
.oracao-story-img .os-selo { align-self: flex-start; background: #C9A24B; color: #3D1A4A; font-size: 30px; font-weight: 700; letter-spacing: 4px; text-transform: uppercase; padding: 14px 36px; border-radius: 44px; }
.oracao-story-img .os-titulo { font-family: "Playfair Display", Georgia, serif; font-size: 84px; line-height: 1.12; margin: 44px 0 34px; }
.oracao-story-img .os-trecho { font-size: 46px; line-height: 1.5; color: #EBDDF2; margin: 0; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.oracao-story-img .os-meta { font-size: 40px; color: #E4CC86; display: flex; flex-wrap: wrap; gap: 40px; margin-top: 44px; }
.oracao-story-img .os-foot { text-align: center; font-size: 38px; letter-spacing: 4px; color: #C9A24B; text-transform: uppercase; }

/* Busca + trecho nas orações */
.oracoes-busca { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; margin: 1.2rem 0 .4rem; }
.oracoes-busca input[type=search] { flex: 1; min-width: 220px; padding: .6rem .9rem; border: 1px solid var(--borda); border-radius: 999px; font-family: inherit; font-size: .95rem; }
.oracoes-limpar { color: var(--texto-suave); font-size: .85rem; text-decoration: none; }
.oracoes-resultado { color: var(--texto-suave); font-size: .9rem; margin: .2rem 0 0; }
.oracao-trecho { font-size: 14px; color: var(--texto-suave); margin: 6px 0 8px; line-height: 1.55; }

/* Trecho da mensagem do dia + paginação das orações */
.oracao-destaque-trecho { color: #EBDDF2; font-size: 15px; line-height: 1.6; margin: 4px 0 14px; }
.oracoes-paginacao { display: flex; gap: .35rem; flex-wrap: wrap; margin-top: 1.5rem; }
.oracoes-paginacao a { padding: .4rem .75rem; border: 1px solid var(--borda); border-radius: 8px; text-decoration: none; color: var(--uva); font-size: .9rem; }
.oracoes-paginacao a:hover { background: var(--uva-suave); }
.oracoes-paginacao a.ativa { background: var(--uva); color: #fff; border-color: var(--uva); }

/* Resposta do GEEAL + curtir comentário */
.coment-resposta { background: var(--uva-suave); border-left: 3px solid var(--dourado); border-radius: 0 8px 8px 0; padding: 8px 12px; margin: 8px 0 4px; font-size: 13.5px; color: var(--uva-escuro); }
.coment-curtir { background: none; border: none; cursor: pointer; color: var(--texto-suave); font-size: 13.5px; padding: 4px 0; display: inline-flex; align-items: center; gap: 5px; }
.coment-curtir i { color: #B33A3A; }
.coment-curtir.curtido { color: #B33A3A; font-weight: 600; }

/* Mensagem do dia na home */
.home-msg-dia { display: block; text-decoration: none; color: #fff; background: linear-gradient(160deg, var(--uva), var(--uva-escuro)); border-radius: var(--raio); padding: 1.6rem 1.8rem; box-shadow: var(--sombra); position: relative; overflow: hidden; }
.home-msg-dia::before { content: "✦"; position: absolute; top: -16px; right: 16px; font-size: 120px; color: rgba(228,204,134,.14); }
.home-msg-selo { display: inline-block; background: var(--dourado); color: var(--uva-escuro); font-size: .7rem; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; padding: .25rem .8rem; border-radius: 999px; }
.home-msg-dia h2 { font-family: "Playfair Display", serif; color: #fff; margin: .6rem 0 .4rem; font-size: 1.5rem; }
.home-msg-dia p { color: #EBDDF2; margin: 0 0 .8rem; line-height: 1.6; }
.home-msg-cta { font-weight: 600; color: var(--dourado-claro); }

/* ===== Biblioteca / Livraria (cards com capa) ===== */
.bib-intro { color: #6b5b73; margin: -.3rem 0 1.2rem; }
.bib-categoria { font-family: "Playfair Display", serif; color: var(--uva-escuro); margin: 1.6rem 0 .8rem; }
.bib-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 1.1rem; }
.bib-card { background: #fff; border: 1px solid var(--uva-suave); border-radius: 12px; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 2px 10px rgba(91,42,107,.07); transition: transform .15s, box-shadow .15s; }
.bib-card:hover { transform: translateY(-3px); box-shadow: 0 6px 18px rgba(91,42,107,.14); }
.bib-capa { aspect-ratio: 3/4; background-size: cover; background-position: center; background-color: var(--uva-suave); }
.bib-capa-vazia { display: flex; align-items: center; justify-content: center; font-size: 2.4rem; color: var(--dourado-claro); background: linear-gradient(135deg, var(--uva-clara), var(--uva-escuro)); }
.bib-corpo { padding: .7rem .8rem .85rem; display: flex; flex-direction: column; gap: .25rem; flex: 1; }
.bib-titulo { font-family: "Playfair Display", serif; color: var(--uva-escuro); font-size: 1rem; line-height: 1.25; margin: 0; }
.bib-autor { font-size: .78rem; color: var(--uva); }
.bib-resumo { font-size: .8rem; color: #6b5b73; line-height: 1.45; margin: .15rem 0; flex: 1; }
.bib-preco { font-weight: 700; color: #2e7d32; font-size: 1.05rem; margin-top: .2rem; }
.bib-esgotado { color: #b3361f; font-size: .76rem; font-weight: 600; display: inline-flex; align-items: center; gap: .35rem; }
.bib-esgotado i { font-size: .5rem; }
.bib-acoes { display: flex; gap: .4rem; flex-wrap: wrap; margin-top: .5rem; }
.bib-btn { flex: 1; min-width: max-content; text-align: center; font-size: .8rem; font-weight: 600; padding: .45rem .6rem; border-radius: 7px; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; gap: .35rem; }
.bib-btn.baixar { background: var(--uva); color: #fff; }
.bib-btn.baixar:hover { background: var(--uva-escuro); }
.bib-btn.comprar { background: #25D366; color: #fff; }
.bib-btn.comprar:hover { background: #1da851; }
.bib-btn.link { background: #fff; color: var(--uva); border: 1px solid var(--uva-suave); }
.bib-btn.link:hover { background: var(--uva-suave); }
.bib-btn.indisponivel { background: #f1edf4; color: #9a8aa3; cursor: default; }

/* Tag de categoria no card do acervo */
.bib-cat-tag { display: inline-block; align-self: flex-start; font-size: .68rem; font-weight: 600; text-transform: uppercase; letter-spacing: .5px; color: var(--uva); background: var(--uva-suave); padding: .1rem .45rem; border-radius: 4px; }

/* Visualizador embutido (PDF/imagem) — overlay na própria página */
.bib-viewer { position: fixed; inset: 0; z-index: 1000; background: rgba(40,20,50,.82); display: flex; flex-direction: column; padding: 2vh 2vw; }
.bib-viewer[hidden] { display: none; }
.bib-viewer-barra { display: flex; align-items: center; gap: .8rem; background: #fff; border-radius: 10px 10px 0 0; padding: .6rem .9rem; }
.bib-viewer-titulo { font-family: "Playfair Display", serif; color: var(--uva-escuro); font-weight: 600; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bib-viewer-baixar { display: inline-flex; align-items: center; gap: .35rem; background: var(--uva); color: #fff; font-size: .82rem; font-weight: 600; padding: .4rem .8rem; border-radius: 7px; text-decoration: none; }
.bib-viewer-baixar:hover { background: var(--uva-escuro); }
.bib-viewer-fechar { background: none; border: 0; font-size: 1.3rem; color: var(--uva-escuro); cursor: pointer; line-height: 1; padding: 0 .3rem; }
.bib-viewer iframe { flex: 1; width: 100%; border: 0; border-radius: 0 0 10px 10px; background: #fff; }

/* Abas da biblioteca (Estudos/Acervo | À venda) */
.bib-tabs { display: flex; gap: .5rem; flex-wrap: wrap; margin: .2rem 0 1.2rem; border-bottom: 2px solid var(--uva-suave); padding-bottom: .1rem; }
.bib-tab { padding: .55rem 1.2rem; border-radius: 999px 999px 0 0; font-size: .9rem; font-weight: 600; color: var(--uva); text-decoration: none; border: 2px solid transparent; border-bottom: 0; transition: background .15s, color .15s; }
.bib-tab:hover { background: var(--uva-suave); }
.bib-tab.ativa { background: var(--uva); color: #fff; }
