@font-face{font-family:"Work Sans";src:url(fonts/WorkSans.ttf) format("truetype");font-weight:100 900;font-display:swap}
@font-face{font-family:"Newsreader";src:url(fonts/Newsreader-Italic.ttf) format("truetype");font-style:italic;font-weight:200 800;font-display:swap}
/* Linguagem das pecas da marca: titulo Work Sans 800, uma frase em Newsreader italico, blocos de cor cheios,
   etiqueta em pilula com contorno e o "+". Texto sempre em alto contraste (grafite sobre claro, branco sobre rubi/azul). */
:root{
  --k:.8; /* escala do desktop; 1 no celular */
  --rubi:#DC0436;--rubi-fundo:#8E1B30;--azul:#0D2B6B;--grafite:#1B1B22;--giz:#F4F3F1;--cinza:#5A5A66;--branco:#fff;
  --rosa-destaque:#FF6B8D; /* so sobre azul ou grafite */
  --degrade:linear-gradient(105deg,#DC0436,#8E1B30);
  --linha:rgb(27 27 34/.14);
  --r-card:calc(14px*var(--k));--r-foto:calc(44px*var(--k));
  --s1:calc(8px*var(--k));--s2:calc(16px*var(--k));--s3:calc(24px*var(--k));--s4:calc(40px*var(--k));--s5:calc(56px*var(--k));--s6:calc(72px*var(--k));
  --max:calc(1200px*var(--k));
}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(112px*var(--k))}
body{font:400 max(14px,calc(16px*var(--k)))/1.6 "Work Sans",Arial,sans-serif;color:var(--grafite);background:var(--branco);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:3px solid var(--azul);outline-offset:3px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--s3)}
section{padding:clamp(calc(48px*var(--k)),calc(5.5vw*var(--k)),calc(72px*var(--k))) 0}
h1,h2,h3{font-family:"Work Sans",Arial,sans-serif;font-weight:800;letter-spacing:-.03em;line-height:1.02;color:var(--azul)}
h1{font-size:clamp(calc(36px*var(--k)),calc(4.2vw*var(--k)),calc(60px*var(--k)))}
h2{font-size:clamp(calc(30px*var(--k)),calc(3.2vw*var(--k)),calc(44px*var(--k)))}
h3{font-size:calc(20px*var(--k));letter-spacing:-.015em;line-height:1.2}
.acento{font-family:"Newsreader",Georgia,serif;font-style:italic;font-weight:500;letter-spacing:-.01em;padding-bottom:.1em;color:var(--rubi)}
.etiqueta{display:inline-block;font-weight:700;font-size:max(11px,calc(12px*var(--k)));letter-spacing:.18em;text-transform:uppercase;color:var(--rubi-fundo);border:2px solid currentColor;padding:calc(8px*var(--k)) calc(16px*var(--k));border-radius:calc(99px*var(--k));line-height:1.3}
p{max-width:62ch}
.intro{margin-top:var(--s2);font-size:calc(18px*var(--k));max-width:56ch}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* botoes (manual): pilula, Work Sans 700, termina com o "+" da marca, 1 primario por contexto.
   Fundo claro: primario rubi com texto branco. Fundo rubi/azul: primario branco com texto rubi.
   Secundario: contorno na cor do texto do fundo. */
.btn{display:inline-block;text-align:center;padding:calc(12px*var(--k)) var(--s4);border-radius:calc(99px*var(--k));font-weight:700;font-size:calc(16px*var(--k));line-height:1.4;text-decoration:none;border:2px solid transparent;transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s,background .2s,color .2s}
.btn::after{content:"+";margin-left:var(--s1);font-weight:800;font-size:1.15em;line-height:1}
.btn:hover{transform:translateY(-2px)}
.btn:active{transform:scale(.98)}
.btn-rubi{background:var(--rubi);color:var(--branco)}
.btn-rubi:hover{box-shadow:0 calc(12px*var(--k)) calc(28px*var(--k)) rgb(220 4 54/.3)}
.btn-branco{background:var(--branco);color:var(--rubi)}
.btn-branco:hover{box-shadow:0 calc(12px*var(--k)) calc(28px*var(--k)) rgb(0 0 0/.22)}
.btn-linha{border-color:currentColor;color:inherit;background:transparent}
.btn-linha:hover{background:var(--grafite);border-color:var(--grafite);color:var(--branco)}
.slide .btn-linha:hover,.chamada .btn-linha:hover,.resultado .btn-linha:hover{background:var(--branco);border-color:var(--branco);color:var(--rubi)}
.acoes{display:flex;gap:var(--s2);flex-wrap:wrap}

/* faixa e cabecalho */
.topbar{background:var(--azul);color:var(--branco);font-size:calc(14px*var(--k));line-height:1.4}
.topbar .wrap{display:flex;justify-content:center;gap:var(--s2);align-items:center;flex-wrap:wrap;min-height:calc(40px*var(--k));padding-top:calc(4px*var(--k));padding-bottom:calc(4px*var(--k))}
.topbar a{font-weight:700;text-decoration:underline;text-underline-offset:3px;color:var(--rosa-destaque);display:inline-flex;align-items:center;min-height:calc(32px*var(--k))}
header{position:sticky;top:0;z-index:50;background:rgb(255 255 255/.94);backdrop-filter:saturate(1.4) blur(calc(14px*var(--k)));-webkit-backdrop-filter:saturate(1.4) blur(calc(14px*var(--k)));border-bottom:1px solid transparent;transition:border-color .3s}
header.rolou{border-color:var(--linha)}
.nav{display:flex;align-items:center;gap:var(--s3);height:calc(80px*var(--k))}
.nav>a:first-child{display:flex;align-items:center;min-height:calc(44px*var(--k))}
.nav img{height:calc(46px*var(--k));width:auto}
.nav ul{display:flex;gap:calc(4px*var(--k));list-style:none;padding:0;margin-left:auto}
.nav ul a{display:inline-flex;align-items:center;min-height:calc(44px*var(--k));padding:0 calc(16px*var(--k));border-radius:calc(99px*var(--k));text-decoration:none;font-weight:600;font-size:calc(15px*var(--k));color:var(--grafite);transition:background .2s,color .2s}
.nav ul a:hover{background:var(--giz)}
.nav ul a[aria-current]{background:var(--azul);color:var(--branco)}
.portal{font-weight:700;font-size:calc(15px*var(--k));text-decoration:none;color:var(--azul)}
.portal:hover{text-decoration:underline}
.nav .btn{padding:calc(12px*var(--k)) var(--s3);font-size:calc(15px*var(--k));white-space:nowrap}
.menu{display:none;margin-left:auto;position:relative}
.menu summary{list-style:none;cursor:pointer;min-height:calc(44px*var(--k));display:inline-flex;align-items:center;padding:0 var(--s3);border-radius:calc(99px*var(--k));border:2px solid var(--azul);color:var(--azul);font-weight:700;font-size:calc(15px*var(--k))}
.menu summary::-webkit-details-marker{display:none}
.menu[open] summary{background:var(--azul);color:var(--branco)}
.menu nav{position:absolute;right:0;top:calc(100% + calc(8px*var(--k)));background:var(--branco);border-radius:var(--r-card);box-shadow:0 calc(18px*var(--k)) calc(40px*var(--k)) rgb(27 27 34/.2);padding:var(--s1);min-width:calc(250px*var(--k));z-index:60}
.menu nav a{display:flex;align-items:center;min-height:calc(48px*var(--k));padding:0 var(--s2);border-radius:calc(8px*var(--k));text-decoration:none;font-weight:600}
.menu nav a:hover{background:var(--giz)}
.menu nav a[aria-current]{background:var(--azul);color:var(--branco)}

/* destaques: carrossel de promocoes (temas do manual: rubi, azul, giz) */
.destaques{position:relative;overflow:hidden;padding:0}
.slides{display:grid}
.slide{grid-area:1/1;display:flex;align-items:center;min-height:clamp(calc(420px*var(--k)),calc(100svh - calc(124px*var(--k))),calc(640px*var(--k)));padding:clamp(calc(20px*var(--k)),3vh,calc(48px*var(--k))) 0 calc(64px*var(--k));opacity:0;visibility:hidden;transform:translateX(calc(32px*var(--k)));transition:opacity .6s,transform .6s cubic-bezier(.16,1,.3,1),visibility 0s .6s}
.slide.ativo{opacity:1;visibility:visible;transform:none;transition-delay:0s}
.slide .wrap{width:100%;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(calc(32px*var(--k)),calc(5vw*var(--k)),calc(80px*var(--k)));align-items:center}
.slide .texto{max-width:calc(640px*var(--k))}
.slide h1,.slide h2{margin:clamp(calc(8px*var(--k)),2vh,calc(16px*var(--k))) 0;font-size:clamp(calc(28px*var(--k)),min(calc(3.9vw*var(--k)),6.4vh),calc(56px*var(--k)));letter-spacing:-.035em;line-height:1.02;color:inherit}
.slide .sub{font-size:clamp(calc(16px*var(--k)),2.4vh,calc(18px*var(--k)));max-width:46ch;margin-bottom:clamp(calc(16px*var(--k)),3vh,calc(24px*var(--k)));color:inherit}
.slide .nota{margin-top:var(--s3);font-size:calc(14px*var(--k));max-width:48ch;color:inherit;opacity:.92}
.slide .etiqueta{color:inherit}
.grande{display:flex;flex-direction:column;align-items:flex-start}
.grande strong{font:800 clamp(calc(56px*var(--k)),min(calc(9vw*var(--k)),19vh),calc(128px*var(--k)))/.9 "Work Sans",sans-serif;letter-spacing:-.07em}
.grande span{margin-top:var(--s1);font-size:calc(16px*var(--k));font-weight:700;max-width:18ch}
.tema-rubi{background:var(--degrade);color:var(--branco)}
.tema-rubi .acento{color:var(--branco)}
.tema-azul{background:var(--azul);color:var(--branco)}
.tema-azul .acento,.tema-azul .grande strong{color:var(--rosa-destaque)}
.tema-giz{background:var(--giz);color:var(--grafite)}
.tema-giz h2{color:var(--azul)}
.tema-giz .grande strong{color:var(--rubi)}
.tema-giz .etiqueta{color:var(--rubi-fundo)}
.controles{position:absolute;left:50%;transform:translateX(-50%);bottom:clamp(calc(24px*var(--k)),calc(3vw*var(--k)),calc(40px*var(--k)));display:flex;align-items:center;gap:var(--s3);pointer-events:none}
.controles>*{pointer-events:auto}
.pontos-slide{display:flex;gap:var(--s1)}
.pontos-slide button{width:calc(14px*var(--k));height:calc(14px*var(--k));padding:0;border-radius:calc(99px*var(--k));border:2px solid currentColor;background:transparent;cursor:pointer;transition:width .3s,background .3s}
.pontos-slide button.on{width:calc(40px*var(--k));background:currentColor}
.pausa{font:700 calc(14px*var(--k))/1 "Work Sans",sans-serif;min-height:calc(44px*var(--k));padding:0 var(--s2);border-radius:calc(99px*var(--k));border:2px solid currentColor;background:transparent;color:inherit;cursor:pointer}
.destaques{color:var(--grafite)}
.destaques:has(.tema-rubi.ativo),.destaques:has(.tema-azul.ativo){color:var(--branco)}

.fachada{background:var(--branco);border-radius:var(--r-foto);padding:calc(14px*var(--k));margin-top:var(--s4);max-width:calc(520px*var(--k))}
.fachada img{width:100%;height:auto;border-radius:calc(var(--r-foto) - calc(14px*var(--k)));background:#E7E7E7}

/* numeros */
.numeros{padding:0}
.numeros .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s4);padding-top:var(--s4);padding-bottom:var(--s4)}
.numeros strong{display:block;font:800 clamp(calc(28px*var(--k)),calc(3vw*var(--k)),calc(40px*var(--k)))/1 "Work Sans",sans-serif;letter-spacing:-.04em;color:var(--rubi)}
.numeros .wrap>div:nth-child(even) strong{color:var(--azul)}
.numeros span{display:block;margin-top:var(--s1);font-size:calc(15px*var(--k));line-height:1.45;color:var(--grafite)}

/* historia */
.historia{padding-top:clamp(calc(24px*var(--k)),calc(4vw*var(--k)),calc(56px*var(--k)))}
.historia .wrap{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(calc(40px*var(--k)),calc(6vw*var(--k)),calc(96px*var(--k)));align-items:start}
.historia h2{margin-top:var(--s3)}
.historia p{margin-top:var(--s2);font-size:calc(16px*var(--k))}
.citacao{position:sticky;top:calc(112px*var(--k));background:var(--azul);color:var(--branco);border-radius:var(--r-foto);padding:var(--s4)}
.citacao small{display:inline-block;border:2px solid var(--branco);border-radius:calc(99px*var(--k));padding:calc(8px*var(--k)) calc(16px*var(--k));font-size:max(11px,calc(12px*var(--k)));font-weight:700;letter-spacing:.18em;text-transform:uppercase}
.citacao q{display:block;margin:var(--s3) 0;font:italic 500 clamp(calc(22px*var(--k)),calc(2vw*var(--k)),calc(28px*var(--k)))/1.25 "Newsreader",Georgia,serif;color:var(--branco);quotes:none}
.citacao q .destaque{color:var(--rosa-destaque)}
.citacao cite{display:flex;justify-content:space-between;align-items:center;font:700 calc(16px*var(--k))/1.4 "Work Sans",sans-serif;font-style:normal;padding-top:var(--s2);border-top:2px solid var(--branco)}
.citacao cite::after{content:"+";font-size:calc(28px*var(--k));line-height:1;color:var(--rosa-destaque)}

/* familia */
.familia{background:var(--giz)}
.familia h2{margin-top:var(--s3);max-width:19ch}
.equipe{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--s2);margin-top:var(--s4)}
.equipe div{background:var(--branco);border-radius:var(--r-card);padding:var(--s3)}
.mais{display:inline-grid;place-items:center;width:calc(40px*var(--k));height:calc(40px*var(--k));border-radius:50%;background:var(--rubi);color:var(--branco);font-weight:800;font-size:calc(28px*var(--k));line-height:1;margin-bottom:var(--s3)}
.equipe p{margin-top:var(--s1);font-size:calc(16px*var(--k))}

/* cursos */
.cursos h2{margin-top:var(--s3)}
.categorias{margin-top:var(--s4);display:grid;gap:var(--s1)}
.categorias a{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr) auto;gap:var(--s4);align-items:center;padding:var(--s3) var(--s4);border:1px solid var(--linha);border-radius:var(--r-card);text-decoration:none;transition:background .3s,color .3s,border-color .3s,transform .35s cubic-bezier(.16,1,.3,1)}
.categorias a:hover{background:var(--degrade);border-color:transparent;color:var(--branco);transform:translateX(calc(6px*var(--k)))}
.categorias h3{font-size:clamp(calc(20px*var(--k)),calc(1.8vw*var(--k)),calc(24px*var(--k)));letter-spacing:-.03em;transition:color .3s}
.categorias a:hover h3{color:var(--branco)}
.categorias p{font-size:calc(16px*var(--k));max-width:none}
.categorias .ir{display:grid;place-items:center;width:calc(44px*var(--k));height:calc(44px*var(--k));border-radius:50%;background:var(--rubi);color:var(--branco);font-size:0;transition:background .3s,color .3s}
.categorias .ir::after{content:"\2192";font-size:calc(24px*var(--k));line-height:1}
.categorias a:hover .ir{background:var(--branco);color:var(--rubi-fundo)}

/* depoimentos: carrossel */
.depoimentos{background:var(--giz)}
.depoimentos .cab{display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s3);flex-wrap:wrap}
.depoimentos h2{margin-top:var(--s3)}
.setas{display:flex;gap:var(--s1)}
.setas button{width:calc(56px*var(--k));height:calc(56px*var(--k));border-radius:50%;border:2px solid var(--azul);background:var(--branco);font:700 calc(22px*var(--k))/1 "Work Sans",sans-serif;color:var(--azul);cursor:pointer;transition:background .2s,color .2s}
.setas button:hover:not(:disabled){background:var(--azul);color:var(--branco)}
.setas button:disabled{opacity:.3;cursor:default}
.faixa{display:flex;gap:var(--s2);overflow-x:auto;scroll-snap-type:x mandatory;padding:var(--s4) 0 var(--s2);scrollbar-width:none;overscroll-behavior-x:contain;scroll-behavior:smooth}
.faixa::-webkit-scrollbar{display:none}
.fala{flex:0 0 min(86%,calc(380px*var(--k)));scroll-snap-align:start;background:var(--branco);border-radius:var(--r-foto);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s3)}
@media (min-width:960px){.fala{flex-basis:calc((100% - 2*var(--s2))/3)}}
.fala:nth-child(4n+1){background:var(--degrade);color:var(--branco)}
.fala:nth-child(4n+3){background:var(--azul);color:var(--branco)}
.fala::before{content:"\201C";font:italic 600 calc(88px*var(--k))/.6 "Newsreader",Georgia,serif;color:var(--rubi)}
.fala:nth-child(4n+1)::before{color:var(--branco)}
.fala:nth-child(4n+3)::before{color:var(--rosa-destaque)}
.fala blockquote{font-size:calc(16px*var(--k));line-height:1.6}
.fala footer{margin-top:auto;display:flex;align-items:center;gap:var(--s2);font-weight:700;padding-top:var(--s2);border-top:2px solid currentColor}
.avatar{display:grid;place-items:center;width:calc(44px*var(--k));height:calc(44px*var(--k));border-radius:50%;background:var(--azul);color:var(--branco);font-size:calc(15px*var(--k));font-weight:700}
.fala:nth-child(4n+1) .avatar,.fala:nth-child(4n+3) .avatar{background:var(--branco);color:var(--azul)}
.pontos{display:flex;gap:calc(6px*var(--k));margin-top:var(--s3)}
.pontos i{width:calc(8px*var(--k));height:calc(8px*var(--k));border-radius:50%;background:var(--linha);transition:background .2s,width .2s}
.pontos i.on{background:var(--rubi);width:calc(28px*var(--k));border-radius:calc(99px*var(--k))}

/* card Fale com a gente: azul institucional + painel de contato */
.chamada .caixa{background:var(--azul);color:var(--branco);border-radius:var(--r-foto);padding:clamp(calc(28px*var(--k)),calc(4vw*var(--k)),calc(56px*var(--k)));display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(calc(32px*var(--k)),calc(5vw*var(--k)),calc(72px*var(--k)));align-items:center}
.chamada .etiqueta{color:var(--branco)}
.chamada h2{color:var(--branco);margin:var(--s2) 0;max-width:18ch}
.chamada .acento{color:var(--rosa-destaque)}
.chamada .texto p:last-child{color:var(--branco);font-size:calc(16px*var(--k))}
.contatos{background:var(--branco);color:var(--grafite);border-radius:var(--r-card);padding:var(--s3)}
.contatos .btn{width:100%;padding-left:var(--s2);padding-right:var(--s2)}
.contatos dl{margin-top:var(--s3);display:grid;gap:var(--s2)}
.contatos dt{font-size:max(11px,calc(12px*var(--k)));font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--rubi-fundo)}
.contatos dd{font-size:calc(16px*var(--k));line-height:1.45}
.contatos a{font-weight:700;color:var(--azul);text-decoration:none}
.contatos a:hover{text-decoration:underline}
.contatos .btn-rubi{color:var(--branco)}

/* local */
.local{background:var(--giz)}
.local .wrap{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(calc(32px*var(--k)),calc(6vw*var(--k)),calc(88px*var(--k)));align-items:start}
.local h2{margin:var(--s3) 0}
.local address{font-style:normal}
.local .nome{font-weight:700;margin-bottom:var(--s1)}
.mapa{border-radius:var(--r-foto);overflow:hidden;background:var(--branco)}
.mapa{position:sticky;top:calc(104px*var(--k))}
.mapa iframe{display:block;width:100%;height:clamp(calc(300px*var(--k)),calc(34vw*var(--k)),calc(440px*var(--k)));border:0}

/* rodape claro (logo colorido sobre branco), filete e "+" como nas pecas */
footer.site{background:var(--branco);padding:var(--s5) 0 var(--s3);border-top:1px solid var(--linha)}
.rodape{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:var(--s5)}
footer.site img{height:calc(40px*var(--k));width:auto;margin-bottom:var(--s3)}
footer.site h3{font-size:max(11px,calc(12px*var(--k)));letter-spacing:.18em;text-transform:uppercase;color:var(--rubi-fundo);margin-bottom:var(--s2)}
footer.site p,footer.site a{font-size:calc(16px*var(--k));line-height:1.7;text-decoration:none;color:var(--grafite)}
footer.site a:hover{color:var(--rubi);text-decoration:underline}
.rodape ul{list-style:none;padding:0}
.rodape li a{display:inline-flex;align-items:center;min-height:calc(40px*var(--k));font-weight:600}
.legal{margin-top:var(--s4);padding-top:var(--s3);border-top:3px solid var(--grafite);display:flex;justify-content:space-between;align-items:center;gap:var(--s2);flex-wrap:wrap;font-size:calc(15px*var(--k));font-weight:600}

/* paginas internas: capa rubi compacta */
.pagina{background:var(--degrade);color:var(--branco);padding:clamp(calc(32px*var(--k)),calc(4vw*var(--k)),calc(56px*var(--k))) 0}
.pagina .etiqueta{color:var(--branco)}
.pagina h1{color:var(--branco);margin:var(--s2) 0;max-width:20ch;font-size:clamp(calc(32px*var(--k)),calc(3.6vw*var(--k)),calc(48px*var(--k)))}
.pagina .acento{color:var(--branco)}
.pagina p.sub{font-size:calc(18px*var(--k));color:var(--branco);max-width:56ch}
.pilares{display:grid;grid-template-columns:2fr 1.5fr 1.5fr;gap:var(--s2)}
.pilares article{border-radius:var(--r-foto);padding:var(--s4);transition:transform .35s cubic-bezier(.16,1,.3,1)}
.pilares article:hover{transform:translateY(-4px)}
.pilares article:nth-of-type(1){background:var(--azul);color:var(--branco)}
.pilares article:nth-of-type(2){background:var(--giz)}
.pilares article:nth-of-type(3){background:var(--degrade);color:var(--branco)}
.pilares h3{font-size:clamp(calc(20px*var(--k)),calc(1.8vw*var(--k)),calc(24px*var(--k)));letter-spacing:-.03em;margin-bottom:var(--s2);color:inherit}
.pilares article:nth-of-type(2) h3{color:var(--azul)}
.pilares p{font-size:calc(16px*var(--k))}
.linha-tempo h2{margin:var(--s2) 0 var(--s4)}
.trilho{position:relative;padding-left:clamp(0px,calc(3vw*var(--k)),calc(48px*var(--k)))}
.trilho::before,.trilho::after{content:"";position:absolute;left:0;top:calc(8px*var(--k));bottom:calc(8px*var(--k));width:calc(4px*var(--k));border-radius:calc(4px*var(--k))}
.trilho::before{background:var(--linha)}
.trilho::after{background:var(--rubi);transform-origin:top}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){.trilho::after{transform:scaleY(0);animation:cresce linear forwards;animation-timeline:view();animation-range:entry 40% exit 60%}}
}
@keyframes cresce{to{transform:scaleY(1)}}
.marco{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,8fr);gap:var(--s4);align-items:baseline;padding:var(--s2) 0;opacity:.45;transition:opacity .5s}
.marco.on{opacity:1}
.marco+.marco{margin-top:var(--s3)}
.marco .ano{font:800 clamp(calc(36px*var(--k)),calc(4.4vw*var(--k)),calc(56px*var(--k)))/.9 "Work Sans",sans-serif;letter-spacing:-.05em;color:var(--azul)}
.marco.on .ano{color:var(--rubi)}
.marco h3{font-size:clamp(calc(20px*var(--k)),calc(1.6vw*var(--k)),calc(22px*var(--k)));margin-bottom:var(--s1)}
.filtros{display:flex;gap:var(--s1);flex-wrap:wrap;margin-bottom:var(--s4)}
.filtros button{font:700 calc(16px*var(--k))/1 "Work Sans",sans-serif;min-height:calc(52px*var(--k));padding:0 var(--s3);border-radius:calc(99px*var(--k));border:2px solid var(--azul);background:var(--branco);color:var(--azul);cursor:pointer;transition:background .2s,color .2s}
.filtros button:hover{background:var(--giz)}
.filtros button[aria-pressed=true]{background:var(--azul);color:var(--branco)}
.catalogo{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,calc(340px*var(--k))),1fr));gap:var(--s2)}
.curso{border:1px solid var(--linha);border-radius:var(--r-foto);padding:var(--s3) var(--s4);display:flex;flex-direction:column;gap:var(--s1);min-height:calc(240px*var(--k));background:var(--branco);transition:transform .35s cubic-bezier(.16,1,.3,1),background .3s,color .3s,border-color .3s}
.curso:hover{transform:translateY(-4px);background:var(--degrade);border-color:transparent;color:var(--branco)}
.curso[hidden]{display:none}
.curso .tag{font-weight:700;font-size:max(11px,calc(12px*var(--k)));letter-spacing:.18em;text-transform:uppercase;color:var(--rubi-fundo);border:2px solid currentColor;padding:calc(8px*var(--k)) calc(16px*var(--k));border-radius:calc(99px*var(--k));align-self:flex-start}
.curso:hover .tag,.curso:hover h3,.curso:hover .preco,.curso:hover a.ver{color:var(--branco)}
.curso h3{font-size:clamp(calc(20px*var(--k)),calc(1.6vw*var(--k)),calc(22px*var(--k)));letter-spacing:-.025em;margin-top:var(--s1)}
.curso p{font-size:calc(15px*var(--k));margin-bottom:auto}
.curso .preco{font:800 calc(28px*var(--k))/1 "Work Sans",sans-serif;letter-spacing:-.04em;color:var(--rubi);margin-top:var(--s2)}
.curso a.ver{display:inline-flex;align-items:center;min-height:calc(44px*var(--k));font-weight:700;text-decoration:none;color:var(--azul)}
.curso a.ver:hover{text-decoration:underline}
.duas{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(calc(32px*var(--k)),calc(6vw*var(--k)),calc(96px*var(--k)));align-items:start}
.campo{display:flex;flex-direction:column;gap:var(--s1);margin-bottom:var(--s3)}
.campo>label,.campo>legend{font-weight:700;font-size:calc(17px*var(--k));padding:0;color:var(--azul)}
.campo input,.campo select,.campo textarea{font:400 calc(16px*var(--k))/1.4 "Work Sans",sans-serif;min-height:calc(52px*var(--k));padding:0 var(--s2);border:2px solid var(--grafite);border-radius:var(--r-card);background:var(--branco);color:var(--grafite);width:100%}
.campo textarea{min-height:calc(140px*var(--k));padding:var(--s2);resize:vertical}
.campo input:focus-visible,.campo select:focus-visible,.campo textarea:focus-visible{outline:3px solid var(--azul);outline-offset:2px;border-color:var(--azul)}
.campo .erro{color:#B0022B;font-size:calc(16px*var(--k));font-weight:700}
.campo input[aria-invalid=true]{border-color:#B0022B}
fieldset.campo{border:0;padding:0;min-width:0}
.turnos{display:flex;gap:var(--s1);flex-wrap:wrap}
.turnos input{position:absolute;opacity:0;pointer-events:none;width:1px;min-height:0}
.turnos label{display:inline-flex;align-items:center;min-height:calc(52px*var(--k));padding:0 var(--s3);border-radius:calc(99px*var(--k));border:2px solid var(--azul);color:var(--azul);font-weight:700;cursor:pointer;background:var(--branco);transition:background .2s,color .2s}
.turnos label:hover{background:var(--giz)}
.turnos input:checked+label{background:var(--azul);color:var(--branco)}
.turnos input:focus-visible+label{outline:3px solid var(--azul);outline-offset:3px}
.resultado{background:var(--degrade);color:var(--branco);border-radius:var(--r-foto);padding:var(--s4);position:sticky;top:calc(110px*var(--k))}
.resultado .etiqueta{color:var(--branco)}
.resultado h2{color:var(--branco);font-size:clamp(calc(22px*var(--k)),calc(1.8vw*var(--k)),calc(26px*var(--k)));margin:var(--s3) 0 var(--s2)}
.resultado .tags{display:flex;gap:var(--s1);flex-wrap:wrap;margin-bottom:var(--s3)}
.resultado .tags span{background:var(--branco);color:var(--rubi-fundo);border-radius:calc(99px*var(--k));padding:calc(6px*var(--k)) var(--s2);font-weight:700;font-size:calc(15px*var(--k))}
.resultado .de{text-decoration:line-through}
.resultado .por{font:800 clamp(calc(28px*var(--k)),calc(2.6vw*var(--k)),calc(36px*var(--k)))/1.05 "Work Sans",sans-serif;letter-spacing:-.04em;margin:var(--s1) 0}
.resultado .econ{font-weight:700}
.resultado p{color:var(--branco)}
.resultado ul{list-style:none;padding:0;margin:var(--s3) 0 var(--s4);display:grid;gap:var(--s1);font-size:calc(17px*var(--k))}
.resultado li::before{content:"+";font-weight:800;margin-right:var(--s1)}
.resultado .btn{width:100%;padding:var(--s2) var(--s3);background:var(--branco);color:var(--rubi)}
.canais{display:grid;gap:var(--s3)}
.canais dt{display:inline-block;font-weight:700;font-size:max(11px,calc(12px*var(--k)));letter-spacing:.18em;text-transform:uppercase;color:var(--rubi-fundo);border:2px solid currentColor;padding:calc(8px*var(--k)) calc(16px*var(--k));border-radius:calc(99px*var(--k))}
.canais dd{margin:var(--s1) 0 0;font-size:calc(17px*var(--k));line-height:1.5}
.canais a{text-decoration:none;font-weight:700;color:var(--azul)}
.canais a:hover{text-decoration:underline}
#contato-form{background:var(--giz);border-radius:var(--r-foto);padding:var(--s4)}
#contato-form h2{margin-bottom:var(--s4)}

/* movimento: revela ao rolar; desligado para quem prefere menos movimento */
@media (prefers-reduced-motion:no-preference){
  .rv{opacity:0;transform:translateY(calc(24px*var(--k)));transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1),background .3s,color .3s,border-color .3s;transition-delay:calc(var(--i,0)*70ms)}
  .rv.on{opacity:1;transform:none}
  .fachada{animation:entra 1s cubic-bezier(.16,1,.3,1) both .1s}
  @keyframes entra{from{opacity:0;transform:translateY(calc(32px*var(--k)))}}
}
@media (prefers-reduced-motion:reduce){.faixa{scroll-behavior:auto}.marco{opacity:1}.slide{transition:none;transform:none}}

@media (min-width:961px) and (max-height:720px){
  .nav{height:calc(70px*var(--k))}
  .nav img{height:calc(42px*var(--k))}
  .slide{min-height:calc(100svh - calc(112px*var(--k)))}
}
@media (max-width:1100px){
  .nav>ul{display:none}
  .menu{display:block}
}
@media (max-width:960px){
  :root{--k:1}
  .slide .wrap,.historia .wrap,.duas,.local .wrap{grid-template-columns:minmax(0,1fr)}
  .grande{order:-1}
  .grande strong{font-size:clamp(calc(60px*var(--k)),calc(18vw*var(--k)),calc(104px*var(--k)))}
  .grande span{font-size:calc(16px*var(--k))}
  .numeros .wrap,.equipe{grid-template-columns:1fr 1fr}
  .citacao,.resultado,.mapa{position:relative;top:auto}
  .categorias a{grid-template-columns:minmax(0,1fr) auto;gap:var(--s1) var(--s2)}
  .categorias p{grid-column:1}
  .categorias .ir{grid-column:2;grid-row:1/3}
  .pilares{grid-template-columns:1fr}
  .marco{grid-template-columns:1fr;gap:var(--s1)}
  .rodape{grid-template-columns:1fr}
  .chamada .caixa{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:520px){
  body{font-size:calc(16px*var(--k))}
  .nav{height:calc(80px*var(--k))}
  .nav img{height:calc(46px*var(--k))}
  .wrap{padding:0 var(--s2)}
  .numeros .wrap,.equipe{grid-template-columns:1fr}
  .nav .btn{display:none}
  .acoes .btn{width:100%}
  .categorias a{padding:var(--s3)}
  .citacao{padding:var(--s5) var(--s3)}
  .chamada .caixa{padding:var(--s4) var(--s2)}
  .contatos{padding:var(--s3)}
}


/* icone de login (Portal do Aluno) e menu hamburguer */
.nav .login{display:inline-grid;place-items:center;width:max(40px,calc(44px*var(--k)));height:max(40px,calc(44px*var(--k)));border-radius:50%;color:var(--azul);text-decoration:none;transition:background .2s,color .2s}
.nav .login svg{width:max(20px,calc(26px*var(--k)));height:max(20px,calc(26px*var(--k)))}
.nav .login:hover{background:var(--grafite);color:var(--branco)}
.menu summary{width:44px;height:44px;padding:0;justify-content:center;border:0;border-radius:50%;color:var(--azul)}
.menu summary svg{width:28px;height:28px}
.menu summary:hover{background:var(--giz)}
.menu .i-fecha{display:none}
.menu[open] .i-abre{display:none}
.menu[open] .i-fecha{display:block}
.menu[open] summary{background:var(--azul);color:var(--branco)}
@media (max-width:1100px){
  .nav>.acesso{margin-left:auto}
  .menu{margin-left:0}
}
.menu nav a:last-child{background:var(--rubi);color:var(--branco);font-weight:700;margin-top:8px;justify-content:center}
.menu nav a:last-child::after{content:"+";margin-left:8px;font-weight:800}

/* redes sociais e peixinho (lembranca) no rodape */
.redes{list-style:none;padding:0;margin:var(--s3) 0 0;display:flex;gap:var(--s1)}
.redes a{display:inline-grid;place-items:center;width:max(40px,calc(44px*var(--k)));height:max(40px,calc(44px*var(--k)));border-radius:50%;border:1px solid var(--linha);color:var(--grafite);transition:background .2s,color .2s,border-color .2s}
.redes a:hover{background:var(--rubi);border-color:var(--rubi);color:var(--branco);text-decoration:none}
.redes svg{width:max(18px,calc(22px*var(--k)));height:max(18px,calc(22px*var(--k)))}
.desde{display:inline-flex;align-items:center;gap:var(--s1);color:var(--rubi);font-weight:800}
.peixe{width:max(32px,calc(44px*var(--k)));height:auto;flex:none}

/* centralizacao exata: ícones das redes e setas desenhadas (não caracteres de texto) */
.rodape .redes a{display:inline-grid;place-items:center;padding:0;min-height:0;line-height:0}
.rodape .redes svg{display:block}
.seta::after,.categorias .ir::after,.setas button::after{content:"";display:block;width:max(18px,calc(22px*var(--k)));height:max(18px,calc(22px*var(--k)));background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 256 256'%3E%3Cpath d='M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z'/%3E%3C/svg%3E") center/contain no-repeat}
.categorias .ir{display:grid;place-items:center;font-size:0;line-height:0}
.setas button{display:inline-grid;place-items:center;padding:0;font-size:0;line-height:0}
.setas button#ant::after{transform:scaleX(-1)}

/* setas: texto oculto não pode virar um segundo item da grade (deslocava o desenho para baixo) */
.categorias .ir,.setas button{display:flex;align-items:center;justify-content:center;font-size:0;line-height:0;padding:0;overflow:hidden}
.categorias .ir::after,.setas button::after{flex:none;margin:0}

/* valores por pessoa */
.aviso-preco{margin:0 0 var(--s3);font-weight:700;color:var(--azul)}
.familia-aviso{margin-top:var(--s2);padding:var(--s2);background:var(--branco);color:var(--rubi-fundo);border-radius:var(--r-card);font-weight:700;line-height:1.45}
.resultado .familia-aviso{color:var(--rubi-fundo)}
.familia-aviso[hidden]{display:none}

/* pagina de curso */
.voltar{display:inline-block;color:var(--branco);font-weight:700;margin-bottom:var(--s2);text-decoration:underline;text-underline-offset:3px}
.voltar:hover{text-decoration:none}
.pontos-curso{list-style:none;padding:0;margin:var(--s3) 0 0;display:grid;gap:var(--s2)}
.pontos-curso li{display:flex;gap:var(--s2);align-items:baseline}
.pontos-curso li::before{content:"+";flex:none;color:var(--rubi);font-weight:800}
.matricula{background:var(--giz);border-radius:var(--r-foto);padding:var(--s4);position:sticky;top:calc(110px*var(--k))}
.matricula .valor{font:800 clamp(36px,calc(3.4vw*var(--k)),52px)/1 "Work Sans",sans-serif;letter-spacing:-.04em;color:var(--rubi);margin:var(--s2) 0}
.matricula .valor small{display:block;margin-top:var(--s1);font:700 max(12px,calc(15px*var(--k)))/1.3 "Work Sans",sans-serif;letter-spacing:0;color:var(--grafite)}
.matricula dl{display:grid;gap:var(--s2);margin:var(--s3) 0}
.matricula dt{font:700 max(11px,calc(12px*var(--k)))/1.3 "Work Sans",sans-serif;letter-spacing:.18em;text-transform:uppercase;color:var(--rubi-fundo)}
.matricula dd{margin:2px 0 0;font-weight:600}
.matricula .btn{display:block;width:100%;margin-top:var(--s1)}
.outros{background:var(--giz)}
.outros .curso{background:var(--branco)}
@media (max-width:960px){.matricula{position:relative;top:auto}}
@media (max-width:960px){.matricula{padding:var(--s3)}.matricula .btn{padding-left:var(--s2);padding-right:var(--s2)}}

/* conteudo do curso */
.conteudo-curso .bloco+.bloco{margin-top:var(--s5)}
.conteudo-curso .bloco>p{margin-top:var(--s2)}
.acordeao{margin-top:var(--s3);display:grid;gap:var(--s1)}
.acordeao details{border:1px solid var(--linha);border-radius:var(--r-card);background:var(--branco);transition:background .2s,border-color .2s}
.acordeao details[open]{border-color:var(--rubi)}
.acordeao summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);font-weight:700;color:var(--azul)}
.acordeao summary::-webkit-details-marker{display:none}
.acordeao summary::after{content:"+";flex:none;font-size:max(20px,calc(26px*var(--k)));line-height:1;font-weight:800;color:var(--rubi);transition:transform .25s}
.acordeao details[open] summary::after{transform:rotate(45deg)}
.acordeao details>ul,.acordeao details>p{margin:0;padding:0 var(--s3) var(--s3)}
.acordeao details>ul{list-style:none;display:grid;gap:var(--s1)}
.nota-curso{margin-top:var(--s2);font-size:max(12px,calc(14px*var(--k)));color:var(--cinza)}
.outros .curso:hover{background:var(--degrade);border-color:transparent;color:var(--branco)}

/* botao flutuante do WhatsApp (rubi: o verde do WhatsApp nao e da paleta) */
.flutuante{position:fixed;right:max(16px,calc(24px*var(--k)));bottom:max(16px,calc(24px*var(--k)));z-index:45;display:grid;place-items:center;width:max(52px,calc(64px*var(--k)));height:max(52px,calc(64px*var(--k)));border-radius:50%;background:var(--rubi);color:var(--branco);box-shadow:0 12px 28px rgb(220 4 54/.35);transition:transform .25s cubic-bezier(.16,1,.3,1),box-shadow .25s}
.flutuante:hover{transform:translateY(-3px) scale(1.05);box-shadow:0 16px 32px rgb(220 4 54/.45)}
.flutuante:active{transform:scale(.97)}
.flutuante svg{width:52%;height:52%}
.flutuante{border:3px solid var(--branco);box-shadow:0 12px 28px rgb(27 27 34/.28)}
.flutuante:hover{box-shadow:0 16px 32px rgb(27 27 34/.36)}
@media (max-width:960px){.controles{left:var(--s2);transform:none}}
/* WhatsApp em verde (reconhecimento); usa o verde do manual (#0E7A3E), contraste 5,4:1 com o ícone branco */
.flutuante{background:#0E7A3E}
.flutuante:hover{background:#0b6733}

/* seletor de portais (icone de usuario) */
.acesso{position:relative}
.acesso summary{list-style:none;cursor:pointer}
.acesso summary::-webkit-details-marker{display:none}
.acesso[open] .login{background:var(--azul);color:var(--branco)}
.acesso-painel{position:absolute;right:0;top:calc(100% + 12px);z-index:60;width:min(calc(320px*var(--k)),calc(100vw - 32px));min-width:260px;background:var(--branco);border-radius:var(--r-card);box-shadow:0 18px 40px rgb(27 27 34/.18);padding:var(--s1)}
.acesso-titulo{padding:var(--s1) var(--s2);font-weight:700;color:var(--cinza);max-width:none;font-size:max(12px,calc(14px*var(--k)))}
.acesso-painel a{display:block;padding:var(--s2);border-radius:8px;text-decoration:none;transition:background .2s}
.acesso-painel a:hover,.acesso-painel a:focus-visible{background:var(--giz)}
.acesso-painel strong{display:block;font-weight:800;color:var(--azul)}
.acesso-painel span{display:block;color:var(--cinza);font-size:max(13px,calc(15px*var(--k)))}
@media (max-width:960px){
  .acesso{position:static}
  .acesso-painel{left:var(--s2);right:var(--s2);width:auto;min-width:0;top:calc(100% + 8px)}
}

.niveis{display:flex;flex-direction:column;gap:var(--s1);margin:var(--s3) 0}
#nivel{margin:auto;border:0;border-radius:var(--r-foto);padding:var(--s4);max-width:min(92vw,calc(420px*var(--k)));width:100%;background:var(--branco);color:var(--grafite)}
.fechar{position:absolute;top:var(--s2);right:var(--s2);width:calc(40px*var(--k));height:calc(40px*var(--k));min-width:36px;min-height:36px;border:0;border-radius:50%;background:transparent;color:var(--azul);font:400 calc(28px*var(--k))/1 sans-serif;cursor:pointer;display:flex;align-items:center;justify-content:center}
.fechar:hover{background:var(--giz)}
#nivel::backdrop{background:rgba(0,0,0,.55)}
