/**
 * ESI Fire Safety
 * Responsive styles.
 */


/* =========================================================
   Tablet and below
   ========================================================= */

@media (max-width: 1024px) {

	:root {
		--esi-gutter: 20px;
	}


	/* =====================================================
	   Top bar
	   ===================================================== */

	.esi-topbar__inner {
		min-height: 40px;
		padding-inline: var(--esi-gutter);
	}

	.esi-topbar__left span:not(:first-child) {
		display: none;
	}


	/* =====================================================
	   Header
	   ===================================================== */

	.esi-header-main__inner {
		grid-template-columns: auto 1fr auto;

		height: 76px;
		gap: 18px;
		padding-inline: var(--esi-gutter);
	}


	/* Branding */

	.esi-brand__mark,
	.esi-brand__logo,
	.esi-brand__fallback {
		width: 44px;
		height: 44px;
	}

	.esi-brand__mark {
		flex-basis: 44px;
	}

	.esi-brand__type strong {
		font-size: 18px;
	}

	.esi-brand__type span {
		font-size: 9.5px;
	}


	/* Header actions */

	.esi-header-actions {
		margin-left: auto;
	}


	/* Hamburger */

	.esi-site-header .esi-menu-toggle {
		display: inline-flex;
	}


	/* =====================================================
	   Mobile/tablet navigation panel
	   ===================================================== */

	.esi-primary-navigation {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 1000;

		display: none;

		width: 100%;
		height: auto;

		background: var(--esi-white);

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

		box-shadow:
			0 18px 35px
			rgba(18, 18, 18, 0.10);

		max-height:
			calc(100vh - 76px);

		overflow-y: auto;
		overscroll-behavior: contain;
	}

	.esi-primary-navigation.is-open {
		display: block;
	}


	/* Main menu */

	.esi-primary-menu {
		display: block;

		width: 100%;
		height: auto;

		padding:
			10px var(--esi-gutter) 18px;
	}


	/*
	 * Every submenu parent becomes a positioning context.
	 * This keeps disclosure buttons aligned to the correct row.
	 */

	.esi-primary-menu
	li.menu-item-has-children {

		position: relative;
	}


	.esi-primary-menu > li {
		display: block;

		width: 100%;
		height: auto;

		border-bottom:
			1px solid var(--esi-border);
	}

	.esi-primary-menu > li:last-child {
		border-bottom: 0;
	}


	.esi-primary-menu > li > a {
		display: flex;

		width: 100%;
		height: auto;
		min-height: 52px;

		padding:
			10px 48px
			10px 4px;

		font-size: 14px;
	}


	/*
	 * Desktop CSS arrows are hidden.
	 * Mobile uses independent disclosure buttons.
	 */

	.esi-primary-menu >
	.menu-item-has-children >
	a::after {

		display: none;
	}


	/* =====================================================
	   Mobile submenu
	   ===================================================== */

	.esi-primary-menu .sub-menu {
		position: static;

		display: none;

		width: 100%;

		padding:
			0 0 12px 14px;

		background: transparent;

		border: 0;
		border-radius: 0;

		box-shadow: none;

		opacity: 1;
		visibility: visible;
		pointer-events: auto;

		transform: none;

		transition: none;
	}


	.esi-primary-menu
	li.is-submenu-open >
	.sub-menu {

		display: block;
	}


	/* =====================================================
	   Generic mobile submenu toggle
	   ===================================================== */

	.esi-site-header .esi-submenu-toggle {
		position: absolute;

		top: 6px;
		right: 0;

		display: flex;
		align-items: center;
		justify-content: center;

		width: 40px;
		height: 40px;

		padding: 0;

		color: var(--esi-ink);
		background: transparent;

		border: 0;
		border-radius: 4px;

		cursor: pointer;
	}


	.esi-site-header .esi-submenu-toggle:hover {
		background: var(--esi-warm);
		color: var(--esi-ink);
	}


	.esi-site-header .esi-submenu-toggle:focus-visible {
		outline: 2px solid var(--esi-red);
		outline-offset: 1px;
	}


	.esi-site-header .esi-submenu-toggle span {
		display: block;

		width: 8px;
		height: 8px;

		border-right:
			1.5px solid currentColor;

		border-bottom:
			1.5px solid currentColor;

		transform:
			translateY(-2px)
			rotate(45deg);

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


	.esi-site-header .esi-submenu-toggle[aria-expanded="true"]
	span {

		transform:
			translateY(2px)
			rotate(225deg);
	}


	/* =====================================================
	   Mega menu on tablet/mobile
	   ===================================================== */

	/*
	 * Desktop mega menus revert to nested accordions.
	 */

	.esi-primary-menu >
	li.esi-mega-menu >
	.sub-menu >
	li.esi-mega-feature-active {

		margin-top: 8px;
		padding-top: 14px;

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


	.esi-primary-menu >
	li.esi-mega-menu >
	.sub-menu >
	li.esi-mega-feature-active >
	a {

		display: flex;
		flex-direction: column;
		align-items: flex-start;

		gap: 4px;

		padding:
			12px 12px 14px;

		background: var(--esi-warm);

		border-radius: 6px;
	}


	.esi-mega-feature__copy {
		display: flex;
		flex-direction: column;
		align-items: flex-start;

		gap: 4px;
	}


	.esi-mega-feature__title {
		color: var(--esi-ink);

		font-family: var(--esi-font-heading);
		font-size: 16px;
		font-weight: 500;
		line-height: 1.3;
	}


	.esi-mega-feature__description {
		display: block;

		color: var(--esi-muted);

		font-size: 12px;
		font-weight: 400;
		line-height: 1.5;
	}


	.esi-mega-feature__cta {
		display: inline-flex;
		align-items: center;
		gap: 7px;

		margin-top: 5px;

		color: var(--esi-red);

		font-size: 13px;
		font-weight: 700;
	}


	.esi-mega-feature__arrow {
		transition:
			transform var(--esi-transition);
	}


	.esi-mega-feature-active >
	a:hover
	.esi-mega-feature__arrow {

		transform: translateX(3px);
	}


	/* =====================================================
	   Mobile mega-menu category rows
	   ===================================================== */

	/*
	 * Layout:
	 *
	 * [ Category title                  ][ toggle ]
	 * [ nested submenu............................ ]
	 */

	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column {

		position: relative;

		display: grid;

		grid-template-columns:
			minmax(0, 1fr)
			36px;

		align-items: center;

		width: 100%;

		border-bottom: 0;
	}


	/*
	 * Top borders between categories avoid a double
	 * separator immediately before Fire Safety Training.
	 */

	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	+ li.esi-mega-column {

		border-top:
			1px solid
			rgba(221, 217, 208, 0.75);
	}


	/* Category heading */

	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	> a {

		grid-column: 1;
		grid-row: 1;

		display: flex;
		align-items: center;

		width: 100%;
		min-height: 48px;

		padding:
			9px 8px
			9px 0;

		color: var(--esi-ink);
		background: transparent;

		font-family: var(--esi-font-body);
		font-size: 14px;
		font-weight: 600;
		line-height: 1.35;

		border-radius: 0;
	}


	/* =====================================================
	   Mega-category disclosure button
	   ===================================================== */

	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	> .esi-submenu-toggle {

		position: static;

		grid-column: 2;
		grid-row: 1;

		align-self: center;
		justify-self: end;

		display: flex;
		align-items: center;
		justify-content: center;

		width: 34px;
		height: 34px;
		min-width: 34px;
		min-height: 34px;

		margin: 0;
		padding: 0;

		color: var(--esi-ink);

		background:
			transparent !important;

		border:
			0 !important;

		border-radius: 5px;

		box-shadow:
			none !important;

		line-height: 1;

		appearance: none;
		-webkit-appearance: none;
	}


	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	> .esi-submenu-toggle:hover {

		background:
			var(--esi-warm) !important;
	}


	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	> .esi-submenu-toggle:focus-visible {

		background:
			transparent !important;

		outline:
			2px solid var(--esi-red);

		outline-offset: 1px;
	}


	/* Smaller category chevron */

	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	> .esi-submenu-toggle
	> span {

		width: 7px;
		height: 7px;

		border-right:
			1.5px solid currentColor;

		border-bottom:
			1.5px solid currentColor;

		transform:
			translateY(-2px)
			rotate(45deg);

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


	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	> .esi-submenu-toggle[aria-expanded="true"]
	> span {

		transform:
			translateY(2px)
			rotate(225deg);
	}


	/* =====================================================
	   Nested mega-menu service lists
	   ===================================================== */

	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	> .sub-menu {

		grid-column: 1 / -1;
		grid-row: 2;

		width: 100%;

		padding:
			0 0 12px 18px;
	}


	.esi-primary-menu
	> li.esi-mega-menu
	> .sub-menu
	> li.esi-mega-column
	> .sub-menu
	> li
	> a {

		padding:
			8px 8px;

		color: var(--esi-muted);

		font-size: 13px;
		font-weight: 400;
		line-height: 1.45;
	}


	/* =====================================================
	   Footer
	   ===================================================== */

	.esi-footer__main {
		padding:
			52px 0 46px;
	}


	.esi-footer__inner {
		grid-template-columns: 1fr;

		gap: 44px;
		padding-inline: var(--esi-gutter);
	}
	
	.esi-footer__bottom-inner {
		padding-inline: var(--esi-gutter);
	}


	.esi-footer__identity {
		max-width: 420px;
	}


	.esi-footer-menu {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(0, .8fr)
			minmax(0, 1.15fr);

		gap: 32px;
	}
	
	.esi-credential-item:nth-child(4n + 1) {
		border-left: 0;
	}

	.esi-credential-item:nth-child(n + 5) {
		border-top:
			1px solid var(--esi-border);
	}
}/***/


/* =========================================================
   Mobile
   ========================================================= */

@media (max-width: 767px) {

	:root {
		--esi-gutter: 16px;
	}


	/* =====================================================
	   Top bar
	   ===================================================== */

	.esi-topbar .esi-topbar__left {
		display: none;
	}

	.esi-topbar__inner {
		justify-content: center;
	}

	.esi-topbar__right {
		width: 100%;

		justify-content: center;
	}


	/* =====================================================
	   Header
	   ===================================================== */

	.esi-header-main__inner {
		height: 72px;
		gap: 12px;
	}


	/* Logo */

	.esi-brand__mark,
	.esi-brand__logo,
	.esi-brand__fallback {
		width: 42px;
		height: 42px;
	}

	.esi-brand__mark {
		flex-basis: 42px;
	}

	.esi-brand {
		gap: 10px;
	}

	.esi-brand__type strong {
		font-size: 16px;
	}

	.esi-brand__type span {
		font-size: 8.5px;
		letter-spacing: 0.08em;
	}


	/* Hide desktop CTA */

	.esi-site-header .esi-header-quote {
		display: none;
	}


	/* Hamburger */

	.esi-menu-toggle {
		margin-left: auto;
	}


	/* Navigation panel */

	.esi-primary-navigation {
		max-height:
			calc(100vh - 72px);
	}


	/* =====================================================
	   Mobile footer
	   ===================================================== */

	.esi-footer__main {
		padding:
			46px 0 36px;
	}


	.esi-footer__inner {
		gap: 40px;
	}


	/* Identity */

	.esi-footer__identity {
		max-width: 100%;
	}


	.esi-footer__intro {
		max-width: 340px;
	}


	/* Navigation */

	.esi-footer-menu {
		grid-template-columns: 1fr;

		gap: 30px;
	}


	.esi-footer-menu > li {
		padding-top: 26px;

		border-top:
			1px solid
			rgba(255, 255, 255, 0.10);
	}


	.esi-footer-menu > li:first-child {
		padding-top: 0;

		border-top: 0;
	}


	/* Bottom */

	.esi-footer__bottom-inner {
		flex-direction: column;
		align-items: flex-start;

		min-height: auto;

		padding-top: 20px;
		padding-bottom: 22px;
		padding-inline: var(--esi-gutter);
	}


	.esi-legal-menu {
		gap:
			9px 18px;
	}
	
	.esi-credential-item {
		border-left:
			1px solid var(--esi-border);

		border-top:
			1px solid var(--esi-border);
	}
	
	.esi-credential-item:nth-child(odd) {
		border-left: 0;
	}

	.esi-credential-item:nth-child(-n + 2) {
		border-top: 0;
	}
}/***/

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


/* Prototype intermediate desktop/tablet state */

@media (max-width: 1100px) {

	.esi-hero .esi-wrap .esi-hero-grid {
		grid-template-columns:
			minmax(0, 1fr)
			420px;

		gap: 34px;
	}

}


/* Stack hero */

@media (max-width: 860px) {

	.esi-hero .esi-wrap .esi-hero-grid {
		grid-template-columns: 1fr;

		gap: 42px;

		min-height: 0;

		padding-top: 54px;
		padding-bottom: 60px;
	}


	.esi-hero .esi-hero-visual {
		width: 100%;
		max-width: 620px;

		margin-inline: auto;
	}


	.esi-hero .esi-hero-image {
		min-height: 440px;
	}


	.esi-hero .esi-wrap .esi-hero-trust {
		grid-template-columns: 1fr;
	}


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

		border-left: 0;

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

		padding-left: 0;
	}

}


/* Small mobile */

@media (max-width: 560px) {

	.esi-hero .esi-hero-title {
		font-size: 42px;
	}


	.esi-hero .esi-hero-actions {
		display: grid;

		grid-template-columns: 1fr;

		width: 100%;
	}


	.esi-hero
	.esi-hero-actions
	.esi-btn {

		width: 100%;
	}

	.esi-hero .esi-hero-image {
		min-height: 420px;
	}

}/***/

/* =========================================================
   Expertise / Services
   ========================================================= */


/* ---------------------------------------------------------
   Intermediate desktop / tablet
   --------------------------------------------------------- */

@media (max-width: 1100px) {

	.esi-expertise .esi-wrap .esi-primary-services {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}


	/*
	 * Third priority service gets full width.
	 */
	.esi-expertise .esi-primary-services
	> .esi-service-card:last-child {

		grid-column:
			1 / -1;
	}


	.esi-expertise .esi-wrap .esi-service-links {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

}


/* ---------------------------------------------------------
   Tablet
   --------------------------------------------------------- */

@media (max-width: 860px) {

	.esi-expertise {
		padding-top: 76px;
		padding-bottom: 76px;
	}


	.esi-expertise .esi-wrap .esi-expertise-story {
		grid-template-columns: 1fr;
		row-gap: 30px;
	}


	.esi-expertise .esi-wrap .esi-primary-services {
		grid-template-columns: 1fr;
	}


	.esi-expertise .esi-wrap .esi-primary-services
	> .esi-service-card:last-child {

		grid-column: auto;
	}


	.esi-expertise .esi-wrap .esi-service-links {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}

}


/* ---------------------------------------------------------
   Mobile
   --------------------------------------------------------- */

@media (max-width: 560px) {

	.esi-expertise .esi-wrap .esi-service-links {
		grid-template-columns: 1fr;
	}


	.esi-expertise .esi-wrap .esi-other-services-head {
		flex-direction: column;
		align-items: flex-start;

		gap: 12px;
	}

}

/* =========================================================
   Who We Help
   ========================================================= */

@media (max-width: 860px) {

	.esi-who-help .esi-wrap .esi-audience-grid {
		grid-template-columns: 1fr;
	}


	.esi-who-help .esi-audience-grid .esi-audience-card {
		grid-template-columns:
			140px minmax(0, 1fr);
	}

}

@media (max-width: 560px) {

	.esi-who-help .esi-wrap .esi-audience-card {
		grid-template-columns: 1fr;
	}


	.esi-audience-grid .esi-audience-card .esi-audience-image {
		height: 180px;
	}


	.esi-who-help .esi-wrap .esi-audience-bottom {
		flex-direction: column;
		align-items: flex-start;

		gap: 10px;
	}
	
	.esi-who-help .esi-wrap .esi-audience-body {
		padding:
			22px 20px 21px;
	}


	.esi-who-help .esi-wrap .esi-audience-title {
		font-size: 23px;
	}

}

@media (max-width: 1100px) {

	.esi-why-esi .esi-why-esi-grid {
		gap: 42px;
	}

}

@media (max-width: 860px) {

	.esi-why-esi .esi-wrap .esi-why-esi-grid {
		grid-template-columns: 1fr;

		gap: 46px;
	}


	.esi-why-esi .esi-wrap .esi-portrait-panel {
		width: 100%;
		max-width: 540px;

		margin-inline: auto;
	}


	.esi-why-esi .esi-wrap .esi-cred-grid {
		grid-template-columns: 1fr;
	}

}

@media (max-width: 560px) {

	.esi-why-esi .esi-wrap .esi-portrait-panel {
		padding: 20px;
	}


	.esi-why-esi .esi-wrap .esi-portrait-panel::before {
		inset: 12px;
	}


	.esi-why-esi .esi-wrap .esi-pullquote {
		font-size: 22px;

		padding-left: 18px;
	}


	.esi-why-esi .esi-wrap .esi-portrait-caption {
		left: 14px;
		bottom: 14px;
	}

}

@media (max-width: 860px) {

	.esi-process .esi-wrap .esi-process-grid {
		grid-template-columns:
			1fr;

		gap: 34px;

		padding-top: 0;
		padding-left: 30px;
	}


	.esi-process .esi-wrap .esi-process-grid::before {
		top: 0;
		bottom: 0;
		left: 6px;
		right: auto;

		width: 1px;
		height: auto;
	}


	.esi-process-step {
		padding:
			0 0 0 12px;
	}


	.esi-process .esi-wrap .esi-process-step::before {
		top: 3px;
		left: -30px;

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


	.esi-process .esi-wrap .esi-process-copy {
		max-width: 520px;
	}

}

@media (max-width: 560px) {

	.esi-process .esi-wrap .esi-process-grid {
		gap: 30px;

		padding-left: 26px;
	}


	.esi-process-step {
		padding-left: 10px;
	}


	.esi-process .esi-wrap .esi-process-step::before {
		left: -26px;

		width: 12px;
		height: 12px;
	}


	.esi-process-title {
		font-size: 21px;
	}


	.esi-process .esi-wrap .esi-process-copy {
		font-size: 14px;
		max-width: 100%;
	}


	.esi-process-cta {
		margin-top: 26px;
	}


	.esi-process-cta .esi-btn {
		width: 100%;
	}

}

/* =========================================================
   Urgent fire safety support
   ========================================================= */

@media (max-width: 860px) {

	.esi-urgent .esi-wrap .esi-urgent-row {
		grid-template-columns:
			auto minmax(0, 1fr);
	}


	.esi-urgent .esi-wrap .esi-urgent-actions {
		grid-column:
			1 / -1;

		padding-left:
			66px;
	}

}


@media (max-width: 560px) {

	.esi-urgent {
		padding:
			30px 0;
	}


	.esi-urgent .esi-wrap .esi-urgent-row {
		grid-template-columns:
			1fr;

		gap:
			16px;
	}


	.esi-urgent .esi-wrap .esi-urgent-actions {
		grid-column:
			auto;

		display:
			grid;

		grid-template-columns:
			1fr;

		width:
			100%;

		padding-left:
			0;
	}


	.esi-urgent .esi-wrap .esi-urgent-actions
	.esi-urgent .esi-wrap .esi-btn {

		width:
			100%;
	}

}

/* =========================================================
   Testimonials
   ========================================================= */

@media (max-width: 1100px) {

	.esi-testimonials .esi-wrap .esi-testimonial-grid {
		grid-template-columns:
			repeat(2, minmax(0, 1fr));
	}


	.esi-testimonials .esi-wrap .esi-testimonial-card:last-child {
		grid-column:
			1 / -1;
	}

}


@media (max-width: 860px) {

	.esi-testimonials .esi-wrap .esi-testimonial-grid {
		grid-template-columns:
			1fr;
	}


	.esi-testimonials .esi-wrap .esi-testimonial-card:last-child {
		grid-column:
			auto;
	}
	
}

/* =========================================================
   RESPONSIVE
   ========================================================= */


/* Tablet / stacked section */

@media (max-width: 860px) {

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

}


/* Mobile */

@media (max-width: 560px) {

	.esi-form-card {
		padding:
			28px 22px;
	}


	.esi-form-title {
		font-size:
			27px;
	}


	.esi-form-row {
		grid-template-columns:
			1fr;

		gap:
			0;
	}


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

		padding-top:
			25px;
	}


	.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 {
		font-size:
			16px;
	}


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

}

@media (max-width: 1100px) {

	.esi-quote .esi-wrap.esi-quote-grid {
		grid-template-columns:
			minmax(0, 1fr)
			minmax(0, 1.2fr);

		gap:
			38px;
	}

}


@media (max-width: 860px) {

	.esi-quote .esi-wrap.esi-quote-grid {
		grid-template-columns:
			1fr;

		gap:
			42px;
	}


	.esi-quote .esi-wrap .esi-quote-copy {
		position:
			static;
	}

}


@media (max-width: 560px) {

	.esi-form-row {
		grid-template-columns:
			1fr;
	}


	.esi-form-card {
		padding:
			28px 22px;
	}

}

/* Responsive */

@media (max-width:1100px) {

	.esi-service-split {
		gap: 42px !important;
	}

	.esi-service-final-quote .esi-quote-grid {
		grid-template-columns: 1fr 1.15fr !important;
		gap: 42px !important;
	}
	
}

@media (max-width:860px) {
	.esi-service-hero > .esi-wrap {
		min-height: 0 !important;
		padding-top: 44px !important;
		padding-bottom: 58px !important;
	}

	.esi-service-hero-grid,
	.esi-service-split {
		grid-template-columns: 1fr !important;
	}

	.esi-service-hero-copy > h1,
	.esi-service-hero-copy > .e-heading {
		font-size: 52px !important;
	}

	.esi-service-quick-quote.esi-form-card {
		max-width: 620px !important;
	}

	.esi-info-grid,
	.esi-route-grid {
		grid-template-columns: repeat(2,minmax(0,1fr)) !important;
	}

	.esi-process-grid.esi-process-grid-six {
		grid-template-columns: 1fr 1fr !important;
	}

	.esi-service-final-quote .esi-quote-grid {
		grid-template-columns: 1fr !important;
	}

	.esi-service-final-quote .esi-quote-copy {
		position: static !important;
		max-width: 720px !important;
	}
}

@media (max-width:560px) {
	.esi-service-hero > .esi-wrap {
		padding-top: 34px !important;
		padding-bottom: 44px !important;
	}

	.esi-service-hero-copy > h1,
	.esi-service-hero-copy > .e-heading {
		font-size: 42px !important;
		line-height: 1.05 !important;
	}

	.esi-service-hero .esi-lead {
		font-size: 16px !important;
	}

	.esi-service-hero .esi-hero-actions {
		display: grid !important;
		grid-template-columns: 1fr !important;
	}

	.esi-service-hero .esi-hero-actions .e-button,
	.esi-service-hero .esi-hero-actions a {
		width: 100% !important;
	}

	.esi-service-hero-proof {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
	}

	.esi-service-quick-quote.esi-form-card {
		padding: 24px 20px !important;
	}

	.esi-service-quick-fields,
	.esi-info-grid,
	.esi-route-grid,
	.esi-scope-grid,
	.esi-process-grid.esi-process-grid-six,
	.esi-check-list-2col {
		grid-template-columns: 1fr !important;
	}

	.esi-info-card {
		min-height: 0 !important;
	}

	.esi-report-preview {
		min-height: 360px !important;
		padding: 34px 22px !important;
	}

	.esi-service-final-quote .esi-quote-copy h2,
	.esi-service-final-quote .esi-quote-copy .e-heading {
		font-size: 34px !important;
	}
}

@media (max-width:1180px) {	
	.esi-header-main__inner,
	.esi-footer__inner,
	.esi-footer__bottom-inner,
	.elementor .esi-wrap{
		padding-inline: var(--esi-gutter) !important;
	}
}

/* Tablet / mobile */

@media (max-width: 767px) {

	.esi-compare-table-scroll {
		margin-right: -15px;
		padding-right: 15px;
	}

	.esi-compare-table {
		min-width: 760px;
		font-size: 12.5px;
	}

	.esi-compare-table th,
	.esi-compare-table td {
		padding: 13px 14px;
	}

	.esi-compare-table thead th {
		font-size: 14px;
	}

}