/**
 * Type scale, leading, tracking, and brand text colors.
 * Breakpoints match Tailwind: sm 640, md 768, lg 1024, xl 1280, 2xl 1536.
 *
 * Color classes: text-primary, text-title, text-body, text-dark.
 * Apply in Elementor via Advanced → CSS Classes (Heading, Text Editor, HTML).
 * Highlight a phrase inside markup: <span class="text-primary">…</span>
 * Do not also set widget Style color or typography.
 */

.text-xs {
	font-size: var(--text-xs);
}

.text-xs:not([class*="leading-"]) {
	line-height: var(--text-xs--line-height);
}

.text-sm {
	font-size: var(--text-sm);
}

.text-sm:not([class*="leading-"]) {
	line-height: var(--text-sm--line-height);
}

.text-base {
	font-size: var(--text-base);
}

.text-base:not([class*="leading-"]) {
	line-height: var(--text-base--line-height);
}

.text-lg {
	font-size: var(--text-lg);
}

.text-lg:not([class*="leading-"]) {
	line-height: var(--text-lg--line-height);
}

.text-xl {
	font-size: var(--text-xl);
}

.text-xl:not([class*="leading-"]) {
	line-height: var(--text-xl--line-height);
}

.text-2xl {
	font-size: var(--text-2xl);
}

.text-2xl:not([class*="leading-"]) {
	line-height: var(--text-2xl--line-height);
}

.text-3xl {
	font-size: var(--text-3xl);
}

.text-3xl:not([class*="leading-"]) {
	line-height: var(--text-3xl--line-height);
}

.text-4xl {
	font-size: var(--text-4xl);
}

.text-4xl:not([class*="leading-"]) {
	line-height: var(--text-4xl--line-height);
}

.text-5xl {
	font-size: var(--text-5xl);
}

.text-5xl:not([class*="leading-"]) {
	line-height: var(--text-5xl--line-height);
}

.text-6xl {
	font-size: var(--text-6xl);
}

.text-6xl:not([class*="leading-"]) {
	line-height: var(--text-6xl--line-height);
}

.text-7xl {
	font-size: var(--text-7xl);
}

.text-7xl:not([class*="leading-"]) {
	line-height: var(--text-7xl--line-height);
}

.text-8xl {
	font-size: var(--text-8xl);
}

.text-8xl:not([class*="leading-"]) {
	line-height: var(--text-8xl--line-height);
}

.font-light {
	font-weight: var(--font-weight-light);
}

.font-normal {
	font-weight: var(--font-weight-normal);
}

.font-medium {
	font-weight: var(--font-weight-medium);
}

.font-semibold {
	font-weight: var(--font-weight-semibold);
}

.font-bold {
	font-weight: var(--font-weight-bold);
}

.tracking-tight {
	letter-spacing: var(--tracking-tight);
}

.tracking-widest {
	letter-spacing: var(--tracking-widest);
}

.leading-none {
	line-height: var(--leading-none);
}

.leading-tight {
	line-height: var(--leading-tight);
}

.leading-snug {
	line-height: var(--leading-snug);
}

.leading-normal {
	line-height: var(--leading-normal);
}

.leading-relaxed {
	line-height: var(--leading-relaxed);
}

.leading-loose {
	line-height: var(--leading-loose);
}

/*
 * Elementor puts CSS Classes on the widget wrapper. Hello’s reset sets
 * rem font-size / weight on h1–h6, so utilities must inherit onto the tag.
 */
.elementor-widget[class*="text-xs"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-sm"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-base"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-lg"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-xl"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-2xl"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-3xl"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-4xl"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-5xl"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-6xl"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-7xl"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="text-8xl"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title) {
	font-size: inherit;
}

.elementor-widget[class*="text-xs"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-sm"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-base"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-lg"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-xl"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-2xl"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-3xl"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-4xl"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-5xl"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-6xl"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-7xl"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]),
.elementor-widget[class*="text-8xl"]:not([class*="leading-"]) :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]) {
	line-height: inherit;
}

.elementor-widget[class*="font-light"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="font-normal"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="font-medium"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="font-semibold"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="font-bold"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title) {
	font-weight: inherit;
}

.elementor-widget[class*="tracking-tight"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title),
.elementor-widget[class*="tracking-widest"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title) {
	letter-spacing: inherit;
}

.elementor-widget[class*="leading-"] :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title):not([class*="leading-"]) {
	line-height: inherit;
}

.text-primary {
	color: var(--heinz-color-primary);
}

.text-title {
	color: var(--heinz-color-title);
}

.text-body {
	color: var(--heinz-color-text);
}

.text-dark {
	color: var(--heinz-color-text-dark);
}

.elementor-widget.text-primary :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title, .elementor-widget-container) {
	color: var(--heinz-color-primary) !important;
}

.elementor-widget.text-title :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title, .elementor-widget-container) {
	color: var(--heinz-color-title) !important;
}

.elementor-widget.text-body :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title, .elementor-widget-container) {
	color: var(--heinz-color-text) !important;
}

.elementor-widget.text-dark :is(h1, h2, h3, h4, h5, h6, p, .elementor-heading-title, .elementor-widget-container) {
	color: var(--heinz-color-text-dark) !important;
}

.elementor-widget .text-primary {
	color: var(--heinz-color-primary) !important;
}

.elementor-widget .text-title {
	color: var(--heinz-color-title) !important;
}

.elementor-widget .text-body {
	color: var(--heinz-color-text) !important;
}

.elementor-widget .text-dark {
	color: var(--heinz-color-text-dark) !important;
}

@media (min-width: 640px) {
	.sm\:text-xs { font-size: var(--text-xs); }
	.sm\:text-xs:not([class*="leading-"]) { line-height: var(--text-xs--line-height); }
	.sm\:text-sm { font-size: var(--text-sm); }
	.sm\:text-sm:not([class*="leading-"]) { line-height: var(--text-sm--line-height); }
	.sm\:text-base { font-size: var(--text-base); }
	.sm\:text-base:not([class*="leading-"]) { line-height: var(--text-base--line-height); }
	.sm\:text-lg { font-size: var(--text-lg); }
	.sm\:text-lg:not([class*="leading-"]) { line-height: var(--text-lg--line-height); }
	.sm\:text-xl { font-size: var(--text-xl); }
	.sm\:text-xl:not([class*="leading-"]) { line-height: var(--text-xl--line-height); }
	.sm\:text-2xl { font-size: var(--text-2xl); }
	.sm\:text-2xl:not([class*="leading-"]) { line-height: var(--text-2xl--line-height); }
	.sm\:text-3xl { font-size: var(--text-3xl); }
	.sm\:text-3xl:not([class*="leading-"]) { line-height: var(--text-3xl--line-height); }
	.sm\:text-4xl { font-size: var(--text-4xl); }
	.sm\:text-4xl:not([class*="leading-"]) { line-height: var(--text-4xl--line-height); }
	.sm\:text-5xl { font-size: var(--text-5xl); }
	.sm\:text-5xl:not([class*="leading-"]) { line-height: var(--text-5xl--line-height); }
	.sm\:text-6xl { font-size: var(--text-6xl); }
	.sm\:text-6xl:not([class*="leading-"]) { line-height: var(--text-6xl--line-height); }
	.sm\:text-7xl { font-size: var(--text-7xl); }
	.sm\:text-7xl:not([class*="leading-"]) { line-height: var(--text-7xl--line-height); }
	.sm\:text-8xl { font-size: var(--text-8xl); }
	.sm\:text-8xl:not([class*="leading-"]) { line-height: var(--text-8xl--line-height); }
	.sm\:font-light { font-weight: var(--font-weight-light); }
	.sm\:font-normal { font-weight: var(--font-weight-normal); }
	.sm\:font-medium { font-weight: var(--font-weight-medium); }
	.sm\:font-semibold { font-weight: var(--font-weight-semibold); }
	.sm\:font-bold { font-weight: var(--font-weight-bold); }
	.sm\:tracking-tight { letter-spacing: var(--tracking-tight); }
	.sm\:tracking-widest { letter-spacing: var(--tracking-widest); }
	.sm\:leading-none { line-height: var(--leading-none); }
	.sm\:leading-tight { line-height: var(--leading-tight); }
	.sm\:leading-snug { line-height: var(--leading-snug); }
	.sm\:leading-normal { line-height: var(--leading-normal); }
	.sm\:leading-relaxed { line-height: var(--leading-relaxed); }
	.sm\:leading-loose { line-height: var(--leading-loose); }
}

@media (min-width: 768px) {
	.md\:text-xs { font-size: var(--text-xs); }
	.md\:text-xs:not([class*="leading-"]) { line-height: var(--text-xs--line-height); }
	.md\:text-sm { font-size: var(--text-sm); }
	.md\:text-sm:not([class*="leading-"]) { line-height: var(--text-sm--line-height); }
	.md\:text-base { font-size: var(--text-base); }
	.md\:text-base:not([class*="leading-"]) { line-height: var(--text-base--line-height); }
	.md\:text-lg { font-size: var(--text-lg); }
	.md\:text-lg:not([class*="leading-"]) { line-height: var(--text-lg--line-height); }
	.md\:text-xl { font-size: var(--text-xl); }
	.md\:text-xl:not([class*="leading-"]) { line-height: var(--text-xl--line-height); }
	.md\:text-2xl { font-size: var(--text-2xl); }
	.md\:text-2xl:not([class*="leading-"]) { line-height: var(--text-2xl--line-height); }
	.md\:text-3xl { font-size: var(--text-3xl); }
	.md\:text-3xl:not([class*="leading-"]) { line-height: var(--text-3xl--line-height); }
	.md\:text-4xl { font-size: var(--text-4xl); }
	.md\:text-4xl:not([class*="leading-"]) { line-height: var(--text-4xl--line-height); }
	.md\:text-5xl { font-size: var(--text-5xl); }
	.md\:text-5xl:not([class*="leading-"]) { line-height: var(--text-5xl--line-height); }
	.md\:text-6xl { font-size: var(--text-6xl); }
	.md\:text-6xl:not([class*="leading-"]) { line-height: var(--text-6xl--line-height); }
	.md\:text-7xl { font-size: var(--text-7xl); }
	.md\:text-7xl:not([class*="leading-"]) { line-height: var(--text-7xl--line-height); }
	.md\:text-8xl { font-size: var(--text-8xl); }
	.md\:text-8xl:not([class*="leading-"]) { line-height: var(--text-8xl--line-height); }
	.md\:font-light { font-weight: var(--font-weight-light); }
	.md\:font-normal { font-weight: var(--font-weight-normal); }
	.md\:font-medium { font-weight: var(--font-weight-medium); }
	.md\:font-semibold { font-weight: var(--font-weight-semibold); }
	.md\:font-bold { font-weight: var(--font-weight-bold); }
	.md\:tracking-tight { letter-spacing: var(--tracking-tight); }
	.md\:tracking-widest { letter-spacing: var(--tracking-widest); }
	.md\:leading-none { line-height: var(--leading-none); }
	.md\:leading-tight { line-height: var(--leading-tight); }
	.md\:leading-snug { line-height: var(--leading-snug); }
	.md\:leading-normal { line-height: var(--leading-normal); }
	.md\:leading-relaxed { line-height: var(--leading-relaxed); }
	.md\:leading-loose { line-height: var(--leading-loose); }
}

@media (min-width: 1024px) {
	.lg\:text-xs { font-size: var(--text-xs); }
	.lg\:text-xs:not([class*="leading-"]) { line-height: var(--text-xs--line-height); }
	.lg\:text-sm { font-size: var(--text-sm); }
	.lg\:text-sm:not([class*="leading-"]) { line-height: var(--text-sm--line-height); }
	.lg\:text-base { font-size: var(--text-base); }
	.lg\:text-base:not([class*="leading-"]) { line-height: var(--text-base--line-height); }
	.lg\:text-lg { font-size: var(--text-lg); }
	.lg\:text-lg:not([class*="leading-"]) { line-height: var(--text-lg--line-height); }
	.lg\:text-xl { font-size: var(--text-xl); }
	.lg\:text-xl:not([class*="leading-"]) { line-height: var(--text-xl--line-height); }
	.lg\:text-2xl { font-size: var(--text-2xl); }
	.lg\:text-2xl:not([class*="leading-"]) { line-height: var(--text-2xl--line-height); }
	.lg\:text-3xl { font-size: var(--text-3xl); }
	.lg\:text-3xl:not([class*="leading-"]) { line-height: var(--text-3xl--line-height); }
	.lg\:text-4xl { font-size: var(--text-4xl); }
	.lg\:text-4xl:not([class*="leading-"]) { line-height: var(--text-4xl--line-height); }
	.lg\:text-5xl { font-size: var(--text-5xl); }
	.lg\:text-5xl:not([class*="leading-"]) { line-height: var(--text-5xl--line-height); }
	.lg\:text-6xl { font-size: var(--text-6xl); }
	.lg\:text-6xl:not([class*="leading-"]) { line-height: var(--text-6xl--line-height); }
	.lg\:text-7xl { font-size: var(--text-7xl); }
	.lg\:text-7xl:not([class*="leading-"]) { line-height: var(--text-7xl--line-height); }
	.lg\:text-8xl { font-size: var(--text-8xl); }
	.lg\:text-8xl:not([class*="leading-"]) { line-height: var(--text-8xl--line-height); }
	.lg\:font-light { font-weight: var(--font-weight-light); }
	.lg\:font-normal { font-weight: var(--font-weight-normal); }
	.lg\:font-medium { font-weight: var(--font-weight-medium); }
	.lg\:font-semibold { font-weight: var(--font-weight-semibold); }
	.lg\:font-bold { font-weight: var(--font-weight-bold); }
	.lg\:tracking-tight { letter-spacing: var(--tracking-tight); }
	.lg\:tracking-widest { letter-spacing: var(--tracking-widest); }
	.lg\:leading-none { line-height: var(--leading-none); }
	.lg\:leading-tight { line-height: var(--leading-tight); }
	.lg\:leading-snug { line-height: var(--leading-snug); }
	.lg\:leading-normal { line-height: var(--leading-normal); }
	.lg\:leading-relaxed { line-height: var(--leading-relaxed); }
	.lg\:leading-loose { line-height: var(--leading-loose); }
}

@media (min-width: 1280px) {
	.xl\:text-xs { font-size: var(--text-xs); }
	.xl\:text-xs:not([class*="leading-"]) { line-height: var(--text-xs--line-height); }
	.xl\:text-sm { font-size: var(--text-sm); }
	.xl\:text-sm:not([class*="leading-"]) { line-height: var(--text-sm--line-height); }
	.xl\:text-base { font-size: var(--text-base); }
	.xl\:text-base:not([class*="leading-"]) { line-height: var(--text-base--line-height); }
	.xl\:text-lg { font-size: var(--text-lg); }
	.xl\:text-lg:not([class*="leading-"]) { line-height: var(--text-lg--line-height); }
	.xl\:text-xl { font-size: var(--text-xl); }
	.xl\:text-xl:not([class*="leading-"]) { line-height: var(--text-xl--line-height); }
	.xl\:text-2xl { font-size: var(--text-2xl); }
	.xl\:text-2xl:not([class*="leading-"]) { line-height: var(--text-2xl--line-height); }
	.xl\:text-3xl { font-size: var(--text-3xl); }
	.xl\:text-3xl:not([class*="leading-"]) { line-height: var(--text-3xl--line-height); }
	.xl\:text-4xl { font-size: var(--text-4xl); }
	.xl\:text-4xl:not([class*="leading-"]) { line-height: var(--text-4xl--line-height); }
	.xl\:text-5xl { font-size: var(--text-5xl); }
	.xl\:text-5xl:not([class*="leading-"]) { line-height: var(--text-5xl--line-height); }
	.xl\:text-6xl { font-size: var(--text-6xl); }
	.xl\:text-6xl:not([class*="leading-"]) { line-height: var(--text-6xl--line-height); }
	.xl\:text-7xl { font-size: var(--text-7xl); }
	.xl\:text-7xl:not([class*="leading-"]) { line-height: var(--text-7xl--line-height); }
	.xl\:text-8xl { font-size: var(--text-8xl); }
	.xl\:text-8xl:not([class*="leading-"]) { line-height: var(--text-8xl--line-height); }
	.xl\:font-light { font-weight: var(--font-weight-light); }
	.xl\:font-normal { font-weight: var(--font-weight-normal); }
	.xl\:font-medium { font-weight: var(--font-weight-medium); }
	.xl\:font-semibold { font-weight: var(--font-weight-semibold); }
	.xl\:font-bold { font-weight: var(--font-weight-bold); }
	.xl\:tracking-tight { letter-spacing: var(--tracking-tight); }
	.xl\:tracking-widest { letter-spacing: var(--tracking-widest); }
	.xl\:leading-none { line-height: var(--leading-none); }
	.xl\:leading-tight { line-height: var(--leading-tight); }
	.xl\:leading-snug { line-height: var(--leading-snug); }
	.xl\:leading-normal { line-height: var(--leading-normal); }
	.xl\:leading-relaxed { line-height: var(--leading-relaxed); }
	.xl\:leading-loose { line-height: var(--leading-loose); }
}

@media (min-width: 1536px) {
	.\32xl\:text-xs { font-size: var(--text-xs); }
	.\32xl\:text-xs:not([class*="leading-"]) { line-height: var(--text-xs--line-height); }
	.\32xl\:text-sm { font-size: var(--text-sm); }
	.\32xl\:text-sm:not([class*="leading-"]) { line-height: var(--text-sm--line-height); }
	.\32xl\:text-base { font-size: var(--text-base); }
	.\32xl\:text-base:not([class*="leading-"]) { line-height: var(--text-base--line-height); }
	.\32xl\:text-lg { font-size: var(--text-lg); }
	.\32xl\:text-lg:not([class*="leading-"]) { line-height: var(--text-lg--line-height); }
	.\32xl\:text-xl { font-size: var(--text-xl); }
	.\32xl\:text-xl:not([class*="leading-"]) { line-height: var(--text-xl--line-height); }
	.\32xl\:text-2xl { font-size: var(--text-2xl); }
	.\32xl\:text-2xl:not([class*="leading-"]) { line-height: var(--text-2xl--line-height); }
	.\32xl\:text-3xl { font-size: var(--text-3xl); }
	.\32xl\:text-3xl:not([class*="leading-"]) { line-height: var(--text-3xl--line-height); }
	.\32xl\:text-4xl { font-size: var(--text-4xl); }
	.\32xl\:text-4xl:not([class*="leading-"]) { line-height: var(--text-4xl--line-height); }
	.\32xl\:text-5xl { font-size: var(--text-5xl); }
	.\32xl\:text-5xl:not([class*="leading-"]) { line-height: var(--text-5xl--line-height); }
	.\32xl\:text-6xl { font-size: var(--text-6xl); }
	.\32xl\:text-6xl:not([class*="leading-"]) { line-height: var(--text-6xl--line-height); }
	.\32xl\:text-7xl { font-size: var(--text-7xl); }
	.\32xl\:text-7xl:not([class*="leading-"]) { line-height: var(--text-7xl--line-height); }
	.\32xl\:text-8xl { font-size: var(--text-8xl); }
	.\32xl\:text-8xl:not([class*="leading-"]) { line-height: var(--text-8xl--line-height); }
	.\32xl\:font-light { font-weight: var(--font-weight-light); }
	.\32xl\:font-normal { font-weight: var(--font-weight-normal); }
	.\32xl\:font-medium { font-weight: var(--font-weight-medium); }
	.\32xl\:font-semibold { font-weight: var(--font-weight-semibold); }
	.\32xl\:font-bold { font-weight: var(--font-weight-bold); }
	.\32xl\:tracking-tight { letter-spacing: var(--tracking-tight); }
	.\32xl\:tracking-widest { letter-spacing: var(--tracking-widest); }
	.\32xl\:leading-none { line-height: var(--leading-none); }
	.\32xl\:leading-tight { line-height: var(--leading-tight); }
	.\32xl\:leading-snug { line-height: var(--leading-snug); }
	.\32xl\:leading-normal { line-height: var(--leading-normal); }
	.\32xl\:leading-relaxed { line-height: var(--leading-relaxed); }
	.\32xl\:leading-loose { line-height: var(--leading-loose); }
}
