/* =====================================================================
   LETO — reset + base tipográfica. Tokens em base/tokens.css.
   ===================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; }
h1,h2,h3,h4,h5,h6,p,figure,blockquote,ul,ol { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
img, svg, video { display: block; max-width: 100%; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; }

html {
	font-family: var(--font-body);
	color: var(--leto-ink);
	background: var(--leto-paper);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	font-feature-settings: "ss01" 1, "ss02" 1, "salt" 1, "ordn" 1, "liga" 0;
	font-variant-ligatures: no-common-ligatures;
	letter-spacing: 0;
}
body { background: var(--leto-paper); color: var(--leto-ink); line-height: 1.4; overflow-x: hidden; }
::selection { background: var(--leto-green); color: var(--leto-ink); }
h1,h2,h3,h4 { font-weight: 500; line-height: 1.0; letter-spacing: 0; }
p { line-height: 1.45; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
}

/* Acessibilidade: skip link */
.leto-skip { position: absolute; left: -999px; top: 0; z-index: 1000; padding: .75rem 1.25rem; background: var(--leto-ink); color: #fff; border-radius: 0 0 6px 0; }
.leto-skip:focus { left: 0; }

:where(a, button, input, [tabindex]):focus-visible { outline: 2px solid var(--leto-green-deep); outline-offset: 2px; }

/* Placeholder de imagem (fallback de campos vazios) */
.leto-img-placeholder { display: block; width: 100%; aspect-ratio: 16/10; background: linear-gradient(135deg, #cfcfcf, #e6e6e6); border-radius: 4px; }
