/**
 * core/heading
 */

.wp-block-heading {
	--mark--typography--font-size: var(--wp--preset--font-size--xx-small);

	font-family: var(--wp--preset--font-family--secondary);
	font-weight: 900;
	letter-spacing: 0.01ch;
	line-height: 1;
	overflow-wrap: break-word !important;
}

.wp-block-heading a.has-icon svg {
	color: var(--wp--preset--color--accent-4);
}

/* 2X Large */
.wp-block-heading:where(.has-xx-large-font-size) {
	--mark--typography--font-size: var(--wp--preset--font-size--medium);

	margin-block: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--xx-large);
	text-wrap: balance;
}

/* Color overrides */
.wp-block-heading:where(.has-xx-large-font-size, .has-x-large-font-size, .has-large-font-size),
.wp-block-heading:where(h1, h2):not([class*='-font-size']) {
	color: var(--wp--preset--color--accent-2);
}

/* Reset to white when on accent background */
[class*='has-accent-'] .wp-block-heading:where(.has-xx-large-font-size, .has-x-large-font-size, .has-large-font-size),
[class*='has-accent-'] .wp-block-heading:where(h1, h2):not([class*='-font-size']) {
	color: var(--wp--preset--color--base);
}

/* Extra Large */
h1.wp-block-heading:not([class*='-font-size']),
.wp-block-heading:where(.has-x-large-font-size) {
	margin-block: var(--wp--preset--spacing--30);
	font-size: var(--wp--preset--font-size--x-large);
	line-height: 1.16;
}

/* Large */
h2.wp-block-heading:not([class*='-font-size']),
.wp-block-heading:where(.has-large-font-size) {
	--heading--large--typography--font-size: var(--wp--preset--font-size--large);

	margin-block: clamp(3rem, -1531.5rem + 2400vw, 4.5rem) var(--wp--preset--spacing--60);
	font-family: var(--wp--preset--font-family--secondary);
	font-size: var(--heading--large--typography--font-size);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.16;
	text-transform: uppercase;
}

@media (width < 375px) {
	h2.wp-block-heading:not([class*='-font-size']),
	.wp-block-heading:where(.has-large-font-size) {
		--heading--large--typography--font-size: 1.5625rem;
	}
}

@media (width >= 375px) and (width <= 500px) {
	@supports (font-size: 1cqi) {
		h2.wp-block-heading:not([class*='-font-size']),
		.wp-block-heading:where(.has-large-font-size) {
			--heading--large--typography--font-size: clamp(1.875rem, 9.75cqi, 4.5rem);
		}
	}
}

/* Medium */
h3.wp-block-heading:not([class*='-font-size']),
.wp-block-heading:where(.has-medium-font-size),
.wcs-single__content h2.wp-block-heading:not([class*='-font-size']) {
	font-size: var(--wp--preset--font-size--medium);
	letter-spacing: 0;
	line-height: 1.25;
}

h4.wp-block-heading:not([class*='-font-size']),
.wp-block-heading:where(.has-medium-font-size) + * {
	margin-block-start: 0;
}

/* Small */
h4.wp-block-heading:not([class*='-font-size']),
.wp-block-heading:where(.has-small-font-size),
.wcs-single__content h3.wp-block-heading:not([class*='-font-size']) {
	margin-block: var(--wp--preset--spacing--20);
	font-size: var(--wp--preset--font-size--small);
	line-height: 1.33;
}

/* Extra Small */
h5.wp-block-heading:not([class*='-font-size']),
.wp-block-heading:where(.has-x-small-font-size),
.wcs-single__content h4.wp-block-heading:not([class*='-font-size']) {
	margin-block: var(--wp--preset--spacing--10);
	font-size: var(--wp--preset--font-size--x-small);
	line-height: 1.33;
}

/* Kicker */
h6.wp-block-heading:not([class*='-font-size']),
.wp-block-heading:where(.has-xx-small-font-size, .has-resp-xx-small-font-size),
.wp-block-heading .is-small-caps {
	display: block;
	margin-block: var(--wp--preset--spacing--10);
	font-family: var(--wp--preset--font-family--primary);
	font-size: var(--wp--preset--font-size--xx-small);
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	font-weight: 800;
	letter-spacing: 0.075ch;
	line-height: 1.33;
	text-transform: uppercase;
}

.wp-block-heading:empty + * {
	margin-block-start: 0;
}

/* Serif */
.wp-block-heading:where(.has-primary-font-family) {
	font-weight: 900;
}

/* Strong text within a heading */
.wp-block-heading:is(.has-primary-font-family) strong {
	font-family: var(--wp--preset--font-family--secondary);
	font-weight: 400;
}

.wp-block-heading:is(.has-large-font-size) strong,
.wp-block-heading:is(h2):not([class*='is-style'], .has-primary-font-family) strong {
	font-family: var(--wp--preset--font-family--primary);
	font-weight: 900;
}



/* Hide empty headings */
.wp-block-heading:empty {
	display: none;
}

/**
 * Margin overrides
 */
/* Used :is() to override blockGap and default margin settings */
:is(h2.wp-block-heading:not([class*='-font-size']),
.wp-block-heading:is(.has-large-font-size)):has(+ .wp-block-quote) {
	margin-block-end: var(--wp--preset--spacing--20);
}

:is(h2.wp-block-heading:not([class*='-font-size']), .wp-block-heading.has-large-font-size) + .wp-block-quote {
	margin-block-start: 0;
}

:is(h2.wp-block-heading:not([class*='-font-size']), .wp-block-heading.has-large-font-size):has(+ p) {
	margin-block-end: var(--wp--preset--spacing--30);
}

/* When precedes a kicker */
.wp-block-heading:has(+ .wp-block-eh-kicker) {
	margin-block-end: 0;
}

/* Pattern library styles */
:is(h2, h3).wp-block-heading.is-style-pl {
	margin-block: var(--wp--preset--spacing--70) var(--wp--preset--spacing--40) !important;
	color: black;
	font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
	font-weight: 900;
	text-transform: none;
}

h2.wp-block-heading.is-style-pl {
	margin-block: var(--wp--preset--spacing--90) var(--wp--preset--spacing--70) !important;
	padding-block-start: var(--wp--preset--spacing--90);
	border-block-start: 1px solid currentColor;
	font-size: var(--wp--preset--font-size--x-large);
}

.wp-block-heading.is-style-pl + * {
	margin-block-start: 0 !important;
}

:first-child > h2.wp-block-heading.is-style-pl:first-child {
	margin-block-start: 0;
	padding-block-start: 0;
	border-block-start: none;
}

h3.wp-block-heading.is-style-pl {
	font-family: inherit;
	font-size: var(--wp--preset--font-size--large);
}

h4.wp-block-heading.is-style-pl {
	font-family: revert;
	font-size: var(--wp--preset--font-size--x-small);
}
