/**
 * RadoshSoft design-system foundation.
 *
 * Components use the radoshsoft- prefix to avoid collisions with Kadence,
 * WordPress, and future plugins.
 */

:root {
	--rs-color-primary: #0a5ea8;
	--rs-color-primary-strong: #084b86;
	--rs-color-secondary: #163d61;
	--rs-color-accent: #087a73;
	--rs-color-accent-strong: #05645f;
	--rs-color-surface: #ffffff;
	--rs-color-surface-subtle: #f6f8fb;
	--rs-color-surface-muted: #eaf0f6;
	--rs-color-dark: #0b1f33;
	--rs-color-dark-soft: #102b45;
	--rs-color-text: #172b3d;
	--rs-color-text-muted: #526577;
	--rs-color-border: #cbd7e3;
	--rs-color-focus: #f2a900;
	--rs-color-on-dark: #f7fafc;

	--rs-font-heading: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--rs-font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--rs-font-size-xs: 0.75rem;
	--rs-font-size-sm: 0.875rem;
	--rs-font-size-base: 1rem;
	--rs-font-size-md: 1.125rem;
	--rs-font-size-lg: clamp(1.25rem, 1.1rem + 0.75vw, 1.5rem);
	--rs-font-size-xl: clamp(1.75rem, 1.35rem + 2vw, 2.5rem);
	--rs-font-size-2xl: clamp(2.25rem, 1.7rem + 2.75vw, 3.5rem);
	--rs-font-size-3xl: clamp(2.75rem, 2rem + 4vw, 4.5rem);
	--rs-line-height-tight: 1.15;
	--rs-line-height-heading: 1.2;
	--rs-line-height-body: 1.6;
	--rs-weight-regular: 400;
	--rs-weight-medium: 500;
	--rs-weight-semibold: 600;
	--rs-weight-bold: 700;

	--rs-space-1: 0.25rem;
	--rs-space-2: 0.5rem;
	--rs-space-3: 0.75rem;
	--rs-space-4: 1rem;
	--rs-space-5: 1.5rem;
	--rs-space-6: 2rem;
	--rs-space-7: 3rem;
	--rs-space-8: 4rem;
	--rs-space-9: 6rem;
	--rs-space-10: 8rem;

	--rs-container-narrow: 46rem;
	--rs-container-default: 75rem;
	--rs-container-wide: 87.5rem;
	--rs-radius-sm: 0.25rem;
	--rs-radius-md: 0.5rem;
	--rs-radius-lg: 0.75rem;
	--rs-shadow-card: 0 8px 24px rgb(11 31 51 / 8%);
	--rs-shadow-card-hover: 0 12px 32px rgb(11 31 51 / 12%);
	--rs-transition-base: 160ms ease;
}

body {
	color: var(--rs-color-text);
	font-family: var(--rs-font-body);
	font-size: var(--rs-font-size-base);
	font-weight: var(--rs-weight-regular);
	line-height: var(--rs-line-height-body);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	color: var(--rs-color-dark);
	font-family: var(--rs-font-heading);
	font-weight: var(--rs-weight-bold);
	line-height: var(--rs-line-height-heading);
	text-wrap: balance;
}

h1 {
	font-size: var(--rs-font-size-3xl);
}

h2 {
	font-size: var(--rs-font-size-2xl);
}

h3 {
	font-size: var(--rs-font-size-xl);
}

h4 {
	font-size: var(--rs-font-size-lg);
}

a {
	color: var(--rs-color-primary-strong);
	font-weight: var(--rs-weight-medium);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.16em;
}

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

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
	outline: 3px solid var(--rs-color-focus);
	outline-offset: 3px;
}

.radoshsoft-container {
	width: min(100% - (2 * var(--rs-space-5)), var(--rs-container-default));
	margin-inline: auto;
}

.radoshsoft-container--narrow {
	max-width: var(--rs-container-narrow);
}

.radoshsoft-container--wide {
	max-width: var(--rs-container-wide);
}

.radoshsoft-section {
	padding-block: clamp(var(--rs-space-8), 8vw, var(--rs-space-10));
}

.radoshsoft-section--subtle {
	background-color: var(--rs-color-surface-subtle);
}

.radoshsoft-section--dark {
	background-color: var(--rs-color-dark);
	color: var(--rs-color-on-dark);
}

.radoshsoft-section--dark :is(h1, h2, h3, h4, h5, h6) {
	color: var(--rs-color-on-dark);
}

.radoshsoft-button {
	align-items: center;
	background-color: var(--rs-color-primary);
	border: 1px solid var(--rs-color-primary);
	border-radius: var(--rs-radius-md);
	color: #ffffff;
	display: inline-flex;
	font-family: var(--rs-font-body);
	font-size: var(--rs-font-size-base);
	font-weight: var(--rs-weight-semibold);
	gap: var(--rs-space-2);
	justify-content: center;
	line-height: 1.2;
	min-height: 2.75rem;
	padding: 0.75rem 1.125rem;
	text-align: center;
	text-decoration: none;
	transition: background-color var(--rs-transition-base), border-color var(--rs-transition-base), color var(--rs-transition-base), transform var(--rs-transition-base);
}

.radoshsoft-button:hover {
	background-color: var(--rs-color-primary-strong);
	border-color: var(--rs-color-primary-strong);
	color: #ffffff;
	transform: translateY(-1px);
}

.radoshsoft-button--secondary {
	background-color: transparent;
	border-color: var(--rs-color-primary);
	color: var(--rs-color-primary-strong);
}

.radoshsoft-button--secondary:hover {
	background-color: var(--rs-color-surface-muted);
	color: var(--rs-color-primary-strong);
}

.radoshsoft-button--accent {
	background-color: var(--rs-color-accent);
	border-color: var(--rs-color-accent);
}

.radoshsoft-button--accent:hover {
	background-color: var(--rs-color-accent-strong);
	border-color: var(--rs-color-accent-strong);
}

.radoshsoft-card {
	background-color: var(--rs-color-surface);
	border: 1px solid var(--rs-color-border);
	border-radius: var(--rs-radius-lg);
	box-shadow: var(--rs-shadow-card);
	padding: var(--rs-space-6);
	transition: box-shadow var(--rs-transition-base), transform var(--rs-transition-base);
}

.radoshsoft-card:hover {
	box-shadow: var(--rs-shadow-card-hover);
	transform: translateY(-2px);
}

.radoshsoft-card--flat {
	box-shadow: none;
}

.radoshsoft-form :is(input, select, textarea) {
	background-color: var(--rs-color-surface);
	border: 1px solid var(--rs-color-border);
	border-radius: var(--rs-radius-md);
	color: var(--rs-color-text);
	font: inherit;
	line-height: var(--rs-line-height-body);
	min-height: 2.75rem;
	padding: 0.625rem 0.75rem;
	width: 100%;
}

.radoshsoft-form textarea {
	min-height: 8rem;
	resize: vertical;
}

.radoshsoft-form :is(input, select, textarea):focus {
	border-color: var(--rs-color-primary);
}

.radoshsoft-site-header {
	background-color: var(--rs-color-surface);
	border-bottom: 1px solid var(--rs-color-border);
}

.radoshsoft-site-footer {
	background-color: var(--rs-color-dark);
	color: var(--rs-color-on-dark);
}

.radoshsoft-site-footer a {
	color: var(--rs-color-on-dark);
}

@media (max-width: 47.99rem) {
	.radoshsoft-section {
		padding-block: var(--rs-space-7);
	}

	.radoshsoft-card {
		padding: var(--rs-space-5);
	}

	.radoshsoft-button {
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto;
		transition-duration: 0.01ms !important;
	}
}
