/* =========================================================
   Fontes hospedadas no próprio site.

   Fredoka e Nunito são fontes variáveis: um único arquivo por
   família/estilo/subset cobre toda a faixa de pesos — por isso são
   6 arquivos, e não um por peso.

   O unicode-range faz o navegador baixar o arquivo "latin-ext"
   somente se a página tiver algum caractere que o exija. Numa página
   em português, na prática só os "latin" são baixados.

   Ambas estão sob SIL Open Font License 1.1, que permite hospedagem
   própria. Ver assets/fonts/LICENCA.txt.

   NOTA: este bloco é duplicado em styles.css e proposta.css, porque
   as duas páginas carregam folhas independentes. Alterou aqui,
   altere lá.
   ========================================================= */
@font-face{
  font-family:'Fredoka';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('assets/fonts/fredoka-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Fredoka';
  font-style:normal;
  font-weight:400 700;
  font-display:swap;
  src:url('assets/fonts/fredoka-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Nunito';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('assets/fonts/nunito-normal-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Nunito';
  font-style:normal;
  font-weight:400 800;
  font-display:swap;
  src:url('assets/fonts/nunito-normal-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face{
  font-family:'Nunito';
  font-style:italic;
  font-weight:400 800;
  font-display:swap;
  src:url('assets/fonts/nunito-italic-latin.woff2') format('woff2');
  unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face{
  font-family:'Nunito';
  font-style:italic;
  font-weight:400 800;
  font-display:swap;
  src:url('assets/fonts/nunito-italic-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* =========================================================
   Educart Baby e Kids — folha de estilo
   Direção visual derivada da identidade real da escola:
   azul do logotipo, rosa de "Baby e Kids", verde-limão da
   borboleta, amarelo das artes e coral do portão da fachada.
   Mobile-first.
   ========================================================= */

/* ---------- 1. Tokens ---------- */
:root{
  /* marca */
  /* cores de marca, para superfícies e grafismos */
  --azul:        #2E9FDB;
  --rosa:        #EE5B9C;
  --verde:       #8CC63F;
  --amarelo:     #F5C13D;
  --coral:       #E8574C;

  /* versões com contraste suficiente para TEXTO (AA) */
  --azul-forte:  #166B97;   /* 5.9:1 no branco */
  --azul-escuro: #0F4E70;
  --rosa-forte:  #C9306F;   /* 5.1:1 no branco */
  --rosa-botao:  #CE3679;   /* 4.7:1 com texto branco */
  --verde-forte: #4F761C;   /* 4.9:1 no verde-claro */
  --coral-forte: #C3372D;   /* 5.4:1 no branco */
  --ouro:        #8A6210;

  /* superfícies claras */
  --azul-claro:  #E4F3FC;
  --rosa-claro:  #FDE8F1;
  --verde-claro: #F0F8E2;
  --amarelo-claro:#FEF5E0;
  --coral-claro: #FDEBE9;

  /* neutros */
  --branco:      #FFFFFF;
  --areia:       #FFFCF8;
  --creme:       #FDF5EC;
  --linha:       #EFE4D6;
  --tinta:       #22313C;
  --tinta-media: #45596A;
  --tinta-suave: #576877;

  --whats:       #25D366;
  --whats-esc:   #128C7E;

  /* tipografia */
  --fonte-display:'Fredoka', 'Trebuchet MS', system-ui, sans-serif;
  --fonte-texto:  'Nunito', system-ui, -apple-system, 'Segoe UI', sans-serif;

  /* espaço e forma */
  --gutter: 20px;
  --max: 1180px;
  --r-sm: 12px;
  --r:    20px;
  --r-lg: 28px;
  --r-xl: 36px;

  --sombra-s: 0 2px 10px rgba(34,49,60,.06);
  --sombra:   0 10px 30px rgba(34,49,60,.09);
  --sombra-l: 0 22px 50px rgba(34,49,60,.14);

  --t: .32s cubic-bezier(.2,.7,.3,1);
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; scroll-padding-top:96px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--areia);
  color:var(--tinta);
  font-family:var(--fonte-texto);
  font-size:17px;
  line-height:1.68;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,iframe{ max-width:100%; display:block; }
img{ height:auto; }

h1,h2,h3{
  font-family:var(--fonte-display);
  font-weight:600;
  line-height:1.15;
  letter-spacing:-.015em;
  margin:0 0 .5em;
  color:var(--tinta);
}
h1{ font-size:clamp(2.1rem, 7vw, 3.55rem); font-weight:600; }
h2{ font-size:clamp(1.7rem, 4.6vw, 2.6rem); }
h3{ font-size:clamp(1.1rem, 2.4vw, 1.3rem); font-weight:600; }
p{ margin:0 0 1.1em; }
p:last-child{ margin-bottom:0; }

a{ color:var(--azul-forte); }

ul,ol{ margin:0; padding:0; list-style:none; }

.wrap{ width:100%; max-width:var(--max); margin-inline:auto; padding-inline:var(--gutter); }

.muted{ color:var(--tinta-suave); }

/* foco visível e consistente */
:where(a,button,summary,[tabindex],iframe,input):focus-visible{
  outline:3px solid var(--azul);
  outline-offset:3px;
  border-radius:6px;
}

.skip-link{
  position:absolute; left:-9999px; top:0; z-index:999;
  background:var(--azul-escuro); color:#fff;
  padding:12px 20px; border-radius:0 0 var(--r-sm) 0;
  font-weight:700; text-decoration:none;
}
.skip-link:focus{ left:0; }

/* ---------- 3. Botões ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  font-family:var(--fonte-display);
  font-weight:600; font-size:.98rem;
  padding:.78em 1.5em;
  border-radius:999px;
  border:2px solid transparent;
  text-decoration:none;
  cursor:pointer;
  transition:transform var(--t), box-shadow var(--t), background var(--t), color var(--t), border-color var(--t);
  white-space:nowrap;
}
.btn--lg{ font-size:1.06rem; padding:.9em 1.9em; }

.btn--primary{ background:var(--rosa-botao); color:#fff; box-shadow:0 8px 20px rgba(201,48,111,.3); }
.btn--primary:hover{ background:#B22662; transform:translateY(-2px); box-shadow:0 12px 26px rgba(201,48,111,.42); }

.btn--outline{ border-color:var(--azul); color:var(--azul-forte); background:transparent; }
.btn--outline:hover{ background:var(--azul); color:#fff; transform:translateY(-2px); }

.btn--ghost{ color:var(--azul-escuro); background:var(--azul-claro); }
.btn--ghost:hover{ background:#CFE9F8; }

.btn--white{ background:#fff; color:var(--azul-escuro); box-shadow:var(--sombra); }
.btn--white:hover{ transform:translateY(-2px); box-shadow:var(--sombra-l); }

.btn--outline-white{ border-color:rgba(255,255,255,.75); color:#fff; }
.btn--outline-white:hover{ background:#fff; color:var(--azul-escuro); }

.link{
  color:var(--azul-forte); font-weight:700; text-decoration:none;
  border-bottom:2px solid rgba(46,159,219,.35);
  transition:border-color var(--t), color var(--t);
}
.link:hover{ color:var(--rosa-forte); border-color:var(--rosa); }

/* ---------- 4. Barra superior ---------- */
.topbar{ background:var(--azul-escuro); color:#DCEFFA; font-size:.82rem; }
.topbar__in{
  display:flex; flex-wrap:wrap; align-items:center; gap:.4rem 1.4rem;
  padding-block:.55rem;
}
.topbar__item{ display:inline-flex; align-items:center; gap:.4em; margin:0; }
.topbar__link{ color:#fff; text-decoration:none; font-weight:700; }
.topbar__link:hover{ color:var(--amarelo); }
.topbar__wa{ margin-left:auto; }
.ico{ width:1.05em; height:1.05em; fill:currentColor; flex:none; }

@media (max-width:860px){
  .topbar__in{ justify-content:center; font-size:.76rem; }
  .topbar__wa{ margin-left:0; }
  .topbar__item:nth-child(3){ display:none; }
}

/* ---------- 5. Header ---------- */
.header{
  position:sticky; top:0; z-index:90;
  background:rgba(255,252,248,.92);
  backdrop-filter:saturate(1.4) blur(10px);
  border-bottom:1px solid transparent;
  transition:box-shadow var(--t), border-color var(--t), background var(--t);
}
.header.is-stuck{ box-shadow:var(--sombra-s); border-color:var(--linha); background:rgba(255,252,248,.97); }

.header__in{ display:flex; align-items:center; gap:1rem; min-height:74px; }
.brand{ flex:none; display:block; }
.brand__logo{ width:132px; height:auto; }

.nav{ margin-left:auto; display:flex; align-items:center; gap:1.6rem; }
.nav__list{ display:flex; gap:1.05rem; }
.nav__list a{
  color:var(--tinta-media); text-decoration:none; font-weight:700; font-size:.92rem;
  padding:.35em 0; position:relative; white-space:nowrap;
  transition:color var(--t);
}
.nav__list a::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:3px; border-radius:3px;
  background:var(--rosa); transform:scaleX(0); transform-origin:left;
  transition:transform var(--t);
}
.nav__list a:hover,.nav__list a.is-active{ color:var(--tinta); }
.nav__list a:hover::after,.nav__list a.is-active::after{ transform:scaleX(1); }
.nav__cta{ display:flex; gap:.6rem; }
.nav__cta .btn{ font-size:.88rem; padding:.62em 1.15em; }

.burger{
  display:none; margin-left:auto;
  width:46px; height:46px; border:0; border-radius:14px;
  background:var(--azul-claro); cursor:pointer;
  flex-direction:column; align-items:center; justify-content:center; gap:5px;
}
.burger span{ display:block; width:21px; height:2.5px; border-radius:3px; background:var(--azul-escuro); transition:transform var(--t), opacity var(--t); }
.burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(7.5px) rotate(45deg); }
.burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-7.5px) rotate(-45deg); }

/* A navegacao de desktop (marca + 9 links + 2 botoes) precisa de ~1226px.
   Abaixo disso ela estourava o container e criava rolagem horizontal, entao o
   menu hamburguer assume ate 1240px. */
@media (max-width:1240px){
  .burger{ display:flex; }
  /* O backdrop-filter do .header o torna bloco de contencao dos filhos
     position:fixed, o que prendia o menu lateral a altura do cabecalho.
     No mobile o fundo do header ja e 92%% opaco, entao o blur nao faz falta. */
  .header{ backdrop-filter:none; -webkit-backdrop-filter:none; }
  .nav{
    position:fixed; inset:0 0 0 auto; width:min(340px,86vw);
    background:var(--branco); box-shadow:var(--sombra-l);
    flex-direction:column; align-items:stretch; justify-content:flex-start;
    gap:0; padding:96px 26px 32px;
    transform:translateX(105%); transition:transform var(--t);
    overflow-y:auto;
  }
  .nav.is-open{ transform:none; }
  .nav__list{ flex-direction:column; gap:0; }
  .nav__list a{ display:block; padding:.85em 0; border-bottom:1px solid var(--linha); font-size:1.02rem; }
  .nav__list a::after{ display:none; }
  .nav__cta{ flex-direction:column; margin-top:1.4rem; }
  .nav__cta .btn{ width:100%; font-size:1rem; padding:.85em 1.2em; }
  body.nav-open{ overflow:hidden; }
  .nav-backdrop{ position:fixed; inset:0; background:rgba(18,89,127,.42); z-index:80; }
}

/* ---------- 6. Hero ---------- */
.hero{ position:relative; padding:clamp(2.2rem,6vw,4.4rem) 0 clamp(3.6rem,8vw,5.6rem); overflow:hidden; }
.hero::before,.hero::after{
  content:""; position:absolute; border-radius:50%; z-index:0; pointer-events:none;
}
.hero::before{ width:520px; height:520px; background:var(--azul-claro); top:-230px; right:-160px; opacity:.85; }
.hero::after{ width:300px; height:300px; background:var(--rosa-claro); bottom:40px; left:-150px; opacity:.7; }

.hero__grid{ position:relative; z-index:1; display:grid; gap:2.4rem; }

.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--fonte-display); font-weight:600; font-size:.83rem;
  letter-spacing:.08em; text-transform:uppercase;
  color:var(--azul-forte); background:var(--azul-claro);
  padding:.42em 1em; border-radius:999px; margin:0 0 1.1rem;
}
.eyebrow--invert{ color:#fff; background:rgba(255,255,255,.18); }
.dot{ width:7px; height:7px; border-radius:50%; background:var(--rosa); flex:none; }
.eyebrow--invert .dot{ background:var(--amarelo); }

.hero h1{ margin-bottom:.35em; }
.hero h1 em{
  font-style:normal; color:var(--rosa-forte);
  background:linear-gradient(transparent 66%, rgba(245,193,61,.55) 66%, rgba(245,193,61,.55) 94%, transparent 94%);
  -webkit-box-decoration-break:clone; box-decoration-break:clone;
  padding-inline:.06em;
}
.lead{ font-size:clamp(1.04rem,2.3vw,1.2rem); color:var(--tinta-media); max-width:58ch; }

.hero__actions{ display:flex; flex-wrap:wrap; gap:.8rem; margin:1.6rem 0 2rem; }
@media (max-width:480px){
  .hero__actions{ flex-direction:column; align-items:stretch; }
  .hero__actions .btn{ width:100%; }
  .final__actions{ flex-direction:column; align-items:stretch; }
  .final__actions .btn{ width:100%; }
}

.hero__stats{ display:grid; gap:1rem; border-top:1px solid var(--linha); padding-top:1.4rem; }
.hero__stats li{ display:flex; align-items:center; gap:.85rem; font-size:.9rem; color:var(--tinta-suave); line-height:1.4; }
.hero__stats b{ color:var(--tinta); font-size:.98rem; }
.stars{ color:#BE8104; font-size:1.15rem; letter-spacing:-1px; flex:none; }
.stat{
  font-family:var(--fonte-display); font-weight:600; font-size:1.18rem; color:var(--azul-forte);
  flex:none; line-height:1.1;
}
.stat span{ font-size:.82rem; color:var(--tinta-suave); font-weight:500; display:block; }

.hero__media{ margin:0; position:relative; }
.hero__media img{
  width:100%; border-radius:var(--r-xl);
  box-shadow:var(--sombra-l);
  border:7px solid #fff;
}
.hero__media figcaption{
  margin-top:.9rem; font-size:.84rem; color:var(--tinta-suave); text-align:center;
}

.hero__wave{
  position:absolute; left:0; right:0; bottom:-1px; height:54px; z-index:1;
  background:var(--creme);
  -webkit-mask-image:radial-gradient(60px 54px at 50% 0, transparent 99%, #000 100%);
  mask-image:radial-gradient(60px 54px at 50% 0, transparent 99%, #000 100%);
  -webkit-mask-size:120px 54px; mask-size:120px 54px;
  -webkit-mask-repeat:repeat-x; mask-repeat:repeat-x;
}

@media (min-width:900px){
  .hero__grid{ grid-template-columns:1.05fr .95fr; align-items:center; gap:3.4rem; }
  .hero__stats{ grid-template-columns:repeat(3,1fr); gap:1.6rem; }
  .hero__stats li{ flex-direction:column; align-items:flex-start; gap:.3rem; }
}

/* ---------- 7. Seções genéricas ---------- */
.section{ padding:clamp(3rem,7vw,5.2rem) 0; }
.section--cream{ background:var(--creme); }
.section--azul{
  background:linear-gradient(150deg, #17719F 0%, #14628B 55%, var(--azul-escuro) 100%);
  color:#fff;
}
.section--azul h2,.section--azul h3{ color:#fff; }

.section__head{ max-width:66ch; margin:0 auto clamp(2rem,4vw,3rem); text-align:center; }
.section__head .eyebrow{ margin-inline:auto; }
.section__lead{ color:var(--tinta-media); font-size:1.04rem; }
.section__head--invert .section__lead{ color:#fff; }

.fineprint{ margin-top:2rem; text-align:center; font-size:.86rem; color:var(--tinta-suave); max-width:62ch; margin-inline:auto; }
.fineprint--invert{ color:rgba(255,255,255,.92); }


/* ---------- 8. Bloco de confiança ---------- */
.trust{ background:var(--creme); padding-bottom:clamp(3rem,7vw,5rem); }
.trust__grid{ display:grid; gap:1.1rem; }
.trust__card{
  background:#fff; border-radius:var(--r-lg); padding:1.7rem 1.5rem;
  box-shadow:var(--sombra-s); border:1px solid var(--linha);
  transition:transform var(--t), box-shadow var(--t);
}
.trust__card:hover{ transform:translateY(-4px); box-shadow:var(--sombra); }
.trust__ico{
  display:grid; place-items:center; width:54px; height:54px; border-radius:18px; margin-bottom:1rem;
}
.trust__ico svg{ width:27px; height:27px; fill:currentColor; }
.trust__ico--azul{ background:var(--azul-claro); color:var(--azul-forte); }
.trust__ico--rosa{ background:var(--rosa-claro); color:var(--rosa-forte); }
.trust__ico--verde{ background:var(--verde-claro); color:var(--verde-forte); }
.trust__ico--amarelo{ background:var(--amarelo-claro); color:var(--ouro); }
.trust__ico--coral{ background:var(--coral-claro); color:var(--coral-forte); }
.trust__card h3{ font-size:1.06rem; margin-bottom:.45em; }
.trust__card p{ font-size:.93rem; color:var(--tinta-suave); }

@media (min-width:640px){ .trust__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){
  .trust__grid{ grid-template-columns:repeat(6,1fr); }
  .trust__card{ grid-column:span 2; }
  .trust__card:nth-child(4){ grid-column:2/4; }
  .trust__card:nth-child(5){ grid-column:4/6; }
}

/* ---------- 9. Sobre ---------- */
.about__grid{ display:grid; gap:2.4rem; }
.about__text .big{ font-size:1.1rem; color:var(--tinta-media); }
.about__facts{ display:grid; gap:.6rem; margin:1.6rem 0 1.8rem; }
.about__facts li{
  font-size:.93rem; color:var(--tinta-media);
  padding-left:1.4rem; position:relative;
}
.about__facts li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:8px; height:8px; border-radius:50%; background:var(--verde);
}
.about__facts b{ color:var(--tinta); }

.missao{
  margin:1.6rem 0 0; padding:1.2rem 1.3rem;
  background:var(--azul-claro); border-left:4px solid var(--azul);
  border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.missao h3{
  font-size:.8rem; text-transform:uppercase; letter-spacing:.09em;
  color:var(--azul-forte); margin-bottom:.45em;
}
.missao p{ font-size:.96rem; color:var(--tinta-media); margin:0; }

.about__photo{ margin:0; }
.about__photo img{
  width:100%; border-radius:var(--r-xl); box-shadow:var(--sombra);
  border:7px solid #fff;
}
.about__quote{
  margin:1.4rem 0 0; background:var(--azul-escuro); color:#fff;
  border-radius:var(--r); padding:1.3rem 1.5rem;
  box-shadow:var(--sombra);
}
.about__quote p{
  font-family:var(--fonte-display); font-size:1.24rem; font-weight:500; margin:0 0 .35em;
}
.about__quote cite{ font-style:normal; font-size:.82rem; color:rgba(255,255,255,.86); }

@media (min-width:900px){
  .about__grid{ grid-template-columns:1.1fr .9fr; align-items:center; gap:3.4rem; }
}

/* ---------- 10. Proposta (pilares) ---------- */
.pillars{ display:grid; gap:1.1rem; }
.pillar{
  background:#fff; border:1px solid var(--linha); border-radius:var(--r-lg);
  padding:1.9rem 1.6rem 1.7rem; position:relative; overflow:hidden;
  box-shadow:var(--sombra-s);
  transition:transform var(--t), box-shadow var(--t);
}
.pillar:hover{ transform:translateY(-4px); box-shadow:var(--sombra); }
.pillar::after{
  content:""; position:absolute; left:0; top:0; bottom:0; width:6px;
}
.pillar:nth-child(1)::after{ background:var(--azul); }
.pillar:nth-child(2)::after{ background:var(--verde); }
.pillar:nth-child(3)::after{ background:var(--rosa); }
.pillar:nth-child(4)::after{ background:var(--amarelo); }
.pillar__n{
  font-family:var(--fonte-display); font-size:2.4rem; font-weight:600;
  color:var(--linha); line-height:1; display:block; margin-bottom:.3rem;
}
.pillar p{ font-size:.95rem; color:var(--tinta-suave); margin:0; }

@media (min-width:700px){ .pillars{ grid-template-columns:repeat(2,1fr); } }

.valores{ margin-top:2rem; text-align:center; }
.valores h3{
  font-size:.82rem; text-transform:uppercase; letter-spacing:.09em;
  color:var(--rosa-forte); margin-bottom:1rem;
}
.valores__lista{
  display:flex; flex-wrap:wrap; justify-content:center; gap:.6rem;
  list-style:none; margin:0; padding:0;
}
.valores__lista li{
  background:#fff; border:1px solid var(--linha); border-radius:999px;
  padding:.5rem 1.1rem; font-size:.92rem; font-weight:700;
  color:var(--tinta-media); box-shadow:var(--sombra-s);
}

.note{
  margin-top:2rem; background:var(--verde-claro); border:2px dashed var(--verde);
  border-radius:var(--r-lg); padding:1.8rem 1.6rem; text-align:center;
}
.note h3{ margin-bottom:.4em; }
.note p{ max-width:62ch; margin-inline:auto; color:var(--tinta-media); font-size:.96rem; }
.note .btn{ margin-top:1.2rem; }

/* ---------- 11. Turmas ---------- */
.turmas{ display:grid; gap:1.2rem; }
.turma{
  background:#fff; border-radius:var(--r-lg); overflow:hidden;
  border:1px solid var(--linha); box-shadow:var(--sombra-s);
  display:flex; flex-direction:column;
  transition:transform var(--t), box-shadow var(--t);
}
.turma:hover{ transform:translateY(-5px); box-shadow:var(--sombra); }
.turma__top{
  padding:1.5rem 1.5rem 1.2rem; color:#fff;
  display:flex; align-items:center; gap:.85rem;
}
.turma__top h3{ color:#fff; margin:0; font-size:1.2rem; }
.turma__top--azul{ background:linear-gradient(135deg,#2189C0,#166B97); }
.turma__top--verde{ background:linear-gradient(135deg,#5E8C24,#446817); }
.turma__top--rosa{ background:linear-gradient(135deg,#DB4586,#C9306F); }
.turma__top--coral{ background:linear-gradient(135deg,#DD5244,#B8382C); }
.turma__top--ouro{ background:linear-gradient(135deg,#B07C10,#8A6210); }
.turma__ico{
  display:grid; place-items:center; width:44px; height:44px; flex:none;
  background:rgba(255,255,255,.22); border-radius:14px;
}
.turma__ico svg{ width:24px; height:24px; fill:#fff; }

.turma__meta{ margin:0; padding:1.1rem 1.5rem .4rem; font-size:.86rem; }
.turma__meta dt{ font-weight:800; color:var(--tinta-suave); text-transform:uppercase; letter-spacing:.05em; font-size:.73rem; margin-top:.55rem; }
.turma__meta dt:first-child{ margin-top:0; }
.turma__meta dd{ margin:0; color:var(--tinta-media); }
.turma > p{ padding:.6rem 1.5rem 1.2rem; font-size:.94rem; color:var(--tinta-suave); flex:1; }
.turma__cta{
  display:block; margin-top:auto; padding:1rem 1.5rem;
  border-top:1px solid var(--linha);
  font-family:var(--fonte-display); font-weight:600; font-size:.94rem;
  color:var(--azul-forte); text-decoration:none;
  transition:background var(--t), color var(--t);
}
.turma__cta:hover{ background:var(--azul-claro); color:var(--azul-escuro); }

@media (min-width:640px){ .turmas{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1040px){ .turmas{ grid-template-columns:repeat(4,1fr); } }

/* ---------- 12. Rotina (timeline) ---------- */
.timeline{ position:relative; display:grid; gap:1.1rem; max-width:920px; margin-inline:auto; }
.timeline::before{
  content:""; position:absolute; left:21px; top:12px; bottom:12px; width:3px;
  background:linear-gradient(var(--azul),var(--verde),var(--rosa),var(--amarelo));
  border-radius:3px; opacity:.35;
}
.timeline__item{
  position:relative; padding-left:64px;
  background:#fff; border:1px solid var(--linha); border-radius:var(--r);
  padding-block:1.15rem; padding-right:1.3rem;
  box-shadow:var(--sombra-s);
}
.timeline__mark{
  position:absolute; left:6px; top:1.1rem;
  width:32px; height:32px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--azul-escuro); color:#fff;
  font-family:var(--fonte-display); font-weight:600; font-size:.92rem;
  box-shadow:0 0 0 5px var(--areia);
}
.timeline__item:nth-child(4n+2) .timeline__mark{ background:var(--verde-forte); }
.timeline__item:nth-child(4n+3) .timeline__mark{ background:var(--rosa-forte); }
.timeline__item:nth-child(4n+4) .timeline__mark{ background:var(--coral-forte); }
.timeline__item h3{ font-size:1.05rem; margin-bottom:.25em; }
.timeline__item p{ margin:0; font-size:.93rem; color:var(--tinta-suave); }

@media (min-width:760px){
  .timeline{ grid-template-columns:repeat(2,1fr); column-gap:1.4rem; }
  .timeline::before{ display:none; }
  .timeline__item{ padding-left:70px; }
  .timeline__mark{ box-shadow:0 0 0 5px #fff; }
}

/* ---------- 13. Atividades ---------- */
.acts{ display:grid; gap:1rem; }
.act{
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.3);
  border-radius:var(--r-lg); padding:1.6rem 1.4rem;
  backdrop-filter:blur(3px);
  transition:transform var(--t), background var(--t);
}
.act:hover{ transform:translateY(-4px); background:rgba(255,255,255,.16); }
.act__ico{ font-size:2rem; display:block; margin-bottom:.6rem; line-height:1; }
.act h3{ font-size:1.08rem; margin-bottom:.35em; }
.act p{ margin:0; font-size:.93rem; color:#fff; }

@media (min-width:600px){ .acts{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:960px){ .acts{ grid-template-columns:repeat(3,1fr); } }

/* ---------- 14. Carrossel ---------- */
.carousel{ position:relative; }
.carousel__viewport{
  overflow:hidden; border-radius:var(--r-lg);
  scroll-snap-type:x mandatory;
  overflow-x:auto;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:none;
}
.carousel__viewport::-webkit-scrollbar{ display:none; }
.carousel__track{ display:flex; }
.slide{
  flex:0 0 100%; scroll-snap-align:start; min-width:0;
}
.carousel figure{ margin:0; }
.carousel figure img{
  width:100%; aspect-ratio:16/10; object-fit:cover;
  background:var(--linha);
}
.carousel figcaption{
  background:#fff; padding:1rem 1.3rem; font-size:.9rem; color:var(--tinta-suave);
  border:1px solid var(--linha); border-top:0;
  min-height:86px;
}
.carousel figcaption b{ color:var(--tinta); }

.carousel__btn{
  position:absolute; top:calc(50% - 50px); transform:translateY(-50%);
  width:46px; height:46px; border-radius:50%; border:0; cursor:pointer;
  background:#fff; color:var(--azul-escuro);
  box-shadow:var(--sombra); display:grid; place-items:center;
  transition:transform var(--t), background var(--t), opacity var(--t);
  z-index:3;
}
.carousel__btn svg{ width:20px; height:20px; fill:currentColor; }
.carousel__btn:hover{ background:var(--azul); color:#fff; }
.carousel__btn--prev{ left:8px; }
.carousel__btn--next{ right:8px; }
.carousel__btn[disabled]{ opacity:.35; cursor:default; }
.carousel__btn[disabled]:hover{ background:#fff; color:var(--azul-escuro); }

.carousel__dots{ display:flex; justify-content:center; gap:.45rem; margin-top:1.1rem; flex-wrap:wrap; }
.carousel__dots button{
  width:10px; height:10px; padding:0; border:0; border-radius:50%;
  background:var(--linha); cursor:pointer; transition:background var(--t), width var(--t);
}
.carousel__dots button[aria-selected="true"]{ background:var(--rosa); width:26px; border-radius:6px; }

/* carrossel de cards (projetos) */
.carousel--cards .carousel__viewport{ border-radius:0; overflow-x:auto; padding:6px; margin:-6px; }
.carousel--cards .slide{ padding-inline:6px; }
.proj{
  background:#fff; border:1px solid var(--linha); border-radius:var(--r-lg);
  overflow:hidden; box-shadow:var(--sombra-s); height:100%;
  display:flex; flex-direction:column;
}
.proj__media{ margin:0; }
.proj__media img{ width:100%; aspect-ratio:16/10; object-fit:cover; }
.proj__body{ padding:1.4rem 1.4rem 1.6rem; }
.proj__body h3{ margin:.6rem 0 .4rem; }
.proj__body p{ margin:0; font-size:.93rem; color:var(--tinta-suave); }

.tag{
  display:inline-block; font-family:var(--fonte-display); font-weight:600;
  font-size:.72rem; letter-spacing:.06em; text-transform:uppercase;
  padding:.34em .9em; border-radius:999px;
}
.tag--rosa{ background:var(--rosa-claro); color:#B82565; }
.tag--azul{ background:var(--azul-claro); color:var(--azul-forte); }
.tag--verde{ background:var(--verde-claro); color:var(--verde-forte); }
.tag--amarelo{ background:var(--amarelo-claro); color:var(--ouro); }
.tag--coral{ background:var(--coral-claro); color:var(--coral-forte); }

@media (min-width:760px){
  .carousel--cards .slide{ flex-basis:50%; }
  .carousel__btn--prev{ left:-14px; }
  .carousel__btn--next{ right:-14px; }
}
@media (min-width:1080px){
  .carousel--cards .slide{ flex-basis:33.3333%; }
}

/* listas da estrutura */
.estrutura__listas{ display:grid; gap:1.6rem; margin-top:2.6rem; }
.estrutura__col{
  background:#fff; border:1px solid var(--linha); border-radius:var(--r-lg); padding:1.7rem 1.6rem;
}
.estrutura__col h3{ font-size:1.08rem; margin-bottom:.7em; }
.estrutura__aviso{ font-size:.85rem; color:var(--tinta-suave); background:var(--amarelo-claro); padding:.7rem .9rem; border-radius:var(--r-sm); }
.ticks{ display:grid; gap:.55rem; }
.ticks li{ position:relative; padding-left:1.7rem; font-size:.93rem; color:var(--tinta-media); }
.ticks li::before{
  content:"✓"; position:absolute; left:0; top:-1px;
  color:var(--verde-forte); font-weight:900;
}
.ticks--muted li{ color:var(--tinta-suave); }
.ticks--muted li::before{ content:"○"; color:var(--ouro); font-weight:700; }

@media (min-width:820px){ .estrutura__listas{ grid-template-columns:1fr 1fr; } }

/* ---------- 15. Equipe ---------- */
.equipe__grid{ display:grid; gap:2.2rem; }
.equipe__grid .big{ font-size:1.1rem; color:var(--tinta-media); }
.equipe__cards{ display:grid; gap:1rem; }
.equipe__card{
  background:#fff; border:1px solid var(--linha); border-radius:var(--r);
  padding:1.4rem 1.4rem;
}
.equipe__ico{ font-size:1.7rem; display:block; margin-bottom:.4rem; }
.equipe__card h3{ font-size:1.02rem; margin-bottom:.3em; }
.equipe__card p{ margin:0; font-size:.92rem; color:var(--tinta-suave); }

@media (min-width:900px){ .equipe__grid{ grid-template-columns:1.05fr .95fr; align-items:center; gap:3rem; } }

/* ---------- 16. Galeria ---------- */
.gallery{ display:grid; gap:.9rem; grid-template-columns:repeat(2,1fr); }
.gallery__item--tall{ grid-column:span 2; }
.gallery__btn{
  display:block; width:100%; padding:0; border:0; background:none; cursor:zoom-in;
  position:relative; border-radius:var(--r); overflow:hidden;
  box-shadow:var(--sombra-s);
}
.gallery__btn img{
  width:100%; height:100%; aspect-ratio:4/3; object-fit:cover;
  transition:transform .5s cubic-bezier(.2,.7,.3,1);
}
.gallery__item--tall .gallery__btn img{ aspect-ratio:16/9; }
.gallery__btn:hover img{ transform:scale(1.06); }
.gallery__cap{
  position:absolute; left:0; right:0; bottom:0;
  padding:1.6rem .9rem .7rem;
  background:linear-gradient(transparent, rgba(18,89,127,.82));
  color:#fff; font-family:var(--fonte-display); font-weight:500; font-size:.88rem;
  text-align:left;
}
.gallery__more{ margin-top:1.8rem; text-align:center; font-size:.95rem; color:var(--tinta-suave); }

@media (min-width:760px){
  .gallery{ grid-template-columns:repeat(3,1fr); }
  .gallery__item--tall{ grid-column:span 2; grid-row:span 2; }
  .gallery__item--tall .gallery__btn,.gallery__item--tall .gallery__btn img{ height:100%; }
  .gallery__item--tall .gallery__btn img{ aspect-ratio:auto; }
}

/* ---------- 17. Comunicação ---------- */
.com__grid{ display:grid; gap:1rem; }
.com__card{
  background:#fff; border:1px solid var(--linha); border-left:5px solid var(--azul);
  border-radius:var(--r); padding:1.5rem 1.4rem;
}
.com__card h3{ font-size:1.04rem; margin-bottom:.35em; }
.com__card p{ font-size:.93rem; color:var(--tinta-suave); }
@media (min-width:640px){ .com__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){ .com__grid{ grid-template-columns:repeat(4,1fr); } }

/* ---------- 18. Depoimentos ---------- */
.depos{ display:grid; gap:1.2rem; align-items:stretch; }
.depo{
  background:#fff; border:1px solid var(--linha); border-radius:var(--r-lg);
  padding:1.8rem 1.6rem; position:relative;
  box-shadow:var(--sombra-s);
  display:flex; flex-direction:column;
}
.depo cite{ margin-top:auto; }
.depo::before{
  content:"”"; position:absolute; top:-6px; right:18px;
  font-family:var(--fonte-display); font-size:5rem; line-height:1;
  color:var(--azul-claro); pointer-events:none;
}
.depo__stars{ color:#BE8104; font-size:1.05rem; letter-spacing:1px; margin:0 0 .7rem; }
.depo blockquote{ margin:0 0 1rem; }
.depo blockquote p{ margin:0; font-size:.97rem; color:var(--tinta-media); position:relative; z-index:1; }
.depo cite{ font-style:normal; font-weight:800; font-size:.9rem; color:var(--tinta); }
.depo cite span{ font-weight:600; color:var(--tinta-suave); font-size:.83rem; }

@media (min-width:820px){ .depos{ grid-template-columns:repeat(3,1fr); } }

/* ---------- 19. FAQ ---------- */
.faq__wrap{ max-width:860px; }
.faq{ display:grid; gap:.7rem; }
.faq__item{
  background:#fff; border:1px solid var(--linha); border-radius:var(--r);
  overflow:hidden; transition:box-shadow var(--t), border-color var(--t);
}
.faq__item[open]{ box-shadow:var(--sombra-s); border-color:var(--azul); }
.faq__item summary{
  list-style:none; cursor:pointer;
  padding:1.1rem 3.2rem 1.1rem 1.3rem; position:relative;
  font-family:var(--fonte-display); font-weight:500; font-size:1.02rem; color:var(--tinta);
}
.faq__item summary::-webkit-details-marker{ display:none; }
.faq__item summary::after{
  content:""; position:absolute; right:1.3rem; top:50%;
  width:11px; height:11px; margin-top:-7px;
  border-right:2.5px solid var(--azul-forte); border-bottom:2.5px solid var(--azul-forte);
  transform:rotate(45deg); transition:transform var(--t);
}
.faq__item[open] summary::after{ transform:rotate(-135deg); margin-top:-2px; }
.faq__item summary:hover{ background:var(--azul-claro); }
.faq__body{ padding:0 1.3rem 1.3rem; }
.faq__body p{ margin:0; font-size:.95rem; color:var(--tinta-suave); }
.faq__lista{ margin:.7rem 0 0; padding-left:1.2rem; }
.faq__lista li{ font-size:.95rem; color:var(--tinta-suave); margin-bottom:.35rem; }
.faq__lista li:last-child{ margin-bottom:0; }

/* ---------- 20. Matrículas ---------- */
.steps{ display:grid; gap:1rem; margin-bottom:2.4rem; }
.step{
  background:var(--creme); border-radius:var(--r); padding:1.5rem 1.4rem;
  position:relative; border:1px solid var(--linha);
}
.step__n{
  display:grid; place-items:center; width:38px; height:38px; border-radius:50%;
  background:var(--rosa); color:#fff; font-family:var(--fonte-display); font-weight:600;
  margin-bottom:.8rem;
}
.step h3{ font-size:1.04rem; margin-bottom:.3em; }
.step p{ margin:0; font-size:.93rem; color:var(--tinta-suave); }

@media (min-width:760px){ .steps{ grid-template-columns:repeat(3,1fr); } }

.ctas{ display:grid; gap:.9rem; }
.cta-card{
  display:block; text-decoration:none; color:var(--tinta);
  background:#fff; border:2px solid var(--linha); border-radius:var(--r-lg);
  padding:1.5rem 1.4rem; text-align:center;
  transition:transform var(--t), border-color var(--t), box-shadow var(--t);
}
.cta-card:hover{ transform:translateY(-4px); border-color:var(--azul); box-shadow:var(--sombra); }
.cta-card__ico{ font-size:1.7rem; display:block; margin-bottom:.5rem; }
.cta-card b{ display:block; font-family:var(--fonte-display); font-weight:600; font-size:1.04rem; margin-bottom:.2em; }
.cta-card small{ color:var(--tinta-suave); font-size:.86rem; }
.cta-card--primary{
  background:linear-gradient(140deg,#CE3679,#B22662); border-color:transparent; color:#fff;
  box-shadow:0 10px 26px rgba(201,48,111,.3);
}
.cta-card--primary small{ color:#fff; }
.cta-card--primary:hover{ border-color:transparent; }

@media (min-width:640px){ .ctas{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1040px){ .ctas{ grid-template-columns:repeat(4,1fr); } }

/* ---------- 21. Localização ---------- */
.loc__grid{ display:grid; gap:2.2rem; }
.loc__list{ display:grid; gap:1.2rem; margin:1.6rem 0 2rem; }
.loc__list li{ padding-left:1.1rem; border-left:3px solid var(--azul-claro); }
.loc__list b{
  display:block; font-family:var(--fonte-display); font-weight:600; font-size:.82rem;
  text-transform:uppercase; letter-spacing:.07em; color:var(--azul-forte); margin-bottom:.2em;
}
.loc__list address,.loc__list p{ font-style:normal; margin:0; font-size:.98rem; color:var(--tinta-media); }
.loc__map{
  border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--sombra);
  border:7px solid #fff; background:var(--linha);
  min-height:340px;
}
.loc__map iframe{ width:100%; height:100%; min-height:326px; border:0; display:block; }

/* Fachada do mapa — desenhada em CSS, sem nenhuma requisição externa.
   O fundo imita a malha de ruas de um mapa. */
.mapa-fachada{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.85rem; min-height:326px; height:100%; padding:2rem 1.5rem;
  text-align:center; text-decoration:none; color:var(--tinta-media);
  background-color:var(--azul-claro);
  background-image:
    repeating-linear-gradient(0deg, transparent 0 38px, rgba(22,107,151,.09) 38px 40px),
    repeating-linear-gradient(90deg, transparent 0 38px, rgba(22,107,151,.09) 38px 40px);
  transition:background-color var(--t);
}
.mapa-fachada:hover{ background-color:#D6EBF8; }
.mapa-fachada:focus-visible{ outline:3px solid var(--azul-forte); outline-offset:-5px; }

.mapa-fachada__pin{
  display:grid; place-items:center; width:58px; height:58px; flex:none;
  background:var(--azul-forte); border-radius:50%;
  box-shadow:0 6px 18px rgba(22,107,151,.3);
}
.mapa-fachada__pin svg{ width:30px; height:30px; fill:#fff; }

.mapa-fachada__end{ font-size:.97rem; line-height:1.5; }
.mapa-fachada__end b{
  display:block; font-family:var(--fonte-display); font-weight:600;
  font-size:1.06rem; color:var(--tinta);
}

.mapa-fachada__btn{
  font-family:var(--fonte-display); font-weight:600; font-size:.95rem;
  color:#fff; background:var(--azul-forte);
  padding:.65em 1.4em; border-radius:999px;
  transition:background var(--t);
}
.mapa-fachada:hover .mapa-fachada__btn{ background:var(--azul-escuro); }

.mapa-fachada__nota{ font-size:.8rem; color:var(--tinta-suave); max-width:30ch; }

@media (min-width:900px){ .loc__grid{ grid-template-columns:.95fr 1.05fr; align-items:center; gap:3rem; } }

/* ---------- 22. CTA final ---------- */
.final{
  background:linear-gradient(140deg,#CE3679 0%, #BC2C6C 55%, #A5245C 100%);
  color:#fff; padding:clamp(3rem,7vw,5rem) 0; text-align:center;
  position:relative; overflow:hidden;
}
.final::before{
  content:""; position:absolute; width:420px; height:420px; border-radius:50%;
  background:rgba(255,255,255,.08); top:-180px; left:-120px;
}
.final__in{ position:relative; z-index:1; max-width:760px; }
.final h2{ color:#fff; }
.final p{ color:#fff; font-size:1.05rem; max-width:60ch; margin-inline:auto; }
.final__compromisso{
  margin-top:1.6rem; font-style:italic; font-size:1rem !important;
  color:rgba(255,255,255,.9) !important; max-width:54ch;
  padding-top:1.4rem; border-top:1px solid rgba(255,255,255,.25);
}
.final__actions{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-top:2rem; }

/* ---------- 23. Rodapé ---------- */
.footer{ background:var(--azul-escuro); color:#C9E3F1; padding:clamp(2.6rem,6vw,4rem) 0 1.6rem; font-size:.93rem; }
.footer__grid{ display:grid; gap:2.2rem; }
.footer h3{
  color:#fff; font-size:.86rem; text-transform:uppercase; letter-spacing:.09em;
  margin-bottom:1rem;
}
.footer ul{ display:grid; gap:.5rem; }
.footer a{ color:#C9E3F1; text-decoration:none; transition:color var(--t); }
.footer a:hover{ color:var(--amarelo); }
.footer .muted{ color:#AFCFE0; font-size:.85em; }

.footer__brand img{
  width:160px; background:#fff; border-radius:var(--r-sm); padding:.6rem .8rem;
}
.footer__tag{
  font-family:var(--fonte-display); font-size:1.14rem; color:#fff; margin:1rem 0 .4rem;
}
.footer__desc{ color:#B4D3E4; font-size:.9rem; max-width:34ch; }
.footer__social{ display:flex; gap:.6rem; margin-top:1.1rem; }
.footer__social a{
  display:grid; place-items:center; width:40px; height:40px; border-radius:12px;
  background:rgba(255,255,255,.1);
}
.footer__social a:hover{ background:var(--amarelo); }
.footer__social svg{ width:20px; height:20px; fill:#fff; }
.footer__social a:hover svg{ fill:var(--azul-escuro); }

.footer__addr{ font-style:normal; color:#C9E3F1; margin-bottom:1rem; }
.footer__hours{ margin-bottom:1rem; }
.footer__hours b{ color:#fff; font-size:1.05rem; }

.footer__legal{ border-top:1px solid rgba(255,255,255,.14); margin-top:2.4rem; padding-top:1.6rem; }
.privacy summary{
  cursor:pointer; color:#fff; font-weight:700; font-size:.88rem; list-style:none;
  display:inline-flex; align-items:center; gap:.5em;
}
.privacy summary::-webkit-details-marker{ display:none; }
.privacy summary::before{ content:"＋"; color:var(--amarelo); font-weight:900; }
.privacy[open] summary::before{ content:"－"; }
.privacy__body{
  margin-top:1rem; background:rgba(255,255,255,.06); border-radius:var(--r);
  padding:1.3rem 1.4rem; font-size:.87rem; color:#C9E3F1; max-width:80ch;
}
.privacy__body b{ color:#fff; }
.privacy__body a{ color:var(--amarelo); border-bottom-color:rgba(245,193,61,.4); }
.footer__copy{ margin-top:1.6rem; font-size:.82rem; color:#AFCFE0; }

/* Ponto de acesso à proposta comercial: quase invisível, sem rótulo. */
/* Escopado em .footer para vencer a especificidade de `.footer a`. */
.footer .dev-dot{
  display:inline-block; margin-top:.5rem; padding:.15rem .5rem;
  color:rgba(255,255,255,.14); font-weight:700; text-decoration:none;
  transition:color var(--t);
}
.footer .dev-dot:hover{ color:rgba(255,255,255,.7); }
.footer .dev-dot:focus-visible{
  color:#fff; outline:2px solid var(--azul); outline-offset:2px; border-radius:4px;
}

@media (min-width:700px){ .footer__grid{ grid-template-columns:repeat(2,1fr); } }
@media (min-width:1000px){ .footer__grid{ grid-template-columns:1.4fr 1fr 1fr 1fr; gap:2.6rem; } }

/* ---------- Pagina 404 ---------- */
.erro404{
  min-height:100vh; display:grid; place-items:center;
  background:var(--areia); padding:3rem 0;
}
.erro404__in{ text-align:center; max-width:620px; }
.erro404__logo{ width:150px; height:auto; margin-bottom:2rem; }
.erro404__n{
  font-family:var(--fonte-display); font-weight:700; font-size:clamp(3.4rem,13vw,5.5rem);
  line-height:1; color:var(--azul-claro); margin:0;
}
.erro404 h1{ margin:-.3em 0 .6rem; font-size:clamp(1.5rem,5vw,2.1rem); }
.erro404__texto{ color:var(--tinta-media); margin-bottom:2rem; }
.erro404__acoes{ display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center; margin-bottom:2.4rem; }
.erro404__links{
  display:flex; flex-wrap:wrap; gap:.6rem 1.4rem; justify-content:center;
  list-style:none; margin:0; padding:1.6rem 0 0; border-top:1px solid var(--linha);
}
.erro404__links a{ color:var(--azul-forte); font-size:.93rem; font-weight:700; text-decoration:none; }
.erro404__links a:hover{ text-decoration:underline; }

/* ---------- 24. WhatsApp flutuante ---------- */
.wa-float{
  position:fixed; right:16px; bottom:16px; z-index:70;
  display:inline-flex; align-items:center; gap:.55em;
  background:var(--whats); color:#fff; text-decoration:none;
  font-family:var(--fonte-display); font-weight:600; font-size:.95rem;
  padding:.78em 1.25em; border-radius:999px;
  box-shadow:0 10px 26px rgba(18,140,126,.42);
  transition:transform var(--t), box-shadow var(--t), background var(--t);
}
.wa-float svg{ width:23px; height:23px; fill:#fff; flex:none; }
.wa-float:hover{ background:var(--whats-esc); transform:translateY(-3px); box-shadow:0 16px 32px rgba(18,140,126,.5); }

@media (max-width:520px){
  .wa-float span{
    position:absolute; width:1px; height:1px; overflow:hidden;
    clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap;
  }
  .wa-float{ padding:.9em; }
}

/* ---------- 25. Lightbox ---------- */
.lightbox{
  position:fixed; inset:0; z-index:200;
  background:rgba(12,40,56,.94);
  display:flex; align-items:center; justify-content:center;
  padding:60px 16px;
}
.lightbox[hidden]{ display:none; }
.lightbox__fig{ margin:0; max-width:min(1000px,92vw); text-align:center; }
.lightbox__fig img{
  max-width:100%; max-height:74vh; width:auto; margin-inline:auto;
  border-radius:var(--r); box-shadow:var(--sombra-l);
}
.lightbox__fig figcaption{ color:#DCEFFA; font-size:.9rem; margin-top:1rem; }
.lightbox__close,.lightbox__nav{
  position:absolute; border:0; cursor:pointer;
  background:rgba(255,255,255,.14); color:#fff;
  display:grid; place-items:center;
  transition:background var(--t);
}
.lightbox__close{
  top:16px; right:16px; width:46px; height:46px; border-radius:50%;
  font-size:1.9rem; line-height:1;
}
.lightbox__nav{ top:50%; transform:translateY(-50%); width:50px; height:50px; border-radius:50%; }
.lightbox__nav svg{ width:22px; height:22px; fill:#fff; }
.lightbox__nav--prev{ left:12px; }
.lightbox__nav--next{ right:12px; }
.lightbox__close:hover,.lightbox__nav:hover{ background:var(--rosa); }

/* ---------- 26. Animação de entrada ---------- */
.reveal{ opacity:1; transform:none; }
html.js .reveal{
  opacity:0; transform:translateY(22px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.2,.7,.3,1);
}
html.js .reveal.is-visible{ opacity:1; transform:none; }

/* ---------- 27. Preferências de movimento e impressão ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  html.js .reveal{ opacity:1 !important; transform:none !important; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
    scroll-behavior:auto !important;
  }
  .reveal{ opacity:1 !important; transform:none !important; }
  .carousel__viewport{ scroll-behavior:auto; }
  .gallery__btn:hover img{ transform:none; }
}

@media print{
  .topbar,.header,.wa-float,.lightbox,.carousel__btn,.carousel__dots{ display:none !important; }
  body{ background:#fff; font-size:12pt; }
  .section,.hero{ padding-block:1rem; }
  .section--azul,.final,.footer{ background:#fff !important; color:#000 !important; }
  .section--azul h2,.section--azul h3,.final h2,.footer h3{ color:#000 !important; }
  a[href^="http"]::after{ content:" (" attr(href) ")"; font-size:9pt; color:#555; }
  .reveal{ opacity:1; transform:none; }
}
