/**
 * Global Exhale theme foundations.
 */
*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--exhale-color-background);
	color: var(--exhale-color-text);
	font-family: var(--exhale-font-family);
	font-weight: var(--exhale-font-weight-regular);
	line-height: var(--exhale-line-height-body);
	text-rendering: optimizeLegibility;
	-webkit-font-smoothing: antialiased;
}

button,
input,
select,
textarea {
	font: inherit;
}

img,
picture,
svg {
	display: block;
	max-width: 100%;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--exhale-color-primary);
	font-weight: var(--exhale-font-weight-semibold);
	line-height: var(--exhale-line-height-heading);
}

:focus-visible {
	outline: 2px solid var(--exhale-color-accent);
	outline-offset: 3px;
}

.exhale-container {
	width: min(100% - (2 * var(--exhale-page-gutter)), var(--exhale-container-width));
	margin-inline: auto;
}

.exhale-button {
	display: inline-flex;
	min-height: var(--exhale-control-height);
	padding: 12px 22px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--exhale-color-primary);
	border-radius: var(--exhale-radius-button);
	font-size: 13px;
	font-weight: var(--exhale-font-weight-semibold);
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 120ms ease;
}

.exhale-button--primary {
	background: var(--exhale-color-primary);
	color: var(--exhale-color-warm-white);
}

.exhale-button--secondary {
	background: transparent;
	color: var(--exhale-color-primary);
}

.exhale-button:active {
	transform: scale(0.98);
}

.exhale-button:focus-visible {
	outline: 2px solid var(--exhale-color-accent);
	outline-offset: 3px;
}

@media (hover: hover) {
	.exhale-button--primary:hover {
		border-color: var(--exhale-color-deep);
		background: var(--exhale-color-deep);
		color: var(--exhale-color-white);
	}

	.exhale-button--secondary:hover {
		background: var(--exhale-color-white);
		color: var(--exhale-color-primary);
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
	}
}
