:root{
  --azul-principal:#d8ecff; --dourado:#b8891c; --preto:#000;
  --borda:3px; --raio:10px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Arial,Helvetica,sans-serif;background:var(--azul-principal);color:var(--preto);line-height:1.45}
.logo-fundo{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);opacity:.22;z-index:0;pointer-events:none;width:min(80%,600px);max-width:600px}
.conteudo{position:relative;z-index:1;padding:clamp(1rem,4vw,2rem);max-width:1100px;margin:0 auto}
h1{font-size:clamp(1.8rem,3.5vw,2.4rem);color:var(--dourado);border-left:6px solid var(--preto);padding-left:1rem;margin:0 0 .25rem 0}
p.lead{font-size:clamp(1rem,2.2vw,1.2rem);max-width:70ch;margin:.5rem 0 1.25rem}

#galerias{display:grid;gap:2rem;margin:2rem 0}

/* details/summary recolhível */
details.galeria{border:1px solid var(--dourado);border-radius:var(--raio);background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.08);overflow:hidden}
details.galeria>summary{display:flex;align-items:center;gap:.5rem;cursor:pointer;list-style:none;padding:.9rem 1rem;background:#fff7e0;border-bottom:1px solid var(--dourado)}
details.galeria>summary::-webkit-details-marker{display:none}
details.galeria>summary .caret{width:.8rem;height:.8rem;border-right:2px solid #7a5a0e;border-bottom:2px solid #7a5a0e;transform:rotate(-45deg);transition:transform .2s;margin-right:.25rem}
details.galeria[open]>summary .caret{transform:rotate(45deg)}
details.galeria>summary h2{margin:0;font-size:clamp(1.1rem,2.2vw,1.4rem);color:#7a5a0e;line-height:1.2}
.galeria-conteudo{padding:1rem}
.galeria-descricao{margin:0 0 1rem;color:#333;font-size:.98rem}

.galeria-tabela{width:100%;border-collapse:separate;border-spacing:0;border-radius:var(--raio);overflow:hidden;border:1px solid var(--dourado);background:#fff}
.galeria-tabela td{border:1px solid var(--dourado);padding:.5rem;vertical-align:top}
.galeria-celula img{display:block;width:100%;height:auto;border:var(--borda) solid var(--dourado);border-radius:8px;cursor:zoom-in}

.celula-link,.celula-wrap{display:block;text-decoration:none;color:inherit}
.celula-link:hover{filter:brightness(.98)}
.galeria-celula h3{color:#111}

.contato{margin-top:2.25rem;font-size:1rem;background:#ffffffc4;border:1px solid var(--dourado);border-radius:var(--raio);padding:1rem;max-width:900px}
.contato a{color:#0a3a75;text-decoration:none}
.contato a:hover{text-decoration:underline}
.rodape-img{width:100%;margin-top:2rem;display:block;border-radius:6px;border:1px solid rgba(0,0,0,.06)}
a:focus,button:focus,.galeria-celula img:focus{outline:3px solid #004aad;outline-offset:2px}

/* Lightbox */
.lightbox-overlay{
  position:fixed;inset:0;display:none;align-items:center;justify-content:center;
  background:rgba(0,0,0,.75);z-index:9999;padding:2rem;cursor:zoom-out
}
.lightbox-overlay.open{display:flex}
.lightbox-image{
  max-width:90vw;max-height:85vh;border-radius:8px;box-shadow:0 10px 40px rgba(0,0,0,.45);background:#fff
}
.lightbox-close{
  position:absolute;top:.75rem;right:.75rem;border:0;background:rgba(255,255,255,.9);
  padding:.35rem .6rem;border-radius:8px;font-size:1.25rem;line-height:1;cursor:pointer
}
body.lb-open{overflow:hidden}

/* ===== Panfleto (QR) ===== */
.pf-wrap{
  background:#fff; border:1px solid rgba(0,0,0,.06);
  border-radius:12px; padding:1rem; box-shadow:0 12px 30px rgba(0,0,0,.07);
}
.pf-hero{ text-align:center; padding:.5rem .5rem 1rem; }
.pf-title{ margin:.25rem 0 .75rem; font-size:clamp(1.4rem,3.5vw,2rem); color:#111; }
.pf-agenda img, .pf-agenda iframe{
  width:100%; height:auto; border-radius:10px; border:1px solid rgba(0,0,0,.08); background:#f8f8f8;
}
.pf-phone{ margin:.75rem 0 0; font-size:1.05rem; }
.pf-phone a{ color:#0a3a75; text-decoration:none; }
.pf-phone a:hover{ text-decoration:underline; }
.pf-cta-row{
  margin: .9rem auto 0; display:flex; flex-wrap:wrap; gap:.5rem; justify-content:center;
}
.pf-btn{
  display:inline-block; padding:.65rem .9rem; border-radius:10px;
  border:1px solid var(--dourado); background:#fff; color:#111; text-decoration:none;
}
.pf-btn:hover{ filter:brightness(.98) }
.pf-btn-primary{ background:#fff7e0 }

.pf-brief{ margin:1.25rem 0 1rem; text-align:center; }
.pf-brief h2{ margin:.25rem 0 .25rem; color:#7a5a0e; }
.pf-bullets{ margin:.5rem auto 0; padding-left:1.1rem; display:inline-block; text-align:left; }
.pf-bullets li{ margin:.25rem 0; }

/* ===== Cards e layouts para professores/atividades ===== */
.cards-grid{
  display:grid; gap:1rem;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.card{ background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:12px; overflow:hidden; display:flex; flex-direction:column }
.card-img{ width:100%; height:auto; display:block }
.card-body{ padding:.75rem }
.card-title{ margin:.25rem 0 .25rem; font-size:1.1rem }
.card-meta{ margin:.25rem 0; color:#444 }
.card-actions{ margin-top:.5rem }

.perfil{ display:grid; grid-template-columns: 140px 1fr; gap:1rem; align-items:start; margin:.5rem 0 1rem }
.perfil-foto{ width:100%; height:auto; border-radius:10px; border:1px solid rgba(0,0,0,.08) }
.perfil-meta{ margin:.25rem 0 .5rem; color:#444 }
.lista-simples{ list-style: none; padding-left:0 }
.lista-simples li{ margin:.35rem 0 }
.preco{ font-weight:600; color:#2b2b2b }
.muted{ opacity:.7 }

.cards-mini{ list-style:none; padding-left:0; display:grid; gap:.5rem; grid-template-columns: repeat(auto-fit, minmax(240px,1fr)) }
.cards-mini .mini{ display:flex; gap:.6rem; align-items:center; background:#fff; border:1px solid rgba(0,0,0,.06); border-radius:10px; padding:.5rem }
.cards-mini .mini img{ width:48px; height:48px; object-fit:cover; border-radius:50%; border:1px solid rgba(0,0,0,.08) }

.atividade-header{ display:flex; align-items:baseline; gap:.75rem }
.atividade-poster{ width:100%; max-width:800px; display:block; border-radius:10px; border:1px solid rgba(0,0,0,.08); margin:.5rem 0 }
.atividade-descricao{ margin:.5rem 0 }
.sec{ margin:1.25rem 0 }

/* ===== Navegação responsiva ===== */
.site-header{
  position: sticky; top: 0; z-index: 10;
  background: #b3d9f7 !important;
  backdrop-filter: blur(4px);
  border-bottom: 1px solid rgba(0,0,0,.06);
}
.site-bar{
  max-width: 1100px; margin: 0 auto;
  padding: .5rem clamp(1rem,4vw,2rem);
  display: grid; grid-template-columns: 1fr auto;
  align-items: center; gap: .75rem;
   background: #b3d9f7 !important;
}
.brand{
  font-weight: 700; letter-spacing: .2px; text-decoration: none; color: #111;
}

/* botão hambúrguer */
.nav-toggle{
  width: 42px; height: 38px; border: 1px solid rgba(0,0,0,.12);
  border-radius: 10px; background: #fff; display: grid; place-items: center;
  cursor: pointer;
}
.nav-toggle span{
  display:block; width:22px; height:2px; background:#111; margin:3px 0;
  transition: transform .25s ease, opacity .25s ease;
}
.nav-toggle.is-open span:nth-child(1){ transform: translateY(5px) rotate(45deg); }
.nav-toggle.is-open span:nth-child(2){ opacity: 0; }
.nav-toggle.is-open span:nth-child(3){ transform: translateY(-5px) rotate(-45deg); }

/* nav */
.nav{
  display: none; /* mobile: começa fechado */
  grid-column: 1 / -1;
  padding: .5rem 0 .75rem;
}
.nav a{
  display:block; padding:.55rem .75rem; border-radius:8px;
  text-decoration:none; color:#111;
}
.nav a:hover, .nav a:focus{ background:#fff7e0; outline: none; }

/* quando aberto no mobile */
.site-bar.is-open .nav{ display:block; }





.galeria-busca{
  margin: 0 0 1rem 0;
}
.galeria-busca-input{
  width: 100%;
  padding: .7rem .8rem;
  border: 1px solid rgba(0,0,0,.2);
  border-radius: 10px;
  font-size: 1rem;
}
.galeria-busca-input:focus{
  outline: 3px solid rgba(0,74,173,.25);
  outline-offset: 2px;
}




/* >= 768px: desktop */
@media (min-width: 768px){
  .site-bar{ grid-template-columns: auto 1fr; }
  .nav-toggle{ display:none; }
  .nav{
    display:flex !important; justify-content:flex-end; gap:.25rem; padding:0;
  }
  .nav a{ padding:.5rem .7rem; }
}
