/**
 * Design Tokens — "Luz da Bahia / Horizonte"
 *
 * Direção de arte: litoral de Salvador/BA ao entardecer (Patamares, Alphaville,
 * Greenville). Uma linha dourada de 1px marca o horizonte em cada foto
 * full-bleed e reaparece como régua estrutural em todo o site — menu,
 * divisores, base dos preços. Ver .imob-horizonte-* em components.css.
 *
 * Regra de contraste (AA verificado manualmente, WCAG 2.2):
 *  - Texto de leitura em --cor-texto grafite #2a2a2a (sobre --cor-areia*,
 *    ~11:1, AAA) ou --cor-areia (sobre --cor-noite — contraste 12.8:1 AAA).
 *    Grafite em vez de preto puro para leitura mais suave/sofisticada.
 *  - --cor-terracota e --cor-horizonte NUNCA como cor de texto sobre
 *    --cor-areia (contraste 2.9:1 / 3.0:1 — reprova AA mesmo em texto grande).
 *    Use-os só em preenchimento de fundo (com texto claro por cima), ícones,
 *    bordas ou traços decorativos.
 *  - --cor-ouro só como texto/eyebrow sobre fundo escuro (--cor-noite):
 *    contraste 5.6:1 (passa AA). Sobre --cor-areia é só linha decorativa.
 */

/* Raleway — títulos (pesos finos em tamanhos grandes = ar de luxo moderno).
   Nunito — corpo. Latin cobre pt-BR; latin-ext garante glifos raros. */
@font-face {
	font-family: 'Raleway';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url('../fonts/raleway-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Raleway';
	font-style: normal;
	font-weight: 200 800;
	font-display: swap;
	src: url('../fonts/raleway-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('../fonts/nunito-latin.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
	font-family: 'Nunito';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('../fonts/nunito-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
	font-family: 'Spline Sans Mono';
	font-style: normal;
	font-weight: 400 500;
	font-display: swap;
	src: url('../fonts/spline-sans-mono.woff2') format('woff2');
}

:root {
	/* Paleta — Luz da Bahia */
	--cor-noite: #0e2420;
	--cor-areia: #ede3d0;
	--cor-areia-clara: #f6f1e6;
	--cor-terracota: #c1723d;
	--cor-terracota-escura: #9a5a2c;
	--cor-horizonte: #3f8f82;
	--cor-horizonte-escuro: #2c6459;
	--cor-ouro: #b8925a;
	--cor-texto: #2a2a2a;
	--cor-texto-claro: var(--cor-areia);
	--cor-linha: rgba(14, 36, 32, 0.12);
	--cor-linha-clara: rgba(237, 227, 208, 0.22);

	/* Tipografia — Raleway (títulos finos e grandes) + Nunito (corpo).
	   Contraste de proporção acentuado: manchetes grandes, corpo contido. */
	--fonte-display: 'Raleway', ui-sans-serif, system-ui, -apple-system, sans-serif;
	--fonte-corpo: 'Nunito', ui-sans-serif, system-ui, -apple-system, sans-serif;
	--fonte-dados: 'Spline Sans Mono', ui-monospace, 'SFMono-Regular', Menlo, monospace;

	--tamanho-base: 16px;
	--linha-corpo: 1.7;
	--linha-display: 1.05;

	/* Escala tipográfica (razão ~1.28, topo ampliado para contraste de luxo) */
	--texto-xs: 0.75rem;
	--texto-sm: 0.875rem;
	--texto-md: 1rem;
	--texto-lg: 1.25rem;
	--texto-xl: 1.75rem;
	--texto-2xl: 2.4rem;
	--texto-3xl: 3.25rem;
	--texto-4xl: 4.75rem;

	/* Espaçamento (escala 4px) */
	--espaco-1: 4px;
	--espaco-2: 8px;
	--espaco-3: 12px;
	--espaco-4: 16px;
	--espaco-5: 24px;
	--espaco-6: 32px;
	--espaco-7: 48px;
	--espaco-8: 64px;
	--espaco-9: 96px;
	--espaco-10: 128px;

	/* Raios e sombras — discretos, sem "rounded-xl + shadow-lg" genérico */
	--raio-sm: 2px;
	--raio-md: 4px;
	--raio-lg: 8px;
	--sombra-card: 0 1px 2px rgba(14, 36, 32, 0.06), 0 8px 24px -12px rgba(14, 36, 32, 0.18);
	--sombra-elevada: 0 24px 48px -20px rgba(14, 36, 32, 0.35);

	/* Layout */
	--largura-conteudo: 1240px;
	--largura-leitura: 68ch;
	--margem-viewport: clamp(20px, 5vw, 64px);

	/* Transições */
	--transicao-rapida: 150ms ease;
	--transicao-base: 250ms cubic-bezier(0.4, 0, 0.2, 1);

	/* Índices de camadas */
	--z-header: 100;
	--z-overlay: 200;
	--z-modal: 300;
}

*,
*::before,
*::after {
	box-sizing: border-box;
	border-color: var(--cor-linha);
}

html {
	font-size: var(--tamanho-base);
	scroll-behavior: smooth;
}

@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;
		scroll-behavior: auto !important;
	}
}

body {
	font-family: var(--fonte-corpo);
	font-size: var(--texto-md);
	line-height: var(--linha-corpo);
	color: var(--cor-texto);
	background: var(--cor-areia-clara);
	-webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4,
.imob-display {
	font-family: var(--fonte-display);
	font-weight: 300;
	line-height: var(--linha-display);
	letter-spacing: 0.005em;
	margin: 0 0 var(--espaco-5);
}

/* Quanto maior o título, mais fino — assinatura do luxo moderno. */
h1 { font-size: var(--texto-4xl); font-weight: 200; letter-spacing: 0.01em; }
h2 { font-size: var(--texto-3xl); font-weight: 300; }
h3 { font-size: var(--texto-2xl); font-weight: 400; }
h4 { font-size: var(--texto-xl); font-weight: 500; }

p {
	margin: 0 0 var(--espaco-4);
	max-width: var(--largura-leitura);
}

a {
	color: inherit;
}

:focus-visible {
	outline: 2px solid var(--cor-horizonte);
	outline-offset: 2px;
}

.imob-container {
	width: 100%;
	max-width: var(--largura-conteudo);
	margin-inline: auto;
	padding-inline: var(--margem-viewport);
}

.imob-dados {
	font-family: var(--fonte-dados);
	font-variant-numeric: tabular-nums;
}

.imob-sr-only {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}
