

@font-face{
  font-family:"Nunito"; src:url("/fonte/nunito.woff2?v=bcb46297") format("woff2-variations");
  font-weight:200 1000; font-display:swap;
}

*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0 }

:where(main,header,footer) :where(*){ min-width:0 }

h1,h2,h3,h4,p,li,span,a,dt,dd,figcaption,summary,td,th,
b,strong,em,cite,blockquote,label,legend{ overflow-wrap:break-word }

html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100% }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto }
  *,*::before,*::after{ animation-duration:.01ms !important; transition-duration:.01ms !important }
}

body{ -webkit-font-smoothing:antialiased }
img,svg,video{ display:block; max-width:100% }
img{ height:auto }
ul{ list-style:none }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer }
a{ text-decoration-thickness:1.5px; text-underline-offset:3px }

:where(a,button,summary,input,select,textarea):focus-visible{
  outline:3px solid var(--foco-esc,#17120e); outline-offset:5px; border-radius:4px;
  box-shadow:0 0 0 2px var(--foco-cla,#fff);
}

.so-leitor{ position:absolute; width:1px; height:1px; padding:0; margin:-1px;
  overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap;
  border:0 }

.pular{ position:absolute; left:-9999px; top:0; z-index:200; padding:14px 22px;
  font-weight:700; border-radius:0 0 12px 0 }
.pular:focus{ left:0 }

main:focus{ outline:none }

.env{ width:min(100% - 40px, var(--largura,1160px)); margin-inline:auto }

:where(.env a,.env button){ min-height:24px }

@media print{ .naoimp{ display:none } }

.simbolos{ position:absolute; width:0; height:0; overflow:hidden }

svg use[href^="#t-"]{ fill:none; stroke:currentColor; stroke-width:1.6;
  stroke-linecap:round; stroke-linejoin:round }

:where(a[href^="tel:"], a[href*="wa.me"]){ display:inline-block; min-height:24px }

.ph{
  --ph-fundo:#eef2f8;
  --ph-borda:#b9c6da;
  --ph-tinta:#3b4a60;
  --ph-suave:#5c6b85;
  --ph-selo:#1e4fa0;
  --ph-raio:16px;
  position:relative; margin:0; width:100%;
  background:var(--ph-fundo);
  border:2px dashed var(--ph-borda);
  border-radius:var(--ph-raio);
  overflow:hidden;
  container-type:inline-size;
}

.ph::before{
  content:""; position:absolute; inset:0; pointer-events:none; opacity:.5;
  background-image:
    radial-gradient(circle at 50% 50%, var(--ph-borda) 1.4px, transparent 1.6px);
  background-size:22px 22px;
}

.ph-1x1  { aspect-ratio:1/1 }
.ph-4x3  { aspect-ratio:4/3 }
.ph-3x2  { aspect-ratio:3/2 }
.ph-16x9 { aspect-ratio:16/9 }
.ph-3x4  { aspect-ratio:3/4 }
.ph-2x3  { aspect-ratio:2/3 }
.ph-9x16 { aspect-ratio:9/16 }

.ph-cheia{ height:100%; aspect-ratio:auto }

.ph-corpo{
  position:relative; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:8px; padding:20px; text-align:center;
}
.ph-icone{ width:32px; height:32px; color:var(--ph-selo); flex:none; opacity:.9 }
.ph-num{
  font-size:.66rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color:var(--ph-selo);
}
.ph-txt{
  font-size:.85rem; line-height:1.45; font-weight:600; color:var(--ph-tinta);
  max-width:30ch;
}
.ph-fmt{
  font-size:.72rem; color:var(--ph-suave); font-weight:600;
  border-top:1px solid var(--ph-borda); padding-top:7px; margin-top:2px;
}

@container (max-width: 190px){
  .ph-corpo{ padding:10px; gap:5px }
  .ph-txt{ display:none }
  .ph-fmt{ border-top:0; padding-top:0; font-size:.64rem }
  .ph-icone{ width:24px; height:24px }
}
@container (max-width: 118px){
  .ph-fmt{ display:none }
  .ph-num{ font-size:.58rem; letter-spacing:.1em }
}

.ph-escura{
  --ph-fundo:rgba(255,255,255,.06);
  --ph-borda:rgba(255,255,255,.42);
  --ph-tinta:#f4f7ff;
  --ph-suave:#cfdcf3;
  --ph-selo:#ffd66b;
}
.ph-escura::before{ opacity:.35 }

.ph-cor{
  --ph-fundo:rgba(255,255,255,.14);
  --ph-borda:rgba(255,255,255,.62);
  --ph-tinta:#fff;
  --ph-suave:#fff;
  --ph-selo:#fff;
}
.ph-cor::before{ opacity:.3 }

.ph-aviso{
  display:flex; gap:12px; align-items:flex-start;
  font-size:.82rem; line-height:1.5;
}
.ph-aviso svg{ width:20px; height:20px; flex:none; margin-top:2px }

:root{
  --azul:#1e4fa0;
  --azul-cla:#eaf0fb;
  --coral:#ef4e3f;
  --coral-bt:#d23a2a;
  --coral-esc:#b8301f;
  --amarelo:#ffc93c;
  --creme:#fdf6e9;
  --papel:#fffefb;
  --tinta:#171c25;
  --tinta-2:#4a5567;
  --tinta-3:#6b7688;
  --linha:#e6dcc8;
  --zap:#1f9d55;
  --zap-esc:#177c42;

  --foco-esc:#171c25;
  --foco-cla:#ffffff;

  --largura:1140px;
  --raio:18px;
  --sans:"Nunito",system-ui,"Segoe UI",Arial,sans-serif;
}

.t1{ --cor:#f2799f; --escuro:#540f28; --pal:#fdeaf1 }
.t2{ --cor:#7fc241; --escuro:#1d3506; --pal:#eef7e4 }
.t3{ --cor:#f58220; --escuro:#4a1c00; --pal:#fef0e2 }
.t4{ --cor:#5c93ec; --escuro:#0b2145; --pal:#e8f0fd }
.t5{ --cor:#9b7ce0; --escuro:#2b1352; --pal:#f0eafb }

body{
  font-family:var(--sans); color:var(--tinta); background:var(--papel);
  font-size:clamp(1.02rem,.98rem + .22vw,1.12rem); line-height:1.68;
}

h1,h2,h3{ font-family:var(--sans); font-weight:900; line-height:1.1;
  letter-spacing:-.025em; color:var(--azul) }

h1{ font-size:clamp(2.1rem,1.3rem + 3vw,3.2rem); letter-spacing:-.035em }
h2{ font-size:clamp(1.7rem,1.15rem + 2.3vw,2.7rem); letter-spacing:-.03em }
h3{ font-size:1.34rem; letter-spacing:-.02em }
p{ margin:0 0 1rem }
p:last-child{ margin-bottom:0 }
strong{ font-weight:900; color:var(--azul) }

.olho{
  display:inline-block; font-size:.74rem; font-weight:900; letter-spacing:.2em;
  text-transform:uppercase; color:var(--coral-esc); margin-bottom:.85rem;
}
.sub{ color:var(--tinta-2); max-width:58ch; font-size:1.06rem; margin-top:.8rem }
.cab{ max-width:64ch; margin-bottom:52px }
.cab-centro{ margin-left:auto; margin-right:auto; text-align:center }
.cab-centro .sub{ margin-left:auto; margin-right:auto }

.topo{
  position:sticky; top:0; z-index:60;
  background:rgba(255,254,251,.94); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--linha);
}
.topo .env{ display:flex; align-items:center; gap:20px; padding:12px 0 }

.marca{ display:flex; align-items:center; gap:11px; text-decoration:none;
  color:inherit; min-width:0 }
.marca-est{ width:50px; height:auto; flex:none }
.marca-txt b{ display:block; font-size:1.2rem; font-weight:900; color:var(--azul);
  line-height:1.08; letter-spacing:-.03em }
.marca-txt > span{ display:block; font-size:.65rem; font-weight:800; letter-spacing:.17em;
  text-transform:uppercase; color:var(--tinta-3) }

.menu{ display:flex; gap:2px; margin-left:auto }

.menu a{ padding:9px 12px; border-radius:10px; text-decoration:none; color:var(--tinta);
  font-weight:800; font-size:.95rem; white-space:nowrap }
.menu a:hover{ background:var(--azul-cla); color:var(--azul) }

.zap{
  display:inline-flex; align-items:center; gap:8px; flex:none;
  background:var(--coral-bt); color:#fff; font-weight:900; font-size:.94rem;
  padding:12px 20px; border-radius:12px; text-decoration:none;
}

.zap{ transition:transform .16s ease, box-shadow .16s ease, background-color .16s ease }
.zap:hover{ background:var(--coral-esc); transform:translateY(-2px);
  box-shadow:0 4px 12px rgba(199,62,45,.34) }
.zap:active{ transform:translateY(0); box-shadow:none }
@media (prefers-reduced-motion:reduce){
  .zap{ transition:none }
  .zap:hover{ transform:none }
}
.zap svg{ width:19px; height:19px; fill:currentColor }

.abrir{ display:none; flex:none; width:46px; height:46px; margin-left:auto;
  border-radius:12px; border:1.5px solid var(--linha); color:var(--azul) }
.abrir svg{ width:24px; height:24px; margin:0 auto; fill:none; stroke:currentColor; stroke-width:2 }

.capa{ background:var(--creme); border-bottom:1px solid var(--linha) }

.capa-grade{ display:grid; grid-template-columns:1.05fr .95fr; gap:56px;
  align-items:center; padding:72px 0 76px }
.rot{
  display:inline-block; font-size:.74rem; font-weight:900; letter-spacing:.16em;
  text-transform:uppercase; color:var(--coral-esc);
  border-bottom:2px solid var(--amarelo); padding-bottom:7px; margin-bottom:26px;
}

.capa h1 em{ font-style:normal; color:var(--coral-bt) }
.entrada{ font-size:clamp(1.08rem,1rem + .4vw,1.26rem); color:var(--tinta-2);
  max-width:46ch; margin-top:24px }
.capa-foto{ --ph-raio:22px }

.ph-pronta{ background:none; border:0 }
.ph-pronta::before{ display:none }
.ph-pronta .ph-corpo{ display:none }
.ph-pronta img{ display:block; width:100%; height:100%; object-fit:cover }

.botoes{ display:flex; flex-wrap:wrap; gap:12px; margin-top:32px }
.bt{
  display:inline-flex; align-items:center; justify-content:center; gap:9px;
  padding:15px 26px; border-radius:12px; text-decoration:none;
  font-weight:900; font-size:1rem; min-height:52px;
}
.bt svg{ width:20px; height:20px; flex:none }

.bt{ transition:transform .16s ease, box-shadow .16s ease, background-color .16s ease }
.bt-1{ background:var(--coral-bt); color:#fff }
.bt-1:hover{ background:var(--coral-esc); transform:translateY(-2px);
  box-shadow:0 6px 16px rgba(199,62,45,.32) }
.bt-1:active{ transform:translateY(0); box-shadow:none }
.bt-1 svg{ fill:currentColor }
.bt-2{ background:#fff; color:var(--azul); box-shadow:inset 0 0 0 2px var(--azul) }
.bt-2:hover{ background:var(--azul-cla); transform:translateY(-2px);
  box-shadow:inset 0 0 0 2px var(--azul), 0 6px 16px rgba(22,72,148,.22) }
.bt-2:active{ transform:translateY(0); box-shadow:inset 0 0 0 2px var(--azul) }
@media (prefers-reduced-motion:reduce){
  .bt{ transition:none }
  .bt-1:hover,.bt-2:hover{ transform:none }
}
.bt-2 svg{ fill:currentColor }
.largo{ width:100%; margin-top:24px }

.estante-env{ padding:0 0 34px }
.estante-rot{
  font-size:.78rem; font-weight:900; letter-spacing:.14em; text-transform:uppercase;
  color:var(--tinta-2); margin-bottom:14px;
}
.estante{ display:grid; grid-template-columns:repeat(5,1fr); gap:12px; padding:0; margin:0 }
.estante a{
  display:flex; flex-direction:column; justify-content:flex-end; gap:2px;
  min-height:104px; padding:16px 14px; border-radius:var(--raio);
  background:var(--cor); color:var(--escuro); text-decoration:none; text-align:left;
  box-shadow:0 4px 0 0 rgba(0,0,0,.13);
  transition:transform .16s ease;
}
.estante a:hover{ transform:translateY(-4px) }
@media (prefers-reduced-motion:reduce){ .estante a{ transition:none } }

.estante .n{ font-size:1.24rem; font-weight:900; line-height:1.05; letter-spacing:-.02em }

.estante a{ position:relative }
.estante a .seta{ position:absolute; top:14px; right:14px; width:20px; height:20px;
  color:var(--escuro); transition:transform .16s ease }
.estante a:hover .seta{ transform:translateX(3px) }
@media (prefers-reduced-motion:reduce){ .estante a .seta{ transition:none } }

.fatos{ border-top:1px solid var(--linha) }
.fatos .env{ display:grid; grid-template-columns:repeat(4,1fr); gap:20px; padding:24px 0 }

.fatos div{ text-align:center; min-width:0 }

.fatos b{ display:block; font-size:1.7rem; font-weight:900; color:var(--azul);
  line-height:1.1; letter-spacing:-.03em; overflow-wrap:break-word }
.fatos span{ display:block; font-size:.82rem; color:var(--tinta-2); margin-top:2px }

.secao{ padding:80px 0 }

.matricula-cta{ margin-top:28px }
.creme{ background:var(--creme) }
.dois{ display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center }
.dois-fixo{ display:grid; grid-template-columns:.78fr 1.22fr; gap:56px; align-items:start }
.dois-fixo .cab{ position:sticky; top:104px; margin-bottom:0 }

.citacao{
  font-size:1.42rem; font-weight:900; color:var(--azul); letter-spacing:-.025em;
  border-left:4px solid var(--amarelo); padding-left:18px; margin:24px 0; line-height:1.3;
}
.nota-texto{ margin-top:38px; font-size:.92rem; color:var(--tinta-2); max-width:58ch }

#dia .ph-aviso{ max-width:830px; margin-inline:auto; padding-left:208px; box-sizing:content-box }
.nota-texto svg{ color:var(--azul) }

.horas{ list-style:none; padding:0; margin:0; position:relative;
  max-width:830px; margin-inline:auto }
.horas > li{
  display:grid; grid-template-columns:168px 1fr; gap:0;
  position:relative; padding-bottom:14px;
}

.horas > li::before{
  content:""; position:absolute; left:167px; top:0; bottom:0; width:2px;
  background:#c0a97f;
}
.horas > li:first-child::before{ top:26px }
.horas > li:last-child::before{ bottom:auto; height:26px }

.hora{
  display:flex; align-items:flex-start; justify-content:flex-end; gap:12px;
  padding:14px 34px 14px 0; position:relative;
}
.hora .h{
  font-size:.82rem; font-weight:900; letter-spacing:.13em; text-transform:uppercase;
  color:var(--coral-esc); text-align:right; padding-top:3px;
}
.hora .ic{
  position:absolute; right:-20px; top:8px;
  display:grid; place-items:center; width:40px; height:40px; border-radius:50%;

  background:var(--amarelo); color:#4a3208;
  box-shadow:0 0 0 5px var(--papel), 0 0 0 6.5px var(--azul);
}
.creme .hora .ic{ box-shadow:0 0 0 5px var(--creme), 0 0 0 6.5px var(--azul) }
.hora .ic svg{ width:20px; height:20px }

.horas .conteudo{ padding:14px 0 30px 40px; max-width:none }

.horas h3{ margin-bottom:10px; font-size:clamp(1.28rem,1.05rem + .7vw,1.55rem) }

.horas > li:first-child h3,
.horas > li:last-child h3{ font-size:clamp(1.5rem,1.2rem + .95vw,1.95rem) }
.horas > li:first-child .conteudo p,
.horas > li:last-child .conteudo p{ color:var(--tinta) }
.horas .conteudo p{ color:var(--tinta-2) }

.horas .ph{ margin-top:18px; --ph-raio:14px; max-width:520px }

.turmas{ padding:40px 0 0 }
.turmas > .env > .cab{ margin-bottom:34px }

.turma{ background:var(--cor); color:var(--escuro) }
.turma summary{

  display:grid; grid-template-columns:minmax(0,270px) 1fr 44px; gap:20px;
  align-items:center; cursor:pointer; list-style:none;
  width:100%; padding:26px max(20px,(100% - var(--largura))/2); min-height:82px;
}
.turma summary::-webkit-details-marker{ display:none }
.turma .nome{ font-size:1.7rem; font-weight:900; line-height:1.05; letter-spacing:-.025em }
.turma .resumo{ font-size:1rem; font-weight:800 }

.turma .mais{
  justify-self:end; position:relative; width:40px; height:40px; border-radius:50%;
  background:transparent; box-shadow:inset 0 0 0 2px var(--escuro);
}
.turma .mais::before,.turma .mais::after{
  content:""; position:absolute; left:50%; top:50%; width:17px; height:3px;
  margin:-1.5px 0 0 -8.5px; border-radius:2px; background:var(--escuro);
}
.turma .mais::after{ transform:rotate(90deg); transition:transform .2s ease }
.turma[open] .mais::after{ transform:rotate(0deg) }
@media (prefers-reduced-motion:reduce){ .turma .mais::after{ transition:none } }
.turma summary:hover{ filter:brightness(1.04) }
.turma + .turma{ border-top:2px solid rgba(255,255,255,.35) }

.turma .miolo{
  display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:start;
  padding:6px 0 44px;
}
.turma .lede{ font-size:1.12rem; font-weight:800; margin-bottom:20px }
.itens{ display:grid; gap:11px; margin:0 0 24px; padding:0 }
.itens li{ display:flex; gap:12px; align-items:flex-start; font-size:1rem; font-weight:700 }
.itens svg{ width:22px; height:22px; flex:none; margin-top:2px }

.fala-escola{
  font-size:1rem; font-weight:700; line-height:1.55;
  border-left:4px solid var(--escuro); padding-left:16px; margin:0 0 24px;
}

.turma .ph-cor{
  --ph-fundo:rgba(255,255,255,.24);
  --ph-borda:var(--escuro);
  --ph-tinta:var(--escuro);
  --ph-suave:var(--escuro);
  --ph-selo:var(--escuro);
}
.bt-turma{ background:var(--escuro); color:var(--cor) }
.bt-turma:hover{ background:#000 }
.bt-turma svg{ fill:currentColor }

.extras-grade{ display:grid; grid-template-columns:repeat(6,1fr); gap:16px; padding:0; margin:0 }
.extras-grade li{
  display:flex; flex-direction:column; align-items:center; gap:12px; text-align:center;
  background:var(--papel); border:1px solid var(--linha); border-radius:var(--raio);
  padding:28px 16px;
}
.extras-grade svg{ width:36px; height:36px; color:var(--azul) }

.extras-grade li{ min-width:0 }

.extras-grade b{ font-size:1.1rem; font-weight:900; letter-spacing:-.02em;
  color:var(--tinta); overflow-wrap:break-word; min-width:0;
  align-self:stretch; text-align:center }
.extras-pe{ display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:center;
  margin-top:44px }
.extras-pe p{ color:var(--tinta-2); margin-bottom:22px; max-width:44ch }

.extras-pe.so-texto{ grid-template-columns:1fr; justify-items:center; text-align:center }
.extras-pe.so-texto p{ margin-inline:auto }

.ensino-grade{ display:grid; grid-template-columns:min(78ch, 100%);
  justify-content:center; gap:24px }
.ensino-card{
  background:var(--papel); border:1px solid var(--linha); border-radius:var(--raio);
  padding:34px 32px;
}
.ensino-rot{
  display:block; font-size:.74rem; font-weight:900; letter-spacing:.15em;
  text-transform:uppercase; color:var(--coral-esc); margin-bottom:16px;
}

.ensino-rot-2{ margin-top:34px; padding-top:30px; border-top:1px solid var(--linha) }
.ensino-lede{ font-size:1.16rem; font-weight:800; color:var(--tinta); margin-bottom:14px;
  line-height:1.45 }
.ensino-card p:last-child{ color:var(--tinta-2) }

.lede-escola{ font-size:1.14rem; font-weight:800; color:var(--tinta);
  margin:18px 0 14px }
.estrutura{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; padding:0;
  margin:52px 0 0 }
.estrutura li{
  display:flex; align-items:center; gap:14px;
  background:var(--papel); border:1px solid var(--linha); border-radius:var(--raio);
  padding:20px 22px; font-size:1rem; font-weight:800; color:var(--tinta);
}
.estrutura svg{ width:28px; height:28px; flex:none; color:var(--azul) }

.faq details{
  background:var(--papel); border:1px solid var(--linha); border-radius:14px;
  margin-bottom:12px; overflow:hidden;
}
.faq summary{
  padding:19px 22px; font-weight:900; font-size:1.06rem; color:var(--azul);
  cursor:pointer; list-style:none; display:flex; align-items:center; gap:14px;
  min-height:56px;
}
.faq summary::-webkit-details-marker{ display:none }
.faq summary::after{
  content:""; margin-left:auto; flex:none; width:11px; height:11px;
  border-right:2.5px solid var(--coral-esc); border-bottom:2.5px solid var(--coral-esc);
  transform:rotate(45deg); transition:transform .18s ease;
}
.faq details[open] summary::after{ transform:rotate(225deg) }
.faq summary:hover{ background:var(--azul-cla) }
.faq details p{ padding:0 22px 20px; color:var(--tinta-2); max-width:62ch }

.visita{ padding:80px 0; background:var(--azul); color:#fff }
.visita h2,.visita .olho{ color:#fff }
.visita .olho{ opacity:.9 }
.visita .sub{ color:#e2ebfa }

.visita figure.ph{ margin-bottom:52px }

.visita figure.ph{ max-width:853px; margin-inline:auto }
.cartoes{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px }
.cartao{
  display:block; text-decoration:none; text-align:center;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3);
  border-radius:var(--raio); padding:30px 22px; color:#fff;
}

.cartao{ transition:transform .16s ease, box-shadow .16s ease, background-color .16s ease }
.cartao:hover{ background:rgba(255,255,255,.2); transform:translateY(-3px);
  box-shadow:0 10px 22px rgba(8,28,62,.28) }
.cartao:active{ transform:translateY(0); box-shadow:none }
@media (prefers-reduced-motion:reduce){
  .cartao{ transition:none }
  .cartao:hover{ transform:none }
}
.cartao svg{ width:30px; height:30px; margin:0 auto 14px; fill:currentColor }
.cartao b{ display:block; font-size:1.16rem; font-weight:900; letter-spacing:-.02em;
  margin-bottom:5px }
.cartao span{ display:block; font-size:.92rem; color:#e2ebfa }

.fecho-historia{
  text-align:center; margin:44px auto 0; max-width:22ch;
  font-size:clamp(1.5rem,1.1rem + 1.6vw,2.3rem); font-weight:900; line-height:1.16;
  letter-spacing:-.03em; color:#fff;
}
.fecho-historia::after{
  content:""; display:block; width:76px; height:4px; border-radius:2px;
  background:var(--amarelo); margin:18px auto 0;
}

.rodape{ background:#0f1c33; color:#c2d2ea; padding:52px 0 30px }
.rod-marca{ display:flex; align-items:center; gap:14px; margin-bottom:34px }
.rod-marca .marca-est{ width:56px; height:auto }
.rod-marca b{ line-height:1.08 }
.rod-marca b{ display:block; font-size:1.28rem; font-weight:900; color:#fff;
  letter-spacing:-.025em }
.rod-marca span{ font-size:.9rem }
.rod-cols{ display:grid; grid-template-columns:repeat(3,1fr); gap:30px;
  padding-bottom:28px; border-bottom:1px solid rgba(255,255,255,.14) }
.rod-t{ font-size:.72rem; font-weight:900; letter-spacing:.16em; text-transform:uppercase;
  color:var(--amarelo); margin-bottom:10px }
.rod-cols p{ font-size:.94rem; line-height:1.65 }
.rod-cols a{ color:#fff }
.redes{ display:flex; gap:10px }
.redes a{ display:grid; place-items:center; width:44px; height:44px; border-radius:12px;
  background:rgba(255,255,255,.1); color:#fff }
.redes a:hover{ background:rgba(255,255,255,.2) }
.redes svg{ width:21px; height:21px; fill:currentColor }
.rod-pe{ margin-top:22px; font-size:.8rem; line-height:1.6 }

.privacidade{ margin-top:16px; border-top:1px solid rgba(255,255,255,.22) }
.privacidade summary{
  display:flex; align-items:center; gap:10px; min-height:44px;
  font-size:.82rem; font-weight:900; cursor:pointer; list-style:none;
}
.privacidade summary::-webkit-details-marker{ display:none }
.privacidade summary::after{
  content:""; flex:none; width:8px; height:8px;
  border-right:2px solid currentColor; border-bottom:2px solid currentColor;
  transform:rotate(45deg); transition:transform .18s ease;
}
.privacidade[open] summary::after{ transform:rotate(225deg) }
.privacidade summary:hover{ text-decoration:underline }
@media (prefers-reduced-motion:reduce){ .privacidade summary::after{ transition:none } }
.privacidade-miolo{ padding-bottom:20px; max-width:70ch }
.privacidade-miolo p{ font-size:.8rem; line-height:1.65; margin-bottom:12px }
.privacidade-miolo p:last-child{ margin-bottom:0 }

.privacidade-miolo strong{ color:#fff }

.rod-he{ margin-top:10px; font-size:.78rem; color:rgba(255,255,255,.72) }

.rod-he a{ display:inline-block; padding:3px 2px; margin:-3px -2px;
  color:#fff; text-decoration:underline; text-underline-offset:3px }

.flut{
  position:fixed; right:18px; bottom:18px; z-index:70;
  display:grid; place-items:center; width:58px; height:58px; border-radius:50%;
  background:var(--zap); color:#fff; box-shadow:0 8px 24px rgba(15,28,51,.3);
}
.flut:hover{ background:var(--zap-esc) }
.flut svg{ width:29px; height:29px; fill:currentColor }

.pular{ background:var(--coral-bt); color:#fff }

@media (max-width:1000px){
  .capa-grade{ grid-template-columns:1fr; gap:40px; padding:52px 0 60px }
  .dois{ grid-template-columns:1fr; gap:36px }

  .dois > .ph{ order:2 }
  .dois-fixo{ grid-template-columns:1fr; gap:0 }
  .dois-fixo .cab{ position:static; margin-bottom:36px }
  .cartoes{ grid-template-columns:1fr }

  .estante{ grid-template-columns:repeat(3,1fr) }
  .estante li:nth-child(4) a,.estante li:nth-child(5) a{ min-height:88px }

  .turma summary{ grid-template-columns:1fr 44px; gap:4px 16px }
  .turma .nome{ grid-column:1; grid-row:1 }
  .turma .resumo{ grid-column:1; grid-row:2; font-size:.95rem; font-weight:700 }
  .turma .mais{ grid-column:2; grid-row:1 / span 2; align-self:center }
  .turma .miolo{ grid-template-columns:1fr; gap:28px }
  .extras-grade{ grid-template-columns:repeat(3,1fr) }
  .extras-pe{ grid-template-columns:1fr; gap:30px }
  .estrutura{ grid-template-columns:1fr }
}

@media (max-width:1160px){

  .menu{
    position:absolute; top:100%; left:0; right:0; display:none;
    flex-direction:column; gap:2px; padding:12px 20px 18px;
    background:var(--papel); border-bottom:1px solid var(--linha);
    box-shadow:0 14px 30px rgba(15,28,51,.12);
    max-height:calc(100dvh - 72px); overflow-y:auto; overscroll-behavior:contain;
  }
  .menu.aberto{ display:flex }
  .menu a{ padding:13px 12px }
  .topo .env{ position:relative; gap:12px }

  .abrir{ display:block; margin-left:10px }
  .zap span:not(.so-leitor){ display:none }
  .zap{ padding:12px; margin-left:auto; min-width:48px; min-height:48px }
}
@media (max-width:700px){
  .secao,.visita{ padding:54px 0 }
  .fatos .env{ grid-template-columns:repeat(2,1fr); gap:18px; padding:22px 0 }
  .rod-cols{ grid-template-columns:1fr; gap:24px }

  .estante{ grid-template-columns:repeat(2,1fr); gap:10px }
  .estante a{ min-height:86px; padding:14px }
  .estante li:nth-child(5){ grid-column:span 2 }
  .estante li:nth-child(5) a{ min-height:72px }
  .turmas{ padding:54px 0 0 }

  .turma summary{ grid-template-columns:1fr 44px; gap:4px 14px; padding:22px 20px;
    align-items:center }
  .turma .nome{ grid-column:1; font-size:1.5rem }

  .turma .mais{ grid-column:2; grid-row:1 / span 2 }
  .turma .miolo{ padding:0 0 34px }
  .extras-grade{ grid-template-columns:repeat(2,1fr); gap:12px }
  .extras-grade li{ padding:22px 12px }

  .botoes .bt{ width:100% }

  .horas > li{ grid-template-columns:1fr; padding-bottom:0 }
  .horas > li::before{ left:19px; top:44px }
  .horas > li:first-child::before{ top:44px }
  .horas > li:last-child::before{ display:none }
  .hora{ justify-content:flex-start; padding:0 0 0 54px; min-height:40px; align-items:center }
  .hora .h{ padding-top:0; text-align:left }
  .hora .ic{ right:auto; left:0; top:0 }
  .horas .conteudo{ padding:12px 0 30px 54px }

  #dia .ph-aviso{ padding-left:54px }
}
@media (max-width:400px){

  .extras-grade li{ padding-inline:6px }
  .marca-txt > span{ display:none }
  .marca-est{ width:44px; height:auto }
  .marca-txt b{ font-size:1.06rem }
}

.ph{
  --ph-fundo:#f6eddb;
  --ph-borda:#c9b58e;
  --ph-tinta:#44372a;
  --ph-suave:#6b5a44;
  --ph-selo:var(--azul);
}

.fecho{ max-width:none; margin:44px 0 0 167px; font-size:clamp(1.3rem,1rem + 1.4vw,2.15rem) }

.horas-fecho{ max-width:830px; margin-inline:auto }

@media (max-width:700px){
  .fecho{ margin-left:54px }
}
.fecho cite{ display:block; margin-top:14px; font-size:.8rem; font-weight:800;
  font-style:normal; letter-spacing:.1em; text-transform:uppercase; color:var(--tinta-3) }

.fecho-cta{ display:flex; justify-content:center; margin-top:30px }

.flut{ transition:opacity .18s ease, transform .18s ease }
.flut.recolhido{ opacity:0; visibility:hidden; transform:translateY(10px); pointer-events:none }
@media (prefers-reduced-motion:reduce){ .flut{ transition:none } }

@media (max-width:767.98px) and (max-height:600px){
  .capa-grade{ padding-top:32px }
  .rot{ margin-bottom:14px }
  .entrada{ margin-top:16px }
  .botoes{ margin-top:20px }
}

@media (max-height:26em){
  .topo{ position:static }
}
