@font-face{font-family:'Fredoka';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fontes/fonte-1.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:'Fredoka';font-style:normal;font-weight:400 700;font-display:swap;src:url(/assets/fontes/fonte-2.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:'Montserrat';font-style:italic;font-weight:300 800;font-display:swap;src:url(/assets/fontes/fonte-3.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:'Montserrat';font-style:normal;font-weight:300 800;font-display:swap;src:url(/assets/fontes/fonte-4.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;}

:root { color-scheme: light; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #fff; color: #1F140F; font-family: Montserrat, sans-serif; }
h1, h2, h3 { text-wrap: balance; }
p { text-wrap: pretty; }
a { color: #47256A; text-decoration: none; }
a:hover { color: #EA4D65; }
img { max-width: 100%; }
:focus-visible { outline: 3px solid #EA4D65; outline-offset: 2px; }

@keyframes floatY { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-16px); } }
@keyframes floatYr { 0%, 100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-11px) rotate(-2.5deg); } }
/* fidelidade ao protótipo: reduced-motion desliga só o flutuar dos ícones */
@media (prefers-reduced-motion: reduce) {
  [data-float] { animation: none !important; }
}



/* hover dos botões do navegador de cursos, compilado pelo runtime do protótipo */
.scp0:hover { background: rgb(71, 37, 106) !important; color: rgb(255, 255, 255) !important; }
.scp1:hover { background: rgb(33, 206, 156) !important; color: rgb(255, 255, 255) !important; }
.scp2:hover { background: rgb(248, 171, 67) !important; color: rgb(31, 20, 15) !important; }
.scp3:hover { background: rgb(234, 77, 101) !important; color: rgb(255, 255, 255) !important; }
.scp4:hover { }


/* embeds de vídeo: o CSP do artefato bloqueia iframes externos */
.mw-embed {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px;
  width: 100%; height: 100%; min-height: 220px; box-sizing: border-box; padding: 24px;
  background: #F4F0FA; border: 2px dashed #C9B8DD; border-radius: 14px; text-align: center;
}
.mw-embed:hover { background: #EDE5F6; border-color: #A98CC7; }
.mw-embed-play {
  width: 46px; height: 46px; border-radius: 50%; background: #EA4D65; flex-shrink: 0;
  clip-path: circle(50%);
  background-image: linear-gradient(transparent, transparent);
  position: relative;
}
.mw-embed-play::after {
  content: ""; position: absolute; top: 50%; left: 54%; transform: translate(-50%, -50%);
  border-left: 15px solid #fff; border-top: 9px solid transparent; border-bottom: 9px solid transparent;
}
.mw-embed-t { font-weight: 700; font-size: 14px; color: #47256A; }
.mw-embed-s { font-size: 12px; color: #7A5B9B; }














/* embeds de vídeo reais (no site, diferente da prévia, não há CSP bloqueando) */
.mw-video { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 14px; overflow: hidden; background: #F4F0FA; }
.mw-video iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mw-reel { position: relative; width: 100%; aspect-ratio: 9 / 16; border-radius: 14px; overflow: hidden; background: #F4F0FA; }
.mw-reel iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* botões-pílula não quebram o formato quando o texto dobra de linha */
a[style*="border-radius: 999px"] { display: inline-block; text-align: center; }

/* imagens decorativas absolutas não geram rolagem lateral */
/* overflow-x fica só no body: no <html> ele quebra a rolagem suave das âncoras */
body { overflow-x: clip; }

/* selects encolhem junto com o formulário em telas estreitas */
select { max-width: 100%; min-width: 0; }

/* ---------- menu móvel (hambúrguer) ---------- */
.mw-burger { display: none; background: none; border: 0; padding: 8px; cursor: pointer; width: 44px; height: 40px; flex-direction: column; justify-content: center; gap: 6px; }
.mw-burger span { display: block; width: 26px; height: 3px; border-radius: 2px; background: #FFFFFF; transition: transform .3s, opacity .3s; }
.mw-burger-escuro span { background: #47256A; }
.mw-burger-x span:nth-child(1) { transform: translateY(9px) rotate(45deg); }
.mw-burger-x span:nth-child(2) { opacity: 0; }
.mw-burger-x span:nth-child(3) { transform: translateY(-9px) rotate(-45deg); }

@media (max-width: 760px) {
  .mw-burger { display: flex; }
  header nav { display: none !important; }
  header nav.mw-nav-aberto {
    display: flex !important; flex-direction: column !important; align-items: flex-start !important;
    position: absolute; top: 100%; left: 0; right: 0;
    background: rgba(71, 37, 106, 0.97); backdrop-filter: blur(8px);
    padding: 18px 24px 22px; gap: 16px !important; font-size: 17px !important;
    box-shadow: 0 14px 28px rgba(0,0,0,.18);
  }
  header nav.mw-nav-aberto a, header nav.mw-nav-aberto a span { color: #FFFFFF !important; }

  /* fileiras de cards passam a empilhar */
  [data-stagger] { flex-wrap: wrap !important; }
  [data-stagger] > div[style*="min-width: 0px"] { flex: 1 1 100% !important; }

  /* diagrama das etapas: portas de entrada empilham com o "ou" centralizado */
  button.scp0, button.scp1 { flex: 1 1 100%; }

  /* meses sem turma do calendário viram uma linha compacta */
  div[style*="opacity: 0.55"][style*="border-radius: 14px"] { flex-direction: row !important; align-items: center !important; padding: 10px 16px !important; }

  /* colunas de seções duas-colunas empilham sem estourar a largura da tela */
  div[style*="min-width: 300px"], div[style*="min-width: 320px"], div[style*="min-width: 280px"],
  div[style*="min-width: min(320px"], div[style*="min-width: min(340px"], div[style*="min-width: min(420px"],
  div[style*="min-width: min(300px"], div[style*="min-width: min(280px"] {
    flex-basis: 100% !important; min-width: 0 !important; width: auto !important; box-sizing: border-box !important;
  }
}

/* ---------- índice "nesta página" (páginas longas, só no móvel) ---------- */
.mw-indice { display: none; }
h2[id^="mw-sec-"] { scroll-margin-top: 130px; }
@media (max-width: 760px) {
  .mw-indice { display: flex; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; padding: 12px 20px; background: #FFFFFF; border-bottom: 1px solid #EEEEEE; }
  .mw-indice a { flex: 0 0 auto; font-size: 14px; font-weight: 600; color: #47256A; background: #F4F0FA; border-radius: 999px; padding: 8px 16px; white-space: nowrap; }
}

/* ---------- troca de etapa no fim da ficha de curso ---------- */
.mw-troca-etapa { flex: 1 1 100%; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-top: 20px; padding-top: 18px; border-top: 1px solid #E4E4E4; }
.mw-troca-titulo { flex: 0 0 100%; font-size: 13px; font-weight: 700; color: #9A9A9A; text-transform: uppercase; letter-spacing: 0.04em; }
.mw-troca-botao { background: #FFFFFF; border: 2px solid #47256A; color: #47256A; border-radius: 999px; padding: 9px 16px; font-weight: 700; font-size: 14px; cursor: pointer; font-family: Montserrat, sans-serif; text-align: left; }
.mw-troca-atual { background: #47256A; color: #FFFFFF; }
@media (max-width: 760px) {
  .mw-troca-botao { flex: 1 1 100%; }
}

/* ---------- barra de ação fixa (formação, só no móvel) ---------- */
.mw-barra-acao { display: none; }
@media (max-width: 760px) {
  .mw-barra-acao { position: fixed; bottom: 0; left: 0; right: 0; z-index: 30; display: flex; gap: 10px; padding: 10px 14px calc(10px + env(safe-area-inset-bottom)); background: rgba(255, 255, 255, 0.96); backdrop-filter: blur(8px); box-shadow: 0 -6px 18px rgba(0, 0, 0, 0.08); }
  .mw-barra-acao a { flex: 1 1 0; text-align: center; font-weight: 700; font-size: 15px; padding: 12px 8px; border-radius: 999px; border: 2px solid #47256A; color: #47256A; }
  .mw-barra-acao a.mw-acao-forte { background: #EA4D65; border-color: #EA4D65; color: #FFFFFF; }
  body.mw-tem-barra { padding-bottom: 78px; }
}