/*
 * Aprendiz+ — camada de experiência: identidade, cabeçalho, rodapé, componentes
 * da página inicial e movimento. Carregada depois de portal.css.
 * Regras de movimento: só transform/opacity; efeitos de mouse apenas em
 * (hover: hover) and (pointer: fine); tudo desliga com prefers-reduced-motion
 * ou com html[data-a11y-pausar] (painel de acessibilidade).
 */

/* ---------- Identidade ---------- */
.badge { font-family: var(--body); }
.brand { font-family: var(--display); font-weight: 750; letter-spacing: -.04em; }
.brand img { border-radius: .55rem; }
.eyebrow .label-index, .label-index.marca { display: none; } /* o selo "A+" duplicava a logo */
.eyebrow { font-family: var(--body); font-weight: 750; letter-spacing: .12em; text-transform: uppercase; font-size: .74rem; }
.eyebrow::before {
  content: ""; width: 1.6rem; height: .5rem; flex: none; border-radius: 999px;
  background: linear-gradient(90deg, var(--blue) 0 60%, var(--orange) 60%);
}
h1 { font-weight: 760; }
h1 span, h2 span.ponto { color: var(--orange); }
body {
  background-color: var(--paper);
  background-image: radial-gradient(rgba(22, 27, 43, .045) 1px, transparent 1.2px);
  background-size: 22px 22px;
}

/* ---------- Cabeçalho ---------- */
.site-header {
  position: sticky; top: 0; z-index: 50; background: transparent;
  transition: box-shadow .3s var(--ease);
}
/* O desfoque fica numa camada de fundo: backdrop-filter no próprio cabeçalho prenderia o menu fixo do celular dentro dele. */
.site-header::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter: saturate(1.4) blur(12px); -webkit-backdrop-filter: saturate(1.4) blur(12px);
}
.site-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(22, 27, 43, .45); }
.site-header .header-inner { transition: none; }
.site-header.is-scrolled .header-inner { min-height: 62px; }
.brand { view-transition-name: marca; }
.menu { display: flex; align-items: center; gap: .5rem 1.25rem; flex-wrap: wrap; }
.menu-acoes { display: flex; align-items: center; gap: .5rem; }
.menu-entrar {
  display: inline-flex; align-items: center; min-height: 44px; padding: .35rem .7rem;
  color: var(--ink); font-weight: 800; font-size: .9rem; text-decoration: none; border-radius: .5rem;
}
.menu-entrar:hover { background: var(--blue-light); }
.button.small { min-height: 44px; padding: .5rem .95rem; font-size: .88rem; }
.header-inner nav a { border-radius: .45rem; transition: background-color .2s var(--ease), color .2s var(--ease); }
.header-inner nav a:hover { background: var(--blue-light); text-decoration: none; }
.menu-toggle { display: none; }

@media (max-width: 62rem) {
  .js .menu-toggle {
    display: inline-flex; align-items: center; gap: .55rem; min-height: 46px; padding: .4rem .85rem;
    border: 2px solid var(--ink); border-radius: 999px; background: var(--white); color: var(--ink);
    font: 800 .9rem/1 var(--body);
  }
  .menu-toggle-barras { position: relative; width: 1.15rem; height: .8rem; }
  .menu-toggle-barras::before, .menu-toggle-barras::after, .menu-toggle-barras span {
    content: ""; position: absolute; left: 0; right: 0; height: 2px; border-radius: 2px; background: currentColor;
    transition: transform .3s var(--ease), opacity .2s var(--ease);
  }
  .menu-toggle-barras::before { top: 0; }
  .menu-toggle-barras span { top: calc(50% - 1px); }
  .menu-toggle-barras::after { bottom: 0; }
  .menu-toggle[aria-expanded="true"] .menu-toggle-barras::before { transform: translateY(.36rem) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle-barras span { opacity: 0; }
  .menu-toggle[aria-expanded="true"] .menu-toggle-barras::after { transform: translateY(-.36rem) rotate(-45deg); }
  .js .menu {
    position: fixed; inset: 0 0 0 auto; z-index: 60; width: min(23rem, 88vw);
    flex-direction: column; align-items: stretch; justify-content: flex-start; gap: 1.25rem;
    padding: 5.5rem 1.4rem calc(1.5rem + env(safe-area-inset-bottom, 0px));
    background: var(--paper); box-shadow: -30px 0 60px -20px rgba(22, 27, 43, .35);
    clip-path: inset(0 0 0 100%); visibility: hidden;
    transition: clip-path .45s var(--ease), visibility 0s linear .45s;
    overflow-y: auto; overscroll-behavior: contain;
  }
  .js .menu.is-open { clip-path: inset(0); visibility: visible; transition: clip-path .45s var(--ease), visibility 0s; }
  .js .menu nav { flex-direction: column; gap: .25rem; }
  .js .menu nav a {
    min-height: 54px; padding: .6rem .9rem; font: 760 1.45rem/1.1 var(--display); letter-spacing: -.02em;
    border-bottom: 1px solid var(--line); border-radius: 0;
  }
  .js .menu nav a[aria-current="page"]::after { inset: auto auto 50% .1rem; width: .35rem; height: .35rem; border-radius: 50%; transform: translateY(50%); }
  .js .menu .menu-acoes { flex-direction: column; align-items: stretch; gap: .6rem; }
  .js .menu .menu-acoes > * { justify-content: center; min-height: 52px; font-size: 1rem; }
  .js .menu .menu-entrar { border: 2px solid var(--ink); }
  .js .header-inner > nav { order: initial; flex: initial; }
  .js .menu.is-open nav a { animation: menu-item .5s var(--ease) both; animation-delay: calc(var(--i, 0) * 45ms + 80ms); }
  .menu-veu {
    position: fixed; inset: 0; z-index: 45; background: rgba(15, 18, 32, .45);
    opacity: 0; transition: opacity .35s var(--ease); pointer-events: none;
  }
  .menu-veu.is-open { opacity: 1; pointer-events: auto; }
  .js .menu-toggle { position: relative; z-index: 70; }
  .js .header-inner { flex-wrap: nowrap; }
  @keyframes menu-item { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }
}

/* ---------- Botões: microinterações ---------- */
.button { position: relative; overflow: hidden; transition: transform .18s var(--ease), background-color .2s var(--ease), box-shadow .25s var(--ease), border-color .2s var(--ease); }
.button:active:not(:disabled) { transform: translateY(1px) scale(.985); }
.button.primary { box-shadow: 0 6px 0 -1px #14246555; }
.button.primary:hover:not(:disabled) { box-shadow: 0 9px 18px -6px #14246588; transform: translateY(-1px); }
.button.coral { background: var(--orange); color: var(--ink); }
.button.coral:hover { background: #ff9876; }
.button.light { background: #fff; color: var(--blue-deep); }
.button.light:hover { background: var(--blue-light); }
.button.ghost-light { color: #fff; border-color: rgba(255, 255, 255, .7); background: transparent; }
.button.ghost-light:hover { background: rgba(255, 255, 255, .12); }
.button.large { min-height: 56px; padding: .8rem 1.35rem; font-size: 1rem; }

/* ---------- Herói ---------- */
.heroi { position: relative; padding-block: clamp(2.2rem, 5vw, 4.6rem) clamp(2.4rem, 6vw, 5rem); overflow: clip; }
.heroi-grade { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: clamp(2rem, 5vw, 4.5rem); align-items: center; }
.heroi h1 {
  margin-block: 1rem 1.2rem; font-size: clamp(2.9rem, 6.6vw, 6.4rem); line-height: .94; letter-spacing: -.05em;
  view-transition-name: titulo-pagina;
}
.heroi h1 .destaque {
  position: relative; display: inline-block; color: var(--blue); white-space: nowrap;
}
.heroi h1 .destaque::after {
  content: ""; position: absolute; left: -.04em; right: -.04em; bottom: .02em; height: .2em; z-index: -1;
  background: var(--orange); border-radius: .1em; transform-origin: left; opacity: .85;
  animation: sublinhar .9s .45s var(--ease) both;
}
@keyframes sublinhar { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.heroi-texto { max-width: 46ch; font-size: clamp(1.06rem, 1.55vw, 1.24rem); color: #2c3142; }
.heroi .actions { margin-top: 1.7rem; }
.heroi-provas { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1.5rem 0 0; padding: 0; list-style: none; }
.heroi-provas li {
  display: inline-flex; align-items: center; gap: .45rem; padding: .42rem .8rem; border-radius: 999px;
  background: var(--white); border: 1px solid var(--line); font-size: .84rem; font-weight: 700;
}
.heroi-provas svg { width: 1rem; height: 1rem; color: var(--blue); }

/* Pilha de crachás */
.crachas { position: relative; min-height: 32rem; isolation: isolate; }
.crachas-foto {
  position: absolute; inset: 6% 8% 10% 14%; border-radius: 1.6rem; overflow: hidden; z-index: 0;
  box-shadow: 0 30px 70px -30px rgba(22, 27, 43, .55);
}
.crachas-foto img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 40%; transform: scale(1.04); }
.crachas-foto::after { content: ""; position: absolute; inset: 0; background: linear-gradient(200deg, transparent 45%, rgba(25, 41, 91, .55)); }
.cracha {
  position: absolute; z-index: 2; width: clamp(12rem, 17vw, 15rem); padding: 1.05rem 1.1rem 1.15rem;
  border-radius: 1.1rem; background: var(--white); color: var(--ink);
  box-shadow: 0 22px 40px -18px rgba(22, 27, 43, .5), 0 0 0 1px rgba(22, 27, 43, .06);
  animation: flutuar 7s ease-in-out infinite; animation-delay: var(--atraso, 0s);
  transform: rotate(var(--giro, 0deg));
}
.cracha::before {
  content: ""; position: absolute; top: -1.6rem; left: 50%; width: .5rem; height: 2rem; translate: -50% 0;
  border-radius: 999px; background: linear-gradient(var(--orange), #e86a44);
}
.cracha::after {
  content: ""; position: absolute; top: .55rem; left: 50%; width: 2.4rem; height: .5rem; translate: -50% 0;
  border-radius: 999px; background: var(--paper); box-shadow: inset 0 1px 2px rgba(0, 0, 0, .18);
}
.cracha-topo { display: flex; justify-content: space-between; align-items: center; margin-top: .65rem; font: 800 .62rem/1 var(--body); letter-spacing: .14em; color: var(--blue); }
.cracha-topo img { width: 1.5rem; height: 1.5rem; border-radius: .35rem; }
.cracha-avatar {
  display: grid; place-items: center; width: 3.2rem; height: 3.2rem; margin-block: .8rem .65rem; border-radius: 1rem;
  background: var(--blue-light); color: var(--blue);
}
.cracha-avatar svg { width: 1.9rem; height: 1.9rem; }
.cracha strong { display: block; font: 760 1.18rem/1.1 var(--display); letter-spacing: -.02em; }
.cracha small { display: block; margin-top: .25rem; color: var(--muted); font-size: .8rem; font-weight: 600; }
.cracha-barra { display: flex; gap: 3px; margin-top: .85rem; height: 1.3rem; }
.cracha-barra i { flex: 1; background: var(--ink); border-radius: 1px; }
.cracha-barra i:nth-child(3n) { flex: .4; }
.cracha-barra i:nth-child(4n) { flex: 1.8; }
.cracha.c1 { top: 2%; left: 0; --giro: -7deg; --atraso: -1.5s; }
.cracha.c2 { top: 30%; right: -2%; --giro: 6deg; --atraso: -3.2s; background: var(--blue); color: #fff; }
.cracha.c2 .cracha-topo, .cracha.c2 small { color: #dbe2ff; }
.cracha.c2 .cracha-avatar { background: rgba(255, 255, 255, .16); color: #fff; }
.cracha.c2 .cracha-barra i { background: #fff; }
.cracha.c3 { bottom: 2%; left: 10%; --giro: 3deg; --atraso: -5s; background: var(--orange); }
.cracha.c3 .cracha-topo, .cracha.c3 small { color: #3b1a10; }
.cracha.c3 .cracha-avatar { background: rgba(255, 255, 255, .45); color: var(--ink); }
@keyframes flutuar {
  0%, 100% { transform: translateY(0) rotate(var(--giro, 0deg)); }
  50% { transform: translateY(-12px) rotate(calc(var(--giro, 0deg) * .7)); }
}

/* ---------- Faixa em movimento ---------- */
.faixa { position: relative; overflow: hidden; padding-block: 1.05rem; background: var(--ink); color: #fff; }
.faixa-trilho { display: flex; width: max-content; gap: 2.5rem; animation: faixa 38s linear infinite; }
.faixa:hover .faixa-trilho { animation-play-state: paused; }
.faixa-lista { display: flex; gap: 2.5rem; margin: 0; padding: 0; list-style: none; }
.faixa-lista li { display: inline-flex; align-items: center; gap: .9rem; white-space: nowrap; font: 700 clamp(1.05rem, 2vw, 1.5rem)/1 var(--display); letter-spacing: -.01em; }
.faixa-lista li::after { content: "✦"; color: var(--orange); font-size: .8em; }
@keyframes faixa { to { transform: translateX(-50%); } }

/* ---------- Seções ---------- */
.titulo-secao { max-width: 22ch; margin-top: .7rem; }
.secao-cabeca { display: flex; justify-content: space-between; align-items: end; flex-wrap: wrap; gap: 1rem 3rem; margin-bottom: clamp(1.6rem, 4vw, 3rem); }
.secao-cabeca > p { max-width: 40ch; color: var(--muted); font-size: 1.05rem; }

.passos { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; counter-reset: passo; margin: 0; padding: 0; list-style: none; }
.passo {
  position: relative; display: flex; flex-direction: column; gap: .7rem; min-height: 16rem; padding: 1.4rem;
  border-radius: 1.25rem; background: var(--white); border: 1px solid var(--line);
}
.passo::before {
  counter-increment: passo; content: "0" counter(passo);
  font: 760 3.4rem/1 var(--display); letter-spacing: -.05em; color: transparent; -webkit-text-stroke: 1.5px var(--blue);
}
.passo h3 { font-size: clamp(1.25rem, 1.8vw, 1.55rem); }
.passo p { color: var(--muted); font-size: .95rem; }
.passo:nth-child(2) { background: var(--blue-light); border-color: #c6d0ff; }
.passo:nth-child(3) { background: #fde4d8; border-color: #f5c1aa; }
.passo:nth-child(4) { background: var(--ink); color: #fff; border-color: var(--ink); }
.passo:nth-child(4)::before { -webkit-text-stroke-color: var(--orange); }
.passo:nth-child(4) p { color: #cfd3e3; }

.bento { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 1rem; }
.bento-card {
  position: relative; display: flex; flex-direction: column; gap: .7rem; min-height: 15rem; padding: clamp(1.25rem, 2.5vw, 2rem);
  border-radius: 1.4rem; background: var(--white); border: 1px solid var(--line); overflow: hidden;
}
.bento-card h3 { font-size: clamp(1.35rem, 2.2vw, 2rem); max-width: 18ch; }
.bento-card p { color: var(--muted); max-width: 44ch; }
.bento-card .mono { color: var(--blue); }
.bento-card .inline-link { margin-top: auto; }
.bento-card.largo { grid-column: span 4; }
.bento-card.medio { grid-column: span 3; }
.bento-card.estreito { grid-column: span 2; }
.bento-card.azul { background: var(--blue); color: #fff; border-color: var(--blue); }
.bento-card.azul p, .bento-card.azul .mono { color: #dfe5ff; }
.bento-card.azul a { color: #fff; }
.bento-card.coral { background: var(--orange); border-color: var(--orange); }
.bento-card.coral p, .bento-card.coral .mono { color: #3b1a10; }
.bento-card.coral a { color: var(--ink); }
.bento-card.tinta { background: var(--ink); color: #fff; border-color: var(--ink); }
.bento-card.tinta p, .bento-card.tinta .mono { color: #cfd3e3; }
.bento-card.tinta a { color: #fff; }
.bento-icone { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .9rem; background: var(--blue-light); color: var(--blue); }
.bento-card.azul .bento-icone, .bento-card.tinta .bento-icone { background: rgba(255, 255, 255, .14); color: #fff; }
.bento-card.coral .bento-icone { background: rgba(255, 255, 255, .45); color: var(--ink); }
.bento-icone svg { width: 1.5rem; height: 1.5rem; }
.selo-status {
  display: inline-flex; align-items: center; gap: .4rem; width: fit-content; padding: .3rem .65rem; border-radius: 999px;
  font-size: .75rem; font-weight: 800; background: var(--mint); color: #1c4a2a;
}
.selo-status.breve { background: var(--sand); color: #6a3d10; }
.bento-card.azul .selo-status, .bento-card.tinta .selo-status { background: rgba(255, 255, 255, .16); color: #fff; }

.empresas-faixa { position: relative; color: #fff; background: var(--blue-deep); overflow: hidden; }
.empresas-faixa::before {
  content: ""; position: absolute; inset: -40% -10% auto auto; width: 42rem; height: 42rem; border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 130, 91, .35), transparent 65%);
}
.empresas-grade { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(2rem, 6vw, 5rem); align-items: center; }
.empresas-faixa .eyebrow { color: #ffb99d; }
.empresas-faixa h2 { margin-block: .7rem 1rem; }
.empresas-faixa p { color: #dfe4f5; }
.lei-cartao { padding: clamp(1.4rem, 3vw, 2.2rem); border-radius: 1.4rem; background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .18); }
.lei-numero { display: block; font: 760 clamp(3.4rem, 8vw, 6rem)/.9 var(--display); letter-spacing: -.05em; color: var(--orange); }
.lei-cartao ul { display: grid; gap: .65rem; margin: 1.2rem 0 0; padding: 0; list-style: none; }
.lei-cartao li { display: flex; gap: .6rem; align-items: flex-start; color: #e8ecff; }
.lei-cartao li svg { flex: none; width: 1.2rem; height: 1.2rem; margin-top: .2rem; color: var(--orange); }
.lei-fonte { display: block; margin-top: 1rem; font-size: .8rem; color: #b9c2e6; }
.lei-fonte a { color: #fff; }

.galeria { display: grid; grid-template-columns: 1.2fr .8fr 1fr; gap: 1rem; align-items: end; }
.galeria figure { position: relative; overflow: hidden; border-radius: 1.4rem; background: #c7a391; }
.galeria img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s var(--ease); }
.galeria figure:nth-child(1) { aspect-ratio: 4 / 5; }
.galeria figure:nth-child(2) { aspect-ratio: 3 / 4; translate: 0 -2.5rem; }
.galeria figure:nth-child(3) { aspect-ratio: 1; }
.galeria figcaption {
  position: absolute; left: .8rem; bottom: .8rem; padding: .4rem .65rem; border-radius: .5rem;
  background: rgba(22, 27, 43, .82); color: #fff; font-size: .78rem; font-weight: 700;
}

.planos-alternar { display: inline-flex; padding: .3rem; border-radius: 999px; background: var(--white); border: 1px solid var(--line); margin-bottom: 1.6rem; }
.planos-alternar button {
  min-height: 44px; padding: .4rem 1.1rem; border: 0; border-radius: 999px; background: transparent;
  font-weight: 800; color: var(--ink);
}
.planos-alternar button[aria-pressed="true"] { background: var(--ink); color: #fff; }
.planos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.plano {
  position: relative; display: flex; flex-direction: column; gap: .8rem; padding: clamp(1.3rem, 2.6vw, 2rem);
  border-radius: 1.4rem; background: var(--white); border: 1px solid var(--line);
}
.plano.destaque { background: var(--blue); color: #fff; border-color: var(--blue); }
.plano.destaque p, .plano.destaque li { color: #e3e8ff; }
.plano h3 { font-size: 1.5rem; }
.plano-preco { font: 760 clamp(2.4rem, 4vw, 3.2rem)/1 var(--display); letter-spacing: -.04em; }
.plano-preco small { font: 700 .95rem/1 var(--body); letter-spacing: 0; opacity: .8; }
.plano ul { display: grid; gap: .5rem; margin: .4rem 0 0; padding: 0; list-style: none; font-size: .94rem; }
.plano li { display: flex; gap: .5rem; }
.plano li::before { content: "✓"; flex: none; font-weight: 900; color: var(--blue); }
.plano.destaque li::before { color: var(--orange); }
.plano .button { margin-top: auto; }
.plano-etiqueta { position: absolute; top: 1rem; right: 1rem; padding: .3rem .6rem; border-radius: 999px; background: var(--orange); color: var(--ink); font-size: .72rem; font-weight: 900; }
.planos-nota { margin-top: 1.1rem; color: var(--muted); font-size: .88rem; max-width: 70ch; }

.perguntas { display: grid; gap: .7rem; max-width: 52rem; }
.pergunta { border-radius: 1rem; background: var(--white); border: 1px solid var(--line); }
.pergunta summary {
  display: flex; justify-content: space-between; align-items: center; gap: 1rem; min-height: 60px; padding: 1rem 1.25rem;
  cursor: pointer; list-style: none; font: 700 1.08rem/1.3 var(--display);
}
.pergunta summary::-webkit-details-marker { display: none; }
.pergunta summary::after { content: "+"; flex: none; display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: 50%; background: var(--blue-light); color: var(--blue); font: 700 1.3rem/1 var(--body); transition: transform .3s var(--ease); }
.pergunta[open] summary::after { transform: rotate(45deg); }
.pergunta > div { padding: 0 1.25rem 1.2rem; color: #33384a; }
.pergunta > div p + p { margin-top: .6rem; }
@supports (interpolate-size: allow-keywords) {
  .perguntas { interpolate-size: allow-keywords; }
  .pergunta::details-content { height: 0; overflow: clip; transition: height .35s var(--ease), content-visibility .35s allow-discrete; }
  .pergunta[open]::details-content { height: auto; }
}

.cta-final { position: relative; overflow: hidden; border-radius: 2rem; padding: clamp(2rem, 6vw, 4.5rem); background: var(--orange); color: var(--ink); }
.cta-final h2 { max-width: 16ch; }
.cta-final p { max-width: 50ch; margin-block: 1rem 1.6rem; font-size: 1.08rem; }
.cta-final::after {
  content: ""; position: absolute; right: -6rem; bottom: -8rem; width: 22rem; height: 22rem; border-radius: 4rem;
  background: var(--blue); transform: rotate(18deg); opacity: .95;
}
.cta-final > * { position: relative; z-index: 1; }
.cta-final .button.outline { border-color: var(--ink); }

/* ---------- Rodapé ---------- */
.site-footer { position: relative; }
.rodape-topo { display: grid; grid-template-columns: minmax(0, 1.4fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.2fr); gap: 2rem; padding-block: clamp(2.5rem, 5vw, 4rem) 2rem; }
.rodape-marca p { margin-top: .9rem; max-width: 30ch; color: #c9cde0; font-size: .92rem; }
.rodape-local { display: inline-flex; align-items: center; gap: .4rem; margin-top: 1rem; padding: .35rem .7rem; border-radius: 999px; background: rgba(255, 255, 255, .08); color: #fff; font-size: .82rem; font-weight: 700; }
.rodape-local svg { width: 1rem; height: 1rem; color: var(--orange); }
.site-footer h2 { margin-bottom: .8rem; font: 800 .74rem/1.2 var(--body); letter-spacing: .14em; text-transform: uppercase; color: #9aa1bd; }
.site-footer .rodape-topo nav { display: grid; gap: .1rem; align-content: start; }
.site-footer .rodape-topo nav a, .rodape-contato a {
  display: inline-flex; align-items: center; min-height: 40px; color: #fff; font-size: .93rem; font-weight: 600; text-decoration: none;
}
.site-footer .rodape-topo nav a:hover, .rodape-contato a:hover { color: var(--orange); text-decoration: underline; }
.rodape-contato dl { margin: 0; display: grid; gap: .55rem; }
.rodape-contato dt { color: #9aa1bd; font-size: .8rem; font-weight: 700; }
.rodape-contato dd { margin: 0; }
.rodape-base { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem 1.5rem; padding-block: 1.2rem; border-top: 1px solid rgba(255, 255, 255, .12); color: #9aa1bd; font-size: .84rem; }
.site-footer .brand-plus { color: var(--orange); }

/* ---------- Revelação ao rolar ---------- */
.js.motion-ready [data-revelar] { opacity: 0; transform: translateY(26px); transition: opacity .7s var(--ease), transform .7s var(--ease); transition-delay: calc(var(--i, 0) * 70ms); }
.js.motion-ready [data-revelar].is-visible { opacity: 1; transform: none; }

/* ---------- Inclinação 3D e brilho (somente mouse) ---------- */
@media (hover: hover) and (pointer: fine) {
  .inclinar { transform-style: preserve-3d; transition: transform .45s var(--ease), box-shadow .45s var(--ease); will-change: auto; }
  .inclinar:hover { box-shadow: 0 30px 50px -28px rgba(22, 27, 43, .45); }
  .inclinar::after {
    content: ""; position: absolute; inset: 0; border-radius: inherit; pointer-events: none; opacity: 0;
    background: radial-gradient(28rem circle at var(--mx, 50%) var(--my, 50%), rgba(255, 255, 255, .28), transparent 45%);
    transition: opacity .35s var(--ease);
  }
  .inclinar:hover::after { opacity: 1; }
  .galeria figure:hover img { transform: scale(1.06); }
  .passo, .plano { transition: transform .35s var(--ease), box-shadow .35s var(--ease); }
  .passo:hover, .plano:hover { transform: translateY(-6px); box-shadow: 0 24px 40px -26px rgba(22, 27, 43, .5); }
}

/* ---------- Transições entre páginas ---------- */
@view-transition { navigation: auto; }
::view-transition-old(root) { animation: .28s var(--ease) both pagina-sai; }
::view-transition-new(root) { animation: .45s var(--ease) both pagina-entra; }
::view-transition-group(marca) { animation-duration: .45s; }
::view-transition-group(titulo-pagina) { animation-duration: .5s; animation-timing-function: var(--ease); }
@keyframes pagina-sai { to { opacity: 0; transform: translateY(-14px) scale(.99); } }
@keyframes pagina-entra { from { opacity: 0; transform: translateY(22px); } }
main h1:first-of-type { view-transition-name: titulo-pagina; }

/* ---------- Celular ---------- */
@media (max-width: 62rem) {
  .heroi-grade, .empresas-grade { grid-template-columns: minmax(0, 1fr); }
  .crachas { min-height: 27rem; max-width: 34rem; margin-inline: auto; width: 100%; }
  .passos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bento-card.largo, .bento-card.medio { grid-column: span 6; }
  .bento-card.estreito { grid-column: span 3; }
  .planos { grid-template-columns: minmax(0, 1fr); max-width: 30rem; }
  .rodape-topo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .rodape-marca, .rodape-contato { grid-column: 1 / -1; }
}
@media (max-width: 40rem) {
  .heroi h1 { font-size: clamp(2.6rem, 12.5vw, 3.6rem); }
  .heroi .actions .button { flex: 1 1 100%; }
  .crachas { min-height: 23rem; }
  .crachas-foto { inset: 8% 4% 12% 10%; border-radius: 1.2rem; }
  .cracha { width: 10.5rem; padding: .85rem .9rem 1rem; animation-duration: 9s; }
  .cracha strong { font-size: 1rem; }
  .cracha-avatar { width: 2.6rem; height: 2.6rem; }
  .cracha.c2 { right: 0; }
  .passos { grid-template-columns: minmax(0, 1fr); }
  .passo { min-height: 0; }
  .bento-card.estreito { grid-column: span 6; }
  .galeria { grid-template-columns: 1fr 1fr; }
  .galeria figure:nth-child(1) { grid-column: 1 / -1; aspect-ratio: 4 / 3; }
  .galeria figure:nth-child(2) { translate: none; }
  .rodape-topo { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .cta-final::after { width: 12rem; height: 12rem; right: -4rem; bottom: -5rem; }
}

/* ---------- Movimento reduzido e pausa do painel ---------- */
@media (prefers-reduced-motion: reduce) {
  .cracha, .faixa-trilho, .heroi h1 .destaque::after { animation: none !important; }
  .js.motion-ready [data-revelar] { opacity: 1; transform: none; transition: none; }
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
html[data-a11y-pausar] .js.motion-ready [data-revelar], html[data-a11y-pausar] [data-revelar] { opacity: 1 !important; transform: none !important; }
html[data-a11y-pausar] ::view-transition-group(*), html[data-a11y-pausar] ::view-transition-old(*), html[data-a11y-pausar] ::view-transition-new(*) { animation: none !important; }

/* ---------- Tema escuro do painel para os novos componentes ---------- */
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] body { background-image: radial-gradient(rgba(255, 255, 255, .05) 1px, transparent 1.2px); }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .heroi-texto { color: var(--ink); }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] :is(.cracha.c1, .passo:nth-child(1)) { background: var(--white); }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .cracha.c3, html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .bento-card.coral,
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .cta-final { color: #161b2b; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .passo:nth-child(3) { background: #3a2a24; border-color: #5a3d31; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .passo:nth-child(2) { border-color: #3a4673; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .passo:nth-child(4) { background: #0b0d14; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .button.light { background: #fff; color: #16224d; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .menu-toggle { background: var(--white); }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .pergunta > div { color: var(--ink); }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .site-header::before { background: color-mix(in srgb, var(--paper) 90%, transparent); }

@media print {
  .faixa, .crachas, .menu-toggle, .menu-veu { display: none !important; }
  .js.motion-ready [data-revelar] { opacity: 1; transform: none; }
}

/* ---------- Páginas de conta e institucionais ---------- */
.empresas-acoes { margin-top: 1.6rem; }
.contas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; align-items: start; }
.conta-cartao {
  position: relative; display: flex; flex-direction: column; gap: .8rem; padding: clamp(1.4rem, 3vw, 2.4rem);
  border-radius: 1.6rem; background: var(--white); border: 1px solid var(--line); scroll-margin-top: 6rem;
}
.conta-cartao h2 { font-size: clamp(1.9rem, 3.5vw, 2.8rem); }
.conta-cartao h3 { margin-top: .6rem; font-size: 1.05rem; font-family: var(--body); font-weight: 800; letter-spacing: 0; }
.conta-cartao .actions { margin-top: .8rem; }
.conta-empresa { background: var(--blue-deep); color: #fff; border-color: var(--blue-deep); }
.conta-empresa .eyebrow { color: #ffb99d; }
.conta-empresa p, .conta-empresa li { color: #e1e6f7; }
.conta-cartao:target { outline: 3px solid var(--orange); outline-offset: 4px; }
.lista-check { display: grid; gap: .45rem; margin: 0; padding: 0; list-style: none; }
.lista-check li { display: flex; gap: .55rem; }
.lista-check li::before { content: "✓"; flex: none; font-weight: 900; color: var(--blue); }
.conta-empresa .lista-check li::before { color: var(--orange); }
.texto-legal { max-width: 52rem; font-size: 1.04rem; line-height: 1.7; }
.texto-legal h2 { margin-block: 2.2rem .7rem; font-size: clamp(1.35rem, 2.4vw, 1.75rem); scroll-margin-top: 6rem; }
.texto-legal p, .texto-legal li { color: #2c3142; }
.texto-legal p + p { margin-top: .8rem; }
.texto-legal ul { display: grid; gap: .55rem; padding-left: 1.2rem; }
.texto-legal a { font-weight: 700; }
.indice { padding: 1.2rem 1.4rem; border-radius: 1.1rem; background: var(--white); border: 1px solid var(--line); }
.indice h2 { margin: 0 0 .5rem; font: 800 .78rem/1.2 var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.indice ol { columns: 2; column-gap: 2rem; margin: 0; padding-left: 1.2rem; }
.indice li { break-inside: avoid; padding-block: .15rem; }
.tabela-atalhos { width: 100%; border-collapse: collapse; margin-block: .5rem; background: var(--white); border-radius: 1rem; overflow: hidden; }
.tabela-atalhos th, .tabela-atalhos td { padding: .75rem 1rem; text-align: left; border-bottom: 1px solid var(--line); }
.tabela-atalhos th { font-size: .82rem; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); }
.tabela-atalhos kbd { display: inline-block; min-width: 1.8em; padding: .1em .45em; border: 1px solid var(--ink); border-radius: .35em; font: 700 .85em/1.4 var(--mono); text-align: center; background: var(--paper); }
@media (max-width: 52rem) {
  .contas { grid-template-columns: minmax(0, 1fr); }
  .indice ol { columns: 1; }
}
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .texto-legal :is(p, li) { color: var(--ink); }

/* ---------- Correções de QA ---------- */
.rodape-contato a, .texto-legal a[href^="mailto:"] { overflow-wrap: anywhere; }
html:is([data-a11y-texto="3"], [data-a11y-texto="4"], [data-a11y-texto="5"]) .rodape-topo { grid-template-columns: repeat(2, minmax(0, 1fr)); }
html:is([data-a11y-texto="3"], [data-a11y-texto="4"], [data-a11y-texto="5"]) .rodape-marca,
html:is([data-a11y-texto="3"], [data-a11y-texto="4"], [data-a11y-texto="5"]) .rodape-contato { grid-column: 1 / -1; }
html:is([data-a11y-texto="3"], [data-a11y-texto="4"], [data-a11y-texto="5"]) .header-inner { flex-wrap: wrap; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] :is(.cracha.c2, .bento-card.azul, .plano.destaque) { background-color: #2442d6; border-color: #2442d6; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] :is(.faixa, .bento-card.tinta) { background-color: #0b0d14; border-color: #2a3046; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .planos-alternar button[aria-pressed="true"] { background-color: #2442d6; color: #fff; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .plano.destaque .button.light { background: #fff; color: #16224d; }.plano-preco small { opacity: 1; color: var(--muted); }
.plano.destaque .plano-preco small { color: #dfe5ff; }
html[data-a11y-escopo="portal"][data-a11y-tema="escuro"] .plano-etiqueta { color: #161b2b; }
/* Texto ampliado ou espaçado: nenhuma palavra pode empurrar a página para os lados (WCAG 1.4.10 e 1.4.12). */
html:is([data-a11y-texto="2"], [data-a11y-texto="3"], [data-a11y-texto="4"], [data-a11y-texto="5"], [data-a11y-espaco]) body :is(p, li, dd, dt, a, h1, h2, h3, h4, summary, span, strong, small, td, th, label, button, legend, figcaption) {
  overflow-wrap: anywhere; hyphens: auto;
}
html:is([data-a11y-texto="3"], [data-a11y-texto="4"], [data-a11y-texto="5"], [data-a11y-espaco]) :is(.brand, .header-cta, .heroi h1 .destaque, .free-pill, .faixa-lista li) { white-space: normal; }
html:is([data-a11y-texto="3"], [data-a11y-texto="4"], [data-a11y-texto="5"], [data-a11y-espaco]) .indice ol { columns: 1; }
html:is([data-a11y-texto="3"], [data-a11y-texto="4"], [data-a11y-texto="5"], [data-a11y-espaco]) .tabela-atalhos { table-layout: fixed; }