:root{
  --tinta:#1E2A44; --texto-2:#4B5872; --texto-3:#6A7590;
  --fundo:#FAFBFE; --fundo-2:#F2F5FA; --linha:#E6EAF2; --linha-2:#D5DCE8;
  --azul-pastel:#E9F0FB; --azul-pastel-2:#DCE7F8;
  --pessego:#FFE6D8; --pessego-2:#FFEDE3; --lavanda:#ECE8F8; --lavanda-2:#F0EDFA;
  --menta:#E0F3EA; --menta-2:#E8F5EE; --areia:#FFF3DC; --agua:#E3F2F7;
  --coral:#EF8354; --coral-escuro:#D9692F; --coral-texto:#B4532A;
  --ok:#1E6B3F; --ok-bg:#E0F3EA; --ok-borda:#7CCFA5;
  --parcial:#7A4A00; --parcial-bg:#FFF0D9; --parcial-borda:#F5C27A;
  --errado:#9C2B26; --errado-bg:#FCE4E4; --errado-borda:#F0989A;
  --display:"Sora",system-ui,sans-serif;
  --corpo:"Source Sans 3",system-ui,-apple-system,"Segoe UI",sans-serif;
  --sombra:0 6px 18px rgba(30,42,68,.05);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--fundo);color:var(--tinta);font-family:var(--corpo);font-size:17px;line-height:1.55;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--tinta)} a:hover{color:var(--coral-texto)}
button,input{font:inherit}
.container{max-width:1200px;margin:0 auto;padding:0 24px}

/* Marca */
.marca{display:inline-flex;align-items:center;gap:10px;font-family:var(--display);font-weight:700;font-size:22px;letter-spacing:-.5px;text-decoration:none;color:var(--tinta);min-height:44px}
.marca b{font-weight:inherit}
.marca span{color:var(--coral-escuro)}
.marca:hover{color:var(--tinta)}
.marca svg{flex:none}

/* Topo */
.topo{background:rgba(255,255,255,.9);border-bottom:1px solid var(--linha);position:sticky;top:0;z-index:10;backdrop-filter:saturate(1.2) blur(8px);-webkit-backdrop-filter:saturate(1.2) blur(8px)}
.topo .container{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;padding-bottom:12px}
.topo nav{display:flex;flex-wrap:wrap;align-items:center;gap:8px 24px}
.topo nav a{color:var(--texto-2);text-decoration:none}
.topo nav a:hover{color:var(--tinta)}
.topo nav a.btn{color:#fff}
@media (max-width:760px){.so-desktop{display:none!important}}

/* Botões */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:13px 24px;font-weight:600;font-size:16px;cursor:pointer;text-decoration:none;min-height:44px;line-height:1.2;transition:transform .15s ease, box-shadow .15s ease, background .15s ease}
.btn:hover{transform:translateY(-1px)}
.btn-coral,.btn-laranja{background:var(--coral);color:var(--tinta);font-weight:700}
.btn-coral:hover,.btn-laranja:hover{background:#F39367;color:var(--tinta)}
.btn-escuro,.btn-azul{background:var(--tinta);color:#fff}
.btn-escuro:hover,.btn-azul:hover{background:#2C3B5C;color:#fff}
.btn-claro,.btn-contorno{background:#fff;color:var(--tinta);border:1px solid #C9D3E3}
.btn-claro:hover,.btn-contorno:hover{border-color:var(--tinta);color:var(--tinta)}
.btn[disabled]{opacity:.5;cursor:not-allowed;transform:none}
:focus-visible{outline:3px solid var(--coral);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.btn{transition:none}.btn:hover{transform:none}html{scroll-behavior:auto}}

/* Vitrine */
.hero{background:var(--azul-pastel)}
.hero .container{display:flex;flex-wrap:wrap;gap:48px;align-items:center;padding-top:72px;padding-bottom:88px}
.hero-texto{flex:1 1 460px;min-width:0;display:flex;flex-direction:column;gap:22px}
.selo{align-self:flex-start;background:#fff;color:var(--coral-texto);font-size:14px;font-weight:700;padding:6px 14px;border-radius:999px;letter-spacing:.3px}
.olho{font-size:14px;letter-spacing:1.5px;text-transform:uppercase;font-weight:700;color:var(--coral-texto)}
.hero h1{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(40px,6vw,58px);line-height:1.05;letter-spacing:-1.5px}
.hero p{margin:0;font-size:20px;color:var(--texto-2);max-width:560px}
.acoes{display:flex;flex-wrap:wrap;gap:12px;margin-top:6px}
.acoes .btn{padding:15px 28px;font-size:17px}
.hero-ilustra{flex:1 1 400px;min-width:0;display:flex;justify-content:center}
.hero-ilustra svg{width:100%;max-width:520px;height:auto}

.secao{padding:88px 0}
.secao.cinza{background:var(--fundo-2)}
.secao-cab{display:flex;flex-direction:column;gap:10px;margin-bottom:36px;max-width:720px}
.secao-cab h2{margin:0;font-family:var(--display);font-weight:700;font-size:clamp(30px,4vw,38px);line-height:1.15;letter-spacing:-.8px}
.grade{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}
.passo{border-radius:20px;padding:28px;display:flex;flex-direction:column;gap:12px}
.passo:nth-child(4n+1){background:var(--azul-pastel)}
.passo:nth-child(4n+2){background:var(--pessego-2)}
.passo:nth-child(4n+3){background:var(--menta-2)}
.passo:nth-child(4n+4){background:var(--lavanda-2)}
.passo b{align-self:flex-start;background:#fff;font-family:var(--display);font-weight:700;font-size:15px;padding:6px 12px;border-radius:999px}
.passo h3{margin:0;font-family:var(--display);font-weight:600;font-size:21px}
.passo p{margin:0;color:var(--texto-2);font-size:16px}

.produto{background:#fff;border:1px solid var(--linha);border-radius:20px;padding:26px;display:flex;flex-direction:column;gap:12px;box-shadow:var(--sombra)}
.produto .sigla{width:44px;height:44px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-weight:700;font-size:16px;background:var(--azul-pastel)}
.produto:nth-child(6n+2) .sigla{background:var(--pessego-2)}
.produto:nth-child(6n+3) .sigla{background:var(--lavanda-2)}
.produto:nth-child(6n+4) .sigla{background:var(--menta-2)}
.produto:nth-child(6n+5) .sigla{background:var(--areia)}
.produto:nth-child(6n+6) .sigla{background:var(--agua)}
.produto h3{margin:0;font-family:var(--display);font-weight:600;font-size:21px}
.produto p{margin:0;color:var(--texto-2);font-size:16px}
.produto .rodape-card{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:8px}
.preco{font-family:var(--display);font-weight:600;font-size:19px}
.produto.combo{border:0;border-radius:24px;padding:30px;box-shadow:none;background:var(--azul-pastel-2)}
.produto.combo:nth-child(4n+2){background:var(--lavanda)}
.produto.combo:nth-child(4n+3){background:var(--menta)}
.produto.combo:nth-child(4n+4){background:var(--pessego)}
.produto.combo h3{font-weight:700;font-size:25px;letter-spacing:-.4px}
.produto.combo p{color:#3E4A63}
.produto.combo .etiqueta{align-self:flex-start;background:rgba(255,255,255,.8);font-size:13px;font-weight:700;padding:5px 12px;border-radius:999px}

.faixa{padding:0 24px 88px}
.faixa-caixa{max-width:1152px;margin:0 auto;background:var(--pessego);border-radius:28px;padding:48px;display:flex;flex-wrap:wrap;gap:24px;align-items:center;justify-content:space-between}
.faixa h2{margin:0;font-family:var(--display);font-weight:700;font-size:32px;letter-spacing:-.6px}
.faixa p{margin:6px 0 0;font-size:18px;color:var(--texto-2)}
@media (max-width:520px){.faixa-caixa{padding:32px 24px}}

/* Rodapé */
.rodape{background:#EDF1F7;color:var(--texto-2);margin-top:auto}
.rodape .container{display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;padding-top:32px;padding-bottom:32px;font-size:15px}
.rodape a{color:var(--texto-2)}
.rodape .marca{font-size:17px;min-height:0}

/* Formulários */
.pagina-form{flex:1;background:var(--azul-pastel);display:flex;justify-content:center;padding:64px 16px}
.caixa{background:#fff;border-radius:24px;padding:36px;width:100%;max-width:460px;display:flex;flex-direction:column;gap:16px;align-self:flex-start;box-shadow:0 20px 50px rgba(30,42,68,.08)}
.caixa h1{margin:0;font-family:var(--display);font-weight:700;font-size:30px;letter-spacing:-.6px}
.caixa p{margin:0;color:var(--texto-2)}
.campo{display:flex;flex-direction:column;gap:6px}
.campo label{font-size:15px;font-weight:600}
.campo input{font-size:16px;padding:13px 16px;border:1px solid var(--linha-2);border-radius:12px;min-height:44px;background:var(--fundo)}
.abas{display:flex;gap:4px;background:var(--fundo-2);border-radius:999px;padding:4px}
.abas button{flex:1;border:0;background:transparent;padding:10px;border-radius:999px;cursor:pointer;font-weight:600;color:var(--texto-3);min-height:44px}
.abas button[aria-selected="true"]{background:#fff;color:var(--tinta);box-shadow:0 1px 3px rgba(30,42,68,.12)}
.aviso{border-radius:12px;padding:12px 14px;font-size:15px}
.aviso.erro{background:var(--errado-bg);color:var(--errado)}
.aviso.sucesso{background:var(--ok-bg);color:var(--ok)}
.aviso.info{background:var(--azul-pastel);color:var(--tinta)}
.link-btn{background:none;border:0;padding:0;color:var(--tinta);text-decoration:underline;cursor:pointer;font-size:15px;align-self:center;min-height:44px}
.pequeno{font-size:14px;color:var(--texto-3);text-align:center}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{font-size:15px;font-weight:600;padding:5px 14px;border-radius:999px;background:var(--fundo-2);color:var(--texto-3)}
.chip.ok{background:var(--ok-bg);color:var(--ok)}
.chip.parcial{background:var(--parcial-bg);color:var(--parcial)}
.chip.errado{background:var(--errado-bg);color:var(--errado)}

/* Área do aluno */
.area{flex:1;background:var(--fundo-2)}
.area .container{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start;padding-top:32px;padding-bottom:64px}
.lateral{flex:1 1 260px;max-width:100%;background:#fff;border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:10px}
.lateral h2{margin:0 0 4px;font-family:var(--display);font-weight:600;font-size:18px}
.deck-btn{text-align:left;border:0;background:var(--fundo-2);border-radius:14px;padding:12px 14px;cursor:pointer;display:flex;flex-direction:column;gap:2px;min-height:44px;color:var(--tinta);font-weight:600}
.deck-btn small{color:var(--texto-3);font-size:13px;font-weight:400}
.deck-btn[aria-current="true"]{background:var(--azul-pastel-2)}
.deck-btn[aria-current="true"] small{color:var(--coral-texto)}
.deck-bloq{border:1px dashed #C9D3E3;border-radius:14px;padding:12px 14px;color:var(--texto-3);font-size:15px;display:flex;flex-direction:column;gap:2px}
.conteudo{flex:999 1 560px;min-width:0;display:flex;flex-direction:column;gap:16px}
.conteudo h1{margin:0;font-family:var(--display);font-weight:700;font-size:32px;letter-spacing:-.6px}
.placar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;background:#fff;border-radius:16px;padding:12px 14px}
.placar .btn{margin-left:auto;background:var(--fundo-2);border:0;font-weight:600}
.card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:inset 5px 0 0 var(--linha)}
.card[data-marca="ok"]{box-shadow:inset 5px 0 0 var(--ok-borda)}
.card[data-marca="parcial"]{box-shadow:inset 5px 0 0 var(--parcial-borda)}
.card[data-marca="errado"]{box-shadow:inset 5px 0 0 var(--errado-borda)}
.card-cab{width:100%;text-align:left;background:none;border:0;padding:18px 20px;display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:17px;color:var(--tinta);min-height:44px}
.card-cab .n{font-family:var(--display);font-weight:700;color:var(--coral-texto);min-width:28px}
.card-cab .q{font-weight:600;flex:1}
.card-cab .dica{color:var(--texto-3);font-size:14px}
.card-resp{border-top:1px dashed var(--linha-2);padding:14px 20px 20px 60px;display:flex;flex-direction:column;gap:14px}
.card-resp p{margin:0;color:#3E4A63;white-space:pre-line}
.marcas{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.marcas span{font-size:14px;color:var(--texto-3)}
.marcas button{font-size:14px;padding:9px 16px;border-radius:999px;cursor:pointer;min-height:40px;background:var(--fundo-2);color:var(--tinta);border:1px solid var(--fundo-2)}
.marcas button[aria-pressed="true"][data-v="ok"]{background:var(--ok-bg);color:var(--ok);border-color:var(--ok);font-weight:700}
.marcas button[aria-pressed="true"][data-v="parcial"]{background:var(--parcial-bg);color:var(--parcial);border-color:var(--parcial);font-weight:700}
.marcas button[aria-pressed="true"][data-v="errado"]{background:var(--errado-bg);color:var(--errado);border-color:var(--errado);font-weight:700}
.vazio{padding:24px;background:#fff;border-radius:16px;color:var(--texto-2)}
@media (max-width:520px){.card-resp{padding-left:20px}.placar .btn{margin-left:0}}
[hidden]{display:none!important}
.tema-titulo{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.3px;margin:20px 0 2px;color:var(--tinta);display:flex;align-items:center;gap:10px}
.tema-titulo::before{content:"";width:10px;height:10px;border-radius:3px;background:var(--coral);flex:none}
.tema-titulo:first-child{margin-top:4px}
.estudo{background:#FFF6EF;border:1px solid #FFE0CC;border-radius:16px}
.estudo summary{list-style:none;cursor:pointer;padding:14px 18px;display:flex;justify-content:space-between;align-items:center;gap:12px;font-family:var(--display);font-weight:600;font-size:17px;min-height:44px}
.estudo summary::-webkit-details-marker{display:none}
.estudo-dica{font-family:var(--corpo);font-weight:600;font-size:14px;color:var(--coral-texto)}
.estudo[open] .estudo-dica{visibility:hidden}
.estudo p{margin:0;padding:0 18px 10px;white-space:pre-line;color:#3E4A63}
.estudo-link{display:inline-block;margin:0 18px 16px;font-weight:600;color:var(--coral-texto)}
.card-resp .fonte{font-size:14px;color:var(--texto-2);background:var(--fundo-2);border-radius:8px;padding:6px 10px;margin:0;align-self:flex-start}

/* Resumo */
.resumo{background:#fff;border-radius:20px;padding:28px clamp(18px,4vw,40px) 36px;display:flex;flex-direction:column;gap:6px;scroll-margin-top:90px}
.resumo-secao{display:flex;flex-direction:column;gap:12px;padding:8px 0 26px;border-bottom:1px solid var(--linha)}
.resumo-secao:last-child{border-bottom:0;padding-bottom:0}
.resumo-tema{margin:16px 0 2px;font-family:var(--display);font-weight:700;font-size:24px;letter-spacing:-.4px;display:flex;align-items:center;gap:10px}
.resumo-tema::before{content:"";width:12px;height:12px;border-radius:4px;background:var(--coral);flex:none}
.resumo-sub{margin:10px 0 0;font-family:var(--display);font-weight:600;font-size:18px}
.resumo-p{margin:0;color:#33405A;line-height:1.65}
.resumo-lista{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px;color:#33405A;line-height:1.6}
.resumo-lei{background:var(--azul-pastel);border-radius:14px;padding:14px 18px;display:flex;flex-direction:column;gap:6px}
.resumo-lei p{margin:0;font-size:15.5px;line-height:1.6;color:#22304D}
.resumo-atencao{background:#FFF6EF;border:1px solid #FFE0CC;border-radius:14px;padding:14px 18px;display:flex;flex-direction:column;gap:6px}
.resumo-atencao p{margin:0;line-height:1.6;color:#4A2A12}
.resumo-rotulo{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;font-weight:700;color:var(--coral-texto)}
.resumo-lei .resumo-rotulo{color:#2F4A7A}
.resumo-tabela-box{overflow-x:auto;border:1px solid var(--linha);border-radius:14px}
.resumo-tabela{border-collapse:collapse;width:100%;font-size:15px;min-width:520px}
.resumo-tabela th{background:var(--fundo-2);text-align:left;padding:10px 14px;font-weight:700;border-bottom:1px solid var(--linha)}
.resumo-tabela td{padding:10px 14px;border-bottom:1px solid var(--linha);vertical-align:top;color:#33405A;line-height:1.5}
.resumo-tabela tr:last-child td{border-bottom:0}
.resumo-revisar{align-self:flex-start;margin-top:6px;border:0;background:var(--coral);color:var(--tinta);font-weight:700;border-radius:999px;padding:11px 20px;cursor:pointer;min-height:44px}
.resumo-revisar:hover{background:#F39367}
#placar{scroll-margin-top:90px}.tema-titulo{scroll-margin-top:90px}


.estudo-acoes{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;padding:0 18px 16px}
.estudo-acoes .estudo-link{margin:0}
.resumo-janela{border:0;padding:0;border-radius:24px;width:min(920px,calc(100vw - 24px));max-height:calc(100vh - 32px);background:var(--fundo-2);box-shadow:0 30px 80px rgba(30,42,68,.35);overflow:hidden;flex-direction:column}
.resumo-janela[open]{display:flex}
.resumo-janela::backdrop{background:rgba(20,28,46,.55)}
.resumo-janela-topo{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;padding:18px clamp(16px,3vw,28px);background:#fff;border-bottom:1px solid var(--linha)}
.resumo-janela-topo h2{margin:2px 0 0;font-family:var(--display);font-size:20px;letter-spacing:-.3px}
.resumo-janela .resumo{overflow-y:auto;border-radius:0;margin:0}
@media (max-width:600px){.resumo-janela{width:100vw;max-width:100vw;max-height:100dvh;height:100dvh;margin:0;border-radius:0}}

/* ===== Área do aluno: painel "Meus estudos" ===== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.area .area-container{display:block}
.painel{display:flex;flex-direction:column;gap:22px}
.painel-cab{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-end;justify-content:space-between}
.painel-cab h1{margin:2px 0 0;font-family:var(--display);font-weight:700;font-size:clamp(28px,4vw,36px);letter-spacing:-.8px}
.busca input{font-size:16px;padding:12px 18px;border:1px solid var(--linha-2);border-radius:999px;min-width:min(320px,100%);background:#fff;min-height:44px}
.busca{flex:0 1 340px}
.busca input{width:100%}
.continuar{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;width:100%;text-align:left;border:0;cursor:pointer;background:var(--azul-pastel-2);border-radius:20px;padding:18px 22px;color:var(--tinta)}
.continuar strong{font-family:var(--display);font-size:19px;font-weight:600;flex:1 1 260px}
.continuar .olho{flex-basis:100%}
.continuar-seta{font-size:22px;font-weight:700;color:var(--coral-texto)}
.continuar:hover{background:#D2E0F6}
.pacote-bloco{background:#fff;border-radius:24px;padding:24px clamp(16px,3vw,28px);display:flex;flex-direction:column;gap:18px}
.pacote-cab{display:flex;flex-wrap:wrap;gap:10px 24px;align-items:center;justify-content:space-between}
.pacote-cab h2{margin:0;font-family:var(--display);font-weight:700;font-size:24px;letter-spacing:-.4px}
.pacote-prog{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--texto-3);flex:0 1 340px}
.pacote-prog .barra{flex:1}
.parte{display:flex;flex-direction:column;gap:12px}
.parte-titulo{margin:4px 0 0;font-size:13px;letter-spacing:1.4px;text-transform:uppercase;font-weight:700;color:var(--coral-texto)}
.deck-grade{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.deck-card{display:flex;flex-direction:column;gap:8px;text-align:left;background:var(--fundo-2);border:1px solid transparent;border-radius:18px;padding:18px;cursor:pointer;color:var(--tinta);min-height:150px;transition:border-color .15s, transform .15s}
.deck-card:hover{border-color:var(--linha-2);transform:translateY(-2px)}
.deck-card h3{margin:0;font-family:var(--display);font-weight:600;font-size:17px;line-height:1.3}
.deck-meta{margin:0;font-size:14px;color:var(--texto-3)}
.deck-card-topo{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:12px;font-weight:700;letter-spacing:.4px;background:#fff;color:var(--coral-texto);padding:4px 10px;border-radius:999px}
.deck-card-acao{margin-top:auto;font-weight:700;color:var(--coral-texto);font-size:15px}
.deck-card.bloq{cursor:default;background:#fff;border:1px dashed var(--linha-2);color:var(--texto-3)}
.deck-card.bloq:hover{transform:none}
.deck-card.bloq h3{color:var(--texto-2)}
.deck-card.bloq .deck-card-topo{background:var(--fundo-2);color:var(--texto-3)}
.deck-card-link{margin-top:auto;font-weight:600;font-size:15px}
.barra{height:8px;background:#E3E8F0;border-radius:999px;overflow:hidden}
.barra span{display:block;height:100%;background:#4FB286;border-radius:999px}
.painel-rodape{display:flex;justify-content:center}
.deck-vista{max-width:880px;margin:0 auto;display:flex;flex-direction:column;gap:16px}
.voltar{align-self:flex-start;border:0;background:#fff;border-radius:999px;padding:10px 18px;font-weight:600;color:var(--tinta);cursor:pointer;min-height:44px;box-shadow:0 1px 3px rgba(30,42,68,.08)}
.voltar:hover{background:var(--azul-pastel)}
.voltar-fim{align-self:center;margin-top:12px}
@media (prefers-reduced-motion:reduce){.deck-card{transition:none}.deck-card:hover{transform:none}}

/* Resumo: caixa de jurisprudência */
.resumo-julgado{background:var(--lavanda-2);border:1px solid var(--lavanda);border-left:4px solid #8B7BD1;border-radius:14px;padding:14px 18px;display:flex;flex-direction:column;gap:6px}
.resumo-julgado p{margin:0;line-height:1.6;color:#2E2A4A}
.resumo-julgado .resumo-rotulo{color:#5B4BA8}
.resumo-julgado-tit{font-weight:700;color:#1E2A44 !important}
.resumo-julgado-ref{font-size:13.5px;color:#5A5878 !important;font-weight:600}
.resumo-lista li.resumo-subitem{margin-left:20px;list-style-type:circle}
