/* Reset + base typography, matched to the live site's measured body styles. */

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

/*
 * The parent theme sets `body { height: 100vh; display: flex; flex-direction: column }`
 * for its own Elementor-canvas pages. A fixed `height` (not `min-height`) forces flex
 * children to shrink below their content size on pages taller than the viewport, which
 * pushes our footer up over the page content instead of below it. Overriding to
 * `min-height` restores normal flow while keeping the parent's sticky-footer behavior
 * on short pages.
 */
html,
body {
	height: auto;
	min-height: 100vh;
}

body {
	margin: 0;
	font-family: var( --lm-font-body );
	color: var( --lm-color-text );
	background-color: var( --lm-color-bg );
	font-size: 16px;
	line-height: 1.6;
}

.lm-main {
	flex: 1 0 auto;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a {
	color: inherit;
	text-decoration: none;
}

h1,
h2,
h3,
h4 {
	font-family: var( --lm-font-heading );
	font-weight: 900; /* live site measures h1 at font-weight:950, which is above Montserrat's max native weight (900) and likely a synthetic-bold artifact rather than an intentional value — using the real max weight instead. */
	margin: 0 0 var( --lm-space-2 );
	line-height: 1.15;
}

h1 {
	font-size: 2.75rem;
}

h2 {
	font-size: 1.75rem;
}

h3 {
	font-size: 1.25rem;
}

p {
	margin: 0 0 var( --lm-space-2 );
}

.lm-container {
	width: min( calc( 100% - 32px ), var( --lm-container-width ) );
	margin: 0 auto;
}

@media ( min-width: 560px ) {
	.lm-container {
		width: min( calc( 100% - 48px ), var( --lm-container-width ) );
	}
}

.lm-section-heading.lm-section-heading {
	font-size: 1.5rem;
	margin-bottom: var( --lm-space-3 );
}

/*
 * The parent theme's Elementor global kit applies `.elementor-kit-162 a { color: ...;
 * font-size: ...; ... }` to every link on the page, which is more specific than a single
 * class selector and was overriding our button color/font-size. Doubling the class beats
 * it without resorting to `!important`.
 */
.lm-button.lm-button {
	display: inline-block;
	font-family: var( --lm-font-body );
	font-weight: 800;
	font-size: 0.95rem;
	padding: 12px 24px;
	border-radius: var( --lm-radius-button );
	border: none;
	cursor: pointer;
	text-align: center;
	transition: background-color 0.15s ease;
}

.lm-button--primary.lm-button--primary {
	background-color: var( --lm-color-primary );
	color: var( --lm-color-white );
}

.lm-button--primary.lm-button--primary:hover,
.lm-button--primary.lm-button--primary:focus {
	background-color: var( --lm-color-primary-hover );
}
