/*
 * Base — reset, primitive de layout, tipografie de bază.
 * Mobile-first: totul e single-column implicit; complexitatea vine la min-width.
 */

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

* { margin: 0; }

html {
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
	scroll-behavior: smooth;
	/* Ancorele nu se lipesc sub nav-ul flotant. */
	scroll-padding-top: 6rem;
}

body {
	margin: 0;
	background: var(--bg);
	color: var(--text);
	font-family: var(--font-body);
	font-size: var(--fs-body);
	line-height: var(--lh-body);
	font-weight: 350;
	overflow-x: clip;
	/* Fundal crem cald cu aure aurii difuze (stil scs.md) — cald, nu plat. */
	background-image:
		radial-gradient(900px 700px at 100% -5%, rgba(220, 169, 107, 0.28), transparent 60%),
		radial-gradient(760px 620px at -8% 12%, rgba(220, 169, 107, 0.18), transparent 58%),
		radial-gradient(900px 800px at 60% 116%, rgba(180, 90, 41, 0.10), transparent 62%);
	background-attachment: fixed;
}

/* Grană fină, foarte discretă. */
body::before {
	content: "";
	position: fixed;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	opacity: 0.02;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

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

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

/* ---- Titluri ---- */
h1, h2, h3, h4 {
	font-family: var(--font-display);
	font-weight: 500;
	line-height: var(--lh-snug);
	letter-spacing: -0.01em;
	text-wrap: balance;
}
h1 { font-size: var(--fs-h1); line-height: var(--lh-tight); }
h2 { font-size: var(--fs-h2); }
h3 { font-size: var(--fs-h3); }

p { max-width: var(--container-text); }

::selection { background: var(--gold); color: var(--ink-900); }

:focus-visible {
	outline: 2px solid var(--gold-bright);
	outline-offset: 3px;
	border-radius: var(--radius);
}

/* ---- Primitive de layout ---- */
.container { width: var(--container); margin-inline: auto; }
.container--wide { width: var(--container-wide); margin-inline: auto; }
.container--text { width: var(--container-text); margin-inline: auto; }

.section { position: relative; z-index: 1; padding-block: var(--space-section); }

.eyebrow {
	font-family: var(--font-body);
	font-size: var(--fs-eyebrow);
	font-weight: 500;
	letter-spacing: var(--tracking-eyebrow);
	text-transform: uppercase;
	color: var(--accent-ink);
}

/* Regula fină editorială — element structural, nu ornament. */
.rule { height: 1px; border: 0; background: var(--hairline); }

.u-serif { font-family: var(--font-display); }
.u-gold { color: var(--gold); }
.u-italic { font-style: italic; }

.visually-hidden {
	position: absolute; 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: -999px; top: 0; z-index: 999;
	background: var(--gold); color: var(--ink-900);
	padding: 0.75rem 1.25rem; font-weight: 600;
}
.skip-link:focus { left: 1rem; top: 1rem; }

/* ---- Butoane (pastilă rotunjită, hover cu resort subtil) ---- */
.btn {
	display: inline-flex; align-items: center; justify-content: center;
	gap: 0.6em;
	min-height: 54px;
	padding: 0.95rem 2.05rem;
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	font-weight: 500;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	border: 1px solid transparent;
	border-radius: var(--radius-pill);
	cursor: pointer;
	will-change: transform;
	transition: background var(--dur-fast) var(--ease-out),
	            color var(--dur-fast) var(--ease-out),
	            border-color var(--dur-fast) var(--ease-out),
	            box-shadow var(--dur-med) var(--ease-out),
	            transform var(--dur-med) var(--ease-spring);
}
.btn:hover { transform: translateY(-2px); }
.btn:active { transform: translateY(0) scale(0.985); transition-duration: var(--dur-fast); }

.btn--primary {
	background: var(--gold);
	color: var(--ink-900);
	border-color: var(--gold);
	box-shadow: var(--shadow-gold);
}
.btn--primary:hover { background: var(--gold-bright); border-color: var(--gold-bright); box-shadow: 0 16px 46px -12px rgba(203, 170, 114, 0.5); }

.btn--ghost {
	background: var(--surface);
	color: var(--text);
	border-color: var(--hairline-strong);
	-webkit-backdrop-filter: var(--glass-blur);
	backdrop-filter: var(--glass-blur);
}
.btn--ghost:hover { border-color: var(--gold); color: var(--accent-ink); background: var(--surface-strong); }

/* Hero pe foto luminoasă: butonul ghost și eyebrow-ul folosesc tonurile închise
   (moștenesc stilul .btn--ghost implicit, potrivit pe fundal deschis). */
.hero .eyebrow { color: var(--accent-ink); }

/* Icon din interiorul butonului alunecă subtil la hover (micro-interacțiune). */
.btn .icon { transition: transform var(--dur-med) var(--ease-spring); }
.btn:hover .icon--arrow-right { transform: translateX(4px); }

/* ---- Reduced motion: navigare instantanee, fără animații ---- */
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after {
		animation-duration: 0.001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.001ms !important;
		scroll-behavior: auto !important;
	}
	body { background-attachment: scroll; }
}
