/* =================================================================
   NÚCLEO — CASCA (não editar entre clientes; use identity.css)
   ================================================================= */

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

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

body {
	margin: 0;
	background: var(--id-papel, #fff);
	color: var(--id-tinta, #16181b);
	font-family: var(--id-fonte-texto, system-ui, sans-serif);
	font-size: 1rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	overflow-wrap: break-word;
}

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

a { color: var(--id-acento, #b8823f); text-underline-offset: 3px; }

/* ---------- Acesso rápido por teclado ---------- */

.nc-skip {
	position: absolute;
	left: -9999px;
	top: 0;
	z-index: 999;
	padding: .75rem 1.2rem;
	background: var(--id-escura, #111);
	color: #fff;
	border-radius: 0 0 8px 0;
	text-decoration: none;
	font-weight: 600;
}

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

/* ---------- Header ---------- */

.nc-header {
	position: sticky;
	top: 0;
	z-index: 80;
	background: var(--id-papel, #fff);
	border-bottom: 1px solid color-mix(in srgb, var(--id-tinta, #16181b) 12%, transparent);
	padding-top: env(safe-area-inset-top);
}

.nc-header__inner {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding: .7rem clamp(1.15rem, 4.5vw, 2rem);
	display: flex;
	align-items: center;
	gap: 1.25rem;
}

.nc-brand {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	text-decoration: none;
	color: var(--id-escura, #111);
	font-family: var(--id-fonte-titulo, serif);
	font-size: 1.25rem;
	font-weight: 600;
	letter-spacing: -.01em;
	margin-right: auto;
}

.nc-brand img { max-height: 44px; width: auto; display: block; }

/* Navegação */

.nc-nav { display: flex; align-items: center; gap: .25rem; }

.nc-nav ul {
	display: flex;
	gap: .25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-nav a {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 .85rem;
	border-radius: 8px;
	color: var(--id-tinta, #16181b);
	text-decoration: none;
	font-size: .9375rem;
	font-weight: 500;
}

.nc-nav a:hover,
.nc-nav .current-menu-item > a,
.nc-nav .current_page_item > a {
	color: var(--id-primaria, #1b4d5a);
	background: var(--id-clara, #eef2f3);
}

/* CTA do header (configurável no Personalizar) */

.nc-cta {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 1.2rem;
	background: var(--id-primaria, #1b4d5a);
	color: #fff;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 600;
	font-size: .9375rem;
	white-space: nowrap;
}

.nc-cta:hover { background: var(--id-escura, #0f2f38); }

/* Hambúrguer */

.nc-burger {
	display: none;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 1px solid color-mix(in srgb, var(--id-tinta, #16181b) 15%, transparent);
	border-radius: 10px;
	background: none;
	cursor: pointer;
	color: var(--id-escura, #111);
}

.nc-burger svg { width: 20px; height: 20px; }
.nc-burger .fechar { display: none; }
.nc-burger[aria-expanded="true"] .abrir { display: none; }
.nc-burger[aria-expanded="true"] .fechar { display: block; }

@media (max-width: 820px) {
	.nc-burger { display: inline-flex; }

	.nc-nav {
		display: none;
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		background: var(--id-papel, #fff);
		border-bottom: 1px solid color-mix(in srgb, var(--id-tinta, #16181b) 12%, transparent);
		padding: .6rem clamp(1.15rem, 4.5vw, 2rem) 1rem;
		box-shadow: 0 16px 30px rgba(0, 0, 0, .08);
	}

	.nc-nav.aberto { display: block; }

	.nc-nav ul { flex-direction: column; gap: 0; }

	.nc-nav a { min-height: 48px; width: 100%; border-radius: 8px; }

	.nc-header__inner { flex-wrap: wrap; position: relative; }
}

/* ---------- Conteúdo de página comum ---------- */

.nc-page {
	width: 100%;
	max-width: 780px;
	margin-inline: auto;
	padding: clamp(2.5rem, 2rem + 3vw, 4.5rem) clamp(1.15rem, 4.5vw, 2rem);
}

.nc-page h1 {
	font-family: var(--id-fonte-titulo, serif);
	font-size: clamp(2rem, 1.5rem + 2.4vw, 3rem);
	line-height: 1.1;
	letter-spacing: -.02em;
	color: var(--id-escura, #111);
	margin: 0 0 1.2rem;
	text-wrap: balance;
}

.nc-page .nc-conteudo > * + * { margin-top: 1.3em; }

/* Página montada no Elementor: o builder controla tudo, o tema sai da frente. */
.elementor-page .nc-page { max-width: none; padding: 0; }
.elementor-page .nc-page h1.nc-titulo-pagina { display: none; }

/* ---------- 404 ---------- */

.nc-404 { text-align: left; }
.nc-404 .nc-code {
	font-family: var(--id-fonte-titulo, serif);
	font-size: clamp(4rem, 10vw, 7rem);
	line-height: 1;
	color: var(--id-clara, #e8f1f2);
	-webkit-text-stroke: 2px var(--id-primaria, #1b4d5a);
	margin: 0 0 .5rem;
}

/* ---------- Footer ---------- */

.nc-footer {
	margin-top: clamp(3rem, 2rem + 4vw, 5rem);
	border-top: 1px solid color-mix(in srgb, var(--id-tinta, #16181b) 12%, transparent);
	padding-bottom: env(safe-area-inset-bottom);
}

.nc-footer__inner {
	width: 100%;
	max-width: 1180px;
	margin-inline: auto;
	padding: 2rem clamp(1.15rem, 4.5vw, 2rem);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 2rem;
	font-size: .875rem;
	color: color-mix(in srgb, var(--id-tinta, #16181b) 62%, transparent);
}

.nc-footer__menu ul {
	display: flex;
	flex-wrap: wrap;
	gap: .25rem 1.25rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.nc-footer__menu a { color: inherit; text-decoration: none; }
.nc-footer__menu a:hover { color: var(--id-primaria, #1b4d5a); }

.nc-footer__copy { margin-left: auto; }

@media (max-width: 640px) {
	.nc-footer__copy { margin-left: 0; }
}

/* ---------- Comentários (mínimo digno) ---------- */

.nc-comments { margin-top: 2.5rem; }
.nc-comments ol { list-style: none; padding: 0; }
.nc-comments li { padding: 1rem 0; border-top: 1px solid color-mix(in srgb, var(--id-tinta, #16181b) 10%, transparent); }
.nc-comments .comment-meta { font-size: .8125rem; color: color-mix(in srgb, var(--id-tinta, #16181b) 60%, transparent); margin-bottom: .3rem; }
.nc-comments textarea,
.nc-comments input[type="text"],
.nc-comments input[type="email"],
.nc-comments input[type="url"] {
	width: 100%;
	padding: .7rem .8rem;
	border: 1px solid color-mix(in srgb, var(--id-tinta, #16181b) 20%, transparent);
	border-radius: 8px;
	font: inherit;
	font-size: max(16px, 1rem);
}
.nc-comments .submit {
	display: inline-flex;
	align-items: center;
	min-height: 46px;
	padding: 0 1.4rem;
	background: var(--id-primaria, #1b4d5a);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font-weight: 600;
	cursor: pointer;
}

/* ---------- Foco e movimento ---------- */

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--id-primaria, #1b4d5a);
	outline-offset: 2px;
	border-radius: 4px;
}

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