/* Página pública: conteúdo antes do cadastro, com rolagem contínua em toda tela. */
#tela-acesso.ativa {
  --hc-tinta: #12191A;
  --hc-primaria: #0E3A3C;
  --hc-primaria-2: #14494C;
  --hc-acento: #2E7A71;
  --hc-foco: #3A9A8E;
  --hc-suave: #627371;
  --hc-borda: #D9E2E0;
  --hc-borda-clara: #BFD9D6;
  --hc-fundo: #EDF3F2;
  --hc-osso: #F5F2EC;
  display:flex; flex-direction:column; height:100dvh; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; background:#fff; color:var(--hc-tinta); }
#tela-acesso > * { flex-shrink:0; }
#home-videos, #home-biblioteca, #home-metodo { scroll-margin-top:96px; }

/* Topo fixo: a conversão (criar acesso) fica sempre à mão, sem roubar espaço de rolamento. */
.home-topo {
  position:sticky; top:0; z-index:50; min-height:72px; padding:12px clamp(20px,5vw,80px);
  display:flex; align-items:center; justify-content:space-between; gap:24px;
  background:rgba(255,255,255,.92); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hc-borda); }
.home-topo > img { width:186px; height:auto; }
.home-nav-links { display:flex; align-items:center; gap:6px; }
.home-nav-links button, .home-link { border:0; background:transparent; color:var(--hc-primaria); font:inherit; font-size:14px; cursor:pointer; min-height:44px; padding:10px 12px; }
.home-nav-links .home-botao, .home-botao { display:inline-flex; align-items:center; justify-content:center; gap:18px; min-height:48px; padding:14px 20px; border:1px solid var(--hc-primaria); border-radius:6px; background:var(--hc-primaria); color:#fff; text-decoration:none; font:600 14px/1.4 var(--font-body); cursor:pointer; transition:background .15s ease, box-shadow .15s ease; }
.home-botao:hover { background:var(--hc-primaria-2); box-shadow:0 8px 20px rgba(18,25,26,.16); }
.home-link { text-decoration:underline; text-underline-offset:5px; }

.home-conteudo { width:100%; max-width:1440px; padding:0 clamp(20px,5vw,80px); margin:0 auto; }
.home-hero { display:grid; grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr); align-items:center; gap:clamp(28px,5vw,72px); padding:56px 0 48px; background:linear-gradient(180deg, rgba(245,242,236,.65), rgba(255,255,255,0)); }
.home-hero .acesso-hero { display:block; min-height:0; max-height:none; max-width:none; text-align:left; }
.home-sobretitulo { margin:0 0 18px; font-size:12px; font-weight:600; letter-spacing:1.2px; text-transform:uppercase; color:var(--hc-acento); line-height:1.5; }
.home-hero .acesso-hero h1 { font:500 clamp(34px,3.5vw,54px)/1.08 var(--font-body); letter-spacing:-1.6px; max-width:16ch; color:var(--hc-primaria); }
.home-intro { margin:22px 0 0; color:var(--hc-suave); font-size:17px; line-height:1.7; max-width:46ch; }
.home-acoes { display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; align-items:center; }
.home-acesso-nota { margin-top:18px; color:var(--hc-suave); font-size:12px; line-height:1.6; }
.home-exame { margin:0; border:1px solid var(--hc-borda); border-radius:10px; overflow:hidden; background:#fff; box-shadow:0 16px 34px rgba(18,25,26,.08); }
.home-exame-topo { display:flex; justify-content:space-between; gap:14px; padding:14px 18px; font-size:12px; color:var(--hc-suave); border-bottom:1px solid var(--hc-borda); }
.home-exame-palco { background:var(--hc-tinta); }
.home-exame-palco video { display:block; width:100%; height:auto; aspect-ratio:1.25; object-fit:contain; }
.home-exame-palco > button { display:block; min-height:48px; width:100%; padding:12px 18px; border:0; border-top:1px solid var(--hc-borda); background:#fff; color:var(--hc-primaria); font:600 13px/1.5 var(--font-body); cursor:pointer; }
.home-exame-palco > button span { margin-right:8px; }
.home-exame figcaption { padding:18px 20px; display:flex; flex-direction:column; gap:10px; font-size:12px; line-height:1.6; color:var(--hc-suave); }
.home-exame figcaption strong { color:var(--hc-primaria); font-size:15px; font-weight:600; }
.home-exame-acoes { display:flex; flex-wrap:wrap; gap:10px; margin-top:4px; }
.home-exame-acoes button { min-height:44px; padding:10px 14px; border:1px solid var(--hc-borda); border-radius:4px; background:var(--hc-fundo); color:var(--hc-primaria); font:600 13px/1.5 var(--font-body); cursor:pointer; text-align:left; }
.home-exame-acoes a { display:inline-flex; align-items:center; min-height:44px; color:var(--hc-primaria); font-weight:600; font-size:13px; text-underline-offset:3px; }

.home-fatos { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); border-top:1px solid var(--hc-borda); border-bottom:1px solid var(--hc-borda); padding:26px 0; gap:28px; }
.home-fatos p { display:flex; flex-direction:column; align-items:flex-start; gap:6px; }
.home-fatos p + p { border-left:1px solid var(--hc-borda-clara); padding-left:28px; }
.home-fatos strong { font-size:38px; font-weight:500; color:var(--hc-primaria); letter-spacing:-1px; line-height:1; }
.home-fatos span { font-size:12px; line-height:1.5; color:var(--hc-suave); max-width:22ch; }
.home-nota-fatos { text-align:center; max-width:58ch; margin:18px auto 0; }

.home-biblioteca { padding:64px 0 54px; }
.home-cabecalho-secao { display:grid; grid-template-columns:1.2fr 1fr; gap:60px; align-items:end; margin-bottom:32px; }
.home-cabecalho-secao h2 { font:500 clamp(27px,2.7vw,36px)/1.18 var(--font-body); letter-spacing:-.8px; color:var(--hc-primaria); max-width:24ch; }
.home-cabecalho-secao > p { color:var(--hc-suave); font-size:15px; line-height:1.75; }
.home-referencias { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.home-referencias article { min-width:0; border:1px solid var(--hc-borda); border-radius:6px; overflow:hidden; display:flex; flex-direction:column; background:#fff; }
.home-referencia-imagem { height:210px; background:var(--hc-tinta); padding:12px; }
.home-referencia-imagem img { width:100%; height:100%; display:block; object-fit:contain; }
.home-referencias article > div:last-child { padding:22px; flex:1; display:flex; flex-direction:column; }
.home-modalidade { font-size:11px; color:var(--hc-suave); }
.home-referencias h3 { margin:8px 0 12px; font-size:20px; line-height:1.3; font-weight:600; color:var(--hc-primaria); }
.home-referencias p { font-size:14px; line-height:1.65; color:var(--hc-suave); margin-bottom:18px; }
.home-referencias a, .home-referencias button { margin-top:auto; padding:8px 0; display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:44px; background:none; border:0; color:var(--hc-primaria); text-decoration:none; font:600 13px/1.5 var(--font-body); cursor:pointer; text-align:left; }
.home-fontes-nota { font-size:11px; line-height:1.7; color:var(--hc-suave); margin-top:20px; }
.home-fontes { color:var(--hc-suave); font-size:12px; line-height:1.7; margin-top:12px; }
.home-fontes summary { min-height:44px; padding:12px 0; cursor:pointer; color:var(--hc-primaria); }
.home-fontes ul { padding-left:18px; }
/* 19/09/2026: os links de credito mediam 15px de altura de toque, os menores
   de toda a interface. Sao links INLINE dentro da frase de atribuicao exigida
   pela licenca ("titulo. autor. licenca."), entao nao podem virar bloco de
   44px sem desmontar o texto: a WCAG 2.5.8 isenta justamente o alvo preso na
   entrelinha de um texto que nao e alvo. O que da para fazer sem quebrar nada
   e casar a area de toque com a linha: entrelinha de 2.1 deixa a caixa em
   ~25px e o padding de 5px leva o link aos mesmos ~25px. Sobe de 15 para 25,
   sem sobrepor a linha vizinha e sem mexer no texto corrido. */
.home-fontes li { line-height:2.1; }
.home-fontes a { color:var(--hc-primaria); text-underline-offset:3px; overflow-wrap:anywhere; padding-block:5px; }

.home-metodo { border-top:1px solid var(--hc-borda); padding:64px 0; }
.home-metodo-steps { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:10px; }
.home-metodo-steps li { border:1px solid var(--hc-borda); border-radius:8px; background:#fff; padding:22px; display:flex; flex-direction:column; gap:12px; }
.home-passo-num { font:600 12px/1.4 var(--font-body); letter-spacing:.12em; color:var(--hc-acento); }
.home-metodo-steps h3 { font-size:19px; line-height:1.4; font-weight:600; color:var(--hc-primaria); }
.home-metodo-steps p { font-size:14px; line-height:1.65; color:var(--hc-suave); }

/* Faixa final de conversão: contexto em teal escuro + cartão de cadastro em claro. */
#tela-acesso .acesso-wrap { width:100%; max-width:none; flex:none; min-height:auto; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,520px); grid-template-rows:auto auto; align-items:start; gap:clamp(28px,5vw,80px) 70px; padding:clamp(48px,7vw,84px) max(20px,calc((100vw - 1280px)/2)); background:var(--hc-primaria); color:#fff; }
.acesso-contexto { max-width:520px; padding:6px 0; }
.acesso-contexto .home-sobretitulo { color:var(--hc-borda-clara); }
.acesso-contexto h2 { margin:0; font:500 clamp(28px,2.8vw,38px)/1.18 var(--font-body); letter-spacing:-.8px; color:#fff; max-width:22ch; }
.acesso-contexto > p:not(.home-sobretitulo):not(.home-fontes-nota) { margin-top:20px; color:var(--hc-osso); font-size:15px; line-height:1.75; }
.acesso-contexto .atlas-acesso-link { display:inline-flex; align-items:center; margin-top:22px; padding:0; background:transparent; border:0; border-radius:0; color:var(--hc-osso); font-size:14px; font-weight:600; min-height:44px; line-height:1.6; text-decoration:underline; text-underline-offset:4px; text-decoration-color:rgba(245,242,236,.55); }
.acesso-contexto .atlas-acesso-link:hover { color:#fff; text-decoration-color:#fff; }
.acesso-contexto .home-fontes-nota { color:var(--hc-borda-clara); }
#tela-acesso .acesso-cartao { width:100%; min-height:auto; max-height:none; align-self:start; padding:30px; border-radius:12px; }
/* 29/09/2026: #cadastro (QR das aulas) e "Criar acesso" rolam até o cartão; sem a folga, o título dele ficava sob o topo fixo de 72 px. */
#tela-acesso .acesso-cartao { scroll-margin-top:88px; }
#tela-acesso .acesso-campos { overflow:visible; min-height:auto; flex:none; }
#tela-acesso .acesso-campos--rolavel { mask-image:none; -webkit-mask-image:none; }
#tela-acesso .acesso-painel, #tela-acesso .acesso-painel form { min-height:auto; flex:none; }
#tela-acesso .acesso-rodape { grid-column:1/-1; width:100%; max-width:none; margin:0; border-top:1px solid var(--hc-primaria-2); padding-top:26px; font-size:12px; line-height:1.7; color:var(--hc-osso); }
#tela-acesso .acesso-rodape p:first-child { max-width:82ch; }
#tela-acesso .acesso-rodape-dados { color:var(--hc-borda-clara); }
#tela-acesso :is(button,a,input,select):focus-visible { outline:3px solid var(--hc-foco); outline-offset:3px; }

/* Assista antes de entrar: vídeos explicativos. */
.home-videos { padding:60px 0 52px; border-bottom:1px solid var(--hc-borda); }
.home-video-filtros { display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:20px; }
.home-video-filtros label { display:grid; gap:9px; font-size:14px; font-weight:600; }
.home-video-filtros input, .home-video-filtros select { width:100%; min-width:0; min-height:48px; padding:12px 14px; border:1px solid var(--hc-borda); border-radius:4px; background:#fff; font:inherit; font-size:16px; font-weight:400; color:var(--hc-primaria); }
.home-video-filtros input:focus, .home-video-filtros select:focus { border-color:var(--hc-foco); outline:none; }
.home-video-grade { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; margin-top:22px; }
.home-video-grade article { min-width:0; display:flex; flex-direction:column; border:1px solid var(--hc-borda); border-radius:6px; overflow:hidden; background:#fff; transition:transform .15s ease, box-shadow .15s ease; }
.home-video-grade article:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(18,25,26,.07); }
.home-video-grade article[hidden] { display:none; }
.home-video-grade article>img { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; display:block; background:var(--hc-fundo); border-bottom:1px solid var(--hc-borda); }
.home-video-grade article>div { padding:18px 20px; display:flex; flex-direction:column; flex:1; }
.home-video-grade h3 { font-size:19px; line-height:1.3; margin:10px 0; color:var(--hc-primaria); }
.home-video-grade p { font-size:13px; line-height:1.5; margin:0 0 12px; }
.home-video-grade button { display:flex; justify-content:space-between; gap:12px; margin-top:auto; min-height:46px; padding:11px 0; border:0; background:transparent; color:var(--hc-primaria); font:inherit; text-align:left; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
#home-video-mais { min-height:48px; margin-top:20px; padding:12px 18px; border:1px solid var(--hc-borda); border-radius:4px; display:flex; justify-content:center; }
#home-video-mais[hidden] { display:none; }

@media(max-width:1000px) {
  .home-topo { padding:12px 24px; }
  .home-nav-links { gap:2px; }
  .home-conteudo { padding:0 28px; }
  .home-hero { gap:30px; padding:48px 0 44px; }
  .home-hero .acesso-hero h1 { font-size:38px; }
  .home-intro { font-size:15px; }
  .home-cabecalho-secao { gap:30px; }
  .home-referencias { gap:16px; }
  .home-referencias article > div:last-child { padding:18px; }
  .home-video-grade { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #tela-acesso .acesso-wrap { gap:34px; }
}
@media(max-width:900px) { .home-metodo-steps { grid-template-columns:minmax(0,1fr); gap:16px; } }
@media(max-width:700px) {
  .home-topo { position:sticky; min-height:64px; padding:10px 18px; gap:10px; }
  .home-topo > img { width:132px; }
  .home-nav-links > [data-home-scroll], .home-nav-links > .home-botao { display:none; }
  .home-nav-links button { padding:10px; }
  .home-nav-links .home-botao { min-height:44px; padding:10px 14px; }
  .home-conteudo { padding:0 20px; }
  .home-hero { grid-template-columns:minmax(0,1fr); gap:32px; padding:36px 0; }
  .home-sobretitulo { font-size:10px; margin-bottom:16px; letter-spacing:.8px; }
  .home-hero .acesso-hero h1 { font-size:36px; letter-spacing:-1.2px; max-width:17ch; }
  .home-intro { margin-top:20px; font-size:15px; }
  .home-acoes { margin-top:24px; gap:8px; }
  .home-acoes .home-botao { width:100%; padding:14px 12px; }
  .home-acoes .home-link { padding-left:0; }
  .home-exame-palco video { aspect-ratio:1.35; }
  .home-fatos { grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px 24px; }
  .home-fatos p + p { padding-left:0; }
  .home-fatos p:nth-child(3) { border-left:0; }
  .home-fatos p:nth-child(even) { border-left:1px solid var(--hc-borda-clara); padding-left:22px; }
  .home-fatos strong { font-size:29px; }
  .home-nota-fatos { text-align:left; }
  .home-biblioteca { padding:44px 0 40px; }
  .home-cabecalho-secao { grid-template-columns:minmax(0,1fr); gap:20px; margin-bottom:26px; }
  .home-referencias { grid-template-columns:minmax(0,1fr); gap:20px; }
  .home-referencia-imagem { height:220px; }
  .home-metodo { padding:40px 0; }
  .home-videos { padding:40px 0; }
  .home-video-filtros, .home-video-grade { grid-template-columns:minmax(0,1fr); }
  .home-video-grade { gap:20px; }
  .home-video-grade article>div { padding:18px; }
  #tela-acesso .acesso-wrap { padding:40px 20px; grid-template-columns:minmax(0,1fr); gap:26px; }
  #tela-acesso .acesso-cartao { padding:24px 18px; }
  .acesso-contexto { padding:0; }
  #tela-acesso .acesso-rodape { font-size:11px; }
}

/* Edição acadêmica: identidade editorial, com texto separado da arte. */
.home-hero-academico { --font-display:"IBM Plex Serif",Georgia,serif; gap:40px; padding:46px 0 40px; background:none; }
.home-hero-academico .acesso-hero h1:focus { outline:none; }
.home-hero-academico .acesso-hero h1 { font:600 clamp(34px,3.4vw,51px)/1.14 var(--font-display); letter-spacing:-1.6px; max-width:none; }
.home-hero-academico h1 em { font-style:normal; color:var(--hc-acento); }
.home-hero-academico .home-intro { font-size:16px; line-height:1.7; max-width:45ch; }
.home-hero-academico .home-sobretitulo { color:var(--hc-primaria); }
.home-hero-academico .home-acoes { gap:8px; margin-top:26px; }
.home-hero-academico .home-acoes .home-link { padding-left:0; }
.home-hero-arte { margin:0; min-width:0; align-self:stretch; display:flex; flex-direction:column; justify-content:center; }
.home-hero-arte img { display:block; width:100%; height:460px; object-fit:cover; object-position:66% center; border-radius:4px; background:var(--hc-osso); }
.home-hero-arte figcaption { color:var(--hc-suave); font-size:10px; line-height:1.6; margin-top:9px; }
.home-hero-trilhas { display:flex; flex-wrap:wrap; gap:14px 24px; margin-top:26px; padding-top:18px; border-top:1px solid var(--hc-borda); color:var(--hc-primaria); font-size:12px; }
.home-nav-biblioteca { display:inline-flex; align-items:center; text-decoration:none; }
.home-ciencia { --font-display:"IBM Plex Serif",Georgia,serif; padding:62px 0 34px; }
.home-ciencia-trilhas { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--hc-borda); }
.home-ciencia-trilhas > a { padding:24px 28px 24px 0; color:var(--hc-primaria); text-decoration:none; display:flex; flex-direction:column; }
.home-ciencia-trilhas > a + a { border-left:1px solid var(--hc-borda); padding-left:28px; }
.home-ciencia-trilhas > a > span { font-size:12px; color:var(--hc-suave); }
.home-ciencia-trilhas h3 { font:600 22px/1.3 var(--font-display); margin:12px 0; }
.home-ciencia-trilhas p { font-size:14px; line-height:1.65; color:var(--hc-suave); margin-bottom:18px; }
.home-ciencia-trilhas strong { margin-top:auto; font-size:13px; line-height:1.5; display:flex; justify-content:space-between; gap:12px; }
.home-ciencia-trilhas > a:hover h3 { text-decoration:underline; text-underline-offset:5px; }
.home-ciencia-todas { display:inline-flex; align-items:center; gap:16px; padding-left:0; margin-top:12px; }
.home-exame-contexto { --font-display:"IBM Plex Serif",Georgia,serif; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:70px; padding:48px 0; border-top:1px solid var(--hc-borda); }
.home-exame-contexto h2 { font:600 clamp(28px,3vw,40px)/1.2 var(--font-display); color:var(--hc-primaria); }
.home-exame-contexto > div > p:not(.home-sobretitulo) { font-size:16px; line-height:1.75; color:var(--hc-suave); margin:20px 0; max-width:46ch; }
.home-exame-contexto .home-link { display:inline-flex; align-items:center; padding-left:0; }
.home-exame-contexto .home-exame-palco video { aspect-ratio:1.8; max-height:300px; }
@media(max-width:1000px) { .home-hero-academico { gap:26px; }.home-hero-arte img { height:420px; }.home-exame-contexto { gap:30px; } }
@media(max-width:700px) {
  .home-nav-biblioteca { padding:10px 6px; font-size:12px; max-width:95px; line-height:1.25; }
  .home-topo { gap:6px; }
  .home-topo > img { width:116px; }
  .home-hero-academico { gap:24px; padding:30px 0; }
  .home-hero-academico .acesso-hero h1 { font-size:clamp(32px,8.6vw,43px); max-width:19ch; letter-spacing:-1.2px; }
  .home-hero-academico .home-intro { font-size:15px; }
  .home-hero-trilhas { margin-top:16px; gap:12px; font-size:11px; }
  .home-hero-arte img { height:auto; aspect-ratio:1.65; object-fit:contain; }
  .home-hero-arte figcaption { font-size:10px; }
  .home-ciencia { padding:42px 0 16px; }
  .home-ciencia-trilhas { grid-template-columns:minmax(0,1fr); }
  .home-ciencia-trilhas > a,.home-ciencia-trilhas > a + a { padding:22px 0; border-left:0; border-bottom:1px solid var(--hc-borda); }
  .home-ciencia-trilhas h3 { font-size:21px; }
  .home-exame-contexto { grid-template-columns:minmax(0,1fr); gap:24px; padding:36px 0; }
}

/* 29/09/2026 (responsividade das páginas públicas, medida em 13 tamanhos):
   1) Topo do celular: "Biblioteca científica" quebrava em duas linhas ao lado
      da logomarca (max-width:95px). Fica numa linha só; abaixo de 400 px a
      logomarca e os respiros encolhem para caber em 320 sem rolagem lateral.
   2) Filtro de vídeos entre 701 e 1000 px: a coluna "Área" cortava
      "Todas as áreas disponíveis" (191 px de texto em 181 px úteis).
   3) Título do herói sem palavra órfã ("vê." sozinho em 768).
   4) Seta colada ao texto em "Abrir o módulo demonstrativo".
   Nada aqui toca o cartão de cadastro nem o formulário. */
.home-hero-academico .acesso-hero h1 { text-wrap:balance; }
.home-exame-contexto .home-link { gap:12px; }
@media(max-width:1000px) { .home-video-filtros { grid-template-columns:minmax(0,3fr) minmax(0,2fr); } }
@media(max-width:700px) {
  .home-video-filtros { grid-template-columns:minmax(0,1fr); }
  .home-nav-links { flex-shrink:0; }
  .home-nav-biblioteca { max-width:none; white-space:nowrap; padding:10px 8px; font-size:13px; line-height:1.4; }
}
/* 29/09/2026: faixa de cadastro entre 701 e 1000 px. As duas colunas deixavam o texto
   "Leve a biblioteca para o consultório." com 174 px em 768 e 226 px em 820, ao lado do
   cartão de 520 px: título em quatro linhas e parágrafo de três palavras por linha. Nessa
   faixa o texto sobe para cima do cartão e os dois dividem a mesma coluna central de até
   560 px, com a borda esquerda alinhada; o rodapé segue na largura inteira. Abaixo de
   701 px (coluna única) e acima de 1000 px (duas colunas com folga) nada muda. */
@media(min-width:701px) and (max-width:1000px) {
  #tela-acesso .acesso-wrap { grid-template-columns:minmax(0,1fr); justify-items:center; }
  #tela-acesso .acesso-contexto, #tela-acesso .acesso-cartao { width:100%; max-width:560px; }
}
@media(max-width:400px) {
  .home-topo { padding:10px 12px; gap:4px; }
  .home-topo > img { width:100px; min-width:0; flex-shrink:1; }
  .home-nav-links { gap:0; }
  .home-nav-links button { padding:10px 8px; }
  .home-nav-biblioteca { padding:10px 6px; font-size:12.5px; }
}
