/* ══════════════════════════════════════════════════════════════
   COLÉGIO BOM PASTOR — base do tema (v0.3.0)

   Direção "Divisão": branco absoluto, bordô só no que é ação ou
   título, dourado apenas nos rótulos pequenos.

   A regra do canto: elementos com imagem usam canto grande em duas
   pontas OPOSTAS e canto pequeno nas outras duas, alternando de
   bloco para bloco. O canto grande é um quarto do círculo do brasão.
   ══════════════════════════════════════════════════════════════ */

:root{
  --cbp-bordo:#8A1F32;
  --cbp-bordo-escuro:#6E1626;
  --cbp-ouro:#B08A2E;
  --cbp-tinta:#1A1618;
  --cbp-tinta-media:#6B6265;
  --cbp-tinta-clara:#9C9294;
  --cbp-linha:#EFEAEB;
  --cbp-nevoa:#FBF9F9;

  --cbp-display:"Fraunces",Georgia,"Times New Roman",serif;
  --cbp-corpo:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;

  --cbp-limite:1120px;
  --cbp-gutter:22px;
  /* Raios das máscaras. Quatro conjuntos: um raio em pixel pesa diferente
     conforme a altura da caixa, então foto alta, pétala quadrada, painel
     baixo e ícone miúdo não conseguem dividir o mesmo número. */
  --cbp-canto-g:121px;    /* fotos grandes */
  --cbp-canto-p:26px;
  --cbp-flor-g:74px;      /* galeria em flor */
  --cbp-flor-p:23px;
  --cbp-painel-u:25px;    /* painel de ação: canto uniforme */
  --cbp-canto-gm:17px;    /* ícones e selos */
  --cbp-canto-pm:9px;
}

*,*::before,*::after{box-sizing:border-box}

body{
  margin:0;
  background:#fff;
  color:var(--cbp-tinta);
  font-family:var(--cbp-corpo);
  font-size:16px;
  line-height:1.62;
  -webkit-font-smoothing:antialiased;
}

img{max-width:100%;height:auto;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--cbp-bordo);outline-offset:3px}

.cbp-limite{max-width:var(--cbp-limite);margin:0 auto;padding:0 var(--cbp-gutter)}
.cbp-secao{padding:56px 0}

/* Link de pular para o conteúdo — só aparece ao navegar por teclado. */
.cbp-pular{
  position:absolute;left:-9999px;top:0;z-index:100;
  background:var(--cbp-bordo);color:#fff;padding:12px 20px;
  font-size:14px;font-weight:600;text-decoration:none;
}
.cbp-pular:focus{left:8px;top:8px}

/* ── Cabeçalho ─────────────────────────────────────────────── */
.cbp-topo{
  position:relative;           /* nunca fixed: é a origem do corte no celular */
  background:#fff;
  border-bottom:1px solid var(--cbp-linha);
}
.cbp-topo__barra{display:flex;align-items:center;gap:14px;min-height:74px}
.cbp-marca{display:flex;align-items:center;gap:12px;margin-right:auto;text-decoration:none}
.cbp-marca__selo{width:48px;height:48px;flex-shrink:0;object-fit:contain}
.cbp-marca__nome{
  display:block;font-family:var(--cbp-display);font-weight:400;font-size:20px;
  line-height:1.05;color:var(--cbp-bordo);
}
.cbp-marca__lema{
  display:block;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cbp-tinta-clara);margin-top:3px;
}

.cbp-nav{display:none}
.cbp-nav__lista{display:flex;gap:25px;list-style:none;margin:0;padding:0;align-items:center}
.cbp-nav__lista a{
  font-size:14.5px;color:var(--cbp-tinta-media);text-decoration:none;
  padding-bottom:4px;border-bottom:2px solid transparent;transition:.18s;
}
.cbp-nav__lista a:hover,.cbp-nav__lista .current-menu-item > a{
  color:var(--cbp-bordo);border-bottom-color:var(--cbp-ouro);
}

.cbp-hamburguer{
  width:42px;height:42px;display:grid;place-items:center;
  background:none;border:1px solid var(--cbp-linha);border-radius:10px;
  cursor:pointer;padding:0;
}
.cbp-hamburguer span,
.cbp-hamburguer span::before,
.cbp-hamburguer span::after{
  display:block;width:18px;height:1.6px;background:var(--cbp-bordo);position:relative;
}
.cbp-hamburguer span::before,.cbp-hamburguer span::after{content:"";position:absolute;left:0}
.cbp-hamburguer span::before{top:-6px}
.cbp-hamburguer span::after{top:6px}

.cbp-gaveta{display:none;border-top:1px solid var(--cbp-linha);padding-bottom:18px}
.cbp-gaveta.is-aberta{display:block}
.cbp-gaveta__lista{list-style:none;margin:0;padding:0}
.cbp-gaveta__lista a{
  display:block;padding:13px 0;font-size:16.5px;text-decoration:none;
  border-bottom:1px solid var(--cbp-linha);
}
.cbp-gaveta__lista .sub-menu{list-style:none;margin:0;padding:0 0 0 16px}

/* ── Botões ────────────────────────────────────────────────── */
.cbp-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:100px;
  font-family:var(--cbp-corpo);font-size:14.5px;font-weight:600;line-height:1;
  text-decoration:none;border:1.5px solid var(--cbp-bordo);cursor:pointer;
  transition:background .18s,color .18s,border-color .18s;
}
.cbp-btn--cheio{background:var(--cbp-bordo);color:#fff}
.cbp-btn--cheio:hover{background:var(--cbp-bordo-escuro);color:#fff}
.cbp-btn--vazio{background:transparent;color:var(--cbp-bordo);border-color:var(--cbp-linha)}
.cbp-btn--vazio:hover{border-color:var(--cbp-bordo);background:var(--cbp-nevoa)}
.cbp-btn--zap{background:var(--cbp-bordo);color:#fff;padding:10px 18px;font-size:12.5px;display:none}

/* ── Títulos e texto ───────────────────────────────────────── */
.cbp-olho{
  font-size:10.5px;letter-spacing:.19em;text-transform:uppercase;
  color:var(--cbp-ouro);font-weight:600;margin:0 0 14px;
}
.cbp-titulo{
  font-family:var(--cbp-display);font-weight:300;
  font-size:clamp(29px,6.6vw,44px);line-height:1.08;letter-spacing:-.022em;
  color:var(--cbp-tinta);margin:0 0 18px;
}
.cbp-texto{font-size:16.5px;color:var(--cbp-tinta-media);max-width:58ch;margin:0 0 24px}

/* ── Moldura assimétrica ───────────────────────────────────── */
.cbp-moldura{
  border-radius:var(--cbp-canto-g) var(--cbp-canto-p) var(--cbp-canto-g) var(--cbp-canto-p);
  overflow:hidden;
}
.cbp-moldura--invertida{
  border-radius:var(--cbp-canto-p) var(--cbp-canto-g) var(--cbp-canto-p) var(--cbp-canto-g);
  overflow:hidden;
}
.cbp-moldura img,.cbp-moldura--invertida img{width:100%;height:100%;object-fit:cover}

/* ── Página interna ────────────────────────────────────────── */
.cbp-pagina__topo{padding:48px 0 8px}
.cbp-pagina__titulo{
  font-family:var(--cbp-display);font-weight:300;
  font-size:clamp(32px,7.4vw,52px);line-height:1.05;letter-spacing:-.026em;
  color:var(--cbp-tinta);margin:0;max-width:18ch;
}
.cbp-pagina__data{font-size:13.5px;color:var(--cbp-tinta-clara);margin:12px 0 0}
.cbp-pagina__capa{margin:28px 0 0;aspect-ratio:16/9}

/* Prosa: o que sai do editor do WordPress. */
:is(.cbp-prosa,.editor-styles-wrapper){max-width:70ch;margin:0 auto;padding:36px 0 64px;font-size:17px;line-height:1.72}
:is(.cbp-prosa,.editor-styles-wrapper) > *:first-child{margin-top:0}
:is(.cbp-prosa,.editor-styles-wrapper) p{margin:0 0 1.15em}
:is(.cbp-prosa,.editor-styles-wrapper) h2{
  font-family:var(--cbp-display);font-weight:400;font-size:clamp(24px,4.6vw,32px);
  line-height:1.2;color:var(--cbp-bordo);margin:2em 0 .5em;letter-spacing:-.015em;
}
:is(.cbp-prosa,.editor-styles-wrapper) h3{
  font-family:var(--cbp-display);font-weight:400;font-size:clamp(20px,3.6vw,24px);
  line-height:1.25;margin:1.7em 0 .4em;
}
:is(.cbp-prosa,.editor-styles-wrapper) h4{font-size:17px;font-weight:600;margin:1.5em 0 .3em}
:is(.cbp-prosa,.editor-styles-wrapper) a{color:var(--cbp-bordo);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
:is(.cbp-prosa,.editor-styles-wrapper) a:hover{text-decoration-color:var(--cbp-ouro)}
:is(.cbp-prosa,.editor-styles-wrapper) ul,:is(.cbp-prosa,.editor-styles-wrapper) ol{margin:0 0 1.15em;padding-left:1.3em}
:is(.cbp-prosa,.editor-styles-wrapper) li{margin-bottom:.4em}
:is(.cbp-prosa,.editor-styles-wrapper) blockquote{
  margin:1.6em 0;padding:0 0 0 22px;border-left:3px solid var(--cbp-ouro);
  font-family:var(--cbp-display);font-style:italic;font-weight:300;
  font-size:clamp(19px,3.4vw,25px);line-height:1.45;color:var(--cbp-bordo);
}
:is(.cbp-prosa,.editor-styles-wrapper) blockquote p:last-child{margin-bottom:0}
:is(.cbp-prosa,.editor-styles-wrapper) img,:is(.cbp-prosa,.editor-styles-wrapper) figure img{border-radius:12px}
:is(.cbp-prosa,.editor-styles-wrapper) figure{margin:1.8em 0}
:is(.cbp-prosa,.editor-styles-wrapper) figcaption{font-size:13.5px;color:var(--cbp-tinta-clara);margin-top:8px;text-align:center}
:is(.cbp-prosa,.editor-styles-wrapper) hr{border:0;border-top:1px solid var(--cbp-linha);margin:2.4em 0}
:is(.cbp-prosa,.editor-styles-wrapper) table{width:100%;border-collapse:collapse;font-size:15px;margin:1.6em 0}
:is(.cbp-prosa,.editor-styles-wrapper) th,:is(.cbp-prosa,.editor-styles-wrapper) td{padding:11px 12px;border-bottom:1px solid var(--cbp-linha);text-align:left}
:is(.cbp-prosa,.editor-styles-wrapper) th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--cbp-tinta-media)}

/* Blocos alinhados do editor. */
:is(.cbp-prosa,.editor-styles-wrapper) .alignwide{max-width:min(var(--cbp-limite),92vw);margin-left:calc(50% - min(var(--cbp-limite),92vw)/2);margin-right:auto}
:is(.cbp-prosa,.editor-styles-wrapper) .alignfull{max-width:100vw;margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw)}
:is(.cbp-prosa,.editor-styles-wrapper) .alignfull img{border-radius:0}

/* ── Listagem simples ──────────────────────────────────────── */
.cbp-lista{display:grid;gap:26px;margin-top:26px}
.cbp-item{padding-bottom:24px;border-bottom:1px solid var(--cbp-linha)}
.cbp-item__titulo{font-family:var(--cbp-display);font-weight:400;font-size:23px;margin:0 0 8px}
.cbp-item__titulo a{text-decoration:none;color:var(--cbp-bordo)}
.cbp-item__resumo{color:var(--cbp-tinta-media);font-size:15.5px}
.cbp-paginacao{margin-top:34px;font-size:15px}
.cbp-paginacao .page-numbers{padding:8px 12px;text-decoration:none}
.cbp-paginacao .current{color:var(--cbp-bordo);font-weight:700}

/* ── 404 ───────────────────────────────────────────────────── */
.cbp-404{text-align:center;padding:80px 0 96px}
.cbp-404 .cbp-titulo,.cbp-404 .cbp-texto{margin-left:auto;margin-right:auto}

/* ── Rodapé ────────────────────────────────────────────────── */
.cbp-rodape{
  border-top:1px solid var(--cbp-linha);
  padding:46px 0 30px;
  font-size:14.5px;color:var(--cbp-tinta-media);
}
.cbp-rodape__grade{display:grid;gap:28px}
.cbp-rodape h3{
  font-size:10.5px;letter-spacing:.17em;text-transform:uppercase;
  color:var(--cbp-ouro);margin:0 0 12px;font-weight:700;
}
.cbp-rodape p{margin:0 0 10px}
.cbp-rodape__horario{color:var(--cbp-tinta-clara)}
.cbp-rodape__lista{list-style:none;margin:0;padding:0}
.cbp-rodape__lista li{padding:5px 0}
.cbp-rodape__lista a{text-decoration:none}
.cbp-rodape__lista a:hover{color:var(--cbp-bordo)}
.cbp-rodape__fim{
  margin-top:32px;padding-top:18px;border-top:1px solid var(--cbp-linha);
  font-size:12.5px;color:var(--cbp-tinta-clara);
}

/* ── WhatsApp flutuante ────────────────────────────────────── */
.cbp-zap{
  position:fixed;right:16px;bottom:16px;z-index:70;
  width:54px;height:54px;border-radius:50%;background:#25D366;
  display:grid;place-items:center;
  box-shadow:0 6px 20px rgba(0,0,0,.22);
  transition:transform .2s;
}
.cbp-zap:hover{transform:scale(1.06)}
.cbp-zap svg{width:28px;height:28px;fill:#fff}

/* ── Telas maiores ─────────────────────────────────────────── */
@media(min-width:782px){
  :root{--cbp-gutter:34px;--cbp-canto-g:131px}
  .cbp-nav{display:block}
  .cbp-btn--zap{display:inline-flex}
  .cbp-hamburguer,.cbp-gaveta{display:none !important}
  .cbp-secao{padding:88px 0}
  .cbp-pagina__topo{padding:76px 0 8px}
  .cbp-rodape__grade{grid-template-columns:1.6fr 1fr 1fr;gap:44px}
}

/* ══════════════════════════════════════════════════════════════
   PÁGINA INICIAL (v0.2)
   Seis blocos: abertura, atalhos, o que fazemos, nossos espaços,
   próximos eventos, visita.
   ══════════════════════════════════════════════════════════════ */

.cbp-destaque{font-style:normal;color:var(--cbp-bordo)}

.cbp-link{
  display:inline-flex;align-items:center;gap:7px;
  font-size:14.5px;font-weight:600;color:var(--cbp-bordo);
  text-decoration:none;border-bottom:1.5px solid var(--cbp-linha);
  padding-bottom:3px;transition:border-color .18s;
}
.cbp-link:hover{border-bottom-color:var(--cbp-ouro)}
.cbp-link::after{content:"→";font-weight:400}

.cbp-aviso-editor{
  background:var(--cbp-nevoa);border:1px dashed var(--cbp-tinta-clara);
  border-radius:10px;padding:16px 18px;margin:22px 0;
  font-size:14px;color:var(--cbp-tinta-media);max-width:62ch;
}

/* ── Entrada ao rolar ──────────────────────────────────────────
   O CSS só esconde se o JavaScript tiver confirmado que está rodando
   (classe cbp-js no <html>, posta no wp_head). Sem JS, tudo nasce
   visível — a home nunca fica em branco por falha de script. */
.cbp-js .cbp-sobe{opacity:0;transform:translateY(22px)}
.cbp-js .cbp-sobe{transition:opacity .75s ease,transform .75s cubic-bezier(.22,.61,.36,1)}
.cbp-js .cbp-sobe.is-vis{opacity:1;transform:none}

/* A flor desliza em vez de subir. No celular não há curso lateral sem criar
   rolagem horizontal, então lá ela sobe — o movimento é o mesmo, o eixo muda. */
.cbp-js .cbp-sobe--desliza{transform:translateY(40px);transition-duration:.8s}
.cbp-js .cbp-sobe--desliza.is-vis{transform:none}

/* O texto entra logo atrás da flor: rápido, só para não aparecer seco. */
.cbp-js .cbp-sobe--tardio{transform:translateY(14px);transition-delay:.45s}
.cbp-js .cbp-sobe--tardio.is-vis{transform:none}

/* ── 1. Abertura ─────────────────────────────────────────────── */
.cbp-heroi{padding:44px 0 8px}
.cbp-heroi__titulo{
  font-family:var(--cbp-display);font-weight:300;
  font-size:clamp(34px,8vw,58px);line-height:1.03;letter-spacing:-.028em;
  color:var(--cbp-tinta);margin:0 0 18px;max-width:14ch;
}
.cbp-heroi__linha{font-size:17.5px;color:var(--cbp-tinta-media);max-width:44ch;margin:0 0 28px}
.cbp-heroi__acoes{display:flex;flex-wrap:wrap;gap:11px;margin:0}

/* Nasce ABERTA: é o estado final, e é o que vale sem JavaScript. */
.cbp-heroi__foto{
  aspect-ratio:1/1;margin-top:32px;overflow:hidden;background:var(--cbp-nevoa);
  border-radius:var(--cbp-canto-g) var(--cbp-canto-p) var(--cbp-canto-g) var(--cbp-canto-p);
  transition:border-radius 1.1s cubic-bezier(.22,.61,.36,1);
}
.cbp-js .cbp-heroi__foto:not(.is-pronto){border-radius:var(--cbp-canto-p)}
.cbp-heroi__foto img{width:100%;height:100%;object-fit:cover}

/* ── 2. Atalhos ──────────────────────────────────────────────── */
.cbp-secao--atalhos{padding:34px 0}
.cbp-atalhos{list-style:none;margin:0;padding:0;display:grid;gap:1px;background:var(--cbp-linha);
  border-top:1px solid var(--cbp-linha);border-bottom:1px solid var(--cbp-linha)}
.cbp-atalho{background:#fff}
.cbp-atalho a,.cbp-atalho > span{display:block;padding:20px 4px;text-decoration:none;transition:background .18s}
.cbp-atalho a:hover{background:var(--cbp-nevoa)}
.cbp-atalho__titulo{
  display:block;font-family:var(--cbp-display);font-size:19px;font-weight:400;
  color:var(--cbp-bordo);line-height:1.15;margin-bottom:4px;
}
.cbp-atalho__texto{display:block;font-size:14.5px;color:var(--cbp-tinta-media)}

/* ── 3. O que fazemos ────────────────────────────────────────── */
.cbp-fazemos{max-width:74ch}
.cbp-citacao{
  margin:0 0 22px;padding:0 0 0 22px;border-left:3px solid var(--cbp-ouro);
  font-family:var(--cbp-display);font-style:italic;font-weight:300;
  font-size:clamp(20px,4.2vw,28px);line-height:1.4;color:var(--cbp-bordo);
}

/* ── 4. Nossos espaços: a flor ───────────────────────────────── */
/* clip impede que o deslizamento crie rolagem horizontal. Ao contrário de
   overflow:hidden, não transforma a seção em contexto de rolagem. */
.cbp-secao--espacos{overflow-x:clip}
.cbp-espacos__grade{display:grid;gap:26px;align-items:center}
.cbp-espacos__texto > *:first-child{margin-top:0}
.cbp-espacos__texto .cbp-titulo{margin-bottom:14px}
.cbp-espacos__texto .cbp-texto{margin-bottom:18px}

.cbp-flor{
  position:relative;width:100%;max-width:520px;margin:0 auto;aspect-ratio:1/1;
  display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:12px;
}
.cbp-petala{
  position:relative;margin:0;padding:0;border:0;display:block;
  width:100%;height:100%;overflow:hidden;background:#fff;cursor:zoom-in;
}
/* Arranjo espelhado: os quatro cantos menores se encontram no miolo.
   É a máscara do tema girada 90°, que em border-radius é a alternância
   que .cbp-moldura e .cbp-moldura--invertida já usam. */
.cbp-petala--1,.cbp-petala--3{border-radius:var(--cbp-flor-p) var(--cbp-flor-g) var(--cbp-flor-p) var(--cbp-flor-g)}
.cbp-petala--2,.cbp-petala--4{border-radius:var(--cbp-flor-g) var(--cbp-flor-p) var(--cbp-flor-g) var(--cbp-flor-p)}
/* A ordem visual não é a do HTML: a grade preenche por linha, e a pétala 4
   fica embaixo à esquerda. Sem isto o giro sairia trocado. */
.cbp-petala--3{order:4}
.cbp-petala--4{order:3}

/* UMA imagem por pétala. Sem sobreposição, logo sem mescla possível:
   a foto lava até o branco, some, troca invisível, e a próxima volta. */
.cbp-petala img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cbp-petala img.is-saindo{opacity:0;filter:brightness(2.5) contrast(.3) saturate(.15)}
.cbp-petala img.is-parada{transition:none;opacity:0;filter:brightness(2.5) contrast(.3) saturate(.15)}
.cbp-petala img.is-entrando{opacity:1;filter:none}

/* ── 5. Próximos eventos ─────────────────────────────────────── */
.cbp-banner-evento{margin:26px 0}
.cbp-agenda{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:1px;background:var(--cbp-linha);
  border-top:1px solid var(--cbp-linha);border-bottom:1px solid var(--cbp-linha)}
.cbp-ev{background:var(--cbp-nevoa);display:flex;gap:18px;align-items:flex-start;padding:18px 4px}
.cbp-ev__dia{
  flex:none;width:58px;text-align:center;border:1px solid var(--cbp-linha);background:#fff;
  border-radius:var(--cbp-canto-gm) var(--cbp-canto-pm) var(--cbp-canto-gm) var(--cbp-canto-pm);
  padding:8px 0;
}
.cbp-ev__num{display:block;font-family:var(--cbp-display);font-size:24px;line-height:1;color:var(--cbp-bordo)}
.cbp-ev__mes{display:block;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--cbp-tinta-clara);margin-top:4px}
.cbp-ev__titulo{font-family:var(--cbp-display);font-weight:400;font-size:19px;margin:0 0 3px;line-height:1.2}
.cbp-ev__titulo a{text-decoration:none;color:var(--cbp-tinta)}
.cbp-ev__titulo a:hover{color:var(--cbp-bordo)}
.cbp-ev__detalhe{margin:0;font-size:14.5px;color:var(--cbp-tinta-media)}

/* ── 6. Visita ───────────────────────────────────────────────── */
.cbp-visita{
  background:var(--cbp-bordo);color:#fff;padding:40px 26px;
  border-radius:var(--cbp-painel-u);
}
.cbp-visita .cbp-olho{color:rgba(255,255,255,.72)}
.cbp-visita__titulo{
  font-family:var(--cbp-display);font-weight:300;
  font-size:clamp(25px,5.4vw,36px);line-height:1.08;letter-spacing:-.024em;
  margin:0 0 12px;color:#fff;max-width:20ch;
}
.cbp-visita__texto{color:rgba(255,255,255,.84);max-width:46ch;margin:0 0 24px;font-size:16px}
.cbp-btn--branco{background:#fff;color:var(--cbp-bordo);border-color:#fff}
.cbp-btn--branco:hover{background:var(--cbp-nevoa);color:var(--cbp-bordo-escuro);border-color:var(--cbp-nevoa)}

/* ── Lupa da galeria ─────────────────────────────────────────── */
.cbp-lupa{
  position:fixed;inset:0;z-index:100;background:rgba(26,22,24,.94);
  display:flex;align-items:center;justify-content:center;padding:64px 16px 84px;
}
.cbp-lupa[hidden]{display:none}
.cbp-lupa__quadro{margin:0;max-width:100%;max-height:100%;display:flex;
  flex-direction:column;align-items:center;gap:12px}
.cbp-lupa__quadro img{max-width:100%;max-height:78vh;object-fit:contain;border-radius:10px}
.cbp-lupa__legenda{color:rgba(255,255,255,.8);font-size:14px;text-align:center;max-width:60ch}
.cbp-lupa button{
  position:absolute;border-radius:50%;border:1px solid rgba(255,255,255,.28);
  background:rgba(0,0,0,.3);color:#fff;cursor:pointer;padding:0;line-height:1;
}
.cbp-lupa button:hover{background:rgba(255,255,255,.14)}
.cbp-lupa__fechar{top:14px;right:14px;width:44px;height:44px;font-size:20px}
.cbp-lupa__nav{top:50%;transform:translateY(-50%);width:48px;height:48px;font-size:24px}
.cbp-lupa__nav--ant{left:12px}
.cbp-lupa__nav--prox{right:12px}
.cbp-lupa__conta{position:absolute;bottom:26px;left:0;right:0;text-align:center;
  color:rgba(255,255,255,.75);font-size:13px;letter-spacing:.06em;margin:0}

/* ── Telas maiores ───────────────────────────────────────────── */
@media(min-width:782px){
  .cbp-heroi{padding:76px 0 0}
  .cbp-heroi__grade{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
  .cbp-heroi__foto{margin-top:0}
  .cbp-secao--atalhos{padding:44px 0}
  .cbp-atalhos{grid-template-columns:repeat(4,1fr)}
  .cbp-atalho a,.cbp-atalho > span{padding:24px 20px}
  .cbp-flor{gap:14px;margin:0}
  .cbp-espacos__grade{grid-template-columns:1.05fr .95fr;gap:54px}
  /* Acima de 782px há espaço para o movimento lateral que a escola pediu. */
  .cbp-js .cbp-sobe--desliza{transform:translateX(96px)}
  .cbp-js .cbp-sobe--desliza.is-vis{transform:none}
  .cbp-ev{padding:22px 20px}
  .cbp-visita{padding:52px 44px}
}

/* Com "reduzir movimento" ligado, nada entra animado e a flor troca seco. */
@media(prefers-reduced-motion:reduce){
  .cbp-js .cbp-sobe,
  .cbp-js .cbp-sobe--desliza,
  .cbp-js .cbp-sobe--tardio{opacity:1;transform:none;transition:none;transition-delay:0s}
  .cbp-heroi__foto,.cbp-petala img{transition:none !important}
}

@media(prefers-reduced-motion:reduce){
  *{transition-duration:.01ms !important;animation-duration:.01ms !important}
}

/* ══════════════════════════════════════════════════════════════
   BLOCOS DO EDITOR — v0.3.0

   Regras globais de propósito: sem prender ao .cbp-prosa, elas valem
   também dentro do editor, que não tem essa classe. A única exceção é
   a que tira o sublinhado do botão, explicada onde está.

   Só os blocos que o colégio vai realmente usar. Bloco sem estilo aqui
   cai no visual padrão do WordPress — feio, mas não quebrado.
   ══════════════════════════════════════════════════════════════ */

/* ── Botão ──────────────────────────────────────────────────────
   O bloco de botão é um <a>. Dentro da prosa ele herdaria o
   sublinhado bordô de todo link, e sairia um botão sublinhado. */
.wp-block-buttons{display:flex;flex-wrap:wrap;gap:12px;margin:1.7em 0}
.wp-block-button__link{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 26px;border-radius:100px;
  font-family:var(--cbp-corpo);font-size:14.5px;font-weight:600;line-height:1;
  border:1.5px solid var(--cbp-bordo);
  background:var(--cbp-bordo);color:#fff;
  transition:background .18s,color .18s,border-color .18s;
}
.wp-block-button__link:hover{background:var(--cbp-bordo-escuro);color:#fff}
.wp-block-button.is-style-outline .wp-block-button__link{
  background:transparent;color:var(--cbp-bordo);border-color:var(--cbp-linha);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover{
  border-color:var(--cbp-bordo);background:var(--cbp-nevoa);color:var(--cbp-bordo);
}
/* Especificidade 0,2,0 para empatar com a regra de link da prosa e vencer
   por vir depois. Sem isto, botão sublinhado. */
:is(.cbp-prosa,.editor-styles-wrapper) .wp-block-button__link{text-decoration:none}
:is(.cbp-prosa,.editor-styles-wrapper) .wp-block-button__link:hover{text-decoration:none}

/* ── Colunas ────────────────────────────────────────────────────
   Duas colunas dentro da largura de leitura ficam com pouco mais de
   300px cada. Marque o bloco como "Largura ampla" para valer a pena. */
.wp-block-columns{gap:34px;margin:1.9em 0}
.wp-block-column > *:first-child{margin-top:0}
.wp-block-column > *:last-child{margin-bottom:0}
@media(max-width:781px){
  .wp-block-columns{gap:22px}
}

/* ── Grupo ──────────────────────────────────────────────────────
   Com fundo escolhido na paleta, ganha respiro e canto do tema. */
.wp-block-group.has-background{
  padding:26px 24px;border-radius:var(--cbp-painel-u);
}
.wp-block-group.has-background > *:first-child{margin-top:0}
.wp-block-group.has-background > *:last-child{margin-bottom:0}

/* ── Imagem ─────────────────────────────────────────────────────
   Acompanha o canto que a prosa já dá às imagens; largura total
   perde o canto, como já acontece no resto do tema. */
.wp-block-image img{border-radius:12px}
.wp-block-image.alignfull img,.wp-block-image.alignwide img{border-radius:0}
.wp-block-image figcaption{
  font-size:13.5px;color:var(--cbp-tinta-clara);margin-top:8px;text-align:center;
}

/* ── Mídia e texto ──────────────────────────────────────────── */
.wp-block-media-text{margin:1.9em 0;gap:30px}
.wp-block-media-text img{border-radius:12px}
.wp-block-media-text__content > *:first-child{margin-top:0}
.wp-block-media-text__content > *:last-child{margin-bottom:0}

/* ── Separador ──────────────────────────────────────────────── */
.wp-block-separator{
  border:0;border-top:1px solid var(--cbp-linha);
  max-width:120px;margin:2.6em auto;opacity:1;
}
.wp-block-separator.is-style-wide{max-width:100%}

/* ── Lista, citação e tabela ────────────────────────────────────
   O grosso já vem das regras da prosa. Aqui só o que o bloco traz
   de estrutura própria. */
.wp-block-list{margin:0 0 1.15em;padding-left:1.3em}
.wp-block-quote{
  margin:1.9em 0;padding-left:20px;border-left:3px solid var(--cbp-ouro);
  font-family:var(--cbp-display);font-size:19px;line-height:1.5;
}
.wp-block-quote cite{
  display:block;margin-top:10px;font-family:var(--cbp-corpo);
  font-size:13.5px;font-style:normal;color:var(--cbp-tinta-clara);
}
.wp-block-table table{width:100%;border-collapse:collapse;font-size:15px}
.wp-block-table th,.wp-block-table td{
  padding:11px 12px;border-bottom:1px solid var(--cbp-linha);text-align:left;
}
.wp-block-table th{
  font-size:12px;letter-spacing:.08em;text-transform:uppercase;
  color:var(--cbp-tinta-media);
}
/* Tabela larga não pode empurrar a página no celular. */
.wp-block-table{overflow-x:auto}

/* ── Título h1 dentro do conteúdo ───────────────────────────────
   O page.php já imprime o título da página como h1. Um segundo h1 no
   corpo é problema de acessibilidade — mas se acontecer, ao menos não
   destoa. A conferência de não usar h1 no conteúdo é humana. */
:is(.cbp-prosa,.editor-styles-wrapper) h1{
  font-family:var(--cbp-display);font-weight:400;font-size:30px;
  line-height:1.2;margin:1.7em 0 .4em;
}

/* ── Cor de fundo vinda da paleta ───────────────────────────────
   O WordPress gera as classes has-*-background-color a partir do
   theme.json; estas duas só garantem legibilidade sobre o bordô. */
.has-bordo-background-color{color:#fff}
.has-bordo-background-color a{color:#fff}
