/* Keeps MudBlazor's global base styles (its "*" reset, body typography and bare element rules) inside the CMS and the
   MudBlazor overlays (dialogs, menus, snackbars), so the public site looks exactly as it did before MudBlazor.

   Loaded right after MudBlazor.min.css and before app.css. Outside the MudBlazor areas each property MudBlazor
   sets on bare elements is reverted to the browser default; the site's own rules (later, or more specific) still apply
   on top, as before. Selectors use :where() so they never outrank the site's rules. */

/* "*" reset */
:where(:not(:is(.cms, .cms *, .mud-dialog-container, .mud-dialog-container *, .mud-overlay, .mud-overlay *, .mud-popover-provider, .mud-popover-provider *, #mud-snackbar-container, #mud-snackbar-container *))) {
	box-sizing: revert;
	margin: revert;
	padding: revert;
	border-width: revert;
	border-style: revert;
	-webkit-font-smoothing: revert;
	-moz-osx-font-smoothing: revert;
	-webkit-tap-highlight-color: revert;
}

/* Page typography stays the site's; MudBlazor areas get MudBlazor's (see .cms below) */
body {
	color: revert;
	font-family: revert;
	font-size: revert;
	font-weight: revert;
	line-height: revert;
	letter-spacing: revert;
	text-transform: revert;
	background-color: revert;
}

a:where(:not(:is(.cms *, .mud-dialog-container *, .mud-overlay *, .mud-popover-provider *, #mud-snackbar-container *))) {
	color: revert;
	text-decoration: revert;
}

	a:where(:not(:is(.cms *, .mud-dialog-container *, .mud-overlay *, .mud-popover-provider *, #mud-snackbar-container *))):focus-visible {
		outline: revert;
	}

b:where(:not(:is(.cms *, .mud-dialog-container *, .mud-popover-provider *, #mud-snackbar-container *))),
strong:where(:not(:is(.cms *, .mud-dialog-container *, .mud-popover-provider *, #mud-snackbar-container *))) {
	font-weight: revert;
}

label:where(:not(:is(.cms *, .mud-dialog-container *, .mud-popover-provider *, #mud-snackbar-container *))) {
	display: revert;
}

button:where(:not(:is(.cms *, .mud-dialog-container *, .mud-overlay *, .mud-popover-provider *, #mud-snackbar-container *))) {
	color: revert;
	border: revert;
	cursor: revert;
	margin: revert;
	display: revert;
	outline: revert;
	padding: revert;
	position: revert;
	align-items: revert;
	user-select: revert;
	border-radius: revert;
	vertical-align: revert;
	appearance: revert;
	justify-content: revert;
	text-decoration: revert;
	background-color: revert;
	-webkit-tap-highlight-color: revert;
	font-family: revert;
	font-size: revert;
	line-height: revert;
	overflow: revert;
	text-transform: revert;
}

	button:where(:not(:is(.cms *, .mud-dialog-container *, .mud-overlay *, .mud-popover-provider *, #mud-snackbar-container *))):focus {
		outline: revert;
	}

input:where(:not(:is(.cms *, .mud-dialog-container *, .mud-popover-provider *, #mud-snackbar-container *))),
select:where(:not(:is(.cms *, .mud-dialog-container *, .mud-popover-provider *, #mud-snackbar-container *))),
optgroup:where(:not(:is(.cms *, .mud-dialog-container *, .mud-popover-provider *, #mud-snackbar-container *))),
textarea:where(:not(:is(.cms *, .mud-dialog-container *, .mud-popover-provider *, #mud-snackbar-container *))) {
	margin: revert;
	font-family: revert;
	font-size: revert;
	line-height: revert;
	overflow: revert;
	text-transform: revert;
	word-wrap: revert;
}

iframe:where(:not(:is(.cms *, .mud-dialog-container *, .mud-popover-provider *, #mud-snackbar-container *, .g-recaptcha iframe))) {
	border: revert;
	height: revert;
	width: revert;
}

/* MudBlazor's body typography, applied to the areas that use MudBlazor */
.cms, .mud-dialog-container, .mud-popover-provider, #mud-snackbar-container {
	color: var(--mud-palette-text-primary);
	font-family: var(--mud-typography-default-family);
	font-size: var(--mud-typography-default-size);
	font-weight: var(--mud-typography-default-weight);
	line-height: var(--mud-typography-default-lineheight);
	letter-spacing: var(--mud-typography-default-letterspacing);
}
