/* ==========================================================================
   GEEDEM — camada "alma da casa" sobre o template
   Base clara e fria, com as cores do logo e serifa Fraunces.
   Espelha o papel do book.css do Eu Melhor, porém em paleta leve.
   ========================================================================== */
/* Paleta tirada do logo do GEEDEM: azul-marinho do letreiro, o ciano da onda
   e as três chamas (rosa, verde, azul). Base fria e limpa — sem tons amarelados. */
:root{
  --bg:      #f7fafc;
  --bg-2:    #eaf1f7;
  --panel:   #ffffff;
  --line:    rgba(18, 48, 92, .11);
  --ink:     #12305c;
  --ink-2:   #29456f;
  --muted:   #647a94;
  --azul:    #2f6fb5;
  --azul-2:  #1f5896;
  --azul-luz:rgba(47, 111, 181, .11);
  --ciano:   #3fb6dd;
  --ciano-2: #2795bd;
  --ciano-luz:#bfe8f5;
  --ciano-veu:rgba(63, 182, 221, .14);
  --rosa:    #e0538d;
  --rosa-luz:#fbe6ef;
  --verde:   #58ad4a;
  --verde-2: #43913a;
  --verde-luz:#e6f4e3;
  --erro:    #c25e5e;
  --serif:   "Fraunces", Georgia, "Times New Roman", serif;
  --sans:    "Poppins", sans-serif;
  --curva:   cubic-bezier(.22, .61, .36, 1);
  --sombra:  0 16px 44px -16px rgba(43, 48, 73, .18);
  --sombra-2:0 34px 80px -30px rgba(43, 48, 73, .34);
}

/* ---- Base clara ---- */
body, main{ background:var(--bg) !important; color:var(--ink); }
body{ font-family:var(--sans); font-weight:300; }
::selection{ background:var(--ciano-luz); color:var(--ink); }
a{ color:var(--azul-2); }
a:hover{ color:var(--ink); text-decoration:none; }
.container{ position:relative; z-index:2; }

/* O template deixa main como flex-row: sem largura total os blocos encolhem
   até o conteúdo e grudam à esquerda (a .left-side é a exceção proposital). */
main > section, main > header, main > footer, main > .proximo-faixa{
  flex:0 0 100%; width:100%;
}
section{ scroll-margin-top:40px; }

/* ---- Títulos de seção (serifa) ---- */
.section-title{
  font-family:var(--serif) !important;
  font-weight:500 !important;
  letter-spacing:-.005em !important;
  color:var(--ink);
  line-height:1.04 !important;
  margin-bottom:44px !important;
  font-size:clamp(2.3rem, 4.4vw, 4rem) !important;
}
.section-title em{ font-style:italic; font-weight:400; color:var(--azul); }

.eyebrow{
  display:inline-block; font-family:var(--sans); font-weight:600;
  letter-spacing:.3em; text-transform:uppercase; font-size:11.5px;
  color:var(--ciano-2); margin-bottom:20px;
}
.eyebrow.centro{ display:block; text-align:center; }

/* ==========================================================================
   PRELOADER / TRANSIÇÃO / NAV — versão clara
   ========================================================================== */
.preloader{ background:var(--ciano-luz); }
.preloader .layer{ background:var(--bg); }
.preloader .inner span{ color:var(--ciano-2); letter-spacing:.34em; }
.preloader .inner figure{ animation:girar 7s linear infinite; display:flex; justify-content:center; }
@keyframes girar{ to{ transform:rotate(360deg); } }

.page-transition{ background:var(--ciano-luz); }
.page-transition .layer{ background:var(--bg); }

.site-navigation{ background:var(--ciano-luz); }
.site-navigation .layer{ background:#fbfdff; }
.site-navigation .inner ul li a{
  font-family:var(--serif); font-weight:500; color:var(--ink);
  font-size:clamp(2rem, 5.2vh, 3.2rem); letter-spacing:0;
}
.site-navigation .inner ul li a:hover{ color:var(--azul); font-style:italic; }
.site-navigation .inner ul li small{
  color:var(--ciano-2); opacity:1; font-size:10.5px; letter-spacing:.24em;
  transform:translateY(-8px);
}

/* ==========================================================================
   LATERAL ESQUERDA
   ========================================================================== */
.left-side{ border-right:1px solid var(--line); }
/* logo oficial (images/logo.*) — o template limita a 50px, aqui ele respira */
.left-side .logo img{ width:auto; max-width:72px; max-height:72px; object-fit:contain; }
.preloader .inner figure img.logo-preloader{
  width:auto; max-width:180px; max-height:120px; object-fit:contain;
}
/* o logo não gira junto com o sol do fallback */
.preloader .inner figure:has(img){ animation:none; }
.left-side .follow-us{
  font-family:var(--sans) !important; font-weight:600; font-size:11px;
  letter-spacing:.34em; color:var(--ciano-2);
}
.left-side .lado-sigla{
  font-family:var(--sans); font-weight:600; font-size:10px; letter-spacing:.3em;
  color:var(--muted); writing-mode:vertical-rl; transform:rotate(180deg);
  margin:auto auto 0; opacity:.75;
}
/* linhas do hambúrguer (o CSS do template as pinta de branco) */
.hamburger__line-in::after, .hamburger__line-in::before{ background-color:var(--ink) !important; }

/* ==========================================================================
   HERO
   ========================================================================== */
.casa-hero{
  position:relative; width:100%; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; padding:120px 0 100px;
  background:
    radial-gradient(58vw 44vw at 82% 8%,  #fce4ef 0%, rgba(252,228,239,0) 62%),
    radial-gradient(52vw 40vw at 6% 4%,   #e2ecfd 0%, rgba(226,236,253,0) 58%),
    radial-gradient(66vw 50vw at 46% 112%,#dcf1fa 0%, rgba(220,241,250,0) 62%),
    linear-gradient(180deg, #fcfeff 0%, #edf4fa 100%);
}
.casa-hero #ceu{ position:absolute; inset:0; width:100%; height:100%; z-index:1; }
.casa-hero .hero-aura{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:radial-gradient(44vw 32vw at 70% 40%, rgba(63,182,221,.3), transparent 66%);
}
/* a barra lateral fixa tem 120px: o herói precisa começar depois dela */
.casa-hero .container{ z-index:3; }
@media (min-width: 992px){
  .casa-hero .container{
    max-width:none; width:100%;
    padding-left:calc(120px + 4vw); padding-right:5vw;
  }
}
.hero-grid{ display:grid; grid-template-columns:1.08fr .92fr; align-items:center; gap:4vw; }

.hero-text .eyebrow{ margin-bottom:22px; }
.hero-title{
  font-family:var(--serif); font-weight:500; color:var(--ink);
  font-size:clamp(3.4rem, 8.4vw, 7rem); line-height:.94; letter-spacing:-.015em;
  margin:0 0 26px;
}
.hero-title em{ display:block; font-style:italic; font-weight:400; color:var(--azul); }
.hero-sub{
  font-family:var(--serif); font-style:italic; color:var(--azul-2);
  font-size:clamp(1.05rem, 1.9vw, 1.45rem); line-height:1.42; max-width:32ch; margin:0 0 12px;
}
.hero-tag{ color:var(--muted); font-size:1rem; margin-bottom:34px; }
.hero-tag em{ color:var(--ink); font-style:italic; }
.hero-cta{ display:flex; flex-wrap:wrap; gap:14px; }

.btn-solid, .btn-line{
  display:inline-flex; align-items:center; gap:.6rem; font-family:var(--sans);
  font-weight:600; font-size:14px; padding:16px 32px; border-radius:999px;
  transition:.3s var(--curva); cursor:pointer;
}
.btn-solid{
  background:linear-gradient(135deg, var(--ciano), var(--azul)); color:#ffffff;
  box-shadow:0 14px 30px -12px rgba(63,182,221,.6);
}
.btn-solid:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -14px rgba(63,182,221,.75); color:#ffffff; }
.btn-line{ color:var(--ink); border:1.5px solid rgba(43,48,73,.24); }
.btn-line:hover{ border-color:var(--azul); color:var(--azul-2); transform:translateY(-3px); }

/* cartão da mensagem do dia (no lugar da capa do livro) */
.hero-card{ display:flex; justify-content:center; perspective:1600px; }
.msg-frame{
  position:relative; width:min(400px, 88%);
  background:linear-gradient(168deg, #ffffff 0%, #f4fbfe 100%);
  border:1px solid rgba(63,182,221,.34); border-radius:20px;
  padding:46px 40px 38px;
  transform:rotateY(-12deg) rotateX(3deg); transform-style:preserve-3d;
  animation:flutuar 6.5s ease-in-out infinite;
  box-shadow:0 2px 5px rgba(43,48,73,.05), 32px 44px 78px -32px rgba(43,48,73,.4);
}
.msg-frame::before{
  content:""; position:absolute; inset:9px; border:1px solid rgba(63,182,221,.22);
  border-radius:13px; pointer-events:none;
}
.msg-frame::after{
  content:""; position:absolute; inset:-14% -16% -24%; z-index:-1; border-radius:50%;
  background:radial-gradient(closest-side, rgba(63,182,221,.55), transparent 72%); filter:blur(22px);
}
@keyframes flutuar{
  0%,100%{ transform:rotateY(-12deg) rotateX(3deg) translateY(0); }
  50%    { transform:rotateY(-12deg) rotateX(3deg) translateY(-16px); }
}
.msg-selo{
  display:inline-block; font-size:10.5px; font-weight:600; letter-spacing:.32em;
  text-transform:uppercase; color:var(--ciano-2); margin-bottom:14px;
}
.msg-aspas{
  position:absolute; top:24px; right:32px; line-height:1;
  font-family:var(--serif); font-size:5rem; color:var(--ciano); opacity:.26;
}
.msg-texto{
  font-family:var(--serif); font-style:italic; font-size:clamp(1.15rem, 1.7vw, 1.4rem);
  line-height:1.5; color:var(--ink); margin:0;
}
.msg-frame cite{
  display:block; margin-top:18px; font-style:normal; font-size:11px; font-weight:600;
  letter-spacing:.22em; text-transform:uppercase; color:var(--azul-2);
}

.hero-scroll{
  position:absolute; left:50%; bottom:24px; transform:translateX(-50%); z-index:4;
  color:var(--muted); font-size:10.5px; letter-spacing:.28em; text-transform:uppercase;
  display:flex; flex-direction:column; align-items:center; gap:10px;
}
.hero-scroll:hover{ color:var(--ciano-2); text-decoration:none; }
.hero-scroll span{
  width:1px; height:44px; background:linear-gradient(var(--ciano), transparent);
  animation:respirar 2.2s ease-in-out infinite;
}
@keyframes respirar{ 0%,100%{ transform:scaleY(1); opacity:1 } 50%{ transform:scaleY(.5); opacity:.5 } }

/* ==========================================================================
   FAIXA "PRÓXIMO ENCONTRO"
   ========================================================================== */
.proximo-faixa{ position:relative; z-index:5; margin-top:-40px; }
.proximo-card{
  display:flex; align-items:center; justify-content:center; gap:10px 16px; flex-wrap:wrap;
  background:var(--panel); border:1px solid var(--line); border-radius:999px;
  box-shadow:var(--sombra-2); padding:16px 34px; text-align:center;
  max-width:920px; margin:0 auto;
}
.proximo-card i{ color:var(--ciano); font-size:1.2rem; }
.proximo-card p{ margin:0; color:var(--muted); font-size:.97rem; }
.proximo-card strong{ color:var(--ink); font-weight:600; }
.pill{
  background:var(--verde-luz); color:var(--verde); font-size:11px; font-weight:700;
  letter-spacing:.1em; text-transform:uppercase; padding:5px 14px; border-radius:999px;
}

/* ==========================================================================
   INTRO / A CASA / PRIMEIRA VISITA
   ========================================================================== */
.intro{ background:var(--bg); padding:110px 0; }
.intro .section-title{ margin-bottom:22px !important; }
.intro p{ color:var(--muted); font-size:clamp(1.02rem, 1.4vw, 1.2rem); line-height:1.95; }
.intro p strong{ color:var(--ink); font-weight:600; }
.intro a{
  color:var(--azul-2) !important; font-weight:600;
  border-bottom:1.5px solid rgba(97,131,201,.4); padding-bottom:3px;
}
.intro a:hover{ color:var(--ink) !important; border-color:var(--ink); text-decoration:none; }

.visita{ background:var(--bg-2); }
.checks{ list-style:none; margin:26px 0 0; padding:0; }
.checks li{
  display:flex; align-items:flex-start; gap:13px; color:var(--muted);
  padding:7px 0; font-size:.97rem;
}
.checks li i{
  flex:0 0 24px; width:24px; height:24px; margin-top:3px; border-radius:50%;
  background:linear-gradient(135deg, var(--ciano), var(--azul)); color:#ffffff;
  font-size:.7rem; display:flex; align-items:center; justify-content:center;
}

/* ==========================================================================
   PILARES
   ========================================================================== */
.icon-content-block{ background:var(--bg-2); padding:100px 0; }
.icon-content-block .section-title{ text-align:center; margin-bottom:56px !important; }
.icon-content-block .content-block{
  background:var(--panel); border:1px solid var(--line); border-radius:18px;
  padding:38px 28px; height:100%; transition:.35s var(--curva);
  text-align:left; /* o template centraliza; aqui o bloco é editorial */
}
.icon-content-block .content-block:hover,
.icon-content-block .content-block.selected{
  transform:translateY(-8px); border-color:rgba(97,131,201,.45);
  background:linear-gradient(180deg, rgba(97,131,201,.07), var(--panel));
  box-shadow:var(--sombra);
}
.icon-content-block .content-block figure{
  width:60px; height:60px; border-radius:16px; display:flex; align-items:center; justify-content:center;
  background:var(--azul-luz); margin-bottom:22px;
}
.icon-content-block .content-block figure i{ font-size:24px; color:var(--azul); }

/* cada pilar ganha uma cor do logo — as três chamas mais o azul do letreiro */
.icon-content-block .col-lg-3:nth-child(2) figure{ background:var(--azul-luz); }
.icon-content-block .col-lg-3:nth-child(2) figure i{ color:var(--azul); }
.icon-content-block .col-lg-3:nth-child(3) figure{ background:var(--rosa-luz); }
.icon-content-block .col-lg-3:nth-child(3) figure i{ color:var(--rosa); }
.icon-content-block .col-lg-3:nth-child(4) figure{ background:var(--ciano-veu); }
.icon-content-block .col-lg-3:nth-child(4) figure i{ color:var(--ciano-2); }
.icon-content-block .col-lg-3:nth-child(5) figure{ background:var(--verde-luz); }
.icon-content-block .col-lg-3:nth-child(5) figure i{ color:var(--verde-2); }
.icon-content-block .content-block h6{
  font-family:var(--serif); font-size:1.32rem; font-weight:600; color:var(--ink); margin-bottom:12px;
}
.icon-content-block .content-block p{ color:var(--muted); font-size:.94rem; line-height:1.8; margin:0; }

/* ==========================================================================
   AGENDA (chapters/parts)
   ========================================================================== */
.chapters{ background:var(--bg); padding:110px 0; }
.chapters h5{ color:var(--muted); font-weight:300; line-height:1.85; font-size:1.05rem; }
.parts{ margin-top:56px; display:grid; gap:16px; }
.part{
  background:var(--panel); border:1px solid var(--line); border-radius:18px;
  padding:28px 34px; transition:.35s ease;
}
.part:hover{ border-color:rgba(97,131,201,.42); box-shadow:var(--sombra); }
.part.hoje{
  border:1.5px solid rgba(63,182,221,.6);
  background:linear-gradient(180deg, rgba(63,182,221,.15), var(--panel));
  box-shadow:0 24px 56px -26px rgba(63,182,221,.5);
}
.part-head{ display:flex; align-items:center; gap:22px; margin-bottom:0; }
.part-num{
  font-family:var(--serif); font-style:italic; font-weight:500; font-size:1.9rem;
  color:var(--azul); line-height:1; min-width:66px;
}
.part.hoje .part-num{ color:var(--ciano-2); }
.part-head > div{ flex:1; }
.part-head h4{ font-family:var(--sans); font-weight:600; font-size:1.02rem; color:var(--ink); margin:0; }
.part-head p{ color:var(--muted); font-size:.85rem; margin:0; }
.part-count{
  background:linear-gradient(135deg, var(--ciano), var(--azul)); color:#ffffff;
  font-size:10px; font-weight:700; letter-spacing:.18em; text-transform:uppercase;
  padding:4px 13px; border-radius:999px; white-space:nowrap;
}
.dia-vazio{
  color:var(--muted); font-style:italic; font-size:.94rem; margin:16px 0 0;
  padding-top:16px; border-top:1px dashed var(--line);
}
.evento-lista{ list-style:none; margin:18px 0 0; padding:16px 0 0; border-top:1px dashed var(--line); }
.evento-lista li{
  display:grid; grid-template-columns:78px 1fr auto; gap:18px; align-items:center;
  padding:11px 0; border-top:1px dashed var(--line);
}
.evento-lista li:first-child{ border-top:0; padding-top:0; }
.evento-lista li:last-child{ padding-bottom:0; }
.ev-hora{ font-family:var(--serif); font-weight:500; font-size:1.3rem; color:var(--ciano-2); }
.ev-corpo strong{ display:block; font-weight:600; font-size:.98rem; color:var(--ink); line-height:1.35; }
.ev-corpo span{ display:block; color:var(--muted); font-size:.88rem; line-height:1.6; }
.ev-tag{
  font-size:10.5px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  background:var(--azul-luz); color:var(--azul-2); padding:4px 12px; border-radius:999px; white-space:nowrap;
}
.ev-tag.privativa{ background:#f3edf7; color:#8a5f9c; }
.ev-tag.inscricao{ background:var(--ciano-veu); color:var(--ciano-2); }
.ev-tag.infantil{ background:var(--verde-luz); color:var(--verde); }

/* ==========================================================================
   DOUTRINA + EVANGELHO NO LAR (text-content-block)
   ========================================================================== */
.text-content-block{ background:var(--bg-2); padding:110px 0; }
.text-content-block .section-title{ text-align:center; margin-bottom:30px !important; }
.text-content-block h5{
  color:var(--muted); max-width:58rem; margin:0 auto 66px; text-align:center;
  font-weight:300; line-height:1.95; font-size:clamp(1.02rem, 1.4vw, 1.2rem);
}
/* o template deixa os numerais com opacity .1 — aqui eles precisam ser lidos */
.text-content-block small,
.text-content-block .col-lg-3 small{
  font-family:var(--serif); font-style:italic; font-weight:500;
  color:var(--ciano-2); font-size:1.4rem; opacity:1;
}
.text-content-block h6{
  font-family:var(--sans); font-weight:600; letter-spacing:.18em; color:var(--ink);
  font-size:.8rem; margin:14px 0 12px; padding-top:16px; border-top:1px solid var(--line);
}
.text-content-block p{ color:var(--muted); font-size:.93rem; line-height:1.8; }
.text-content-block .eyebrow.centro{ text-align:center; width:100%; }

.lar{
  background:
    radial-gradient(900px 420px at 82% 0%, rgba(63,182,221,.24), transparent 66%),
    var(--bg);
  border-top:1px solid rgba(63,182,221,.2);
  border-bottom:1px solid rgba(63,182,221,.14);
}

/* ==========================================================================
   CITAÇÃO ROTATIVA
   ========================================================================== */
.quote-block{
  padding:110px 0; text-align:center;
  background:
    radial-gradient(50vw 28vw at 50% 0%, rgba(226,236,253,.85), transparent 68%),
    var(--bg);
}
.quote-caixa{ position:relative; max-width:58rem; margin:0 auto; min-height:12rem; }
.quote-item{
  position:absolute; inset:0; display:flex; flex-direction:column; justify-content:center; gap:20px;
  opacity:0; transform:translateY(14px); transition:opacity .9s ease, transform .9s ease;
  pointer-events:none;
}
.quote-item.ativa{ opacity:1; transform:none; }
.quote-block blockquote{
  font-family:var(--serif); font-style:italic; color:var(--ink);
  font-size:clamp(1.45rem, 2.9vw, 2.35rem); line-height:1.45; margin:0;
}
.quote-block cite{
  font-style:normal; font-size:11.5px; font-weight:600; letter-spacing:.24em;
  text-transform:uppercase; color:var(--azul-2);
}

/* ==========================================================================
   OBRAS (stores)
   ========================================================================== */
.stores{ background:var(--bg-2); padding:110px 0; }
.stores h5{ color:var(--muted); font-weight:300; line-height:1.85; font-size:1.05rem; }
.store-grid{ margin-top:52px; display:grid; grid-template-columns:repeat(auto-fit, minmax(280px, 1fr)); gap:16px; }
.store-card{
  display:flex; align-items:center; gap:16px; background:var(--panel);
  border:1px solid var(--line); border-radius:16px; padding:22px 24px;
  transition:.3s var(--curva); color:inherit;
}
a.store-card:hover{
  transform:translateY(-5px); border-color:rgba(97,131,201,.5);
  box-shadow:var(--sombra); text-decoration:none; color:inherit;
}
.store-ic{
  width:48px; height:48px; flex:0 0 auto; border-radius:13px; background:var(--azul-luz);
  color:var(--azul); display:flex; align-items:center; justify-content:center; font-size:18px;
}
.store-meta{ flex:1; min-width:0; }
.store-name{ display:block; color:var(--ink); font-weight:600; font-size:1rem; line-height:1.35; }
.store-format{ display:block; color:var(--muted); font-size:.82rem; margin-top:2px; }
.store-arrow{ color:var(--azul); opacity:.45; transition:.3s ease; }
a.store-card:hover .store-arrow{ opacity:1; transform:translateX(4px); }
.store-card.featured{
  border-color:rgba(63,182,221,.55);
  background:linear-gradient(180deg, rgba(63,182,221,.2), var(--panel));
}
.store-card.featured .store-ic{ background:linear-gradient(135deg, var(--ciano), var(--azul)); color:#ffffff; }
.store-card.featured .store-arrow{ color:var(--ciano-2); }
.store-card.biblioteca{ border-style:dashed; background:transparent; }
.store-card.biblioteca .store-ic{ background:var(--ciano-veu); color:var(--ciano-2); }

/* ==========================================================================
   CONTATO
   ========================================================================== */
.contact-book{ background:var(--bg); padding:110px 0 120px; }
.contact-side{ color:var(--muted); line-height:1.85; margin:0 0 26px; max-width:32ch; }
.contact-info{ list-style:none; margin:0 0 28px; padding:0; }
.contact-info li{
  color:var(--muted); font-size:.94rem; line-height:1.7; margin-bottom:16px;
  padding-left:18px; border-left:2px solid rgba(63,182,221,.45);
}
.contact-info strong{
  display:block; font-size:10.5px; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ink); margin-bottom:2px;
}
.contact-social{ display:flex; gap:12px; }
.contact-social a{
  width:44px; height:44px; border-radius:50%; border:1px solid rgba(43,48,73,.16);
  background:var(--panel); display:flex; align-items:center; justify-content:center;
  color:var(--ink); transition:.3s ease;
}
.contact-social a:hover{ background:var(--azul); border-color:var(--azul); color:#fff; transform:translateY(-3px); }

.book-form .field-row{ display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.book-form .field{ position:relative; margin-bottom:22px; }
.book-form .field input, .book-form .field textarea{
  width:100%; background:var(--panel); border:1px solid var(--line); border-radius:14px;
  color:var(--ink); padding:24px 18px 10px; height:auto; font-family:var(--sans);
  font-size:1rem; font-weight:300; transition:.25s ease;
}
.book-form .field textarea{ min-height:158px; resize:vertical; padding-top:28px; }
.book-form .field span{
  position:absolute; left:19px; top:17px; color:var(--muted); pointer-events:none;
  transition:.2s ease; font-size:1rem;
}
.book-form .field input:focus, .book-form .field textarea:focus{
  border-color:var(--azul); box-shadow:0 0 0 4px rgba(97,131,201,.13);
}
.book-form .field input:focus + span, .book-form .field textarea:focus + span,
.book-form .field span.label-up{
  top:8px; font-size:.7rem; font-weight:600; letter-spacing:.05em; color:var(--azul-2);
}
.book-form .hp{ position:absolute; left:-9999px; }
.book-form button{
  background:linear-gradient(135deg, var(--ciano), var(--azul)); color:#ffffff;
  border:none; border-radius:999px; padding:16px 38px; height:auto; cursor:pointer;
  font-family:var(--sans); font-weight:600; font-size:14px;
  box-shadow:0 14px 30px -12px rgba(63,182,221,.6); transition:.3s var(--curva);
}
.book-form button:hover{ transform:translateY(-3px); box-shadow:0 20px 40px -14px rgba(63,182,221,.75); }
.book-form button:disabled{ opacity:.55; cursor:wait; transform:none; }
.form-foot{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; }
.form-status{ font-size:.94rem; font-weight:500; margin:0; }
.form-status.ok{ color:var(--verde); }
.form-status.err{ color:var(--erro); }
.book-form .field.invalid input, .book-form .field.invalid textarea{ border-color:var(--erro); }

/* ==========================================================================
   RODAPÉ (o template usa position:fixed + margin-bottom no body)
   ========================================================================== */
.footer{
  color:var(--ink); background:none;
  background-image:
    radial-gradient(60vw 32vw at 50% 116%, rgba(63,182,221,.4), transparent 70%),
    radial-gradient(44vw 28vw at 10% 0%, rgba(226,236,253,.6), transparent 62%);
  background-color:var(--bg-2);
  border-top:1px solid var(--line);
  padding-top:96px; text-align:center;
}
.footer .row > .col-12:first-child{ display:flex; flex-direction:column; align-items:center; }
.footer ul{ float:none; margin-bottom:30px; }
.footer ul li{ margin:0 5px; }
.footer ul li a{
  width:46px; height:46px; border-radius:50%; border:1px solid rgba(43,48,73,.16);
  background:var(--panel); display:flex; align-items:center; justify-content:center;
  color:var(--ink); font-size:15px; transition:.3s ease;
}
.footer ul li a:hover{ background:var(--ciano); border-color:var(--ciano); color:#ffffff; transform:translateY(-3px); }
.footer h6{
  font-family:var(--serif) !important; font-style:italic; font-weight:400;
  font-size:1.05rem !important; color:var(--muted); margin-bottom:16px;
}
.footer h2{
  font-family:var(--serif); font-weight:500; color:var(--ink); opacity:1;
  font-size:clamp(2.2rem, 4.6vw, 3.8rem); line-height:1.12; margin-bottom:34px;
}
.footer h2 em{ font-style:italic; font-weight:400; color:var(--azul); }
.footer .link{
  color:var(--ciano-2); font-size:15px; font-weight:600;
  border-bottom:1.5px solid rgba(63,182,221,.5);
}
.footer .link:hover{ color:var(--ink); border-color:var(--ink); }
.footer .footer-bar{
  border-top:1px solid var(--line); margin-top:76px; padding:30px 0;
  color:var(--muted); font-size:12.5px; align-items:center; justify-content:space-between;
}
.footer .footer-bar .copyright{ margin:0; }
.footer .footer-bar .creation{ margin-left:0; }
.footer .footer-bar .creation a{ color:var(--azul-2); text-decoration:none; border-bottom:1px solid rgba(97,131,201,.4); }
.footer .footer-bar .visits{ display:inline-flex; align-items:center; gap:7px; }
.footer .footer-bar .visits i{ color:var(--ciano); }
.footer .footer-bar .visits b{ color:var(--ink); font-weight:600; font-variant-numeric:tabular-nums; }

/* ==========================================================================
   RESPONSIVO
   ========================================================================== */
@media (max-width: 1199px){
  .icon-content-block .content-block{ margin-bottom:16px; }
}
@media (max-width: 991px){
  .hero-grid{ grid-template-columns:1fr; text-align:center; gap:44px; }
  .hero-card{ order:-1; }
  .msg-frame{ width:min(340px, 86%); transform:rotateY(-8deg); }
  @keyframes flutuar{ 0%,100%{ transform:rotateY(-8deg) translateY(0) } 50%{ transform:rotateY(-8deg) translateY(-12px) } }
  .hero-cta{ justify-content:center; }
  .hero-sub{ margin-left:auto; margin-right:auto; }
  .casa-hero .container{ padding-left:140px; }
  .section-title{ font-size:clamp(2.2rem, 6.6vw, 3rem) !important; }
  .part-head{ flex-wrap:wrap; gap:14px; }
  .text-content-block .col-lg-3{ margin-bottom:18px; }
}
@media (max-width: 767px){
  .container{ padding-left:26px; padding-right:26px; }
  /* no celular a faixa lateral vira um traço fino: o conteúdo precisa do espaço */
  .left-side{ width:60px; padding:20px 0; }
  .left-side .follow-us, .left-side .lado-sigla{ display:none; }
  .left-side .logo svg{ width:36px; height:36px; }
  .casa-hero{ min-height:auto; padding:104px 0 80px; }
  .casa-hero .container{ padding-left:76px; padding-right:20px; }
  .hero-title{ font-size:clamp(2.9rem, 15vw, 4rem); }
  .msg-frame{ width:100%; padding:34px 26px 30px; }
  .msg-aspas{ font-size:3.6rem; top:18px; right:22px; }
  .intro, .icon-content-block, .chapters, .text-content-block, .quote-block, .stores, .contact-book{
    padding-top:74px; padding-bottom:74px;
  }
  .book-form .field-row{ grid-template-columns:1fr; gap:0; }
  .part{ padding:24px 22px; }
  .evento-lista li{ grid-template-columns:64px 1fr; }
  .evento-lista li .ev-tag{ grid-column:2; justify-self:start; }
  .proximo-faixa{ margin-top:-28px; }
  .proximo-card{ border-radius:20px; padding:16px 22px; }
  .quote-caixa{ min-height:16rem; }
  .footer .footer-bar{ flex-direction:column; gap:10px; text-align:center; }
  .site-navigation{ padding-left:0; }
  .site-navigation .inner{ padding-left:34px; }
}

/* ==========================================================================
   ENTRADA DOS BLOCOS
   O WOW.js revela cada .wow ao entrar na tela; aqui damos o movimento.
   Sem a classe .animated o conteúdo permanece legível — nada depende de JS
   para existir, só para ganhar movimento.
   ========================================================================== */
.wow.animated{ animation:subirSuave .9s var(--curva) both; }
@keyframes subirSuave{
  from{ opacity:0; transform:translateY(30px); }
  to{ opacity:1; transform:none; }
}
/* nos títulos divididos, quem anima são as letras — o bloco só aparece */
.wow.animated:has(.char){ animation-name:aparecer; }
@keyframes aparecer{ from{ opacity:0 } to{ opacity:1 } }

/* ==========================================================================
   ACESSIBILIDADE — movimento reduzido
   ========================================================================== */
@media (prefers-reduced-motion: reduce){
  *{ animation:none !important; transition:none !important; }
  .wow{ visibility:visible !important; opacity:1 !important; }
  .preloader{ display:none !important; }
}
