/*
 * Design tokens — GENERATED by bin/build-design-tokens.mjs from the Stitch export.
 * Do not edit by hand; run `npm run build:tokens` in the plugin instead.
 *
 * Every alias points at the theme.json preset, so there is one source of truth
 * and the two systems cannot drift.
 */
:root {
	/* System/Light/Dark: light is the default colour-scheme; see the
	   :root[data-theme="dark"] / prefers-color-scheme blocks below. */
	color-scheme: light;

	/* Colours */
	--bwp-background: var(--wp--preset--color--background);
	--bwp-badge-free-bg: var(--wp--preset--color--badge-free-bg);
	--bwp-badge-free-text: var(--wp--preset--color--badge-free-text);
	--bwp-badge-pro: var(--wp--preset--color--badge-pro);
	--bwp-border-strong: var(--wp--preset--color--border-strong);
	--bwp-border-subtle: var(--wp--preset--color--border-subtle);
	--bwp-error: var(--wp--preset--color--error);
	--bwp-error-container: var(--wp--preset--color--error-container);
	--bwp-inverse-on-surface: var(--wp--preset--color--inverse-on-surface);
	--bwp-inverse-primary: var(--wp--preset--color--inverse-primary);
	--bwp-inverse-surface: var(--wp--preset--color--inverse-surface);
	--bwp-neutral-100: var(--wp--preset--color--neutral-100);
	--bwp-neutral-400: var(--wp--preset--color--neutral-400);
	--bwp-on-background: var(--wp--preset--color--on-background);
	--bwp-on-error: var(--wp--preset--color--on-error);
	--bwp-on-error-container: var(--wp--preset--color--on-error-container);
	--bwp-on-primary: var(--wp--preset--color--on-primary);
	--bwp-on-primary-container: var(--wp--preset--color--on-primary-container);
	--bwp-on-primary-fixed: var(--wp--preset--color--on-primary-fixed);
	--bwp-on-primary-fixed-variant: var(--wp--preset--color--on-primary-fixed-variant);
	--bwp-on-secondary: var(--wp--preset--color--on-secondary);
	--bwp-on-secondary-container: var(--wp--preset--color--on-secondary-container);
	--bwp-on-secondary-fixed: var(--wp--preset--color--on-secondary-fixed);
	--bwp-on-secondary-fixed-variant: var(--wp--preset--color--on-secondary-fixed-variant);
	--bwp-on-surface: var(--wp--preset--color--on-surface);
	--bwp-on-surface-variant: var(--wp--preset--color--on-surface-variant);
	--bwp-on-tertiary: var(--wp--preset--color--on-tertiary);
	--bwp-on-tertiary-container: var(--wp--preset--color--on-tertiary-container);
	--bwp-on-tertiary-fixed: var(--wp--preset--color--on-tertiary-fixed);
	--bwp-on-tertiary-fixed-variant: var(--wp--preset--color--on-tertiary-fixed-variant);
	--bwp-outline: var(--wp--preset--color--outline);
	--bwp-outline-variant: var(--wp--preset--color--outline-variant);
	--bwp-primary: var(--wp--preset--color--primary);
	--bwp-primary-container: var(--wp--preset--color--primary-container);
	--bwp-primary-fixed: var(--wp--preset--color--primary-fixed);
	--bwp-primary-fixed-dim: var(--wp--preset--color--primary-fixed-dim);
	--bwp-secondary: var(--wp--preset--color--secondary);
	--bwp-secondary-container: var(--wp--preset--color--secondary-container);
	--bwp-secondary-fixed: var(--wp--preset--color--secondary-fixed);
	--bwp-secondary-fixed-dim: var(--wp--preset--color--secondary-fixed-dim);
	--bwp-surface: var(--wp--preset--color--surface);
	--bwp-surface-bright: var(--wp--preset--color--surface-bright);
	--bwp-surface-canvas: var(--wp--preset--color--surface-canvas);
	--bwp-surface-card: var(--wp--preset--color--surface-card);
	--bwp-surface-container: var(--wp--preset--color--surface-container);
	--bwp-surface-container-high: var(--wp--preset--color--surface-container-high);
	--bwp-surface-container-highest: var(--wp--preset--color--surface-container-highest);
	--bwp-surface-container-low: var(--wp--preset--color--surface-container-low);
	--bwp-surface-container-lowest: var(--wp--preset--color--surface-container-lowest);
	--bwp-surface-dim: var(--wp--preset--color--surface-dim);
	--bwp-surface-tint: var(--wp--preset--color--surface-tint);
	--bwp-surface-variant: var(--wp--preset--color--surface-variant);
	--bwp-tertiary: var(--wp--preset--color--tertiary);
	--bwp-tertiary-container: var(--wp--preset--color--tertiary-container);
	--bwp-tertiary-fixed: var(--wp--preset--color--tertiary-fixed);
	--bwp-tertiary-fixed-dim: var(--wp--preset--color--tertiary-fixed-dim);
	--bwp-text-muted: var(--wp--preset--color--text-muted);

	/* Type: size / line-height / weight, paired as the design specifies */
	--bwp-text-body-lg: var(--wp--preset--font-size--body-lg);
	--bwp-leading-body-lg: var(--wp--custom--typography--body-lg--line-height);
	--bwp-weight-body-lg: var(--wp--custom--typography--body-lg--weight);
	--bwp-text-body-md: var(--wp--preset--font-size--body-md);
	--bwp-leading-body-md: var(--wp--custom--typography--body-md--line-height);
	--bwp-weight-body-md: var(--wp--custom--typography--body-md--weight);
	--bwp-text-body-sm: var(--wp--preset--font-size--body-sm);
	--bwp-leading-body-sm: var(--wp--custom--typography--body-sm--line-height);
	--bwp-weight-body-sm: var(--wp--custom--typography--body-sm--weight);
	--bwp-text-code-snippet: var(--wp--preset--font-size--code-snippet);
	--bwp-leading-code-snippet: var(--wp--custom--typography--code-snippet--line-height);
	--bwp-weight-code-snippet: var(--wp--custom--typography--code-snippet--weight);
	--bwp-text-headline-lg: var(--wp--preset--font-size--headline-lg);
	--bwp-leading-headline-lg: var(--wp--custom--typography--headline-lg--line-height);
	--bwp-weight-headline-lg: var(--wp--custom--typography--headline-lg--weight);
	--bwp-text-headline-md: var(--wp--preset--font-size--headline-md);
	--bwp-leading-headline-md: var(--wp--custom--typography--headline-md--line-height);
	--bwp-weight-headline-md: var(--wp--custom--typography--headline-md--weight);
	--bwp-text-headline-xl: var(--wp--preset--font-size--headline-xl);
	--bwp-leading-headline-xl: var(--wp--custom--typography--headline-xl--line-height);
	--bwp-weight-headline-xl: var(--wp--custom--typography--headline-xl--weight);
	--bwp-text-headline-xl-mobile: var(--wp--preset--font-size--headline-xl-mobile);
	--bwp-leading-headline-xl-mobile: var(--wp--custom--typography--headline-xl-mobile--line-height);
	--bwp-weight-headline-xl-mobile: var(--wp--custom--typography--headline-xl-mobile--weight);
	--bwp-text-label-md: var(--wp--preset--font-size--label-md);
	--bwp-leading-label-md: var(--wp--custom--typography--label-md--line-height);
	--bwp-weight-label-md: var(--wp--custom--typography--label-md--weight);
	--bwp-text-label-sm: var(--wp--preset--font-size--label-sm);
	--bwp-leading-label-sm: var(--wp--custom--typography--label-sm--line-height);
	--bwp-weight-label-sm: var(--wp--custom--typography--label-sm--weight);
	--bwp-text-prose: var(--wp--preset--font-size--prose);
	--bwp-leading-prose: var(--wp--custom--typography--prose--line-height);
	--bwp-weight-prose: var(--wp--custom--typography--prose--weight);
	--bwp-text-prose-lead: var(--wp--preset--font-size--prose-lead);
	--bwp-leading-prose-lead: var(--wp--custom--typography--prose-lead--line-height);
	--bwp-weight-prose-lead: var(--wp--custom--typography--prose-lead--weight);
	--bwp-text-prose-sm: var(--wp--preset--font-size--prose-sm);
	--bwp-leading-prose-sm: var(--wp--custom--typography--prose-sm--line-height);
	--bwp-weight-prose-sm: var(--wp--custom--typography--prose-sm--weight);

	/* Spacing */
	--bwp-12: var(--wp--preset--spacing--12);
	--bwp-16: var(--wp--preset--spacing--16);
	--bwp-6: var(--wp--preset--spacing--6);
	--bwp-gutter: var(--wp--preset--spacing--gutter);
	--bwp-gutter-sm: var(--wp--preset--spacing--gutter-sm);
	--bwp-lg: var(--wp--preset--spacing--lg);
	--bwp-margin: var(--wp--preset--spacing--margin);
	--bwp-margin-mobile: var(--wp--preset--spacing--margin-mobile);
	--bwp-md: var(--wp--preset--spacing--md);
	--bwp-sm: var(--wp--preset--spacing--sm);
	--bwp-xl: var(--wp--preset--spacing--xl);
	--bwp-xs: var(--wp--preset--spacing--xs);

	/* Radius */
	--bwp-radius-base: var(--wp--custom--radius--base);
	--bwp-radius-lg: var(--wp--custom--radius--lg);
	--bwp-radius-xl: var(--wp--custom--radius--xl);
	--bwp-radius-pill: var(--wp--custom--radius--pill);
	--bwp-radius-md: var(--wp--custom--radius--md);
	--bwp-radius-3xl: var(--wp--custom--radius--3xl);

	/* Layout */
	--bwp-max-width: var(--wp--custom--layout--max-width);
	--bwp-header-height: var(--wp--custom--layout--header-height);
}

/*
 * System/Light/Dark — dark overrides for every colour preset (see
 * docs/designs/design-tokens.dark.json for the derivation method).
 *
 * An explicit choice ("light"/"dark") sets documentElement.dataset.theme
 * (theme/functions.php's no-flash script, before paint) and wins outright:
 * the attribute selector below always beats the bare :root the light
 * values live on. "system" leaves the attribute unset, so the
 * prefers-color-scheme block decides, scoped to :not([data-theme="light"])
 * so an explicit light choice can still override a dark OS preference.
 */
:root[data-theme="dark"] {
	color-scheme: dark;
	--wp--preset--color--background: #070A12;
	--wp--preset--color--badge-free-bg: #16233F;
	--wp--preset--color--badge-free-text: #9FBCFF;
	--wp--preset--color--badge-pro: #7897ED;
	--wp--preset--color--border-strong: #38425C;
	--wp--preset--color--border-subtle: #1E2740;
	--wp--preset--color--error: #FFB4AB;
	--wp--preset--color--error-container: #93000A;
	--wp--preset--color--inverse-on-surface: #191B23;
	--wp--preset--color--inverse-primary: #004AC6;
	--wp--preset--color--inverse-surface: #FAF8FF;
	--wp--preset--color--neutral-100: #27272A;
	--wp--preset--color--neutral-400: #A1A1AA;
	--wp--preset--color--on-background: #E6EAF5;
	--wp--preset--color--on-error: #690005;
	--wp--preset--color--on-error-container: #FFDAD6;
	--wp--preset--color--on-primary: #0B1020;
	--wp--preset--color--on-primary-container: #EAF0FF;
	--wp--preset--color--on-primary-fixed: #00174B;
	--wp--preset--color--on-primary-fixed-variant: #003EA8;
	--wp--preset--color--on-secondary: #313134;
	--wp--preset--color--on-secondary-container: #E4E1E6;
	--wp--preset--color--on-secondary-fixed: #1B1B1E;
	--wp--preset--color--on-secondary-fixed-variant: #47464A;
	--wp--preset--color--on-surface: #E6EAF5;
	--wp--preset--color--on-surface-variant: #C2C9DC;
	--wp--preset--color--on-tertiary: #003926;
	--wp--preset--color--on-tertiary-container: #85F8C4;
	--wp--preset--color--on-tertiary-fixed: #002114;
	--wp--preset--color--on-tertiary-fixed-variant: #005137;
	--wp--preset--color--outline: #7A859F;
	--wp--preset--color--outline-variant: #2A3450;
	--wp--preset--color--primary: #9FBCFF;
	--wp--preset--color--primary-container: #1B4FD8;
	--wp--preset--color--primary-fixed: #DBE1FF;
	--wp--preset--color--primary-fixed-dim: #B4C5FF;
	--wp--preset--color--secondary: #C8C5CA;
	--wp--preset--color--secondary-container: #47464A;
	--wp--preset--color--secondary-fixed: #E4E1E6;
	--wp--preset--color--secondary-fixed-dim: #C8C5CA;
	--wp--preset--color--surface: #070A12;
	--wp--preset--color--surface-bright: #393A42;
	--wp--preset--color--surface-canvas: #05070D;
	--wp--preset--color--surface-card: #0E1424;
	--wp--preset--color--surface-container: #141B2E;
	--wp--preset--color--surface-container-high: #1D2740;
	--wp--preset--color--surface-container-highest: #34353C;
	--wp--preset--color--surface-container-low: #0B1120;
	--wp--preset--color--surface-container-lowest: #070A12;
	--wp--preset--color--surface-dim: #0E0F10;
	--wp--preset--color--surface-tint: #99C0FF;
	--wp--preset--color--surface-variant: #474952;
	--wp--preset--color--tertiary: #68DBA9;
	--wp--preset--color--tertiary-container: #005137;
	--wp--preset--color--tertiary-fixed: #85F8C4;
	--wp--preset--color--tertiary-fixed-dim: #68DBA9;
	--wp--preset--color--text-muted: #98A2BA;
}

@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
		color-scheme: dark;
		--wp--preset--color--background: #070A12;
		--wp--preset--color--badge-free-bg: #16233F;
		--wp--preset--color--badge-free-text: #9FBCFF;
		--wp--preset--color--badge-pro: #7897ED;
		--wp--preset--color--border-strong: #38425C;
		--wp--preset--color--border-subtle: #1E2740;
		--wp--preset--color--error: #FFB4AB;
		--wp--preset--color--error-container: #93000A;
		--wp--preset--color--inverse-on-surface: #191B23;
		--wp--preset--color--inverse-primary: #004AC6;
		--wp--preset--color--inverse-surface: #FAF8FF;
		--wp--preset--color--neutral-100: #27272A;
		--wp--preset--color--neutral-400: #A1A1AA;
		--wp--preset--color--on-background: #E6EAF5;
		--wp--preset--color--on-error: #690005;
		--wp--preset--color--on-error-container: #FFDAD6;
		--wp--preset--color--on-primary: #0B1020;
		--wp--preset--color--on-primary-container: #EAF0FF;
		--wp--preset--color--on-primary-fixed: #00174B;
		--wp--preset--color--on-primary-fixed-variant: #003EA8;
		--wp--preset--color--on-secondary: #313134;
		--wp--preset--color--on-secondary-container: #E4E1E6;
		--wp--preset--color--on-secondary-fixed: #1B1B1E;
		--wp--preset--color--on-secondary-fixed-variant: #47464A;
		--wp--preset--color--on-surface: #E6EAF5;
		--wp--preset--color--on-surface-variant: #C2C9DC;
		--wp--preset--color--on-tertiary: #003926;
		--wp--preset--color--on-tertiary-container: #85F8C4;
		--wp--preset--color--on-tertiary-fixed: #002114;
		--wp--preset--color--on-tertiary-fixed-variant: #005137;
		--wp--preset--color--outline: #7A859F;
		--wp--preset--color--outline-variant: #2A3450;
		--wp--preset--color--primary: #9FBCFF;
		--wp--preset--color--primary-container: #1B4FD8;
		--wp--preset--color--primary-fixed: #DBE1FF;
		--wp--preset--color--primary-fixed-dim: #B4C5FF;
		--wp--preset--color--secondary: #C8C5CA;
		--wp--preset--color--secondary-container: #47464A;
		--wp--preset--color--secondary-fixed: #E4E1E6;
		--wp--preset--color--secondary-fixed-dim: #C8C5CA;
		--wp--preset--color--surface: #070A12;
		--wp--preset--color--surface-bright: #393A42;
		--wp--preset--color--surface-canvas: #05070D;
		--wp--preset--color--surface-card: #0E1424;
		--wp--preset--color--surface-container: #141B2E;
		--wp--preset--color--surface-container-high: #1D2740;
		--wp--preset--color--surface-container-highest: #34353C;
		--wp--preset--color--surface-container-low: #0B1120;
		--wp--preset--color--surface-container-lowest: #070A12;
		--wp--preset--color--surface-dim: #0E0F10;
		--wp--preset--color--surface-tint: #99C0FF;
		--wp--preset--color--surface-variant: #474952;
		--wp--preset--color--tertiary: #68DBA9;
		--wp--preset--color--tertiary-container: #005137;
		--wp--preset--color--tertiary-fixed: #85F8C4;
		--wp--preset--color--tertiary-fixed-dim: #68DBA9;
		--wp--preset--color--text-muted: #98A2BA;
	}
}

/* Type helpers: one class per design type style, so components never restate px. */
.bwp-t-body-lg { font-size: var(--bwp-text-body-lg); line-height: var(--bwp-leading-body-lg); font-weight: var(--bwp-weight-body-lg); }
.bwp-t-body-md { font-size: var(--bwp-text-body-md); line-height: var(--bwp-leading-body-md); font-weight: var(--bwp-weight-body-md); }
.bwp-t-body-sm { font-size: var(--bwp-text-body-sm); line-height: var(--bwp-leading-body-sm); font-weight: var(--bwp-weight-body-sm); }
.bwp-t-code-snippet { font-size: var(--bwp-text-code-snippet); line-height: var(--bwp-leading-code-snippet); font-weight: var(--bwp-weight-code-snippet); }
.bwp-t-headline-lg { font-size: var(--bwp-text-headline-lg); line-height: var(--bwp-leading-headline-lg); font-weight: var(--bwp-weight-headline-lg); }
.bwp-t-headline-md { font-size: var(--bwp-text-headline-md); line-height: var(--bwp-leading-headline-md); font-weight: var(--bwp-weight-headline-md); }
.bwp-t-headline-xl { font-size: var(--bwp-text-headline-xl); line-height: var(--bwp-leading-headline-xl); font-weight: var(--bwp-weight-headline-xl); }
.bwp-t-headline-xl-mobile { font-size: var(--bwp-text-headline-xl-mobile); line-height: var(--bwp-leading-headline-xl-mobile); font-weight: var(--bwp-weight-headline-xl-mobile); }
.bwp-t-label-md { font-size: var(--bwp-text-label-md); line-height: var(--bwp-leading-label-md); font-weight: var(--bwp-weight-label-md); }
.bwp-t-label-sm { font-size: var(--bwp-text-label-sm); line-height: var(--bwp-leading-label-sm); font-weight: var(--bwp-weight-label-sm); }
.bwp-t-prose { font-size: var(--bwp-text-prose); line-height: var(--bwp-leading-prose); font-weight: var(--bwp-weight-prose); }
.bwp-t-prose-lead { font-size: var(--bwp-text-prose-lead); line-height: var(--bwp-leading-prose-lead); font-weight: var(--bwp-weight-prose-lead); }
.bwp-t-prose-sm { font-size: var(--bwp-text-prose-sm); line-height: var(--bwp-leading-prose-sm); font-weight: var(--bwp-weight-prose-sm); }
