/* ==========================================================================
   Nunca Desistir — folha de estilo única.

   Porte fiel do protótipo React (src/): mesmas cores, tipografia, raios,
   sombras e espaçamentos. Tailwind traduzido para CSS puro, sem build.
   ========================================================================== */

/* ------------------------------------------------------------------ Fontes */
@font-face {
	font-family: 'Anton';
	src: url('../fonts/anton-400.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: 'Nunito Sans';
	src: url('../fonts/nunito-sans-var.woff2') format('woff2-variations');
	font-weight: 200 1000;
	font-style: normal;
	font-display: swap;
}

/* ------------------------------------------------------------------ Tokens */
:root {
	--amarelo-50: #fff8e1;
	--amarelo-100: #ffefb8;
	--amarelo-300: #ffd75c;
	--amarelo-400: #ffcd33;
	--amarelo-500: #ffc20e;
	--amarelo-600: #e0a800;
	--amarelo-700: #a87d00;

	--carvao-500: #57514d;
	--carvao-700: #3b3633;
	--carvao-800: #2a2523;
	--carvao-900: #1a1715;

	--areia: #fbf8f1;
	--cinza-400: #9a938d;
	--cinza-600: #6b625c;
	--branco: #ffffff;

	--fonte-display: 'Anton', 'Impact', ui-sans-serif, sans-serif;
	--fonte-sans: 'Nunito Sans', ui-sans-serif, system-ui, sans-serif;

	--container: 80rem;      /* max-w-7xl */
	--gutter: 1.25rem;       /* px-5 */
	--secao-y: 5rem;         /* py-20 */

	--raio-xl: 0.75rem;
	--raio-2xl: 1rem;
	--raio-card: 1.75rem;
	--raio-bloco: 2rem;

	--sombra-card: 0 2px 16px rgba(26, 23, 21, 0.07);
	--sombra-card-hover: 0 14px 36px rgba(26, 23, 21, 0.14);
	--sombra-bloco: 0 10px 40px rgba(26, 23, 21, 0.12);
	--anel: 0 0 0 1px rgba(0, 0, 0, 0.05);

	--ease: cubic-bezier(0.2, 0.7, 0.3, 1);
}
@media (min-width: 1024px) {
	:root { --gutter: 1.5rem; --secao-y: 7rem; }
}

/* ------------------------------------------------------------------- Reset */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: 7rem; }
body {
	margin: 0;
	background: var(--branco);
	color: var(--carvao-900);
	font-family: var(--fonte-sans);
	font-size: 1rem;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}
img, svg, iframe { max-width: 100%; }
img { height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { margin: 0; font-weight: 800; line-height: 1.2; }
dl, dd, dt, figure, blockquote { margin: 0; }
::selection { background: var(--amarelo-500); color: var(--carvao-900); }
:focus-visible { outline: 3px solid var(--amarelo-500); outline-offset: 3px; border-radius: 4px; }

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

/* ------------------------------------------------------------- Utilitários */
.container { width: min(100% - 2 * var(--gutter), var(--container)); margin-inline: auto; }
.container--estreito { max-width: 64rem; }

.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: 999; background: var(--amarelo-500); color: var(--carvao-900); padding: 0.75rem 1.25rem; font-weight: 800; }
.skip-link:focus { left: 1rem; top: 1rem; }

.icon { width: 1.25rem; height: 1.25rem; flex-shrink: 0; }

/* Anton só tem um peso e é apertada: leading e tracking próprios */
.titulo {
	font-family: var(--fonte-display);
	font-weight: 400;
	line-height: 0.98;
	letter-spacing: 0.005em;
	text-wrap: balance;
}
.titulo .destaque { color: var(--amarelo-400); }
.marca-texto { background-image: linear-gradient(transparent 60%, var(--amarelo-400) 60%); background-repeat: no-repeat; }

.chapeu {
	font-size: 0.875rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.18em;
	color: var(--amarelo-600);
}
.chapeu--claro { color: var(--amarelo-400); }
.chapeu--cinza { color: var(--cinza-400); }
.chapeu--centro { text-align: center; }

.rotulo {
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: var(--cinza-400);
}

.pill {
	display: inline-block;
	padding: 0.25rem 0.75rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	line-height: 1.5;
}
.pill--amarelo { background: var(--amarelo-500); color: var(--carvao-900); }
.pill--escuro { background: var(--carvao-900); color: var(--amarelo-400); }
.pill--branco { background: var(--branco); color: var(--carvao-900); }

.icone-redondo {
	display: grid; place-items: center;
	width: 3.5rem; height: 3.5rem;
	border-radius: 50%;
	background: var(--amarelo-500);
	color: var(--carvao-900);
}
.icone-redondo .icon { width: 1.5rem; height: 1.5rem; }
.icone-redondo--centro { margin-inline: auto; }

.acoes { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 2rem; }
.acoes--centro { justify-content: center; }

.vazio { color: var(--cinza-600); font-style: italic; }

/* Formas orgânicas */
.arco { border-radius: 14rem 14rem 1.75rem 1.75rem; overflow: hidden; }
.arco-invertido { border-radius: 1.75rem 1.75rem 14rem 14rem; overflow: hidden; }
.folha { border-radius: 7rem 1.75rem 7rem 1.75rem; overflow: hidden; }
.folha-alt { border-radius: 1.75rem 7rem 1.75rem 7rem; overflow: hidden; }
.seixo { border-radius: 62% 38% 45% 55% / 50% 55% 45% 50%; overflow: hidden; }
.redondo { border-radius: var(--raio-card); overflow: hidden; }

/* Revelar ao rolar (direcional, como o Reveal do protótipo) */
.reveal {
	--atraso: 0s;
	opacity: 0;
	transform: translateY(28px);
	transition: opacity 0.72s var(--ease) var(--atraso), transform 0.72s var(--ease) var(--atraso);
}
.reveal[data-reveal="esquerda"] { transform: translateX(-48px); }
.reveal[data-reveal="direita"] { transform: translateX(48px); }
.reveal[data-reveal="escala"] { transform: translateY(20px) scale(0.93); }
.reveal[data-reveal="flip"] { transform: translateY(18px) rotateX(9deg); transform-origin: top center; }
.reveal[data-reveal="pop"] { transform: translateY(8px) scale(0.78); transition-duration: 0.42s; transition-timing-function: cubic-bezier(0.3, 1.15, 0.4, 1); }
.reveal.is-visivel { opacity: 1; transform: none; }
@media (max-width: 1023px) {
	.reveal[data-reveal="esquerda"], .reveal[data-reveal="direita"], .reveal[data-reveal="flip"] { transform: translateY(28px); }
}
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } }

/* ------------------------------------------------------------------ Botões */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	padding: 0.875rem 1.75rem;
	border: 2px solid transparent;
	border-radius: 999px;
	font-weight: 800;
	font-size: 1rem;
	line-height: 1.25;
	cursor: pointer;
	transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
}
.btn .icon { width: 1.125rem; height: 1.125rem; }
.btn--amarelo { background: var(--amarelo-500); color: var(--carvao-900); }
.btn--amarelo:hover { background: var(--amarelo-400); box-shadow: 0 10px 24px rgba(26, 23, 21, 0.12); }
.btn--escuro { background: var(--carvao-900); color: var(--branco); font-size: 0.875rem; padding: 0.875rem 1.5rem; }
.btn--escuro:hover { background: var(--carvao-700); }
.btn--contorno { border-color: rgba(26, 23, 21, 0.15); color: var(--carvao-900); }
.btn--contorno:hover { border-color: var(--amarelo-500); background: var(--amarelo-50); }
.btn--contorno-claro { border-color: rgba(255, 255, 255, 0.3); color: var(--branco); }
.btn--contorno-claro:hover { border-color: var(--amarelo-400); color: var(--amarelo-400); }
.btn--sm { padding: 0.75rem 1.5rem; font-size: 0.875rem; }
.btn--lg { padding: 1rem 2rem; }
.btn--block { display: flex; width: 100%; }
.btn.is-copiado { background: #2f9e44; color: var(--branco); }

.link-seta { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.875rem; font-weight: 800; color: var(--amarelo-700); }
.link-seta:hover { color: var(--amarelo-600); }
.link-seta .icon { width: 1rem; height: 1rem; }

/* --------------------------------------------------------------- Cabeçalho */
.site-header { position: sticky; top: 0; z-index: 50; }

.topbar { display: none; background: var(--carvao-900); color: var(--branco); }
@media (min-width: 1024px) { .topbar { display: block; } }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding-block: 0.625rem; font-size: 13px; }
.topbar__grupo { display: flex; align-items: center; gap: 1.5rem; color: rgba(255, 255, 255, 0.75); }
.topbar__grupo:last-child { gap: 1.25rem; }
.topbar__item { display: inline-flex; align-items: center; gap: 0.5rem; transition: color 0.2s; }
.topbar__item .icon { width: 0.875rem; height: 0.875rem; color: var(--amarelo-400); }
.topbar__item--forte { color: var(--branco); font-weight: 500; }
.topbar__icone { display: inline-flex; color: var(--branco); transition: color 0.2s; }
.topbar__icone .icon { width: 1rem; height: 1rem; }
a.topbar__item:hover, .topbar__icone:hover { color: var(--amarelo-400); }

.navbar { background: var(--branco); border-bottom: 1px solid rgba(0, 0, 0, 0.05); transition: box-shadow 0.2s; }
.site-header.is-rolado .navbar { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05); }
.navbar__inner { display: flex; align-items: center; justify-content: space-between; height: 5rem; gap: 1rem; }

.brand { display: inline-flex; align-items: center; gap: 0.75rem; }
.brand__logo { width: 3rem; height: 3rem; object-fit: contain; flex-shrink: 0; }
.brand__mark {
	display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: 50%;
	background: var(--carvao-700); color: var(--amarelo-500); border: 3px solid var(--amarelo-500);
	font-family: var(--fonte-display); font-size: 1.1rem;
}
.brand__texto { display: block; font-size: 15px; font-weight: 800; line-height: 1.2; color: var(--carvao-900); }
.brand__tagline { display: block; font-size: 11px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.16em; color: var(--cinza-400); }
.brand__tagline--amarelo { color: var(--amarelo-400); }
.brand--rodape .brand__texto { color: var(--branco); }
.brand--rodape .brand__logo { width: 4rem; height: 4rem; }

.nav { display: none; }
@media (min-width: 1024px) { .nav { display: block; } }
.nav__list { display: flex; align-items: center; gap: 0.25rem; }
.nav__list a {
	display: block; padding: 0.5rem 0.875rem; border-radius: 0.5rem;
	font-size: 15px; font-weight: 500; color: rgba(26, 23, 21, 0.75);
	transition: background-color 0.2s, color 0.2s;
}
.nav__list a:hover { background: var(--amarelo-50); color: var(--carvao-900); }
.nav__list .current-menu-item > a, .nav__list .current_page_item > a { color: var(--amarelo-700); }

.navbar__acoes { display: flex; align-items: center; gap: 0.5rem; }
.navbar__cta { display: none; }
@media (min-width: 640px) { .navbar__cta { display: inline-flex; } }
.nav-toggle {
	display: grid; place-items: center; width: 2.75rem; height: 2.75rem;
	border: 0; border-radius: 0.5rem; background: transparent; color: var(--carvao-900); cursor: pointer;
	transition: background-color 0.2s;
}
.nav-toggle:hover { background: var(--amarelo-50); }
.nav-toggle .icon { width: 1.5rem; height: 1.5rem; }
.nav-toggle__fechar { display: none; }
.nav-aberto .nav-toggle__abrir { display: none; }
.nav-aberto .nav-toggle__fechar { display: block; }
@media (min-width: 1024px) { .nav-toggle { display: none; } }

.nav-mobile {
	display: grid; grid-template-rows: 0fr; overflow: hidden;
	background: var(--branco); border-bottom: 1px solid transparent;
	transition: grid-template-rows 0.26s var(--ease), border-color 0.26s;
}
.nav-mobile__inner { min-height: 0; display: flex; flex-direction: column; padding-bottom: 0; }
.nav-aberto .nav-mobile { grid-template-rows: 1fr; border-bottom-color: rgba(0, 0, 0, 0.05); }
.nav-aberto .nav-mobile__inner { padding-bottom: 1.5rem; }
.nav-mobile__list a { display: block; padding: 1rem 0; border-bottom: 1px solid rgba(0, 0, 0, 0.05); font-weight: 700; }
.nav-mobile .btn { margin-top: 0.75rem; }
.nav-mobile .btn:first-of-type { margin-top: 1.25rem; }
@media (min-width: 1024px) { .nav-mobile { display: none; } }

/* -------------------------------------------------------------------- Hero */
.hero {
	position: relative; isolation: isolate; overflow: hidden;
	background: var(--carvao-900); color: var(--branco);
	border-radius: 0 0 2.5rem 2.5rem;
}
@media (min-width: 1024px) { .hero { border-radius: 0 0 5rem 5rem; } }
.hero__bg { position: absolute; inset: 0; z-index: -1; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero__bg::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(to right, rgba(26, 23, 21, 0.96), rgba(26, 23, 21, 0.85) 50%, rgba(26, 23, 21, 0.45));
}
.hero__inner { padding-block: 6rem; max-width: 42rem; margin-left: max(var(--gutter), calc((100% - var(--container)) / 2)); }
@media (min-width: 1024px) { .hero__inner { padding-block: 8rem; } }
.hero__selo {
	display: inline-flex; align-items: center; gap: 0.5rem;
	padding: 0.5rem 1rem; border-radius: 999px;
	background: var(--amarelo-500); color: var(--carvao-900);
	font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em;
}
.hero__selo-ponto { width: 0.5rem; height: 0.5rem; border-radius: 50%; background: var(--carvao-900); }
.hero__titulo { margin-top: 1.75rem; font-size: 3rem; line-height: 1.26; color: var(--branco); }
@media (min-width: 1024px) { .hero__titulo { font-size: 3.75rem; } }
.hero__texto { margin-top: 1.5rem; max-width: 36rem; font-size: 1.125rem; line-height: 1.65; color: rgba(255, 255, 255, 0.8); }
.hero__texto + .hero__texto { margin-top: 1rem; }
.hero__acoes { display: flex; flex-direction: column; gap: 0.75rem; margin-top: 2.5rem; }
@media (min-width: 640px) { .hero__acoes { flex-direction: row; } }

/* ----------------------------------------------------------------- Números */
.numeros { position: relative; z-index: 10; margin-top: -3rem; }
.numeros__card {
	display: grid; gap: 2rem;
	max-width: 72rem; margin-inline: auto;
	padding: 2rem; border-radius: var(--raio-bloco);
	background: var(--branco); box-shadow: var(--sombra-bloco);
}
@media (min-width: 640px) { .numeros__card { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .numeros__card { grid-template-columns: repeat(4, 1fr); padding: 2.5rem; } }
.numeros__item { text-align: center; }
.numeros__valor { display: block; font-size: 3rem; color: var(--amarelo-600); font-variant-numeric: tabular-nums; }
@media (min-width: 1024px) { .numeros__valor { font-size: 3.75rem; } }
.numeros__label { display: block; margin-top: 0.5rem; font-size: 0.875rem; line-height: 1.375; color: var(--cinza-600); }

/* ------------------------------------------------------------------ Seções */
.secao { padding-block: var(--secao-y); background: var(--branco); }
.secao--areia { background: var(--areia); }
.secao--escura { background: var(--carvao-900); color: var(--branco); }
.secao--curta { padding-block: 4rem; }
@media (min-width: 1024px) { .secao--curta { padding-block: 5rem; } }

.secao-cab { max-width: 42rem; }
.secao-cab--centro { margin-inline: auto; text-align: center; }
.secao-cab__titulo { margin-top: 0.75rem; font-size: 2.25rem; color: var(--carvao-900); }
@media (min-width: 1024px) { .secao-cab__titulo { font-size: 3rem; } }
.secao-cab__titulo--claro { color: var(--branco); }
.secao-cab__texto { margin-top: 1rem; line-height: 1.65; color: var(--cinza-600); }
.secao-cab__texto--claro { color: rgba(255, 255, 255, 0.65); }
.chapeu + .secao-cab__titulo { margin-top: 0.75rem; }

.secao-topo { display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 1.5rem; }
@media (min-width: 768px) { .secao-topo { flex-direction: row; align-items: flex-end; } }
.secao-topo--fim { flex-direction: row; align-items: flex-end; }
.secao-topo .btn { flex-shrink: 0; }

.grid { display: grid; gap: 1.5rem; margin-top: 3rem; }
.grid--compacta { gap: 1rem; margin-top: 2rem; }
@media (min-width: 640px) { .grid--3, .grid--2 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .grid--3 { grid-template-columns: repeat(3, 1fr); } }
.secao-cab + .grid, .secao-topo + .grid { margin-top: 3rem; }

/* --------------------------------------------------------------------- ONG */
.ong { position: relative; overflow: hidden; padding-block: var(--secao-y); background: var(--branco); }
.ong__forma { position: absolute; z-index: 0; animation: flutuar 9s ease-in-out infinite; }
.ong__forma--1 { left: -10rem; top: 6rem; width: 24rem; height: 24rem; border-radius: 50%; background: var(--amarelo-50); }
.ong__forma--2 { right: -6rem; bottom: 2.5rem; width: 20rem; height: 20rem; background: var(--areia); animation-duration: 12s; animation-delay: 2.5s; }
@keyframes flutuar { 0%, 100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-22px) scale(1.05); } }
.ong__grid { position: relative; z-index: 1; display: grid; gap: 4rem; align-items: center; }
@media (min-width: 1024px) { .ong__grid { grid-template-columns: 1fr 1fr; } }

.ong__foto-wrap { position: relative; max-width: 28rem; margin-inline: auto; }
@media (min-width: 1024px) { .ong__foto-wrap { margin-left: 0; } }
.ong__anel { position: absolute; left: -1.5rem; top: -1.5rem; width: 7rem; height: 7rem; border-radius: 50%; border: 6px solid rgba(255, 194, 14, 0.35); }
.ong__foto { position: relative; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); }
.ong__foto--vazia { background: var(--areia); }
.ong__selo {
	position: absolute; right: -1rem; bottom: -1.5rem;
	display: grid; place-items: center; width: 8rem; height: 8rem; border-radius: 50%;
	background: var(--amarelo-500); text-align: center;
	box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
}
@media (min-width: 1024px) { .ong__selo { right: -2.5rem; width: 9rem; height: 9rem; } }
.ong__selo-num { font-size: 2.25rem; color: var(--carvao-900); }
@media (min-width: 1024px) { .ong__selo-num { font-size: 3rem; } }
.ong__selo-texto { font-size: 0.75rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; line-height: 1.25; color: rgba(26, 23, 21, 0.7); max-width: 6rem; margin-inline: auto; }

.ong__texto { margin-top: 1.5rem; display: grid; gap: 1rem; line-height: 1.65; color: var(--cinza-600); }
.ong__manifesto { margin-top: 2rem; padding: 2rem; background: var(--carvao-900); }
@media (min-width: 1024px) { .ong__manifesto { padding: 2.25rem; } }
.ong__manifesto p { font-size: 1.125rem; line-height: 1.65; color: rgba(255, 255, 255, 0.85); }
.ong__manifesto footer { margin-top: 1rem; font-size: 0.875rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.18em; color: var(--amarelo-400); }

.pilares { display: grid; gap: 1rem; margin-top: 2rem; }
.pilar { display: flex; gap: 1rem; padding: 1.5rem; background: var(--areia); }
.pilar__icone { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex-shrink: 0; border-radius: 50%; background: var(--amarelo-500); color: var(--carvao-900); }
.pilar__titulo { font-size: 1.125rem; font-weight: 800; }
.pilar__texto { margin-top: 0.25rem; font-size: 15px; line-height: 1.65; color: var(--cinza-600); }

/* ---------------------------------------------------------------- História */
.historia { position: relative; overflow: hidden; padding-block: var(--secao-y); background: var(--carvao-900); color: var(--branco); }
.historia__forma { position: absolute; right: -8rem; top: 2.5rem; width: 24rem; height: 24rem; background: rgba(255, 255, 255, 0.03); }
.historia .container { position: relative; }
.timeline { margin-top: 3.5rem; }
.timeline__item { display: grid; gap: 1rem; padding-bottom: 2.5rem; padding-left: 2rem; border-left: 2px solid rgba(255, 255, 255, 0.1); }
.timeline__item:last-child { padding-bottom: 0; }
@media (min-width: 640px) { .timeline__item { grid-template-columns: 7rem 1fr; gap: 2rem; padding-left: 2.5rem; } }
.timeline__ano-wrap { position: relative; }
.timeline__ponto { position: absolute; left: -2.6rem; top: 0.25rem; width: 1.25rem; height: 1.25rem; border-radius: 50%; background: var(--amarelo-500); box-shadow: 0 0 0 4px var(--carvao-900); }
@media (min-width: 640px) { .timeline__ponto { left: -3.1rem; } }
.timeline__ano { font-size: 1.875rem; color: var(--amarelo-500); }
.timeline__titulo { font-size: 1.25rem; font-weight: 800; color: var(--branco); }
.timeline__texto { margin-top: 0.5rem; max-width: 42rem; line-height: 1.65; color: rgba(255, 255, 255, 0.65); }

/* ---------------------------------------------------------- Card de oficina */
.card-oficina {
	display: flex; flex-direction: column; height: 100%; overflow: hidden;
	border-radius: var(--raio-card); background: var(--branco);
	box-shadow: var(--sombra-card), var(--anel);
	transition: transform 0.3s, box-shadow 0.3s;
}
.card-oficina:hover { transform: translateY(-6px); box-shadow: var(--sombra-card-hover), var(--anel); }
[data-item-oficina][hidden] { display: none; }
.card-oficina__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; }
.card-oficina__img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s; }
.card-oficina__img--vazia { background: var(--areia); }
.card-oficina:hover .card-oficina__img { transform: scale(1.05); }
.card-oficina__tag {
	position: absolute; left: 1rem; top: 1rem; padding: 0.25rem 0.75rem; border-radius: 999px;
	background: rgba(255, 255, 255, 0.95); color: var(--carvao-900); font-size: 0.75rem; font-weight: 700;
	box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}
.card-oficina__corpo { display: flex; flex-direction: column; flex-grow: 1; padding: 1.5rem; }
.card-oficina__titulo { font-size: 1.25rem; font-weight: 800; color: var(--carvao-900); }
.card-oficina__resumo { margin-top: 0.5rem; flex-grow: 1; line-height: 1.65; color: var(--cinza-600); }
.card-oficina__ficha { display: grid; gap: 0.5rem; margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid rgba(0, 0, 0, 0.05); font-size: 0.875rem; color: var(--cinza-600); }
.card-oficina__ficha div { display: flex; align-items: center; gap: 0.5rem; }
.card-oficina__ficha .icon { width: 1rem; height: 1rem; color: var(--amarelo-600); }
.card-oficina__cta { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1.5rem; font-size: 0.875rem; font-weight: 800; color: var(--amarelo-700); }
.card-oficina__cta .icon { width: 1rem; height: 1rem; transition: transform 0.2s; }
.card-oficina:hover .card-oficina__cta .icon { transform: translateX(4px); }

/* ----------------------------------------------------------- Card de núcleo */
.card-nucleo { position: relative; display: block; overflow: hidden; border-radius: var(--raio-bloco); box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); }
.card-nucleo__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 0.7s; }
.card-nucleo__img--vazia { background: var(--carvao-700); }
.card-nucleo:hover .card-nucleo__img { transform: scale(1.05); }
.card-nucleo__gradiente { position: absolute; inset: 0; background: linear-gradient(to top, var(--carvao-900), rgba(26, 23, 21, 0.45), transparent); }
.card-nucleo__corpo { position: absolute; inset: auto 0 0; padding: 1.75rem; }
@media (min-width: 1024px) { .card-nucleo__corpo { padding: 2rem; } }
.card-nucleo__titulo { margin-top: 0.75rem; font-size: 1.875rem; color: var(--branco); }
.card-nucleo__texto { margin-top: 0.5rem; line-height: 1.65; color: rgba(255, 255, 255, 0.75); }
.card-nucleo__endereco { display: inline-flex; align-items: center; gap: 0.5rem; margin-top: 1rem; font-size: 0.875rem; color: var(--amarelo-400); }
.card-nucleo__endereco .icon { width: 1rem; height: 1rem; }

/* ----------------------------------------------------------------- Galeria */
.galeria__setas { display: flex; gap: 0.5rem; }
.seta {
	display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: 50%;
	border: 1px solid rgba(26, 23, 21, 0.15); background: transparent; color: var(--carvao-900); cursor: pointer;
	transition: border-color 0.2s, background-color 0.2s, opacity 0.2s;
}
.seta:hover:not(:disabled) { border-color: var(--amarelo-500); background: var(--amarelo-50); }
.seta:disabled { opacity: 0.3; cursor: default; }
.galeria__trilho {
	display: flex; gap: 1.25rem; margin-top: 2.5rem;
	padding: 0 var(--gutter) 1rem max(var(--gutter), calc((100% - var(--container)) / 2));
	overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.galeria__trilho::-webkit-scrollbar { display: none; }
.galeria__item { flex-shrink: 0; width: 18rem; scroll-snap-align: start; }
@media (min-width: 640px) { .galeria__item { width: 20rem; } }
@media (min-width: 1024px) { .galeria__item { width: 24rem; } }
.galeria__img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 0.7s; }
.galeria__item:hover .galeria__img { transform: scale(1.05); }

/* ------------------------------------------------------------- Depoimentos */
.depoimentos__faixa {
	margin-top: 2.5rem; overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.depoimentos__trilho { display: flex; width: max-content; animation: depoimentos-corre var(--duracao, 60s) linear infinite; }
.depoimentos__faixa:hover .depoimentos__trilho,
.depoimentos__faixa:focus-within .depoimentos__trilho { animation-play-state: paused; }
@keyframes depoimentos-corre { to { transform: translateX(-50%); } }
.dep-card {
	display: flex; flex-direction: column; flex-shrink: 0; width: 20rem; margin: 0 1.5rem 0 0; padding: 1.75rem;
	border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 1.25rem; background: rgba(255, 255, 255, 0.05);
}
@media (min-width: 768px) { .dep-card { width: 24rem; } }
.dep-card__aspas { width: 1.75rem; height: 1.75rem; color: var(--amarelo-400); }
.dep-card__texto { flex: 1; margin: 1rem 0 0; font-size: 1.0625rem; font-weight: 600; line-height: 1.6; color: var(--branco); }
.dep-card__autor { display: flex; align-items: center; gap: 0.875rem; margin-top: 1.5rem; }
.dep-card__foto { width: 3rem; height: 3rem; flex-shrink: 0; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--amarelo-500); }
.dep-card__foto--inicial { display: grid; place-items: center; background: var(--amarelo-500); color: var(--carvao-900); font-weight: 800; font-size: 1.25rem; }
.dep-card__nome { display: block; font-weight: 800; color: var(--amarelo-400); }
.dep-card__papel { display: block; margin-top: 0.125rem; font-size: 0.875rem; color: rgba(255, 255, 255, 0.5); }
@media (prefers-reduced-motion: reduce) {
	.depoimentos__faixa { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
	.depoimentos__trilho { animation: none; padding-inline: 1.5rem; }
	.dep-card[aria-hidden="true"] { display: none; }
}

/* ------------------------------------------------------------------- Apoie */
.apoio {
	display: flex; flex-direction: column; height: 100%; padding: 2rem;
	border-radius: var(--raio-card); background: var(--branco); color: var(--carvao-900);
	box-shadow: var(--sombra-card), var(--anel);
	transition: transform 0.3s;
}
.apoio:hover { transform: translateY(-6px); }
.apoio--destaque { background: var(--carvao-900); color: var(--branco); box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); }
.apoio__selo { align-self: flex-start; margin-bottom: 1.25rem; text-transform: none; letter-spacing: 0; font-weight: 700; }
.apoio__icone { display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%; background: var(--amarelo-50); color: var(--amarelo-700); }
.apoio__icone .icon { width: 1.5rem; height: 1.5rem; }
.apoio--destaque .apoio__icone { background: var(--amarelo-500); color: var(--carvao-900); }
.apoio__titulo { margin-top: 1.25rem; font-size: 1.25rem; font-weight: 800; }
.apoio__valor { margin-top: 0.25rem; font-size: 0.875rem; font-weight: 800; color: var(--amarelo-700); }
.apoio--destaque .apoio__valor { color: var(--amarelo-400); }
.apoio__texto { margin-top: 1rem; flex-grow: 1; line-height: 1.65; color: var(--cinza-600); }
.apoio--destaque .apoio__texto { color: rgba(255, 255, 255, 0.7); }
.apoio__cta { margin-top: 1.75rem; width: 100%; }
.apoie__nota {
	max-width: 48rem; margin: 2rem auto 0; padding: 1.25rem; text-align: center;
	border-radius: var(--raio-xl); border: 1px solid rgba(224, 168, 0, 0.25); background: var(--amarelo-50);
	font-size: 0.875rem; color: var(--cinza-600);
}
.apoie__nota strong { color: var(--carvao-900); font-weight: 800; }
.apoie__nota code { padding: 0.125rem 0.5rem; border-radius: 0.25rem; background: var(--branco); font-family: ui-monospace, Menlo, Consolas, monospace; color: var(--carvao-900); }

/* --------------------------------------------------- Transparência na home */
.transp-home__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .transp-home__grid { grid-template-columns: 5fr 7fr; } }
.transp-home .chapeu { margin-top: 1.25rem; }
.transp-home .btn { margin-top: 1.75rem; }
.transp-home__dados { margin-top: 1.75rem; padding: 1.25rem; border-radius: var(--raio-xl); background: var(--areia); font-size: 0.875rem; line-height: 1.65; color: var(--cinza-600); }
.transp-home__dados strong { display: block; font-weight: 800; color: var(--carvao-900); }
.transp-home .grid { margin-top: 0; }

.doc-card {
	display: flex; gap: 1rem; align-items: flex-start; height: 100%; padding: 1.5rem;
	border-radius: var(--raio-2xl); background: var(--branco); box-shadow: 0 2px 14px rgba(26, 23, 21, 0.07), var(--anel);
	transition: transform 0.2s, box-shadow 0.2s;
}
.doc-card--linha { align-items: center; padding: 1.25rem; border-radius: var(--raio-xl); }
a.doc-card:hover { transform: translateY(-4px); box-shadow: 0 10px 28px rgba(26, 23, 21, 0.12), var(--anel); }
.doc-card--pendente { opacity: 0.7; cursor: not-allowed; }
.doc-card__icone { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex-shrink: 0; border-radius: var(--raio-xl); background: var(--amarelo-50); color: var(--amarelo-700); transition: background-color 0.2s, color 0.2s; }
a.doc-card:hover .doc-card__icone { background: var(--amarelo-500); color: var(--carvao-900); }
.doc-card__nome { display: block; font-weight: 800; color: var(--carvao-900); }
.doc-card__ano { color: var(--cinza-400); font-weight: 800; }
.doc-card__meta { display: block; font-size: 0.875rem; color: var(--cinza-400); }
.doc-card__desc { display: block; margin-top: 0.25rem; font-size: 0.875rem; line-height: 1.65; color: var(--cinza-600); }
.doc-card__acao { display: block; margin-top: 0.5rem; font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; color: var(--amarelo-700); }

/* --------------------------------------------------------------- Parceiros */
.parceiros { padding-block: 3.5rem; background: var(--areia); border-block: 1px solid rgba(0, 0, 0, 0.05); }
.parceiros__grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 2rem; }
@media (min-width: 640px) { .parceiros__grid { grid-template-columns: repeat(4, 1fr); } }
.parceiro {
	display: grid; place-items: center; height: 5rem; padding: 0.75rem;
	border-radius: var(--raio-xl); border: 1px dashed rgba(0, 0, 0, 0.1); background: rgba(255, 255, 255, 0.6);
	font-size: 0.875rem; font-weight: 500; color: var(--cinza-400);
	transition: border-color 0.2s, color 0.2s;
}
.parceiro:hover { border-color: var(--amarelo-500); color: var(--cinza-600); }
.parceiro__logo { max-height: 3.5rem; width: auto; filter: grayscale(1); opacity: 0.7; transition: filter 0.2s, opacity 0.2s; }
.parceiro:hover .parceiro__logo { filter: none; opacity: 1; }

/* ----------------------------------------------------------------- Contato */
.contato__grid { display: grid; gap: 3rem; }
@media (min-width: 1024px) { .contato__grid { grid-template-columns: 1fr 1fr; } }
.canais { display: grid; gap: 0.75rem; margin-top: 2rem; }
.canal { display: flex; align-items: flex-start; gap: 1rem; padding: 1.25rem; border-radius: var(--raio-xl); background: var(--areia); }
.canal__icone { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; flex-shrink: 0; border-radius: 0.5rem; background: var(--amarelo-500); color: var(--carvao-900); }
.canal__valor { display: block; font-weight: 500; color: var(--carvao-900); transition: color 0.2s; }
a.canal__valor:hover { color: var(--amarelo-700); }

.form { padding: 2rem; border-radius: var(--raio-2xl); background: var(--areia); box-shadow: var(--anel); }
@media (min-width: 1024px) { .form { padding: 2.5rem; } }
.form__titulo { font-size: 1.25rem; font-weight: 800; }
.form__campos { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
.form__linha { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .form__linha { grid-template-columns: 1fr 1fr; } }
.form__campo .rotulo { display: block; margin-bottom: 0.5rem; }
.form__campo input, .form__campo select, .form__campo textarea {
	width: 100%; padding: 0.875rem 1rem;
	border: 1px solid rgba(0, 0, 0, 0.1); border-radius: var(--raio-xl); background: var(--branco);
	font: inherit; color: var(--carvao-900);
	transition: border-color 0.2s;
}
.form__campo textarea { resize: none; }
.form__campo input::placeholder, .form__campo textarea::placeholder { color: var(--cinza-400); }
.form__campo input:focus, .form__campo select:focus, .form__campo textarea:focus { border-color: var(--amarelo-500); outline: none; }
.form .btn { margin-top: 1.5rem; }
.form__hp { position: absolute !important; left: -9999px; opacity: 0; height: 0; overflow: hidden; }
.form button[disabled] { opacity: 0.6; cursor: progress; }
.form__status { margin-top: 1rem; text-align: center; font-size: 0.875rem; font-weight: 700; }
.form__status:empty { display: none; }
.form__status--ok { color: var(--amarelo-700); }
.form__status--erro { color: #c92a2a; }

/* ------------------------------------------------------------ Topo interno */
.topo-pagina { position: relative; isolation: isolate; overflow: hidden; background: var(--carvao-900); color: var(--branco); }
.topo-pagina__bg { position: absolute; inset: 0; z-index: -1; }
.topo-pagina__bg img { width: 100%; height: 100%; object-fit: cover; }
.topo-pagina__bg::after { content: ''; position: absolute; inset: 0; background: rgba(26, 23, 21, 0.88); }
.topo-pagina .container { padding-block: 4rem; }
@media (min-width: 1024px) { .topo-pagina .container { padding-block: 6rem; } }
.trilha { font-size: 0.875rem; color: rgba(255, 255, 255, 0.5); }
.trilha a:hover { color: var(--amarelo-400); }
.trilha__sep { margin-inline: 0.5rem; }
.trilha__atual { color: rgba(255, 255, 255, 0.8); }
.topo-pagina__titulo { margin-top: 1.25rem; max-width: 48rem; font-size: 3rem; color: var(--branco); }
@media (min-width: 1024px) { .topo-pagina__titulo { font-size: 3.75rem; } }
.topo-pagina__texto { margin-top: 1.25rem; max-width: 42rem; font-size: 1.125rem; line-height: 1.65; color: rgba(255, 255, 255, 0.75); }

/* ---------------------------------------------------------- Lista oficinas */
.oficinas-lista { padding-block: 4rem; }
@media (min-width: 1024px) { .oficinas-lista { padding-block: 5rem; } }
.filtro-barra { display: flex; flex-direction: column; gap: 1.25rem; }
@media (min-width: 640px) { .filtro-barra { flex-direction: row; align-items: center; justify-content: space-between; } }
.filtro-barra__contagem { color: var(--cinza-600); }
.filtro-barra__contagem strong { color: var(--carvao-900); }
.filtro { display: flex; flex-wrap: wrap; gap: 0.375rem; align-self: flex-start; padding: 0.375rem; border-radius: 999px; background: var(--branco); box-shadow: var(--anel); }
.filtro__btn { padding: 0.625rem 1.25rem; border: 0; border-radius: 999px; background: transparent; font-size: 0.875rem; font-weight: 800; color: var(--cinza-600); cursor: pointer; transition: background-color 0.25s, color 0.2s; }
.filtro__btn:hover { color: var(--carvao-900); }
.filtro__btn.is-ativo { background: var(--amarelo-500); color: var(--carvao-900); }
.filtro-barra + .grid { margin-top: 2.5rem; }
.filtro__vazio { margin-top: 2rem; color: var(--cinza-600); }

/* ------------------------------------------------------------------- Grade */
.dia { padding: 1.5rem; border-radius: var(--raio-2xl); border: 1px solid rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.04); }
.dia__nome { font-size: 0.875rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.18em; color: var(--amarelo-400); }
.dia__vazio { margin-top: 1rem; font-size: 0.875rem; color: rgba(255, 255, 255, 0.35); }
.dia__lista { display: grid; gap: 0.75rem; margin-top: 1rem; }
.dia__lista a { display: flex; align-items: baseline; justify-content: space-between; gap: 0.75rem; padding-bottom: 0.75rem; border-bottom: 1px solid rgba(255, 255, 255, 0.05); }
.dia__lista li:last-child a { border-bottom: 0; padding-bottom: 0; }
.dia__oficina { font-weight: 600; color: var(--branco); transition: color 0.2s; }
.dia__lista a:hover .dia__oficina { color: var(--amarelo-400); }
.dia__hora { flex-shrink: 0; font-size: 0.875rem; font-variant-numeric: tabular-nums; color: rgba(255, 255, 255, 0.5); }
.grade__aviso { margin-top: 1.5rem; padding: 1.25rem; border-radius: var(--raio-2xl); border: 1px dashed rgba(255, 194, 14, 0.4); background: rgba(255, 194, 14, 0.1); font-size: 0.875rem; color: rgba(255, 255, 255, 0.7); }
.grade__aviso strong { font-weight: 800; color: var(--amarelo-400); }

/* --------------------------------------------------------------- Matrícula */
.passo { height: 100%; padding: 1.75rem; border-radius: var(--raio-2xl); background: var(--areia); }
.passo__topo { display: flex; align-items: center; gap: 0.75rem; }
.passo__icone { display: grid; place-items: center; width: 2.75rem; height: 2.75rem; border-radius: var(--raio-xl); background: var(--amarelo-500); color: var(--carvao-900); }
.passo__num { font-size: 2.25rem; color: var(--amarelo-500); }
.passo__titulo { margin-top: 1.25rem; font-size: 1.125rem; font-weight: 800; }
.passo__texto { margin-top: 0.5rem; line-height: 1.65; color: var(--cinza-600); }
.faixa-cta {
	display: flex; flex-direction: column; align-items: center; gap: 1rem; margin-top: 3rem; padding: 2rem; text-align: center;
	border-radius: var(--raio-2xl); background: var(--carvao-900); color: var(--branco);
}
@media (min-width: 640px) { .faixa-cta { flex-direction: row; justify-content: space-between; text-align: left; } }
@media (min-width: 1024px) { .faixa-cta { padding: 2.5rem; } }
.faixa-cta__titulo { font-size: 1.25rem; font-weight: 800; }
.faixa-cta__texto { margin-top: 0.375rem; color: rgba(255, 255, 255, 0.65); }
.faixa-cta__acoes { display: flex; flex-direction: column; gap: 0.75rem; flex-shrink: 0; }
@media (min-width: 640px) { .faixa-cta__acoes { flex-direction: row; } }

/* ------------------------------------------------------- Página da oficina */
.oficina__topo { position: relative; padding: 3rem 0 3.5rem; background: var(--carvao-900); color: var(--branco); }
@media (min-width: 1024px) { .oficina__topo { padding: 4rem 0 5rem; } }
.oficina__topo-grid { display: grid; gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .oficina__topo-grid { grid-template-columns: 1fr 1fr; } }
.oficina__categoria { margin-top: 1.5rem; text-transform: none; letter-spacing: 0; padding: 0.375rem 0.875rem; }
.oficina__titulo { margin-top: 1rem; font-size: 3rem; color: var(--branco); }
@media (min-width: 1024px) { .oficina__titulo { font-size: 3.75rem; } }
.oficina__resumo { margin-top: 1rem; font-size: 1.125rem; line-height: 1.65; color: rgba(255, 255, 255, 0.7); }
.oficina__foto-wrap { position: relative; z-index: 10; margin-bottom: -4rem; }
@media (min-width: 1024px) { .oficina__foto-wrap { margin-bottom: -7rem; } }
.oficina__anel { position: absolute; right: -1rem; top: -1.5rem; width: 6rem; height: 6rem; border-radius: 50%; border: 6px solid rgba(255, 194, 14, 0.4); }
@media (min-width: 1024px) { .oficina__anel { right: -1.5rem; width: 8rem; height: 8rem; } }
.oficina__foto { position: relative; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--raio-bloco); box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.4); }
.oficina__conteudo--com-foto { padding-top: 7rem; }
@media (min-width: 1024px) { .oficina__conteudo--com-foto { padding-top: 10rem; } }
.oficina__grid { display: grid; gap: 3rem; }
@media (min-width: 1024px) { .oficina__grid { grid-template-columns: 7fr 5fr; } }
.oficina__subtitulo { font-size: 1.875rem; color: var(--carvao-900); }
.oficina__subtitulo--espaco { margin-top: 3rem; }
.oficina__texto { margin-top: 1.25rem; display: grid; gap: 1rem; font-size: 1.125rem; line-height: 1.65; color: var(--cinza-600); }
.oficina__texto p { margin: 0; }

.lista-check { display: grid; gap: 0.625rem; margin-top: 1.5rem; }
.lista-check li { display: flex; gap: 0.75rem; align-items: flex-start; color: var(--cinza-600); }
.lista-check--cards { gap: 0.75rem; margin-top: 1.25rem; }
.lista-check--cards li { padding: 1rem; border-radius: var(--raio-xl); background: var(--branco); box-shadow: var(--anel); }
.check { display: grid; place-items: center; width: 1.5rem; height: 1.5rem; flex-shrink: 0; border-radius: 50%; background: var(--amarelo-500); color: var(--carvao-900); }
.check .icon { width: 0.875rem; height: 0.875rem; stroke-width: 3; }
.check--sm { width: 1.25rem; height: 1.25rem; margin-top: 0.125rem; }
.check--sm .icon { width: 0.75rem; height: 0.75rem; }

.ficha-card { position: sticky; top: 8rem; padding: 1.75rem; border-radius: var(--raio-2xl); background: var(--branco); box-shadow: 0 4px 24px rgba(26, 23, 21, 0.09), var(--anel); }
.ficha-card__titulo { font-size: 1.125rem; font-weight: 800; }
.ficha-card__lista { display: grid; gap: 1.25rem; margin-top: 1.5rem; }
.ficha-card__item { display: flex; gap: 1rem; }
.ficha-card__icone { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex-shrink: 0; border-radius: 0.5rem; background: var(--amarelo-50); color: var(--amarelo-700); }
.ficha-card dd { margin-top: 0.125rem; font-weight: 500; }
.ficha-card__aviso { margin-top: 1.75rem; padding: 1rem; border-radius: var(--raio-xl); background: var(--amarelo-50); font-size: 0.875rem; color: var(--cinza-600); }
.ficha-card .btn { margin-top: 0.75rem; }
.ficha-card .btn:first-of-type { margin-top: 1.5rem; }

/* ----------------------------------------------------------------- Núcleos */
.nucleos-lista .nucleo { display: grid; gap: 3rem; align-items: center; }
.nucleos-lista .nucleo + .nucleo { margin-top: 4rem; }
@media (min-width: 1024px) {
	.nucleos-lista .nucleo { grid-template-columns: 1fr 1fr; }
	.nucleos-lista .nucleo + .nucleo { margin-top: 6rem; }
	.nucleo--invertido .nucleo__figura { order: 2; }
}
.nucleo__foto { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1); }
.nucleo__foto--vazia { background: var(--carvao-700); }
.nucleo__titulo { margin-top: 1rem; font-size: 2.25rem; color: var(--carvao-900); }
@media (min-width: 1024px) { .nucleo__titulo { font-size: 3rem; } }
.nucleo__resumo { margin-top: 0.75rem; font-size: 1.125rem; line-height: 1.65; color: var(--cinza-600); }
.nucleo__texto { margin-top: 1.5rem; display: grid; gap: 0.75rem; line-height: 1.65; color: var(--cinza-600); }
.nucleo__texto p { margin: 0; }
.nucleo__dados { display: grid; gap: 0.75rem; margin-top: 1.75rem; }
@media (min-width: 640px) { .nucleo__dados { grid-template-columns: 1fr 1fr; } }
.dado { display: flex; gap: 0.75rem; padding: 1rem; border-radius: var(--raio-xl); background: var(--branco); box-shadow: var(--anel); }
.dado .icon { margin-top: 0.125rem; color: var(--amarelo-600); }
.dado dd { font-weight: 600; color: var(--carvao-900); }
.nucleo__mapa { margin-top: 1.5rem; border-radius: var(--raio-xl); overflow: hidden; box-shadow: var(--anel); }

/* ----------------------------------------------------------- Transparência */
.cartao { padding: 2rem; border-radius: var(--raio-bloco); background: var(--branco); box-shadow: var(--anel); }
@media (min-width: 1024px) { .cartao { padding: 2.5rem; } }
.cartao__topo { display: flex; align-items: center; gap: 1rem; }
.cartao__titulo { font-size: 1.875rem; color: var(--carvao-900); }
.dados-grid { display: grid; gap: 1.5rem 2.5rem; margin-top: 2rem; }
@media (min-width: 640px) { .dados-grid { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1024px) { .dados-grid { grid-template-columns: repeat(3, 1fr); } }
.dados-grid dd { margin-top: 0.25rem; font-weight: 600; color: var(--carvao-900); }

.documentos__blocos { display: grid; gap: 3.5rem; }
.documentos__bloco .grid { margin-top: 2rem; }

.tabela-wrap { margin-top: 2.5rem; overflow-x: auto; border-radius: var(--raio-bloco); background: var(--branco); box-shadow: var(--anel); }
.tabela { width: 100%; min-width: 46rem; border-collapse: collapse; text-align: left; }
.tabela th { padding: 1rem 1.5rem; background: var(--amarelo-50); border-bottom: 1px solid rgba(0, 0, 0, 0.05); font-size: 0.75rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.05em; }
.tabela td { padding: 1.25rem 1.5rem; border-bottom: 1px solid rgba(0, 0, 0, 0.05); color: var(--cinza-600); }
.tabela tr:last-child td { border-bottom: 0; }
.tabela__forte { font-weight: 600; color: var(--carvao-900); }
.tabela .pill { text-transform: none; letter-spacing: 0; }

.origem__grid { display: grid; gap: 3rem; align-items: center; }
@media (min-width: 1024px) { .origem__grid { grid-template-columns: 5fr 7fr; } }
.origem__barras { display: grid; gap: 1.25rem; }
.barra__topo { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.barra__fonte { font-weight: 600; }
.barra__pct { font-size: 1.5rem; color: var(--amarelo-600); }
.barra__trilho { margin-top: 0.5rem; height: 0.75rem; border-radius: 999px; background: var(--areia); overflow: hidden; }
.barra__valor { height: 100%; width: 0; border-radius: 999px; background: var(--amarelo-500); transition: width 0.9s var(--ease) calc(var(--atraso) + 0.18s); }
.barra.is-visivel .barra__valor { width: var(--pct); }

.pedido__inner { text-align: center; }
.pedido .secao-cab__titulo { margin-top: 1.5rem; }
.pedido .secao-cab__texto { margin-inline: auto; max-width: 42rem; }
.pedido .btn { margin-top: 2rem; }

/* --------------------------------------------------------- Página comum/404 */
.pagina__conteudo { padding-block: var(--secao-y); }
.prosa { max-width: 72ch; line-height: 1.7; color: var(--cinza-600); }
.prosa h2 { margin-top: 2rem; color: var(--carvao-900); }
.prosa p { margin-bottom: 1rem; }
.erro-404 { padding-block: clamp(4rem, 10vw, 8rem); text-align: center; }
.erro-404__codigo { font-family: var(--fonte-display); font-size: clamp(5rem, 18vw, 11rem); line-height: 0.85; color: var(--amarelo-500); }
.erro-404__titulo { font-size: 2.25rem; }
.erro-404__texto { margin: 1rem auto 0; max-width: 46ch; color: var(--cinza-600); }

/* ------------------------------------------------------------------ Rodapé */
.site-footer { background: var(--carvao-900); color: var(--branco); padding-block: 4rem; }
.site-footer__grid { display: grid; gap: 3rem; }
@media (min-width: 1024px) { .site-footer__grid { grid-template-columns: 4fr 3fr 2fr 4fr; } }
.site-footer__texto { margin-top: 1.5rem; max-width: 24rem; line-height: 1.65; color: rgba(255, 255, 255, 0.6); }
.site-footer__marca .btn { margin-top: 1.5rem; }
.site-footer__titulo { font-size: 0.875rem; font-weight: 800; text-transform: uppercase; letter-spacing: 0.18em; color: var(--amarelo-400); }
.site-footer__lista { display: grid; gap: 0.625rem; margin-top: 1.25rem; }
.site-footer__lista a { color: rgba(255, 255, 255, 0.6); transition: color 0.2s; }
.site-footer__lista a:hover { color: var(--amarelo-400); }
.site-footer__contato { display: grid; gap: 1rem; margin-top: 1.25rem; color: rgba(255, 255, 255, 0.6); }
.site-footer__contato li { display: flex; gap: 0.75rem; }
.site-footer__contato .icon { width: 1rem; height: 1rem; margin-top: 0.125rem; color: var(--amarelo-400); }
.site-footer__contato a { overflow-wrap: anywhere; transition: color 0.2s; }
.site-footer__contato a:hover { color: var(--amarelo-400); }
.site-footer__bottom {
	display: flex; flex-direction: column; gap: 0.75rem; margin-top: 3.5rem; padding-top: 1.75rem;
	border-top: 1px solid rgba(255, 255, 255, 0.1); font-size: 0.875rem; color: rgba(255, 255, 255, 0.4);
}
@media (min-width: 640px) { .site-footer__bottom { flex-direction: row; align-items: center; justify-content: space-between; } }
.site-footer__credito { font-weight: 600; color: rgba(255, 255, 255, 0.7); }
.site-footer__credito:hover { color: var(--amarelo-400); }

/* ------------------------------------------------------------ WhatsApp FAB */
.whatsapp-fab {
	position: fixed; right: 1.25rem; bottom: 1.5rem; z-index: 50;
	display: grid; place-items: center; width: 3.5rem; height: 3.5rem; border-radius: 50%;
	background: #25d366; color: var(--branco);
	box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.2), 0 8px 10px -6px rgba(0, 0, 0, 0.2);
	opacity: 0; transform: translateY(20px) scale(0.6); pointer-events: none;
	transition: opacity 0.3s, transform 0.3s cubic-bezier(0.3, 1.3, 0.4, 1);
}
.whatsapp-fab .icon { width: 1.75rem; height: 1.75rem; }
.whatsapp-fab.is-visivel { opacity: 1; transform: none; pointer-events: auto; }
.whatsapp-fab:hover { transform: scale(1.1); }
.whatsapp-fab:active { transform: scale(0.95); }

/* --------------------------------------------------------------- Impressão */
@media print {
	.site-header, .site-footer, .whatsapp-fab, .form, .filtro { display: none !important; }
	.reveal { opacity: 1 !important; transform: none !important; }
	body { color: #000; background: #fff; }
}
