/* ==========================================================================
   Master template, tightened header and footer. Loaded after custom.css.
   Spacing and type are set once in the tokens below.
   ========================================================================== */

:root {
	--qk-teal: #00323c;
	--qk-teal-soft: #355a62;
	--qk-green: #49b177;
	--qk-green-tint: #f6fbf8;
	--qk-panel: #e7efed;
	--qk-line: #d5e3de;

	--qk-container: 1240px;
	--qk-gutter: 24px;

	--qk-h1: 44px;  --qk-h1-lh: 50px;
	--qk-h2: 30px;  --qk-h2-lh: 36px;
	--qk-h3: 18px;  --qk-h3-lh: 24px;
	--qk-body: 16px; --qk-body-lh: 25px;

	--qk-section: 56px;
	--qk-gap: 16px;
	--qk-card-pad: 20px;
	--qk-radius: 12px;
	--qk-btn-h: 44px;

	--qk-utility-h: 34px;
	--qk-nav-h: 72px;
	--qk-nav-h-scrolled: 60px;
}

/* ---------- Shared ---------- */
.qk-container {
	width: 100%;
	max-width: var(--qk-container);
	margin-inline: auto;
	padding-inline: var(--qk-gutter);
}
.qk-section { padding: var(--qk-section) 0; }
.qk-page { color: var(--qk-teal); font-size: var(--qk-body); line-height: var(--qk-body-lh); }
.qk-page p { margin: 0; }
.qk-h2 {
	margin: 0 0 24px;
	font-size: var(--qk-h2);
	line-height: var(--qk-h2-lh);
	font-weight: 900;
	color: var(--qk-teal);
	letter-spacing: -0.01em;
	text-transform: uppercase;
}
.qk-btn,
.qk-page a.qk-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--qk-btn-h);
	padding: 0 20px;
	border-radius: 8px;
	background: var(--qk-green);
	color: var(--qk-teal);
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	transition: background-color .2s, color .2s;
}
.qk-btn:hover,
.qk-page a.qk-btn:hover { background: var(--qk-teal); color: #fff; }

/* ---------- Header: base (Slim variant) ---------- */
/* Exactly the header's height. Beats the padding set in the Custom CSS & JS plugin. */
html body #custom-site-content { padding-top: calc(var(--qk-utility-h) + var(--qk-nav-h)); }

#header-wrapper {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 99999;
	background: #fff;
	box-shadow: 0 2px 10px rgba(0, 50, 60, .12);
	transition: transform .25s ease;
}
#header-wrapper.is-scrolled { transform: translateY(calc(var(--qk-utility-h) * -1)); }
/* The top contact bar is hidden at this size, so the header shouldn't leave room for it or slide up to hide it */
@media (max-width: 992px) {
	:root { --qk-utility-h: 0px; }
}
/* Keeps the logged-in WordPress toolbar visible. It's 32px tall, or 46px on small screens, and the header slides under it. */
.admin-bar #header-wrapper { top: 32px; z-index: 99998; }
@media (max-width: 782px) {
	.admin-bar #header-wrapper { top: 46px; }
}

/* Slim + hide variant: hides going down, returns as the 60px bar */
html[data-qk-header="hide"] #header-wrapper.is-scrolled.is-hidden { transform: translateY(-100%); }

/* Utility bar */
#header-wrapper .header-top { background: var(--qk-teal); border: 0; font-size: 13px; }
#header-wrapper .qk-utility {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	height: var(--qk-utility-h);
}
#header-wrapper .socialIcon { display: flex; gap: 14px; }
#header-wrapper .socialIcon a { margin: 0; color: var(--qk-green); font-size: 13px; }
#header-wrapper .socialIcon a:hover { color: #fff; }
#header-wrapper .contact-info { display: flex; align-items: center; gap: 16px; }
#header-wrapper .contact-info .contact-text { margin: 0; color: #fff; font-weight: 700; }
#header-wrapper .contact-info a {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #fff;
	font-size: 13px;
	text-decoration: none;
}
#header-wrapper .contact-info a:hover { text-decoration: underline; }
#header-wrapper .contact-info i { margin: 0; color: var(--qk-green); }

/*
 * Trustpilot. A WPCode snippet moves #tp-micro-wrap to straight after .header-top
 * every time the page loads, so it is positioned into the bar rather than moved.
 */
#header-wrapper #tp-micro-wrap {
	position: absolute;
	top: 0;
	left: 50%;
	z-index: 2;
	width: 420px; /* Trustpilot drops the review count when it's narrower */
	height: var(--qk-utility-h);
	margin: 0;
	padding: 7px 0;
	background: transparent;
	transform: translateX(-50%);
}

/* Main bar */
#header-wrapper .header-area {
	position: relative;
	height: auto;
	padding: 0 !important; /* The theme adds padding below 1200px */
	background: #fff;
	box-shadow: none !important;
	text-align: left;
}
#header-wrapper .main-nav {
	display: flex;
	align-items: center;
	gap: 28px;
	height: var(--qk-nav-h);
	min-height: 0;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	overflow: visible;
	transition: height .25s ease;
}
#header-wrapper.is-scrolled .main-nav { height: var(--qk-nav-h-scrolled); }
#header-wrapper .main-nav .logo {
	position: static;
	flex: none;
	width: 190px;
	line-height: 1;
	transition: width .25s ease;
}
#header-wrapper.is-scrolled .main-nav .logo { width: 160px; }
#header-wrapper .main-nav .logo img { display: block; width: 100%; height: auto; }
#header-wrapper .main-nav .nav { margin-right: auto; }
#header-wrapper .main-nav .nav > li { margin: 0 !important; padding: 0 11px !important; width: auto; background: none; border: 0; } /* Blog post CSS adds margin to list items */
#header-wrapper .main-nav .nav > li > a,
#header-wrapper .main-nav .nav > li > a:hover { font-size: 16px; white-space: nowrap; }
#header-wrapper .main-nav .nav > li > a:hover { color: var(--qk-teal); }

/* Dropdowns. !important because the site's own menu CSS sets these with !important. */
@media (min-width: 1201px) {
	#header-wrapper .main-nav .nav > li.menu-item-has-children { position: relative; }
	#header-wrapper .main-nav .nav > li.menu-item-has-children > a { display: inline-flex; align-items: center; gap: 6px; }
	#header-wrapper .main-nav .nav > li.menu-item-has-children > a::after {
		content: "";
		width: 6px;
		height: 6px;
		margin-top: -3px;
		border-right: 1.5px solid currentColor;
		border-bottom: 1.5px solid currentColor;
		transform: rotate(45deg);
		transition: transform .15s ease;
	}
	#header-wrapper .main-nav .nav > li.menu-item-has-children:hover > a::after,
	#header-wrapper .main-nav .nav > li.menu-item-has-children:focus-within > a::after { margin-top: 3px; transform: rotate(225deg); }

	/* Keeps the menu open while the pointer crosses the gap to it */
	#header-wrapper .main-nav .nav > li.menu-item-has-children::after {
		content: "";
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		height: 36px;
	}
	#header-wrapper .main-nav .nav .sub-menu {
		top: calc(100% + 30px) !important; /* Just below the header bar */
		left: 3px !important;
		width: max-content !important;
		min-width: 220px !important;
		max-width: 340px !important;
		padding: 8px !important;
		border: 1px solid var(--qk-line) !important;
		border-radius: var(--qk-radius) !important;
		background: #fff !important;
		box-shadow: 0 12px 28px rgba(0, 50, 60, .14) !important;
	}
	#header-wrapper.is-scrolled .main-nav .nav .sub-menu { top: calc(100% + 24px) !important; }
	#header-wrapper .main-nav .nav > li.menu-item-has-children:focus-within > .sub-menu { display: block !important; }
	#header-wrapper .main-nav .nav .sub-menu > li > a {
		padding: 9px 12px !important;
		border-radius: 8px;
		background: transparent;
		color: var(--qk-teal) !important;
		font-size: 16px !important;
		font-weight: 500;
		line-height: 22px !important;
		white-space: normal !important;
		transition: background-color .15s ease;
	}
	#header-wrapper .main-nav .nav .sub-menu > li > a:hover,
	#header-wrapper .main-nav .nav .sub-menu > li > a:focus-visible { background: var(--qk-green-tint); color: var(--qk-teal) !important; }
}

#header-wrapper .navlastcta { display: flex; align-items: center; gap: 8px; margin-left: auto; }
#header-wrapper .top-button { margin: 0; }
#header-wrapper .main-nav .top-button a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: 40px;
	padding: 0 16px;
	border-radius: 8px;
	background: var(--qk-green);
	color: var(--qk-teal);
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	text-transform: none;
	white-space: nowrap;
}
#header-wrapper .main-nav .top-button a:hover { background: var(--qk-teal); color: #fff !important; }
#header-wrapper .main-nav .tpbblack a { background: var(--qk-teal); color: #fff !important; }
#header-wrapper .main-nav .top-button--ghost a {
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--qk-teal);
	color: var(--qk-teal);
}

/* Menu button, built on the theme's hamburger spans */
#header-wrapper .main-nav .menu-trigger {
	display: none;
	position: relative;
	top: auto;
	right: auto;
	flex: none;
	width: 40px;
	height: 40px;
	padding: 0;
	border: 0;
	border-radius: 8px;
	background: var(--qk-panel);
}
#header-wrapper .main-nav .menu-trigger span,
#header-wrapper .main-nav .menu-trigger span::before,
#header-wrapper .main-nav .menu-trigger span::after { width: 20px; background-color: var(--qk-teal); }
#header-wrapper .main-nav .menu-trigger span { top: 19px; left: 10px; }
#header-wrapper .main-nav .menu-trigger.active span { background-color: transparent; }
/* The three lines. The theme's off-centre pivot left the cross lopsided, so both lines now turn around the middle. */
#header-wrapper .main-nav .menu-trigger span::before,
#header-wrapper .main-nav .menu-trigger span::after { left: 0; transform-origin: 50% 50%; }
#header-wrapper .main-nav .menu-trigger span::before { top: -6px; }
#header-wrapper .main-nav .menu-trigger span::after { top: 6px; }
#header-wrapper .main-nav .menu-trigger.active span::before,
#header-wrapper .main-nav .menu-trigger.active span::after { top: 0; }
#header-wrapper .main-nav .menu-trigger.active span::before { transform: rotate(45deg); }
#header-wrapper .main-nav .menu-trigger.active span::after { transform: rotate(-45deg); }

/* The Get Quote button in the header replaces the floating tab */
.qk-has-header-quote .getQuoteBtn { display: none; }

/* Keeps the page's hide/show from fighting the old header rules */
@media (min-width: 1201px) {
	#header-wrapper .main-nav .nav { display: flex !important; }
	#header-wrapper .main-nav .menu-trigger { display: none !important; }
	#header-wrapper .qk-sub-toggle { display: none; }
}

@media (max-width: 1200px) {
	#header-wrapper .main-nav { gap: 10px; }
	#header-wrapper .main-nav .menu-trigger { display: block !important; }
	#header-wrapper .main-nav .nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		display: none;
		float: none;
		width: 100%;
		margin: 0;
		padding: 4px 0 12px;
		background: #fff;
		box-shadow: 0 10px 16px rgba(0, 50, 60, .12);
	}
	#header-wrapper .main-nav .nav > li {
		display: block;
		float: none;
		width: 100%;
		padding: 0 !important;
	}
	/* IDs and !important because custom.css fixes these links at 36px tall and the WPCode CSS sets their padding */
	#header-wrapper #menu-main-menu > li > a,
	#header-wrapper #menu-main-menu > li > a:hover {
		display: block !important;
		height: auto !important;
		padding: 12px var(--qk-gutter) !important;
		font-size: 16px;
		line-height: 24px !important;
		white-space: normal;
	}
	#header-wrapper #menu-main-menu > li.menu-item-has-children > a,
	#header-wrapper #menu-main-menu > li.menu-item-has-children > a:hover { padding-right: 64px !important; }
	/* The menu scrolls if it's taller than the screen */
	#header-wrapper .main-nav .nav { max-height: calc(100dvh - 110px) !important; overflow-y: auto !important; overscroll-behavior: contain; }
	/* The WPCode CSS makes this bar a 56px scroll box. iPhone Safari clips the open menu to it, so nothing shows. */
	#header-wrapper .main-nav { max-height: none !important; overflow: visible !important; -webkit-overflow-scrolling: auto; }
	#header-wrapper .main-nav .nav > li { position: relative; }
	/* assets/js/header.js sets this from the hamburger button, so the menu can't disagree with it */
	#header-wrapper:not(.is-menu-open) .main-nav .nav { display: none !important; }
	#header-wrapper.is-menu-open .main-nav .nav { display: block !important; height: auto !important; opacity: 1 !important; visibility: visible !important; }
	/* The link goes to the page, the arrow opens its sub-menu. The button is added by assets/js/header.js. */
	#header-wrapper .qk-sub-toggle {
		position: absolute;
		top: 0;
		right: 0;
		display: grid;
		place-items: center;
		width: 56px;
		height: 48px;
		padding: 0;
		border: 0;
		background: transparent;
		color: var(--qk-teal);
		cursor: pointer;
	}
	#header-wrapper .qk-sub-toggle:focus-visible { outline: 2px solid var(--qk-green); outline-offset: -2px; }
	#header-wrapper .qk-sub-toggle::before {
		content: "";
		width: 9px;
		height: 9px;
		margin-top: -4px;
		border-right: 2px solid currentColor;
		border-bottom: 2px solid currentColor;
		transform: rotate(45deg);
		transition: transform .2s ease, margin-top .2s ease;
	}
	#header-wrapper .is-open > .qk-sub-toggle::before { margin-top: 4px; transform: rotate(225deg); }
	#header-wrapper .main-nav .nav .sub-menu { display: none !important; }
	#header-wrapper .main-nav .nav .is-open > .sub-menu { display: block !important; }
	#header-wrapper .main-nav .nav .sub-menu {
		position: static !important;
		width: 100% !important;
		min-width: 0 !important;
		padding: 0 0 8px !important;
		border: 0 !important;
		box-shadow: none !important;
		background: #f6f6f6 !important;
	}
	#header-wrapper .main-nav .nav .sub-menu > li { width: 100% !important; padding: 0 !important; background: transparent !important; }
	#header-wrapper .main-nav .nav .sub-menu a {
		display: block !important;
		height: auto !important;
		padding: 11px var(--qk-gutter) 11px calc(var(--qk-gutter) + 14px) !important;
		background: transparent !important;
		color: var(--qk-teal) !important;
		font-size: 16px !important;
		font-weight: 400 !important;
		line-height: 22px !important;
		white-space: normal !important;
	}
}
/* custom.css's grey hover stays stuck on a row after it's been tapped */
@media (max-width: 1200px) and (hover: none) {
	#header-wrapper #menu-main-menu > li > a:hover { background: transparent !important; color: #5e5e5e !important; }
}

/* The hamburger menu as a floating card, matching the desktop dropdowns */
@media (max-width: 1200px) {
	#header-wrapper #menu-main-menu {
		top: calc(100% + 8px);
		right: var(--qk-gutter);
		left: auto;
		box-sizing: border-box;
		width: min(340px, 100vw - 2 * var(--qk-gutter)) !important;
		max-height: calc(100dvh - var(--qk-utility-h) - var(--qk-nav-h) - 24px) !important;
		padding: 8px !important;
		border: 1px solid var(--qk-line);
		border-radius: var(--qk-radius);
		box-shadow: 0 12px 28px rgba(0, 50, 60, .14);
	}
	#header-wrapper #menu-main-menu > li > a,
	#header-wrapper #menu-main-menu > li > a:hover { padding: 10px 12px !important; border-radius: 8px; color: var(--qk-teal) !important; font-weight: 600 !important; }
	#header-wrapper #menu-main-menu > li.menu-item-has-children > a,
	#header-wrapper #menu-main-menu > li.menu-item-has-children > a:hover { padding-right: 52px !important; }
	#header-wrapper #menu-main-menu > li > a:hover { background: var(--qk-green-tint) !important; }
	#header-wrapper .qk-sub-toggle { width: 44px; height: 44px; border-radius: 8px; }
	#header-wrapper .main-nav .nav .sub-menu { padding: 0 0 4px 8px !important; background: transparent !important; }
	#header-wrapper .main-nav .nav .sub-menu a { padding: 9px 12px !important; border-radius: 8px; font-weight: 500 !important; }
	#header-wrapper .main-nav .nav .sub-menu a:hover { background: var(--qk-green-tint) !important; color: var(--qk-teal) !important; }
}
@media (max-width: 1200px) and (hover: none) {
	#header-wrapper #menu-main-menu > li > a:hover,
	#header-wrapper .main-nav .nav .sub-menu a:hover { background: transparent !important; color: var(--qk-teal) !important; }
}

/* Keeps Trustpilot clear of the contact links as the bar gets narrower */
@media (max-width: 1250px) {
	#header-wrapper #tp-micro-wrap { width: 300px; }
}
@media (max-width: 1120px) {
	#header-wrapper #tp-micro-wrap { display: none !important; }
}

@media (max-width: 760px) {
	:root {
		--qk-nav-h: 56px;
		--qk-nav-h-scrolled: 56px;
		--qk-gutter: 16px;
		--qk-h1: 32px; --qk-h1-lh: 38px;
		--qk-h2: 24px; --qk-h2-lh: 30px;
		--qk-section: 40px;
	}
	#header-wrapper .socialIcon,
	#header-wrapper .contact-info .contact-text { display: none; }
	#header-wrapper .qk-utility { justify-content: center; }
	#header-wrapper .main-nav .logo,
	#header-wrapper.is-scrolled .main-nav .logo { width: 130px; }
	#header-wrapper .top-button--ghost { display: none; }
}

/* ---------- Location hero ---------- */
.qk-hero { padding: 48px 0; }
.qk-hero__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: clamp(24px, 4vw, 48px);
	align-items: center;
}
.qk-hero__title {
	margin: 0 0 20px;
	font-size: var(--qk-h1);
	line-height: var(--qk-h1-lh);
	font-weight: 900;
	color: var(--qk-teal);
	letter-spacing: -0.015em;
	text-transform: uppercase;
}
.qk-hero__accent { color: #2f8f5b; } /* Brand green darkened to read as large text on white */
.qk-hero__lead { margin-bottom: 20px; max-width: 58ch; }
.qk-hero__button { margin-bottom: 16px; }
.qk-page .qk-hero__lead p { margin-bottom: 10px; }
.qk-page .qk-hero__lead p:last-child { margin-bottom: 0; }
.qk-contacts { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.qk-contact {
	display: flex;
	align-items: center;
	gap: 16px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.3;
}
.qk-contact a { color: var(--qk-teal); text-decoration: none; }
.qk-contact a:hover { color: var(--qk-teal); text-decoration: underline; }
.qk-contact__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 36px;
	height: 36px;
	border-radius: 7px;
	background: var(--qk-green);
	color: var(--qk-teal);
	font-size: 16px;
}

.qk-hero__solo { max-width: var(--qk-container); }
.qk-hero__solo .qk-hero__lead { max-width: 68ch; }

/* Form: tightens the theme's Contact Form 7 styling */
.qk-hero__form.inner_banner_head_form_main { padding: 12px !important; border-radius: var(--qk-radius); } /* Live CSS adds uneven padding */
.qk-hero__form .inner_banner_head_form { padding: 24px; border-radius: 8px; }
.qk-hero__form-title {
	margin: 0 0 16px;
	font-size: 20px;
	line-height: 1.3;
	font-weight: 600;
	color: var(--qk-teal);
}
.qk-hero__form .inner_banner_head_form .form-group {
	align-items: center;
	gap: 10px;
	height: auto !important; /* The theme fixes the message field's height */
	margin-bottom: 10px;
	padding: 0 14px;
	border: 1px solid var(--qk-line);
	border-radius: 8px;
}
.qk-hero__form .inner_banner_head_form .form-group.message { align-items: flex-start; }
.qk-hero__form .inner_banner_head_form .form-group:focus-within { border-color: var(--qk-teal); box-shadow: 0 0 0 1px var(--qk-teal); }
.qk-hero__form .form-group .img_icon { flex: none; width: 18px; }
.qk-hero__form .form-group .img_icon img { display: block; width: 18px; height: 18px; object-fit: contain; }
.qk-hero__form .form-group.message .img_icon { padding-top: 12px; }
.qk-hero__form .inner_banner_head_form form p { margin: 0 !important; text-align: left; }
.qk-hero__form .inner_banner_head_form .form-group > p { flex: 1; min-width: 0; }
.qk-hero__form .wpcf7-form-control-wrap { display: block; }

/* Same text position and size in every field */
.qk-hero__form .inner_banner_head_form .form-group .form-control {
	display: block;
	width: 100%;
	height: 44px;
	margin: 0 !important;
	padding: 0;
	border: 0;
	background: transparent;
	box-shadow: none;
	color: var(--qk-teal);
	font-size: 16px;
	line-height: 24px;
}
.qk-hero__form .inner_banner_head_form .form-group textarea.form-control {
	height: 84px !important;
	padding: 9px 0;
	resize: none;
}
.qk-hero__form .form-control::placeholder { color: #5f7d84; opacity: 1; }

/* Button. Contact Form 7's hidden spinner would otherwise sit on a line of its own. */
.qk-hero__form .wpcf7-form > p { position: relative; }
.qk-hero__form .wpcf7-spinner { position: absolute; top: 10px; right: 0; margin: 0; }
.qk-hero__form input.wpcf7-form-control.wpcf7-submit.has-spinner.btn_sub,
.qk-hero__form input[type="submit"] {
	display: block;
	width: 100%;
	height: var(--qk-btn-h);
	border: 0;
	border-radius: 8px;
	background: var(--qk-green);
	color: var(--qk-teal);
	font-size: 16px;
	font-weight: 600;
	line-height: 1;
	cursor: pointer;
	transition: background-color .2s, color .2s;
}
.qk-hero__form input.wpcf7-form-control.wpcf7-submit.has-spinner.btn_sub:hover,
.qk-hero__form input[type="submit"]:hover { background: var(--qk-teal); color: #fff; }
.qk-hero__form .wpcf7-form > p br { display: none; }

/* Security check and terms */
.qk-hero__form .wpcf7-turnstile { display: flex; justify-content: center; margin: 12px 0 0; max-width: 100%; }
.qk-hero__form .wpcf7-turnstile > * { display: flex; justify-content: center; }
.qk-hero__form .wpcf7-turnstile:empty { margin-top: 0; }
.qk-hero__form .inner_banner_head_form .wpcf7-form > p:not(:has(.wpcf7-submit)) {
	margin-top: 10px !important;
	color: var(--qk-teal-soft);
	font-size: 14px;
	line-height: 20px;
	text-align: center;
}
.qk-hero__form .inner_banner_head_form .wpcf7-form > p:not(:has(.wpcf7-submit)) a {
	color: var(--qk-teal);
	font-weight: 600;
	opacity: 1;
	text-decoration: underline;
}

/* ---------- Services cards ---------- */
.qk-services__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--qk-gap);
}
.qk-card,
.qk-page a.qk-card {
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: var(--qk-card-pad);
	border: 1.5px solid var(--qk-line);
	border-radius: var(--qk-radius);
	color: var(--qk-teal);
	text-decoration: none;
	transition: background-color .2s, border-color .2s;
}
.qk-card:hover,
.qk-page a.qk-card:hover { border-color: var(--qk-green); background: var(--qk-green-tint); color: var(--qk-teal); }
.qk-card__head { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 4px; }
.qk-card__icon { width: 36px; height: 36px; object-fit: contain; }
.qk-card__arrow { width: 26px; height: 26px; margin-left: auto; }
.qk-card__title {
	margin: 0;
	font-size: var(--qk-h3);
	line-height: var(--qk-h3-lh);
	font-weight: 600;
	color: var(--qk-teal);
}
.qk-page .qk-card__text { margin-bottom: 14px; color: var(--qk-teal-soft); font-size: 16px; line-height: 1.5; }
.qk-card__more {
	align-self: flex-start;
	margin-top: auto;
	padding: 8px 14px;
	border-radius: 8px;
	box-shadow: inset 0 0 0 1.5px var(--qk-teal);
	color: var(--qk-teal);
	font-size: 16px;
	font-weight: 600;
	line-height: 20px;
}
.qk-card:hover .qk-card__more { background: var(--qk-teal); color: #fff; }

/* ---------- Feature grid ---------- */
.qk-features__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--qk-gap);
}
.qk-feature {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	padding: var(--qk-card-pad);
	border: 1.5px solid var(--qk-line);
	border-radius: var(--qk-radius);
	background: #fff;
}
.qk-feature__icon { flex: none; width: 56px; height: 56px; object-fit: contain; }
.qk-feature__title {
	margin: 0 0 4px;
	font-size: var(--qk-h3);
	line-height: var(--qk-h3-lh);
	font-weight: 600;
	color: var(--qk-teal);
}
.qk-page .qk-feature__text { color: var(--qk-teal-soft); font-size: 16px; line-height: 24px; }

/* ---------- Rich text ---------- */
.qk-prose__inner { max-width: 720px; }
.qk-prose__inner h2 {
	margin: 32px 0 12px;
	font-size: 26px;
	line-height: 32px;
	font-weight: 700;
	color: var(--qk-teal);
}
.qk-prose__inner h3 {
	margin: 24px 0 6px;
	font-size: 19px;
	line-height: 1.3;
	font-weight: 600;
	color: var(--qk-teal);
}
.qk-prose__inner > :first-child { margin-top: 0; }

/* Heading left, text right, on the same columns as the 50/50 rows */
.qk-prose__inner--split {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	column-gap: clamp(32px, 5vw, 72px);
	max-width: none;
}
.qk-prose__inner--split > * { grid-column: 2; }
.qk-prose__inner--split > :first-child { grid-column: 1; grid-row: 1 / span 20; margin-bottom: 0; }
.qk-page .qk-prose__inner--split > p:last-child { margin-bottom: 0; }
.qk-page .qk-prose__inner p { margin-bottom: 16px; font-size: 16px; line-height: 27px; }
.qk-prose__inner ul,
.qk-prose__inner ol { margin: 0 0 16px; padding-left: 20px; line-height: 27px; }
.qk-prose__inner ul { list-style: disc; }
.qk-prose__inner ol { list-style: decimal; }
.qk-prose__inner li { list-style: inherit; }

/* Image beside the text. The text keeps its 720px width, so the copy is no more cramped. */
.qk-prose__grid {
	display: grid;
	grid-template-columns: minmax(0, 720px) minmax(0, 1fr);
	gap: clamp(32px, 5vw, 64px);
	align-items: start;
}
.qk-prose__media img {
	display: block;
	width: 100%;
	aspect-ratio: 4 / 5;
	object-fit: cover;
	border-radius: var(--qk-radius);
}

/* ---------- 50/50 rows ---------- */
.qk-rows__list { display: grid; gap: 48px; }
.qk-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: clamp(32px, 5vw, 72px);
	align-items: start;
}
.qk-row + .qk-row { padding-top: 48px; border-top: 1px solid var(--qk-line); }
.qk-row--image-left .qk-row__media { order: -1; }
.qk-row--text { grid-template-columns: minmax(0, 720px); }
.qk-row__media img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: var(--qk-radius);
}
.qk-row__text h2 {
	margin: 28px 0 10px;
	font-size: 26px;
	line-height: 32px;
	font-weight: 700;
	color: var(--qk-teal);
}
.qk-row__text h3 {
	margin: 24px 0 6px;
	font-size: 19px;
	line-height: 1.3;
	font-weight: 600;
	color: var(--qk-teal);
}
.qk-row__text h4,
.qk-prose__inner h4 {
	margin: 18px 0 4px;
	font-size: 16px;
	line-height: 1.4;
	font-weight: 700;
	color: var(--qk-teal);
}
.qk-row__text > :first-child { margin-top: 0; }
.qk-page .qk-row__text p { margin-bottom: 14px; font-size: 16px; line-height: 27px; }
.qk-page .qk-row__text > :last-child { margin-bottom: 0; }
.qk-row__text ul,
.qk-row__text ol { margin: 0 0 14px; padding-left: 20px; line-height: 27px; }
.qk-row__text ul { list-style: disc; }
.qk-row__text ol { list-style: decimal; }
.qk-row__text li { list-style: inherit; }

/* ---------- Video hero ---------- */
.qk-video-hero { padding: 24px 0 0; }
.qk-video-hero__box {
	position: relative;
	display: flex;
	align-items: center;
	min-height: 460px;
	padding: 32px;
	overflow: hidden;
	border-radius: var(--qk-radius);
	background: var(--qk-teal);
}
.qk-video-hero__media { position: absolute; inset: 0; }
.qk-video-hero__media video { display: block; width: 100%; height: 100%; object-fit: cover; }
.qk-video-hero__card {
	position: relative;
	width: min(520px, 100%);
	padding: 28px;
	border-radius: var(--qk-radius);
	background: rgba(255, 255, 255, .94);
}
.qk-video-hero__title {
	margin: 0 0 14px;
	font-size: 36px;
	line-height: 41px;
	font-weight: 900;
	color: var(--qk-teal);
	letter-spacing: -0.015em;
	text-transform: uppercase;
}
.qk-video-hero__title span,
.qk-news .qk-h2 span { color: #2f8f5b; } /* Brand green darkened to read as large text on white */
.qk-page .qk-video-hero__text { margin-bottom: 18px; }

/* ---------- News cards ---------- */
.qk-news__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.qk-news__head .qk-h2 { margin: 0; }
.qk-page .qk-news__intro { margin-top: 8px; max-width: 62ch; }
.qk-news__head .qk-btn { flex: none; }
.qk-news__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--qk-gap); }
.qk-article,
.qk-page a.qk-article { display: flex; flex-direction: column; color: var(--qk-teal); text-decoration: none; }
.qk-article__image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; margin-bottom: 10px; object-fit: cover; border-radius: var(--qk-radius); }
.qk-article__date { color: var(--qk-teal-soft); font-size: 14px; line-height: 20px; }
.qk-article__title { margin: 4px 0; font-size: var(--qk-h3); line-height: var(--qk-h3-lh); font-weight: 600; color: var(--qk-teal); }
.qk-article:hover .qk-article__title { text-decoration: underline; }
.qk-page .qk-article__text { margin-bottom: 14px; color: var(--qk-teal-soft); font-size: 16px; line-height: 24px; }
.qk-article__more {
	align-self: flex-start;
	margin-top: auto;
	padding: 8px 14px;
	border-radius: 8px;
	box-shadow: inset 0 0 0 1.5px var(--qk-teal);
	font-size: 16px;
	font-weight: 600;
	line-height: 20px;
}
.qk-article:hover .qk-article__more { background: var(--qk-teal); color: #fff; }

/* ---------- Industries grid ---------- */
.qk-video-hero--image .qk-video-hero__box { min-height: 380px; }
.qk-video-hero__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.qk-page .qk-video-hero--image .qk-video-hero__text { margin-bottom: 0; color: var(--qk-teal); font-size: 16px; line-height: 25px; }
.qk-industries__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--qk-gap); }
.qk-page a.qk-industry {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1.5px solid var(--qk-line);
	border-radius: var(--qk-radius);
	background: #fff;
	color: var(--qk-teal);
	text-decoration: none;
}
.qk-page a.qk-industry:hover { border-color: var(--qk-green); background: var(--qk-green-tint); }
.qk-industry__image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; }
.qk-industry__body { display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 14px 16px 16px; }
.qk-industry__title { margin: 0; font-size: 18px; line-height: 24px; font-weight: 600; color: var(--qk-teal); }
.qk-page .qk-industry__text { margin: 0 0 6px; color: var(--qk-teal-soft); font-size: 16px; line-height: 24px; }
.qk-industry__more {
	display: inline-flex;
	align-items: center;
	align-self: flex-end;
	justify-content: center;
	width: 32px;
	height: 32px;
	margin-top: auto;
	border-radius: 50%;
	background: var(--qk-green-tint);
	box-shadow: inset 0 0 0 1.5px var(--qk-green);
	color: var(--qk-teal);
}
.qk-industry__more svg { transition: transform .2s ease; }
.qk-industry:hover .qk-industry__more { background: var(--qk-green); }
.qk-industry:hover .qk-industry__more svg { transform: translateX(2px); }
.qk-industries__talk {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	gap: 6px;
	padding: 20px 24px;
	border-radius: var(--qk-radius);
	background: var(--qk-teal);
	color: #fff;
}
.qk-industries__talk-title { margin: 0; font-size: 19px; line-height: 25px; font-weight: 700; color: #fff; }
.qk-page .qk-industries__talk p { margin: 0; color: #fff; font-size: 16px; line-height: 24px; }
.qk-industries__talk .qk-btn { margin-top: 8px; }
@media (max-width: 1000px) {
	.qk-industries__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.qk-video-hero--image .qk-video-hero__box { min-height: 300px; }
}
/* Phones: 17 full cards would be very long, so each becomes a row */
@media (max-width: 600px) {
	.qk-industries__grid { grid-template-columns: minmax(0, 1fr); }
	.qk-page a.qk-industry { flex-direction: row; align-items: flex-start; gap: 12px; padding: 12px; }
	.qk-industry__image { flex: none; width: 72px; height: 72px; aspect-ratio: auto; border-radius: 8px; }
	.qk-industry__body { padding: 0; }
}

/* ---------- Single industry ---------- */
.qk-banner__copy { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 32px; align-items: end; }
.qk-banner__copy .qk-hero__title { grid-column: 1 / -1; margin-bottom: 12px; }
.qk-page .qk-banner__lead { max-width: 58ch; margin: 0; color: var(--qk-teal); font-size: 16px; line-height: 25px; }
.qk-banner__media { height: 280px; margin-top: 24px; overflow: hidden; border-radius: var(--qk-radius); background: var(--qk-teal); }
.qk-banner__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.qk-banner + .qk-content-form { padding-top: 8px; }
.qk-content-form__grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: clamp(32px, 5vw, 64px); align-items: start; }
.qk-content-form__side { position: sticky; top: 96px; }
.qk-content-form #enquire { scroll-margin-top: 96px; }
/* The old content mixes H2 and H3 for headings of the same level, so they look the same here */
.qk-content-form .qk-prose__inner h2,
.qk-content-form .qk-prose__inner h3 { margin: 40px 0 10px; font-size: 26px; line-height: 32px; font-weight: 700; color: var(--qk-teal); }
.qk-content-form .qk-prose__inner > :first-child { margin-top: 0; }
.qk-page .qk-content-form .qk-prose__inner p,
.qk-content-form .qk-prose__inner li { color: var(--qk-teal); }
.qk-news__head .qk-h2 span { color: #2f8f5b; }
@media (max-width: 900px) {
	.qk-banner__copy { grid-template-columns: minmax(0, 1fr); gap: 14px; }
	.qk-banner__copy .qk-hero__title { margin-bottom: 0; }
	.qk-banner__media { height: 200px; }
	.qk-content-form__grid { grid-template-columns: minmax(0, 1fr); }
	.qk-content-form__side { position: static; }
}

/* ---------- Locations page ---------- */
.qk-locs-hero { padding: 24px 0 0; }
.qk-locs-hero__box {
	display: grid;
	grid-template-columns: minmax(0, 1fr) 476px;
	gap: clamp(24px, 4vw, 48px);
	align-items: center;
	padding: 24px 40px;
	border-radius: var(--qk-radius);
	background: var(--qk-green-tint);
}
.qk-locs-hero__text .qk-hero__title { margin-bottom: 12px; }
.qk-page .qk-locs-hero__text p { max-width: 58ch; margin: 0 0 10px; color: var(--qk-teal); font-size: 16px; line-height: 25px; }
.qk-page .qk-locs-hero__text p:last-child { margin-bottom: 0; }
.qk-locs-hero__map { display: flex; justify-content: flex-end; min-width: 0; }
.qk-locs-hero__map .hotspots-container { max-width: 100%; }
.qk-locs-hero__map .hotspots-image-container,
.qk-locs-hero__map .leaflet-container,
.qk-locs-hero__map .hotspots-placeholder { background: transparent !important; }
.qk-locs-hero__map .hotspot-default { stroke: #49b178; stroke-width: 2; fill: #49b178; fill-opacity: .18; }
.qk-locs-hero__map .hotspot-default:hover,
.qk-locs-hero__map .hotspot-default.hotspot-active { fill: #49b178; fill-opacity: .36; stroke: #49b178; }

.qk-locs__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--qk-gap); }
.qk-loc { display: flex; flex-direction: column; overflow: hidden; border: 1.5px solid var(--qk-line); border-radius: var(--qk-radius); background: #fff; scroll-margin-top: 96px; }
.qk-loc:hover { border-color: var(--qk-green); }
.qk-loc__image { display: block; width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.qk-loc__body { display: flex; flex: 1; flex-direction: column; gap: 12px; padding: 16px; }
.qk-loc__title { margin: 0; font-size: 22px; line-height: 28px; font-weight: 700; color: var(--qk-teal); }
.qk-page .qk-loc__title a { color: var(--qk-teal); text-decoration: none; }
.qk-page .qk-loc__title a:hover { text-decoration: underline; text-underline-offset: 3px; }
.qk-loc__title span { color: #2f8f5b; }
.qk-loc__list { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.qk-loc__list li { display: flex; align-items: flex-start; gap: 10px; margin: 0; color: var(--qk-teal-soft); font-size: 16px; line-height: 24px; overflow-wrap: anywhere; list-style: none; }
.qk-loc__list i { flex: none; width: 16px; margin-top: 5px; color: #27804f; font-size: 14px; text-align: center; }
.qk-page .qk-loc__list a { color: var(--qk-teal-soft); text-decoration: none; }
.qk-page .qk-loc__list a:hover { text-decoration: underline; text-underline-offset: 2px; }
.qk-page a.qk-loc__more {
	align-self: flex-start;
	margin-top: auto;
	padding: 8px 14px;
	border-radius: 8px;
	box-shadow: inset 0 0 0 1.5px var(--qk-teal);
	color: var(--qk-teal);
	font-size: 16px;
	line-height: 20px;
	font-weight: 600;
	text-decoration: none;
}
.qk-page a.qk-loc__more:hover { background: var(--qk-teal); color: #fff; }
.qk-loc__more i { margin-left: 6px; font-size: 14px; }

.qk-contact-band { background: var(--qk-green-tint); }
.qk-contact-band__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(32px, 5vw, 64px); align-items: center; }
.qk-contact-band .qk-h2 { margin: 0 0 10px; }
.qk-contact-band .qk-h2 span { color: #2f8f5b; }
.qk-page .qk-contact-band__text p { max-width: 52ch; margin: 0 0 18px; color: var(--qk-teal); font-size: 16px; line-height: 25px; }
.qk-contact-band__list { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.qk-contact-band__list li { display: flex; align-items: center; gap: 12px; margin: 0; color: var(--qk-teal); font-size: 16px; line-height: 22px; font-weight: 500; list-style: none; }
.qk-contact-band__list img { flex: none; width: 36px; height: 36px; object-fit: contain; }

@media (max-width: 1000px) {
	.qk-locs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.qk-locs-hero__box { grid-template-columns: minmax(0, 1fr); padding: 20px; }
	.qk-locs-hero__map { justify-content: center; }
	.qk-contact-band__grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
	.qk-locs__grid { grid-template-columns: minmax(0, 1fr); }
	.qk-loc__body { padding: 16px 14px; }
	.qk-loc__list li { gap: 8px; }
	.qk-loc__list i { width: 14px; }
}

/* Reviews: one row before the slider script starts, so all of them don't stack down the page and then collapse */
.testimonial:not(.slick-initialized) { display: flex; overflow: hidden; max-height: 320px; }
.testimonial:not(.slick-initialized) > * { flex: 0 0 min(440px, 85vw); }

/* ---------- Author page ---------- */
.qk-author { padding: 24px 0 0; }
.qk-author__box { display: grid; grid-template-columns: 160px minmax(0, 1fr); gap: 32px; align-items: center; padding: 32px; border-radius: var(--qk-radius); background: var(--qk-teal); color: #fff; }
.qk-author__photo { display: block; width: 160px; height: 160px; border-radius: 50%; object-fit: cover; }
.qk-author__name { margin: 0 0 8px; font-size: var(--qk-h2); line-height: var(--qk-h2-lh); font-weight: 900; color: #fff; letter-spacing: -0.01em; text-transform: uppercase; }
.qk-page .qk-author__box p { max-width: 72ch; margin: 0 0 10px; color: #d9e6e3; font-size: 16px; line-height: 27px; }
.qk-page .qk-author__box p:last-child { margin-bottom: 0; }
.qk-author__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.qk-author__grid .communityCard { height: 100%; }
@media (max-width: 1000px) {
	.qk-author__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
	.qk-author__box { grid-template-columns: minmax(0, 1fr); gap: 16px; padding: 20px 16px; justify-items: start; }
	.qk-author__photo { width: 96px; height: 96px; }
	.qk-author__grid { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Article header: smaller title, a small author line, less space around the image ---------- */
.single-post .section-heading2 { margin-top: 32px !important; }
.single-post .section-heading2 h1 { margin: 0 0 10px; font-size: 40px !important; line-height: 48px !important; }
.single-post .community-header-in { margin-top: 24px !important; }
.single-post .community-header-in img { height: clamp(220px, 36vw, 440px); }
.single-post .com-sub-title.qk-byline { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 4px 8px; margin: 0; color: var(--qk-teal-soft); font-size: 15px !important; line-height: 22px !important; }
.qk-byline a { display: inline-flex; align-items: center; gap: 8px; color: var(--qk-teal); font-weight: 600; text-decoration: none; }
.qk-byline a:hover span { text-decoration: underline; }
.qk-byline img { display: block; width: 28px !important; height: 28px !important; margin: 0; border-radius: 50%; object-fit: cover; }
@media (max-width: 760px) {
	.single-post .section-heading2 { margin-top: 24px !important; }
	.single-post .section-heading2 h1 { font-size: 28px !important; line-height: 34px !important; }
	.single-post .community-header-in { margin-top: 16px !important; }
}

/* ---------- News pagination ---------- */
.qk-pagination { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin: 32px 0 0; }
.qk-pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 8px; color: var(--qk-teal); font-size: 16px; font-weight: 600; line-height: 1; text-decoration: none; }
.qk-pagination a.page-numbers { box-shadow: inset 0 0 0 1.5px var(--qk-line); }
.qk-pagination a.page-numbers:hover { background: var(--qk-teal); box-shadow: none; color: #fff; }
.qk-pagination .page-numbers.current { background: var(--qk-teal); color: #fff; }
.qk-pagination .page-numbers.dots { min-width: 24px; padding: 0; }
.community-header:not(:has(.row)) { display: none; } /* The featured post only shows on page one */
.qk-news-cards .communityCard h3 a { color: inherit; text-decoration: none; }
.qk-news-cards .communityCard h3 a:hover { text-decoration: underline; }

/* ---------- News page tidy-up. The template and its filters are unchanged. ---------- */
.qk-news-page .section-heading2 { margin-top: 0 !important; padding: 48px 0 0 !important; }
.qk-news-page .section-heading2 .container,
.qk-news-page .community-card-section .container { max-width: var(--qk-container); }
.qk-news-page .section-heading2 h1 { margin: 0 0 8px; font-size: var(--qk-h1); line-height: var(--qk-h1-lh); font-weight: 900; letter-spacing: -0.015em; }
.qk-news-page .section-heading2 h1 span { color: #2f8f5b !important; }
.qk-news-page .section-heading2 > .container > .row p { max-width: 68ch; margin: 0; color: var(--qk-teal); font-size: 16px; line-height: 25px; }

/* Latest article */
.qk-news-page .community-header { margin: 24px 0 0; padding: 16px; border: 0; border-radius: var(--qk-radius); background: var(--qk-green-tint); }
.qk-news-page .community-header > .row { align-items: center; }
.qk-news-page .community-header .imageCurve { margin: 0; }
.qk-news-page .community-header .imageCurve img { display: block; width: 100%; height: 260px; object-fit: cover; border-radius: 8px; }
.qk-news-page .community-header-right { padding: 0; }
.qk-news-page .community-header-right h3 { margin: 0 0 8px; font-size: 26px; line-height: 32px; font-weight: 700; }
.qk-news-page .community-header-right h3 a { color: var(--qk-teal); }
.qk-news-page .community-header-right p { margin: 0 0 8px; color: var(--qk-teal-soft); font-size: 16px; line-height: 25px; }
.qk-news-page .communitydwrap { margin: 0; padding: 0; }
.qk-news-cards .blogTime { color: var(--qk-teal-soft); font-size: 14px; line-height: 20px; }
.qk-news-page .blogbtn { margin: 14px 0 0; }
.qk-news-page .blogbtn a {
	display: inline-flex;
	align-items: center;
	height: auto;
	min-height: var(--qk-btn-h);
	padding: 8px 20px;
	border-radius: 8px;
	background: var(--qk-green);
	color: var(--qk-teal) !important;
	font-size: 16px;
	font-weight: 600;
	line-height: 20px;
	max-width: 100%; /* custom.css caps this at 164px, which forced it onto two lines */
	text-align: center;
	text-transform: none;
}
.qk-news-page .blogbtn a:hover { background: var(--qk-teal); color: #fff !important; }

/* Filters and search */
.qk-news-page .community-card-section { margin: 0; padding: 24px 0 56px; }
.qk-news-page .filters { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 24px; padding: 0; border: 0; }
.qk-news-page .filters > div:first-child { display: flex; flex: 1 1 auto; flex-wrap: wrap; gap: 8px; order: 0; }
.qk-news-page .filter-btn {
	height: 40px;
	margin: 0 !important;
	padding: 0 16px;
	border: 1.5px solid var(--qk-line);
	border-radius: 8px;
	background: #fff;
	color: var(--qk-teal);
	font-size: 16px !important;
	line-height: 1;
	font-weight: 500;
	box-shadow: none;
}
.qk-news-page .filter-btn:hover { border-color: var(--qk-green); }
.qk-news-page .filter-btn.active { border-color: var(--qk-teal); background: var(--qk-teal); color: #fff; }
.qk-news-page .extra-categories { flex: 1 0 100%; margin: 0; }
.qk-news-page .extra-categories[style*="block"] { display: flex !important; flex-wrap: wrap; gap: 8px; }
.qk-news-page .filter-wrapper { margin: 0; padding: 0; }
.qk-news-page #filterToggle { display: inline-flex; align-items: center; gap: 8px; height: 40px; padding: 0 12px; border: 0; background: none; color: var(--qk-teal); font-size: 16px; font-weight: 500; }
.qk-news-page .filters > .d-flex { position: relative; display: block !important; margin: 0 !important; }
.qk-news-page #searchInput { width: 240px; height: 40px; margin: 0; padding: 0 40px 0 12px; border: 1.5px solid var(--qk-line); border-radius: 8px; background: #fff; color: var(--qk-teal); font-size: 16px; }
.qk-news-page #searchInput:focus { border-color: var(--qk-teal); outline: 0; }
.qk-news-page #searchInput::placeholder { color: #5f7d84; opacity: 1; }
.qk-news-page .filters > .d-flex svg { position: absolute; top: 10px; right: 10px; width: 20px; height: 20px; pointer-events: none; }

/* News card: the News grid, Other News on articles and Related news on industries.
   The arrow's link stretches over the card, so the whole card is clickable. */
.qk-news-cards #communityCardsContainer,
.qk-news-cards .section-other-news .row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--qk-gap); margin: 0; }
.qk-news-cards #communityCardsContainer > .Comcard,
.qk-news-cards .section-other-news .row > div { flex: none; width: auto; max-width: none; margin: 0; padding: 0; }
.qk-news-cards .section-other-news { margin: 0; padding: var(--qk-section) 0; background: var(--qk-green-tint); }
.qk-news-cards .section-other-news h2 { margin: 0 0 24px; font-size: var(--qk-h2); line-height: var(--qk-h2-lh); font-weight: 900; text-transform: uppercase; }
.qk-news-cards .section-other-news h2 span { color: #2f8f5b; }
.qk-news-cards #communityCardsContainer > #noResults { grid-column: 1 / -1; margin: 0; color: var(--qk-teal); font-size: 16px; }
.qk-news-cards .communityCard {
	position: relative;
	display: flex;
	flex-direction: column;
	height: 100%;
	margin: 0;
	padding: 0;
	overflow: hidden;
	border: 1.5px solid var(--qk-line);
	border-radius: var(--qk-radius);
	background: #fff;
	box-shadow: none;
}
.qk-news-cards .communityCard:hover { border-color: var(--qk-green); background: var(--qk-green-tint); }
.qk-news-cards .communityCard > a:not(.btn-learnMore) { color: inherit; text-decoration: none; }
.qk-news-cards .communityImg { height: auto !important; margin: 0; border-radius: 0; }
.qk-news-cards .communityImg img { display: block; width: 100%; height: auto !important; min-height: 0; aspect-ratio: 16 / 9; object-fit: cover; border-radius: 0; }
.qk-news-cards .communityCard h3 {
	display: block !important;
	height: auto !important;
	margin: 14px 16px 6px;
	overflow: visible !important;
	color: var(--qk-teal);
	font-size: 18px !important;
	line-height: 24px !important;
	font-weight: 600;
	white-space: normal !important;
	-webkit-line-clamp: unset !important;
}
.qk-news-cards .communityCard p { height: auto; margin: 0 16px 8px; color: var(--qk-teal-soft); font-size: 16px; line-height: 24px; }
.qk-news-cards .communityCard .communitydwrap { margin: 0 16px 12px; }
.qk-news-cards .communityCard a.btn-learnMore {
	position: static !important;
	align-self: flex-start;
	width: auto;
	height: auto;
	margin: auto 16px 16px;
	padding: 8px 14px;
	border: 0;
	border-radius: 8px;
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--qk-teal);
	color: var(--qk-teal) !important;
	font-size: 16px;
	font-weight: 600;
	line-height: 20px;
	text-decoration: none;
}
.qk-news-cards .communityCard a.btn-learnMore::after { content: ""; position: absolute; inset: 0; }
.qk-news-cards .communityCard:hover a.btn-learnMore { background: var(--qk-teal); color: #fff !important; }

/* Reviews, at the same size as the new templates */
.qk-news-page section.section.testimonials { margin: 0; padding: 48px 0; }

@media (max-width: 1000px) {
	.qk-news-cards #communityCardsContainer,
	.qk-news-cards .section-other-news .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
	.qk-news-page .section-heading2 { padding-top: 32px !important; }
	.qk-news-page .section-heading2 h1 { font-size: 32px; line-height: 38px; }
	.qk-news-page .community-header .imageCurve img { height: 200px; margin-bottom: 14px; }
	.qk-news-page .community-header-right h3 { font-size: 22px; line-height: 28px; }
	.qk-news-page .filters > div:first-child { flex: 1 0 100%; }
	.qk-news-page .filters > .d-flex { flex: 1 0 100%; width: 100%; height: auto !important; }
	.qk-news-page #searchInput { width: 100% !important; margin: 0 !important; }
}
@media (max-width: 640px) {
	.qk-news-cards #communityCardsContainer,
	.qk-news-cards .section-other-news .row { grid-template-columns: minmax(0, 1fr); }
}

/* ---------- Contact page ---------- */
.qk-page a.qk-btn--ghost { background: transparent; box-shadow: inset 0 0 0 1.5px var(--qk-teal); color: var(--qk-teal); }
.qk-page a.qk-btn--ghost:hover { background: var(--qk-teal); color: #fff; }
.qk-section.qk-contact-band--hero { padding: 48px 0; background: none; }
.qk-contact-band--hero .qk-hero__title { margin-bottom: 10px; }
.qk-contact-band--hero .qk-hero__title span { color: #2f8f5b; }

.qk-office { background: var(--qk-green-tint); }
.qk-office__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: clamp(32px, 5vw, 64px); align-items: center; }
.qk-page .qk-office__label { margin: 0 0 4px; color: #27804f; font-size: 14px; line-height: 20px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.qk-office__name { margin: 0 0 12px; color: var(--qk-teal); font-size: 26px; line-height: 32px; font-weight: 700; }
.qk-office__list { margin-bottom: 16px; }
.qk-office__list li,
.qk-page .qk-office__list a { color: var(--qk-teal); }
.qk-office__map { height: 340px; overflow: hidden; border-radius: var(--qk-radius); background: var(--qk-panel); }
.qk-office__map iframe { display: block; width: 100%; height: 100%; border: 0; }

.qk-locs__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 24px; }
.qk-locs__head .qk-h2 { margin: 0; }
.qk-locs__head .qk-h2 span { color: #2f8f5b; }
.qk-locs__head .qk-btn { flex: none; }
@media (max-width: 900px) {
	.qk-office__grid { grid-template-columns: minmax(0, 1fr); }
	.qk-office__map { height: 300px; }
}
@media (max-width: 640px) {
	.qk-locs__head { flex-direction: column; align-items: flex-start; }
}

/* ---------- Services page ---------- */
.qk-hero__solo .qk-hero__title span { color: #2f8f5b; }
.qk-industries--tiles .qk-h2 { margin: 0 0 24px; }
.qk-industries--tiles .qk-industries__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.qk-page .qk-industries--tiles a.qk-industry { position: relative; flex-direction: column; justify-content: flex-end; aspect-ratio: 4 / 3; padding: 0; border: 0; background: var(--qk-teal); }
.qk-industries--tiles .qk-industry__image { position: absolute; inset: 0; width: 100%; height: 100%; aspect-ratio: auto; border-radius: 0; transition: transform .25s ease; }
.qk-industries--tiles a.qk-industry:hover .qk-industry__image { transform: scale(1.04); }
.qk-page .qk-industries--tiles a.qk-industry::after { content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 50, 60, .92), rgba(0, 50, 60, .1) 62%); }
.qk-industries--tiles .qk-industry__body { position: relative; z-index: 1; flex: none; padding: 14px 16px; }
.qk-industries--tiles .qk-industry__title { color: #fff; }
.qk-page .qk-industries--tiles .qk-industry__text,
.qk-industries--tiles .qk-industry__more { display: none; }
.qk-industries--tiles .qk-industries__talk { grid-column: span 3; }
@media (max-width: 1000px) {
	.qk-industries--tiles .qk-industries__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.qk-industries--tiles .qk-industries__talk { grid-column: auto; }
}
@media (max-width: 600px) {
	.qk-industries--tiles .qk-industries__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.qk-industries--tiles .qk-industry__title { font-size: 16px; line-height: 21px; }
	.qk-industries--tiles .qk-industry__body { padding: 10px 12px; }
}

/* ---------- Text columns ---------- */
.qk-columns__list { display: grid; gap: 40px; }
.qk-column { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 3fr); gap: 16px 40px; align-items: start; }
.qk-column__text { max-width: 75ch; }
.qk-column__heading { margin: 0 0 10px; font-size: 26px; line-height: 32px; font-weight: 700; color: var(--qk-teal); }
.qk-page .qk-column__text p { margin-bottom: 12px; color: var(--qk-teal); font-size: 16px; line-height: 27px; }
.qk-column__text br { display: none; } /* Old content has forced line breaks mid-sentence */
.qk-page .qk-column__text a { color: var(--qk-teal); text-decoration: underline !important; text-underline-offset: 2px; }
.qk-page .qk-column__text a:hover { color: var(--qk-teal-soft); }
.qk-page .qk-column__text > :last-child { margin-bottom: 0; }
.qk-page a.qk-column__button {
	margin-top: 14px;
	background: transparent;
	box-shadow: inset 0 0 0 1.5px var(--qk-teal);
	color: var(--qk-teal);
}
.qk-page a.qk-column__button:hover { background: var(--qk-teal); color: #fff; }

/* ---------- CTA banner ---------- */
.qk-cta { padding: 44px 0; background: var(--qk-teal) center / cover no-repeat; color: #fff; }
.qk-cta__inner { display: flex; flex-direction: column; align-items: center; gap: 14px; text-align: center; }
.qk-cta__heading {
	margin: 0;
	font-size: var(--qk-h2);
	line-height: var(--qk-h2-lh);
	font-weight: 900;
	color: #fff;
	text-transform: uppercase;
}
.qk-page .qk-cta__text { max-width: 960px; color: #fff; text-wrap: balance; }
/* The usual teal hover disappears on dark blocks */
.qk-page .qk-cta a.qk-btn:hover,
.qk-page .qk-industries__talk a.qk-btn:hover { background: #fff; color: var(--qk-teal); }

/* ---------- Testimonials ---------- */
.qk-testimonials section.section.testimonials { padding: 48px 0; margin: 0; }

/* ---------- FAQ ---------- */
.qk-faq__grid {
	display: grid;
	grid-template-columns: 2fr 3fr;
	gap: clamp(24px, 4vw, 56px);
	align-items: start;
}
.qk-faq__intro { margin-bottom: 16px; }
.qk-faq .accordion-item { margin: 0; border: 0; border-bottom: 1px solid var(--qk-line); border-radius: 0; background: none; }
.qk-faq .accordion-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 13px 0;
	background: none;
	color: var(--qk-teal);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.4;
	cursor: pointer;
}
/* Closed from the start: custom.js only closes them once it has run, which made the page jump */
.qk-faq .accordion-body { display: none; padding: 0 0 14px; color: var(--qk-teal-soft); font-size: 16px; line-height: 1.6; }

/* ---------- Service pages: centred intro on a dark band, alternating colour rows, green rule on row headings ---------- */
.single-services { --qk-band: #e6f3ec; }
.single-services .qk-prose { background: var(--qk-teal); color: #fff; }
.single-services .qk-prose__inner--split::before { content: ""; display: block; width: 48px; height: 3px; margin: 0 auto 20px; border-radius: 2px; background: var(--qk-green); }
.single-services .qk-prose__inner--split > :is(h1, h2, h3, h4, h5, h6, ul, ol, li) { color: #fff; }
.single-services .qk-prose__inner--split li,
.single-services .qk-prose__inner--split strong { color: #fff; }
.single-services .qk-page .qk-prose__inner--split p { color: #d9e6e3; }
.single-services .qk-page .qk-prose__inner--split a { color: #fff; text-decoration: underline; }
.single-services .qk-prose__inner--split { display: block; max-width: 760px; margin: 0 auto; text-align: center; }
.single-services .qk-prose__inner--split > * { grid-column: auto; }
.single-services .qk-prose__inner--split > :is(h2, h3, h4) { margin: 28px 0 12px; font-size: 20px; line-height: 27px; font-weight: 700; }
.single-services .qk-prose__inner--split > :is(h2, h3, h4):first-child { margin: 0 0 16px; font-size: 24px; line-height: 32px; letter-spacing: -0.01em; }
.single-services .qk-prose__inner--split > :is(ul, ol) { display: inline-block; margin-bottom: 16px; text-align: left; }
.single-services .qk-prose__inner--split img { max-width: 100%; height: auto; margin-inline: auto; }

.single-services .qk-rows { padding: 0; }
.single-services .qk-rows__list { gap: 0; }
.single-services .qk-row,
.single-services .qk-row + .qk-row { align-items: center; padding: 56px 0; border-top: 0; }
/* Full-width colour from inside the container. Neither of these adds sideways scrolling. */
.single-services .qk-row:nth-child(even),
.single-services .qk-hero + .qk-rows .qk-row:nth-child(odd) { background: var(--qk-band); box-shadow: 0 0 0 100vmax var(--qk-band); clip-path: inset(0 -100vmax); }
.single-services .qk-hero + .qk-rows .qk-row:nth-child(even) { background: none; box-shadow: none; clip-path: none; }
.single-services .qk-row__media img { aspect-ratio: 4 / 3; }
.single-services .qk-row__text > h2::before,
.single-services .qk-row__text > :is(h3, h4):first-child::before {
	content: "";
	display: block;
	width: 40px;
	height: 3px;
	margin-bottom: 14px;
	border-radius: 2px;
	background: var(--qk-green);
}
@media (max-width: 760px) {
	.single-services .qk-row,
	.single-services .qk-row + .qk-row { padding: 40px 0; }
	.single-services .qk-prose__inner--split > :is(h2, h3, h4):first-child { font-size: 20px; line-height: 27px; }
	.single-services .qk-prose__inner--split > :is(h2, h3, h4) { margin-bottom: 12px; }
}

/* ---------- Location pages: dark centred opener, then alternating bands with the heading on the left ---------- */
.qk-loc-opener { padding: 56px 0; background: var(--qk-teal); color: #fff; }
.qk-loc-opener__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.qk-loc-opener__inner::before { content: ""; display: block; width: 48px; height: 3px; margin: 0 auto 20px; border-radius: 2px; background: var(--qk-green); }
.qk-loc-opener__inner :is(h1, h2, h3, h4, h5, h6, li, strong) { color: #fff; }
.qk-loc-opener__inner :is(h2, h3, h4, h5, h6) { margin: 24px 0 8px; font-size: 18px; line-height: 25px; font-weight: 700; }
.qk-loc-opener__inner > h2:first-of-type { margin: 0 0 16px; font-size: 24px; line-height: 32px; letter-spacing: -0.01em; }
.qk-page .qk-loc-opener__inner p { margin: 0 0 16px; color: #d9e6e3; font-size: 16px; line-height: 27px; }
.qk-page .qk-loc-opener__inner > :last-child { margin-bottom: 0; }
.qk-page .qk-loc-opener__inner a { color: #fff; text-decoration: underline; }
.qk-loc-band { padding: 56px 0; }
.qk-loc-band:nth-child(odd) { background: #e6f3ec; }
.qk-loc-band__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.qk-loc-band h2 { margin: 28px 0 10px; font-size: 26px; line-height: 32px; font-weight: 700; color: var(--qk-teal); }
.qk-loc-band h2::before { content: ""; display: block; width: 40px; height: 3px; margin-bottom: 14px; border-radius: 2px; background: var(--qk-green); }
.qk-loc-band__head h2 { margin: 0; }
.qk-loc-band__image { display: block; width: 100%; height: auto; margin-top: 20px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--qk-radius); }
.qk-loc-band__body > :first-child { margin-top: 0; }
.qk-loc-band__body :is(h3, h4, h5, h6) { margin: 18px 0 4px; font-size: 16px; line-height: 22px; font-weight: 700; color: var(--qk-teal); }
.qk-page .qk-loc-band__body p { margin: 0 0 14px; color: var(--qk-teal); font-size: 16px; line-height: 27px; }
.qk-loc-band__body ul,
.qk-loc-band__body ol { margin: 0 0 14px; padding-left: 20px; line-height: 27px; }
.qk-loc-band__body ul { list-style: disc; }
.qk-loc-band__body ol { list-style: decimal; }
.qk-loc-band__body li { list-style: inherit; }
.qk-page .qk-loc-band__body > :last-child { margin-bottom: 0; }
@media (max-width: 760px) {
	.qk-loc-opener,
	.qk-loc-band { padding: 40px 0; }
	.qk-loc-opener__inner > h2:first-of-type { font-size: 20px; line-height: 27px; }
	.qk-loc-band__grid { grid-template-columns: minmax(0, 1fr); gap: 16px; }
}

/* ---------- Specialist Vehicles page ---------- */
.qk-sv-hero { padding: 24px var(--qk-gutter) 0; }
.qk-sv-hero__box { overflow: hidden; max-width: calc(var(--qk-container) - 2 * var(--qk-gutter)); margin: 0 auto; border-radius: var(--qk-radius); background: var(--qk-teal); }
.qk-sv-hero__top { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: center; gap: 24px; padding: 32px; background: var(--qk-panel); }
.qk-sv-hero h1 { margin: 0 0 12px; font-size: 40px; line-height: 46px; font-weight: 900; color: var(--qk-teal); letter-spacing: -0.015em; text-transform: uppercase; }
.qk-sv-hero h1 span { color: #2f8f5b; }
.qk-page .qk-sv-hero__copy p { max-width: 46ch; margin: 0 0 16px; color: var(--qk-teal); }
/* The vehicle images have solid white backgrounds. Multiply drops the white on any light colour. */
.qk-sv-hero__media img,
.qk-sv-item__media img { display: block; width: 100%; height: auto; aspect-ratio: 2 / 1; object-fit: cover; mix-blend-mode: multiply; }
.qk-sv-hero__bar { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 14px 32px; color: #d9e6e3; font-size: 14px; }
.qk-sv-hero__bar span { margin-right: 4px; font-weight: 600; }
.qk-page .qk-sv-hero__bar a { padding: 6px 12px; border-radius: 6px; background: rgba(255, 255, 255, .12); color: #fff; font-weight: 500; text-decoration: none; }
.qk-page .qk-sv-hero__bar a:hover { background: var(--qk-green); color: var(--qk-teal); }
.qk-sv-list { margin-top: 24px; padding: 40px 0; background: var(--qk-green-tint); }
.qk-sv-list__grid { display: grid; gap: 16px; }
.qk-sv-item { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(24px, 4vw, 48px); padding: 24px; border: 1px solid var(--qk-line); border-radius: var(--qk-radius); background: #fff; scroll-margin-top: 90px; }
.qk-sv-item__media { align-self: center; }
.qk-sv-item__text { display: flex; flex-direction: column; }
.qk-sv-item h2 { margin: 0 0 8px; font-size: 22px; line-height: 28px; font-weight: 700; color: var(--qk-teal); }
.qk-sv-item__copy { margin-bottom: 12px; }
.qk-page .qk-sv-item__copy p { margin: 0 0 10px; color: var(--qk-teal); font-size: 16px; line-height: 26px; }
.qk-page .qk-sv-item__copy p:has(> strong:only-child) { margin: 12px 0 4px; color: #27804f; font-size: 14px; line-height: 20px; }
.qk-sv-item__copy ul,
.qk-sv-item__copy ol { margin: 0; padding-left: 20px; color: var(--qk-teal); font-size: 15px; line-height: 24px; }
.qk-sv-item__copy ul { list-style: disc; }
.qk-sv-item__copy ol { list-style: decimal; }
.qk-sv-item__copy li { list-style: inherit; }
.qk-page .qk-sv-item .qk-btn { align-self: flex-end; margin-top: auto; }
@media (max-width: 760px) {
	.qk-sv-hero__top { grid-template-columns: minmax(0, 1fr); padding: 20px 16px; }
	.qk-sv-hero h1 { font-size: 32px; line-height: 38px; }
	.qk-sv-hero__bar { padding: 12px 16px; }
	.qk-sv-list { padding: 32px 0; }
	.qk-sv-item { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 16px; }
}

/* ---------- Fleet page: the site's widths and spacing, with a contained header and tighter cards. The markup is unchanged. ---------- */
.qk-fleet-page .fleet-section .container,
.qk-fleet-page #call-to-action .container { width: 100%; max-width: var(--qk-container); padding-left: var(--qk-gutter); padding-right: var(--qk-gutter); }
.qk-fleet-page .fleet-section .container > .row { margin-left: -8px; margin-right: -8px; }
.qk-fleet-page .fleet-section .container > .row > [class*="col-"] { padding-left: 8px; padding-right: 8px; }

/* Header: the two-tone hero in a rounded box, with the slider's specs in a dark bar along the bottom */
.qk-fleet-page .fleet-sector-banner {
	width: calc(100% - 2 * var(--qk-gutter));
	max-width: calc(var(--qk-container) - 2 * var(--qk-gutter));
	margin: 24px auto 0;
	padding-top: 32px;
	overflow: hidden;
	border-radius: var(--qk-radius);
	background: var(--qk-panel);
}
.qk-fleet-page .fleet-sector-banner .container { max-width: none; padding-left: 32px; padding-right: 32px; }
.qk-fleet-page .fleet-sector-banner .container > .row { margin-left: -15px; margin-right: -15px; }
.qk-fleet-page .fleet-sector-banner h1 { max-width: 420px; margin-bottom: 16px; font-size: 40px; line-height: 46px; }
.qk-fleet-page .fleet-sector-banner a.btn-learnMore,
.qk-fleet-page .fleetwrapHeader a.btn-learnMore { flex: none; width: auto; height: var(--qk-btn-h); margin: 0; padding: 0 20px; border-radius: 8px; background: var(--qk-green); color: var(--qk-teal) !important; font-size: 16px; font-weight: 600; line-height: var(--qk-btn-h); }
.qk-fleet-page .fleet-sector-banner a.btn-learnMore:hover,
.qk-fleet-page .fleetwrapHeader a.btn-learnMore:hover { background: var(--qk-teal); color: #fff !important; }
.qk-fleet-page .imagShadowbtm,
.qk-fleet-page .bigBgtext { display: none; }
.qk-fleet-page .fleetv-text-content .flshrtitle { padding: 0; font-size: 13px; line-height: 17px; }
.qk-fleet-page .fleet-sector-banner span.fleetIcon { flex: none; width: 32px; height: 32px; border-radius: 6px; }
.qk-fleet-page .fleet-sector-banner span.fleetIcon img { max-width: 18px; max-height: 18px; }
.qk-fleet-page .fleetv-text-content .row { gap: 24px; margin: 0; }
.qk-fleet-page .fleetv-text-content .icon-title { flex: 0 0 auto; width: auto !important; max-width: none; margin: 0; padding: 0; }
.qk-fleet-page .fleetv-text-content .icon-title ul { display: flex; align-items: center; gap: 8px; margin: 0; padding: 0; }
.qk-fleet-page .fleetv-arrow-button { padding: 8px 12px; }
.qk-fleet-page .fleetv-prev-btn { right: 84px; }
.qk-fleet-page .fleetv-next-btn { right: 32px; }
@media (min-width: 992px) {
	.qk-fleet-page .fleet-sector-banner::after { width: 100%; height: 112px; background: var(--qk-teal); }
	.qk-fleet-page .fleet-sector-banner .container,
	.qk-fleet-page .fleet-sector-banner .fleetv-slider-container,
	.qk-fleet-page .fleetv-slider-container > .col-lg-4 { position: static; }
	.qk-fleet-page .fleet-sector-banner .fleetv-slider-container { min-height: 280px; margin-top: -70px; }
	.qk-fleet-page .fleetv-text-content,
	.qk-fleet-page .fleetv-text-content.fleetv-active { position: absolute; top: auto; bottom: 14px; left: 32px; width: calc(100% - 180px); z-index: 3; }
	.qk-fleet-page .fleetv-text-content h2 { margin: 0 0 8px; font-size: 18px; line-height: 24px; }
	.qk-fleet-page .fleetv-text-content .row { flex-wrap: nowrap; }
	.qk-fleet-page .fleetv-text-content .icon-title:last-child { flex: 0 1 auto; min-width: 0; }
	.qk-fleet-page .fleetRightsection { margin-top: -168px; }
	.qk-fleet-page .fleetv-slide-image img { display: block; width: 470px; max-width: 100%; margin-left: auto; }
	.qk-fleet-page .fleetv-arrow-button { bottom: 34px; }
}
@media (max-width: 991px) {
	.qk-fleet-page .fleet-sector-banner { margin-top: 16px; padding-top: 20px; }
	.qk-fleet-page .fleet-sector-banner .container { padding-left: 16px; padding-right: 16px; }
	.qk-fleet-page .fleet-sector-banner .col-12 { margin-bottom: 16px; }
	.qk-fleet-page .fleet-sector-banner h1 { max-width: none; font-size: 32px; line-height: 38px; }
	.qk-fleet-page .fleet-sector-banner .fleetv-slider-container { position: relative; min-height: 0; margin-top: 0; padding-bottom: 16px; }
	.qk-fleet-page .fleetv-text-content h2 { margin: 0 0 12px; padding-right: 96px; color: var(--qk-teal); font-size: 20px; line-height: 36px; font-weight: 700; }
	.qk-fleet-page .fleetv-text-content,
	.qk-fleet-page .fleetv-text-content.fleetv-active { margin: 0; }
	.qk-fleet-page .fleetv-slider-container > .col-lg-4 { height: auto; min-height: 0; }
	.qk-fleet-page .fleetv-text-content .row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 12px; }
	.qk-fleet-page .fleetv-text-content .icon-title,
	.qk-fleet-page .fleetv-text-content .col-lg-2.col-md-4.col-xs-4 { min-width: 0; margin: 0; }
	.qk-fleet-page .fleetv-text-content .flshrtitle { margin: 0; }
	/* The same height on every slide, so the page below doesn't jump when the arrows are used */
	.qk-fleet-page .fleetv-text-content .icon-title:last-child { grid-column: 1 / -1; min-height: 51px; }
	.qk-fleet-page .fleetv-text-content .flshrtitle { color: var(--qk-teal); }
	.qk-fleet-page .fleet-sector-banner span.fleetIcon { background: var(--qk-teal); }
	.qk-fleet-page .fleetRightsection { margin: 16px 0 0; }
	.qk-fleet-page .fleetv-slide-image.fleetv-active { position: relative; }
	.qk-fleet-page .fleetv-slide-image img { display: block; width: 100%; max-width: 480px; height: auto; margin: 0 auto; aspect-ratio: 2 / 1; object-fit: contain; }
	.qk-fleet-page .fleetv-arrow-button { top: 0; bottom: auto; padding: 6px 10px; }
	.qk-fleet-page .fleetv-prev-btn { right: 60px; }
	.qk-fleet-page .fleetv-next-btn { right: 16px; }
	.qk-fleet-page section.fleet-section { margin-top: 16px; }
}
@media (min-width: 600px) and (max-width: 991px) {
	.qk-fleet-page .fleetv-text-content .row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

/* The fleet list */
.qk-fleet-page section.fleet-section { margin-top: 24px; padding: var(--qk-section) 0; }
.qk-fleet-page section.fleet-section h2 { max-width: none; margin: 0 0 24px; padding-bottom: 0; font-size: var(--qk-h2); line-height: var(--qk-h2-lh); }
.qk-fleet-page .fleet-page-cst { margin-bottom: 16px; }
.qk-fleet-page .fleetWrapbox { margin-top: 0; padding: 16px; border-radius: var(--qk-radius); }
.qk-fleet-page .fleetwrapHeader { align-items: center; gap: 16px; }
.qk-fleet-page .fleetwrapHeader h3 { font-size: 19px; line-height: 25px; font-weight: 700; }
.qk-fleet-page .fleetwrapbody { margin: 8px 0 12px; }
.qk-fleet-page .fleetwrapbody img { display: block; max-height: 180px; object-fit: contain; }
.qk-fleet-page .fleetwrapfootr .row.align-items-center { flex-wrap: nowrap; gap: 8px; margin: 0 0 6px !important; }
.qk-fleet-page .fleetwrapfootr .delivery_icon { flex: none; width: auto; max-width: none; padding: 0; }
.qk-fleet-page .fleetwrapfootr .delivery_text,
.qk-fleet-page .fleetwrapfootr .delivery_tex { flex: 1 1 auto; width: auto; max-width: none; padding: 0; }
.qk-fleet-page .fleetwrapIcons { width: 28px; }
.qk-fleet-page .fleetwrapIcons span.fleetIcon { width: 28px; height: 28px; border-radius: 6px; }
.qk-fleet-page .fleetwrapIcons span.fleetIcon img { max-width: 18px; max-height: 18px; }
.qk-fleet-page .fleetwrapfootr .span-text-title { display: block; margin: 0; font-size: 14px; line-height: 19px; }
.qk-fleet-page .fleet-section .banner-button a { margin-top: 16px; }
@media (max-width: 400px) {
	.qk-fleet-page .fleetwrapHeader { gap: 10px; }
	.qk-fleet-page .fleetwrapHeader h3 { font-size: 17px; line-height: 22px; }
	.qk-fleet-page .fleetwrapHeader a.btn-learnMore { padding: 0 12px; font-size: 15px; }
}

/* The call-to-action band */
.qk-fleet-page #call-to-action { height: auto; padding: 44px 0 !important; }
.qk-fleet-page #call-to-action .cta-content { height: auto; min-height: 0; margin: 0 auto; padding: 0; }
.qk-fleet-page #call-to-action .cta-content h2 { margin-bottom: 8px; font-size: 28px; line-height: 34px; }
.qk-fleet-page #call-to-action .cta-content .banner-button a { margin-top: 8px; }
.qk-fleet-page #call-to-action .cta-content p { margin: 12px 0 0; }

/* ---------- Partners ---------- */
.qk-partners { padding: 48px 0; }
.qk-partners__title {
	margin: 0 0 24px;
	font-size: 17px;
	line-height: 1.4;
	font-weight: 800;
	color: var(--qk-teal);
	text-align: center;
	text-transform: uppercase;
}
.qk-partners__row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 20px 32px;
}
.qk-partners__row img { width: auto; max-width: 150px; height: 48px; object-fit: contain; }

/* ---------- Tightened footer ---------- */
html[data-qk-header] .qk-footer {
	padding: 48px 0 20px;
	font-size: 16px;
	text-align: left;
}
html[data-qk-header] .qk-footer .container { max-width: var(--qk-container); padding-inline: var(--qk-gutter) !important; }
html[data-qk-header] .qk-footer .row > [class*="col-"] { padding-inline: 0; }
html[data-qk-header] .qk-footer .row { margin-inline: 0; }
html[data-qk-header] .qk-footer .footerLogo { display: block; width: 180px; margin: 0 0 24px; }
html[data-qk-header] .qk-footer .shapeFooter { top: -90px; right: 32px; width: 260px; opacity: .6; }
html[data-qk-header] .qk-footer .shapeFooter img { display: block; width: 100%; height: auto; }
html[data-qk-header] .qk-footer .vLine { display: none; }

html[data-qk-header] .qk-footer .asdf { flex: 0 0 44%; max-width: 44%; padding-right: 32px; }
html[data-qk-header] .qk-footer .col-md-2 { flex: 0 0 24%; max-width: 24%; padding-right: 24px; }
html[data-qk-header] .qk-footer .col-md-3 { flex: 0 0 32%; max-width: 32%; }

html[data-qk-header] .qk-footer .footerContleft,
html[data-qk-header] .qk-footer .footerContCntr,
html[data-qk-header] .qk-footer .footerContRight { margin-top: 0; }
html[data-qk-header] .qk-footer p { margin: 0; font-size: 16px; line-height: 24px; }
html[data-qk-header] .qk-footer .footerContleft,
html[data-qk-header] .qk-footer .footerContleft div { color: #fff; line-height: 24px; }
html[data-qk-header] .qk-footer .footerContleft > p:first-child { margin-bottom: 6px; }
html[data-qk-header] .qk-footer .footerContleft a { margin-top: 2px; line-height: 24px; }
html[data-qk-header] .qk-footer .footerContCntr ul,
html[data-qk-header] .qk-footer .footerContRight ul { margin: 0; padding: 0; list-style: none; }
html[data-qk-header] .qk-footer li { margin: 0 !important; } /* Blog post CSS adds margin to list items */
html[data-qk-header] .qk-footer .footerContCntr a,
html[data-qk-header] .qk-footer .footerContRight a { padding: 3px 0; font-size: 16px; line-height: 22px; }

html[data-qk-header] .qk-footer .hLine { margin: 24px 0 12px; }
html[data-qk-header] .qk-footer .socialIcon { display: flex; justify-content: flex-end; align-items: center; gap: 18px; line-height: 24px; }
html[data-qk-header] .qk-footer .socialIcon a { margin: 0; }
html[data-qk-header] .qk-footer .socialIcon svg { display: block; width: 18px; height: 18px; }
/* The X artwork fills its box, while the other icons have space around them */
html[data-qk-header] .qk-footer .socialIcon svg[viewBox="0 0 15 14"] { width: 14px; height: 14px; margin: 2px; }
html[data-qk-header] .qk-footer .hLine ~ [class*="col-"] { display: flex; align-items: center; min-height: 24px; }
html[data-qk-header] .qk-footer .hLine ~ [class*="col-"] .socialIcon { width: 100%; }
html[data-qk-header] .qk-footer .row-section { margin-top: 8px; }
html[data-qk-header] .qk-footer .container .footer-bottom .container { padding-inline: 0 !important; }
html[data-qk-header] .qk-footer .footer-copy { font-size: 13px; line-height: 20px; opacity: .85; }
html[data-qk-header] .qk-footer .footer-copy a { color: #fff; text-decoration: underline; }

@media (max-width: 767px) {
	html[data-qk-header] .qk-footer { padding-top: 40px; }
	html[data-qk-header] .qk-footer .footerLogo { width: 150px; }
	html[data-qk-header] .qk-footer .shapeFooter { top: -60px; right: -30px; width: 170px; }
	html[data-qk-header] .qk-footer .asdf,
	html[data-qk-header] .qk-footer .col-md-2,
	html[data-qk-header] .qk-footer .col-md-3 { flex: 0 0 100%; max-width: 100%; padding-right: 0; margin-bottom: 20px; }
	html[data-qk-header] .qk-footer .col-md-3 { margin-bottom: 0; }
	html[data-qk-header] .qk-footer .socialIcon { justify-content: flex-start; margin-top: 12px; }
}

/* ---------- Blog post (single.php) ----------
   Lines the image and Other News up with the header, and narrows the article to a readable width. */
.single-post .section-heading2 .container,
.single-post .communityDetails .container,
.single-post .section-other-news .container {
	max-width: var(--qk-container);
	padding-inline: var(--qk-gutter) !important; /* The theme adds its own padding on small screens */
}
.single-post .community-header-in img { height: clamp(220px, 42vw, 520px); border-radius: var(--qk-radius); }
.single-post .communityDetails .row { margin-inline: 0; }
.single-post .communityDetails .row > .col-12 {
	flex: 0 1 780px;
	max-width: 780px;
	margin-inline: auto;
	padding-inline: 0;
}

/* ---------- Responsive ---------- */
@media (max-width: 1100px) {
	.qk-services__grid,
	.qk-features__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 1200px) {
	.qk-prose__grid { grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); }
}
@media (max-width: 900px) {
	.qk-prose__inner--split { grid-template-columns: 1fr; }
	.qk-prose__inner--split > *,
	.qk-prose__inner--split > :first-child { grid-column: 1; grid-row: auto; margin-bottom: 12px; }
	.qk-rows__list { gap: 32px; }
	.qk-row + .qk-row { padding-top: 32px; }
	.qk-row { grid-template-columns: 1fr; gap: 20px; }
	.qk-row__media { order: -1; }
	.qk-row__media img { aspect-ratio: 16 / 9; max-height: 360px; }
	.qk-prose__grid { grid-template-columns: 1fr; gap: 24px; }
	.qk-prose__media { order: -1; }
	.qk-prose__media img { aspect-ratio: 16 / 9; max-height: 360px; }
}
@media (max-width: 760px) {
	.qk-hero { padding: 32px 0; }
	.qk-video-hero { padding-top: 16px; }
	.qk-video-hero__box { align-items: flex-end; min-height: 420px; padding: 16px; }
	.qk-video-hero__card { padding: 20px; }
	.qk-video-hero__title { font-size: 28px; line-height: 33px; }
	.qk-hero__grid,
	.qk-faq__grid,
	.qk-services__grid,
	.qk-features__grid { grid-template-columns: 1fr; }
}
/* Homepage blocks */
@media (max-width: 900px) {
	.qk-column { grid-template-columns: minmax(0, 1fr); }
	.qk-news__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
	.qk-news__grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
	#header-wrapper,
	#header-wrapper .main-nav,
	#header-wrapper .main-nav .logo { transition: none; }
}
