/* ==========================================================================
   Lady Semijoias — Base
   Reset moderno + tipografia + atoms básicos.
   Mobile-first.
   ========================================================================== */

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

html {
	-webkit-text-size-adjust: 100%;
	font-size: 16px;
	scroll-behavior: smooth;
}

body.lady-body {
	margin: 0;
	min-height: 100vh;
	font-family: var(--lady-font-body);
	font-size: var(--lady-fs-base);
	line-height: var(--lady-lh-normal);
	color: var(--lady-text);
	background: var(--lady-bg);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}

/* Reset de elementos comuns */
.lady-body h1, .lady-body h2, .lady-body h3, .lady-body h4, .lady-body h5, .lady-body h6 {
	margin: 0 0 var(--lady-space-3);
	font-family: var(--lady-font-display);
	font-weight: var(--lady-fw-medium);
	line-height: var(--lady-lh-tight);
	color: var(--lady-text);
	letter-spacing: 0.01em;
}

.lady-body h1 { font-size: var(--lady-fs-3xl); }
.lady-body h2 { font-size: var(--lady-fs-2xl); }
.lady-body h3 { font-size: var(--lady-fs-xl); }
.lady-body h4 { font-size: var(--lady-fs-lg); }
.lady-body h5 { font-size: var(--lady-fs-md); font-family: var(--lady-font-body); font-weight: var(--lady-fw-semibold); }
.lady-body h6 { font-size: var(--lady-fs-base); font-family: var(--lady-font-body); font-weight: var(--lady-fw-semibold); }

.lady-body p { margin: 0 0 var(--lady-space-3); }

.lady-body a {
	color: var(--lady-primary-active);
	text-decoration: none;
	transition: color var(--lady-transition-fast);
}
.lady-body a:hover {
	color: var(--lady-primary-hover);
	text-decoration: underline;
}

.lady-body img,
.lady-body svg {
	max-width: 100%;
	height: auto;
	display: block;
}

.lady-body small { font-size: var(--lady-fs-sm); color: var(--lady-text-muted); }

.lady-body hr {
	border: 0;
	border-top: 1px solid var(--lady-border);
	margin: var(--lady-space-6) 0;
}

/* ----- Container ----- */
.lady-container {
	width: 100%;
	margin: 0 auto;
	padding: 0 var(--lady-space-4);
}
@media (min-width: 768px) {
	.lady-container { padding: 0 var(--lady-space-6); }
}
@media (min-width: 1280px) {
	.lady-container { max-width: 1280px; padding: 0 var(--lady-space-8); }
}

/* ----- Page header ----- */
.lady-page-header {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: var(--lady-space-4);
	flex-wrap: wrap;
	margin-bottom: var(--lady-space-6);
}
.lady-page-header__title {
	margin: 0;
	display: flex;
	align-items: center;
	flex-wrap: nowrap;
	gap: var(--lady-space-3);
	font-size: var(--lady-fs-2xl);
	font-family: var(--lady-font-display);
	font-weight: var(--lady-fw-medium);
	color: var(--lady-text);
	white-space: nowrap;
}
.lady-body .lady-page-header__title .lady-page-header__icon {
	width: 28px;
	height: 28px;
	min-width: 28px;
	color: var(--lady-gold-700);
	flex-shrink: 0;
	display: inline-block;
	vertical-align: middle;
}
.lady-page-header__subtitle {
	display: block;
	margin-top: var(--lady-space-1);
	color: var(--lady-text-muted);
	font-size: var(--lady-fs-sm);
}
.lady-page-header__actions {
	display: flex;
	gap: var(--lady-space-2);
	flex-wrap: wrap;
}

/* ----- Sr-only ----- */
.lady-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;
}

/* ----- Focus visível (acessibilidade) ----- */
.lady-body *:focus-visible {
	outline: 2px solid var(--lady-primary);
	outline-offset: 2px;
	border-radius: var(--lady-radius-sm);
}

/* ----- Helpers ----- */
.lady-stack > * + * { margin-top: var(--lady-space-3); }
.lady-stack-lg > * + * { margin-top: var(--lady-space-6); }

.lady-flex { display: flex; gap: var(--lady-space-3); align-items: center; }
.lady-flex-between { display: flex; justify-content: space-between; align-items: center; gap: var(--lady-space-3); }
.lady-flex-wrap { flex-wrap: wrap; }

.lady-text-muted { color: var(--lady-text-muted); }
.lady-text-subtle { color: var(--lady-text-subtle); }
.lady-text-center { text-align: center; }
.lady-text-right { text-align: right; }

/* ----- Grid responsivo (mobile-first) ----- */
.lady-grid {
	display: grid;
	gap: var(--lady-space-4);
	grid-template-columns: 1fr;
}
@media (min-width: 640px) {
	.lady-grid--2 { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 768px) {
	.lady-grid--3 { grid-template-columns: repeat(3, 1fr); }
}
@media (min-width: 1024px) {
	.lady-grid--4 { grid-template-columns: repeat(4, 1fr); }
}
