/* ══════════════════════════════════════════════════════════════
   ACIEX — base.css
   Design tokens, reset e tipografia base.
   Fonte: MDS/design-system-aciex.md
   ══════════════════════════════════════════════════════════════ */

:root {
	/* ---- Cores primárias ---- */
	--green-900: #1B5E20; /* institucional: header, footer, títulos, links ativos */
	--green-700: #2E7D32; /* hover de links, bordas ativas */
	--green-500: #4CAF50;
	--green-300: #81C784;
	--green-100: #C8E6C9;
	--green-50:  #E8F5E9; /* backgrounds claros alternados */

	--orange-600: #E65100; /* CTAs primários, badges premium */
	--orange-500: #F57C00; /* hover CTA, tags ativas */
	--orange-300: #FFB74D;
	--orange-100: #FFE0B2;
	--orange-50:  #FFF3E0; /* cards destacados, banners leves */

	/* ---- Neutras ---- */
	--dark-900: #1A1A1A; /* texto principal, footer bg */
	--dark-700: #333333; /* subtítulos, textos fortes */
	--gray-500: #666666; /* texto secundário */
	--gray-300: #B0B0B0; /* placeholders, labels leves */
	--gray-100: #F5F5F5; /* backgrounds de seções */
	--gray-border: #E0E0E0; /* bordas de cards, inputs */
	--white: #FFFFFF;

	/* ---- Funcionais ---- */
	--success: #43A047;
	--error: #D32F2F;
	--whatsapp: #25D366;

	/* ---- Gradientes ---- */
	--hero-overlay: linear-gradient(to right, rgba(27, 94, 32, 0.85), rgba(27, 94, 32, 0.4));
	--cta-section: linear-gradient(135deg, #1B5E20, #2E7D32);

	/* ---- Sombras ---- */
	--shadow-header: 0 2px 20px rgba(0, 0, 0, 0.08);
	--shadow-card-hover: 0 8px 30px rgba(27, 94, 32, 0.08);
	--shadow-card-premium: 0 8px 30px rgba(27, 94, 32, 0.12);

	/* ---- Tipografia ---- */
	--font-heading: 'Poppins', system-ui, -apple-system, sans-serif;
	--font-body: 'Inter', system-ui, -apple-system, sans-serif;

	--fw-regular: 400;
	--fw-medium: 500;
	--fw-semibold: 600;
	--fw-bold: 700;
	--fw-extrabold: 800;

	/* Escala tipográfica (desktop) */
	--fs-h1: 3.5rem;    /* 56px */
	--fs-h2: 2.25rem;   /* 36px */
	--fs-h3: 1.5rem;    /* 24px */
	--fs-h4: 1rem;      /* 16px */
	--fs-body: 0.9375rem; /* 15px */
	--fs-small: 0.8125rem; /* 13px */
	--fs-label: 0.6875rem; /* 11px */
	--fs-button: 0.8125rem; /* 13px */

	--lh-tight: 1.1;
	--lh-heading: 1.2;
	--lh-normal: 1.4;
	--lh-body: 1.6;

	/* ---- Espaçamento (base 8px) ---- */
	--space-1: 0.25rem;
	--space-2: 0.5rem;
	--space-3: 0.75rem;
	--space-4: 1rem;
	--space-5: 1.25rem;
	--space-6: 1.5rem;
	--space-8: 2rem;
	--space-10: 2.5rem;
	--space-12: 3rem;
	--space-16: 4rem;   /* seções mobile */
	--space-20: 5rem;
	--space-24: 6rem;   /* seções desktop */

	/* ---- Layout ---- */
	--container-max: 1200px;
	--container-pad: 1.5rem;   /* 24px mobile */

	/* ---- Border radius ---- */
	--radius: 6px;
	--radius-lg: 8px;
	--radius-full: 9999px;

	/* ---- Transições ---- */
	--t-fast: 0.2s ease;
	--t-base: 0.3s ease;
}

/* ══════════════════════════════════════════════════════════════
   Reset
   ══════════════════════════════════════════════════════════════ */

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

* {
	margin: 0;
}

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

body {
	font-family: var(--font-body);
	font-size: var(--fs-body);
	font-weight: var(--fw-regular);
	line-height: var(--lh-body);
	color: var(--dark-700);
	background-color: var(--white);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

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

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

button {
	cursor: pointer;
	background: none;
	border: none;
}

a {
	color: inherit;
	text-decoration: none;
	transition: color var(--t-fast);
}

ul,
ol {
	list-style: none;
	padding: 0;
}

/* ══════════════════════════════════════════════════════════════
   Tipografia base
   ══════════════════════════════════════════════════════════════ */

h1,
h2,
h3 {
	font-family: var(--font-heading);
	color: var(--dark-900);
	line-height: var(--lh-heading);
}

h1 {
	font-size: var(--fs-h1);
	font-weight: var(--fw-extrabold);
	line-height: var(--lh-tight);
	color: var(--green-900);
}

h2 {
	font-size: var(--fs-h2);
	font-weight: var(--fw-bold);
	color: var(--green-900);
}

h3 {
	font-size: var(--fs-h3);
	font-weight: var(--fw-bold);
	color: var(--dark-900);
}

h4 {
	font-family: var(--font-body);
	font-size: var(--fs-h4);
	font-weight: var(--fw-bold);
	line-height: var(--lh-normal);
	color: var(--dark-900);
}

p {
	line-height: var(--lh-body);
}

/* ---- Ícones Material Symbols ---- */
.material-symbols-outlined {
	font-variation-settings: 'FILL' 0, 'wght' 300, 'GRAD' 0, 'opsz' 24;
	line-height: 1;
	vertical-align: middle;
	user-select: none;
}

.material-symbols-outlined.is-filled {
	font-variation-settings: 'FILL' 1, 'wght' 400, 'GRAD' 0, 'opsz' 24;
}

/* ---- Acessibilidade ---- */
.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 100000;
	padding: var(--space-3) var(--space-4);
	background: var(--green-900);
	color: var(--white);
	border-radius: 0 0 var(--radius) 0;
}

.skip-link:focus {
	left: 0;
}

:focus-visible {
	outline: 3px solid var(--green-900);
	outline-offset: 2px;
}

/* ---- Tipografia responsiva ---- */
@media (max-width: 767px) {
	:root {
		--fs-h1: 2.25rem; /* 36px */
		--fs-h2: 1.75rem; /* 28px */
		--fs-h3: 1.25rem; /* 20px */
		--fs-body: 0.875rem; /* 14px */
		--fs-small: 0.75rem; /* 12px */
	}
}
