/* Logopraxis design tokens. All site components read these variables. */

@font-face {
	font-family: "Fraunces";
	src: url("fonts/fraunces-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Fraunces";
	src: url("fonts/fraunces-latin-wght-italic.woff2") format("woff2");
	font-weight: 100 900;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Nunito Sans";
	src: url("fonts/nunito-sans-latin-wght-normal.woff2") format("woff2");
	font-weight: 200 1000;
	font-style: normal;
	font-display: swap;
}

:root {
	--lp-navy: #1F3556;
	--lp-navy-soft: #44546B;
	--lp-cream: #FBF6EE;
	--lp-white: #FFFFFF;
	--lp-honey: #F2B84B;
	--lp-honey-soft: #FBEBC8;
	--lp-sage: #8FB59A;
	--lp-sage-soft: #E3EEE5;
	--lp-terracotta: #D9825B;
	--lp-terracotta-strong: #B5583A;
	--lp-terracotta-hover: #9C4A30;
	--lp-terracotta-text: #9C4A30; /* text on light/tinted backgrounds: ≥ 5:1 */
	--lp-font-head: "Fraunces", Georgia, serif;
	--lp-font-body: "Nunito Sans", "Helvetica Neue", Arial, sans-serif;
	--lp-radius: 12px;
	--lp-radius-pill: 999px;
	--lp-shadow: 0 6px 24px rgba(31, 53, 86, 0.08);
	--lp-maxw: 1140px;
}

body {
	background: var(--lp-cream);
	color: var(--lp-navy);
	font-family: var(--lp-font-body);
	font-size: 17px;
	line-height: 1.65;
}

h1, h2, h3, h4,
.elementor-heading-title {
	font-family: var(--lp-font-head);
	color: var(--lp-navy);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.01em;
	overflow-wrap: break-word;
}
@media (max-width: 767px) {
	h1, h2, .elementor-heading-title { hyphens: auto; }
}
html { -webkit-text-size-adjust: 100%; }

a { color: var(--lp-terracotta-text); }
a:hover { color: var(--lp-navy); }

/* Buttons: deeper terracotta for text contrast (white on #B5583A = 4.75:1). */
.elementor-button,
body a.lp-btn {
	background: var(--lp-terracotta-strong);
	color: var(--lp-white);
	border: 0;
	border-radius: var(--lp-radius-pill);
	font-family: var(--lp-font-body);
	font-weight: 700;
	padding: 14px 28px;
	text-decoration: none;
	display: inline-block;
	transition: background-color .15s ease;
}
.elementor-button:hover,
.elementor-button:focus,
body a.lp-btn:hover,
body a.lp-btn:focus {
	background: var(--lp-terracotta-hover);
	color: var(--lp-white);
}
body a.lp-btn--ghost,
.elementor-button.lp-btn--ghost {
	background: transparent;
	color: var(--lp-navy);
	box-shadow: inset 0 0 0 2px var(--lp-navy);
}
body a.lp-btn--ghost:hover,
.elementor-button.lp-btn--ghost:hover {
	background: var(--lp-navy);
	color: var(--lp-white);
}

:focus-visible {
	outline: 3px solid var(--lp-honey);
	outline-offset: 2px;
}

blockquote,
.lp-quote {
	font-family: var(--lp-font-head);
	font-style: italic;
	font-size: 1.35rem;
	line-height: 1.5;
	color: var(--lp-navy);
}

/* Shared pieces used by several sections */
.lp-card {
	background: var(--lp-white);
	border-radius: var(--lp-radius);
	box-shadow: var(--lp-shadow);
}
.lp-chip {
	display: inline-block;
	background: var(--lp-sage-soft);
	color: var(--lp-navy);
	border-radius: var(--lp-radius-pill);
	padding: 4px 12px;
	font-size: 0.875rem;
	line-height: 1.5;
}
.lp-chip--honey { background: var(--lp-honey-soft); }

.lp-rounded img,
img.lp-rounded { border-radius: var(--lp-radius); }

.lp-sr-only {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(0 0 0 0);
	white-space: nowrap;
}
