/**
 * AirNexis extras that theme.json cannot express yet:
 * asymmetric “leaf” radius, primary gradient, button state transitions,
 * and in-page anchor scrolling.
 */

@media (prefers-reduced-motion: no-preference) {
	html {
		scroll-behavior: smooth;
	}
}

/*
 * Hash / in-page anchors: keep targets clear of the WP admin bar and an
 * open hello bar. Header clearance stays on section scroll-margin-top.
 * --airnexis-hello-bar-height is 0 when the bar is closed or dismissed.
 */
html {
	scroll-padding-top: calc(
		var(--wp-admin--admin-bar--height, 0px) + var(--airnexis-hello-bar-height, 0px)
	);
}

/*
 * Full-bleed chrome with a 1920px content column.
 * Inset is 0 below --wp--custom--layout--max; extra side space is padding so
 * backgrounds still paint the viewport.
 */
.airnexis-header,
.airnexis-hero,
.airnexis-approach-hero,
.airnexis-page-hero,
.airnexis-privacy-hero,
.airnexis-content,
.airnexis-content-therapy,
.airnexis-footer {
	--airnexis-layout-inset: max(0px, calc((100vw - var(--wp--custom--layout--max)) / 2));
}

h1,
.wp-block-heading:is(h1) {
	text-wrap: balance;
}

.wp-element-button,
.wp-block-button__link {
	border-radius: var(--wp--custom--button--radius);
	transition-property: background-color, border-color, box-shadow, color, text-decoration-color;
	transition-duration: var(--wp--custom--button--transition-duration);
	transition-timing-function: ease;
}

/* -------------------------------------------------------------------------- */
/* Primary (default / Fill)                                                     */
/* -------------------------------------------------------------------------- */

.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background) {
	position: relative;
	isolation: isolate;
	background-color: transparent;
	background-image: var(--wp--preset--gradient--brand);
	box-shadow: 0 4px 6px transparent, inset 0 2px 4px transparent;
}

.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background)::before,
.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background)::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border-radius: inherit;
	opacity: 0;
	pointer-events: none;
	transition: opacity var(--wp--custom--button--transition-duration) ease;
}

.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background)::before {
	background-image: var(--wp--preset--gradient--brand-hover);
}

.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background)::after {
	background-image: var(--wp--preset--gradient--brand-pressed);
}

.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background):hover,
.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background):focus-visible {
	background-color: transparent;
	background-image: var(--wp--preset--gradient--brand);
	box-shadow: var(--wp--preset--shadow--button-hover), inset 0 2px 4px transparent;
}

.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background):hover::before,
.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background):focus-visible::before {
	opacity: 1;
}

.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background):active {
	background-color: transparent;
	box-shadow: 0 4px 6px transparent, inset 0 2px 4px rgba(0, 0, 0, 0.2);
}

.wp-block-button:not(.is-style-outline):not(.is-style-link) .wp-block-button__link:not(.has-background):active::after {
	opacity: 1;
}

/* -------------------------------------------------------------------------- */
/* Ghost (Outline)                                                              */
/* -------------------------------------------------------------------------- */

.wp-block-button.is-style-outline .wp-block-button__link {
	background-color: transparent;
	background-image: none;
	border-color: var(--wp--preset--color--accent-3);
	border-style: solid;
	border-width: var(--wp--custom--button--border-width);
	box-shadow: 0 2px 4px transparent, inset 0 1px 3px transparent;
	color: var(--wp--preset--color--accent-3);
	padding: calc(var(--wp--preset--spacing--md) - 1.5px) calc(var(--wp--preset--spacing--xl) - 1.5px);
}

.wp-block-button.is-style-outline .wp-block-button__link:hover,
.wp-block-button.is-style-outline .wp-block-button__link:focus-visible {
	background-color: color-mix(in srgb, var(--wp--preset--color--accent-3) 6%, transparent);
	background-image: none;
	border-color: var(--wp--preset--color--accent-4);
	color: var(--wp--preset--color--accent-4);
	box-shadow: var(--wp--preset--shadow--button-ghost-hover), inset 0 1px 3px transparent;
}

.wp-block-button.is-style-outline .wp-block-button__link:active {
	background-color: color-mix(in srgb, var(--wp--preset--color--accent-3) 10%, transparent);
	background-image: none;
	border-color: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent);
	box-shadow: 0 2px 4px transparent, inset 0 1px 3px rgba(0, 0, 0, 0.1);
}

/* -------------------------------------------------------------------------- */
/* Link                                                                         */
/* -------------------------------------------------------------------------- */

.wp-block-button.is-style-link .wp-block-button__link {
	background: none;
	background-image: none;
	border: none;
	border-radius: 0;
	box-shadow: none;
	padding: 0;
	color: var(--wp--preset--color--accent-3);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 0.2em;
}

.wp-block-button.is-style-link.has-custom-font-size .wp-block-button__link {
	font-size: inherit;
}

.wp-block-button.is-style-link .wp-block-button__link:hover,
.wp-block-button.is-style-link .wp-block-button__link:focus-visible {
	background: none;
	background-image: none;
	box-shadow: none;
	color: var(--wp--preset--color--accent-4);
	text-decoration-color: var(--wp--preset--color--accent-4);
}

.wp-block-button.is-style-link .wp-block-button__link:active {
	background: none;
	box-shadow: none;
	color: var(--wp--preset--color--accent);
	text-decoration-color: color-mix(in srgb, var(--wp--preset--color--accent) 80%, transparent);
}

/* -------------------------------------------------------------------------- */
/* List — Disc                                                                  */
/* -------------------------------------------------------------------------- */

.wp-block-list.is-style-disc {
	margin: 0;
	padding-inline-start: 2.25em;
	list-style-type: disc;
}

.wp-block-list.is-style-disc li {
	margin: 0 0 var(--wp--preset--spacing--sm);
	padding: 0;
}

.wp-block-list.is-style-disc li:last-child {
	margin-bottom: 0;
}

.wp-block-list.is-style-disc ::marker {
	color: var(--wp--preset--color--contrast);
}

@media (prefers-reduced-motion: reduce) {
	.wp-element-button,
	.wp-block-button__link,
	.wp-block-button__link::before,
	.wp-block-button__link::after {
		transition: none;
	}
}
