/* -----------------------------------------------------------------------------
   Portal do Ecossistema — arranjo da página (maquete 14).
   Cor, letra, raio, peso e espaço vêm de cave-ds.css. Aqui ficam apenas
   colunas, ordem e proporção, que são próprias deste portal.

   A página abre com três destinos explícitos: consultoria, área do cliente e
   ferramentas. Conteúdo, formação e projetos em desenvolvimento vêm depois.
   -------------------------------------------------------------------------- */

.portal { background: var(--cave-n-100); }
.portal main { display: block; }

/* Largura de conteúdo e respiro lateral, uma vez só para a página inteira. */
.portal .portal-inner,
.portal .portal-hero-inner,
.portal .portal-topbar-inner {
  width: min(1320px, 100%);
  margin-inline: auto;
  padding-inline: clamp(20px, 4vw, 48px);
}

/* ---------- Barra do topo ---------- */
.portal .portal-topbar { background: var(--cave-surface); border-bottom: 1px solid var(--cave-line); }
.portal .portal-topbar-inner { --portal-header-clearance: 148px; position: relative; min-height: 148px; display: flex; align-items: center; justify-content: space-between; gap: var(--cave-4); }
.portal .portal-brand { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; min-width: var(--cave-tap); min-height: var(--cave-tap); padding: 48px; }
.portal .portal-brand .ecosystem-logo-full { display: block; width: 148px; height: auto; }
.portal .portal-brand .ecosystem-logo-symbol { display: none; }
.portal .portal-nav { display: flex; gap: var(--cave-7); font-size: var(--cave-text-small); font-weight: var(--cave-weight-medium); }
.portal .portal-nav a { color: var(--cave-n-700); text-decoration: none; display: inline-flex; align-items: center; min-height: var(--cave-tap); }
.portal .portal-nav a:hover { color: var(--cave-brand); }
.portal .portal-cta {
  display: inline-flex; align-items: center; gap: var(--cave-2);
  height: 48px; padding-inline: var(--cave-5); border-radius: var(--cave-r-md);
  background: var(--cave-brand); color: #fff; text-decoration: none;
  font-size: var(--cave-text-body); font-weight: var(--cave-weight-strong); white-space: nowrap;
}
.portal .portal-cta:hover { background: var(--cave-brand-hover); }

/* ---------- Etiquetas de seção ---------- */
.portal .portal-eyebrow {
  margin: 0; font-size: var(--cave-text-micro); font-weight: var(--cave-weight-strong);
  letter-spacing: var(--cave-track-eyebrow); text-transform: uppercase; color: var(--cave-brand);
}
.portal .portal-eyebrow-bright { color: var(--cave-bright); }
.portal .portal-eyebrow-discreto { color: var(--cave-faint); }

/* ---------- Hero escuro com as três portas ---------- */
.portal .portal-hero { background: var(--cave-n-900); color: var(--cave-on-dark); padding-block: var(--cave-8) var(--cave-9); }
.portal .portal-hero-inner { display: flex; flex-direction: column; gap: var(--cave-7); }
.portal .portal-hero-copy { display: flex; flex-direction: column; gap: var(--cave-4); max-width: 760px; }
.portal .portal-hero h1 {
  margin: 0; font-size: var(--cave-text-display); font-weight: var(--cave-weight-title);
  letter-spacing: var(--cave-track-display); line-height: 1.12; color: var(--cave-on-dark);
}
.portal .portal-lead { margin: 0; font-size: var(--cave-text-lead); line-height: 1.5; color: var(--cave-on-dark-muted); max-width: 620px; }

.portal .portal-portas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cave-4); }
.portal .porta {
  border-radius: var(--cave-r-xl); padding: var(--cave-6);
  display: flex; flex-direction: column; gap: var(--cave-4);
  min-height: 260px; min-width: 0; text-decoration: none; position: relative;
}
.portal .porta h2 { margin: 0; font-size: 1.75rem; font-weight: var(--cave-weight-title); letter-spacing: var(--cave-track-h2); line-height: 1.12; }
.portal .porta .porta-marca { display: flex; align-items: center; justify-content: center; min-height: 160px; padding: var(--cave-6) var(--cave-7); }
.portal .porta-marca img { display: block; width: 180px; height: auto; max-width: 100%; }
.portal .porta p { margin: 0; font-size: var(--cave-text-body); line-height: 1.65; }
.portal .porta-destinos { display: flex; flex-direction: column; margin-top: auto; padding-top: var(--cave-2); }
.portal .porta-destinos .porta-acao { height: auto; min-height: 48px; padding-block: var(--cave-3); white-space: normal; text-align: center; }
.portal .portal-discover { margin: calc(-1 * var(--cave-4)) 0 0; font-size: var(--cave-text-small); }
.portal .portal-discover a { color: var(--cave-on-dark); display: inline-flex; align-items: center; gap: var(--cave-2); min-height: var(--cave-tap); text-decoration: underline; text-underline-offset: 4px; }
.portal #consultoria, .portal #plataforma, .portal #ferramentas { scroll-margin-top: var(--cave-6); }
.portal #portas { scroll-margin-top: var(--cave-6); }

/* As duas portas de negócio: brancas, avançam. */
.portal .porta-clara { background: var(--cave-surface); color: var(--cave-ink); }
.portal .porta-clara p { color: var(--cave-muted); }
.portal a.porta-clara:hover { box-shadow: var(--cave-shadow-lg, 0 12px 32px rgba(16,62,67,.12)); }

/* A porta do curioso: vidro sobre o escuro, recua. */
.portal .porta-escura { background: #ffffff1a; border: 1px solid #ffffff26; color: var(--cave-on-dark); }

.portal .porta-acoes { margin-top: auto; display: flex; gap: var(--cave-2); }
.portal .porta-acao {
  display: inline-flex; align-items: center; justify-content: center; gap: var(--cave-2);
  height: 48px; padding-inline: var(--cave-4); border-radius: var(--cave-r-md);
  font-size: var(--cave-text-body); font-weight: var(--cave-weight-strong);
  text-decoration: none; white-space: nowrap;
}
.portal .porta > .porta-acao { margin-top: auto; }
.portal .porta-acao-cheia { background: var(--cave-brand); color: #fff; }
.portal .porta-acao-cheia:hover { background: var(--cave-brand-hover); }
.portal .porta-acao-vazada { border: 1px solid var(--cave-line-strong); color: var(--cave-brand); }
.portal .porta-acao-vazada:hover { background: var(--cave-n-100); }
.portal .porta-acao-branca { background: var(--cave-surface); }
.portal .porta-acao-larga { flex: 1; }

.portal .porta-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: var(--cave-2); }
.portal .porta-lista a,
.portal .porta-lista-inativa {
  display: flex; justify-content: space-between; gap: var(--cave-3); align-items: baseline;
  padding-block: var(--cave-2); border-bottom: 1px solid #ffffff26;
  font-size: var(--cave-text-body); line-height: 1.5; color: var(--cave-on-dark); text-decoration: none;
}
.portal .porta-lista a:hover strong { text-decoration: underline; }
.portal .porta-lista-apoio { color: var(--cave-on-dark-muted); }
.portal .porta-lista-seta { display: none; color: var(--cave-bright); font-weight: var(--cave-weight-strong); }
.portal .porta-lista li:last-child a,
.portal .porta-lista-inativa { border-bottom: 0; }
.portal .porta-lista-inativa strong { color: var(--cave-on-dark-muted); font-weight: var(--cave-weight-strong); }

/* ---------- Cabeçalho de seção ---------- */
.portal .portal-cabecalho { display: flex; flex-direction: column; gap: var(--cave-2); max-width: 640px; }
.portal .portal-cabecalho h2 {
  margin: 0; font-size: var(--cave-text-title); font-weight: var(--cave-weight-title);
  letter-spacing: var(--cave-track-display); line-height: 1.12; color: var(--cave-ink);
}

/* ---------- Soluções ---------- */
.portal .portal-solucoes { padding-block: var(--cave-11); }
.portal .portal-solucoes .portal-inner { display: flex; flex-direction: column; gap: var(--cave-8); }
.portal .solucao-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cave-6); align-items: stretch; }
.portal .solucao {
  background: var(--cave-surface); border: 1px solid var(--cave-line); border-radius: var(--cave-r-lg);
  padding: var(--cave-7); display: flex; flex-direction: column; gap: var(--cave-4); min-width: 0;
}
/* A Plataforma é o produto principal: traço de 2px da marca. */
.portal .solucao-destaque { border: 2px solid var(--cave-brand); }
.portal .solucao h3 { margin: 0; font-size: var(--cave-text-h3); font-weight: var(--cave-weight-title); letter-spacing: var(--cave-track-h3); color: var(--cave-ink); }
.portal .solucao p { margin: 0; font-size: var(--cave-text-body); line-height: 1.65; color: var(--cave-muted); }
.portal .solucao-marca { margin: 0; display: flex; align-items: center; min-height: 51px; }
.portal .solucao-marca img { width: auto; max-width: 100%; max-height: 51px; object-fit: contain; object-position: left center; }
.portal .solucao-itens { margin: 0; padding-left: 18px; font-size: var(--cave-text-small); line-height: 1.65; color: var(--cave-n-700); }
.portal .solucao-link { margin-top: auto; font-size: var(--cave-text-body); font-weight: var(--cave-weight-strong); color: var(--cave-brand); text-decoration: none; display: inline-flex; align-items: center; gap: var(--cave-2); min-height: var(--cave-tap); }
.portal .solucao-link:hover { text-decoration: underline; }
.portal .solucao-acoes { margin-top: auto; display: flex; flex-direction: column; gap: var(--cave-2); }
.portal .solucao-link-centro { margin-top: 0; justify-content: center; font-size: var(--cave-text-small); }

.portal .ferramenta-lista { display: flex; flex-direction: column; gap: var(--cave-1); }
.portal .ferramenta {
  display: flex; justify-content: space-between; align-items: center; gap: var(--cave-3);
  min-height: var(--cave-tap); padding: var(--cave-3) var(--cave-4);
  border-radius: var(--cave-r-md); background: var(--cave-n-100);
  color: var(--cave-ink); font-size: var(--cave-text-small); text-decoration: none;
}
.portal a.ferramenta:hover { background: var(--cave-tint); }
.portal .ferramenta-acao { color: var(--cave-brand); font-weight: var(--cave-weight-strong); white-space: nowrap; }
.portal .ferramenta-descricao { display: block; color: var(--cave-muted); font-size: var(--cave-text-micro); line-height: 1.4; margin-top: var(--cave-1); }
.portal .ferramenta-preparo { background: transparent; border: 1px dashed var(--cave-line-strong); color: var(--cave-muted); }
.portal .ferramenta-estado { font-size: var(--cave-text-micro); font-weight: var(--cave-weight-strong); white-space: nowrap; }

/* ---------- Faixa clara: conteúdo, formação e parcerias em linhas ---------- */
.portal .portal-faixa { background: var(--cave-surface); border-block: 1px solid var(--cave-line); padding-block: var(--cave-10); }
.portal .portal-faixa-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cave-10); }
.portal .portal-faixa section { display: flex; flex-direction: column; gap: var(--cave-6); }
.portal .linha-lista { list-style: none; margin: 0; padding: 0; }
.portal .linha {
  display: grid; grid-template-columns: 1fr auto; gap: var(--cave-4); align-items: center;
  padding-block: var(--cave-5); border-top: 1px solid var(--cave-line);
  color: var(--cave-ink); text-decoration: none;
}
.portal .linha-lista li:last-child .linha { border-bottom: 1px solid var(--cave-line); }
.portal .linha:hover strong { color: var(--cave-brand); text-decoration: underline; }
.portal .linha-texto { display: flex; flex-direction: column; gap: var(--cave-1); min-width: 0; }
.portal .linha-titulo { display: flex; gap: var(--cave-2); align-items: center; flex-wrap: wrap; }
.portal .linha-titulo strong { font-size: 1.0625rem; font-weight: var(--cave-weight-strong); }
.portal .linha-apoio { font-size: var(--cave-text-small); line-height: 1.5; color: var(--cave-muted); }
.portal .linha-seta { font-weight: var(--cave-weight-strong); color: var(--cave-brand); align-self: center; }

.portal .selo {
  display: inline-flex; height: 20px; align-items: center; padding-inline: var(--cave-2);
  border-radius: var(--cave-r-full); background: var(--cave-n-100); color: var(--cave-n-700);
  border: 1px solid var(--cave-line); font-size: var(--cave-text-micro); font-weight: var(--cave-weight-strong);
  white-space: nowrap;
}
.portal .selo-claro { background: var(--cave-surface); }

/* ---------- CAVE Flow ---------- */
.portal .portal-flow-secao { padding-block: var(--cave-10); }
.portal .portal-flow-secao > .portal-inner { display: flex; flex-direction: column; gap: var(--cave-7); }
.portal .projetos-grade { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cave-6); }
.portal .projeto-marca { display: flex; flex-direction: column; overflow: hidden; min-width: 0; background: var(--cave-surface); border: 1px solid var(--cave-line); border-radius: var(--cave-r-xl); }
.portal .projeto-logo { display: flex; align-items: center; justify-content: center; min-height: 240px; padding: var(--cave-9); border-bottom: 1px solid var(--cave-line); }
.portal .projeto-logo img { display: block; width: 200px; height: auto; max-width: 100%; }
.portal .projeto-conteudo { flex: 1; display: flex; flex-direction: column; align-items: flex-start; gap: var(--cave-4); padding: var(--cave-7); }
.portal .projeto-conteudo h3 { margin: 0; font-size: var(--cave-text-h3); color: var(--cave-ink); font-weight: var(--cave-weight-title); line-height: 1.2; }
.portal .projeto-conteudo p { margin: 0; color: var(--cave-muted); font-size: var(--cave-text-body); line-height: 1.65; }
.portal .projeto-conteudo .porta-acao { height: auto; min-height: 48px; white-space: normal; padding-block: var(--cave-3); margin-top: auto; text-align: center; }
.portal .flow-bloco {
  background: var(--cave-tint); border: 1px solid var(--cave-line-strong); border-radius: var(--cave-r-xl);
  padding: var(--cave-8); display: grid; grid-template-columns: 1fr auto; gap: var(--cave-7); align-items: center;
}
.portal .flow-texto { display: flex; flex-direction: column; gap: var(--cave-3); }
.portal .flow-chapeu { display: flex; gap: var(--cave-2); align-items: center; flex-wrap: wrap; }
.portal .flow-bloco h3 { margin: 0; font-size: var(--cave-text-h2); font-weight: var(--cave-weight-title); letter-spacing: var(--cave-track-h2); line-height: 1.12; color: var(--cave-ink); }
.portal .flow-bloco p { margin: 0; font-size: var(--cave-text-body); line-height: 1.65; color: var(--cave-n-700); max-width: 720px; }

/* ---------- Orientação ao terminar a leitura ---------- */
.portal .portal-ajuda { background: var(--cave-surface); border-top: 1px solid var(--cave-line); padding-block: var(--cave-9); }
.portal .portal-ajuda-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: var(--cave-8); align-items: center; }
.portal .portal-ajuda-texto { display: flex; flex-direction: column; gap: var(--cave-3); max-width: 640px; }
.portal .portal-ajuda h2 { margin: 0; color: var(--cave-ink); font-size: var(--cave-text-h2); font-weight: var(--cave-weight-title); letter-spacing: var(--cave-track-h2); line-height: 1.2; }
.portal .portal-ajuda-texto > p:last-child { margin: 0; color: var(--cave-muted); font-size: var(--cave-text-body); line-height: 1.65; }
.portal .portal-ajuda-acoes { display: flex; flex-direction: column; align-items: stretch; gap: var(--cave-2); min-width: 0; }
.portal .portal-ajuda .porta-acao { height: auto; min-height: 48px; padding-block: var(--cave-3); white-space: normal; text-align: center; }
.portal .portal-ajuda-canal { color: var(--cave-muted); text-align: center; font-size: var(--cave-text-small); }
.portal .portal-voltar { display: inline-flex; align-items: center; justify-content: center; gap: var(--cave-2); min-height: var(--cave-tap); color: var(--cave-brand); font-size: var(--cave-text-small); font-weight: var(--cave-weight-strong); text-underline-offset: 4px; text-align: center; }

/* ---------- Rodapé: marcas do grupo, parceiros e formação ---------- */
.portal .portal-comunidade { background: var(--cave-surface); border-top: 1px solid var(--cave-line); padding-block: var(--cave-10); }
.portal .portal-comunidade > .portal-inner { display: flex; flex-direction: column; gap: var(--cave-10); }
.portal #marcas, .portal #formacao, .portal #parceiros { scroll-margin-top: var(--cave-6); }
.portal .grupo-marcas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cave-4); margin-top: var(--cave-7); }
.portal .grupo-marca { display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--cave-line); border-radius: var(--cave-r-lg); text-decoration: none; color: var(--cave-ink); overflow: hidden; }
.portal .grupo-marca:hover { border-color: var(--cave-brand); }
.portal .grupo-logo { display: flex; align-items: center; justify-content: center; min-height: 160px; padding: var(--cave-5); }
.portal .grupo-logo img { display: block; width: 130px; height: auto; max-width: 100%; }
.portal .grupo-podcast .grupo-logo img { width: 94px; }
.portal .grupo-marca > span:not(.grupo-logo):not(.sr-only) { display: flex; align-items: center; justify-content: space-between; gap: var(--cave-2); flex: 1; border-top: 1px solid var(--cave-line); padding: var(--cave-4); font-size: var(--cave-text-small); font-weight: var(--cave-weight-medium); line-height: 1.5; }
.portal .grupo-ferramentas { display: grid; grid-template-columns: minmax(120px, 1fr) repeat(3, minmax(0, 1fr)); align-items: center; gap: var(--cave-6); margin-top: var(--cave-7); border-top: 1px solid var(--cave-line); padding-top: var(--cave-7); }
.portal .grupo-ferramentas > p { margin: 0; color: var(--cave-muted); font-size: var(--cave-text-small); font-weight: var(--cave-weight-strong); }
.portal .grupo-ferramentas > a, .portal .grupo-ferramentas > div { display: flex; flex-direction: column; align-items: center; gap: var(--cave-8); padding: var(--cave-8) var(--cave-5) 0; color: var(--cave-muted); text-decoration: none; font-size: var(--cave-text-small); text-align: center; }
.portal .grupo-ferramentas img { width: 130px; max-width: 100%; height: auto; }
.portal .grupo-ferramentas a:hover > span:not(.sr-only) { color: var(--cave-brand); text-decoration: underline; }
.portal .comunidade-detalhes { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--cave-10); padding-top: var(--cave-9); border-top: 1px solid var(--cave-line); }
.portal .comunidade-detalhes section { display: flex; flex-direction: column; gap: var(--cave-4); min-width: 0; }
.portal .comunidade-detalhes h2 { margin: 0; color: var(--cave-ink); font-size: var(--cave-text-h2); line-height: 1.2; font-weight: var(--cave-weight-title); }
.portal .comunidade-detalhes h3 { margin: 0; color: var(--cave-ink); font-size: var(--cave-text-h3); line-height: 1.3; font-weight: var(--cave-weight-strong); }
.portal .comunidade-detalhes p { margin: 0; color: var(--cave-muted); font-size: var(--cave-text-body); line-height: 1.65; }
.portal .comunidade-detalhes p.portal-eyebrow { font-size: var(--cave-text-micro); color: var(--cave-brand); }
.portal .formacao-card { display: flex; flex-direction: column; gap: var(--cave-4); padding: var(--cave-7); background: var(--cave-tint); border-radius: var(--cave-r-lg); flex: 1; }
.portal .formacao-modalidade { font-size: var(--cave-text-small); font-weight: var(--cave-weight-strong); color: var(--cave-brand); }
.portal .parceiro-card { display: flex; align-items: center; gap: var(--cave-5); padding-block: var(--cave-3); }
.portal .parceiro-card img { display: block; width: 80px; height: auto; flex-shrink: 0; }
.portal .parceiro-card h3 { font-size: var(--cave-text-h4); margin-bottom: var(--cave-2); }
.portal .parceiro-link { display: flex; align-items: center; justify-content: space-between; gap: var(--cave-4); color: var(--cave-brand); border-block: 1px solid var(--cave-line); padding-block: var(--cave-4); text-decoration: none; }
.portal .parceiro-link > span:first-child { display: flex; flex-direction: column; gap: var(--cave-1); }
.portal .parceiro-link > span:first-child > span, .portal .parceiro-faculdade span { display: block; font-size: var(--cave-text-small); color: var(--cave-muted); }
.portal .parceiro-link:hover strong { text-decoration: underline; }
.portal .parceiro-faculdade strong { color: var(--cave-ink); }

/* ---------- Faixa final escura ---------- */
.portal .portal-rodape { background: var(--cave-n-900); color: var(--cave-on-dark-muted); padding-block: var(--cave-8); font-size: var(--cave-text-small); }
.portal .portal-rodape-inner { display: flex; justify-content: space-between; align-items: center; gap: var(--cave-4); flex-wrap: wrap; }
.portal .portal-rodape a { color: var(--cave-on-dark-muted); text-decoration: none; display: inline-flex; align-items: center; gap: var(--cave-2); min-height: var(--cave-tap); }
.portal .portal-rodape a:hover { color: var(--cave-on-dark); text-decoration: underline; }

/* ---------- Foco visível sobre o escuro ---------- */
.portal .portal-hero a:focus-visible,
.portal .portal-rodape a:focus-visible { outline: 3px solid var(--cave-bright); outline-offset: 4px; box-shadow: none; }

/* ---------- Telas médias ---------- */
@media (max-width: 1040px) {
  .portal .portal-portas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal .portal-portas .porta:last-child { grid-column: 1 / -1; }
  .portal .solucao-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal .solucao-destaque { grid-column: 1 / -1; }
  .portal .portal-faixa-grade { gap: var(--cave-8); }
  .portal .portal-nav { display: none; }
  .portal .grupo-marcas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .portal .grupo-ferramentas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .portal .grupo-ferramentas > p { grid-column: 1 / -1; }
}

/* ---------- Celular (maquete 14B) ---------- */
@media (max-width: 760px) {
  /* A assinatura completa permanece legível, com a área de proteção livre. */
  .portal .portal-topbar-inner { --portal-header-clearance: 182px; display: grid; grid-template-columns: auto 1fr; min-height: 182px; column-gap: 12px; row-gap: 0; padding-bottom: 12px; }
  .portal .portal-brand { grid-column: 1 / -1; justify-self: center; padding: 42px; }
  .portal .portal-brand .ecosystem-logo-full { display: block; width: 130px; }
  .portal .portal-cta { justify-self: end; }
  .portal .portal-nav { display: none; }
  .portal .portal-cta { height: 44px; padding-inline: var(--cave-3); font-size: var(--cave-text-small); }
  .portal .portal-cta > span[aria-hidden] { display: none; }

  .portal .portal-hero { padding-block: var(--cave-6) var(--cave-7); }
  .portal .portal-hero-inner { gap: var(--cave-5); }
  .portal .portal-hero-copy { gap: var(--cave-3); }
  .portal .portal-hero h1 { font-size: 2rem; }
  .portal .portal-lead { font-size: var(--cave-text-body); }

  .portal .portal-portas { grid-template-columns: minmax(0, 1fr); gap: var(--cave-5); }
  .portal .porta { border-radius: var(--cave-r-lg); padding: var(--cave-5); gap: var(--cave-2); min-height: 0; }
  .portal .portal-portas .porta:last-child { grid-column: auto; }
  .portal .porta h2 { font-size: 1.375rem; letter-spacing: var(--cave-track-h3); }
  .portal .porta-acoes { flex-direction: column; margin-top: var(--cave-2); }
  .portal .porta > .porta-acao { margin-top: var(--cave-2); }
  .portal .porta-acao-larga { flex: none; }
  .portal .porta-lista a { justify-content: space-between; padding-block: 10px; min-height: var(--cave-tap); align-items: center; }
  .portal .porta-lista a .porta-lista-apoio { display: none; }
  .portal .porta-lista-seta { display: inline; }
  .portal .porta-lista-inativa { flex-wrap: wrap; gap: 0 var(--cave-2); }

  .portal .portal-solucoes { padding-block: var(--cave-9); }
  .portal .solucao-grade { grid-template-columns: minmax(0, 1fr); gap: var(--cave-4); }
  .portal .solucao-destaque { grid-column: auto; }
  .portal .solucao { padding: var(--cave-5); }

  .portal .portal-faixa { padding-block: var(--cave-9); }
  .portal .portal-faixa-grade { grid-template-columns: minmax(0, 1fr); gap: var(--cave-8); }

  .portal .portal-flow-secao { padding-block: var(--cave-9); }
  .portal .flow-bloco { grid-template-columns: minmax(0, 1fr); padding: var(--cave-5); gap: var(--cave-5); }
  .portal .flow-bloco .porta-acao { justify-content: center; }

  .portal .portal-ajuda-inner { grid-template-columns: minmax(0, 1fr); gap: var(--cave-5); }
  .portal .portal-ajuda h2 { font-size: var(--cave-text-h3); }

  .portal .projetos-grade, .portal .comunidade-detalhes { grid-template-columns: minmax(0, 1fr); }
  .portal .projeto-logo { min-height: 208px; padding: var(--cave-9); }
  .portal .projeto-logo img { width: 160px; }
  .portal .projeto-conteudo, .portal .formacao-card { padding: var(--cave-5); }
  .portal .projeto-conteudo .porta-acao { align-self: stretch; }
  .portal .grupo-marcas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal .grupo-logo { min-height: 144px; padding-inline: var(--cave-4); }
  .portal .grupo-logo img { width: 110px; }
  .portal .grupo-plataforma .grupo-logo img { width: 130px; }
  .portal .grupo-podcast .grupo-logo img { width: 80px; }
  .portal .grupo-ferramentas { grid-template-columns: minmax(0, 1fr); gap: var(--cave-4); }
  .portal .grupo-ferramentas > a, .portal .grupo-ferramentas > div { padding-inline: 0; }
  .portal .grupo-ferramentas img { width: 110px; }
  .portal .portal-comunidade { padding-block: var(--cave-9); }
  .portal .comunidade-detalhes { gap: var(--cave-8); }

  .portal .portal-rodape-inner { flex-direction: column; align-items: flex-start; gap: var(--cave-1); }
}

@media (max-width: 480px) {
  .portal .grupo-marcas, .portal .grupo-ferramentas { grid-template-columns: minmax(0, 1fr); }
  .portal .grupo-logo { min-height: 176px; }
  .portal .grupo-logo img { width: 140px; }
  .portal .grupo-ferramentas > a, .portal .grupo-ferramentas > div { padding: var(--cave-8); border: 1px solid var(--cave-line); border-radius: var(--cave-r-lg); }
  .portal .grupo-ferramentas img { width: 130px; }
}

/* Auditoria UX: navegação recolhida em telas pequenas, sem faixa de marcas. */
.cave-section-menu { display:none; position:relative; flex:none; }
.cave-section-menu summary { display:flex; align-items:center; justify-content:center; gap:8px; min-height:44px; padding:0 12px; border:1px solid var(--cave-line-strong); border-radius:var(--cave-r-md); color:var(--cave-ink); background:var(--cave-surface); cursor:pointer; list-style:none; font:700 14px/1.4 Nunito,sans-serif; }
.cave-section-menu summary::-webkit-details-marker { display:none; }
.cave-section-menu summary:focus-visible { outline:3px solid var(--cave-brand); outline-offset:3px; }
.cave-section-menu nav { position:absolute; right:0; top:calc(100% + 8px); z-index:100; display:flex; flex-direction:column; width:min(280px,calc(100vw - 40px)); padding:8px; border:1px solid var(--cave-line); border-radius:var(--cave-r-lg); background:var(--cave-surface); box-shadow:var(--cave-shadow-lg); }
.cave-section-menu nav a { display:flex; align-items:center; min-height:44px; padding:10px 12px; color:var(--cave-ink); text-decoration:none; font:600 14px/1.45 Nunito,sans-serif; border-radius:var(--cave-r-sm); }
.cave-section-menu nav a:hover { background:var(--cave-tint); color:var(--cave-brand); }
.cave-section-menu nav a:focus-visible { outline:2px solid var(--cave-brand); outline-offset:-2px; }
.portal .cta-mobile { display:none; }
@media(max-width:1200px) { .portal .portal-nav { display:none; } .portal .cave-section-menu { display:block; margin-left:auto; } }
@media(max-width:760px) { .portal .cave-section-menu { margin-left:0; } .portal .cta-mobile { display:none; } .portal .cta-desktop { display:inline; } }

/* O menu aberto fica integralmente dentro da tela, mesmo com CTA ao lado. */
@media(max-width:1200px) { .portal .cave-section-menu { position:static; } .portal .cave-section-menu nav { position:absolute; top:calc(100% + 8px); right:20px; left:20px; width:auto; max-width:none; max-height:min(440px,calc(100dvh - var(--portal-header-clearance) - 24px)); overflow-y:auto; } }

/* ---------- Apresentações dos produtos: conhecer e entrar ---------- */
.portal .portal-produtos { background: var(--cave-surface); padding-block: var(--cave-11); scroll-margin-top: var(--cave-6); }
.portal .portal-produtos .portal-inner { display: flex; flex-direction: column; gap: var(--cave-8); }
.portal .portal-produtos .portal-cabecalho { max-width: 760px; }
.portal .portal-produtos-lead { margin: var(--cave-3) 0 0; color: var(--cave-muted); font-size: var(--cave-text-lead); line-height: var(--cave-lh-body); }
.portal .produtos-grade { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--cave-6); }
.portal .produto-card { display: flex; flex-direction: column; min-width: 0; overflow: hidden; background: var(--cave-canvas); border: 1px solid var(--cave-line); border-radius: var(--cave-r-xl); }
.portal .produto-marca { display: flex; align-items: center; justify-content: center; min-height: 208px; padding: var(--cave-9); margin: 0; background: var(--cave-surface); border-bottom: 1px solid var(--cave-line); }
.portal .produto-marca img { display: block; width: 160px; height: auto; max-width: 100%; }
.portal .produto-conteudo { display: flex; flex: 1; flex-direction: column; gap: var(--cave-4); padding: var(--cave-7); }
.portal .produto-conteudo > p:not(.portal-eyebrow) { margin: 0; color: var(--cave-muted); font-size: var(--cave-text-body); line-height: var(--cave-lh-body); }
.portal .produto-recursos { display: flex; flex-direction: column; gap: var(--cave-2); margin: 0; padding: 0; list-style: none; color: var(--cave-ink); font-size: var(--cave-text-small); }
.portal .produto-recursos li { display: flex; align-items: baseline; gap: var(--cave-2); }
.portal .produto-recursos li::before { content: "✓"; color: var(--cave-brand); font-weight: var(--cave-weight-strong); }
.portal .produto-acoes { display: flex; flex-direction: column; gap: var(--cave-2); width: 100%; margin-top: auto; padding-top: var(--cave-3); }
.portal .produto-acoes .porta-acao { height: auto; min-height: var(--cave-tap); padding-block: var(--cave-3); white-space: normal; text-align: center; }
.portal .produto-entrar { display: inline-flex; align-items: center; justify-content: center; gap: var(--cave-2); min-height: var(--cave-tap); color: var(--cave-brand); font-size: var(--cave-text-small); font-weight: var(--cave-weight-strong); text-decoration: underline; text-underline-offset: var(--cave-1); }
.portal .produto-entrar:hover { color: var(--cave-brand-hover); }
@media(max-width:1040px) {
  .portal .produtos-grade { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .portal .produto-card:last-child { grid-column: 1 / -1; }
}
@media(max-width:760px) {
  .portal .portal-produtos { padding-block: var(--cave-9); }
  .portal .portal-produtos-lead { font-size: var(--cave-text-body); }
  .portal .produtos-grade { grid-template-columns: minmax(0, 1fr); gap: var(--cave-5); }
  .portal .produto-card:last-child { grid-column: auto; }
  .portal .produto-marca img { width: 144px; }
  .portal .produto-conteudo { padding: var(--cave-5); }
}
