/* ============================================================================
   base.css — reset + tipografia nativa (Task 07)
   ----------------------------------------------------------------------------
   Consome tokens.css (carregado antes) e Bootstrap (carregado antes deste).
   Deliberadamente NÃO é uma cópia de components.css da aplicação
   (Qnt.SurfBoardID.Web/wwwroot/css/theme/components.css, ~30 KB): aquele
   arquivo inteiro é escopado em `.sb-app` (tema da aplicação autenticada) e
   traz uma biblioteca de componentes — sb-pill, sb-stepper, KPI cards etc. —
   que a land page não usa. Ficaria morto sem a classe `.sb-app` no <body>, e
   a land page não deveria herdar o tema inteiro da aplicação (mesma decisão
   do Qnt.ProductID.LandPage: tokens.css + base.css próprio, `landing.css`
   separado por produto). Aqui: só o essencial — box-sizing, corpo, headings,
   links — usando os MESMOS tokens de marca (continuidade visual real).
   ============================================================================ */

*, *::before, *::after {
  box-sizing: border-box;
}

html {
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: var(--lh-normal);
  color: var(--n-900);
  background-color: var(--n-25);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  margin: 0 0 var(--sp-4);
  font-family: var(--font-display);
  font-weight: 600;
  color: var(--n-900);
  line-height: var(--lh-tight);
}

h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }
h4 { font-size: var(--fs-h4); }
h5 { font-size: var(--fs-h5); }
h6 { font-size: var(--fs-h5); }

p {
  margin: 0 0 var(--sp-5);
}

p:last-child {
  margin-bottom: 0;
}

a {
  color: var(--brand-primary);
  text-decoration: underline;
  text-underline-offset: 0.15em;
}

a:hover {
  color: var(--brand-primary-600);
}

ul, ol {
  margin: 0 0 var(--sp-5);
  padding-left: var(--sp-7);
}

img, svg, video, canvas, picture {
  max-width: 100%;
  height: auto;
}

:focus-visible {
  outline: 2px solid var(--brand-primary);
  outline-offset: 2px;
}

/* Link "pular para o conteúdo" (Task 01 da Fase B). Fica fora da tela até
   receber foco — é o primeiro Tab da página e a única forma de quem navega por
   teclado não percorrer as sete âncoras do header em toda visita. */
.lp-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  padding: var(--sp-4) var(--sp-6);
  background-color: var(--brand-primary);
  color: var(--n-0);
  text-decoration: none;
}

.lp-skip-link:focus {
  left: var(--sp-4);
  top: var(--sp-4);
  color: var(--n-0);
}

/* Respeitar quem pediu menos movimento no sistema operacional. */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
