/* WordPress + Elementor integration overrides. */

body {
	margin: 0;
	font-family: "Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
}

button,
input,
select,
textarea {
	font-family: "Inter Variable", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif !important;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-family: "Plus Jakarta Sans Variable", "Inter Variable", ui-sans-serif, system-ui, sans-serif !important;
}

/* Keep the sticky header below the WordPress admin bar. */
.admin-bar #site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar #site-header {
		top: 46px;
	}
}

#site-header {
	z-index: 9999;
}

#main-content {
	min-height: 50vh;
}

.elementor-editor-active #site-header {
	position: static;
}

/* Raw Elementor sections: remove the builder's default layout spacing. */
.2dw-raw-section {
	padding: 0 !important;
	margin: 0 !important;
}

.2dw-raw-section > .elementor-container {
	max-width: none !important;
	width: 100% !important;
}

.2dw-raw-section > .elementor-container > .elementor-column {
	width: 100% !important;
}

.2dw-raw-section .elementor-widget-wrap,
.2dw-raw-section .elementor-widget-container {
	padding: 0 !important;
	margin: 0 !important;
}

.2dw-raw-section .elementor-widget:not(:last-child) {
	margin-bottom: 0 !important;
}

.2dw-raw-section .elementor-element {
	margin: 0 !important;
}

.2dw-raw-section .elementor-widget-html,
.2dw-raw-section .elementor-widget-shortcode,
.2dw-raw-section .elementor-widget-container > section {
	width: 100%;
	margin: 0;
}

/* The contact section comes from the shortcode widget. */
.elementor-widget-shortcode .elementor-widget-container {
	padding: 0;
}

/* Elementor's editor can hide the form success state; keep it accessible. */
[data-success-panel][hidden] {
	display: none !important;
}

/* Elementor adds a default link colour; our utility classes win where set. */
.elementor a {
	text-decoration: none;
}

/* Legal content is inside an HTML widget. */
.prose-legal {
	max-width: 100%;
}

/* Large decorative blurs are expensive on small screens. */
@media (max-width: 767px) {
	.blur-3xl {
		display: none;
	}
}

/* Keep footer links at a comfortable touch target size. */
footer ul a {
	display: inline-flex;
	align-items: center;
	min-height: 24px;
}

/* WordPress core utility class used by some plugins. */
.screen-reader-text {
	border: 0;
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}
