/* MPD Proseal 1.2.0 – CA v2 Part 0 (site-wide template) */

:root {
	--mpd-text: #222222;
	--mpd-pink: #e60856;
	--mpd-green: #25d366;
	--mpd-navy: #0b2a5b;
	--mpd-blue: #0e65e5;
}

/* ---------- 3. Font and text ---------- */
html body,
html body :is(p, h1, h2, h3, h4, h5, h6, a, li, label, input, textarea, select, button, td, th, blockquote, dt, dd, strong, b, em, small) {
	font-family: 'Roboto', Arial, Helvetica, sans-serif !important;
}

body .content :is(p, li, .wpb_text_column, .qode-accordion-content),
body .content .wpb_text_column :is(p, li) {
	font-size: 16px !important;
	line-height: 1.6 !important;
	color: var(--mpd-text) !important;
	letter-spacing: 0 !important;
}
body .content p {
	text-align: left !important;
}

body :is(.content, .title) h1,
body .title h1 span {
	font-size: 28px !important;
	line-height: 1.25 !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
body .content h2 {
	font-size: 22px !important;
	line-height: 1.3 !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
body .content :is(h3, .qode-title-holder) {
	font-size: 18px !important;
	line-height: 1.35 !important;
	font-weight: 700 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
body .content h3 .qode-tab-title-inner {
	font-size: inherit !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}
/* H1 left-aligned (title area included) */
body .title .title_holder .container_inner,
body .title .title_holder .title_subtitle_holder,
body .content h1 {
	text-align: left !important;
}

/* Reading width */
body .content .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > .wpb_text_column {
	max-width: 760px;
}

@media (min-width: 1001px) {
	body .content :is(p, li, .wpb_text_column, .qode-accordion-content),
	body .content .wpb_text_column :is(p, li) {
		font-size: 17px !important;
	}
	body :is(.content, .title) h1,
	body .title h1 span {
		font-size: 40px !important;
	}
	body .content h2 {
		font-size: 30px !important;
	}
	body .content :is(h3, .qode-title-holder) {
		font-size: 20px !important;
	}
}

/* Mobile: full width minus 20px each side (Bridge fixes the column at 300px on phones) */
@media (max-width: 1000px) {
	body .content .container_inner,
	body .content .full_width_inner .container_inner,
	body .title .container_inner,
	body footer .container_inner {
		width: auto !important;
		margin-left: 20px !important;
		margin-right: 20px !important;
	}
}

/* ---------- 4. Header ---------- */
/* The logo waits for the theme script, which WP Rocket delays until the first tap. */
.q_logo a {
	visibility: visible !important;
}
@media (min-width: 1001px) {
	/* Same height the theme script sets inline once it runs. */
	.q_logo a {
		height: 90px;
	}
}

/* Row entrance animations wait for the delayed theme script: show the rows from the start. */
:is(.element_from_fade, .element_from_right, .element_from_left, .element_from_top, .element_from_bottom) > div {
	opacity: 1 !important;
	left: 0 !important;
	right: auto !important;
	top: 0 !important;
	transform: none !important;
}

/* The "ENQUIRE NOW" slider tab is replaced by the header button (desktop) and the sticky bar (mobile). */
[id^="wpcs_tab_"] {
	display: none !important;
}

.mpd-btn {
	display: inline-block;
	padding: 10px 18px;
	border-radius: 4px;
	font-weight: 700;
	font-size: 15px;
	line-height: 1.2;
	text-decoration: none;
	color: #fff !important;
	white-space: nowrap;
}
.mpd-btn--pink {
	background: var(--mpd-pink);
}
.mpd-btn--pink:hover {
	background: #c00747;
}
.header_top .mpd-hdr-cta {
	margin-left: 18px;
	display: inline-flex;
	align-items: center;
	height: 100%;
}

.mpd-hdr-call {
	display: none;
}

@media (max-width: 1000px) {
	header .header_top,
	.mpd-hdr-cta {
		display: none !important;
	}
	header .header_bottom .container_inner {
		position: relative;
		min-height: 64px;
	}
	header .header_inner_left {
		position: static !important;
	}
	header .header_inner_right {
		display: none !important;
	}
	header .logo_wrapper {
		position: absolute !important;
		left: 0 !important;
		top: 0 !important;
		height: 64px !important;
		width: auto !important;
		margin: 0 !important;
		transform: none !important;
		display: flex !important;
		align-items: center;
	}
	header .q_logo,
	header .q_logo a {
		position: static !important;
		left: auto !important;
		height: auto !important;
		display: block !important;
	}
	header .q_logo img.mobile {
		position: static !important;
		height: 46px !important;
		width: auto !important;
		max-width: 200px;
		visibility: visible !important;
		opacity: 1 !important;
		display: block !important;
	}
	header .q_logo img:not(.mobile) {
		display: none !important;
	}
	header .mobile_menu_button {
		float: right !important;
		height: 64px !important;
		margin: 0 !important;
		display: flex !important;
		align-items: center;
	}
	header .mobile_menu_button span {
		font-size: 26px !important;
	}
	.mpd-hdr-call {
		display: flex;
		align-items: center;
		justify-content: center;
		float: right;
		width: 40px;
		height: 40px;
		margin: 12px 14px 0 0;
		border-radius: 50%;
		background: var(--mpd-navy);
		color: #fff !important;
	}
	header .header_bottom {
		height: auto !important;
		padding: 0 !important;
	}
	header .header_bottom .container_inner {
		width: auto !important;
		margin: 0 16px !important;
	}
}

/* ---------- Sticky bottom bar (mobile) ---------- */
.mpd-sticky {
	display: none;
}
@media (max-width: 1000px) {
	.mpd-sticky {
		position: fixed;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 9990;
		display: flex;
		gap: 0;
		box-shadow: 0 -2px 10px rgba(0, 0, 0, .15);
		transform: translateY(110%);
		transition: transform .25s ease;
		padding-bottom: env(safe-area-inset-bottom);
		background: #fff;
	}
	.mpd-sticky.is-visible {
		transform: none;
	}
	.mpd-sticky__btn {
		flex: 1 1 25%;
		display: flex;
		align-items: center;
		justify-content: center;
		min-height: 54px;
		font-size: 15px;
		font-weight: 700;
		color: #fff !important;
		text-decoration: none;
	}
	.mpd-sticky__btn--form {
		flex-basis: 50%;
		background: var(--mpd-pink);
	}
	.mpd-sticky__btn--wa {
		background: var(--mpd-green);
	}
	.mpd-sticky__btn--call {
		background: var(--mpd-navy);
	}
	body.mpd-has-sticky {
		padding-bottom: 54px;
	}
}

/* ---------- 8. Trust strip: five equal tiles, logo + caption (1.1.9) ---------- */
.mpd-trust {
	margin: 0 0 36px;
	padding: 18px 20px 20px;
	border: 1px solid #e3e8ef;
	border-radius: 8px;
	background: #f7f9fc;
}
body .content .mpd-trust .mpd-trust__text {
	margin: 0 0 14px;
	font-size: 15px !important;
	line-height: 1.4 !important;
	text-align: center !important;
	color: var(--mpd-navy) !important;
}
body .content .mpd-trust .mpd-trust__logos {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	align-items: stretch;
	gap: 12px;
	max-width: 960px;
	margin: 0 auto !important;
	padding: 0 !important;
	list-style: none !important;
}
body .content .mpd-trust .mpd-trust__item {
	flex: 1 1 0;
	min-width: 0;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: space-between;
	gap: 10px;
	margin: 0 !important;
	padding: 14px 8px 12px;
	border: 1px solid #e3e8ef;
	border-radius: 6px;
	background: #fff;
	list-style: none !important;
	text-align: center;
}
.mpd-trust__item img {
	display: block;
	width: auto;
	height: 72px;
	max-width: 100%;
	object-fit: contain;
}
body .content .mpd-trust__item span {
	font-size: 13px;
	line-height: 1.3;
	font-weight: 700;
	color: var(--mpd-navy);
}
body .content .mpd-trust__verify {
	margin: 12px 0 0;
	font-size: 15px !important;
	text-align: center !important;
}
@media (max-width: 600px) {
	.mpd-trust {
		padding: 14px 12px 16px;
	}
	body .content .mpd-trust .mpd-trust__logos {
		gap: 8px;
	}
	/* 3 + 2, the second row centred */
	body .content .mpd-trust .mpd-trust__item {
		flex: 0 0 calc((100% - 16px) / 3);
		padding: 10px 4px;
	}
	.mpd-trust__item img {
		height: 52px;
	}
	body .content .mpd-trust__item span {
		font-size: 12px;
	}
}

/* ---------- 7. FAQ: collapsed until opened (also before the theme script runs) ---------- */
.qode-accordion-holder:not(.ui-accordion) .qode-accordion-content {
	display: none;
}
.qode-accordion-holder:not(.ui-accordion) .qode-title-holder.mpd-open + .qode-accordion-content {
	display: block;
}
.qode-accordion-holder .qode-title-holder {
	cursor: pointer;
}

/* ---------- 7. Related services (mobile replaces the full sidebar list) ---------- */
.mpd-related {
	display: none;
}
@media (max-width: 1000px) {
	.page_container_inner .column2 .widget_nav_menu {
		display: none;
	}
	.mpd-related {
		display: block;
		margin: 32px 0 8px;
	}
	.mpd-related ul {
		margin: 0;
		padding: 0;
		list-style: none;
	}
	.mpd-related li {
		margin: 0 0 8px;
	}
	.mpd-related a {
		display: block;
		padding: 12px 14px;
		border: 1px solid #d7deea;
		border-radius: 6px;
		font-weight: 700;
		color: var(--mpd-blue) !important;
		text-decoration: none;
	}
	.mpd-related a::after {
		content: " →";
	}
}

/* ---------- 6. Enquiry form ---------- */
.mpd-enquiry {
	scroll-margin-top: 90px;
}
.mpd-enquiry .mpd-form-trust {
	margin-top: 10px;
	font-size: 14px !important;
	color: #444 !important;
}
.mpd-enquiry input[type="submit"] {
	background: var(--mpd-pink) !important;
	border-color: var(--mpd-pink) !important;
	color: #fff !important;
	text-transform: none !important;
	font-weight: 700 !important;
	font-size: 16px !important;
	letter-spacing: 0 !important;
}
.mpd-enquiry label {
	font-size: 15px !important;
	color: var(--mpd-text) !important;
}

/* ---------- 1.1.0: CA page blocks ---------- */
.mpd-btn--wa {
	background: #1fa855;
}
.mpd-btn--wa:hover {
	background: #178a45;
}

/* Answer-first block (service-page template item 2) */
.mpd-answer {
	margin: 0 0 24px;
	padding: 20px 22px;
	border-left: 4px solid var(--mpd-pink);
	background: #fff;
	box-shadow: 0 1px 6px rgba(0, 0, 0, .06);
}
body .content .mpd-answer p {
	margin: 0 0 12px;
}
body .content .mpd-answer .mpd-answer__trust {
	font-size: 15px !important;
	color: #1d5c2e !important;
	font-weight: 700;
}
.mpd-answer__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0 !important;
}
@media (max-width: 600px) {
	.mpd-answer {
		padding: 16px;
	}
	.mpd-answer__ctas .mpd-btn {
		flex: 1 1 100%;
		text-align: center;
		padding: 13px 16px;
	}
}

/* Cards (service / leak-type cards) */
.mpd-cards {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 18px;
	margin: 0 0 28px;
}
.mpd-card {
	padding: 18px 20px;
	border: 1px solid #e3e8ef;
	border-radius: 6px;
	background: #fff;
}
body .content .mpd-card h3 {
	margin: 0 0 8px;
}
body .content .mpd-card p {
	margin: 0 0 10px;
}
body .content .mpd-card .mpd-card__link {
	margin: 0;
}
.mpd-card__link a {
	font-weight: 700;
	color: var(--mpd-blue) !important;
	text-decoration: none;
}

/* Steps (CA step titles already carry their numbers, e.g. "1. Trace the source") */
.mpd-steps {
	list-style: none;
	margin: 0 0 28px !important;
	padding: 0 !important;
	display: grid;
	gap: 14px;
}
@media (min-width: 1001px) {
	.mpd-steps {
		grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	}
}
.mpd-step {
	padding: 16px 18px;
	border: 1px solid #e3e8ef;
	border-top: 3px solid var(--mpd-blue);
	border-radius: 6px;
	background: #f7f9fc;
	list-style: none !important;
}
body .content .mpd-step h3 {
	margin: 0 0 6px;
}
body .content .mpd-step p {
	margin: 0;
}

/* Plain bullet lists inside CA copy */
body .content .wpb_text_column ul.mpd-list {
	margin: 0 0 16px 20px;
	list-style: disc;
}

/* ---------- 1.1.6: homepage layout (CA page 1) ----------
   Every section is a grid row with class mpd-sec: one left edge, one vertical rhythm,
   headings and reading text capped at 760px, card grids use the full grid width. */
.mpd-btn--navy {
	background: var(--mpd-navy);
}
.mpd-btn--navy:hover {
	background: #071d40;
}
.mpd-card {
	display: flex;
	flex-direction: column;
}
body .content .mpd-card .mpd-card__link {
	margin-top: auto;
}

body .content .mpd-sec {
	padding: 64px 0;
}
body .content .mpd-sec--alt {
	background: #f5f8fc;
}
body .content .mpd-sec--flush {
	padding-top: 0;
}
body .content .mpd-sec .vc_col-sm-12 > .vc_column-inner > .wpb_wrapper > .wpb_text_column {
	max-width: none;
}
body .content .mpd-sec .wpb_text_column > .wpb_wrapper > :is(h2, p) {
	max-width: 760px;
}
body .content .mpd-sec h2 {
	margin: 0 0 16px;
	text-align: left !important;
}
body .content .mpd-sec .wpb_text_column > .wpb_wrapper > p {
	margin: 0 0 16px;
}
body .content .mpd-sec :is(.mpd-cards, .mpd-steps, .mpd-logos) {
	margin: 28px 0 0 !important;
}
body .content .mpd-sec .wpb_content_element {
	margin-bottom: 0;
}

/* Hero */
body .content .mpd-sec--hero {
	padding: 48px 0 56px;
	background: linear-gradient(180deg, #eaf2fd 0%, #fff 100%);
}
.mpd-hero {
	display: grid;
	grid-template-columns: minmax(0, 11fr) minmax(0, 10fr);
	gap: 48px;
	align-items: center;
}
body .content .mpd-hero h1 {
	margin: 0 0 16px;
	color: var(--mpd-navy);
}
body .content .mpd-hero p {
	max-width: none;
	margin: 0 0 16px;
}
body .content .mpd-hero .mpd-hero__trust {
	font-size: 15px !important;
	font-weight: 700;
	color: #1d5c2e !important;
}
body .content .mpd-hero .mpd-hero__ctas {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 0;
}
.mpd-hero__ctas .mpd-btn {
	padding: 13px 20px;
}
.mpd-hero__img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 8px;
	box-shadow: 0 8px 24px rgba(11, 42, 91, .15);
}

/* Trust strip right under the hero */
body .content .mpd-sec--trust {
	padding: 0 0 8px;
}
body .content .mpd-sec--trust .mpd-trust {
	margin: 0;
}

/* Why Proseal: icon rows without boxes */
.mpd-cards--feature .mpd-card {
	padding: 0;
	border: 0;
	background: transparent;
}
.mpd-cards--feature .mpd-card__img img {
	display: block;
	width: auto;
	height: 72px;
	margin: 0 0 14px;
}
body .content .mpd-cards--feature .mpd-card h3 {
	margin: 0 0 8px;
}

/* Service cards with a photo */
.mpd-card__img {
	margin: -18px -20px 16px;
}
.mpd-card__img img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 5 / 3;
	object-fit: cover;
	border-radius: 6px 6px 0 0;
}
.mpd-cards--feature .mpd-card__img {
	margin: 0;
}

@media (min-width: 1001px) {
	.mpd-cards--cols-4 {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 32px;
	}
	.mpd-cards--cols-5 {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}
@media (min-width: 1200px) {
	.mpd-cards--cols-5 {
		grid-template-columns: repeat(5, minmax(0, 1fr));
	}
}
@media (min-width: 601px) and (max-width: 1000px) {
	.mpd-cards--cols-4,
	.mpd-cards--cols-5 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 600px) {
	.mpd-cards--cols-4,
	.mpd-cards--cols-5 {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* Numbered steps: badges, 4 across on desktop, stacked on phones */
.mpd-steps--num {
	counter-reset: mpd-step;
}
.mpd-steps--num .mpd-step {
	counter-increment: mpd-step;
	position: relative;
	padding: 64px 20px 20px;
	border-top-width: 1px;
	background: #fff;
}
.mpd-steps--num .mpd-step::before {
	content: counter(mpd-step);
	position: absolute;
	top: 20px;
	left: 20px;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: var(--mpd-blue);
	color: #fff;
	font-weight: 700;
	font-size: 17px;
	line-height: 34px;
	text-align: center;
}
@media (min-width: 1001px) {
	.mpd-steps--num {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 20px;
	}
}
@media (max-width: 1000px) {
	.mpd-steps--num .mpd-step {
		padding: 16px 16px 16px 66px;
	}
	.mpd-steps--num .mpd-step::before {
		top: 50%;
		left: 16px;
		margin-top: -17px;
	}
}

/* Material supplier logos */
.mpd-logos {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 24px 56px;
}
.mpd-logos img {
	display: block;
	width: auto;
	height: 64px;
}
@media (max-width: 600px) {
	.mpd-logos {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 20px;
		justify-items: center;
	}
	.mpd-logos img {
		height: 48px;
		max-width: 100%;
		object-fit: contain;
	}
}

/* Reviews, FAQ, bottom CTA */
body .content .mpd-sec .testimonials_holder {
	margin-top: 28px;
}
body .content .mpd-sec .qode-accordion-holder {
	max-width: 960px;
	margin-top: 24px;
}
body .content .mpd-sec--cta {
	background: #eaf2fd;
}
body .content .mpd-sec--cta .mpd-answer__ctas {
	margin-top: 8px !important;
}
body .content .mpd-sec--cta .mpd-enquiry {
	padding: 24px 28px;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 4px 18px rgba(11, 42, 91, .08);
}

@media (max-width: 1000px) {
	body .content .mpd-sec {
		padding: 40px 0;
	}
	body .content .mpd-sec--flush {
		padding-top: 0;
	}
	body .content .mpd-sec--hero {
		padding: 20px 0 28px;
	}
	body .content .mpd-sec--trust {
		padding: 0 0 4px;
	}
	.mpd-hero {
		grid-template-columns: minmax(0, 1fr);
		gap: 24px;
	}
	.mpd-hero__ctas .mpd-btn {
		flex: 1 1 100%;
		text-align: center;
	}
	body .content .mpd-sec--cta .vc_column_container + .vc_column_container {
		margin-top: 24px;
	}
	body .content .mpd-sec--cta .mpd-enquiry {
		padding: 18px 16px;
	}
	/* Phones: the section already has the 20px page gutter; drop the column's extra 15px. */
	body .content .mpd-sec .vc_column_container > .vc_column-inner {
		padding-left: 0;
		padding-right: 0;
	}
}

/* ---------- 1.1.7: homepage balance ----------
   Section headings and their intro line centred (hero and bottom CTA stay left). */
body .content .mpd-sec:not(.mpd-sec--hero):not(.mpd-sec--cta) .wpb_text_column > .wpb_wrapper > :is(h2, p) {
	margin-left: auto;
	margin-right: auto;
	text-align: center !important;
}

/* Why Proseal: centred icon columns */
.mpd-cards--feature .mpd-card {
	align-items: center;
	text-align: center;
}
body .content .mpd-cards--feature .mpd-card p {
	text-align: center !important;
}
.mpd-cards--feature .mpd-card__img img {
	margin: 0 auto 16px;
}

/* Service cards: same image height, link pinned to the bottom */
.mpd-cards--cols-5 .mpd-card {
	padding-bottom: 20px;
}

/* How We Fix a Leak: four equal cards, number on top, text centred */
.mpd-steps--num .mpd-step {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: flex-start;
	padding: 76px 20px 28px;
	text-align: center;
	border: 1px solid #e3e8ef;
	border-top: 3px solid var(--mpd-blue);
	box-shadow: 0 2px 10px rgba(11, 42, 91, .05);
}
body .content .mpd-steps--num .mpd-step p {
	text-align: center !important;
	font-weight: 700;
	color: var(--mpd-navy) !important;
}
.mpd-steps--num .mpd-step::before {
	top: 24px;
	left: 50%;
	margin-left: -20px;
	width: 40px;
	height: 40px;
	line-height: 40px;
	font-size: 18px;
}
@media (min-width: 1001px) {
	.mpd-steps--num {
		gap: 24px;
	}
}
@media (max-width: 1000px) {
	.mpd-steps--num .mpd-step {
		flex-direction: row;
		padding: 18px 16px 18px 70px;
		text-align: left;
		min-height: 72px;
	}
	body .content .mpd-steps--num .mpd-step p {
		text-align: left !important;
	}
	.mpd-steps--num .mpd-step::before {
		top: 50%;
		left: 16px;
		margin: -20px 0 0;
	}
}

/* Material logos: centred, evenly spaced */
.mpd-logos {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
	justify-items: center;
	max-width: 960px;
	margin-left: auto !important;
	margin-right: auto !important;
}
.mpd-logos img {
	height: 72px;
	max-width: 100%;
	object-fit: contain;
}
@media (max-width: 600px) {
	.mpd-logos {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.mpd-logos img {
		height: 52px;
	}
}

/* Testimonials (Bridge flexslider): the script moves by item width + 30px margin, but the theme CSS has
   no margin, so slides drift and get cut at both edges. Give the margin back and make cards equal height. */
.content .testimonials_c_carousel .slides {
	display: flex !important;
	align-items: stretch;
}
.content .testimonials_c_carousel .slides > li {
	float: none !important;
	display: flex !important;
	flex: 0 0 auto;
	height: auto;
}
/* Bridge uses the 30px margin only when it shows 2-3 items (window 768px and up at load). */
@media (min-width: 768px) {
	.content .testimonials_c_carousel .slides > li {
		margin-right: 30px;
	}
}
.content .testimonials_c_carousel .testimonial_content_inner {
	display: flex;
	flex-direction: column;
	width: 100%;
	height: 100%;
	box-sizing: border-box;
	padding: 28px 28px 24px;
	border: 1px solid #e3e8ef;
	border-radius: 8px;
	background: #fff;
}
.content .testimonials_c_carousel :is(.testimonial_text_holder, .testimonial_text_inner) {
	display: flex;
	flex-direction: column;
	flex: 1 1 auto;
	padding: 0 !important;
	background: transparent !important;
}
body .content .testimonials_c_carousel .testimonial_text_inner p {
	text-align: left !important;
	margin: 0 0 16px;
}
body .content .testimonials_c_carousel .testimonial_text_inner .testimonial_author {
	margin: auto 0 0;
	font-weight: 700 !important;
	color: var(--mpd-navy) !important;
}

/* Bottom CTA: text column centred against the form */
@media (min-width: 1001px) {
	body .content .mpd-sec--cta .section_inner_margin {
		display: flex;
		align-items: center;
	}
	body .content .mpd-sec--cta .section_inner_margin > .vc_column_container:first-child {
		padding-right: 32px;
	}
}

/* ---------- 1.1.8: Materials logos and FAQ list centred in the grid ---------- */
body .content .mpd-sec .mpd-logos,
body .content .mpd-sec .qode-accordion-holder {
	margin-left: auto !important;
	margin-right: auto !important;
}
/* FAQ answers are text columns too: keep them left-aligned (the 1.1.7 heading rule would centre them). */
body .content .mpd-sec .qode-accordion-holder .qode-accordion-content .wpb_text_column > .wpb_wrapper > p {
	max-width: none;
	text-align: left !important;
}

/* ---------- 1.2.0: site-wide layout pass (all edited pages) ---------- */

/* Buttons: the theme's old blue uppercase button and the form submit match the CA primary button. */
body .content a.qbutton,
body .wpcf7 input.wpcf7-submit {
	height: auto !important;
	padding: 13px 22px !important;
	border: 0 !important;
	border-radius: 4px !important;
	background: var(--mpd-pink) !important;
	color: #fff !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
body .content a.qbutton:hover,
body .wpcf7 input.wpcf7-submit:hover {
	background: #c00747 !important;
}

/* Spacing: an H2 that follows text, or opens a row right under another row, gets air above it. */
body .content .wpb_text_column > .wpb_wrapper > h2:not(:first-child) {
	margin-top: 32px;
}
body .content .vc_row:not(.mpd-sec):not(.vc_inner) + .vc_row:not(.mpd-sec):not(.vc_inner):has(.wpb_text_column > .wpb_wrapper > h2:first-child) {
	margin-top: 32px;
}

/* Steps in a content column: two per row instead of four narrow ones. */
@media (min-width: 1001px) {
	.mpd-steps:not(.mpd-steps--num) {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
/* Stacked numbered steps (badge left), e.g. Contact "What Happens Next". */
.mpd-steps--num.mpd-steps--stack {
	grid-template-columns: minmax(0, 1fr) !important;
	gap: 12px;
}
.mpd-steps--num.mpd-steps--stack .mpd-step {
	flex-direction: row;
	align-items: center;
	padding: 16px 18px 16px 70px;
	text-align: left;
	min-height: 72px;
}
body .content .mpd-steps--num.mpd-steps--stack .mpd-step p {
	text-align: left !important;
}
.mpd-steps--num.mpd-steps--stack .mpd-step::before {
	top: 50%;
	left: 16px;
	margin: -20px 0 0;
}

/* FAQ list sits centred under its centred heading. */
body .content .qode-accordion-holder {
	margin-left: auto;
	margin-right: auto;
}

/* Small boxes inside the content column next to the sidebar: 2 per row instead of 4-5 narrow ones
   (PU "Causes for Concrete Cracks" / "How Our PU Grouting Works" are .part-inner grids in the copy). */
@media (min-width: 769px) {
	body .content [class*="two_columns_"] .column1 .vc_inner .vc_col-sm-3 {
		width: 50%;
	}
	body .content [class*="two_columns_"] .column1 .vc_inner .vc_col-sm-3:nth-of-type(2n+1) {
		clear: left;
	}
	body .content [class*="two_columns_"] .column1 .part-inner {
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 14px !important;
	}
}
body .content .part-inner > .part-wrap {
	width: auto !important;
	max-width: none !important;
}
@media (max-width: 768px) {
	body .content .part-inner {
		grid-template-columns: minmax(0, 1fr) !important;
		gap: 12px !important;
	}
}

/* Call-to-action banners on a photo (service pages): readable white text on a navy tint. */
body .content .vc_row:not(.mpd-sec):has(a.qbutton) {
	padding: 36px 32px !important;
	border-radius: 8px;
	box-shadow: inset 0 0 0 2000px rgba(11, 42, 91, .62);
}
body .content .vc_row:not(.mpd-sec):has(a.qbutton) :is(h1, h2, h3, h4, h5, h6, p, li, span) {
	color: #fff !important;
	text-align: center !important;
}
@media (max-width: 1000px) {
	body .content .vc_row:not(.mpd-sec):has(a.qbutton) {
		padding: 28px 18px !important;
		border-radius: 0;
	}
}

/* Enquiry form as a card wherever it sits (home CTA keeps its own card). */
body .content .wpcf7 {
	padding: 22px 24px;
	border: 1px solid #e3e8ef;
	border-radius: 8px;
	background: #f7f9fc;
}
body .content .mpd-sec--cta .wpcf7 {
	padding: 0;
	border: 0;
	background: transparent;
}
@media (max-width: 600px) {
	body .content .wpcf7 {
		padding: 16px 14px;
	}
}

/* Image grids ("Our Works"): three thumbnails per row on phones instead of one 300px photo each. */
@media (max-width: 767px) {
	body .content .gallery_holder ul.gallery_inner {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 6px;
		margin: 0 !important;
	}
	body .content .gallery_holder ul.gallery_inner li {
		float: none !important;
		width: auto !important;
		margin: 0 !important;
	}
	body .content .gallery_holder ul.gallery_inner li img {
		display: block;
		width: 100%;
		height: auto;
		aspect-ratio: 1;
		object-fit: cover;
	}
}

/* Our Certifications: the table centred, every cell left-aligned and top-aligned. */
body.page-id-2023 .content .wpb_text_column {
	max-width: 960px;
	margin-left: auto;
	margin-right: auto;
}
body.page-id-2023 .content table {
	width: 100%;
}
body.page-id-2023 .content table :is(td, th) {
	text-align: left !important;
	vertical-align: top;
	padding: 14px 12px;
	border-bottom: 1px solid #e3e8ef;
}
