/* Perfil dos professores: campos acadêmicos cadastrados no CMS. */
body .perfil-professor, body .perfil-professor *, body .maestros-lista, body .maestros-lista * { box-sizing: border-box; }
body .perfil-professor, body .maestros-lista {
  --professor-surface: #1e151b;
  --professor-ink: #fff9fc;
  --professor-muted: #d1bec7;
  --professor-border: #ffffff26;
  --professor-soft: #ffffff0a;
  --professor-accent: #f0b2c4;
}
body.light .perfil-professor, body.light .maestros-lista {
  --professor-surface: #ffffff;
  --professor-ink: #24141c;
  --professor-muted: #716a6b;
  --professor-border: #e6d7de;
  --professor-soft: #fbf2f6;
  --professor-accent: #710e20;
}
body .perfil-professor .detail__cabecalho__container,
body .perfil-professor .perfil-professor__trajetoria { width: min(1240px, 100%); margin-left: auto; margin-right: auto; padding-left: 24px; padding-right: 24px; }
body .perfil-professor .detail__cabecalho__container__image { align-self: flex-start; }
body .perfil-professor .detail__cabecalho__container__image img { display: block; height: auto; }
body .perfil-professor .detail__cabecalho__container__txts__titulo { overflow-wrap: anywhere; }
body .perfil-professor .detail__cabecalho__container__txts__description { font-size: 20px; line-height: 1.6; }
body .perfil-professor .perfil-professor__cargo { color: var(--professor-ink); font-size: 21px; line-height: 1.5; margin: 0; }
body .perfil-professor .perfil-professor__areas { margin: 12px 0 16px; }
body .perfil-professor .perfil-professor__areas h2 { color: var(--professor-muted); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 12px; }
body .perfil-professor .perfil-professor__areas ul { display: flex; flex-wrap: wrap; gap: 8px; padding: 0; margin: 0; list-style: none; }
body .perfil-professor .perfil-professor__areas li { color: var(--professor-accent); background: var(--professor-soft); border: 1px solid var(--professor-border); border-radius: 999px; padding: 8px 14px; font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }
body .perfil-professor .perfil-professor__trajetoria { padding-top: 20px; padding-bottom: 60px; }
body .perfil-professor .perfil-professor__navigation { display: flex; flex-wrap: wrap; gap: 10px; padding: 0 0 28px; }
body .perfil-professor .perfil-professor__navigation a { color: var(--professor-accent); border: 1px solid var(--professor-border); border-radius: 8px; padding: 12px 16px; font-size: 13px; font-weight: 600; text-decoration: none; }
body .perfil-professor .perfil-professor__navigation a:hover { background: var(--professor-soft); }
body .perfil-professor .perfil-professor__secao { background: var(--professor-surface); border: 1px solid var(--professor-border); border-radius: 16px; padding: 36px; margin-bottom: 24px; scroll-margin-top: 120px; }
body .perfil-professor .perfil-professor__secao > h2 { font-family: 'Scene Pro', sans-serif; font-weight: 700; font-size: 30px; color: var(--professor-ink); line-height: 1.25; margin: 0 0 24px; }
body .perfil-professor .perfil-professor__conteudo { font-family: 'Nunito', sans-serif; font-size: 18px; line-height: 1.8; color: var(--professor-ink); overflow-wrap: anywhere; }
body .perfil-professor .perfil-professor__conteudo :is(p, ul, ol, blockquote, table) { margin: 0 0 18px; }
body .perfil-professor .perfil-professor__conteudo > :last-child { margin-bottom: 0; }
body .perfil-professor .perfil-professor__conteudo :is(h2, h3, h4, h5, h6) { color: var(--professor-ink); font-family: 'Scene Pro', sans-serif; font-size: 23px; font-weight: 700; line-height: 1.4; margin: 24px 0 12px; }
body .perfil-professor .perfil-professor__conteudo :is(ul, ol) { padding-left: 24px; }
body .perfil-professor .perfil-professor__conteudo li { margin-bottom: 8px; }
body .perfil-professor .perfil-professor__conteudo a { color: var(--professor-accent); text-decoration: underline; text-underline-offset: 3px; }
body .perfil-professor .perfil-professor__conteudo img { max-width: 100%; height: auto; border-radius: 8px; }
body .perfil-professor .perfil-professor__conteudo :is(iframe, video) { max-width: 100%; }
body .perfil-professor .perfil-professor__conteudo table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; }
body .perfil-professor .perfil-professor__conteudo :is(th, td) { padding: 12px; border: 1px solid var(--professor-border); }
body .perfil-professor .perfil-professor__cursos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
body .perfil-professor .perfil-professor__curso { display: flex; flex-direction: column; gap: 16px; min-width: 0; background: var(--professor-soft); border: 1px solid var(--professor-border); border-radius: 12px; padding: 24px; }
body .perfil-professor .perfil-professor__curso-categoria { color: var(--professor-accent); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
body .perfil-professor .perfil-professor__curso h3 { color: var(--professor-ink); font-family: 'Scene Pro', sans-serif; font-size: 22px; line-height: 1.35; margin: 0; }
body .perfil-professor .perfil-professor__curso h3 a { color: inherit; }
body .perfil-professor .perfil-professor__curso p { color: var(--professor-muted); font-family: 'Nunito', sans-serif; font-size: 15px; line-height: 1.7; margin: 0; }
body .perfil-professor .perfil-professor__curso a { overflow-wrap: anywhere; }
body .perfil-professor .perfil-professor__curso-link { color: var(--professor-accent); display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 700; padding-top: 8px; margin-top: auto; }
body .perfil-professor .card-docente__txts h3 { color: #110d08; font-family: 'Scene Pro', sans-serif; font-size: 1.125rem; font-weight: 700; text-transform: uppercase; }
body .perfil-professor :is(.perfil-professor__navigation, .perfil-professor__curso) a:focus-visible { outline: 3px solid var(--professor-accent); outline-offset: 4px; }
/* Ajustes leves de leitura e alinhamento, restritos às páginas de professores. */
body .perfil-professor .detail__cabecalho { padding: 64px 0 40px; }
body .perfil-professor .detail__cabecalho__container__image img { border-radius: 16px; border: 1px solid var(--professor-border); }
body .perfil-professor .detail__cabecalho__container__txts { min-width: 0; }
body .perfil-professor .detail__cabecalho__container__txts__titulo { font-size: clamp(30px, 3.4vw, 48px); letter-spacing: .01em; line-height: 1.15; }
body .perfil-professor .detail__cabecalho__container__txts__btns { flex-wrap: wrap; gap: 12px; }
body .perfil-professor .detail__cabecalho__container__txts__btns a { max-width: 100%; }
body .maestros-lista .cursos__cabecalho__container,
body .maestros-lista .cursos__conteudo__container { width: min(1240px, 100%); padding-left: 24px; padding-right: 24px; margin-inline: auto; }
body .maestros-lista .cursos__cabecalho__container { gap: 18px; }
body .maestros-lista .cursos__cabecalho__container h1 { font-size: clamp(32px, 4vw, 52px); line-height: 1.15; letter-spacing: .02em; margin: 0; }
body .maestros-lista .maestros-lista__descricao { color: var(--professor-muted); font-size: 18px; line-height: 1.7; max-width: 70ch; }
body .maestros-lista .maestros-lista__descricao > :last-child { margin-bottom: 0; }
body .maestros-lista .maestros-lista__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; padding-block: 24px 48px; }
body .maestros-lista .maestros-lista__item { min-width: 0; display: flex; }
body .maestros-lista .card-docente { position: relative; width: 100%; height: 100%; text-decoration: none; border: 1px solid var(--professor-border); }
body .maestros-lista .card-docente:hover { transform: translateY(-5px); }
body .maestros-lista .card-docente__txts { width: 100%; flex: 1; justify-content: flex-start !important; gap: 10px; }
body .maestros-lista .card-docente__titulo { font-family: 'Scene Pro', sans-serif; color: #110d08; font-size: 20px; font-weight: 700; line-height: 1.35; margin: 0; overflow-wrap: anywhere; }
body .maestros-lista .card-docente__subtitulo { font-size: 15px; line-height: 1.6; margin: 0; }
body .maestros-lista a:focus-visible,
body .perfil-professor .detail__cabecalho__container__txts__btns a:focus-visible { outline: 3px solid var(--professor-accent); outline-offset: 4px; }
@media (max-width: 1100px) {
  body .maestros-lista .maestros-lista__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  body .maestros-lista .maestros-lista__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 550px) {
  body .maestros-lista .maestros-lista__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; max-width: 380px; margin-inline: auto; }
  body .maestros-lista .maestros-lista__descricao { font-size: 16px; text-align: center; }
  body .perfil-professor .detail__cabecalho { padding: 36px 0 24px; }
}
@media (max-width: 998px) {
  body .perfil-professor .perfil-professor__cursos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 768px) {
  body .perfil-professor .detail__cabecalho__container__image { align-self: center; width: 100%; max-width: 350px; }
  body .perfil-professor .perfil-professor__secao { padding: 24px 20px; }
  body .perfil-professor .perfil-professor__secao > h2 { font-size: 25px; }
  body .perfil-professor .perfil-professor__conteudo { font-size: 16px; }
  body .perfil-professor .perfil-professor__cursos { grid-template-columns: 1fr; }
  body .perfil-professor .perfil-professor__navigation a { padding: 10px 12px; font-size: 12px; }
}

/* Apresentação compacta; a biografia ocupa sua própria seção abaixo. */
body .perfil-professor .detail__cabecalho { padding: 40px 24px 12px; }
body .perfil-professor .detail__cabecalho__container {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap;
  align-items: center !important;
  gap: 40px;
  width: min(1192px, 100%);
  padding: 32px;
  background: var(--professor-surface);
  border: 1px solid var(--professor-border);
  border-radius: 20px;
}
/* O clearfix do Bootstrap não deve ocupar espaço na apresentação. */
body .perfil-professor .detail__cabecalho__container::before,
body .perfil-professor .detail__cabecalho__container::after { display: none; content: none; }
body .perfil-professor .detail__cabecalho__container__image { flex: 0 0 260px; width: 260px; max-width: 260px; min-width: 0; align-self: center; margin: 0; }
body .perfil-professor .detail__cabecalho__container__image img { width: 100%; max-width: 260px; height: auto; max-height: 390px; object-fit: cover; object-position: top; }
body .perfil-professor .detail__cabecalho__container__txts { flex: 1 1 0; width: auto; min-width: 0; gap: 16px; padding: 0; }
body .perfil-professor .detail__cabecalho__container__txts__subtitulo { color: var(--professor-accent); font-size: 12px; font-weight: 700; letter-spacing: .12em; margin: 0; }
body .perfil-professor .detail__cabecalho__container__txts__titulo { margin: 0; color: var(--professor-ink); }
body .perfil-professor .detail__cabecalho__container__txts__description { font-size: 18px; margin: 0; color: var(--professor-muted); }
body .perfil-professor .perfil-professor__areas { margin: 8px 0; }
body .perfil-professor .detail__cabecalho__container__txts__btns { margin-top: 8px; }
body .perfil-professor .detail__cabecalho__container__txts__btns a { font-size: 14px; letter-spacing: 0; padding: 14px 20px; }
body .perfil-professor .perfil-professor__biografia .perfil-professor__conteudo { max-width: 88ch; line-height: 1.85; }
@media (max-width: 768px) {
  body .perfil-professor .detail__cabecalho { padding: 24px 16px 8px; }
  body .perfil-professor .detail__cabecalho__container { flex-direction: column !important; padding: 24px; gap: 24px; }
  body .perfil-professor .detail__cabecalho__container__image { flex: 0 0 auto; width: 100%; max-width: 220px; margin-inline: auto; }
  body .perfil-professor .detail__cabecalho__container__txts { flex: 1 1 auto; width: 100%; align-items: flex-start; }
  body .perfil-professor .detail__cabecalho__container__txts__titulo { text-align: left; }
}
