/* =========================================================================
   GRUPO UNEED — reset e elementos
   ====================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	scroll-padding-top: 96px;
}

body {
	margin: 0;
	/* Palavra longa sem espaço — URL, email, nome de arquivo — não pode
	   empurrar a largura da página em tela estreita. */
	overflow-wrap: break-word;

	/*
	 * `clip` em vez de `hidden`.
	 *
	 * `overflow-x: hidden` cria um contexto de rolagem, e isso quebra
	 * `position: sticky` em descendentes em vários navegadores — o header
	 * fixo, o sumário do documento legal e o título do manifesto dependem
	 * de sticky. `clip` corta o excesso sem criar o contexto.
	 *
	 * A declaração dupla é a alternativa: navegador sem suporte a `clip`
	 * lê a primeira linha e ignora a segunda.
	 */
	overflow-x: hidden;
	overflow-x: clip;
	background: var(--bg);
	color: var(--text);
	font-family: var(--ff-body);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	font-synthesis-weight: none;
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4, h5, h6 {
	margin: 0;
	font-family: var(--ff-display);
	font-weight: var(--fw-display);
	line-height: var(--lh-tight);
	letter-spacing: var(--ls-tight);
	text-wrap: balance;
}

h1 { font-size: var(--fs-h1); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); line-height: var(--lh-snug); }

/* --- ASSINATURA TIPOGRÁFICA DO GRUPO ---------------------------------
   Duas marcas registradas do padrão, aplicadas em todo título:

   1. Itálico dentro da frase. Não é ênfase gramatical — é ritmo. Quebra a
      uniformidade da sans e dá voz ao título.
   2. Pontuação final na cor da marca. O ponto e a exclamação viram
      elemento gráfico, não sinal de pausa.

   Geradas por ua_titulo() em inc/template-tags.php. */

.t-italico {
	font-style: italic;
	font-weight: var(--fw-display);
}

.t-ponto {
	color: var(--brand);
	font-style: normal;
}

/* Quebra de linha explícita nos títulos, marcada com | em ua_titulo().
   Só vale acima de 820px: abaixo disso, quebra fixa produz linhas órfãs
   — a linha "do seu mercado." sozinha, por exemplo. O navegador quebra
   melhor quando tem pouca largura. */
.t-quebra { display: none; }

@media (min-width: 821px) {
	.t-quebra { display: inline; }
}

p { margin: 0 0 var(--sp-4); text-wrap: pretty; }
p:last-child { margin-bottom: 0; }

a {
	color: var(--brand-soft);
	text-decoration-thickness: 1px;
	text-underline-offset: .18em;
	transition: color var(--dur-fast) var(--ease-out);
}

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

:focus-visible {
	outline: 2px solid var(--brand-accent);
	outline-offset: 3px;
	border-radius: var(--r-sm);
}

:focus:not(:focus-visible) { outline: none; }

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

svg.icon {
	fill: none;
	stroke: currentColor;
	stroke-width: 1.75;
	stroke-linecap: round;
	stroke-linejoin: round;
	flex: none;
}

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

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

hr { border: 0; border-top: 1px solid var(--line); margin: var(--sp-12) 0; }

::selection { background: var(--brand); color: #fff; }

.sr-only {
	position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0;
}

.skip-link {
	position: absolute; top: var(--sp-2); left: var(--sp-2);
	z-index: var(--z-modal);
	padding: var(--sp-3) var(--sp-5);
	background: var(--brand); color: #fff;
	border-radius: var(--r-sm);
	transform: translateY(-200%);
	transition: transform var(--dur-base) var(--ease-out);
}

.skip-link:focus { transform: translateY(0); color: #fff; }

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .01ms !important;
		scroll-behavior: auto !important;
	}
	[data-reveal] { transform: none !important; }
}
