/**
 * ESI Fire Safety
 * Global design tokens and utilities.
 */


/* =========================================================
   Design tokens
   ========================================================= */

:root {

	/* Brand colours */
	--esi-red: #e2101b;
	--esi-red-dark: #b30d16;

	/* Neutral colours */
	--esi-ink: #121212;
	--esi-body: #3f3f3a;
	--esi-muted: #6e6e67;
	--esi-white: #ffffff;
	--esi-warm: #f6f4ef;
	--esi-warm-dark: #efede6;
	--esi-border: #ddd9d0;
	--esi-black: #0c0c0c;

	/* Supporting colours */
	--esi-amber: #ffb000;
	--esi-whatsapp: #14824a;

	/* Typography */
	--esi-font-heading: "Roboto Slab", Georgia, serif;
	--esi-font-body: "Raleway", Arial, sans-serif;

	/* Layout */
	--esi-content-width: 1180px;
	--esi-gutter: 24px;

	/* UI */
	--esi-radius-sm: 6px;
	--esi-radius-md: 10px;
	--esi-radius-lg: 14px;

	--esi-transition-fast: 160ms ease;
	--esi-transition: 220ms ease;

	--esi-shadow-menu:
		0 16px 40px rgba(18, 18, 18, 0.10);
}


/* =========================================================
   Basic theme foundation
   ========================================================= */

html {
	-webkit-text-size-adjust: 100%;
}

body {
	margin: 0;
	color: var(--esi-body);
	background: var(--esi-white);
	font-family: var(--esi-font-body);
}


/* =========================================================
   Accessibility
   ========================================================= */

.esi-skip-link {
	position: absolute;
	top: -100px;
	left: 16px;
	z-index: 100000;

	display: block;
	width: auto;
	height: auto;

	padding: 12px 18px;

	color: var(--esi-white);
	background: var(--esi-black);

	font-family: var(--esi-font-body);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	text-decoration: none;

	border-radius: var(--esi-radius-sm);

	clip: auto;
	clip-path: none;
	overflow: visible;
}

.esi-skip-link:focus {
	top: 16px;
	outline: 3px solid var(--esi-red);
	outline-offset: 3px;
}


/* =========================================================
   Arrow links
   ========================================================= */

.esi-arrow-link::after {
	content: "→";
	display: inline-block;
	margin-left: 8px;
	font-size: 1.1em;
	line-height: 1;
	transition: transform var(--esi-transition);
}

.esi-arrow-link:hover::after,
.esi-arrow-link:focus-visible::after {
	transform: translateX(4px);
}

:root {
	--esi-anchor-offset: 40px;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--esi-anchor-offset);
}

[id] {
	scroll-margin-top: var(--esi-anchor-offset);
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}
}

@media (max-width: 767px) {
	:root {
		--esi-anchor-offset: 85px;
	}
}

/* =========================================================
   Homepage hero decoration
   ========================================================= */

.esi-hero {
	position: relative;
	overflow: hidden;
}

.esi-hero::before {
	content: "" !important;

	position: absolute !important;
	inset: 0 auto 0 0 !important;

	width: 6px !important;

	background: var(--esi-red) !important;

	pointer-events: none !important;
}

.esi-hero::after {
	content: "";

	position: absolute;

	right: -120px;
	top: -100px;

	width: 360px;
	height: 360px;

	border-radius: 50%;

	background:
		radial-gradient(
			circle,
			rgba(226, 16, 27, 0.11),
			transparent 68%
		);

	pointer-events: none;
}

.esi-btn-arrow::after {
	content: "→";

	display: inline-block;

	margin-left: 2px;

	font-size: 1.08em;
	line-height: 1;

	transition:
		transform var(--esi-transition);
}

.esi-btn-arrow:hover::after,
.esi-btn-arrow:focus-visible::after {
	transform: translateX(4px);
}

.esi-hero-trust-item
+ .esi-hero-trust-item {

	border-left:
		1px solid var(--esi-border);

	padding-left: 18px;
}

.esi-hero-card::after {
	content: "";

	position: absolute;
	inset: 0;

	background:
		linear-gradient(
			180deg,
			rgba(0, 0, 0, 0.04) 55%,
			rgba(0, 0, 0, 0.22)
		);

	pointer-events: none;

	z-index: 1;
}

/* =========================================================
   Credentials strip
   ========================================================= */

.esi-credential-item {
	border-left:
		1px solid var(--esi-border);
}

.esi-credential-item:first-child {
	border-left: 0;
}

.esi-credential-logo {
	filter: grayscale(1);

	opacity: 0.72;
}

.esi-credential-item:hover .esi-credential-logo {
	filter: none;
	opacity: 1;
}

.esi-image-tag {
	top: auto;
	right: auto;
	bottom: 16px;
	left: 16px;
	z-index: 2;
}

.esi-primary-services .esi-service-card {
	transition:
		transform var(--esi-transition-fast),
		box-shadow var(--esi-transition-fast);
	border-top-color: var(--esi-red) !important;
}

.esi-primary-services .esi-service-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 18px 34px rgba(18, 18, 18, 0.10);
}

.esi-other-services .esi-service-link {
	transition:
		background-color var(--esi-transition-fast),
		border-color var(--esi-transition-fast);
}

.esi-other-services .esi-service-link:hover {
	background: var(--esi-warm);
	border-color: #ccc7bb;
}

.esi-service-links .esi-icon-badge.esi-icon-badge-sm {
	width: 44px;
	height: 44px;
	min-width: 44px;
	min-height: 44px;

	border-radius: 12px;
}

.esi-service-links .esi-icon-badge.esi-icon-badge-sm svg,
.esi-service-links .esi-icon-badge.esi-icon-badge-sm img {
	width: 21px;
	height: 21px;
}

.esi-audience-grid .esi-audience-card {
	transition:
		border-color var(--esi-transition-fast),
		box-shadow var(--esi-transition-fast);
}

.esi-audience-grid .esi-audience-card:hover {
	border-color: #ccc7bb;
	box-shadow:
		0 15px 32px rgba(15, 15, 15, .075);
}

/* =========================================================
   Why ESI
   ========================================================= */

.esi-portrait-panel {
	position: relative;
}

.esi-portrait-panel::before {
	content: "";

	position: absolute;
	inset: 18px;

	border:
		1px solid rgba(255, 255, 255, 0.08);

	border-radius: 12px;

	pointer-events: none;
}


.esi-eyebrow-dark {
	color: #ff737a;
}


.esi-heading-light {
	color: var(--esi-white);
}


.esi-why-esi-text p {
	color:
		rgba(255, 255, 255, 0.76);
}


.esi-portrait-image {
	display: block;

	width: 100%;
	height: 100%;

	object-fit: contain;
	object-position: center center;
}

/* =========================================================
   What to expect / process
   ========================================================= */

.esi-process .esi-wrap .esi-process-grid {
	position: relative;
}


.esi-process .esi-wrap .esi-process-grid::before {
	content: "";

	position: absolute;

	left: 0;
	right: 0;
	top: 0;

	height: 1px;

	background:
		var(--esi-border);

	pointer-events: none;
}

.esi-process .esi-wrap .esi-process-step::before {
	content: "";

	position: absolute;

	top: -34px;
	left: 0;

	width: 14px;
	height: 14px;

	border-radius: 50%;

	background:
		var(--esi-red);

	box-shadow:
		0 0 0 6px var(--esi-white);

	pointer-events: none;
}

.esi-btn.esi-btn-amber:hover{
	background: #EA9F00;
	color: var(--esi-ink);
}

.esi-resources-showcase .esi-mini-label.esi-resource-feature__label{
	inset-block-start: auto;
	inset-inline-start: 16px;
}

.esi-testimonials .esi-wrap .esi-testimonial-card{
	border-left-color: var(--esi-red);
}

.esi-faq-accordion .e-n-accordion-item:last-child{
	border-bottom: 1px solid var(--esi-border) !important;
}

/* =========================================================
   REQUEST A QUOTATION / CONTACT FORM 7
   ========================================================= */


/* ---------------------------------------------------------
   Form card
   --------------------------------------------------------- */

.esi-form-card {
	width: 100%;

	padding: 40px;

	background:
		var(--esi-white, #ffffff);

	border:
		1px solid var(--esi-border, #ddd9d0);

	border-top:
		4px solid var(--esi-red, #e2101b);

	border-radius:
		10px;

	box-shadow:
		0 16px 36px rgba(18, 18, 18, 0.08);
}


/* Keep CF7 from introducing unexpected width issues */

.esi-form-card *,
.esi-form-card *::before,
.esi-form-card *::after {
	box-sizing: border-box;
}


/* ---------------------------------------------------------
   CF7 wrapper / form
   --------------------------------------------------------- */

.esi-form-card .wpcf7,
.esi-form-card .wpcf7-form {
	width: 100%;
	margin: 0;
	padding: 0;
}


/* Remove unwanted paragraph spacing if CF7 inserts <p> */

.esi-form-card .wpcf7-form > p {
	margin: 0;
}


/* CF7 field wrapper */

.esi-form-card .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}


/* ---------------------------------------------------------
   Heading above shortcode
   --------------------------------------------------------- */

/*
If these are Elementor Atomic elements outside the CF7 shortcode,
you can keep your Atomic settings instead.

These selectors are here in case you use the classes directly.
*/

.esi-form-title {
	margin:
		0 0 6px;

	color:
		var(--esi-ink, #121212);

	font-family:
		var(--esi-font-heading, "Roboto Slab", Georgia, serif);

	font-size:
		29px;

	font-weight:
		500;

	line-height:
		1.2;

	letter-spacing:
		-0.015em;
}


.esi-form-intro {
	margin:
		0 0 27px;

	color:
		var(--esi-muted, #6e6e67);

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		14px;

	font-weight:
		400;

	line-height:
		1.6;
}


/* ---------------------------------------------------------
   Form sections
   --------------------------------------------------------- */

.esi-form-group {
	width: 100%;
}


.esi-form-group + .esi-form-group {
	margin-top:
		30px;

	padding-top:
		29px;

	border-top:
		1px solid var(--esi-border, #ddd9d0);
}


/* YOUR DETAILS / ABOUT YOUR ENQUIRY */

.esi-form-section-title {
	margin:
		0 0 16px;

	color:
		var(--esi-red, #e2101b);

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		11px;

	font-weight:
		700;

	line-height:
		1.2;

	letter-spacing:
		0.09em;

	text-transform:
		uppercase;
}


/* ---------------------------------------------------------
   Two-column rows
   --------------------------------------------------------- */

.esi-form-row {
	display:
		grid;

	grid-template-columns:
		repeat(2, minmax(0, 1fr));

	gap:
		15px;

	width:
		100%;
}


/* ---------------------------------------------------------
   Individual fields
   --------------------------------------------------------- */

.esi-field {
	width:
		100%;

	min-width:
		0;

	margin-bottom:
		17px;
}


/* ---------------------------------------------------------
   Labels
   --------------------------------------------------------- */

.esi-field label {
	display:
		block;

	margin:
		0;

	color:
		var(--esi-ink, #121212);

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		13px;

	font-weight:
		700;

	line-height:
		1.45;
}


/*
The CF7 field immediately follows the text inside the label,
so this creates the required 7px spacing.
*/

.esi-field label .wpcf7-form-control-wrap {
	margin-top:
		7px;
}


/* ---------------------------------------------------------
   Inputs / email / tel / select / textarea
   --------------------------------------------------------- */

.esi-form-card input[type="text"],
.esi-form-card input[type="email"],
.esi-form-card input[type="tel"],
.esi-form-card input[type="url"],
.esi-form-card input[type="number"],
.esi-form-card input[type="date"],
.esi-form-card select,
.esi-form-card textarea {
	display:
		block;

	width:
		100%;

	max-width:
		100%;

	min-height:
		46px;

	margin:
		0;

	padding:
		12px 13px;

	color:
		var(--esi-ink, #121212);

	background:
		var(--esi-white, #ffffff);

	border:
		1px solid #bbb8af;

	border-radius:
		4px;

	outline:
		none;

	box-shadow:
		none;

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		14px;

	font-weight:
		400;

	line-height:
		1.45;

	transition:
		border-color 180ms ease,
		box-shadow 180ms ease,
		background-color 180ms ease;
}


/* ---------------------------------------------------------
   Placeholder
   --------------------------------------------------------- */

.esi-form-card input::placeholder,
.esi-form-card textarea::placeholder {
	color:
		#8a8983;

	opacity:
		1;
}


/* ---------------------------------------------------------
   Select
   --------------------------------------------------------- */

.esi-form-card select {
	cursor:
		pointer;

	padding-right:
		42px;

	appearance:
		none;

	-webkit-appearance:
		none;

	background-image:
		linear-gradient(
			45deg,
			transparent 50%,
			#5f5f5a 50%
		),
		linear-gradient(
			135deg,
			#5f5f5a 50%,
			transparent 50%
		);

	background-position:
		calc(100% - 18px) 50%,
		calc(100% - 13px) 50%;

	background-size:
		5px 5px,
		5px 5px;

	background-repeat:
		no-repeat;
}


/* ---------------------------------------------------------
   Textarea
   --------------------------------------------------------- */

.esi-form-card textarea {
	min-height:
		126px;

	resize:
		vertical;
}


/* ---------------------------------------------------------
   Hover
   --------------------------------------------------------- */

.esi-form-card input[type="text"]:hover,
.esi-form-card input[type="email"]:hover,
.esi-form-card input[type="tel"]:hover,
.esi-form-card input[type="url"]:hover,
.esi-form-card input[type="number"]:hover,
.esi-form-card input[type="date"]:hover,
.esi-form-card select:hover,
.esi-form-card textarea:hover {
	border-color:
		#9d9a92;
}


/* ---------------------------------------------------------
   Focus
   --------------------------------------------------------- */

.esi-form-card input[type="text"]:focus,
.esi-form-card input[type="email"]:focus,
.esi-form-card input[type="tel"]:focus,
.esi-form-card input[type="url"]:focus,
.esi-form-card input[type="number"]:focus,
.esi-form-card input[type="date"]:focus,
.esi-form-card select:focus,
.esi-form-card textarea:focus {
	border-color:
		var(--esi-red, #e2101b);

	box-shadow:
		0 0 0 3px rgba(226, 16, 27, 0.10);
}


/* ---------------------------------------------------------
   Helper text
   --------------------------------------------------------- */

.esi-form-helper {
	margin-top:
		5px;

	color:
		var(--esi-muted, #6e6e67);

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		12px;

	font-weight:
		400;

	line-height:
		1.5;
}


/* ---------------------------------------------------------
   Required / validation
   --------------------------------------------------------- */

.esi-form-card .wpcf7-not-valid {
	border-color:
		var(--esi-red, #e2101b) !important;

	box-shadow:
		0 0 0 3px rgba(226, 16, 27, 0.08);
}


.esi-form-card .wpcf7-not-valid-tip {
	display:
		block;

	margin-top:
		6px;

	color:
		var(--esi-red-dark, #b30d16);

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		11.5px;

	font-weight:
		600;

	line-height:
		1.45;
}


/* ---------------------------------------------------------
   Submit button
   --------------------------------------------------------- */

.esi-form-card input[type="submit"].esi-form-submit,
.esi-form-card .esi-form-submit {
	display:
		inline-flex;

	align-items:
		center;

	justify-content:
		center;

	width:
		100%;

	min-height:
		50px;

	margin:
		3px 0 0;

	padding:
		13px 22px;

	cursor:
		pointer;

	color:
		var(--esi-white, #ffffff);

	background:
		var(--esi-red, #e2101b);

	border:
		1px solid var(--esi-red, #e2101b);

	border-radius:
		6px;

	box-shadow:
		none;

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		14px;

	font-weight:
		700;

	line-height:
		1.2;

	text-align:
		center;

	text-decoration:
		none;

	transition:
		background-color 160ms ease,
		border-color 160ms ease,
		transform 160ms ease;
}


.esi-form-card input[type="submit"].esi-form-submit:hover,
.esi-form-card .esi-form-submit:hover {
	color:
		var(--esi-white, #ffffff);

	background:
		var(--esi-red-dark, #b30d16);

	border-color:
		var(--esi-red-dark, #b30d16);
}


.esi-form-card input[type="submit"].esi-form-submit:focus-visible,
.esi-form-card .esi-form-submit:focus-visible {
	outline:
		2px solid var(--esi-red, #e2101b);

	outline-offset:
		3px;
}


.esi-form-card input[type="submit"].esi-form-submit:disabled,
.esi-form-card .esi-form-submit:disabled {
	cursor:
		not-allowed;

	opacity:
		0.65;
}


/* ---------------------------------------------------------
   CF7 spinner
   --------------------------------------------------------- */

.esi-form-card .wpcf7-spinner {
	display:
		block;

	margin:
		12px auto 0;

	background-color:
		var(--esi-ink, #121212);
}

.esi-form-submit-wrap {
	position: relative;
	width: 100%;
}

.esi-form-submit-wrap
.wpcf7-spinner {

	position: absolute;

	top: 50%;
	right: 16px;

	margin: 0;

	transform: translateY(-50%);

	pointer-events: none;

	z-index: 2;
}

/* ---------------------------------------------------------
   Privacy text
   --------------------------------------------------------- */

.esi-form-privacy {
	margin-top:
		12px;

	color:
		var(--esi-muted, #6e6e67);

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		12px;

	font-weight:
		400;

	line-height:
		1.6;
}


.esi-form-privacy a {
	color:
		var(--esi-ink, #121212);

	font-weight:
		600;

	text-decoration:
		underline;

	text-decoration-thickness:
		1px;

	text-underline-offset:
		2px;
}


.esi-form-privacy a:hover {
	color:
		var(--esi-red, #e2101b);
}


/* ---------------------------------------------------------
   CF7 response messages
   --------------------------------------------------------- */

.esi-form-card .wpcf7-response-output {
	margin:
		14px 0 0 !important;

	padding:
		11px 12px !important;

	border:
		1px solid var(--esi-border, #ddd9d0) !important;

	border-radius:
		4px;

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size:
		12px;

	font-weight:
		500;

	line-height:
		1.55;
}


/* Successful submission */

.esi-form-card form.sent .wpcf7-response-output {
	color:
		#245d38;

	background:
		#f0f8f3;

	border-color:
		#bfdcc9 !important;
}


/* Validation / incomplete */

.esi-form-card form.invalid .wpcf7-response-output,
.esi-form-card form.unaccepted .wpcf7-response-output {
	color:
		#7a5200;

	background:
		#fff8e6;

	border-color:
		#e8cf91 !important;
}


/* Submission failed */

.esi-form-card form.failed .wpcf7-response-output,
.esi-form-card form.aborted .wpcf7-response-output,
.esi-form-card form.spam .wpcf7-response-output {
	color:
		#8c1c24;

	background:
		#fff1f2;

	border-color:
		#e3b2b6 !important;
}


/* ---------------------------------------------------------
   CF7 acceptance / checkbox / radio support
   Future-proofing
   --------------------------------------------------------- */

.esi-form-card .wpcf7-list-item {
	margin:
		0 18px 8px 0;
}


.esi-form-card .wpcf7-list-item label {
	display:
		inline-flex;

	align-items:
		flex-start;

	gap:
		8px;

	cursor:
		pointer;

	font-size:
		13px;

	font-weight:
		400;

	line-height:
		1.5;
}


.esi-form-card input[type="checkbox"],
.esi-form-card input[type="radio"] {
	width:
		16px;

	height:
		16px;

	margin:
		2px 0 0;

	accent-color:
		var(--esi-red, #e2101b);
}


/* ---------------------------------------------------------
   Autofill
   --------------------------------------------------------- */

.esi-form-card input:-webkit-autofill,
.esi-form-card input:-webkit-autofill:hover,
.esi-form-card input:-webkit-autofill:focus {
	-webkit-text-fill-color:
		var(--esi-ink, #121212);

	-webkit-box-shadow:
		0 0 0 1000px #ffffff inset;

	transition:
		background-color 9999s ease-in-out 0s;
}

.esi-quote .esi-wrap .esi-form-card{
	border-top-color: var(--esi-red);
}

/* =========================================================
   Final CTA
   ========================================================= */

.esi-final-cta::before {
	content: "" !important;

	position: absolute !important;
	inset: 0;

	pointer-events: none;

	background:
		repeating-linear-gradient(
			135deg,
			rgba(255, 255, 255, .04) 0,
			rgba(255, 255, 255, .04) 10px,
			transparent 10px,
			transparent 22px
		);
}

.esi-btn-white:hover,
.esi-btn-white:focus-visible {
	color:
		var(--esi-ink, #121212) !important;

	background:
		#f3f3f0 !important;

	border-color:
		#f3f3f0 !important;
}

.esi-btn:hover{
	transform: translateY(-1px);
}

/* =========================================================
   ESI Breadcrumbs
   ========================================================= */

.esi-breadcrumbs {
	margin: 0;
	padding: 0;
}


.esi-breadcrumbs ol {
	display: flex;
	flex-wrap: wrap;
	align-items: center;

	gap: 7px;

	margin: 0;
	padding: 0;

	list-style: none;
}


.esi-breadcrumbs li {
	display: inline-flex;
	align-items: center;

	margin: 0;
	padding: 0;

	color: inherit;

	font-family:
		var(--esi-font-body, "Raleway", Arial, sans-serif);

	font-size: 12px;

	font-weight: 400;

	line-height: 1.5;
}


/* Separator */

.esi-breadcrumbs
li:not(:last-child)::after {
	content: "›";
	margin-left: 7px;
	color: rgba(255,255,255,.28);
}


.esi-breadcrumbs a {
	color: inherit;
	text-decoration: none;
	transition: opacity 160ms ease;
}




/**** =========================== ***/
/* Service hero */

.esi-service-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: none;
	background: linear-gradient(
		90deg,
		rgba(8,8,8,.96) 0%,
		rgba(8,8,8,.90) 43%,
		rgba(8,8,8,.62) 68%,
		rgba(8,8,8,.52) 100%
	);
}

.esi-service-hero .esi-breadcrumb {
	grid-column: 1/-1;
	color: rgba(255,255,255,.58);
}

.esi-service-hero .esi-breadcrumb a{
	color: rgba(255,255,255,.58);
}

.esi-quick-form-submit{
	width: 100%;
}

.esi-form-card.esi-service-quick-quote input[type="text"], .esi-form-card.esi-service-quick-quote input[type="email"], .esi-form-card.esi-service-quick-quote input[type="tel"], .esi-form-card.esi-service-quick-quote input[type="url"], .esi-form-card.esi-service-quick-quote input[type="number"], .esi-form-card.esi-service-quick-quote input[type="date"], .esi-form-card.esi-service-quick-quote select, .esi-form-card.esi-service-quick-quote textarea{
	font-size: 13px;
    min-height: 44px;
    padding: 10px 11px;
}

.esi-form-card.esi-service-quick-quote .esi-field label{
	font-size: 12px;
}

.esi-form-card.esi-service-quick-quote textarea{
	min-height: 86px;
}

/* Compact service quote. */

.esi-service-quick-quote.esi-form-card {
	position: relative !important;
	z-index: 3 !important;
	width: 100% !important;
	padding: 28px !important;
	border-radius: 12px !important;
	box-shadow: 0 24px 70px rgba(0,0,0,.28) !important;
	border-top-color: var(--esi-red) !important;
}

/* Reusable checklist */
.esi-check-list .esi-check-list-item::before {
	content: "✓";
	position: absolute;
	left: 0;
	top: 0;
	color: var(--esi-red,#e2101b);
	font-weight: 700;
}

/* Information cards */
.esi-info-card .esi-info-card-icon svg{
	width: 20px !important;
	height: 20px !important;
	fill: none;
}

.esi-inline-cta{
	border-left-color: var(--esi-red) !important;
}

/* Narrow content / callout */
.esi-wrap.esi-content-narrow{
	max-width: 860px !important;
}

/* Report preview */
.esi-report-preview::before,
.esi-zoning-preview::before{
	content: "" !important;
	position: absolute !important;
	inset: 0;
	background: repeating-linear-gradient(135deg,rgba(255,255,255,.025) 0 12px,transparent 12px 26px);
	pointer-events: none;
}

/* Scope */
.esi-scope-item::before {
	content: "" !important;
	position: absolute !important;
	left: 0 !important;
	top: 23px !important;
	width: 7px !important;
	height: 7px !important;
	background: var(--esi-red,#e2101b);
	border-radius: 50% !important;
}

.esi-process.esi-section-warm .esi-wrap .esi-process-step::before {
	box-shadow: 0 0 0 6px var(--esi-warm);
}

.esi-process .esi-wrap .esi-process-small-dots-grid .esi-process-step::before {
	width: 9px;
	height: 9px;
}

.esi-process .esi-wrap .esi-process-small-dots-grid .esi-process-title{
	font-size: 20px;
}

.esi-process .esi-wrap .esi-process-small-dots-grid .esi-process-copy{
	font-size: 13px;
	max-width: none;
}

/* Related routes */
.esi-route-card:hover {
	transform: translateY(-2px);
	border-color: #c9c4b9 !important;
}

/* Final quotation: existing homepage quote + dark service modifier */
.esi-service-final-quote::before {
	content: "" !important;
	position: absolute !important;
	inset: 0;
	background:
		radial-gradient(circle at 20% 20%,rgba(226,16,27,.17),transparent 36%),
		repeating-linear-gradient(
			135deg,
			rgba(255,255,255,.025) 0 10px,
			transparent 10px 22px
		);
	pointer-events: none;
}

.esi-compare-card.esi-compare-card-is-primary{
	border-top-color: var(--esi-red) !important;
}

.esi-zoning-plan {
	background: linear-gradient(#ECE9E2 1px,transparent 1px),
linear-gradient(90deg,#ECE9E2 1px,transparent 1px);
	background-size: 24px 24px;
}

.esi-zoning-key span:before {
	content: "";
	display: inline-block;
	width: 8px;
	height: 8px;
	margin-right: 5px;
	border-radius: 50%;
	background: var(--esi-red);
}

.esi-zoning-key span:nth-child(2):before {
	background: var(--esi-amber);
}

.esi-zoning-key span:nth-child(3):before {
	background: #777;
}

/* =========================================================
   Comparison table
   ========================================================= */

.esi-compare-table-scroll {
	width: 100%;
	margin-top: 28px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.esi-compare-table {
	width: 100%;
	min-width: 860px;
	border-collapse: collapse;
	table-layout: fixed;
	background: var(--esi-white);
	font-size: 14px;
	line-height: 1.55;
}

.esi-compare-table th,
.esi-compare-table td {
	padding: 16px 18px;
	border: 1px solid var(--esi-border);
	text-align: left;
	vertical-align: top;
}

.esi-compare-table thead th {
	background: var(--esi-black);
	color: var(--esi-white);
	font-family: var(--esi-font-heading);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.4;
}

.esi-compare-table thead th:first-child {
	width: 17%;
}

.esi-compare-table thead th:not(:first-child) {
	width: 27.666%;
}

.esi-compare-table tbody th {
	background: var(--esi-warm);
	color: var(--esi-ink);
	font-family: var(--esi-font-body);
	font-size: 14px;
	font-weight: 600;
}

.esi-compare-table tbody td {
	color: var(--esi-body);
	font-weight: 300;
}

.esi-compare-table tbody td strong {
	color: var(--esi-red);
	font-weight: 600;
}

.esi-compare-table tbody tr:nth-child(even) td {
	background: #FCFBF8;
}

.esi-compare-table tbody tr:hover td {
	background: var(--esi-warm);
}


/* Accessible visually hidden text */

.screen-reader-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

.esi-report-thumb:before {
	content: ''!important;
	position: absolute !important;
	inset: 5px 11px 5px 9px !important;
	border: 2px solid #868178 !important;
	border-radius: 1px !important;
	width: auto !important;
	height: auto !important;
}

.esi-report-thumb:after {
	content: '';
	position: absolute;
	right: 14px;
	top: 21px;
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: var(--esi-red);
}

.esi-fire-door-report-sheet:after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 84px;
	height: 84px;
	background: linear-gradient(135deg,transparent 49%,var(--esi-warm) 50%);
	opacity: .8;
}

.esi-force-full-width{
	width: 100% !important;
}

.esi-callout-compact{
	border-left-color: var(--esi-red) !important;
}

.esi-contact-hero::after{
	background:
  radial-gradient(
    circle at 16% 22%,
    rgba(226, 16, 27, .13),
    transparent 34%
  ),
  linear-gradient(
    108deg,
    #191919 0%,
    #0C0C0C 72%
  );
}

.esi-no-img-bg-hero::after{
	background: radial-gradient(circle at 13% 22%,rgba(226,16,27,.16),transparent 34%),linear-gradient(108deg,#191919 0%,#0B0B0B 74%);
}

.esi-hero-right-img-section::after{
	content: "";
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 18% 20%,rgba(226,16,27,.16),transparent 34%);
	pointer-events: none;
}

.esi-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg,#0b0b0b 0%,rgba(11,11,11,.52) 18%,rgba(11,11,11,.1) 55%,rgba(11,11,11,.2) 100%);
}

.esi-audience-card-two::after {
	content: "";
	position: absolute;
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: #f8f6f1;
	right: -35px;
	top: -35px;
}

/*** FAQ Search ****/
.esi-faq-search-box .esi-faq-search-label{
	display: block;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #777;
	margin: 20px 0 7px;
}

.esi-faq-search-input{
	position: relative;
}

.esi-faq-search-input input {
	width: 100%;
	border: 1px solid #c9c6bf;
	border-radius: 4px;
	padding: 14px 46px 14px 14px;
	font: 400 13px/1.2 var(--esi-body-font);
	color: #333;
	background: #fff;
	outline: none;
}

.esi-faq-search-icon{
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 18px;
	color: var(--esi-red);
}

.esi-search-card-popular-link::after {
	content: "→";
	display: inline-block;
	margin-left: 2px;
	font-size: 1.08em;
	line-height: 1;
	transition: transform var(--esi-transition);
	color: var(--esi-red);
}

.esi-faq-search-box {
	position: relative;
}

.esi-faq-search-icon {
	border: 0;
	background: transparent !important;
	padding: 0 !important;
	margin: 0;
	cursor: pointer;
	font: inherit !important;
	color: var(--esi-red) !important;
	font-size: 20px !important;
}

.esi-faq-search-results {
	position: absolute;
	left: 0;
	right: 0;
	top: calc(100% + 10px);
	z-index: 100;

	display: none;

	background: #fff;
	border: 1px solid #ddd;
	box-shadow: 0 14px 35px rgba(0, 0, 0, 0.12);
	max-height: 340px;
	overflow-y: auto;
}

.esi-faq-search-results.is-visible {
	display: block;
}

.esi-faq-search-result {
	display: block;
	width: 100%;
	padding: 14px 16px !important;

	border: 0;
	border-bottom: 1px solid #eee;
	background: #fff !important;

	text-align: left;
	cursor: pointer !important;
}

.esi-faq-search-result:last-child {
	border-bottom: 0;
}

.esi-faq-search-result:hover,
.esi-faq-search-result:focus {
	background: #f7f6f3 !important;
	outline: none !important;
}

.esi-faq-search-result-type {
	display: block;
	margin-bottom: 4px;

	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: #ed1c24;
}

.esi-faq-search-result-title {
	display: block;
	font-size: 14px;
	line-height: 1.4;
	font-weight: 600;
	color: #1d1d1d;
}

.esi-faq-search-status {
	display: none;
	margin-top: 10px;
	font-size: 13px;
	line-height: 1.45;
}

.esi-faq-search-status.is-visible {
	display: block;
}

/* Temporary confirmation after search navigation */
.esi-faq-search-hit {
	animation: esiFaqSearchHit 2.4s ease;
}

@keyframes esiFaqSearchHit {
	0% {
		box-shadow: 0 0 0 0 rgba(237, 28, 36, 0);
	}

	18% {
		box-shadow: 0 0 0 3px rgba(237, 28, 36, 0.28);
	}

	100% {
		box-shadow: 0 0 0 0 rgba(237, 28, 36, 0);
	}
}

.esi-faq-search-results {
	scrollbar-width: thin;
	scrollbar-color: rgba(0, 0, 0, 0.22) transparent;
}

.esi-faq-search-results::-webkit-scrollbar {
	width: 5px;
}

.esi-faq-search-results::-webkit-scrollbar-track {
	background: transparent;
}

.esi-faq-search-results::-webkit-scrollbar-thumb {
	background: rgba(0, 0, 0, 0.22);
	border-radius: 999px;
}

.esi-faq-search-results::-webkit-scrollbar-thumb:hover {
	background: rgba(237, 28, 36, 0.55);
}

.esi-route-grid-border-left .esi-route-card:hover{
	border-top-left-radius: 0;
	border-bottom-left-radius: 0;
}

.esi-route-grid-border-left .esi-route-card::before{
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: transparent;
}

.esi-route-grid-border-left .esi-route-card:hover::before{
	background: var(--esi-red);
}

.esi-knowledge-list .esi-faq-group:last-child{
	border-bottom: 0;
	padding-bottom: 0;
	margin-bottom: 0;
}

.esi-interval-card::before {
	content: "6" !important;
	position: absolute !important;
	right: 24px !important;
	top: -42px !important;
	font-family: var(--esi-heading-font);
	font-size: 230px;
	line-height: 1;
	color: rgba(255,255,255,.035);
	left: auto !important;
	width: auto !important;
	font-weight: 500;
}