/* Site-wide additions for the Elementor home page. */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
[id] { scroll-margin-top: 96px; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

/* Elementor free cannot express these two, so they live here. */
.elementor-element-534fcb75 { width: fit-content !important; max-width: 100%; } /* hero eyebrow hugs its text */
/* Two-value gaps Elementor dropped on save. */
.elementor-element-5ce33753 { gap: 16px 48px !important; }  /* routes intro */
.elementor-element-33ca4971,
.elementor-element-30913c32 { gap: 12px 32px !important; }  /* rebuild + program card heads */
.elementor-element-7024cf4b { gap: 10px 20px !important; }  /* contact prices */
.elementor-element-4543a859 { gap: 12px 32px !important; }  /* footer menu */
.elementor-element-467476e8, .elementor-element-635a6291,
.elementor-element-276d9682, .elementor-element-636c12a5 { gap: 8px 20px !important; } /* comparison rows */
@media (max-width: 767px) { .elementor-element-4543a859 { gap: 14px 22px !important; } }

@media (min-width: 768px) and (max-width: 1024px) {
	.elementor-element-17433b1a { gap: 16px !important; }
	.elementor-element-17433b1a .lp-nav-link { font-size: 14px !important; }
}

@media (max-width: 767px) {
	/* header menu: one swipeable row on phones instead of wrapping */
	.elementor-element-17433b1a { overflow-x: auto !important; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
	.elementor-element-547510c4 { display: none !important; } /* hero eyebrow square: the label wraps on phones */
	.elementor-element-17433b1a::-webkit-scrollbar { display: none; }
}

/* Home enquiry form (Contact Form 7), styled to the design. */
.lp-form .lp-form-grid { display: grid; gap: 18px; }
.lp-form .lp-field { display: block; margin: 0; }
.lp-form .lp-label {
	display: block; margin-bottom: 8px;
	font: 600 12px/1 Inter, sans-serif; letter-spacing: .1em; text-transform: uppercase; color: #000;
}
.lp-form .wpcf7-form-control-wrap { display: block; }
.lp-form input[type="text"],
.lp-form input[type="email"],
.lp-form select {
	box-sizing: border-box; width: 100%; margin: 0; padding: 15px 16px;
	border: 1px solid #cfcfcf; border-radius: 4px; background: #fff;
	font: 400 16px/1.3 Inter, sans-serif; color: #000;
	-webkit-appearance: none; appearance: none;
}
.lp-form select {
	padding-right: 44px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%232b189b' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 16px center;
}
.lp-form input:focus, .lp-form select:focus {
	border-color: #2b189b; outline: 2px solid rgba(43, 24, 155, .15); outline-offset: 0;
}
.lp-form input::placeholder { color: #8a8a8a; }
.lp-form .lp-submit {
	display: block; width: 100%; margin-top: 24px; padding: 18px 28px;
	border: 0; border-radius: 40px; background: #2b189b; color: #fff;
	font: 500 16px/1 Inter, sans-serif; cursor: pointer; transition: background .2s;
}
.lp-form .lp-submit:hover { background: #211375; }
.lp-form .lp-submit:focus-visible { outline: 2px solid #2b189b; outline-offset: 3px; }
.lp-form .lp-form-note { margin: 14px 0 0; font: 400 13px/1.5 Inter, sans-serif; color: #6b6b6b; }
.lp-form .wpcf7-spinner { display: block; margin: 12px auto 0; }
.lp-form .wpcf7-not-valid { border-color: #b3271b; }
.lp-form .wpcf7-not-valid-tip { margin-top: 6px; font: 500 14px/1.4 Inter, sans-serif; color: #b3271b; }
.lp-form .wpcf7-response-output {
	margin: 18px 0 0 !important; padding: 0 !important; border: 0 !important;
	font: 500 15px/1.5 Inter, sans-serif; color: #b3271b;
}
/* On success, show the design's thank-you state in place of the form. */
.lp-form.sent .lp-form-grid, .lp-form.sent .lp-submit, .lp-form.sent .lp-form-note, .lp-form.sent .wpcf7-spinner { display: none; }
.lp-form.sent .wpcf7-response-output {
	margin: 0 !important; padding: 8px 0 !important;
	font: 400 clamp(22px, 2.4vw, 28px)/1.35 'Instrument Serif', Georgia, serif; color: #000;
}
