/* =====================================================================
 * Alpha Living — base
 *
 * Reset curto, tipografia, ritmo vertical e os primitivos de layout.
 * Os tokens (cores, fontes, escala) vêm embutidos no <head> por inc/tokens.php.
 * ================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
	/* O cabeçalho é fixo: âncoras precisam parar abaixo dele. */
	scroll-padding-top: 96px;
}

body {
	margin: 0;
	background: var(--alpha-ivory);
	color: var(--alpha-ink);
	font-family: var(--font-body);
	font-size: var(--corpo);
	line-height: var(--linha-corpo);
	font-synthesis-weight: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}

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

img { height: auto; }

/* -------------------------------------------------------- Tipografia ---- */

h1, h2, h3, h4 {
	margin: 0;
	font-family: var(--font-display);
	font-weight: 400;
	line-height: var(--linha-titulo);
	letter-spacing: -.012em;
	text-wrap: balance;
}

h1 { font-size: var(--h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); }

p { margin: 0 0 1.15em; }
p:last-child { margin-bottom: 0; }

a { color: inherit; text-decoration: none; }

strong { font-weight: 500; }

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

/* A etiqueta que abre cada seção. Curta, em versal, dourada. */
.al-eyebrow {
	margin: 0 0 1.15rem;
	font-size: var(--etiqueta);
	font-weight: 500;
	letter-spacing: var(--rastreio-etiqueta);
	text-transform: uppercase;
	color: var(--alpha-gold);
}

.al-medida { max-width: 62ch; }
.al-medida--claro { color: rgba(244, 239, 230, .78); }

.al-subtitulo {
	margin: 3rem 0 1.5rem;
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 400;
}

/* --------------------------------------------------------- Estrutura ---- */

.al-wrap {
	width: 100%;
	max-width: var(--content-max);
	margin-inline: auto;
	padding-inline: var(--gutter);
}

.al-principal { display: block; }

.al-secao { padding-block: var(--ritmo); position: relative; }

.al-secao--marfim { background: var(--alpha-ivory); color: var(--alpha-ink); }
.al-secao--areia  { background: var(--alpha-sand);  color: var(--alpha-ink); }
.al-secao--navy   { background: var(--alpha-navy);  color: var(--alpha-warm-white); }
.al-secao--noite  { background: var(--alpha-night); color: var(--alpha-warm-white); }
.al-secao--transparente { background: transparent; }

.al-secao--navy .al-eyebrow,
.al-secao--noite .al-eyebrow { color: var(--alpha-gold-light); }

.al-secao--navy p,
.al-secao--noite p { color: rgba(244, 239, 230, .8); }

.al-secao--navy h1, .al-secao--navy h2, .al-secao--navy h3,
.al-secao--noite h1, .al-secao--noite h2, .al-secao--noite h3 { color: var(--alpha-warm-white); }

/* Duas seções claras seguidas: uma linha discreta separa, sem barulho. */
.al-secao--marfim + .al-secao--marfim { border-top: 1px solid rgba(19, 36, 49, .08); }

.al-secao__link { margin-top: 3rem; }

/* ---------------------------------------------------- Cabeça de seção ---- */

.al-cabeca { margin-bottom: clamp(2.5rem, 5vw, 4rem); }

.al-cabeca__titulo {
	font-size: var(--h2);
	max-width: 20ch;
}

.al-cabeca--duas {
	display: grid;
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: end;
}

@media (min-width: 880px) {
	/* Duas linhas explícitas: sem elas o texto de apoio estica a linha da etiqueta
	   e abre um buraco entre a etiqueta e o título. */
	.al-cabeca--duas {
		grid-template-columns: 1.15fr .85fr;
		grid-template-rows: auto auto;
		row-gap: 0;
	}

	.al-cabeca--duas .al-eyebrow { grid-column: 1; grid-row: 1; align-self: end; }
	.al-cabeca--duas .al-cabeca__titulo { grid-column: 1; grid-row: 2; }
	.al-cabeca--duas .al-cabeca__apoio { grid-column: 2; grid-row: 2; align-self: end; }
}

.al-cabeca__apoio p {
	max-width: 46ch;
	color: var(--alpha-muted);
	margin: 0;
}

.al-secao--navy .al-cabeca__apoio p,
.al-secao--noite .al-cabeca__apoio p { color: rgba(244, 239, 230, .72); }

/* ------------------------------------------------------------ Botões ---- */

.al-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .6rem;
	padding: 1.05rem 2rem;
	border: 1px solid transparent;
	background: transparent;
	font-family: var(--font-body);
	font-size: .75rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	line-height: 1;
	cursor: pointer;
	transition: background-color .25s ease, color .25s ease, border-color .25s ease;
	/* Sem borda arredondada: é uma marca editorial, não um app. */
	border-radius: 0;
}

/* Texto branco sobre o dourado: o navy sobre ouro tinha contraste fraco e o
   rótulo desaparecia nas telas mais claras. */
.al-btn--ouro { background: var(--alpha-gold); color: #fff; }
.al-btn--ouro:hover,
.al-btn--ouro:focus-visible { background: #a98a53; color: #fff; }

.al-btn--escuro { background: var(--alpha-navy); color: var(--alpha-warm-white); }
.al-btn--escuro:hover { background: var(--alpha-night); }

.al-btn--linha { border-color: var(--alpha-navy); color: var(--alpha-navy); }
.al-btn--linha:hover { background: var(--alpha-navy); color: var(--alpha-warm-white); }

.al-btn--linha-claro { border-color: rgba(244, 239, 230, .45); color: var(--alpha-warm-white); }
.al-btn--linha-claro:hover { background: var(--alpha-warm-white); color: var(--alpha-navy); }

.al-btn--fantasma { border-color: rgba(244, 239, 230, .3); color: var(--alpha-warm-white); }
.al-btn--fantasma:hover { border-color: var(--alpha-gold); color: var(--alpha-gold-light); }

.al-btn--mini { padding: .65rem 1.1rem; font-size: .6875rem; letter-spacing: .1em; }
.al-btn--bloco { display: flex; width: 100%; }
.al-btn--desligado { background: var(--alpha-sand); color: var(--alpha-muted); cursor: not-allowed; }

.al-acoes { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.al-acoes--centro { justify-content: center; margin-top: 2.5rem; }

/* Link com seta: o "botão" discreto do sistema. */
.al-seta {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	font-size: .8125rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--alpha-navy);
	padding-bottom: .35rem;
	border-bottom: 1px solid var(--alpha-gold);
	transition: gap .25s ease, color .25s ease;
}

.al-seta::after {
	content: "";
	width: 1.1rem;
	height: 1px;
	background: currentColor;
	transition: width .25s ease;
}

.al-seta:hover { gap: .9rem; color: var(--alpha-gold); }
.al-seta:hover::after { width: 1.6rem; }

.al-secao--navy .al-seta,
.al-secao--noite .al-seta { color: var(--alpha-gold-light); }

/* ------------------------------------------------------- Acessibilidade -- */

:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
	outline: 2px solid var(--alpha-gold);
	outline-offset: 3px;
}

.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;
}

.al-pular {
	position: absolute;
	left: -9999px;
	z-index: 999;
	padding: 1rem 1.5rem;
	background: var(--alpha-gold);
	color: var(--alpha-navy);
	font-size: .8125rem;
	letter-spacing: .1em;
	text-transform: uppercase;
}

.al-pular:focus {
	left: 1rem;
	top: 1rem;
}

/* --------------------------------------------------------- Utilitários -- */

.al-filete {
	display: block;
	width: 3rem;
	height: 1px;
	background: var(--alpha-gold);
	margin: 1.75rem 0;
}

.al-fundo--vazio {
	width: 100%;
	height: 100%;
	min-height: 320px;
	background:
		linear-gradient(135deg, rgba(185, 155, 99, .08), transparent 60%),
		var(--alpha-navy);
}

.al-vazio-inline {
	padding: clamp(2.5rem, 6vw, 4rem);
	border: 1px dashed rgba(19, 36, 49, .2);
	text-align: center;
	color: var(--alpha-muted);
}

.al-aviso-legal {
	padding: 1.15rem 1.5rem;
	margin-bottom: 2.5rem;
	border-left: 3px solid var(--alpha-gold);
	background: var(--alpha-sand);
	font-size: .9375rem;
	line-height: 1.65;
}

.al-aviso-legal--escuro {
	background: rgba(244, 239, 230, .06);
	color: rgba(244, 239, 230, .78);
	margin: 3rem 0 0;
}

/* Visível só dentro do editor do Elementor. */
.al-aviso-editor {
	padding: 1rem 1.25rem;
	border: 1px dashed var(--alpha-gold);
	background: rgba(185, 155, 99, .08);
	font-size: .875rem;
	color: var(--alpha-ink);
}

/* ------------------------------------------------------------- Prosa ---- */

.al-prosa { max-width: 68ch; }
.al-prosa h2 { margin: 2.75rem 0 1rem; font-size: 1.75rem; }
.al-prosa h3 { margin: 2rem 0 .75rem; font-size: 1.375rem; }
.al-prosa p { margin-bottom: 1.25em; }

.al-prosa ul,
.al-prosa ol {
	margin: 0 0 1.5em 1.25rem;
	list-style: disc;
}

.al-prosa ol { list-style: decimal; }
.al-prosa li { margin-bottom: .5em; }

.al-prosa a {
	color: var(--alpha-navy);
	border-bottom: 1px solid var(--alpha-gold);
}

.al-prosa a:hover { color: var(--alpha-gold); }

.al-prosa--legal { font-size: 1rem; }

.al-prosa__rodape {
	margin-top: 3rem;
	padding-top: 1.5rem;
	border-top: 1px solid rgba(19, 36, 49, .12);
	font-size: .875rem;
	color: var(--alpha-muted);
}

.al-colunas-texto {
	display: grid;
	gap: 1.5rem clamp(2rem, 5vw, 4rem);
	max-width: 100%;
}

@media (min-width: 880px) {
	.al-colunas-texto { grid-template-columns: repeat(2, 1fr); }
}

.al-colunas-texto p { color: var(--alpha-muted); }
.al-secao--navy .al-colunas-texto p { color: rgba(244, 239, 230, .78); }

/* ------------------------------------------------------ Movimento ------- */

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }

	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

/* ------------------------------------------------------- Impressão ------ */

@media print {
	.al-cabecalho,
	.al-rodape,
	.al-flutuante,
	.al-filtros,
	.al-form { display: none !important; }

	body { background: #fff; color: #000; }
	.al-secao { padding-block: 1.5rem; }
}
