/* TeacherAlv Courses: Home, páginas de curso, About, Privacy e 404.
   Paleta e regras do brief do professor (24/09/2026). As aulas NÃO usam este arquivo:
   elas seguem o DESIGN.md e o _assets/lesson.css de cada curso. */

:root{
  --bg:#F7F8FC;
  --navy:#18213B;          /* identidade e títulos */
  --blue:#3B82F6;          /* ação: realces, foco, hover */
  --blue-ink:#2563EB;      /* ação com texto por cima ou texto azul: contraste AA */
  --blue-deep:#1D4ED8;
  --purple:#8B5CF6;        /* detalhes e destaques */
  --purple-ink:#6D28D9;
  --green:#22C55E;         /* progresso, disponível */
  --green-ink:#15803D;
  --card:#FFFFFF;
  --text:#18213B;
  --text-soft:#475069;
  --text-mute:#646D88;
  --line:#E3E6EF;
  --line-soft:#EEF0F6;
  --shadow:0 1px 2px rgba(24,33,59,.05), 0 6px 20px rgba(24,33,59,.06);
  --shadow-hover:0 2px 4px rgba(24,33,59,.06), 0 16px 36px rgba(24,33,59,.12);
  --r:16px;
  --r-sm:12px;
  --t:180ms ease-out;
  interpolate-size:allow-keywords;   /* deixa a sanfona abrir suave onde o navegador suporta */
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;}
body{margin:0; background:var(--bg); color:var(--text); font:16px/1.6 Inter, system-ui, sans-serif; -webkit-font-smoothing:antialiased;}
a{color:var(--blue-ink)}
img{max-width:100%}
.wrap{max-width:1120px; margin:0 auto; padding:0 20px;}
.icone{width:18px; height:18px; flex:0 0 auto; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
:focus{outline:none;}
:focus-visible{outline:none; box-shadow:0 0 0 3px var(--bg), 0 0 0 5px var(--blue) !important;}
.nivel:focus-visible, .bloco summary:focus-visible, .aula:focus-visible{box-shadow:0 0 0 3px var(--bg), 0 0 0 5px var(--blue), var(--shadow-hover) !important;}
.hidden, [hidden]{display:none !important;}
.skip-link{position:absolute; top:-48px; left:8px; z-index:999; padding:10px 16px; border-radius:10px; background:var(--navy); color:#fff; font-weight:700; text-decoration:none;}
.skip-link:focus{top:8px;}

/* ---------------------------------------------------------------- header -- */
.topo{position:sticky; top:0; z-index:5; background:rgba(247,248,252,.88); backdrop-filter:saturate(1.4) blur(12px); border-bottom:1px solid var(--line-soft);}
.topo__in{display:flex; align-items:center; justify-content:space-between; gap:16px; height:64px;}
.marca{display:inline-flex; align-items:center; gap:10px; color:var(--navy); text-decoration:none;}
.marca__logo{display:grid; place-items:center; width:34px; height:34px; border-radius:10px; background:var(--navy); color:#fff;}
.marca__logo .icone{width:18px; height:18px;}
.marca__txt{display:flex; flex-direction:column; font-size:16.5px; font-weight:800; line-height:1.05; letter-spacing:-.01em;}
.marca__txt small{color:var(--blue-ink); font-size:10.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;}
.menu{display:flex; gap:4px;}
.menu a{padding:8px 12px; border-radius:10px; color:var(--text-soft); font-size:15px; font-weight:600; text-decoration:none; transition:background var(--t), color var(--t);}
.menu a:hover{background:#fff; color:var(--navy);}
.menu a[aria-current="page"]{color:var(--navy); background:#fff; box-shadow:inset 0 0 0 1px var(--line);}

/* ------------------------------------------------------------ títulos -- */
.eyebrow{margin:0 0 12px; color:var(--purple-ink); font-size:12.5px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;}
h1{margin:0; color:var(--navy); font-size:clamp(34px,6vw,58px); line-height:1.05; font-weight:800; letter-spacing:-.03em;}
.lead{max-width:52ch; margin:16px 0 0; color:var(--text-soft); font-size:18.5px; line-height:1.55;}
.titulo-sec{margin:0 0 18px; color:var(--navy); font-size:clamp(22px,3vw,28px); font-weight:800; letter-spacing:-.02em;}

/* ----------------------------------------------------------------- botões -- */
.botao{display:inline-flex; align-self:flex-start; align-items:center; gap:8px; padding:13px 20px; border-radius:var(--r-sm); background:var(--blue-ink); color:#fff; font-size:15.5px; font-weight:700; text-decoration:none; box-shadow:0 6px 16px rgba(37,99,235,.22); transition:background var(--t), transform var(--t), box-shadow var(--t);}
.botao:hover{background:var(--blue-deep); transform:translateY(-1px); box-shadow:0 10px 22px rgba(37,99,235,.28);}
.botao:active{transform:scale(.98); box-shadow:0 3px 10px rgba(37,99,235,.22);}
.botao .icone{transition:transform var(--t);}
.nivel--destaque:hover .botao .icone, .botao:hover .icone{transform:translateX(4px);}
.botao--claro{background:#fff; color:var(--navy); box-shadow:var(--shadow); border:1px solid var(--line);}
.botao--claro:hover{background:#fff; color:var(--blue-ink); box-shadow:var(--shadow-hover);}

/* ------------------------------------------------------------------ hero -- */
.hero{position:relative; overflow:hidden; padding:56px 0 48px;
  background:
    radial-gradient(520px 320px at 88% 10%, rgba(139,92,246,.10), transparent 70%),
    radial-gradient(560px 360px at 70% 90%, rgba(59,130,246,.10), transparent 70%);}
.hero__in{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); align-items:center; gap:40px;}
.hero__txt .botao{margin-top:28px;}
.hero__arte{width:100%; max-width:420px; height:auto; justify-self:end; overflow:visible;}
.arte__degrau{fill:#fff; stroke:var(--line); stroke-width:1.5;}
.arte__trilha{fill:none; stroke:var(--purple); stroke-width:2.5; stroke-dasharray:2 8; stroke-linecap:round; opacity:.7;}
.arte__rotulo{font:800 17px Inter, sans-serif; text-anchor:middle;}
.arte__rotulo--ativo{fill:#fff;}

/* ----------------------------------------------------- selos e status -- */
.selo{display:inline-flex; align-items:center; padding:4px 11px; border-radius:999px; background:color-mix(in srgb, var(--c, var(--blue-ink)) 12%, #fff); color:var(--c, var(--blue-ink)); font-size:13px; font-weight:800; letter-spacing:.03em;}
.status{display:inline-flex; align-items:center; gap:6px; color:var(--text-mute); font-size:13px; font-weight:700; letter-spacing:.02em; text-transform:uppercase;}
.status .icone{width:15px; height:15px;}
.status--ok{color:var(--green-ink);}
.status--ok::before{content:""; width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 3px color-mix(in srgb, var(--green) 25%, transparent);}

/* ---------------------------------------------------- cards de nível -- */
.niveis-sec{padding:8px 20px 64px; scroll-margin-top:80px;}
.niveis{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px;}
.nivel{display:flex; flex-direction:column; overflow:hidden; border:1px solid var(--line); border-radius:var(--r); background:var(--card); box-shadow:var(--shadow); color:inherit; text-decoration:none;}
.nivel__corpo{display:flex; flex-direction:column; gap:10px; flex:1; padding:22px;}
.nivel__topo{display:flex; align-items:center; justify-content:space-between; gap:10px;}
.nivel__nome{color:var(--navy); font-size:21px; font-weight:800; letter-spacing:-.015em; line-height:1.2;}
.nivel__sobre{color:var(--text-soft); font-size:15px; line-height:1.5;}

/* disponível: ocupa a linha toda; arte abstrata com a sigla, uma ação só */
.nivel--destaque{grid-column:1 / -1; flex-direction:row; transition:box-shadow var(--t), transform var(--t), border-color var(--t);}
.nivel--destaque:hover{box-shadow:var(--shadow-hover); transform:translateY(-3px); border-color:color-mix(in srgb, var(--blue) 35%, var(--line));}
.nivel--destaque:active{transform:translateY(-1px);}
.nivel__arte{position:relative; display:grid; place-items:center; width:40%; min-height:280px; overflow:hidden;
  background:linear-gradient(135deg, var(--navy) 0%, color-mix(in srgb, var(--c, var(--blue-ink)) 55%, var(--navy)) 55%, var(--c, var(--blue-ink)) 100%);}
.nivel__arte::before, .nivel__arte::after{content:""; position:absolute; border-radius:50%; border:1px solid rgba(255,255,255,.14);}
.nivel__arte::before{width:340px; height:340px; right:-120px; top:-150px;}
.nivel__arte::after{width:220px; height:220px; left:-70px; bottom:-110px; border-color:rgba(139,92,246,.45);}
.nivel__sigla{position:relative; color:#fff; font-size:clamp(84px,11vw,132px); font-weight:800; letter-spacing:-.05em; line-height:1;}
.nivel--destaque .nivel__corpo{justify-content:center; gap:12px; padding:36px;}
.nivel--destaque .nivel__nome{font-size:clamp(28px,3.6vw,38px);}
.nivel--destaque .nivel__sobre{font-size:17px;}
.nivel__numeros{display:flex; flex-wrap:wrap; gap:8px; margin-top:2px;}
.nivel__numeros > span{display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:10px; background:var(--bg); color:var(--navy); font-size:14.5px; font-weight:700;}
.nivel__numeros .icone{width:16px; height:16px; color:var(--blue-ink);}
.nivel--destaque .botao{margin-top:8px;}
.nivel--destaque:hover .botao{background:var(--blue-deep);}

/* em breve: visível e bonito, mas claramente fechado */
.nivel--breve{position:relative; border-top:4px solid color-mix(in srgb, var(--c) 60%, #fff); opacity:.6; cursor:default; box-shadow:none;}
.status--breve{padding:4px 10px 4px 8px; border:1px solid var(--line); border-radius:999px; background:var(--bg); color:var(--text-soft); font-size:11.5px; letter-spacing:.08em;}
.nivel--breve .nivel__nome{color:var(--navy);}
.nivel--breve .nivel__sobre{color:var(--text-mute);}

/* ------------------------------------------------------- página de curso -- */
.trilha{display:flex; flex-wrap:wrap; align-items:center; gap:6px; padding:22px 0 0; color:var(--text-mute); font-size:14px;}
.trilha a{color:var(--text-soft); text-decoration:none; font-weight:600;}
.trilha a:hover{color:var(--blue-ink);}
.trilha .icone{width:14px; height:14px;}
.trilha [aria-current]{color:var(--navy); font-weight:700;}

.curso-hero{display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:24px; padding:26px 0 28px;}
.curso-hero__txt{display:flex; flex-direction:column; align-items:flex-start; gap:10px;}
.curso-hero .lead{margin:0;}
.numeros{display:flex; gap:12px; margin:0;}
.numeros div{min-width:112px; padding:14px 18px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card); box-shadow:var(--shadow);}
.numeros dt{color:var(--text-mute); font-size:12.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase;}
.numeros dd{margin:2px 0 0; color:var(--navy); font-size:30px; font-weight:800; line-height:1.1;}

.busca{position:relative; max-width:520px; margin:0 0 20px;}
.busca .icone{position:absolute; left:15px; top:50%; transform:translateY(-50%); color:var(--text-mute);}
.busca input{width:100%; padding:14px 14px 14px 44px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card); color:var(--text); font:inherit; font-size:16px; box-shadow:var(--shadow); outline:none; transition:border-color var(--t), box-shadow var(--t);}
.busca input::placeholder{color:var(--text-mute);}
.busca input:focus{border-color:var(--blue); box-shadow:0 0 0 4px rgba(59,130,246,.15);}

.partes{display:flex; flex-direction:column; gap:12px; padding-bottom:64px;}
.bloco{border:1px solid var(--line); border-radius:var(--r); background:var(--card); box-shadow:var(--shadow); transition:box-shadow var(--t); scroll-margin-top:84px;}
.bloco[open]{box-shadow:var(--shadow-hover);}
.bloco summary{display:flex; align-items:center; gap:14px; min-height:72px; padding:14px 20px; cursor:pointer; list-style:none; border-radius:var(--r); transition:background var(--t);}
.bloco summary::-webkit-details-marker{display:none;}
.bloco summary:hover{background:color-mix(in srgb, var(--blue) 4%, #fff);}
.parte__num{display:grid; place-items:center; width:40px; height:40px; flex:0 0 40px; border-radius:12px; background:var(--navy); color:#fff; font-size:16px; font-weight:800;}
.bloco[open] .parte__num{background:var(--blue-ink);}
.parte__txt{display:flex; flex-direction:column; flex:1; min-width:0;}
.parte__titulo{color:var(--navy); font-size:17.5px; font-weight:800;}
.parte__faixa{color:var(--text-mute); font-size:14px;}
.parte__qtd{padding:5px 11px; border-radius:999px; background:var(--bg); color:var(--text-soft); font-size:13.5px; font-weight:700; white-space:nowrap;}
.bloco summary > .icone{color:var(--text-mute); transition:transform var(--t);}
.bloco[open] summary > .icone{transform:rotate(180deg);}
.bloco[open] summary{border-bottom:1px solid var(--line-soft); border-radius:var(--r) var(--r) 0 0;}
/* abertura suave (Chrome/Edge atuais; nos outros abre direto, sem quebrar nada) */
.bloco::details-content{block-size:0; overflow:hidden; transition:block-size 220ms ease-out, content-visibility 220ms allow-discrete;}
.bloco[open]::details-content{block-size:auto;}
.sem-animacao .bloco::details-content, .sem-animacao .bloco summary > .icone{transition:none;}

.aulas{margin:0; padding:8px; list-style:none;}
.aula{display:flex; align-items:center; gap:14px; min-height:76px; padding:10px 12px; border-radius:12px; color:inherit; text-decoration:none; transition:background var(--t), transform var(--t);}
.aula:hover{background:color-mix(in srgb, var(--blue) 6%, #fff);}

.aula:active{background:color-mix(in srgb, var(--blue) 10%, #fff);}
.aula__foto{width:72px; height:54px; flex:0 0 72px; border-radius:10px; object-fit:cover; background:var(--line-soft);}
/* aula ainda sem imagem: quadro na cor do nível com o número da aula */
.aula__foto--sigla{display:grid; place-items:center; background:linear-gradient(135deg, var(--navy), var(--c, var(--blue-ink))); color:#fff; font-size:20px; font-weight:800; letter-spacing:-.02em;}
.aula__txt{display:flex; flex-direction:column; flex:1; min-width:0;}
.aula__num{color:var(--blue-ink); font-size:12.5px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;}
.aula__tipo{margin-left:4px; color:var(--text-mute); font-weight:700;}
.aula--review .aula__tipo{color:var(--purple-ink);}
.aula__titulo{color:var(--navy); font-size:17px; font-weight:800; line-height:1.3; letter-spacing:-.005em;}
.aula__foco{display:flex; flex-wrap:wrap; gap:6px; margin-top:6px;}
.aula__chip{padding:3px 8px; border-radius:6px; background:color-mix(in srgb, var(--blue) 12%, #fff); color:#1E40AF; font-size:.78rem; font-weight:700; letter-spacing:.05em; line-height:1.4; text-transform:uppercase;}
.aula--review .aula__chip{background:color-mix(in srgb, var(--purple) 12%, #fff); color:var(--purple-ink);}
.aula__acao{display:inline-flex; align-items:center; gap:6px; color:var(--text-mute); font-size:12.5px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; white-space:nowrap; transition:color var(--t);}
.aula__acao .icone{width:16px; height:16px; transition:transform var(--t);}
.aula:hover .aula__acao, .aula:focus-visible .aula__acao{color:var(--blue-ink);}
.aula:hover .aula__acao .icone, .aula:focus-visible .aula__acao .icone{transform:translateX(4px);}
.vazio{padding:28px 4px; color:var(--text-mute);}

/* ------------------------------------------------------- progresso real -- */
/* Só aparece quando o aluno já respondeu algo (progresso.js lê o localStorage das aulas). */
.progresso{display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:14px 24px; margin:0 0 20px; padding:18px 20px; border:1px solid var(--line); border-radius:var(--r); background:var(--card); box-shadow:var(--shadow);}
.progresso__txt h2{margin:0; color:var(--navy); font-size:17px; font-weight:800;}
.progresso__txt p{margin:2px 0 0; color:var(--text-soft); font-size:15px;}
.progresso__txt small{color:var(--text-mute); font-size:12.5px;}
.progresso__barra{grid-column:1 / -1; grid-row:2; height:8px; border-radius:99px; background:var(--line-soft); overflow:hidden;}
.progresso__barra span{display:block; height:100%; width:0; border-radius:99px; background:var(--green); transition:width 250ms ease-out;}
.progresso .botao{grid-column:2; grid-row:1; margin:0;}
.aula__estado{display:inline-flex; align-items:center; gap:4px; margin-left:8px; padding:1px 8px; border-radius:999px; background:color-mix(in srgb, var(--blue) 10%, #fff); color:var(--blue-ink); font-size:11.5px; letter-spacing:.04em;}
.aula__estado .icone{width:13px; height:13px; stroke-width:3;}
.aula__estado--feita{background:color-mix(in srgb, var(--green) 14%, #fff); color:var(--green-ink);}
.aula--feita .aula__foto{box-shadow:0 0 0 2px var(--green);}
.parte__prog{color:var(--text-mute); font-size:13px; font-weight:700; white-space:nowrap;}
.parte__prog--feita{color:var(--green-ink);}
.nivel__progresso{display:flex; align-items:center; gap:10px; color:var(--green-ink); font-size:14px; font-weight:700;}
.nivel__barra{flex:0 0 120px; height:6px; border-radius:99px; background:var(--line-soft); overflow:hidden;}
.nivel__barra span{display:block; height:100%; border-radius:99px; background:var(--green);}

/* ---------------------------------------------------------- XP e badges -- */
.progresso__xp{display:inline-flex; align-items:center; gap:8px; margin:8px 0 2px; color:var(--purple-ink); font-size:14px; font-weight:700; text-decoration:none;}
.progresso__xp .icone{width:16px; height:16px;}
.progresso__xp:hover span:first-of-type{text-decoration:underline;}
.progresso__badge{display:grid; place-items:center; width:26px; height:26px; border-radius:50%; background:color-mix(in srgb, var(--purple) 14%, #fff); color:var(--purple-ink);}
.progresso__badge .icone{width:14px; height:14px;}
.conq-faixa{display:flex; flex-wrap:wrap; align-items:center; gap:6px 12px; margin:0 0 20px; padding:12px 16px; border:1px solid color-mix(in srgb, var(--purple) 25%, var(--line)); border-radius:var(--r-sm); background:color-mix(in srgb, var(--purple) 6%, #fff); color:var(--navy); font-size:15px; text-decoration:none; transition:border-color var(--t), box-shadow var(--t);}
.conq-faixa:hover{border-color:var(--purple); box-shadow:var(--shadow);}
.conq-faixa > .icone{color:var(--purple-ink);}
.conq-faixa strong{font-weight:800;}
.conq-faixa > span:not(.conq-faixa__ver){color:var(--text-soft);}
.conq-faixa__ver{display:inline-flex; align-items:center; gap:6px; margin-left:auto; color:var(--purple-ink); font-weight:700;}
.conq-faixa__ver .icone{width:16px; height:16px; transition:transform var(--t);}
.conq-faixa:hover .conq-faixa__ver .icone{transform:translateX(4px);}

.conq-hero{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:28px; align-items:start; padding:26px 0 32px;}
.conq-hero h1{font-size:clamp(40px,7vw,64px);}
.conq-regra{margin:14px 0 0; color:var(--text-mute); font-size:14px;}
.conq-regra small{display:block; margin-top:2px;}
.conq-cursos{display:flex; flex-direction:column; gap:10px; margin:0; padding:0; list-style:none;}
.conq-cursos a{display:flex; flex-direction:column; gap:4px; padding:14px 16px; border:1px solid var(--line); border-radius:var(--r-sm); background:var(--card); box-shadow:var(--shadow); color:var(--navy); text-decoration:none; transition:border-color var(--t);}
.conq-cursos a:hover{border-color:var(--blue);}
.conq-cursos strong{font-weight:800;}
.conq-cursos span{color:var(--text-soft); font-size:14px;}
.conq-barra{display:block; height:6px; margin-top:4px; border-radius:99px; background:var(--line-soft); overflow:hidden;}
.conq-barra span{display:block; height:100%; border-radius:99px; background:var(--green);}
.conq-badges-sec{padding-bottom:24px;}
.titulo-sec small{color:var(--text-mute); font-size:15px; font-weight:600;}
.conq-grade{display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px; margin:0; padding:0; list-style:none;}
.conq-badge{display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid var(--line); border-radius:var(--r); background:var(--card);}
.conq-badge__icone{display:grid; place-items:center; width:48px; height:48px; flex:0 0 48px; border-radius:50%; background:var(--line-soft); color:var(--text-mute);}
.conq-badge__icone .icone{width:24px; height:24px;}
.conq-badge__txt{display:flex; flex-direction:column; min-width:0;}
.conq-badge strong{color:var(--navy); font-size:16px; font-weight:800;}
.conq-badge__desc{color:var(--text-soft); font-size:14px; line-height:1.4;}
.conq-badge__estado{display:inline-flex; align-items:center; gap:5px; margin-top:4px; color:var(--text-mute); font-size:12.5px; font-weight:700;}
.conq-badge__estado .icone{width:13px; height:13px;}
.conq-badge.is-ganha{border-color:color-mix(in srgb, var(--purple) 30%, var(--line)); box-shadow:var(--shadow);}
.conq-badge.is-ganha .conq-badge__icone{background:linear-gradient(135deg, var(--purple), var(--blue-ink)); color:#fff;}
.conq-badge.is-ganha .conq-badge__estado{color:var(--green-ink);}
.conq-badge:not(.is-ganha){opacity:.75;}
.conq-vazio{margin:0 0 56px; padding:16px 18px; border:1px dashed var(--line); border-radius:var(--r-sm); color:var(--text-soft);}

/* ------------------------------------------------------- About/Privacy -- */
.texto{max-width:68ch; padding:12px 0 64px;}
.texto h1{margin:24px 0 12px; font-size:clamp(32px,5vw,44px);}
.texto h2{margin:36px 0 8px; color:var(--navy); font-size:21px; font-weight:800;}
.texto p, .texto li{color:var(--text-soft);}
.contatos{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin:16px 0 0; padding:0; list-style:none;}
.contatos a{display:flex; align-items:center; gap:10px; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:var(--card); box-shadow:var(--shadow); color:var(--navy); font-weight:700; text-decoration:none; transition:border-color var(--t), transform var(--t);}
.contatos a:hover{border-color:var(--blue); transform:translateY(-1px);}
.contatos small{display:block; color:var(--text-mute); font-weight:500;}
.creditos{padding-left:18px; font-size:14px;}
.creditos li{margin:4px 0; color:var(--text-soft);}

/* ---------------------------------------------------------------- rodapé -- */
.rodape{border-top:1px solid var(--line); background:var(--card);}
.rodape__in{display:flex; flex-wrap:wrap; align-items:flex-start; justify-content:space-between; gap:16px 32px; padding:32px 20px 12px;}
.rodape__marca{display:flex; flex-direction:column; gap:2px;}
.rodape__marca strong{color:var(--navy); font-size:17px; font-weight:800;}
.rodape__marca span{color:var(--text-mute); font-size:14.5px;}
.rodape nav{display:flex; flex-wrap:wrap; gap:4px 6px; max-width:560px;}
.rodape nav a{padding:6px 8px; border-radius:8px; color:var(--text-soft); font-size:14.5px; font-weight:600; text-decoration:none;}
.rodape nav a:hover{color:var(--blue-ink); background:var(--bg);}
.rodape__fim{padding:8px 20px 28px;}
.rodape__fim small{color:var(--text-mute); font-size:13px;}

/* -------------------------------------------------------------- telas -- */
@media (max-width:980px){
  .niveis{grid-template-columns:repeat(2,minmax(0,1fr));}
  .hero__in{grid-template-columns:1fr; gap:28px;}
  .hero__arte{justify-self:start; max-width:360px;}
}
@media (max-width:720px){
  .wrap{padding:0 16px;}
  .topo__in{height:60px;}
  .marca__logo{width:32px; height:32px;}
  .menu a{padding:11px 9px; font-size:14.5px;}
  .hero{padding:36px 0 32px;}
  .lead{font-size:17px;}
  .hero__txt .botao{margin-top:22px;}
  .hero__arte{max-width:230px; margin-top:-4px;}
  .niveis-sec{padding:0 16px 48px;}
  .niveis{grid-template-columns:1fr; gap:12px;}
  .nivel--destaque{flex-direction:column;}
  .nivel__arte{width:100%; min-height:150px;}
  .nivel__sigla{font-size:88px;}
  .nivel--destaque .nivel__corpo{padding:22px;}
  .nivel--destaque .botao{align-self:stretch; justify-content:center; padding:15px 18px;}
  .curso-hero{align-items:flex-start;}
  .numeros div{min-width:0; flex:1;}
  .bloco summary{padding:12px 14px; gap:12px;}
  .aulas{padding:6px;}
  .aula{gap:12px; padding:10px 8px;}
  .aula__foto{width:60px; height:46px; flex-basis:60px;}
  .aula__acao-txt{display:none;}
  .progresso{grid-template-columns:1fr;}
  .progresso .botao{grid-column:1; grid-row:3; align-self:stretch; justify-content:center;}
  .parte__prog{display:none;}
  .conq-hero{grid-template-columns:1fr; gap:20px;}
  .conq-faixa__ver{margin-left:0;}
  .aula__titulo{font-size:16.5px;}
  .rodape__in{flex-direction:column;}
}
@media (max-width:380px){
  .marca__txt{font-size:15px;}
  .menu a{padding:11px 6px;}
}
@media (prefers-reduced-motion:reduce){
  *{transition:none !important;}
}
