@layer ukmeds247-foundation {
	:where(html) {
		overflow-wrap: break-word;
	}

	:where(body) {
		background: var(--ukmeds247-color-background);
		color: var(--ukmeds247-color-text);
		font-family: var(--ukmeds247-font-family-body);
		font-size: var(--ukmeds247-font-size-md);
		line-height: var(--ukmeds247-line-height-body);
	}

	:where(h1, h2, h3, h4, h5, h6) {
		color: var(--ukmeds247-color-text);
		font-family: var(--ukmeds247-font-family-heading);
		font-weight: var(--ukmeds247-font-weight-bold);
		letter-spacing: var(--ukmeds247-letter-spacing-tight);
		line-height: var(--ukmeds247-line-height-heading);
		text-wrap: balance;
	}

	:where(p, li) {
		max-inline-size: var(--ukmeds247-width-prose);
	}

	:where(a) {
		color: var(--ukmeds247-color-brand-primary);
		text-decoration-thickness: 0.08em;
		text-underline-offset: 0.16em;
	}

	:where(a):hover {
		color: var(--ukmeds247-color-brand-primary-hover);
	}

	:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible {
		outline: var(--ukmeds247-focus-width) solid var(--ukmeds247-color-focus);
		outline-offset: var(--ukmeds247-focus-offset);
	}

	:where(.ukmeds247-container) {
		inline-size: min(100% - (2 * var(--ukmeds247-gutter)), var(--ukmeds247-width-content));
		margin-inline: auto;
	}

	:where(.ukmeds247-container--wide) {
		max-inline-size: var(--ukmeds247-width-wide);
	}

	:where(
		.ukmeds247-button,
		.woocommerce a.button,
		.woocommerce button.button,
		.woocommerce input.button
	) {
		align-items: center;
		border: var(--ukmeds247-border-width-strong) solid transparent;
		border-radius: var(--ukmeds247-radius-md);
		display: inline-flex;
		font-weight: var(--ukmeds247-font-weight-semibold);
		justify-content: center;
		min-block-size: var(--ukmeds247-touch-target);
		min-inline-size: var(--ukmeds247-touch-target);
		padding: var(--ukmeds247-space-2) var(--ukmeds247-space-4);
		text-align: center;
		transition:
			background-color var(--ukmeds247-duration-fast) var(--ukmeds247-easing-standard),
			border-color var(--ukmeds247-duration-fast) var(--ukmeds247-easing-standard),
			color var(--ukmeds247-duration-fast) var(--ukmeds247-easing-standard);
	}

	:where(.ukmeds247-button--primary, .woocommerce a.button.alt, .woocommerce button.button.alt) {
		background: var(--ukmeds247-color-brand-primary);
		color: var(--ukmeds247-color-text-inverse);
	}

	:where(.ukmeds247-button--primary, .woocommerce a.button.alt, .woocommerce button.button.alt):hover {
		background: var(--ukmeds247-color-brand-primary-hover);
		color: var(--ukmeds247-color-text-inverse);
	}

	:where(.ukmeds247-button--secondary) {
		background: var(--ukmeds247-color-background);
		border-color: var(--ukmeds247-color-brand-primary);
		color: var(--ukmeds247-color-brand-primary);
	}

	:where(.ukmeds247-button--text) {
		background: transparent;
		color: var(--ukmeds247-color-brand-primary);
		padding-inline: var(--ukmeds247-space-2);
	}

	:where(label, .ukmeds247-label) {
		color: var(--ukmeds247-color-text);
		display: block;
		font-weight: var(--ukmeds247-font-weight-semibold);
		margin-block-end: var(--ukmeds247-space-1);
	}

	:where(
		input:not([type="checkbox"], [type="radio"], [type="button"], [type="submit"]),
		select,
		textarea,
		.woocommerce form .form-row input.input-text,
		.woocommerce form .form-row textarea
	) {
		background: var(--ukmeds247-color-background);
		border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
		border-radius: var(--ukmeds247-radius-sm);
		color: var(--ukmeds247-color-text);
		min-block-size: var(--ukmeds247-touch-target);
		padding: var(--ukmeds247-space-2) var(--ukmeds247-space-3);
	}

	:where(input[type="checkbox"], input[type="radio"]) {
		accent-color: var(--ukmeds247-color-brand-primary);
		block-size: 1.25rem;
		inline-size: 1.25rem;
	}

	:where(.ukmeds247-help) {
		color: var(--ukmeds247-color-text-muted);
		font-size: var(--ukmeds247-font-size-sm);
	}

	:where(.ukmeds247-error, [aria-invalid="true"] + .ukmeds247-help) {
		color: var(--ukmeds247-color-error);
		font-weight: var(--ukmeds247-font-weight-medium);
	}

	:where(.ukmeds247-card, .ukmeds247-surface) {
		background: var(--ukmeds247-color-surface);
		border: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
		border-radius: var(--ukmeds247-radius-lg);
		padding: var(--ukmeds247-space-5);
	}

	:where(.ukmeds247-card) {
		box-shadow: var(--ukmeds247-shadow-sm);
	}

	:where(
		.ukmeds247-notice,
		.woocommerce-message,
		.woocommerce-info,
		.woocommerce-error
	) {
		border: 0;
		border-inline-start: var(--ukmeds247-space-1) solid currentcolor;
		border-radius: var(--ukmeds247-radius-sm);
		color: var(--ukmeds247-color-info);
		padding: var(--ukmeds247-space-4);
	}

	:where(.ukmeds247-notice--success, .woocommerce-message) {
		background: var(--ukmeds247-color-success-surface);
		color: var(--ukmeds247-color-success);
	}

	:where(.ukmeds247-notice--warning) {
		background: var(--ukmeds247-color-warning-surface);
		color: var(--ukmeds247-color-warning);
	}

	:where(.ukmeds247-notice--error, .woocommerce-error) {
		background: var(--ukmeds247-color-error-surface);
		color: var(--ukmeds247-color-error);
	}

	:where(.ukmeds247-notice--info, .woocommerce-info) {
		background: var(--ukmeds247-color-info-surface);
		color: var(--ukmeds247-color-info);
	}

	:where(.ukmeds247-badge) {
		background: var(--ukmeds247-color-surface-strong);
		border-radius: var(--ukmeds247-radius-pill);
		color: var(--ukmeds247-color-text);
		display: inline-flex;
		font-size: var(--ukmeds247-font-size-sm);
		font-weight: var(--ukmeds247-font-weight-semibold);
		padding: var(--ukmeds247-space-1) var(--ukmeds247-space-2);
	}

	:where(.ukmeds247-table-wrap) {
		overflow-x: auto;
	}

	:where(table) {
		border-collapse: collapse;
		inline-size: 100%;
	}

	:where(th, td) {
		border-block-end: var(--ukmeds247-border-width) solid var(--ukmeds247-color-border);
		padding: var(--ukmeds247-space-3);
		text-align: start;
		vertical-align: top;
	}

	:where(.price, .ukmeds247-price) {
		color: var(--ukmeds247-color-text);
		font-size: var(--ukmeds247-font-size-xl);
		font-weight: var(--ukmeds247-font-weight-bold);
	}

	:where(.stock, .ukmeds247-availability) {
		font-weight: var(--ukmeds247-font-weight-semibold);
	}

	:where(.stock.in-stock, .ukmeds247-availability--available) {
		color: var(--ukmeds247-color-success);
	}

	:where(.stock.out-of-stock, .ukmeds247-availability--unavailable) {
		color: var(--ukmeds247-color-error);
	}

	:where(.ukmeds247-site-header, .ukmeds247-site-footer, .ukmeds247-navigation) {
		inline-size: 100%;
	}

	:where(.ukmeds247-navigation a) {
		align-items: center;
		display: inline-flex;
		min-block-size: var(--ukmeds247-touch-target);
	}

	:where(img, svg, video, iframe) {
		max-inline-size: 100%;
	}

	@media (max-width: 47.999rem) {
		:where(.ukmeds247-card, .ukmeds247-surface) {
			padding: var(--ukmeds247-space-4);
		}
	}

	@media (prefers-reduced-motion: reduce) {
		:where(html, .ukmeds247-button, .ukmeds247-card, .ukmeds247-surface, .ukmeds247-navigation, .ukmeds247-mini-cart, .ukmeds247-mobile-purchase, .ukmeds247-product-card, .ukmeds247-category-card, .ukmeds247-service-card, .ukmeds247-faq__answer, .woocommerce a.button, .woocommerce button.button) {
			scroll-behavior: auto !important;
			transition: none !important;
			animation: none !important;
		}
	}
}
