/**
 * Maps Bose design tokens to Elementor globals and base widget styles.
 * Source tokens: tokens/bose.css (synced to assets/design-system/bose.css).
 */

:root {
	--e-global-color-primary: var(--bose-color-brand-black);
	--e-global-color-secondary: var(--bose-color-neutral-700);
	--e-global-color-text: var(--bose-color-text-primary);
	--e-global-color-accent: var(--bose-color-brand-sand);
	--e-global-color-white: var(--bose-color-brand-white);
	--e-global-color-gold: var(--bose-color-brand-gold);
	--e-global-color-surface: var(--bose-color-surface-subtle);
	--e-global-color-border: var(--bose-color-border-default);

	--e-global-typography-primary-font-family: var(--bose-font-family-brand);
	--e-global-typography-secondary-font-family: var(--bose-font-family-brand);
	--e-global-typography-text-font-family: var(--bose-font-family-sans);
	--e-global-typography-accent-font-family: var(--bose-font-family-sans);
}

html body,
.elementor {
	color: var(--bose-color-text-primary);
	font-family: var(--bose-font-family-sans);
	font-size: var(--bose-font-size-md);
	line-height: var(--bose-line-height-normal);
}

.elementor-widget-text-editor {
	color: var(--bose-color-text-primary);
}

.elementor-widget-text-editor p {
	margin-block: 0 0 var(--bose-space-4);
}

.elementor-widget-theme-post-content,
.elementor-widget-post-content,
.elementor-widget-theme-post-content .elementor-widget-container,
.elementor-widget-post-content .elementor-widget-container {
	color: var(--bose-color-text-primary);
	font-family: var(--bose-font-family-text) !important;
	font-size: var(--bose-font-size-md);
	line-height: var(--bose-line-height-relaxed);
}

.elementor-widget-theme-post-content .elementor-widget-container :is(p, li, blockquote, figcaption, cite, table, td, th, span, h1, h2, h3, h4, h5, h6),
.elementor-widget-post-content .elementor-widget-container :is(p, li, blockquote, figcaption, cite, table, td, th, span, h1, h2, h3, h4, h5, h6) {
	font-family: var(--bose-font-family-text) !important;
}

.elementor-widget-posts :is(h1, h2, h3, h4, h5, h6).elementor-post__title,
.elementor-widget-posts .elementor-post__title a,
.elementor-widget-archive-posts :is(h1, h2, h3, h4, h5, h6).elementor-post__title,
.elementor-widget-archive-posts .elementor-post__title a,
.elementor-loop-container :is(h1, h2, h3, h4, h5, h6).elementor-post__title,
.elementor-loop-container .elementor-post__title a {
	font-family: var(--bose-font-family-text) !important;
	font-weight: var(--bose-font-weight-semibold);
	line-height: 1.35;
	letter-spacing: 0 !important;
}

.elementor-widget-posts .elementor-post__excerpt,
.elementor-widget-posts .elementor-post__excerpt p,
.elementor-widget-posts .elementor-post__text,
.elementor-widget-archive-posts .elementor-post__excerpt,
.elementor-widget-archive-posts .elementor-post__excerpt p,
.elementor-widget-archive-posts .elementor-post__text,
.elementor-loop-container .elementor-post__excerpt,
.elementor-loop-container .elementor-post__excerpt p,
.elementor-loop-container .elementor-post__text,
.elementor-loop-container .elementor-post__meta-data {
	font-family: var(--bose-font-family-text) !important;
}

.elementor-widget-heading .elementor-heading-title,
.elementor-widget-e-heading .e-heading-base :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--bose-font-family-brand);
	letter-spacing: var(--bose-tracking-headline-fluid);
}

.elementor-widget-e-heading .e-heading-base h1 {
	font-size: var(--bose-font-size-3xl);
	line-height: var(--bose-line-height-tight);
}

.elementor-widget-e-heading .e-heading-base h2 {
	font-size: var(--bose-font-size-2xl);
	line-height: var(--bose-line-height-tight);
}

.elementor-widget-e-heading .e-heading-base h3 {
	font-size: var(--bose-font-size-xl);
	line-height: var(--bose-line-height-tight);
}

.elementor-widget-e-paragraph .e-paragraph-base {
	color: var(--bose-color-text-primary);
	font-family: var(--bose-font-family-sans);
	font-size: var(--bose-font-size-md);
	line-height: var(--bose-line-height-normal);
	margin-block: 0 0 var(--bose-space-4);
}

.elementor-widget-e-paragraph .e-paragraph-base p {
	margin-block: 0 0 var(--bose-space-4);
}

.elementor-button,
.elementor-widget-button .elementor-button {
	font-family: var(--bose-font-family-sans);
	font-weight: var(--bose-font-weight-medium);
	border-radius: var(--bose-radius-none);
	padding: var(--bose-space-3) var(--bose-space-6);
}

.elementor-button.elementor-size-sm {
	padding: var(--bose-space-2) var(--bose-space-4);
	font-size: var(--bose-font-size-sm);
}

.elementor-button.elementor-size-lg {
	padding: var(--bose-space-4) var(--bose-space-8);
	font-size: var(--bose-font-size-lg);
}

.elementor-widget-button .elementor-button {
	background-color: var(--bose-color-action-primary-bg);
	color: var(--bose-color-action-primary-fg);
	border-color: var(--bose-color-action-primary-bg);
}

.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus {
	background-color: var(--bose-color-action-primary-hover-bg);
	border-color: var(--bose-color-action-primary-hover-bg);
	color: var(--bose-color-action-primary-fg);
}

.elementor-widget-button .elementor-button.elementor-button-outline {
	background-color: var(--bose-color-action-secondary-bg);
	color: var(--bose-color-action-secondary-fg);
	border-color: var(--bose-color-action-secondary-border);
}

.elementor-widget-divider .elementor-divider-separator {
	border-block-start-color: var(--bose-color-border-default);
}

.elementor-widget-icon-box .elementor-icon-box-title {
	font-family: var(--bose-font-family-brand);
}

.elementor-widget-icon-box .elementor-icon-box-description {
	color: var(--bose-color-text-secondary);
}

.e-con {
	--container-default-padding-top: var(--bose-container-padding-lg);
	--container-default-padding-right: var(--bose-container-padding-lg);
	--container-default-padding-bottom: var(--bose-container-padding-lg);
	--container-default-padding-left: var(--bose-container-padding-lg);
	--container-max-width: var(--bose-layout-content-width);
}

@media (max-width: 767px) {
	.e-con {
		--container-default-padding-top: var(--bose-container-padding-xs);
		--container-default-padding-right: var(--bose-container-padding-xs);
		--container-default-padding-bottom: var(--bose-container-padding-xs);
		--container-default-padding-left: var(--bose-container-padding-xs);
	}
}
