/*
 * Design tokens. Elementor's global colours and fonts override these on
 * Elementor pages; they are the fallback for everything else (search results,
 * WordPress pages, the plugin's own templates).
 */
:root {
	--lsp-ink: #17322a;
	--lsp-muted: #5b6f68;
	--lsp-line: #e2ece7;
	--lsp-green: #1f8a5b;
	--lsp-green-dark: #16704a;
	--lsp-green-soft: #e4f3ea;
	--lsp-mint: #f3faf6;
	--lsp-sky: #eaf3fb;
	--lsp-sky-ink: #2f6db5;
	--lsp-sun-soft: #fdf3d8;
	--lsp-amber: #8a5a0f;
	--lsp-lav: #ece9f8;
	--lsp-rx: #5b4b9a;
	--lsp-rose: #fbe9e7;
	--lsp-red: #b23b33;
	--lsp-white: #fff;

	--lsp-font-display: "Bricolage Grotesque", system-ui, sans-serif;
	--lsp-font-body: "Atkinson Hyperlegible", system-ui, sans-serif;

	--lsp-radius-s: 12px;
	--lsp-radius-m: 18px;
	--lsp-radius-l: 24px;
	--lsp-shadow: 0 1px 2px rgba(23, 50, 42, 0.05), 0 8px 24px rgba(23, 50, 42, 0.06);
	--lsp-focus: 0 0 0 3px #fff, 0 0 0 5px var(--lsp-green);
}

html {
	-webkit-text-size-adjust: 100%;
	scroll-behavior: smooth;
}

body {
	font-family: var(--lsp-font-body);
	font-size: 17px;
	line-height: 1.6;
	color: var(--lsp-ink);
	background: var(--lsp-white);
	-webkit-font-smoothing: antialiased;
}

h1,
h2,
h3,
h4 {
	font-family: var(--lsp-font-display);
	line-height: 1.12;
	letter-spacing: -0.015em;
	color: var(--lsp-ink);
}

a {
	color: var(--lsp-green-dark);
	text-underline-offset: 3px;
}

a:hover {
	color: var(--lsp-green);
}

:focus-visible {
	outline: none;
	box-shadow: var(--lsp-focus);
	border-radius: 8px;
}

::selection {
	background: var(--lsp-green-soft);
	color: var(--lsp-ink);
}

/* Elementor sets anchors to scroll under the sticky header otherwise. */
[id] {
	scroll-margin-top: 96px;
}

.lspc-credit {
	margin: 0;
	padding: 16px;
	text-align: center;
	font-size: 13px;
	color: var(--lsp-muted);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition: none !important;
		animation: none !important;
	}
}

/* Header and footer used without an Elementor Pro template ----------------- */

.lspc-header {
	position: sticky;
	top: 0;
	z-index: 40;
	border-bottom: 1px solid var(--lsp-line);
	background: rgba(255, 255, 255, 0.95);
	-webkit-backdrop-filter: saturate(1.4) blur(8px);
	backdrop-filter: saturate(1.4) blur(8px);
}

.admin-bar .lspc-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .lspc-header {
		top: 0;
	}
}

.lspc-header__inner {
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: 1160px;
	min-height: 72px;
	margin: 0 auto;
	padding: 10px clamp(16px, 4vw, 24px);
}

.lspc-header__inner .lsp-brand {
	margin-right: auto;
}

.lspc-header__title {
	margin-right: auto;
	color: var(--lsp-ink);
	font-family: var(--lsp-font-display);
	font-size: 1.2rem;
	font-weight: 700;
	text-decoration: none;
}

.lspc-footer {
	margin-top: 0;
	border-top: 1px solid var(--lsp-line);
	background: var(--lsp-white);
}

.lspc-footer__inner {
	display: grid;
	grid-template-columns: 1.3fr 1fr 0.8fr;
	gap: 40px;
	max-width: 1160px;
	margin: 0 auto;
	padding: 48px clamp(16px, 4vw, 24px) 24px;
}

.lspc-footer__col {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 20px;
}

.lspc-footer__col .lsp-nav__toggle {
	display: none;
}

.lspc-footer__col .lsp-nav__panel {
	position: static;
	display: block;
	padding: 0;
	border: 0;
	box-shadow: none;
}

.lspc-footer__col .lsp-nav__list {
	flex-direction: column;
}

.lspc-footer__col .lsp-nav__list a {
	padding: 6px 0;
	color: var(--lsp-muted);
}

.lspc-footer__bottom {
	max-width: 1160px;
	margin: 0 auto;
	padding: 16px clamp(16px, 4vw, 24px) 32px;
	border-top: 1px solid var(--lsp-line);
}

@media (max-width: 900px) {
	.lspc-footer__inner {
		grid-template-columns: 1fr;
		gap: 28px;
	}
}
