/*
  _kit/base.css — reset y defaults de tipografía. Necesita tokens.css cargado
  antes (usa sus custom properties).
*/
* { box-sizing: border-box; }

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

body {
  margin: 0;
  font-family: var(--font);
  color: var(--color-ink);
  background: var(--color-bg);
  line-height: 1.5;
}

img, svg { max-width: 100%; display: block; }

a { color: var(--color-brand); }

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

button { cursor: pointer; }

h1, h2, h3 { line-height: 1.2; margin: 0 0 var(--space-3); }

p { margin: 0 0 var(--space-3); }

.kit-container {
  max-width: var(--maxw);
  margin: 0 auto;
  padding: 0 var(--space-4);
}

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
}

/*
  [hidden] antes vivía sólo en components/shell.css — pero es una regla de
  accesibilidad/bug-fix (el atributo hidden nativo pierde contra un
  selector de igual especificidad más tarde en la cascada; ver el bug ya
  registrado: "panel interno visible por default"), no un componente
  opcional. Vale para cualquier vertical, así que va en la base.
*/
[hidden] { display: none !important; }

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