/* Didaskalia · componentes do site

   Este arquivo desenha a estrutura (grids, posições, proporções).
   Cores, fontes, pesos, tamanhos de letra, tracking, alturas de linha, caixa,
   raios, bordas, sombras, durações e espaçamentos de seção NÃO ficam aqui:
   eles vêm dos tokens var(--...) declarados em assets/css/themes/
   (original.css ou marca.css, escolhido em assets/config/tema.js).

   A ordem das regras segue o CSS original, porque a cascata depende dela
   (regras de telas menores precisam vir depois das regras gerais).
   Breakpoints: 1100px, 900px e 620px. */


/* ==========================================================================
   Base do Tailwind (preflight) · mantida como no original
   ========================================================================== */

/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme {
  :root, :host {
    --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
    --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    --spacing: .25rem;
    --default-font-family: var(--font-sans);
    --default-mono-font-family: var(--font-mono);
  }
}

@layer base {
  *, :after, :before { box-sizing: border-box; border: 0 solid; margin: 0; padding: 0; }
  ::backdrop { box-sizing: border-box; border: 0 solid; margin: 0; padding: 0; }
  ::file-selector-button { box-sizing: border-box; border: 0 solid; margin: 0; padding: 0; }

  html, :host {
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    line-height: 1.5;
    font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: var(--default-font-feature-settings, normal);
    font-variation-settings: var(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }

  hr { height: 0; color: inherit; border-top-width: 1px; }
  abbr:where([title]) { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; }
  h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; }
  a { color: inherit; -webkit-text-decoration: inherit; text-decoration: inherit; }
  b, strong { font-weight: bolder; }

  code, kbd, samp, pre {
    font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: var(--default-mono-font-feature-settings, normal);
    font-variation-settings: var(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }

  small { font-size: 80%; }
  sub, sup { vertical-align: baseline; font-size: 75%; line-height: 0; position: relative; }
  sub { bottom: -.25em; }
  sup { top: -.5em; }
  table { text-indent: 0; border-color: inherit; border-collapse: collapse; }
  :-moz-focusring { outline: auto; }
  progress { vertical-align: baseline; }
  summary { display: list-item; }
  ol, ul, menu { list-style: none; }
  img, svg, video, canvas, audio, iframe, embed, object { vertical-align: middle; display: block; }
  img, video { max-width: 100%; height: auto; }

  button, input, select, optgroup, textarea {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    opacity: 1;
    background-color: #0000;
    border-radius: 0;
  }

  :where(select:is([multiple], [size])) optgroup { font-weight: bolder; }
  :where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; }
  ::file-selector-button { margin-inline-end: 4px; }
  ::placeholder { opacity: 1; }

  @supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px) {
    ::placeholder { color: currentColor; }

    @supports (color:color-mix(in lab, red, red)) {
      ::placeholder { color: color-mix(in oklab, currentcolor 50%, transparent); }
    }
  }

  textarea { resize: vertical; }
  ::-webkit-search-decoration { -webkit-appearance: none; }
  ::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; }
  ::-webkit-datetime-edit { display: inline-flex; }
  ::-webkit-datetime-edit-fields-wrapper { padding: 0; }
  ::-webkit-datetime-edit { padding-block: 0; }
  ::-webkit-datetime-edit-year-field { padding-block: 0; }
  ::-webkit-datetime-edit-month-field { padding-block: 0; }
  ::-webkit-datetime-edit-day-field { padding-block: 0; }
  ::-webkit-datetime-edit-hour-field { padding-block: 0; }
  ::-webkit-datetime-edit-minute-field { padding-block: 0; }
  ::-webkit-datetime-edit-second-field { padding-block: 0; }
  ::-webkit-datetime-edit-millisecond-field { padding-block: 0; }
  ::-webkit-datetime-edit-meridiem-field { padding-block: 0; }
  ::-webkit-calendar-picker-indicator { line-height: 1; }
  :-moz-ui-invalid { box-shadow: none; }
  button, input:where([type=button], [type=reset], [type=submit]) { -webkit-appearance: button; appearance: button; }
  ::file-selector-button { -webkit-appearance: button; appearance: button; }
  ::-webkit-inner-spin-button { height: auto; }
  ::-webkit-outer-spin-button { height: auto; }
  [hidden]:where(:not([hidden=until-found])) { display: none !important; }
}

@layer components;

@layer utilities {
  .relative { position: relative; }
  .start { inset-inline-start: var(--spacing); }
  .table { display: table; }
}


/* ==========================================================================
   Página
   ========================================================================== */

* {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

body {
  background: var(--superficie);
  color: var(--texto);
  margin: 0;
  font-family: var(--fonte-texto);
}

a {
  color: inherit;
  text-decoration: none;
}

/* Foco visível para teclado */
:is(a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible) {
  outline: var(--foco-espessura) solid var(--foco-cor);
  outline-offset: var(--foco-afastamento);
}


/* ==========================================================================
   Cabeçalho (site-header) e logo (brand)
   ========================================================================== */

.site-header {
  z-index: 10;
  border-bottom: var(--espessura-borda) solid var(--header-borda);
  background: var(--header-fundo);
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: var(--altura-header);
  padding: 0 var(--pad-lateral);
  display: grid;
  position: relative;
}

/* Fundo levemente translúcido onde o navegador suporta color-mix */
@supports (color:color-mix(in lab, red, red)) {
  .site-header {
    background: color-mix(in srgb, var(--header-fundo) var(--header-fundo-opacidade), transparent);
  }
}

.site-header {
  -webkit-backdrop-filter: blur(var(--header-desfoque));
  backdrop-filter: blur(var(--header-desfoque));
}

/* Logo: símbolo (brand-mark) + nome ou assinatura (brand-name) */
.brand {
  letter-spacing: var(--logo-nome-tracking);
  text-transform: var(--logo-nome-caixa);
  align-items: center;
  gap: var(--logo-gap);
  width: max-content;
  font-family: var(--logo-nome-fonte);
  font-size: var(--logo-nome-tamanho);
  font-weight: var(--logo-nome-peso);
  display: inline-flex;
}

/* Símbolo: letra "D" com borda ou imagem aplicada como máscara */
.brand-mark {
  border: var(--logo-simbolo-borda);
  letter-spacing: 0;
  border-radius: var(--logo-simbolo-raio);
  place-items: center;
  width: var(--logo-simbolo-largura);
  height: var(--logo-simbolo-altura);
  color: var(--logo-letra-cor);
  background-color: var(--logo-simbolo-cor);
  font-family: var(--logo-letra-fonte);
  font-size: var(--logo-letra-tamanho);
  font-weight: var(--logo-letra-peso);
  display: grid;
  -webkit-mask-image: var(--logo-simbolo);
  mask-image: var(--logo-simbolo);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: center;
  mask-position: center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

/* Nome: texto ou imagem de assinatura aplicada como máscara */
.brand-name {
  display: var(--logo-nome-exibir);
  width: var(--logo-assinatura-largura);
  height: var(--logo-assinatura-altura);
  color: var(--logo-nome-cor);
  background-color: var(--logo-assinatura-cor);
  -webkit-mask-image: var(--logo-assinatura);
  mask-image: var(--logo-assinatura);
  -webkit-mask-size: contain;
  mask-size: contain;
  -webkit-mask-position: left center;
  mask-position: left center;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
}

/* Logo no rodapé (fundo escuro) */
.footer-brand .brand-mark {
  border: var(--logo-rodape-simbolo-borda);
  color: var(--logo-rodape-letra-cor);
  background-color: var(--logo-rodape-simbolo-cor);
}

.footer-brand .brand-name {
  color: var(--logo-rodape-nome-cor);
  background-color: var(--logo-rodape-assinatura-cor);
}

/* Navegação */
.desktop-nav {
  letter-spacing: var(--tracking-nav);
  text-transform: var(--caixa-nav);
  gap: clamp(18px, 2.2vw, 38px);
  font-size: var(--tamanho-nav);
  display: flex;
}

.desktop-nav a,
.header-cta,
.text-link {
  transition: opacity var(--duracao-rapida) var(--curva-padrao);
}

.desktop-nav a:hover,
.header-cta:hover,
.text-link:hover {
  opacity: var(--opacidade-hover);
}

.header-cta {
  letter-spacing: var(--tracking-nav);
  text-transform: var(--caixa-nav);
  justify-self: end;
  font-size: var(--tamanho-nav);
  font-weight: var(--peso-rotulo);
}


/* ==========================================================================
   Hero da página inicial
   ========================================================================== */

.hero {
  min-height: calc(100svh - var(--altura-header));
  padding: var(--pad-hero-topo) var(--pad-lateral) var(--pad-hero-base);
}

.hero-kicker {
  letter-spacing: var(--tracking-kicker);
  text-transform: var(--caixa-rotulo);
  justify-content: space-between;
  padding-bottom: clamp(62px, 9vh, 120px);
  font-size: var(--tamanho-rotulo);
  display: flex;
}

.hero h1 {
  letter-spacing: var(--tracking-hero);
  text-transform: var(--caixa-titulo);
  max-width: 1500px;
  margin: 0;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-hero);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-hero);
}

/* Palavra vazada (só contorno) */
.hero-outline {
  color: var(--titulo-vazado-preenchimento);
  -webkit-text-stroke: var(--titulo-vazado-espessura) var(--titulo-vazado-cor);
}

.hero-footer {
  grid-template-columns: minmax(250px, 520px) 1fr;
  align-items: end;
  gap: clamp(50px, 12vw, 220px);
  margin-top: clamp(64px, 10vh, 126px);
  margin-left: 34vw;
  display: grid;
}

.hero-footer p {
  letter-spacing: var(--tracking-lead);
  margin: 0;
  font-size: var(--tamanho-hero-lead);
  line-height: var(--altura-linha-lead);
}

.hero-actions {
  flex-wrap: wrap;
  align-items: center;
  gap: 24px;
  display: flex;
}


/* ==========================================================================
   Botões e links de texto
   ========================================================================== */

.button {
  border: var(--espessura-borda) solid var(--botao-borda);
  border-radius: var(--raio-botao);
  letter-spacing: var(--tracking-botao);
  text-transform: var(--caixa-botao);
  justify-content: space-between;
  align-items: center;
  gap: 28px;
  min-height: var(--botao-altura);
  padding: 0 var(--botao-pad-lateral);
  font-size: var(--tamanho-botao);
  font-weight: var(--peso-botao);
  transition: background var(--duracao-rapida) var(--curva-padrao), color var(--duracao-rapida) var(--curva-padrao);
  display: inline-flex;
}

.button-dark {
  background: var(--botao-escuro-fundo);
  color: var(--botao-escuro-texto);
}

.button-dark:hover {
  color: var(--botao-escuro-hover-texto);
  background: var(--botao-escuro-hover-fundo);
}

.text-link {
  border-bottom: var(--espessura-borda) solid var(--borda);
  letter-spacing: var(--tracking-botao);
  text-transform: var(--caixa-botao);
  padding: 10px 0;
  font-size: var(--tamanho-botao);
  font-weight: var(--peso-botao);
}


/* ==========================================================================
   Índice de projetos (faixa abaixo do hero)
   ========================================================================== */

.project-index {
  border-top: var(--espessura-borda) solid var(--borda);
  border-bottom: var(--espessura-borda) solid var(--borda);
  grid-template-columns: repeat(4, 1fr);
  display: grid;
}

.project-index a {
  border-right: var(--espessura-borda) solid var(--borda);
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  min-height: 104px;
  padding: 20px 26px;
  transition: background var(--duracao-rapida) var(--curva-padrao), color var(--duracao-rapida) var(--curva-padrao);
  display: grid;
}

.project-index a:last-child {
  border-right: 0;
}

.project-index a:hover {
  background: var(--superficie-inversa);
  color: var(--texto-inverso);
}

.project-index span {
  letter-spacing: var(--tracking-rotulo-curto);
  font-size: var(--tamanho-rotulo);
}

.project-index strong {
  letter-spacing: var(--tracking-indice);
  font-size: var(--tamanho-indice);
  font-weight: var(--peso-enfase);
}


/* ==========================================================================
   Responsivo do topo (cabeçalho, hero, índice)
   ========================================================================== */

@media (max-width:900px) {
  .site-header { grid-template-columns: 1fr auto; }
  .desktop-nav { display: none; }

  .hero-footer {
    grid-template-columns: 1fr;
    gap: 32px;
    margin-left: 20vw;
  }

  .project-index { grid-template-columns: repeat(2, 1fr); }
  .project-index a:nth-child(2) { border-right: 0; }
  .project-index a:nth-child(-n+2) { border-bottom: var(--espessura-borda) solid var(--borda); }
}

@media (max-width:620px) {
  .site-header {
    min-height: var(--altura-header-mobile);
    padding: 0 var(--pad-lateral-mobile);
  }

  .brand { font-size: var(--logo-nome-tamanho-mobile); }

  .brand-mark {
    width: var(--logo-simbolo-largura-mobile);
    height: var(--logo-simbolo-altura-mobile);
    font-size: var(--logo-letra-tamanho-mobile);
  }

  .header-cta { font-size: var(--tamanho-nav-mobile); }

  .hero {
    min-height: calc(100svh - var(--altura-header-mobile));
    padding: var(--pad-hero-topo-mobile) var(--pad-lateral-mobile) var(--pad-hero-base-mobile);
  }

  .hero-kicker { padding-bottom: 64px; }
  .hero-kicker span:last-child { display: none; }

  .hero h1 {
    font-size: var(--tamanho-hero-mobile);
    line-height: var(--altura-linha-hero-mobile);
  }

  .hero-footer {
    gap: 28px;
    margin-top: 70px;
    margin-left: 0;
  }

  .hero-footer p {
    max-width: 450px;
    font-size: var(--tamanho-hero-lead-mobile);
  }

  .hero-actions {
    flex-direction: column;
    align-items: stretch;
  }

  .button { width: 100%; }
  .text-link { width: max-content; }

  .project-index { grid-template-columns: 1fr; }

  .project-index a,
  .project-index a:nth-child(2) {
    border-right: 0;
    border-bottom: var(--espessura-borda) solid var(--borda);
    min-height: 82px;
  }

  .project-index a:last-child { border-bottom: 0; }
}

/* Movimento reduzido (acessibilidade) */
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *, :before, :after { transition-duration: .01ms !important; }
}


/* ==========================================================================
   Controles de formulário e menu mobile (estado padrão)
   ========================================================================== */

button,
input,
select,
textarea {
  color: inherit;
  font: inherit;
}

button {
  cursor: pointer;
}

.mobile-nav {
  display: none;
}

.project-copy {
  flex-direction: column;
  gap: 5px;
  display: flex;
}

.project-copy small {
  letter-spacing: var(--tracking-legenda-indice);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo-pequeno);
  font-weight: var(--peso-normal);
}


/* ==========================================================================
   Rótulo de seção e espaçamento das seções
   ========================================================================== */

.section-label {
  color: var(--texto-rotulo);
  text-transform: var(--caixa-rotulo);
  margin: 0 0 22px;
  font-weight: var(--peso-rotulo);
  letter-spacing: var(--tracking-rotulo-secao) !important;
  font-size: var(--tamanho-rotulo-secao) !important;
  line-height: var(--altura-linha-rotulo-secao) !important;
}

.about-section,
.ecosystem-section,
.courses-section,
.content-section,
.internal-content,
.faq-section,
.detail-body {
  padding: var(--pad-secao) var(--pad-lateral);
}


/* ==========================================================================
   Sobre (about-section) e títulos de seção
   ========================================================================== */

.about-section {
  grid-template-columns: .8fr 1.15fr 1fr;
  align-items: start;
  gap: clamp(40px, 7vw, 120px);
  display: grid;
}

/* Títulos de seção (h2) */
.section-intro h2,
.section-heading-row h2,
.plus-copy h2,
.feature-panel h2,
.contact-copy h2,
.footer-lead h2,
.faq-section h2,
.page-interest h2 {
  letter-spacing: var(--tracking-titulo);
  text-transform: var(--caixa-titulo);
  margin: 0;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-titulo-secao);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-titulo);
}

.section-intro h2 {
  font-size: var(--tamanho-titulo-intro);
}

.about-copy {
  flex-direction: column;
  gap: 28px;
  display: flex;
}

.about-copy p {
  max-width: 650px;
  margin: 0;
  font-size: var(--tamanho-texto);
  line-height: var(--altura-linha-texto);
}

.about-copy .large-copy {
  letter-spacing: var(--tracking-texto-destaque);
  font-size: var(--tamanho-texto-destaque);
  line-height: var(--altura-linha-texto-destaque);
}

.discipline-list {
  border-top: var(--espessura-borda) solid var(--borda);
}

.discipline-list div {
  border-bottom: var(--espessura-borda) solid var(--borda-suave);
  grid-template-columns: 36px 1fr;
  align-items: center;
  gap: 16px;
  min-height: 58px;
  display: grid;
}

.discipline-list span {
  letter-spacing: var(--tracking-rotulo-miudo);
  font-size: var(--tamanho-rotulo-pequeno);
}

.discipline-list strong {
  font-size: var(--tamanho-texto-card);
  font-weight: var(--peso-enfase);
}


/* ==========================================================================
   Ecossistema (seção escura com cards)
   ========================================================================== */

.ecosystem-section {
  background: var(--superficie-inversa);
  color: var(--texto-inverso);
}

.section-heading-row {
  justify-content: space-between;
  align-items: end;
  gap: 50px;
  margin-bottom: clamp(64px, 8vw, 120px);
  display: flex;
}

.section-heading-row > p {
  max-width: 430px;
  margin: 0;
  font-size: var(--tamanho-texto-medio);
  line-height: var(--altura-linha-texto-curto);
}

.ecosystem-grid {
  border-top: var(--espessura-borda) solid var(--borda-inversa);
  border-left: var(--espessura-borda) solid var(--borda-inversa);
  grid-template-columns: repeat(2, 1fr);
  display: grid;
}

.ecosystem-card {
  border-bottom: var(--espessura-borda) solid var(--borda-inversa);
  border-right: var(--espessura-borda) solid var(--borda-inversa);
  border-radius: var(--raio-card);
  box-shadow: var(--sombra-card);
  flex-direction: column;
  justify-content: space-between;
  min-height: 390px;
  padding: var(--pad-card-ecossistema);
  transition: background var(--duracao-media) var(--curva-padrao), color var(--duracao-media) var(--curva-padrao);
  display: flex;
  position: relative;
  overflow: hidden;
}

.ecosystem-card:hover {
  background: var(--superficie-elevada);
  color: var(--texto);
}

.ecosystem-card > span {
  letter-spacing: var(--tracking-rotulo);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo);
}

.ecosystem-card > div:last-of-type strong {
  letter-spacing: var(--tracking-titulo-ecossistema);
  margin-bottom: 12px;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-titulo-ecossistema);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-titulo-ecossistema);
  display: block;
}

.ecosystem-card p {
  max-width: 330px;
  margin: 0;
  font-size: var(--tamanho-texto);
  line-height: var(--altura-linha-card);
}

.ecosystem-card > b {
  font-size: var(--tamanho-texto-grande);
  font-weight: var(--peso-normal);
  position: absolute;
  top: 32px;
  right: 34px;
}

.card-dark {
  background: var(--superficie-card-escuro);
}

/* Card de livros: lombadas */
.book-spines {
  align-items: flex-end;
  gap: 8px;
  height: 126px;
  display: flex;
}

.book-spines i {
  letter-spacing: var(--tracking-lombada);
  writing-mode: vertical-rl;
  border: var(--espessura-borda) solid;
  border-radius: var(--raio-capa);
  place-items: center;
  width: 62px;
  height: 126px;
  font-family: var(--fonte-serifa);
  font-size: var(--tamanho-rotulo-medio);
  font-style: normal;
  display: grid;
}

.book-spines i:last-child {
  height: 102px;
}

/* Card de evento: data grande */
.event-date {
  flex-direction: column;
  align-items: start;
  display: flex;
}

.event-date strong {
  letter-spacing: var(--tracking-numero-evento);
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-numero-evento);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-numero-evento);
}

.event-date small {
  letter-spacing: var(--tracking-rotulo);
  text-transform: var(--caixa-rotulo);
  margin-top: 18px;
  font-size: var(--tamanho-rotulo-pequeno);
}


/* ==========================================================================
   Didaskalia+ (plus-section)
   ========================================================================== */

.plus-section {
  border-bottom: var(--espessura-borda) solid var(--borda);
  grid-template-columns: 1fr 1fr;
  min-height: 800px;
  display: grid;
}

.plus-stat {
  border-right: var(--espessura-borda) solid var(--borda);
  background: var(--superficie-destaque);
  flex-direction: column;
  justify-content: space-between;
  min-height: 720px;
  padding: var(--pad-plus-stat) var(--pad-lateral);
  display: flex;
  overflow: hidden;
}

.plus-stat span {
  letter-spacing: var(--tracking-rotulo);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo-medio);
}

.plus-stat span:last-child {
  align-self: end;
}

.plus-stat strong {
  letter-spacing: var(--tracking-numero-plus);
  align-self: center;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-numero-plus);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-numero-plus);
}

.plus-copy {
  flex-direction: column;
  justify-content: center;
  align-items: start;
  padding: var(--pad-plus-texto-vertical) var(--pad-plus-texto-lateral);
  display: flex;
}

.plus-copy h2 {
  max-width: 720px;
  font-size: var(--tamanho-titulo-plus);
}

.plus-copy > p:not(.section-label) {
  max-width: 620px;
  margin: 38px 0;
  font-size: var(--tamanho-texto-grande);
  line-height: var(--altura-linha-texto);
}

.plus-copy ul {
  width: 100%;
  margin: 0 0 42px;
  padding: 0;
  list-style: none;
}

.plus-copy li {
  border-bottom: var(--espessura-borda) solid var(--borda-suave);
  padding: 16px 0;
  font-size: var(--tamanho-texto-card);
}

.plus-copy li:before {
  content: var(--marcador-lista);
  margin-right: 16px;
}


/* ==========================================================================
   Cursos (lista em linhas)
   ========================================================================== */

.course-lines {
  border-top: var(--espessura-borda) solid var(--borda);
}

.course-lines a {
  border-bottom: var(--espessura-borda) solid var(--borda-suave);
  grid-template-columns: 60px minmax(260px, 1.2fr) 1fr 24px;
  align-items: center;
  gap: 24px;
  min-height: 102px;
  transition: padding var(--duracao-rapida) var(--curva-padrao), background var(--duracao-rapida) var(--curva-padrao);
  display: grid;
}

.course-lines a:hover {
  background: var(--superficie-elevada);
  padding-left: 22px;
  padding-right: 22px;
}

.course-lines span {
  letter-spacing: var(--tracking-rotulo-miudo);
  font-size: var(--tamanho-rotulo-pequeno);
}

.course-lines strong {
  letter-spacing: var(--tracking-titulo-curso);
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-titulo-curso);
  font-weight: var(--peso-titulo);
}

.course-lines small {
  letter-spacing: var(--tracking-legenda-curso);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo-medio);
  line-height: var(--altura-linha-rotulo);
}

.course-lines b {
  font-size: var(--tamanho-texto);
  font-weight: var(--peso-normal);
}


/* ==========================================================================
   Editorial e eventos (painéis lado a lado, capas, conferência)
   ========================================================================== */

.editorial-events {
  border-top: var(--espessura-borda) solid var(--borda);
  border-bottom: var(--espessura-borda) solid var(--borda);
  grid-template-columns: 1.08fr .92fr;
  display: grid;
}

.feature-panel {
  flex-direction: column;
  align-items: start;
  min-height: 830px;
  padding: var(--pad-painel) var(--pad-lateral);
  display: flex;
}

.feature-panel:first-child {
  border-right: var(--espessura-borda) solid var(--borda);
}

.feature-panel h2 {
  max-width: 850px;
  font-size: var(--tamanho-titulo-painel);
}

/* Capas de livros */
.cover-stage {
  justify-content: center;
  align-items: end;
  width: 100%;
  height: 360px;
  margin: 55px 0 40px;
  display: flex;
  position: relative;
}

.cover {
  aspect-ratio: .68;
  border: var(--espessura-borda) solid var(--borda);
  border-radius: var(--raio-capa);
  background: var(--capa-fundo);
  flex-direction: column;
  justify-content: space-between;
  width: min(33vw, 250px);
  padding: 20px;
  display: flex;
  box-shadow: var(--sombra-capa);
}

.cover + .cover {
  background: var(--capa-fundo-alternativa);
  margin-left: -36px;
  transform: translateY(24px) rotate(5deg);
}

.cover > span,
.cover > small {
  letter-spacing: var(--tracking-rotulo);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-micro);
}

.cover > strong {
  align-self: center;
  font-family: var(--fonte-serifa);
  font-size: var(--tamanho-letra-capa);
  font-weight: var(--peso-normal);
}

/* Painel da conferência (escuro) */
.conference-panel {
  background: var(--superficie-inversa);
  color: var(--texto-inverso);
}

.conference-word {
  letter-spacing: var(--tracking-conferencia);
  width: 100%;
  margin: 30px 0 56px;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-conferencia);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-conferencia);
}

.conference-panel > p:not(.section-label) {
  max-width: 520px;
  margin: 35px 0;
  font-size: var(--tamanho-texto-medio);
  line-height: var(--altura-linha-texto-curto);
}

/* Botão claro (sobre fundo escuro) */
.button-light {
  border-color: var(--botao-claro-borda);
  color: var(--botao-claro-texto);
}

.button-light:hover {
  background: var(--botao-claro-hover-fundo);
  color: var(--botao-claro-hover-texto);
}


/* ==========================================================================
   Conteúdos (grade de artigos)
   ========================================================================== */

.article-grid {
  border-top: var(--espessura-borda) solid var(--borda);
  border-left: var(--espessura-borda) solid var(--borda);
  grid-template-columns: repeat(3, 1fr);
  display: grid;
}

.article-grid article {
  border-right: var(--espessura-borda) solid var(--borda);
  border-bottom: var(--espessura-borda) solid var(--borda);
  border-radius: var(--raio-card);
  box-shadow: var(--sombra-card);
  flex-direction: column;
  min-height: 320px;
  padding: var(--pad-card-artigo);
  display: flex;
}

.article-grid span,
.article-grid small {
  letter-spacing: var(--tracking-artigo);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo-pequeno);
}

.article-grid h3 {
  letter-spacing: var(--tracking-titulo-artigo);
  margin: 70px 0 24px;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-titulo-artigo);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-titulo-artigo);
}

.article-grid p {
  max-width: 380px;
  margin: 0;
  font-size: var(--tamanho-texto-card);
  line-height: var(--altura-linha-texto-curto);
}

.article-grid small {
  margin-top: auto;
  padding-top: 35px;
}


/* ==========================================================================
   Contato e interesse (texto + formulário)
   ========================================================================== */

.contact-section,
.page-interest {
  border-top: var(--espessura-borda) solid var(--borda);
  grid-template-columns: .9fr 1.1fr;
  gap: clamp(60px, 10vw, 180px);
  padding: var(--pad-secao) var(--pad-lateral);
  display: grid;
}

.contact-copy h2 {
  max-width: 780px;
}

.contact-copy > p:not(.section-label),
.page-interest > div > p:not(.section-label) {
  max-width: 580px;
  margin: 38px 0;
  font-size: var(--tamanho-texto-medio);
  line-height: var(--altura-linha-texto);
}

.location-placeholder {
  border-top: var(--espessura-borda) solid var(--borda);
  border-bottom: var(--espessura-borda) solid var(--borda-suave);
  flex-direction: column;
  gap: 7px;
  max-width: 580px;
  padding: 22px 0;
  display: flex;
}

.location-placeholder span,
.location-placeholder small {
  letter-spacing: var(--tracking-rotulo-curto);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo-pequeno);
  line-height: var(--altura-linha-rotulo);
}

.location-placeholder strong {
  font-size: var(--tamanho-texto-grande);
  font-weight: var(--peso-enfase);
}

/* Formulário */
.interest-form {
  flex-direction: column;
  align-self: start;
  gap: 22px;
  display: flex;
}

.field-row {
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  display: grid;
}

.interest-form label {
  letter-spacing: var(--tracking-rotulo-miudo);
  text-transform: var(--caixa-rotulo);
  flex-direction: column;
  gap: 9px;
  font-size: var(--tamanho-rotulo);
  font-weight: var(--peso-rotulo);
  display: flex;
}

.interest-form input:not([type=checkbox]),
.interest-form select,
.interest-form textarea {
  border: 0;
  border-bottom: var(--espessura-borda) solid var(--borda);
  letter-spacing: 0;
  text-transform: none;
  background: 0 0;
  border-radius: var(--raio-campo);
  width: 100%;
  padding: 15px 0;
  font-size: var(--tamanho-campo);
  font-weight: var(--peso-normal);
}

.interest-form textarea {
  resize: vertical;
}

.consent-check {
  grid-template-columns: 18px 1fr;
  align-items: start;
  line-height: var(--altura-linha-formulario);
  letter-spacing: 0 !important;
  text-transform: none !important;
  gap: 12px !important;
  font-weight: var(--peso-normal) !important;
  display: grid !important;
}

.consent-check input {
  width: 16px;
  height: 16px;
  accent-color: var(--destaque);
  margin: 1px 0 0;
}

.interest-form .button {
  align-self: start;
}

.form-message {
  border: var(--espessura-borda) solid var(--borda);
  border-radius: var(--raio-painel);
  margin: 0;
  padding: 14px;
  font-size: var(--tamanho-texto-pequeno);
  line-height: var(--altura-linha-formulario);
}

.interest-form.compact .field-row {
  grid-template-columns: 1fr;
}


/* ==========================================================================
   Rodapé (site-footer)
   ========================================================================== */

.site-footer {
  background: var(--rodape-fundo);
  color: var(--rodape-texto);
  padding: var(--pad-rodape-topo) var(--pad-lateral) var(--pad-rodape-base);
}

.footer-lead {
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 40px;
  padding-bottom: clamp(70px, 10vw, 150px);
  display: grid;
}

.footer-lead .section-label {
  grid-column: 1 / -1;
}

.footer-lead h2 {
  max-width: 1050px;
  font-size: var(--tamanho-titulo-rodape);
}

.footer-grid {
  border-top: var(--espessura-borda) solid var(--borda-inversa);
  grid-template-columns: 2fr repeat(3, 1fr);
  gap: 44px;
  padding: 48px 0;
  display: grid;
}

.footer-grid > div {
  flex-direction: column;
  align-items: start;
  gap: 11px;
  display: flex;
}

.footer-grid > div:first-child {
  padding-right: 8vw;
}

.footer-grid p {
  opacity: var(--opacidade-texto-rodape);
  max-width: 330px;
  margin: 22px 0 0;
  font-size: var(--tamanho-texto-pequeno);
  line-height: var(--altura-linha-texto-curto);
}

.footer-grid strong {
  letter-spacing: var(--tracking-rotulo);
  text-transform: var(--caixa-rotulo);
  margin-bottom: 14px;
  font-size: var(--tamanho-rotulo-pequeno);
}

.footer-grid a,
.footer-grid button {
  color: inherit;
  text-align: left;
  background: 0 0;
  border: 0;
  padding: 0;
  font-size: var(--tamanho-texto-pequeno);
}

/* Nome da logo no rodapé (a regra acima definia 13px para todos os links) */
.footer-grid .footer-brand {
  font-size: var(--logo-rodape-nome-tamanho);
}

.footer-grid a:hover,
.footer-grid button:hover {
  opacity: var(--opacidade-hover-rodape);
}

.footer-bottom {
  letter-spacing: var(--tracking-rotulo-miudo);
  text-transform: var(--caixa-rotulo);
  opacity: var(--opacidade-rodape-base);
  border-top: var(--espessura-borda) solid var(--borda-inversa);
  justify-content: space-between;
  gap: 30px;
  padding-top: 24px;
  font-size: var(--tamanho-micro);
  line-height: var(--altura-linha-rotulo);
  display: flex;
}


/* ==========================================================================
   Páginas internas: breadcrumbs, hero interno, cards de conteúdo
   ========================================================================== */

.breadcrumbs {
  letter-spacing: var(--tracking-rotulo-miudo);
  text-transform: var(--caixa-rotulo);
  flex-wrap: wrap;
  gap: 10px;
  font-size: var(--tamanho-rotulo-pequeno);
  display: flex;
}

.breadcrumbs > span {
  gap: 10px;
  display: inline-flex;
}

.breadcrumbs a {
  border-bottom: var(--espessura-borda) solid;
}

.internal-hero,
.detail-hero {
  border-bottom: var(--espessura-borda) solid var(--borda);
  padding: var(--pad-hero-interno-topo) var(--pad-lateral) var(--pad-hero-interno-base);
}

.internal-kicker {
  letter-spacing: var(--tracking-rotulo);
  text-transform: var(--caixa-rotulo);
  justify-content: space-between;
  margin: clamp(70px, 9vw, 140px) 0 38px;
  font-size: var(--tamanho-rotulo-pequeno);
  display: flex;
}

/* Títulos de página (h1) */
.internal-hero h1,
.detail-hero h1,
.not-found-copy h1 {
  letter-spacing: var(--tracking-titulo-pagina);
  text-transform: var(--caixa-titulo);
  max-width: 1450px;
  margin: 0;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-titulo-pagina);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-titulo-pagina);
}

.internal-hero > p {
  letter-spacing: var(--tracking-lead-interno);
  max-width: 710px;
  margin: clamp(50px, 8vw, 110px) 0 0 35vw;
  font-size: var(--tamanho-lead-interno);
  line-height: var(--altura-linha-lead);
}

.result-count {
  letter-spacing: var(--tracking-rotulo);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo-pequeno);
}

.content-card-grid {
  border-top: var(--espessura-borda) solid var(--borda);
  border-left: var(--espessura-borda) solid var(--borda);
  grid-template-columns: repeat(3, 1fr);
  display: grid;
}

.content-card {
  border-right: var(--espessura-borda) solid var(--borda);
  border-bottom: var(--espessura-borda) solid var(--borda);
  border-radius: var(--raio-card);
  box-shadow: var(--sombra-card);
  flex-direction: column;
  justify-content: space-between;
  min-height: 390px;
  padding: var(--pad-card);
  transition: background var(--duracao-rapida) var(--curva-padrao), color var(--duracao-rapida) var(--curva-padrao);
  display: flex;
}

a.content-card:hover {
  background: var(--superficie-inversa);
  color: var(--texto-inverso);
}

.card-top,
.card-bottom {
  letter-spacing: var(--tracking-rotulo-miudo);
  text-transform: var(--caixa-rotulo);
  justify-content: space-between;
  gap: 18px;
  font-size: var(--tamanho-rotulo-pequeno);
  display: flex;
}

.content-card h3 {
  letter-spacing: var(--tracking-titulo-card);
  margin: 70px 0 22px;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-titulo-card);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-titulo-card);
}

.content-card p {
  max-width: 460px;
  margin: 0;
  font-size: var(--tamanho-texto-card);
  line-height: var(--altura-linha-texto);
}

.card-bottom {
  align-items: end;
  margin-top: 50px;
}

.card-bottom small {
  max-width: 68%;
  font-size: var(--tamanho-rotulo-pequeno);
  line-height: var(--altura-linha-rotulo);
}

.card-bottom strong {
  font-size: var(--tamanho-rotulo-pequeno);
}

.legal-grid {
  grid-template-columns: repeat(2, 1fr);
}


/* ==========================================================================
   Citação em destaque (statement)
   ========================================================================== */

.statement {
  border-top: var(--espessura-borda) solid var(--borda);
  border-bottom: var(--espessura-borda) solid var(--borda);
  background: var(--superficie-destaque);
  grid-template-columns: .35fr 1fr;
  gap: 60px;
  margin: 0;
  padding: var(--pad-destaque) var(--pad-lateral);
  display: grid;
}

.statement > span {
  font-family: var(--fonte-serifa);
  font-size: var(--tamanho-aspas);
  line-height: var(--altura-linha-aspas);
}

.statement p {
  letter-spacing: var(--tracking-citacao);
  max-width: 1050px;
  margin: 0;
  font-family: var(--fonte-serifa);
  font-size: var(--tamanho-citacao);
  font-style: var(--estilo-citacao);
  line-height: var(--altura-linha-citacao);
}


/* ==========================================================================
   Perguntas frequentes (FAQ)
   ========================================================================== */

.faq-section {
  grid-template-columns: .75fr 1.25fr;
  gap: clamp(60px, 10vw, 160px);
  display: grid;
}

.faq-section h2 {
  font-size: var(--tamanho-titulo-faq);
}

.faq-list {
  border-top: var(--espessura-borda) solid var(--borda);
}

.faq-list details {
  border-bottom: var(--espessura-borda) solid var(--borda-suave);
}

.faq-list summary {
  cursor: pointer;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  min-height: 74px;
  font-size: var(--tamanho-texto-medio);
  list-style: none;
  display: flex;
}

.faq-list summary::-webkit-details-marker {
  display: none;
}

.faq-list summary span {
  font-size: var(--tamanho-icone-faq);
  font-weight: var(--peso-leve);
}

.faq-list details[open] summary span {
  transform: rotate(45deg);
}

.faq-list details p {
  max-width: 670px;
  margin: 0 0 28px;
  font-size: var(--tamanho-texto-card);
  line-height: var(--altura-linha-faq);
}


/* ==========================================================================
   Bloco de interesse no fim das páginas (page-interest)
   ========================================================================== */

.page-interest {
  background: var(--superficie-destaque);
}

.page-interest h2 {
  max-width: 780px;
  font-size: var(--tamanho-titulo-interesse);
}


/* ==========================================================================
   Páginas de detalhe (cursos, evento, livros)
   ========================================================================== */

.detail-grid {
  grid-template-columns: minmax(0, 1.5fr) .5fr;
  align-items: end;
  gap: clamp(60px, 9vw, 160px);
  margin-top: clamp(80px, 11vw, 170px);
  display: grid;
}

.detail-hero h1 {
  max-width: 1050px;
  font-size: var(--tamanho-titulo-detalhe);
}

.detail-lead {
  max-width: 700px;
  margin: 45px 0 0;
  font-size: var(--tamanho-lead-detalhe);
  line-height: var(--altura-linha-lead);
}

.detail-grid aside {
  border-top: var(--espessura-borda) solid var(--borda);
  flex-direction: column;
  align-items: start;
  gap: 14px;
  padding-top: 20px;
  display: flex;
}

.detail-grid aside > span {
  letter-spacing: var(--tracking-rotulo);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo-pequeno);
}

.detail-grid aside > strong {
  margin-bottom: 26px;
  font-size: var(--tamanho-destaque-card);
  font-weight: var(--peso-enfase);
}

.detail-body {
  grid-template-columns: .8fr 1.2fr;
  gap: clamp(60px, 10vw, 180px);
  display: grid;
}

.fact-grid {
  border-top: var(--espessura-borda) solid var(--borda);
}

.fact-grid div {
  border-bottom: var(--espessura-borda) solid var(--borda-suave);
  grid-template-columns: .7fr 1fr;
  gap: 22px;
  padding: 22px 0;
  display: grid;
}

.fact-grid span {
  letter-spacing: var(--tracking-rotulo-miudo);
  text-transform: var(--caixa-rotulo);
  font-size: var(--tamanho-rotulo-pequeno);
}

.fact-grid strong {
  font-size: var(--tamanho-texto-forte);
  font-weight: var(--peso-enfase);
}

.detail-prose > p:not(.section-label) {
  letter-spacing: var(--tracking-lead);
  max-width: 760px;
  margin: 0 0 30px;
  font-size: var(--tamanho-prosa-detalhe);
  line-height: var(--altura-linha-prosa);
}

.pending-note {
  border: var(--espessura-borda) solid var(--borda);
  border-radius: var(--raio-painel);
  padding: 20px;
  letter-spacing: 0 !important;
  font-size: var(--tamanho-nota) !important;
  line-height: var(--altura-linha-aviso) !important;
}


/* ==========================================================================
   Banner de cookies
   ========================================================================== */

.cookie-banner {
  z-index: 100;
  border: var(--espessura-borda) solid var(--cookie-borda);
  border-radius: var(--raio-painel);
  background: var(--cookie-fundo);
  color: var(--cookie-texto);
  grid-template-columns: 1fr auto;
  align-items: end;
  gap: 32px;
  padding: 22px;
  display: grid;
  position: fixed;
  bottom: 18px;
  left: 18px;
  right: 18px;
  box-shadow: var(--sombra-banner);
}

.cookie-banner strong {
  font-size: var(--tamanho-texto-forte);
}

.cookie-banner p {
  opacity: var(--opacidade-texto-cookie);
  max-width: 760px;
  margin: 8px 0;
  font-size: var(--tamanho-nota);
  line-height: var(--altura-linha-nota);
}

.cookie-banner a {
  border-bottom: var(--espessura-borda) solid;
  font-size: var(--tamanho-rotulo);
}

.cookie-actions {
  flex-wrap: wrap;
  gap: 8px;
  display: flex;
}

.cookie-actions button {
  min-height: 42px;
  color: var(--cookie-texto);
  letter-spacing: var(--tracking-botao);
  text-transform: var(--caixa-botao);
  background: 0 0;
  border: var(--espessura-borda) solid var(--cookie-botao-borda);
  border-radius: var(--raio-botao);
  padding: 0 16px;
  font-size: var(--tamanho-rotulo);
  font-weight: var(--peso-botao);
}

.cookie-actions .cookie-primary {
  background: var(--cookie-botao-primario-fundo);
  color: var(--cookie-botao-primario-texto);
}


/* ==========================================================================
   Página 404
   ========================================================================== */

.not-found-page {
  grid-template-columns: .65fr 1.35fr;
  gap: 8vw;
  min-height: 80svh;
  padding: var(--pad-404) var(--pad-lateral);
  display: grid;
}

.error-code {
  letter-spacing: var(--tracking-codigo-erro);
  writing-mode: vertical-rl;
  font-family: var(--fonte-titulo);
  font-size: var(--tamanho-codigo-erro);
  font-weight: var(--peso-titulo);
  line-height: var(--altura-linha-codigo-erro);
}

.not-found-copy h1 {
  max-width: 1000px;
  font-size: var(--tamanho-titulo-404);
}

.not-found-copy > p:not(.section-label) {
  max-width: 600px;
  margin: 35px 0;
  font-size: var(--tamanho-texto-medio);
  line-height: var(--altura-linha-texto-curto);
}

.search-form {
  max-width: 650px;
  margin: 60px 0;
}

.search-form label {
  letter-spacing: var(--tracking-rotulo-miudo);
  text-transform: var(--caixa-rotulo);
  margin-bottom: 12px;
  font-size: var(--tamanho-rotulo);
  font-weight: var(--peso-rotulo);
  display: block;
}

.search-form > div {
  border-bottom: var(--espessura-borda) solid var(--borda);
  grid-template-columns: 1fr auto;
  display: grid;
}

.search-form input {
  background: 0 0;
  border: 0;
  min-width: 0;
  padding: 16px 0;
  font-size: var(--tamanho-texto-medio);
}

.search-form button {
  letter-spacing: var(--tracking-botao);
  text-transform: var(--caixa-botao);
  background: 0 0;
  border: 0;
  font-size: var(--tamanho-rotulo);
  font-weight: var(--peso-botao);
}

.not-found-links {
  flex-wrap: wrap;
  align-items: center;
  gap: 22px;
  display: flex;
}


/* ==========================================================================
   Responsivo · até 1100px
   ========================================================================== */

@media (max-width:1100px) {
  .about-section { grid-template-columns: 1fr 1.3fr; }
  .discipline-list { grid-column: 2; }
  .content-card-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-grid { grid-template-columns: 1.6fr repeat(3, 1fr); }
}


/* ==========================================================================
   Responsivo · até 900px (tablet)
   ========================================================================== */

@media (max-width:900px) {
  /* Cabeçalho e menu mobile */
  .site-header {
    grid-template-columns: 1fr auto auto;
    gap: 18px;
  }

  .mobile-nav {
    display: block;
    position: relative;
  }

  .mobile-nav summary {
    cursor: pointer;
    letter-spacing: var(--tracking-nav-mobile);
    text-transform: var(--caixa-nav);
    font-size: var(--tamanho-nav-mobile);
    font-weight: var(--peso-rotulo);
    list-style: none;
  }

  .mobile-nav summary::-webkit-details-marker { display: none; }

  .mobile-nav nav {
    border: var(--espessura-borda) solid var(--borda);
    border-radius: var(--raio-painel);
    background: var(--menu-mobile-fundo);
    flex-direction: column;
    width: min(86vw, 340px);
    padding: 14px;
    display: flex;
    position: absolute;
    top: 32px;
    right: 0;
    box-shadow: var(--sombra-menu);
  }

  .mobile-nav nav a {
    border-bottom: var(--espessura-borda) solid var(--borda-suave);
    text-transform: var(--caixa-nav);
    padding: 14px 10px;
    font-size: var(--tamanho-nav);
  }

  /* Seções em uma coluna */
  .about-section { grid-template-columns: 1fr; }
  .discipline-list { grid-column: auto; }

  .ecosystem-grid,
  .plus-section,
  .editorial-events,
  .contact-section,
  .page-interest,
  .faq-section,
  .detail-body {
    grid-template-columns: 1fr;
  }

  .plus-stat {
    border-right: 0;
    border-bottom: var(--espessura-borda) solid var(--borda);
    min-height: 520px;
  }

  .plus-stat strong { font-size: var(--tamanho-numero-plus-tablet); }

  .feature-panel:first-child {
    border-right: 0;
    border-bottom: var(--espessura-borda) solid var(--borda);
  }

  .feature-panel { min-height: 700px; }

  .article-grid,
  .footer-lead {
    grid-template-columns: 1fr;
  }

  /* Rodapé */
  .footer-lead .section-label { grid-column: auto; }
  .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; }
  .footer-grid > div:last-child { grid-column: 2; }

  /* Páginas internas */
  .internal-hero > p { margin-left: 20vw; }

  .detail-grid {
    grid-template-columns: 1fr;
    align-items: start;
  }

  .detail-grid aside { max-width: 460px; }

  .cookie-banner {
    grid-template-columns: 1fr;
    align-items: start;
  }
}


/* ==========================================================================
   Responsivo · até 620px (celular)
   ========================================================================== */

@media (max-width:620px) {
  /* Cabeçalho */
  .site-header { grid-template-columns: 1fr auto; }
  .header-cta { display: none; }

  /* Espaçamento das seções */
  .about-section,
  .ecosystem-section,
  .courses-section,
  .content-section,
  .internal-content,
  .faq-section,
  .detail-body {
    padding: var(--pad-secao-mobile) var(--pad-lateral-mobile);
  }

  .section-heading-row {
    flex-direction: column;
    align-items: start;
    margin-bottom: 54px;
  }

  /* Títulos de seção */
  .section-intro h2,
  .section-heading-row h2,
  .plus-copy h2,
  .feature-panel h2,
  .contact-copy h2,
  .footer-lead h2,
  .faq-section h2,
  .page-interest h2 {
    font-size: var(--tamanho-titulo-secao-mobile);
  }

  .about-section { gap: 52px; }

  /* Ecossistema */
  .ecosystem-card {
    min-height: 330px;
    padding: var(--pad-card-ecossistema-mobile);
  }

  .ecosystem-card > div:last-of-type strong { font-size: var(--tamanho-titulo-ecossistema-mobile); }

  /* Didaskalia+ */
  .plus-section { grid-template-columns: 1fr; }

  .plus-stat {
    min-height: 420px;
    padding: var(--pad-plus-stat-mobile) var(--pad-lateral-mobile);
  }

  .plus-stat strong { font-size: var(--tamanho-numero-plus-mobile); }
  .plus-copy { padding: var(--pad-secao-mobile) var(--pad-lateral-mobile); }

  /* Cursos */
  .course-lines a {
    grid-template-columns: 28px 1fr 18px;
    gap: 14px;
    padding: 20px 0;
  }

  .course-lines small { grid-column: 2; }
  .course-lines b { grid-area: 1 / 3; }

  /* Editorial e eventos */
  .editorial-events { grid-template-columns: 1fr; }

  .feature-panel {
    min-height: 620px;
    padding: var(--pad-painel-mobile) var(--pad-lateral-mobile);
  }

  .cover-stage { height: 300px; }
  .cover { width: 180px; }
  .conference-word { font-size: var(--tamanho-conferencia-mobile); }

  /* Conteúdos */
  .article-grid { border-left: 0; }

  .article-grid article {
    border-right: 0;
    min-height: 280px;
  }

  /* Contato e interesse */
  .contact-section,
  .page-interest {
    grid-template-columns: 1fr;
    gap: 58px;
    padding: var(--pad-secao-mobile) var(--pad-lateral-mobile);
  }

  .field-row { grid-template-columns: 1fr; }

  /* Rodapé */
  .site-footer { padding: var(--pad-rodape-topo-mobile) var(--pad-lateral-mobile) var(--pad-rodape-base-mobile); }
  .footer-lead { padding-bottom: 80px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }

  .footer-grid > div:first-child {
    grid-column: 1 / -1;
    margin-bottom: 20px;
  }

  .footer-grid > div:last-child { grid-column: auto; }

  .footer-bottom {
    flex-direction: column;
    align-items: start;
  }

  /* Páginas internas */
  .internal-hero,
  .detail-hero {
    padding: var(--pad-hero-interno-topo-mobile) var(--pad-lateral-mobile) var(--pad-hero-interno-base-mobile);
  }

  .internal-kicker { margin: 65px 0 28px; }

  .internal-hero h1,
  .detail-hero h1,
  .not-found-copy h1 {
    font-size: var(--tamanho-titulo-pagina-mobile);
  }

  .internal-hero > p {
    margin: 55px 0 0;
    font-size: var(--tamanho-lead-interno-mobile);
  }

  .content-card-grid,
  .legal-grid {
    border-left: 0;
    grid-template-columns: 1fr;
  }

  .content-card {
    border-right: 0;
    min-height: 330px;
  }

  /* Citação */
  .statement {
    grid-template-columns: 1fr;
    gap: 20px;
    padding: var(--pad-secao-mobile) var(--pad-lateral-mobile);
  }

  .statement > span { font-size: var(--tamanho-aspas-mobile); }
  .statement p { font-size: var(--tamanho-citacao-mobile); }

  /* FAQ e detalhe */
  .faq-section { gap: 48px; }

  .detail-grid {
    gap: 56px;
    margin-top: 76px;
  }

  .fact-grid div {
    grid-template-columns: 1fr;
    gap: 8px;
  }

  /* Banner de cookies */
  .cookie-banner {
    padding: 18px;
    bottom: 8px;
    left: 8px;
    right: 8px;
  }

  .cookie-actions { flex-direction: column; }
  .cookie-actions button { width: 100%; }

  /* 404 */
  .not-found-page {
    grid-template-columns: 1fr;
    padding: var(--pad-secao-mobile) var(--pad-lateral-mobile);
  }

  .error-code {
    writing-mode: initial;
    font-size: var(--tamanho-codigo-erro-mobile);
  }

  .not-found-links {
    flex-direction: column;
    align-items: stretch;
  }

  .not-found-links .text-link { width: 100%; }
}
