/* RestoreAll: page-scoped service cards and category dialog. */
.ra-service-root,
.ra-service-root * {
	box-sizing: border-box;
}

.ra-service-root {
	display: block !important;
	width: 100% !important;
}
.ra-service-root > .ra-service-booking-layout {
	display: grid !important;
	grid-template-columns: minmax(190px, 0.78fr) minmax(0, 1.34fr) minmax(260px, 1fr);
	align-items: start;
	gap: clamp(18px, 2.4vw, 32px);
	width: 100%;
	max-width: 1400px;
	margin: 0 auto;
}
.ra-service-catalogue,
.ra-service-selector,
.ra-service-sidebar {
	min-width: 0;
}
.ra-service-selector {
	align-self: start;
	padding: 16px;
	border: 1px solid #d8dfd4;
	border-radius: 16px;
	background: #fffdfa;
}
.ra-service-selector__label {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 12px !important;
	color: #315d4f;
	font-size: 0.92rem;
}
.ra-service-selector__label::after {
	content: "";
	flex: 1 1 auto;
	border-top: 1px solid #d8dfd4;
}
.ra-service-selector__list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.ra-service-selector__link {
	box-sizing: border-box;
	display: grid;
	grid-template-columns: 48px minmax(0, 1fr);
	align-items: center;
	gap: 10px;
	min-height: 64px;
	padding: 8px;
	border: 1px solid transparent;
	border-radius: 12px;
	color: #21463b;
	text-decoration: none;
	line-height: 1.35;
	transition: background-color 150ms ease, border-color 150ms ease;
}
.ra-service-selector__link:hover,
.ra-service-selector__link:focus-visible,
.ra-service-selector__link[aria-current="location"] {
	border-color: #b9cbbb;
	background: #e8eee7;
	color: #174f40;
}
.ra-service-selector__link img,
.ra-service-selector__placeholder {
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	margin: 0;
	border-radius: 10px;
	background: #e8eee7;
	color: #174f40;
	font-weight: 700;
	object-fit: cover;
}
.ra-service-selector__link-label {
	min-width: 0;
	font-size: 0.94rem;
	font-weight: 600;
	overflow-wrap: anywhere;
}
.ra-service-catalogue {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
.ra-service-catalogue__header {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
}
.ra-service-catalogue__header > * {
	max-width: 100%;
}
.ra-service-catalogue__header h1 {
	margin-block: 4px 2px;
}
.ra-service-catalogue__hero,
.ra-service-catalogue__hero-wrap img {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	max-height: 360px;
	min-height: 0 !important;
	aspect-ratio: 16 / 7;
	object-fit: cover;
	object-position: center;
	border-radius: 18px;
}
.ra-service-catalogue__hero-wrap {
	width: 100%;
	min-width: 0;
}
.ra-service-group {
	box-sizing: border-box;
	width: 100%;
	min-width: 0;
	margin: 0 !important;
	padding: clamp(14px, 1.5vw, 20px) !important;
	border: 1px solid #d8dfd4 !important;
	border-radius: 18px !important;
	background: #fffdfa !important;
}
.ra-service-group__heading {
	margin: 0 0 14px !important;
	color: #174f40;
	font-size: clamp(1.15rem, 1.8vw, 1.4rem);
	line-height: 1.3;
	scroll-margin-top: 24px;
}
.ra-service-sidebar {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 16px;
}
.ra-service-sidebar .ra-service-price-panel,
.ra-service-sidebar .ra-service-group-links,
.ra-service-sidebar .ra-service-contact-panel {
	box-sizing: border-box;
	width: 100% !important;
	min-width: 0;
	margin: 0 !important;
}
.ra-service-sidebar .ra-service-price-panel {
	padding: 16px !important;
	border-radius: 16px !important;
}
.ra-service-sidebar .ra-service-group-links {
	padding: 16px !important;
	border: 1px solid #d8dfd4 !important;
	border-radius: 16px !important;
	background: #fffdfa !important;
}
.ra-service-sidebar .ra-service-group-links a {
	box-sizing: border-box;
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	width: 100% !important;
	min-height: 48px;
	margin: 6px 0 0 !important;
	padding: 10px 12px !important;
	border-radius: 12px !important;
	text-align: left;
	line-height: 1.35;
	text-decoration: none;
}
.ra-service-sidebar .ra-service-contact-panel {
	align-self: start;
	border-radius: 18px !important;
}
.ra-service-sidebar .ra-service-contact-panel a[href*="wa.me"] {
	min-height: 48px;
}
.ra-service-group-links h2 {
	margin-block: 0 10px;
}
.ra-service-card {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(160px, 36%);
	grid-template-areas: "content photo";
	align-items: stretch;
	column-gap: clamp(16px, 2vw, 26px);
	row-gap: 14px;
	min-width: 0;
	box-sizing: border-box;
	padding: clamp(14px, 2vw, 22px) !important;
	border: 1px solid #d8dfd4 !important;
	border-radius: 18px !important;
	background: #fffdfa !important;
	box-shadow: 0 8px 24px rgba(22, 72, 59, 0.07);
}
.ra-service-card__content {
	grid-area: content;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start;
	gap: 10px;
	min-width: 0;
}
.ra-service-card__photo {
	grid-area: photo;
	position: static !important;
	inset: auto !important;
	display: block !important;
	width: 100% !important;
	aspect-ratio: 4 / 3;
	max-width: none !important;
	height: auto !important;
	min-width: 0 !important;
	min-height: 0 !important;
	margin: 0 !important;
	align-self: start;
	overflow: hidden;
	border-radius: 14px;
}
img.ra-service-card__photo,
.ra-service-card__photo img {
	display: block !important;
	width: 100% !important;
	max-width: none !important;
	height: auto !important;
	min-height: 0 !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
	border-radius: 14px;
}
.ra-service-card__description {
	margin: 0 !important;
	color: #3f5148;
	font-size: 0.96em;
	line-height: 1.55;
}
.ra-service-card__title {
	margin: 0 !important;
	color: #203d34;
	font-size: 1.06rem;
	font-weight: 700;
	line-height: 1.35;
}
.ra-service-card__price {
	margin: 0 !important;
	color: #174f40;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.4;
}
.ra-service-group__description {
	margin: -4px 0 12px !important;
	color: #52675d;
	font-size: 0.92rem;
	line-height: 1.5;
}
.ra-service-card__details {
	margin: 2px 0 0 !important;
	color: #315d4f;
	font-size: 0.94em;
}
.ra-service-card__details summary {
	cursor: pointer;
	font-weight: 600;
	text-decoration: underline;
	text-underline-offset: 3px;
}
.ra-service-card__details p {
	margin: 8px 0 0 !important;
	line-height: 1.5;
}
.ra-service-card__cta {
	margin-top: 4px;
}
.ra-service-card__placeholder {
	display: none !important;
}
.ra-service-card--no-photo {
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas: "content";
}
.ra-service-category-dialog-backdrop {
	position: fixed;
	inset: 0;
	z-index: 999999;
	display: grid;
	place-items: center;
	padding: 24px;
	background: rgba(21, 37, 31, 0.68);
}
.ra-service-category-dialog {
	position: relative;
	display: grid;
	box-sizing: border-box;
	grid-template-columns: minmax(250px, 34%) minmax(0, 1fr);
	gap: 24px;
	width: min(1060px, calc(100vw - 48px));
	max-height: min(86vh, 820px);
	overflow: hidden;
	padding: 28px;
	border: 1px solid #d8dfd4;
	border-radius: 24px;
	background: #fffdfa;
	color: #203d33;
	box-shadow: 0 24px 80px rgba(0, 0, 0, 0.24);
}
.ra-service-category-dialog--no-feature {
	grid-template-columns: minmax(0, 1fr);
}
.ra-service-category-dialog__feature {
	width: 100%;
	height: 100%;
	min-height: 260px;
	max-height: 560px;
	object-fit: cover;
	object-position: center;
	border-radius: 18px;
	background: #edf1e9;
}
.ra-service-category-dialog__main {
	min-width: 0;
	max-height: calc(86vh - 56px);
	overflow: auto;
	padding: 2px 4px 8px 0;
}
.ra-service-category-dialog__close {
	position: sticky;
	top: 0;
	z-index: 2;
	float: right;
	display: grid;
	place-items: center;
	width: 42px;
	height: 42px;
	margin: -2px -2px 4px 12px;
	border: 1px solid #d8dfd4;
	border-radius: 50%;
	background: #fff;
	color: #174f40;
	font: inherit;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
}
.ra-service-category-dialog__title {
	margin: 8px 0 8px;
	color: #173f34;
	font-family: inherit;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	line-height: 1.15;
}
.ra-service-category-dialog__intro {
	margin: 0 0 18px;
	color: #53665d;
	line-height: 1.55;
}
.ra-service-category-dialog__group {
	margin: 20px 0 0;
}
.ra-service-category-dialog__group-title {
	margin: 0 0 10px;
	color: #174f40;
	font-size: 1.05rem;
}
.ra-service-category-dialog__tiles {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
}
.ra-service-category-dialog__tile {
	display: flex;
	align-items: center;
	gap: 11px;
	min-width: 0;
	padding: 10px;
	border: 1px solid #d8dfd4;
	border-radius: 14px;
	background: #fff;
	color: #203d33;
	text-decoration: none;
	line-height: 1.35;
	transition: border-color 150ms ease, background-color 150ms ease, transform 150ms ease;
}
.ra-service-category-dialog__tile:hover,
.ra-service-category-dialog__tile:focus-visible {
	border-color: #b86143;
	background: #f8f5ed;
	color: #173f34;
	transform: translateY(-1px);
}
.ra-service-category-dialog__tile img {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 10px;
	background: #edf1e9;
}
.ra-service-category-dialog__tile-label {
	min-width: 0;
	overflow-wrap: anywhere;
	font-weight: 600;
}
.ra-service-category-dialog__empty-image {
	flex: 0 0 48px;
	width: 48px;
	height: 48px;
	border-radius: 10px;
	background: #e8eee7;
}
@media (max-width: 1024px) and (min-width: 768px) {
	.ra-service-root > .ra-service-booking-layout {
		grid-template-columns: minmax(180px, 0.38fr) minmax(0, 1fr);
		gap: 16px;
	}
	.ra-service-sidebar {
		grid-column: 1 / -1;
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		align-items: start;
	}
	.ra-service-sidebar .ra-service-contact-panel {
		grid-column: 1 / -1;
	}
	.ra-service-selector {
		position: sticky;
		top: 16px;
	}
	.ra-service-selector__link {
		grid-template-columns: 42px minmax(0, 1fr);
		gap: 8px;
		min-height: 58px;
		padding: 6px;
	}
	.ra-service-selector__link img,
	.ra-service-selector__placeholder {
		width: 42px;
		height: 42px;
	}
	.ra-service-catalogue {
		gap: 14px;
	}
	.ra-service-card {
		grid-template-columns: minmax(0, 1fr) minmax(150px, 36%);
		column-gap: 16px;
	}
	.ra-service-category-dialog {
		grid-template-columns: minmax(190px, 32%) minmax(0, 1fr);
		gap: 18px;
		padding: 22px;
	}
	.ra-service-category-dialog__tiles {
		grid-template-columns: minmax(0, 1fr);
	}
}
@media (min-width: 1025px) and (max-width: 1120px) {
	.ra-service-root > .ra-service-booking-layout {
		grid-template-columns: minmax(180px, 0.72fr) minmax(0, 1.2fr) minmax(240px, 0.95fr);
		gap: 16px;
	}
	.ra-service-selector {
		padding: 12px;
	}
	.ra-service-card {
		grid-template-columns: minmax(0, 1fr) minmax(150px, 36%);
		column-gap: 14px;
	}
}
@media (max-width: 1024px) and (min-width: 901px) {
	.ra-service-root > .ra-service-booking-layout {
		grid-template-columns: minmax(180px, 0.72fr) minmax(0, 1.2fr) minmax(230px, 0.95fr);
	}
	.ra-service-sidebar {
		display: flex;
		grid-column: auto;
	}
	.ra-service-sidebar .ra-service-contact-panel {
		grid-column: auto;
	}
}
@media (max-width: 767px) {
	.ra-service-root > .ra-service-booking-layout {
		display: flex !important;
		flex-direction: column;
		gap: 18px;
	}
	.ra-service-catalogue {
		width: 100%;
		gap: 14px;
	}
	.ra-service-selector {
		position: static;
		width: 100%;
		padding: 12px;
		border-radius: 14px;
	}
	.ra-service-selector__label {
		margin-bottom: 8px !important;
	}
	.ra-service-selector__list {
		flex-direction: row;
		gap: 8px;
		overflow-x: auto;
		overscroll-behavior-inline: contain;
		padding-bottom: 2px;
		scroll-snap-type: x proximity;
	}
	.ra-service-selector__link {
		flex: 0 0 178px;
		grid-template-columns: 40px minmax(0, 1fr);
		gap: 8px;
		min-height: 58px;
		padding: 6px;
		scroll-snap-align: start;
	}
	.ra-service-selector__link img,
	.ra-service-selector__placeholder {
		width: 40px;
		height: 40px;
	}
	.ra-service-selector__link-label {
		font-size: 0.88rem;
	}
	.ra-service-catalogue__header {
		gap: 8px;
	}
	.ra-service-catalogue__hero,
	.ra-service-catalogue__hero-wrap img {
		max-height: 240px;
		aspect-ratio: 16 / 9;
		border-radius: 14px;
	}
	.ra-service-group {
		padding: 12px !important;
		border-radius: 15px !important;
	}
	.ra-service-group__heading {
		margin-bottom: 10px !important;
	}
	.ra-service-sidebar {
		width: 100%;
		gap: 12px;
	}
	.ra-service-sidebar .ra-service-price-panel,
	.ra-service-sidebar .ra-service-group-links,
	.ra-service-sidebar .ra-service-contact-panel {
		padding: 14px !important;
		border-radius: 14px !important;
	}
	.ra-service-card-main-column,
	.ra-service-card-group {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	.ra-service-card,
	.ra-service-card--no-photo {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "content" "photo";
		gap: 14px;
		padding: 14px !important;
		border-radius: 16px !important;
	}
	.ra-service-card--no-photo {
		grid-template-areas: "content";
	}
	.ra-service-card__photo {
		width: 100% !important;
		max-width: 100% !important;
		aspect-ratio: 4 / 3;
	}
	img.ra-service-card__photo,
	.ra-service-card__photo img {
		height: auto !important;
		aspect-ratio: 4 / 3;
	}
	.ra-service-category-dialog-backdrop {
		padding: 10px;
		place-items: center;
	}
	.ra-service-category-dialog,
	.ra-service-category-dialog--no-feature {
		display: flex;
		flex-direction: column;
		gap: 12px;
		width: min(100%, 520px);
		max-height: calc(100dvh - 20px);
		padding: 14px;
		border-radius: 20px;
	}
	.ra-service-category-dialog__feature {
		flex: 0 0 auto;
		width: 100%;
		height: auto;
		min-height: 0;
		max-height: 190px;
		aspect-ratio: 16 / 7;
	}
	.ra-service-category-dialog__main {
		flex: 1 1 auto;
		min-height: 0;
		max-height: none;
		overflow: auto;
		padding: 0 2px 8px 0;
	}
	.ra-service-category-dialog__close {
		position: sticky;
		top: 0;
		margin: 0 0 0 auto;
	}
	.ra-service-category-dialog__title {
		margin-top: 2px;
	}
	.ra-service-category-dialog__tiles {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 8px;
	}
	.ra-service-category-dialog__tile {
		gap: 8px;
		padding: 8px;
		font-size: 0.93em;
	}
	.ra-service-category-dialog__tile img,
	.ra-service-category-dialog__empty-image {
		flex-basis: 40px;
		width: 40px;
		height: 40px;
	}
}
@media (prefers-reduced-motion: reduce) {
	.ra-service-category-dialog__tile {
		transition: none;
	}
}



/* RestoreAll v1.0.4 scoped presentation update: compact cards and persistent service sidebars. */
.ra-service-card {
	grid-template-columns: minmax(0, 1fr) minmax(120px, 180px);
	column-gap: clamp(14px, 1.6vw, 22px);
	padding: clamp(14px, 1.5vw, 18px) !important;
}
.ra-service-card__title {
	font-size: clamp(1.125rem, 1.45vw, 1.375rem);
	font-weight: 700;
}
.ra-service-card__price {
	font-size: clamp(1rem, 1.15vw, 1.125rem);
	font-weight: 700;
}
.ra-service-card__description {
	font-size: 1rem;
	line-height: 1.5;
}
.ra-service-card__photo {
	width: 100% !important;
	max-width: 180px !important;
	margin-left: auto !important;
	align-self: start;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
}
.ra-service-card__photo img,
.ra-service-card__photo-image,
img.ra-service-card__photo {
	display: block !important;
	width: 100% !important;
	max-width: 100% !important;
	height: auto !important;
	min-height: 0 !important;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	object-position: center;
}
.ra-service-card__photo--placeholder {
	border: 1px solid #d8dfd4;
	background: #e8eee7;
}
@media (min-width: 901px) {
	.ra-service-selector,
	.ra-service-sidebar {
		position: sticky !important;
		top: 20px;
		align-self: start;
		max-height: calc(100vh - 40px);
		overflow-y: auto;
		overscroll-behavior: contain;
	}
}
@media (max-width: 767px) {
	.ra-service-card {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas: "content" "photo";
	}
	.ra-service-card--no-photo {
		grid-template-areas: "content";
	}
	.ra-service-card__photo,
	img.ra-service-card__photo {
		width: 100% !important;
		max-width: 160px !important;
		justify-self: end;
	}
}

/* Match the generated Electrical and Plumbing groups/cards to the static Elementor service pages. */
.ra-service-group--generated {
	display: flex;
	flex-direction: column;
	gap: 10.4px;
}
.ra-service-group--generated .ra-service-group__heading {
	margin: 0 0 14px !important;
	color: #174b3e;
	font-family: "DM Serif Display", serif;
	font-size: 21.12px;
	font-weight: 400;
	line-height: 1.15;
}
.ra-service-group--generated > .ra-service-group__description {
	display: none !important;
}
.ra-service-card--generated {
	column-gap: 13.6px;
}
.ra-service-card--generated .ra-service-card__title {
	color: #23312b;
	font-family: "DM Sans", sans-serif;
	font-size: 15.68px;
	font-weight: 600;
	line-height: 1.55;
}
.ra-service-card--generated .ra-service-card__price {
	font-family: Manrope, sans-serif;
	font-size: 14.72px;
	font-weight: 600;
	line-height: 1.4;
}
.ra-service-card--generated .ra-service-card__description {
	font-family: Manrope, sans-serif;
	font-size: 16px;
	font-weight: 300;
	line-height: 24px;
}
.ra-service-card--generated .ra-service-card__cta {
	box-sizing: border-box;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	align-self: flex-start;
	width: max-content;
	max-width: 100%;
	min-height: 37.8px;
	margin-top: 4px;
	padding: 8.8px 13.6px;
	border: 0;
	border-radius: 999px;
	background: #174b3e;
	color: #fff;
	font-family: Manrope, sans-serif;
	font-size: 14.4px;
	font-weight: 600;
	line-height: 20.16px;
	text-align: center;
	text-decoration: none !important;
	white-space: normal;
}
.ra-service-card--generated .ra-service-card__cta:hover {
	background: #103d33;
	color: #fff;
}
.ra-service-card--generated .ra-service-card__cta:focus-visible {
	outline: 2px solid #bf6747;
	outline-offset: 3px;
}
@media (max-width: 767px) {
	.ra-service-group--generated {
		padding: 12px 0 !important;
	}
}

/* RestoreAll Electrical (151) + Plumbing (152) generated group-enquiry sidebar only. */
body.page-id-151 .ra-service-root .ra-service-sidebar,
body.page-id-152 .ra-service-root .ra-service-sidebar {
	max-height: none !important;
	overflow: visible !important;
}

body.page-id-151 .ra-service-root .ra-service-sidebar .ra-service-group-links h2,
body.page-id-152 .ra-service-root .ra-service-sidebar .ra-service-group-links h2 {
	margin: 0 0 0.65rem !important;
	color: #174b3e !important;
	font-family: "DM Serif Display", Georgia, serif !important;
	font-size: 1.15rem !important;
	font-weight: 400 !important;
	line-height: 1.15 !important;
}

body.page-id-151 .ra-service-root .ra-service-sidebar .ra-service-group-links > a,
body.page-id-152 .ra-service-root .ra-service-sidebar .ra-service-group-links > a {
	box-sizing: border-box !important;
	color: #174b3e !important;
	background: #f5f1e8 !important;
	border: 0.8px solid #d9ded5 !important;
	border-radius: 12px !important;
	font-family: Manrope, sans-serif !important;
	font-size: 0.88rem !important;
	font-weight: 300 !important;
	line-height: 1.35 !important;
	text-align: left !important;
	text-decoration: none !important;
}

/* RestoreAll service cards: mobile-only internal order and full-width photo. */
@media (max-width: 767px) {
	.ra-service-root .ra-service-card {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
	}

	.ra-service-root .ra-service-card > .ra-service-card__content {
		display: contents !important;
	}

	.ra-service-root .ra-service-card > .ra-service-card__content > :first-child {
		order: 1 !important;
	}

	.ra-service-root .ra-service-card > .ra-service-card__photo {
		order: 2 !important;
		width: 100% !important;
		max-width: 100% !important;
		margin: 0 !important;
		align-self: stretch !important;
	}

	.ra-service-root .ra-service-card > .ra-service-card__photo img,
	.ra-service-root .ra-service-card > img.ra-service-card__photo {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		height: auto !important;
	}

	.ra-service-root .ra-service-card > .ra-service-card__content > .ra-service-card__price {
		order: 3 !important;
	}

	.ra-service-root .ra-service-card > .ra-service-card__content > .ra-service-card__description {
		order: 4 !important;
	}

	.ra-service-root .ra-service-card > .ra-service-card__content > .ra-service-card__cta {
		order: 5 !important;
		align-self: flex-start !important;
	}
}
