:root {
	--av-color-black: #000000;
	--av-color-white: #ffffff;
	--av-color-accent: #99b6a2;
	--av-color-accent-strong: #b8cdbf;
	--av-font-body: "Helvetica Neue", Helvetica, Arial, sans-serif;
	--av-font-heading: "Staatliches", "Helvetica Neue", Arial, sans-serif;
	--av-heading-track: 0.024em;
	--av-hero-heading-track: 0.028em;
	--av-body-track: 0.004em;
}

/* Force Elementor global typography tokens to brand fonts after kit edits. */
:root,
body,
.elementor-kit-5934,
[class*="elementor-kit-"] {
	--e-global-color-primary: #ffffff;
	--e-global-color-secondary: rgba(255, 255, 255, 0.86);
	--e-global-color-text: rgba(255, 255, 255, 0.82);
	--e-global-color-accent: var(--av-color-accent);
	--e-global-typography-primary-font-family: "Staatliches";
	--e-global-typography-primary-font-weight: 400;
	--e-global-typography-secondary-font-family: "Staatliches";
	--e-global-typography-secondary-font-weight: 400;
	--e-global-typography-accent-font-family: "Helvetica Neue";
	--e-global-typography-accent-font-weight: 500;
	--e-global-typography-text-font-family: "Helvetica Neue";
	--e-global-typography-text-font-weight: 400;
}

body {
	font-family: var(--av-font-body);
	letter-spacing: var(--av-body-track);
	font-weight: 400;
	text-rendering: optimizeLegibility;
}

h1,
h2,
h3,
h4,
h5,
h6,
.wvc-custom-heading,
.wolf-core-heading,
.hero-title,
.entry-title,
.section-title {
	font-family: var(--av-font-heading);
	font-weight: 400 !important;
	letter-spacing: var(--av-heading-track) !important;
	font-synthesis: none;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-transform: uppercase;
}

/* Large headings: slightly open tracking, without over-spacing. */
.hero-title,
.wvc-custom-heading,
.wolf-core-heading,
.entry-title {
	letter-spacing: var(--av-hero-heading-track) !important;
	line-height: 1.03;
}

/* Hero title in theme single/archive headers. */
body.has-hero #hero .post-title,
body.has-hero #hero h1,
body.has-hero #hero .entry-title {
	font-family: var(--av-font-heading) !important;
	font-weight: 400 !important;
	letter-spacing: var(--av-hero-heading-track) !important;
	line-height: 1.02;
	text-transform: uppercase;
}

/* Hero intro/body text: keep Helvetica and clean readability. */
body.has-hero #hero .post-meta-container,
body.has-hero #hero .post-secondary-meta-container,
body.has-hero #hero .subheading,
body.has-hero #hero .description,
body.has-hero #hero .post-meta-container p,
body.has-hero #hero .post-secondary-meta-container p {
	font-family: var(--av-font-body) !important;
	font-weight: 400 !important;
	letter-spacing: 0.003em !important;
	line-height: 1.42;
	text-transform: none !important;
}

/* Elementor widgets: keep titles/body fonts stable even after content block saves. */
.elementor-widget-heading .elementor-heading-title,
.elementor-widget-theme-post-title .elementor-heading-title,
.elementor-widget-theme-site-title .elementor-heading-title,
.elementor-widget .entry-title,
.elementor h1,
.elementor h2,
.elementor h3 {
	font-family: var(--av-font-heading) !important;
	font-weight: 400 !important;
	letter-spacing: var(--av-heading-track) !important;
}

.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor li,
.elementor-widget-icon-list .elementor-icon-list-item > .elementor-icon-list-text,
.elementor-widget-icon-list .elementor-icon-list-item > a,
.elementor-widget-theme-post-content,
.elementor-widget-theme-post-content p,
.elementor-widget-theme-post-content li,
.elementor-widget-shortcode,
.elementor-widget-theme-post-excerpt {
	font-family: var(--av-font-body) !important;
	font-weight: 400 !important;
	letter-spacing: 0.003em !important;
}

/* Header/menu typography must stay branded even after Elementor/kit updates. */
#desktop-navigation .nav-menu-desktop .menu-item-text-container,
#desktop-navigation .nav-bar .menu-item-text-container,
#desktop-navigation .nav-bar .nav-menu > li > a,
#mobile-navigation #mobile-bar .menu-item-text-container,
#mobile-menu-panel--inner .menu-item-text-container,
#mobile-menu-panel--inner .nav-menu-mobile > li > a,
#mobile-menu-panel--inner .nav-menu-vertical > li > a {
	font-family: var(--av-font-body) !important;
	font-weight: 600 !important;
	letter-spacing: 0.075em !important;
	text-transform: uppercase;
}

/* Keep "Works" filter labels in the selected heading style. */
.category-filter-work ul li a,
.category-filter-work ul li span,
.works-filters li a,
.works-filters li span {
	font-family: var(--av-font-heading) !important;
	font-weight: 400 !important;
	letter-spacing: 0.032em !important;
	text-transform: uppercase;
}

/* Marquee headline is part of brand heading system. */
.wolf-core-marquee-text,
.wvc-marquee-text,
.elementor-widget .wolf-core-marquee-text {
	font-family: var(--av-font-heading) !important;
	font-weight: 400 !important;
	letter-spacing: 0.02em !important;
	text-transform: uppercase;
}

/* Optional utility if a specific heading still feels too heavy in Elementor. */
.av-heading-light {
	letter-spacing: 0.04em !important;
	font-weight: 400 !important;
}
