:root {
	--lo-color-primary: #16a34a;
	--lo-color-primary-dark: #15803d;
	--lo-color-primary-soft: #ecfdf5;
	--lo-color-text-dark: #111827;
	--lo-color-text-muted: #4b5563;
	--lo-color-background-light: #f8fafc;
	--lo-color-white: #fff;
	--lo-color-border-default: #e5e7eb;
	--lo-color-border-strong: #d1d5db;
	--lo-color-disabled: #f3f4f6;
	--lo-color-success: #16a34a;
	--lo-color-success-soft: #ecfdf5;
	--lo-color-warning: #f59e0b;
	--lo-color-warning-soft: #fffbeb;
	--lo-color-danger: #dc2626;
	--lo-color-danger-soft: #fef2f2;
	--lo-color-info: #2563eb;

	--lo-color-text: var(--lo-color-text-dark);
	--lo-color-muted: var(--lo-color-text-muted);
	--lo-color-border: var(--lo-color-border-default);
	--lo-color-surface: var(--lo-color-white);
	--lo-color-surface-light: var(--lo-color-background-light);
	--lo-color-green: var(--lo-color-primary);
	--lo-color-green-dark: var(--lo-color-primary-dark);
	--lo-color-dark: var(--lo-color-text-dark);

	--lo-font-family-base: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--lo-font-size-xs: 0.75rem;
	--lo-font-size-sm: 0.875rem;
	--lo-font-size-base: 1rem;
	--lo-font-size-md: 1.125rem;
	--lo-font-size-lg: 1.25rem;
	--lo-font-size-xl: 1.5rem;
	--lo-font-size-xl-fluid: 1.75rem;
	--lo-font-size-2xl: 2rem;
	--lo-font-size-2xl-fluid: 2.25rem;
	--lo-font-size-2xl-mobile: 2.5rem;
	--lo-font-size-3xl: 2.75rem;
	--lo-font-size-4xl: 4rem;
	--lo-font-size-lead-mobile: 1.0625rem;
	--lo-line-height-tight: 1.12;
	--lo-line-height-heading: 1.2;
	--lo-line-height-base: 1.65;
	--lo-line-height-relaxed: 1.75;

	--lo-space-1: 0.25rem;
	--lo-space-2: 0.5rem;
	--lo-space-3: 0.75rem;
	--lo-space-4: 1rem;
	--lo-space-5: 1.25rem;
	--lo-space-6: 1.5rem;
	--lo-space-8: 2rem;
	--lo-space-10: 2.5rem;
	--lo-space-12: 3rem;
	--lo-space-16: 4rem;

	--lo-radius-small: 4px;
	--lo-radius-medium: 8px;
	--lo-radius-large: 12px;
	--lo-radius-pill: 999px;
	--lo-radius: var(--lo-radius-medium);

	--lo-shadow-card: 0 10px 26px rgb(15 23 42 / 6%);
	--lo-shadow-card-hover: 0 22px 48px rgb(15 23 42 / 12%);
	--lo-shadow-soft: 0 20px 45px rgb(15 23 42 / 12%);
	--lo-shadow-strong: 0 28px 70px rgb(15 23 42 / 18%);

	--lo-transition-fast: 140ms ease;
	--lo-transition-base: 180ms ease;
	--lo-transition-slow: 240ms ease;

	--lo-container-small: 840px;
	--lo-container: 1120px;
	--lo-container-wide: 1320px;
	--lo-container-full: 100%;
	--lo-container-gutter: var(--lo-space-8);
	--lo-container-gutter-mobile: var(--lo-space-6);
	--lo-content-width: var(--lo-container-small);
	--lo-page-width: var(--lo-container);
	--lo-layout-width: var(--lo-container-wide);

	--lo-focus-ring: 3px solid rgb(22 163 74 / 35%);

	--lo-z-index-base: 1;
	--lo-z-index-dropdown: 20;
	--lo-z-index-sticky: 50;
	--lo-z-index-modal: 100;
	--lo-z-index-skip-link: 100000;
}

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	color: var(--lo-color-text);
	font-family: var(--lo-font-family-base);
	font-size: var(--lo-font-size-base);
	line-height: var(--lo-line-height-base);
	background: var(--lo-color-surface);
}

a {
	color: inherit;
	transition: color var(--lo-transition-base);
}

a:hover {
	color: var(--lo-color-primary);
}

a:focus-visible,
button:focus-visible,
summary:focus-visible {
	outline: var(--lo-focus-ring);
	outline-offset: var(--lo-space-1);
}

input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	border-color: var(--lo-color-primary);
	outline: var(--lo-focus-ring);
	outline-offset: 0;
}

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

img,
svg {
	max-width: 100%;
	height: auto;
}

.screen-reader-text {
	position: absolute;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.screen-reader-text:focus {
	z-index: var(--lo-z-index-skip-link);
	top: var(--lo-space-4);
	left: var(--lo-space-4);
	width: auto;
	height: auto;
	padding: var(--lo-space-3) var(--lo-space-4);
	clip: auto;
	background: var(--lo-color-surface);
	border: 1px solid var(--lo-color-text);
}
