/*
 * Base: tokens, tipografia, elementos. Mobile-first (360 px).
 * Rácios de contraste em DECISIONS.md (D-011).
 */
@font-face {
	font-family: "Inter";
	font-style: normal;
	font-weight: 100 900;
	font-display: swap;
	src: url("../fonts/inter/InterVariable-latin.woff2") format("woff2");
}

:root {
	--ce-primary: #1769ff;
	--ce-primary-text: #145ce0;
	--ce-primary-hover: #0f4fc4;
	--ce-dark: #10233f;
	--ce-on-dark-link: #8fb4ff;
	--ce-bg: #fff;
	--ce-surface: #f4f6f8;
	--ce-border: #d0d5dd;
	--ce-muted: #667085;
	--ce-positive: #16a36a;
	--ce-positive-text: #0f7f55;
	--ce-negative: #d92d20;
	--ce-negative-text: #c4281c;
	--ce-warning-bg: #fff6e0;
	--ce-warning-border: #b54708;

	--ce-font: Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
	--ce-raio: 12px;
	--ce-raio-pequeno: 8px;
	--ce-gutter: 16px;
	--ce-max: 1200px;
	--ce-texto: 720px;
	--ce-sombra: 0 1px 2px rgb(16 35 63 / 6%), 0 4px 16px rgb(16 35 63 / 6%);
	--ce-foco: 0 0 0 3px #fff, 0 0 0 5px var(--ce-primary);
}

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

html {
	-webkit-text-size-adjust: 100%;
	text-size-adjust: 100%;
	scroll-padding-top: 1rem;
}

body {
	margin: 0;
	background: var(--ce-bg);
	color: var(--ce-dark);
	font-family: var(--ce-font);
	font-size: 1.0625rem;
	line-height: 1.65;
	font-optical-sizing: auto;
	-webkit-font-smoothing: antialiased;
	overflow-wrap: break-word;
}

h1,
h2,
h3,
h4 {
	margin: 0 0 0.5em;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: -0.015em;
	color: var(--ce-dark);
}

h1 { font-size: clamp(1.75rem, 1.35rem + 2vw, 2.625rem); letter-spacing: -0.025em; }
h2 { font-size: clamp(1.375rem, 1.2rem + 0.9vw, 1.75rem); }
h3 { font-size: 1.1875rem; }
h4 { font-size: 1rem; }

p,
ul,
ol,
dl,
figure,
table {
	margin: 0 0 1rem;
}

a {
	color: var(--ce-primary);
	text-decoration-thickness: 1px;
	text-underline-offset: 0.18em;
}

a:hover {
	color: var(--ce-primary-hover);
	text-decoration-thickness: 2px;
}

:focus-visible {
	outline: 2px solid var(--ce-primary);
	outline-offset: 2px;
	border-radius: 4px;
}

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

table {
	border-collapse: collapse;
	width: 100%;
}

abbr[title] {
	text-decoration: underline dotted;
}

hr {
	border: 0;
	border-top: 1px solid var(--ce-border);
	margin: 2rem 0;
}

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

input[type="text"],
input[type="email"],
input[type="search"],
input[type="url"],
input[type="number"],
select,
textarea {
	width: 100%;
	min-height: 44px;
	padding: 0.55rem 0.75rem;
	border: 1px solid #8a94a6;
	border-radius: var(--ce-raio-pequeno);
	background: #fff;
}

select {
	padding-right: 2rem;
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: none;
	box-shadow: var(--ce-foco);
	border-color: var(--ce-primary);
}

label {
	display: block;
	font-weight: 600;
	font-size: 0.9375rem;
	margin-bottom: 0.3rem;
}

/* Números com algarismos tabulares (tabelas técnicas, preços). */
.ce-numero,
table td {
	font-variant-numeric: tabular-nums;
	font-feature-settings: "tnum" 1;
}

.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.ce-saltar {
	position: absolute;
	left: 1rem;
	top: -100px;
	z-index: 1000;
	padding: 0.75rem 1rem;
	background: #fff;
	color: var(--ce-dark);
	font-weight: 700;
	border-radius: var(--ce-raio-pequeno);
	box-shadow: var(--ce-sombra);
}

.ce-saltar:focus {
	top: 1rem;
}

.ce-muted {
	color: var(--ce-muted);
}

.ce-pequeno {
	font-size: 0.875rem;
}

[hidden] {
	display: none !important;
}

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