/*
 * Global theme tokens for Patrick Schulz.
 * Adjust these values to customize the theme.
 */
:root {
	--background: #FFFFFF;
	--foreground: #171912;
	--card: #FFFFFF;
	--card-foreground: #171912;
	--popover: #FFFFFF;
	--popover-foreground: #171912;
	--primary: #0A0A0A;
	--primary-foreground: #F8F8F8;
	--secondary: #F1F3EB;
	--secondary-foreground: #1E2116;
	--muted: #F4F4F4;
	--muted-foreground: #54574B;
	--accent: #D6F0DA;
	--accent-foreground: #1E2116;
	--destructive: #D73431;
	--destructive-foreground: #F8F8F8;
	--border: #E1E2DE;
	--input: #E1E2DE;
	--ring: #0A0A0A;
	--radius: 0.75rem;
	--field-radius: 0.5rem;
	color-scheme: light;
}

[data-theme="dark"],
.dark {
	--background: #0F100B;
	--foreground: #E7E8E5;
	--card: #171913;
	--card-foreground: #E7E8E5;
	--popover: #171913;
	--popover-foreground: #E7E8E5;
	--primary: #49AF7E;
	--primary-foreground: #11120D;
	--secondary: #23251D;
	--secondary-foreground: #E7E8E5;
	--muted: #23251D;
	--muted-foreground: #A4A69F;
	--accent: #1F3423;
	--accent-foreground: #E7E8E5;
	--destructive: #F0574E;
	--destructive-foreground: #F8F8F8;
	--border: #2F3229;
	--input: #2F3229;
	--ring: #49AF7E;
	color-scheme: dark;
}

@theme inline {
	--color-background: var(--background);
	--color-foreground: var(--foreground);
	--color-card: var(--card);
	--color-card-foreground: var(--card-foreground);
	--color-popover: var(--popover);
	--color-popover-foreground: var(--popover-foreground);
	--color-primary: var(--primary);
	--color-primary-foreground: var(--primary-foreground);
	--color-secondary: var(--secondary);
	--color-secondary-foreground: var(--secondary-foreground);
	--color-muted: var(--muted);
	--color-muted-foreground: var(--muted-foreground);
	--color-accent: var(--accent);
	--color-accent-foreground: var(--accent-foreground);
	--color-destructive: var(--destructive);
	--color-destructive-foreground: var(--destructive-foreground);
	--color-border: var(--border);
	--color-input: var(--input);
	--color-ring: var(--ring);
	--radius-sm: calc(var(--radius) - 0.5rem);
	--radius-md: calc(var(--radius) - 0.25rem);
	--radius-lg: var(--radius);
	--radius-xl: calc(var(--radius) + 0.5rem);
}

html,
body {
	min-height: 100%;
}

body {
	background-color: var(--background);
	color: var(--foreground);
	font-family: ui-sans-serif, system-ui, sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}

h1 {
	font-family: 'Domine', serif !important;
	font-size: 26px !important;
	font-weight: 700 !important;
	color: #171717 !important;
}

.card {
	background-color: var(--card);
	border-color: var(--border);
	border-radius: 1.5rem;
	border-style: solid;
	border-width: 1px;
	color: var(--card-foreground);
	overflow: visible;
}

.btn,
[class^="btn-"],
[class*=" btn-"] {
	border-radius: 9999px;
}

.button-group:not([data-orientation="vertical"]) > :not(:first-child) {
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.button-group:not([data-orientation="vertical"]) > :not(:last-child) {
	border-top-right-radius: 0;
	border-bottom-right-radius: 0;
}

@layer base {
	.button-group:not([data-orientation="vertical"]) > :last-child {
		border-start-end-radius: 9999px !important;
		border-end-end-radius: 9999px !important;
	}
}

.badge,
.badge-default,
.badge-secondary,
.badge-outline {
	border-radius: 9999px;
}

.btn,
.btn-lg {
	background-color: var(--primary);
	border-color: var(--primary);
	color: var(--primary-foreground);
}

.btn:hover,
.btn-lg:hover {
	background-color: color-mix(in srgb, var(--primary) 85%, black);
	border-color: color-mix(in srgb, var(--primary) 85%, black);
}

.btn-secondary {
	background-color: var(--secondary);
	border-color: var(--secondary);
	color: var(--secondary-foreground);
}

.btn-outline {
	border-color: var(--border);
	color: var(--foreground);
}

.btn-outline:hover {
	background-color: var(--muted);
}

.btn-sm-outline:hover,
.btn-icon-outline:hover {
	background-color: var(--muted);
	border-color: var(--border);
	color: var(--foreground);
}

.btn-nav {
	width: 2rem !important;
	height: 2rem !important;
	padding: 0 !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}

.testimonial-slide {
	gap: 0.75rem;
}

.font-domine {
	font-family: 'Domine', Georgia, serif;
}

.card.project-card {
	box-shadow: none;
}

.card header h2 {
	font-weight: 700;
}

p {
	font-size: 15px !important;
}

.btn-ghost {
	background-color: transparent;
	border-color: transparent;
	color: var(--foreground);
}

.btn-ghost:hover {
	background-color: color-mix(in srgb, var(--muted) 70%, transparent);
}

.badge,
.badge-default {
	background-color: var(--primary);
	border-color: var(--primary);
	color: var(--primary-foreground);
}

.badge-secondary {
	background-color: var(--card);
	border-color: var(--border);
	border-style: solid;
	border-width: 1px;
	color: var(--secondary-foreground);
}

.badge-outline,
.badge[data-variant="outline"] {
	background-color: transparent;
	border-color: color-mix(in srgb, var(--border) 80%, transparent);
	color: #171717;
}

.input,
.textarea {
	background-color: var(--card);
	border-color: var(--input);
	border-radius: var(--field-radius);
	color: var(--foreground);
}

.input:focus-visible,
.textarea:focus-visible {
	border-color: var(--ring);
}

.text-foreground {
	color: var(--foreground);
}

.text-muted-foreground {
	color: var(--muted-foreground);
}

.bg-muted {
	background-color: var(--muted);
}

.border-border {
	border-color: var(--border);
}

.hover\:text-foreground:hover {
	color: var(--foreground);
}

.hover\:text-primary:hover {
	color: var(--primary);
}

.hover\:border-border:hover {
	border-color: var(--border);
}

.card-link::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
}

.card,
.badge-outline,
.badge[data-variant="outline"],
.btn-outline,
.btn-sm-outline,
.btn-icon-outline {
	border-color: var(--border);
}
