/* Fourclass — base: reset, tipografia e utilitários de layout. */
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }

html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--fc-bg);
  color: var(--fc-text);
  font: 400 var(--fc-body)/1.6 var(--fc-font-text);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
}
img, video, svg { display: block; max-width: 100%; }
/* Logos nunca deformam: mantêm a proporção mesmo quando o espaço aperta. */
.fc-sidebar__logo, .fc-topbar__logo, .fc-auth__logo, .fc-auth__mobile-logo, .fc-simple__top a { flex: none; }
.fc-sidebar__logo img, .fc-topbar__logo img, .fc-auth__logo img, .fc-auth__mobile-logo img, .fc-simple__top img, .fc-cert__logo img { width: auto; max-width: none; object-fit: contain; object-position: left center; }
button, input, select, textarea { font: inherit; color: inherit; }
a { color: inherit; text-decoration: none; }
::selection { background: var(--fc-green); color: var(--fc-on-green); }

h1, h2, h3, h4, .fc-h1, .fc-h2, .fc-h3, .fc-h4 {
  margin: 0;
  font-family: var(--fc-font-title);
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--fc-text);
}
h1, .fc-h1 { font-size: var(--fc-h1); line-height: 1.12; font-weight: 700; }
h2, .fc-h2 { font-size: var(--fc-h2); line-height: 1.18; }
h3, .fc-h3 { font-size: var(--fc-h3); line-height: 1.25; }
h4, .fc-h4 { font-size: var(--fc-h4); line-height: 1.3; letter-spacing: -0.01em; }
p { margin: 0; }

.fc-body { font-size: var(--fc-body); }
.fc-small { font-size: var(--fc-small); line-height: 1.55; }
.fc-caption { font-size: var(--fc-caption); line-height: 1.5; letter-spacing: 0.01em; }
.fc-eyebrow { font-size: var(--fc-caption); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--fc-text-3); }
.fc-muted { color: var(--fc-text-2); }
.fc-subtle { color: var(--fc-text-3); }
.fc-accent { color: var(--fc-green); }
.fc-num { font-variant-numeric: tabular-nums; }

/* Foco visível e acessível em tudo que é interativo */
:focus { outline: none; }
:focus-visible {
  outline: 2px solid var(--fc-foco);
  outline-offset: 2px;
  border-radius: var(--fc-r-sm);
}

.fc-icon { width: 20px; height: 20px; stroke-width: 1.75; flex: none; }
.fc-icon--sm { width: 16px; height: 16px; }
.fc-icon--lg { width: 24px; height: 24px; }

.fc-container { width: 100%; max-width: var(--fc-container); margin: 0 auto; padding: 0 var(--fc-s5); }
.fc-stack { display: flex; flex-direction: column; gap: var(--fc-s4); }
.fc-row { display: flex; align-items: center; gap: var(--fc-s3); flex-wrap: wrap; }
.fc-between { display: flex; align-items: center; justify-content: space-between; gap: var(--fc-s4); }
.fc-grid { display: grid; gap: var(--fc-s5); }
.fc-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

@media (max-width: 767px) {
  .fc-container { padding: 0 var(--fc-s4); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 1ms !important; transition-duration: 1ms !important; scroll-behavior: auto !important; }
}
html, body { overflow-x: clip; } /* nada transborda para o lado no celular */

/* Barras de rolagem no padrão da marca (finas e escuras) em toda a plataforma */
html, body, * { scrollbar-width: thin; scrollbar-color: var(--fc-surface-3) transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--fc-surface-3); border-radius: 999px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background-color: var(--fc-border-strong); }
::-webkit-scrollbar-corner { background: transparent; }
