/**
 * Elementor enhancement layer.
 * Enhances Elementor Free containers/widgets — does not replace Elementor layout.
 *
 * Rules use stable semantic classes (.elevora-*) only.
 * Avoid :nth-child / DOM-order-dependent selectors for essential layout.
 */

/* Sync Elementor CSS variables with theme tokens as a Free-compatible baseline. */
body.elementor-page,
body.elevora-elementor-page {
	--e-global-color-primary: var(--elevora-color-charcoal);
	--e-global-color-secondary: var(--elevora-color-gold);
	--e-global-color-text: var(--elevora-color-text);
	--e-global-color-accent: var(--elevora-color-gold);
}

/* Full-bleed Elementor sections should not inherit theme content gutters. */
.elevora-elementor-page .elementor {
	overflow: clip;
}

.elevora-elementor-page .elementor-section,
.elevora-elementor-page .e-con {
	position: relative;
}

/* ——— Stable utility classes for Elementor Advanced → CSS Classes ——— */

.elevora-container {
	width: min(100% - (var(--elevora-gutter) * 2), var(--elevora-content-width));
	margin-inline: auto;
}

.elevora-container--wide {
	width: min(100% - (var(--elevora-gutter) * 2), var(--elevora-content-width-wide));
}

.elevora-section-pad {
	padding-block: var(--elevora-section-space);
}

.elevora-section-pad--sm {
	padding-block: var(--elevora-section-space-sm);
}

.elevora-surface-white {
	background-color: var(--elevora-color-white);
	color: var(--elevora-color-text);
}

.elevora-surface-offwhite {
	background-color: var(--elevora-color-off-white);
	color: var(--elevora-color-text);
}

.elevora-surface-charcoal {
	background-color: var(--elevora-color-charcoal);
	color: var(--elevora-color-text-on-dark);
}

.elevora-surface-charcoal h1,
.elevora-surface-charcoal h2,
.elevora-surface-charcoal h3,
.elevora-surface-charcoal h4,
.elevora-surface-charcoal h5,
.elevora-surface-charcoal h6 {
	color: var(--elevora-color-white);
}

.elevora-hero {
	min-height: clamp(22rem, 55vh, 36rem);
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	background-color: var(--elevora-color-charcoal);
	background-size: cover;
	background-position: center;
	color: var(--elevora-color-white);
}

.elevora-hero__overlay {
	background: linear-gradient(
		180deg,
		rgba(18, 18, 18, 0.25) 0%,
		rgba(18, 18, 18, 0.65) 100%
	);
}

.elevora-stack {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	gap: var(--elevora-stack-gap);
}

.elevora-row {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: var(--elevora-grid-gap);
}

.elevora-row > * {
	flex: 1 1 16rem;
	min-width: 0;
}

.elevora-card {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	min-width: 0;
	background: var(--elevora-color-white);
	border-radius: var(--elevora-radius);
}

.elevora-card__media {
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--elevora-color-off-white);
}

.elevora-card__media--wide {
	aspect-ratio: 3 / 2;
}

.elevora-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.elevora-btn-primary .elementor-button,
.elevora-btn-primary.elementor-button {
	background-color: var(--elevora-color-gold) !important;
	border-color: var(--elevora-color-gold) !important;
	color: var(--elevora-color-charcoal) !important;
	border-radius: var(--elevora-radius) !important;
	fill: var(--elevora-color-charcoal);
}

.elevora-btn-outline .elementor-button,
.elevora-btn-outline.elementor-button {
	background-color: transparent !important;
	border-color: currentColor !important;
	border-radius: var(--elevora-radius) !important;
}

/* Icon line treatment for Elementor Icon / Icon Box widgets using this class. */
.elevora-icon-gold .elementor-icon,
.elevora-icon-gold .elementor-icon-box-icon i,
.elevora-icon-gold .elementor-icon-box-icon svg {
	color: var(--elevora-color-gold);
	fill: var(--elevora-color-gold);
}

.elevora-eyebrow-el .elementor-heading-title,
.elevora-eyebrow-el {
	font-family: var(--elevora-font-sans) !important;
	font-size: var(--elevora-fs-eyebrow) !important;
	font-weight: var(--elevora-fw-semibold) !important;
	letter-spacing: var(--elevora-ls-eyebrow) !important;
	text-transform: uppercase !important;
	color: var(--elevora-color-gold) !important;
}

.elevora-heading-serif .elementor-heading-title {
	font-family: var(--elevora-font-serif) !important;
	font-weight: var(--elevora-fw-semibold) !important;
	letter-spacing: var(--elevora-ls-heading);
	line-height: var(--elevora-lh-tight);
}

/* Assigned Elementor header/footer wrappers. */
.elevora-site-header,
.elevora-site-footer {
	width: 100%;
}

/* Keep page content under sticky header + dropdown stacking. */
.elevora-site-content,
main#elevora-content {
	position: relative;
	z-index: 0;
}
