/* ==========================================================================
   BCPL - Responsive layer
   Loaded LAST on every page. Overrides only what is needed to make the
   existing template work from 320px phones up to wide desktops.
   Palette: navy #0f2453 . gold #ffce14 / #d49809 . white
   ========================================================================== */

:root {
	--bcpl-navy: #0f2453;
	--bcpl-gold: #ffce14;
	--bcpl-gold-dk: #d49809;
	/* Measured at runtime by js/bcpl-responsive.js. The value below is the
	   fallback used before the script runs, or if it fails to load. */
	--bcpl-header-h: 145px;
}

/* --------------------------------------------------------------------------
   1. Global safety net - box model, overflow, fluid media
   -------------------------------------------------------------------------- */

*,
*::before,
*::after {
	-webkit-box-sizing: border-box;
	-moz-box-sizing: border-box;
	box-sizing: border-box;
}

html {
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
}

html,
body {
	max-width: 100%;
	overflow-x: hidden;
}

/* Fixed width/height attributes on <img> are all over the legacy markup.
   Neutralise them so images never force horizontal scroll. */
img {
	max-width: 100%;
	height: auto;
}

/* The captcha thumbnail must keep its intrinsic size to stay legible. */
img.imim1,
img[src*="verificationimage"] {
	width: auto;
	max-width: 100%;
}

iframe,
embed,
object,
video {
	max-width: 100%;
}

/* Google map embeds carry width="600" height="450" inline. */
iframe[src*="google.com/maps"] {
	width: 100%;
	min-height: 280px;
	border: 0;
}

/* Long addresses and e-mails must never punch out of their column. */
p,
li,
td,
th,
h1,
h2,
h3,
h4,
h5,
h6,
span,
a {
	word-wrap: break-word;
	overflow-wrap: break-word;
}

.container {
	max-width: 100%;
}

/* --------------------------------------------------------------------------
   2. Fixed header - real height, no more content hidden underneath
   -------------------------------------------------------------------------- */

.banner-top {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	width: 100%;
	background: #fff;
	z-index: 9999;
	-webkit-box-shadow: 0 1px 6px rgba(0, 0, 0, .12);
	box-shadow: 0 1px 6px rgba(0, 0, 0, .12);
}

/* Push page content clear of the fixed header on every page. */
body {
	padding-top: var(--bcpl-header-h);
}

/* The top contact strip used to be floated, which collapsed the header
   height and forced the .w3_navigation margin-top:38px hack. Make it a real
   block so the header measures itself correctly at every width. */
.banner-top .contact-bnr-w3-agile {
	float: none;
	display: block;
	background: #fff;
	overflow: hidden;
}

.banner-top .contact-bnr-w3-agile ul {
	margin: 0;
	padding: 0 15px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: end;
	-ms-flex-pack: end;
	justify-content: flex-end;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

.banner-top .contact-bnr-w3-agile ul li {
	padding: 10px 0 10px 24px;
	float: none;
}

.banner-top .contact-bnr-w3-agile ul li i {
	margin-right: 8px;
}

.banner-top .w3_navigation {
	margin-top: 0;
}

/* Brand lock-up: logo and wordmark on one baseline, wrapping cleanly. */
.banner-top .navbar-brand {
	height: auto;
	float: none;
	white-space: normal;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
}

/* Plain block, NOT a flex container: the wordmark has to wrap as running text
   rather than break into separate flex items. */
.banner-top .navbar-brand > span {
	display: block;
	min-width: 0;
}

.banner-top .navbar-brand img {
	-ms-flex-negative: 0;
	flex-shrink: 0;
	margin-right: 18px;
	max-height: 64px;
	width: auto;
}

.banner-top .navbar-header h1 {
	margin: 0;
	min-width: 0;
}

/* Tagline carried over from the logo artwork - set as live text so it stays
   legible at any header size. */
.banner-top .navbar-brand .brand-tagline {
	display: block;
	margin-top: 6px;
	font-family: 'Federo', sans-serif;
	font-size: 12px;
	font-weight: 400;
	letter-spacing: 2.4px;
	line-height: 1.4;
	color: #d49809;
}

@media (max-width: 991px) {
	.banner-top .navbar-brand .brand-tagline {
		font-size: 11px;
		letter-spacing: 1.8px;
		margin-top: 4px;
	}
}

@media (max-width: 767px) {
	.banner-top .navbar-brand .brand-tagline {
		display: none;			/* the brand block is already tight on a phone */
	}
}

/* --------------------------------------------------------------------------
   3. Desktop and large screens
   -------------------------------------------------------------------------- */

@media (min-width: 1200px) {
	.banner-top .navbar-brand {
		font-size: 30px;
	}
}

@media (min-width: 992px) and (max-width: 1199px) {
	.banner-top .navbar-brand {
		font-size: 24px;
	}

	.banner-top .navbar-brand img {
		max-height: 54px;
		margin-right: 12px;
	}
}

@media (min-width: 768px) and (max-width: 991px) {
	.banner-top .navbar-brand {
		font-size: 18px;
	}

	.banner-top .navbar-brand img {
		max-height: 44px;
		margin-right: 10px;
	}

	.banner-top .navbar-nav > li > a {
		padding: 0 .7em;
	}
}

/* Dropdown opens on hover from tablet up. The project bootstrap.css has had
   .dropdown-menu background-color stripped out, so the panel was transparent
   over the navy bar and its links were unreadable - paint it explicitly. */
@media (min-width: 768px) {
	.banner-top .nav > li > .dropdown-menu {
		right: 0;
		left: auto;
		min-width: 215px;
		margin: 0;
		padding: 6px 0;
		background: #fff;
		border: 0;
		border-top: 3px solid #ffce14;
		border-radius: 0 0 3px 3px;
		text-align: left;
		-webkit-box-shadow: 0 14px 30px rgba(0, 0, 0, .22);
		box-shadow: 0 14px 30px rgba(0, 0, 0, .22);
	}

	/* style.css line ~4598 sets `.nav li a { color:#FFF; background:#0f2453 }`,
	   which also hits these submenu links. Setting only the colour left navy
	   text on a navy background, so ONGOING / UPCOMING / COMPLETED were
	   invisible - the background has to be reset here too. */
	.banner-top .dropdown-menu > li > a {
		display: block;
		padding: 12px 20px;
		background: transparent;
		color: #0f2453;
		font-size: 13px;
		font-weight: 700;
		letter-spacing: 1px;
		white-space: nowrap;
	}

	.banner-top .dropdown-menu > li + li > a {
		border-top: 1px solid #eef0f5;
	}

	.banner-top .dropdown-menu > li > a:hover,
	.banner-top .dropdown-menu > li > a:focus {
		background: #0f2453;
		color: #ffce14;
	}
}

/* --------------------------------------------------------------------------
   4. Mobile and tablet header - hamburger, brand, collapsed menu
   -------------------------------------------------------------------------- */

@media (max-width: 767px) {

	.banner-top .contact-bnr-w3-agile ul {
		-webkit-box-pack: center;
		-ms-flex-pack: center;
		justify-content: center;
		padding: 0 10px;
	}

	/* style.css (max-width:414px) gives these li width:100%, which stacked the
	   e-mail and phone onto two rows and made the header needlessly tall. */
	.banner-top .contact-bnr-w3-agile ul li {
		width: auto;
		padding: 8px 10px;
		font-size: 12px;
	}

	.banner-top .contact-bnr-w3-agile ul li a {
		font-size: 12px;
	}

	.banner-top .contact-bnr-w3-agile ul li i {
		font-size: 13px;
		margin-right: 6px;
	}

	/* Brand on the left, hamburger pinned right - never overflowing. */
	.banner-top .navbar-header {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
		float: none;
		margin: 0;
		padding: 8px 0;
	}

	/* The toggle button comes first in source order; put it back on the right. */
	.banner-top .navbar-header h1 {
		-webkit-box-flex: 1;
		-ms-flex: 1 1 auto;
		flex: 1 1 auto;
		-webkit-box-ordinal-group: 1;
		-ms-flex-order: 1;
		order: 1;
		margin: 0;
		min-width: 0;
	}

	.banner-top .navbar-default .navbar-brand {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		font-size: 13px;
		line-height: 1.25;
		padding: 0;
	}

	.banner-top .navbar-brand img {
		max-height: 38px;
		margin-right: 10px;
	}

	.banner-top .navbar-toggle {
		-ms-flex-negative: 0;
		flex-shrink: 0;
		-webkit-box-ordinal-group: 2;
		-ms-flex-order: 2;
		order: 2;
		float: none;
		margin: 0 0 0 10px;
		padding: 10px 11px;
		border: 1px solid rgba(255, 255, 255, .45);
		border-radius: 4px;
		background: transparent;
	}

	.banner-top .navbar-toggle:hover,
	.banner-top .navbar-toggle:focus {
		background: rgba(255, 255, 255, .12);
	}

	.banner-top .navbar-toggle .icon-bar {
		background-color: #fff;
		width: 22px;
		height: 2px;
	}

	/* Collapsed menu panel. style.css paints .navbar-collapse grey (#a5a5a5)
	   and .navbar-nav near-black, which is why the open panel did not match
	   the navy bar it drops out of. */
	.banner-top .navbar-collapse {
		background: #0f2453;
		border-top: 1px solid rgba(255, 255, 255, .2);
		max-height: 70vh;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		margin: 0 -15px;
		padding: 0 15px;
	}

	.banner-top .navbar-nav {
		display: block;
		margin: 8px 0;
		background: transparent;
	}

	.banner-top .navbar-nav > li {
		display: block;
		float: none;
	}

	.banner-top .navbar-nav > li > a,
	.banner-top .menu__list > li > a {
		display: block;
		padding: 14px 4px;
		font-size: 14px;
		line-height: 1.3;
		color: #fff;
		text-align: left;
		border-bottom: 1px solid rgba(255, 255, 255, .12);
	}

	/* Mark PROJECTS as expandable, and turn the caret when it is open.
	   display is set explicitly because the .menu--iris rule above hides
	   every ::after on .menu__link. */
	.banner-top .navbar-nav > li.dropdown > a.dropdown-toggle::after {
		content: "\f107";
		display: inline-block;
		font-family: FontAwesome;
		float: right;
		font-size: 15px;
		line-height: 1.3;
		color: #ffce14;
		-webkit-transition: transform .25s ease;
		transition: transform .25s ease;
	}

	.banner-top .navbar-nav > li.dropdown.open > a.dropdown-toggle::after {
		-webkit-transform: rotate(180deg);
		-ms-transform: rotate(180deg);
		transform: rotate(180deg);
	}

	/* The .menu--iris underline effect is a desktop flourish - off on touch. */
	.banner-top .menu--iris .menu__link::before,
	.banner-top .menu--iris .menu__link::after {
		display: none;
	}

	/* Not keyed on .open: every page also runs a jQuery .hover() handler that
	   fadeIn()s this menu, which sets an inline display:block and leaves the
	   li without .open. Bootstrap's default absolute position plus its
	   margin:2px -33px then threw the submenu outside the panel. Style it
	   unconditionally, and let .open alone decide visibility - with
	   !important so fadeIn/fadeOut's inline display cannot override it. */
	.banner-top .navbar-nav .dropdown-menu {
		position: static;
		float: none;
		width: 100%;
		background: rgba(0, 0, 0, .18);
		border: 0;
		border-radius: 0;
		box-shadow: none;
		padding: 0;
		margin: 0;
		display: none !important;
	}

	.banner-top .navbar-nav .open > .dropdown-menu {
		display: block !important;
	}

	/* bootstrap.css in this project centres .dropdown-menu, which made the
	   three sub-items read as top-level entries. Indent them instead. */
	.banner-top .navbar-default .navbar-nav .open .dropdown-menu > li > a,
	.banner-top .navbar-default .navbar-nav .dropdown-menu > li > a {
		position: relative;
		color: #dfe4ef;
		background: transparent;
		border-radius: 0;
		margin: 0;
		padding: 13px 6px 13px 28px;
		font-size: 13px;
		text-align: left;
		letter-spacing: .6px;
		border-bottom: 1px solid rgba(255, 255, 255, .1);
	}

	.banner-top .navbar-default .navbar-nav .dropdown-menu > li > a::before {
		content: "\203A";
		position: absolute;
		left: 12px;
		top: 12px;
		color: #ffce14;
	}

	.banner-top .navbar-nav .dropdown-menu > li:last-child > a {
		border-bottom: 0;
	}

	.banner-top .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
	.banner-top .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
		background: rgba(255, 206, 20, .18);
		color: #ffce14;
	}
}

@media (max-width: 400px) {
	.banner-top .navbar-default .navbar-brand {
		font-size: 12px;
		letter-spacing: .2px;
	}

	.banner-top .navbar-brand img {
		max-height: 34px;
		margin-right: 8px;
	}

	.banner-top .contact-bnr-w3-agile ul li {
		width: auto;
		padding: 7px 6px;
		font-size: 11px;
	}

	.banner-top .contact-bnr-w3-agile ul li a {
		font-size: 11px;
	}

	.banner-top .contact-bnr-w3-agile ul li i {
		margin-right: 5px;
	}
}

/* --------------------------------------------------------------------------
   5. Home page - hero slider, highlight strip, project cards
   -------------------------------------------------------------------------- */

.w3ls-banner {
	overflow: hidden;
}

/* Inner-page banner, framed at 25/6 - the ratio the old top-banner.jpg drawing
   used - so whatever picture a page puts here, every inner page keeps the same
   banner height. This was keyed to the two filenames in use at the time, which
   silently dropped the framing the moment a page pointed the banner at its own
   photo (a 1600x743 project shot rendered ~2x the height of every other page).
   Match any direct <img> instead. index.php is unaffected: its hero holds the
   slider <div>, not an <img>. */
.w3ls-banner > img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 25 / 6;
	object-fit: cover;
	-o-object-fit: cover;
	object-position: center center;
}

/* top-banner.jpg carries a white band along its top edge - bias the crop down
   so the band is cropped away rather than shown. */
.w3ls-banner > img[src*="top-banner"] {
	object-position: center bottom;
}

/* Project photos that carry a caption card in the top corner: the 25/6 crop
   keeps only 52% of a 1600x743 shot, and centred it eats the card. Bias up. */
.w3ls-banner > img.bcpl-hero-top {
	object-position: center top;
}

/* Fallback for browsers without aspect-ratio: same crop, stepped by breakpoint. */
@supports not (aspect-ratio: 1) {
	.w3ls-banner > img {
		height: 300px;
	}

	@media (max-width: 991px) {
		.w3ls-banner > img {
			height: 180px;
		}
	}

	@media (max-width: 767px) {
		.w3ls-banner > img {
			height: 110px;
		}
	}
}

/* responsiveSlides floats the active slide and absolutely positions the rest,
   but style.css never gives those absolute slides a top/left. They fell back
   to their static position - below the float - which left a tall empty band
   between the header and the hero. Pin them to the top-left corner. */
.w3ls-banner .rslides > li {
	top: 0;
	left: 0;
}

.w3ls-banner .callbacks_container {
	float: none;
}

/* style.css pushes the hero down by 140px (220px at one breakpoint) to clear
   the old fixed header. The header now reserves its own space via the body
   padding, so that offset just leaves a white band above the slider. */
.w3ls-banner .w3layouts-banner-top,
.w3ls-banner .w3layouts-banner-top1,
.w3ls-banner .w3layouts-banner-top2 {
	margin-top: 0 !important;
	/* style.css sizes the slides with min-height, so each is only as tall as
	   its own headline needs - slide 3 wraps to an extra line and comes out
	   25px taller than the other two, which makes the page jump every time
	   the slider advances. A definite height on all three holds the frame
	   still; background-size:cover already fits each photo to whatever that
	   height is. Each breakpoint below sets its own height/min-height - none
	   is set here, because this selector outranks the plain
	   .w3layouts-banner-top rules and would override their clamps. */
	overflow: hidden;
	/* The three slide photos are 1680x800 (2.1/1) and the frame is far wider
	   than that, so cover always trims top and bottom - about 240px of the
	   905px rendered height in a 70vh desktop frame. Anchoring just below
	   centre puts that trim mostly in the empty sky and keeps each project's
	   name plate - which sits roughly four fifths of the way down - inside
	   the shorter frame instead of on its bottom edge. */
	background-position: center 55%;
	background-size: cover;
}

@media (min-width: 768px) {

	.w3ls-banner .w3layouts-banner-top,
	.w3ls-banner .w3layouts-banner-top1,
	.w3ls-banner .w3layouts-banner-top2 {
		height: 70vh;
		min-height: 420px;
		max-height: 720px;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
	}

	.w3ls-banner .w3layouts-banner-top > .container,
	.w3ls-banner .w3layouts-banner-top1 > .container,
	.w3ls-banner .w3layouts-banner-top2 > .container {
		width: 100%;
	}

	/* The template places this block with margin-top:8em + padding:7em, which
	   fights vertical centring inside a fixed frame. */
	.w3ls-banner .agileits-banner-info {
		margin-top: 0;
		padding: 2em;
	}

	/* style.css floats the scroll cue at bottom:12%, which in a 70vh frame
	   lands it on the pager dots (pinned 30px up). A fixed offset keeps the
	   two apart whatever the frame height - and the chevron inside overhangs
	   its 40px box by about 17px, so measure from there. */
	.w3ls-banner .thim-click-to-bottom {
		bottom: 84px;
	}
}

@media (min-width: 768px) and (max-width: 991px) {

	.w3ls-banner .w3layouts-banner-top,
	.w3ls-banner .w3layouts-banner-top1,
	.w3ls-banner .w3layouts-banner-top2 {
		height: 62vh;
		min-height: 400px;
		max-height: 560px;
	}
}

/* --- Hero call to action --------------------------------------------------- */

/* style.css pins the slider pager with percentage offsets (top:56%, left:46.5%),
   which lands it right on top of the button. Anchor it to the bottom instead,
   at every width. */
.w3ls-banner .callbacks_tabs {
	top: auto !important;
	left: 0 !important;
	right: 0;
	bottom: 30px;
	width: 100%;
	text-align: center;
}

.w3ls-banner .callbacks_tabs li {
	margin: 0 6px;
}

.w3ls-banner .callbacks_tabs a:after {
	width: 9px;
	height: 9px;
	background: rgba(255, 255, 255, .6);
}

.w3ls-banner .callbacks_tabs .callbacks_here a:after {
	background: #ffce14;
}

/* --- Hero prev / next ------------------------------------------------------
   responsiveSlides appends these as bare <a> tags after the slide list. The
   styling style.css gives them is dead: it parks them off-canvas
   (left:-58px / right:-62px) behind images/left.png and images/right.png,
   neither of which exists in this build, and hides their label with a
   -9999px text-indent. Rebuilt here as round buttons inside the frame,
   drawn from the Font Awesome chevrons the init passes in - no sprite. */
.w3ls-banner .callbacks_nav {
	position: absolute;
	top: 50%;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	z-index: 20;
	display: block;
	width: 48px;
	height: 48px;
	margin: 0;
	padding: 0;
	background: rgba(15, 36, 83, .42);
	border: 1px solid rgba(255, 255, 255, .55);
	border-radius: 50%;
	color: #fff;
	font-size: 26px;
	line-height: 44px;
	text-align: center;
	text-decoration: none;
	text-indent: 0;
	opacity: 1;
	-webkit-transition: background .25s ease, border-color .25s ease, color .25s ease;
	transition: background .25s ease, border-color .25s ease, color .25s ease;
}

.w3ls-banner .callbacks_nav.prev {
	left: 24px;
	right: auto;
	background: rgba(15, 36, 83, .42);
}

.w3ls-banner .callbacks_nav.next {
	left: auto;
	right: 24px;
	background: rgba(15, 36, 83, .42);
}

.w3ls-banner .callbacks_nav.prev:hover,
.w3ls-banner .callbacks_nav.prev:focus,
.w3ls-banner .callbacks_nav.next:hover,
.w3ls-banner .callbacks_nav.next:focus {
	background: #ffce14;
}

.w3ls-banner .callbacks_nav:hover,
.w3ls-banner .callbacks_nav:focus {
	background: #ffce14;
	border-color: #ffce14;
	color: #0f2453;
}

/* The hover colour doubles as the focus state, but a keyboard user landing on
   an arrow needs something that reads against a photo as well as a hover
   does - hence the ring in place of the default outline. */
.w3ls-banner .callbacks_nav:focus {
	outline: none;
	-webkit-box-shadow: 0 0 0 3px rgba(255, 206, 20, .45);
	box-shadow: 0 0 0 3px rgba(255, 206, 20, .45);
}

.w3ls-banner .callbacks_nav i {
	line-height: inherit;
	vertical-align: top;
}

.agileits-banner-info h3 {
	text-shadow: 0 2px 14px rgba(0, 0, 0, .45);
}

.agileits_w3layouts_more a.bcpl-hero-cta {
	display: inline-block;
	padding: 13px 30px;
	background: #ffce14;
	color: #0f2453;
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 2px;
	text-transform: uppercase;
	text-decoration: none;
	border: 0;
	border-radius: 3px;
	-webkit-transition: background .25s ease, transform .25s ease;
	transition: background .25s ease, transform .25s ease;
}

.agileits_w3layouts_more a.bcpl-hero-cta:hover,
.agileits_w3layouts_more a.bcpl-hero-cta:focus {
	background: #fff;
	color: #0f2453;
	-webkit-transform: translateY(-2px);
	-ms-transform: translateY(-2px);
	transform: translateY(-2px);
}

/* --- Mobile hero -----------------------------------------------------------
   Was a short, cropped band with the headline floating over the busiest part
   of the photo. Now a proper hero: taller frame, a scrim so the type is
   legible whatever the slide, content anchored to the bottom, dots below it. */

@media (max-width: 767px) {

	.w3layouts-banner-top,
	.w3layouts-banner-top1,
	.w3layouts-banner-top2 {
		position: relative;
		/* Sized so the header + hero clear roughly half the first screen and
		   the strip below is visible - a full-height hero on a phone just
		   hides the site. */
		height: 46vh;
		min-height: 320px;
		max-height: 400px;
		background-position: center center;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: end;
		-ms-flex-align: end;
		align-items: flex-end;
	}

	.w3layouts-banner-top::after,
	.w3layouts-banner-top1::after,
	.w3layouts-banner-top2::after {
		content: "";
		position: absolute;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		background: -webkit-linear-gradient(top, rgba(8, 18, 44, .18) 0%, rgba(8, 18, 44, .06) 38%, rgba(8, 18, 44, .82) 100%);
		background: linear-gradient(to bottom, rgba(8, 18, 44, .18) 0%, rgba(8, 18, 44, .06) 38%, rgba(8, 18, 44, .82) 100%);
		pointer-events: none;
	}

	.w3layouts-banner-top > .container,
	.w3layouts-banner-top1 > .container,
	.w3layouts-banner-top2 > .container {
		position: relative;
		z-index: 2;
		width: 100%;
	}

	.agileits-banner-info {
		margin-top: 0;
		padding: 0 18px 52px;
		text-align: center;
	}

	.agileits-banner-info h3 {
		max-width: 330px;
		margin: 0 auto 20px;
		padding: 0;
		font-size: 20px;
		line-height: 1.4;
		letter-spacing: 1.4px;
		text-shadow: 0 2px 14px rgba(0, 0, 0, .55);
	}

	.agileits_w3layouts_more a.bcpl-hero-cta {
		padding: 12px 26px;
		font-size: 12px;
		letter-spacing: 1.6px;
	}

	.w3ls-banner .callbacks_nav {
		width: 40px;
		height: 40px;
		font-size: 22px;
		line-height: 36px;
	}

	.w3ls-banner .callbacks_nav.prev {
		left: 10px;
	}

	.w3ls-banner .callbacks_nav.next {
		right: 10px;
	}

	.w3ls-banner .callbacks_tabs {
		bottom: 22px;
	}

	.w3ls-banner .callbacks_tabs li {
		margin: 0 5px;
	}

	.w3ls-banner .callbacks_tabs a:after {
		width: 8px;
		height: 8px;
	}

	.thim-click-to-bottom {
		display: none;
	}
}

@media (max-width: 480px) {

	.w3layouts-banner-top,
	.w3layouts-banner-top1,
	.w3layouts-banner-top2 {
		height: 44vh;
		min-height: 300px;
		max-height: 360px;
	}

	.agileits-banner-info h3 {
		max-width: 300px;
		font-size: 18px;
		letter-spacing: 1.1px;
		margin-bottom: 16px;
	}

	.agileits-banner-info {
		padding-bottom: 46px;
	}

	.w3ls-banner .callbacks_tabs {
		bottom: 18px;
	}
}

/* Phone held sideways: the viewport is short, so a percentage hero plus a
   320px floor would fill the whole screen. */
@media (max-width: 900px) and (max-height: 520px) and (orientation: landscape) {

	.w3layouts-banner-top,
	.w3layouts-banner-top1,
	.w3layouts-banner-top2 {
		height: auto;
		min-height: 240px;
		max-height: none;
	}

	.agileits-banner-info {
		padding-top: 30px;
		padding-bottom: 44px;
	}
}

/* --- Promise strip ---------------------------------------------------------
   Was a flat yellow band clipped to a fixed 147px, with a big dead gap above
   the content. Now a navy band with gold icons, sized by its own content. */

#availability-agileits {
	background: #0f2453;
}

#availability-agileits .book-form {
	height: auto;
	min-height: 0;
	overflow: visible;
	opacity: 1;
	padding: 26px 0;
	background: #0f2453;
	background: linear-gradient(120deg, #0f2453 0%, #1b3a7d 55%, #0f2453 100%);
}

#availability-agileits .row {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-align: stretch;
	-ms-flex-align: stretch;
	align-items: stretch;
}

#availability-agileits .fitsc-column {
	float: none;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
}

.fitsc-bubble {
	padding: 14px 18px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	width: 100%;
}

.fitsc-bubble .bubble-icon {
	float: none;
	-ms-flex-negative: 0;
	flex-shrink: 0;
	width: 58px;
	height: 58px;
	line-height: 58px;
	font-size: 24px;
	color: #ffce14;
	border-right: 1px solid rgba(255, 255, 255, .22);
	border-radius: 0;
}

.fitsc-bubble .bubble-text {
	margin-left: 0;
	padding: 0 0 0 18px;
	font-size: inherit;
}

#availability-agileits .book-form p {
	color: #fff;
	font-size: 13px;
	letter-spacing: 1.4px;
	margin: 0 0 2px;
	line-height: 1.5;
}

#availability-agileits .book-form p + p {
	color: #ffce14;
	font-weight: 700;
}

@media (max-width: 991px) {
	#availability-agileits .book-form {
		padding: 14px 0;
	}

	.fitsc-bubble {
		padding: 12px 15px;
	}

	.fitsc-bubble .bubble-icon {
		width: 50px;
		height: 50px;
		line-height: 50px;
		font-size: 20px;
	}

	#availability-agileits .book-form p {
		font-size: 12px;
		letter-spacing: 1px;
	}
}

@media (max-width: 767px) {
	#availability-agileits .book-form {
		padding: 6px 0;
	}

	#availability-agileits .fitsc-column {
		border-bottom: 1px solid rgba(255, 255, 255, .14);
	}

	#availability-agileits .fitsc-column:last-child {
		border-bottom: 0;
	}

	.fitsc-bubble {
		padding: 16px 18px;
	}

	.fitsc-bubble .bubble-icon {
		width: 44px;
		height: 44px;
		line-height: 44px;
		font-size: 18px;
	}

	.fitsc-bubble .bubble-text {
		padding-left: 16px;
	}

	#availability-agileits .book-form p {
		font-size: 12.5px;
		letter-spacing: 1.6px;
		line-height: 1.45;
	}
}

/* --- PROJECTS & SERVICES cards --------------------------------------------- */

.bcpl-cards {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	margin-top: 10px;
}

.bcpl-cards > [class*="col-"] {
	float: none;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	margin-bottom: 26px;
}

.bcpl-card {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	width: 100%;
	background: #fff;
	border: 1px solid #e7e9f0;
	border-radius: 4px;
	overflow: hidden;
	text-decoration: none;
	-webkit-box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	-webkit-transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
	transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}

.bcpl-card:hover,
.bcpl-card:focus {
	text-decoration: none;
	border-color: #dfe3ec;
	-webkit-transform: translateY(-3px);
	-ms-transform: translateY(-3px);
	transform: translateY(-3px);
	-webkit-box-shadow: 0 6px 16px rgba(15, 36, 83, .09);
	box-shadow: 0 6px 16px rgba(15, 36, 83, .09);
}

.bcpl-card__media {
	display: block;
	background: #f5f6fa;
	height: 178px;
	overflow: hidden;
}

.bcpl-card__media img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	-o-object-fit: contain;
	-webkit-transition: transform .45s ease;
	transition: transform .45s ease;
}

.bcpl-card:hover .bcpl-card__media img {
	-webkit-transform: scale(1.06);
	-ms-transform: scale(1.06);
	transform: scale(1.06);
}

.bcpl-card__body {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-flex: 1;
	-ms-flex: 1 1 auto;
	flex: 1 1 auto;
	padding: 20px 18px 18px;
	text-align: left;
	border-top: 1px solid #eef0f5;
}

.bcpl-card__title {
	display: block;
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: #0f2453;
	margin-bottom: 8px;
}

.bcpl-card__text {
	display: block;
	-webkit-box-flex: 1;
	-ms-flex: 1 1 auto;
	flex: 1 1 auto;
	font-size: 13.5px;
	line-height: 1.65;
	color: #5a6273;
	margin-bottom: 14px;
}

.bcpl-card__cta {
	display: inline-block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: #d49809;
}

.bcpl-card__cta i {
	margin-left: 6px;
	-webkit-transition: transform .3s ease;
	transition: transform .3s ease;
}

.bcpl-card:hover .bcpl-card__cta {
	color: #0f2453;
}

.bcpl-card:hover .bcpl-card__cta i {
	-webkit-transform: translateX(5px);
	-ms-transform: translateX(5px);
	transform: translateX(5px);
}

/* On a phone the four home cards stacked vertically ran to nearly four
   screens of mostly empty artwork. Lay them out side-on instead. The project
   cards keep their tall format - those are photographs worth the space. */
@media (max-width: 767px) {

	.bcpl-cards:not(.bcpl-project-cards) > [class*="col-"] {
		margin-bottom: 14px;
	}

	.bcpl-cards:not(.bcpl-project-cards) .bcpl-card {
		-webkit-box-orient: horizontal;
		-webkit-box-direction: normal;
		-ms-flex-direction: row;
		flex-direction: row;
	}

	.bcpl-cards:not(.bcpl-project-cards) .bcpl-card__media {
		-ms-flex-negative: 0;
		flex-shrink: 0;
		width: 120px;
		height: auto;
		min-height: 118px;
	}

	.bcpl-cards:not(.bcpl-project-cards) .bcpl-card__media img {
		padding: 10px;
	}

	.bcpl-cards:not(.bcpl-project-cards) .bcpl-card__body {
		border-top: 0;
		border-left: 1px solid #eef0f5;
		padding: 14px 16px;
	}

	.bcpl-cards:not(.bcpl-project-cards) .bcpl-card__title {
		font-size: 14px;
		margin-bottom: 6px;
	}

	.bcpl-cards:not(.bcpl-project-cards) .bcpl-card__text {
		font-size: 12.5px;
		line-height: 1.55;
		margin-bottom: 10px;
	}

	.bcpl-cards:not(.bcpl-project-cards) .bcpl-card__cta {
		font-size: 11px;
	}

	.bcpl-project-cards .bcpl-card__media {
		height: 200px;
	}
}

/* --- Project cards (ongoing projects index) -------------------------------- */

.bcpl-project-cards .bcpl-card__media {
	height: 230px;
	background: #eceef2;
}

/* Elevations are photographs - fill the frame rather than letterbox them. */
.bcpl-project-cards .bcpl-card__media img {
	object-fit: cover;
	-o-object-fit: cover;
	object-position: center;
}

.bcpl-card__place {
	display: block;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.2px;
	text-transform: uppercase;
	color: #d49809;
	margin-bottom: 10px;
}

.bcpl-card__place i {
	margin-right: 5px;
}

.bcpl-project-cards .bcpl-card__title {
	font-size: 18px;
	margin-bottom: 4px;
}

@media (max-width: 767px) {
	.bcpl-project-cards .bcpl-card__media {
		height: 210px;
	}
}

/* --- Completed project tiles ----------------------------------------------- */

.bcpl-tile {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid #e7e9f0;
	border-radius: 4px;
	overflow: hidden;
	text-align: left;
	-webkit-box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	-webkit-transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
	transition: box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}

.bcpl-tile:hover {
	border-color: #dfe3ec;
	-webkit-transform: translateY(-3px);
	-ms-transform: translateY(-3px);
	transform: translateY(-3px);
	-webkit-box-shadow: 0 6px 16px rgba(15, 36, 83, .09);
	box-shadow: 0 6px 16px rgba(15, 36, 83, .09);
}

.bcpl-tile__media {
	height: 230px;
	background: #eceef2;
	overflow: hidden;
}

.bcpl-tile__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	-o-object-fit: cover;
	object-position: center;
	-webkit-transition: transform .45s ease;
	transition: transform .45s ease;
}

.bcpl-tile:hover .bcpl-tile__media img {
	-webkit-transform: scale(1.05);
	-ms-transform: scale(1.05);
	transform: scale(1.05);
}

.bcpl-tile__body {
	-webkit-box-flex: 1;
	-ms-flex: 1 1 auto;
	flex: 1 1 auto;
	padding: 13px 16px 15px;
	border-top: 1px solid #eef0f5;
}

.bcpl-tile__body strong {
	display: block;
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 1px;
	line-height: 1.3;
	color: #0f2453;
	margin-bottom: 4px;
}

.bcpl-tile__addr {
	margin: 0;
	font-size: 13.5px;
	line-height: 1.5;
	color: #5a6273;
	text-align: left;
}

/* The completed grid stretches so every tile in a band matches height. */
.about-wthree .row.text-center > .col-md-12 > .col-sm-12.col-md-4 {
	margin-bottom: 18px;
}

@media (min-width: 992px) {
	.about-wthree .row.text-center > .col-md-12 {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}

	.about-wthree .row.text-center > .col-md-12 > .col-sm-12.col-md-4 {
		float: none;
	}
}

/* PREVIOUS / NEXT sit on opposite ends of one line. */
.bcpl-pager {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-pack: justify;
	-ms-flex-pack: justify;
	justify-content: space-between;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	float: none;
	width: 100%;
}

.bcpl-pager > .text-left {
	-webkit-box-ordinal-group: 1;
	-ms-flex-order: 1;
	order: 1;
}

.bcpl-pager > .text-right {
	-webkit-box-ordinal-group: 2;
	-ms-flex-order: 2;
	order: 2;
	margin-left: auto;
}

@media (max-width: 640px) {
	.bcpl-tile__media {
		height: 210px;
	}
}

/* --- Empty / coming-soon state --------------------------------------------- */

.bcpl-empty-state {
	max-width: 640px;
	margin: 10px auto 0;
	padding: 44px 30px;
	text-align: center;
	background: #fff;
	border: 1px solid #e7e9f0;
	border-radius: 4px;
	-webkit-box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
}

.bcpl-empty-state > i {
	font-size: 42px;
	color: #d49809;
	margin-bottom: 16px;
	display: block;
}

.bcpl-empty-state h4 {
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 22px;
	letter-spacing: 1px;
	color: #0f2453;
	margin: 0 0 12px;
}

.bcpl-empty-state p {
	font-size: 14.5px;
	line-height: 1.8;
	color: #5a6273;
	margin: 0 auto 24px;
	max-width: 460px;
}

.bcpl-empty-actions,
.bcpl-empty-links {
	text-align: center;
}

.bcpl-empty-actions .next-btn,
.bcpl-empty-links .next-btn {
	margin: 0 5px 10px;
}

.bcpl-empty-links {
	margin-top: 36px;
}

.bcpl-empty-links p {
	font-size: 14px;
	color: #5a6273;
	margin-bottom: 14px;
	text-align: center;
}

a.next-btn.next-btn--ghost {
	background: transparent;
	color: #0f2453 !important;
	border: 1px solid #0f2453;
}

a.next-btn.next-btn--ghost:hover,
a.next-btn.next-btn--ghost:focus {
	background: #0f2453;
	color: #fff !important;
	border-color: #0f2453;
}

@media (max-width: 480px) {

	.bcpl-empty-actions .next-btn,
	.bcpl-empty-links .next-btn {
		margin: 0 0 10px;
	}

	.bcpl-empty-state {
		padding: 30px 18px;
	}
}

/* --- Project detail pages -------------------------------------------------- */

.bcpl-breadcrumb {
	padding: 18px 0 4px;
	font-size: 12.5px;
	letter-spacing: .6px;
	color: #6b7386;
}

.bcpl-breadcrumb a {
	color: #0f2453;
	font-weight: 700;
}

.bcpl-breadcrumb a:hover {
	color: #d49809;
}

.bcpl-breadcrumb span {
	margin: 0 8px;
	color: #b9bfcc;
}

.bcpl-breadcrumb strong {
	color: #6b7386;
	font-weight: 600;
}

.bcpl-project-detail {
	background: #fff;
	border: 1px solid #e3e6ee;
	border-radius: 4px;
	padding: 30px;
}

.bcpl-project-detail > .row {
	margin-left: 0;
	margin-right: 0;
}

.bcpl-project-detail img.img-thumbnail {
	width: 100%;
	max-width: 780px;
	height: auto;
	margin: 0 auto;
	display: block;
}

/* The floor-plan / car-park links are image buttons. */
.bcpl-project-detail a > img[src*="floorplan.jpg"],
.bcpl-project-detail a > img[src*="parking.jpg"] {
	max-width: 100%;
	height: auto;
	-webkit-transition: transform .25s ease, opacity .25s ease;
	transition: transform .25s ease, opacity .25s ease;
}

.bcpl-project-detail a:hover > img[src*="floorplan.jpg"],
.bcpl-project-detail a:hover > img[src*="parking.jpg"] {
	-webkit-transform: translateY(-3px);
	-ms-transform: translateY(-3px);
	transform: translateY(-3px);
	opacity: .88;
}

.bcpl-detail-nav {
	padding: 28px 0 6px;
	text-align: center;
}

@media (max-width: 767px) {
	.bcpl-project-detail {
		padding: 16px 12px;
	}

	.bcpl-breadcrumb {
		font-size: 11.5px;
		line-height: 2;
	}
}

/* --------------------------------------------------------------------------
   6. Content sections - headings, about, services
   -------------------------------------------------------------------------- */

.title-w3-agileits,
.title-black-wthree {
	line-height: 1.3;
}

/* --- Section intros --------------------------------------------------------
   The lead copy under each page title used to run the full container width,
   which reads badly on a wide monitor. Hold it to a comfortable measure. */

/* Direct children only: completed*.php nests its whole project grid inside
   .ab-w3l-spa, so a descendant selector would centre and squeeze the cards. */
.ab-w3l-spa > p,
.ab-w3l-spa > .about-para-w3ls {
	max-width: 900px;
	margin-left: auto;
	margin-right: auto;
	text-align: center;
}

.bcpl-tagline {
	text-align: center;
	font-weight: 700;
	letter-spacing: 1px;
	color: #0f2453;
	margin: 0 0 26px;
}

/* Body copy in the wide single-column blocks. */
.about-wthree .row > .col-md-12 > p {
	text-align: justify;
	line-height: 1.9;
}

/* --- Contact details list -------------------------------------------------- */

.bcpl-contact-list {
	list-style: none;
	margin: 0;
	padding: 0;
	text-align: left;
}

.bcpl-contact-list li {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
	padding: 16px 0;
	border-bottom: 1px solid #e1e5ee;
}

.bcpl-contact-list li:last-child {
	border-bottom: 0;
}

.bcpl-contact-list li > i {
	-ms-flex-negative: 0;
	flex-shrink: 0;
	width: 38px;
	height: 38px;
	line-height: 38px;
	margin-right: 16px;
	text-align: center;
	font-size: 15px;
	color: #0f2453;
	background: #fff;
	border: 1px solid #dfe3ec;
	border-radius: 50%;
}

.bcpl-contact-list li > div {
	-webkit-box-flex: 1;
	-ms-flex: 1 1 auto;
	flex: 1 1 auto;
	min-width: 0;
	font-size: 14.5px;
	line-height: 1.8;
	color: #444b58;
}

.bcpl-contact-list strong {
	display: block;
	font-family: 'Federo', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #d49809;
	margin-bottom: 2px;
}

.bcpl-contact-list a {
	color: #0f2453;
}

.bcpl-contact-list a:hover {
	color: #d49809;
}

.bcpl-map {
	margin-top: 34px;
}

.bcpl-map iframe {
	display: block;
	border-radius: 4px;
}

/* --- Two-column rows: copy sits level with the image ----------------------- */

@media (min-width: 992px) {
	.bcpl-row-middle {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
	}

	.bcpl-row-middle > [class*="col-"] {
		float: none;
	}
}

.bcpl-row-middle > .col-md-6 > img {
	width: 100%;
	height: auto;
	border-radius: 3px;
}

/* aboutus.jpg / aboutus1.jpg carry a black strip along the bottom edge.
   Crop it by showing the frame slightly wider than the source. */
.bcpl-row-middle img[src$="aboutus.jpg"],
.bcpl-row-middle img[src$="aboutus1.jpg"] {
	aspect-ratio: 13 / 10;
	object-fit: cover;
	-o-object-fit: cover;
	object-position: center top;
}

/* --- "What we offer" ------------------------------------------------------
   style.css points this section at images/services.jpg, which is not in the
   repo. The 404 left a white background behind white body copy, and the panel
   was locked to height:580px so it was mostly dead space. */

.advantages {
	background: #f4f6fa;
	background-image: none;
	min-height: 0;
	padding: 70px 0;
}

/* h3.title-w3-agileits is white by default - readable on the old photo
   background, invisible on the light one. */
.advantages h3.title-w3-agileits {
	color: #0f2453;
	font-size: 2.2em;
	margin-bottom: .7em;
}

.advantage-block {
	height: auto;
	background: #fff;
	padding: 34px 32px;
	border: 1px solid #e7e9f0;
	border-radius: 4px;
	text-align: left;
	-webkit-box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	-webkit-transition: box-shadow .3s ease, border-color .3s ease;
	transition: box-shadow .3s ease, border-color .3s ease;
}

.advantage-block:hover {
	background: #fff;
	border-color: #dfe3ec;
	-webkit-box-shadow: 0 6px 16px rgba(15, 36, 83, .09);
	box-shadow: 0 6px 16px rgba(15, 36, 83, .09);
}

.advantage-block p {
	color: #444b58;
	font-size: 15px;
	line-height: 1.85;
	padding-left: 0;
	text-align: justify;
}

.advantage-block h4 {
	color: #0f2453;
}

.advantage-block .fa,
.advantage-block i {
	color: #d49809;
}

/* The right-hand column is just an image - drop the card chrome there. */
.advantage-grid.right-w3ls .advantage-block {
	padding: 0;
	border: 0;
	background: transparent;
	overflow: hidden;
	border-radius: 4px;
}

.advantage-grid.right-w3ls .advantage-block:hover {
	-webkit-box-shadow: none;
	box-shadow: none;
}

.advantage-grid.right-w3ls img {
	width: 100%;
	height: auto;
	border-radius: 4px;
}

.advantage-block .btn-danger {
	background: #0f2453;
	border-color: #0f2453;
	padding: 10px 26px;
	letter-spacing: 1px;
	font-weight: 700;
}

.advantage-block .btn-danger:hover,
.advantage-block .btn-danger:focus {
	background: #d49809;
	border-color: #d49809;
}

@media (max-width: 991px) {
	.advantages {
		padding: 45px 0;
	}

	.advantage-block {
		padding: 24px 20px;
		margin-bottom: 22px;
	}
}

@media (max-width: 767px) {

	.title-w3-agileits,
	.title-black-wthree {
		font-size: 22px !important;
		letter-spacing: 2px;
		padding: 10px 0 !important;
	}

	.about-para-w3ls,
	.about-wthree p,
	.advantages p {
		font-size: 14px;
		line-height: 1.75;
	}

	/* Justified and centred long copy both read badly at phone widths -
	   ragged-right is easier to scan. */
	.ab-w3l-spa > .about-para-w3ls,
	.about-wthree .row > .col-md-12 > p,
	.advantage-block p,
	.bcpl-empty-state p {
		text-align: left;
	}

	.about-wthree .col-md-6 img,
	.advantages img {
		margin-bottom: 18px;
	}

	.advantage-grid {
		padding-left: 15px;
		padding-right: 15px;
	}

	.about-wthree {
		padding: 30px 0;
	}

	/* style.css adds margin-top:100px here to clear the old overlapping header;
	   the header now reserves its own space, so it is just dead air. */
	.ab-w3l-spa {
		margin-top: 10px;
	}

	/* Long non-breaking-space runs in the legacy copy indent text off-screen. */
	.contact-agile1 {
		text-indent: 0;
	}
}

/* --------------------------------------------------------------------------
   7. Project listing pages (completed / ongoing / upcoming)
   -------------------------------------------------------------------------- */

.about-wthree .row > .col-md-12 > .col-sm-12.col-md-4,
.about-wthree .row > .col-md-12 > .col-sm-12.col-md-6 {
	margin-bottom: 26px;
}

.about-wthree .col-md-4 img.img-thumbnail,
.about-wthree .col-md-6 img.img-thumbnail,
.about-wthree .col-md-12 img.img-thumbnail {
	width: 100%;
	height: auto;
	display: block;
	margin: 0 auto 12px;
}

/* Scoped to the completed-project bands (.pt-30 / .pb-30 wrappers) so it does
   not turn every full-width column on other pages into a flex container. */
@media (min-width: 992px) {

	/* Cards in a row keep the same height so the next row starts clean. */
	.about-wthree .row > .col-md-12.pb-30,
	.about-wthree .row > .col-md-12.pt-30 {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
	}

	.about-wthree .row > .col-md-12.pb-30 > .col-sm-12,
	.about-wthree .row > .col-md-12.pt-30 > .col-sm-12 {
		float: none;
	}
}

@media (max-width: 991px) {
	.about-wthree .row > .col-md-12 > .col-sm-12.col-md-4 {
		width: 50%;
		float: left;
	}
}

@media (max-width: 640px) {

	.about-wthree .row > .col-md-12 > .col-sm-12.col-md-4,
	.about-wthree .row > .col-md-12 > .col-sm-12.col-md-6 {
		width: 100%;
		float: none;
	}
}

/* Ongoing / upcoming: the left-hand project tab rail. */
.brand-pills > li > a {
	padding: 14px 16px;
	font-size: 13px;
	line-height: 1.35;
	border-radius: 0;
	background: #0f2453;
	color: #fff;
	border-bottom: 1px solid rgba(255, 255, 255, .18);
}

.brand-pills > li > a:hover,
.brand-pills > li > a:focus {
	background: #16306c;
	color: #ffce14;
}

.brand-pills > li.active > a,
.brand-pills > li.active > a:hover,
.brand-pills > li.active > a:focus {
	background: #d49809;
	color: #fff;
}

@media (max-width: 991px) {

	/* The rail becomes a horizontally scrollable strip of chips. */
	.nav-pills.brand-pills.nav-stacked {
		margin-top: 20px !important;
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-ms-flex-wrap: nowrap;
		flex-wrap: nowrap;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		padding-bottom: 6px;
	}

	.nav-pills.brand-pills.nav-stacked > li {
		float: none;
		-ms-flex-negative: 0;
		flex-shrink: 0;
		margin: 0 6px 0 0;
	}

	.nav-pills.brand-pills.nav-stacked > li > a {
		white-space: nowrap;
		font-size: 12px;
		padding: 11px 14px;
		border-radius: 3px;
		border-bottom: 0;
	}

	.tab-content {
		margin-top: 10px;
	}
}

@media (max-width: 767px) {
	.about-wthree .row.text-center .col-sm-12 {
		margin-bottom: 16px;
	}
}

/* PREVIOUS / NEXT pagination. */
.next-btn {
	display: inline-block;
	padding: 11px 24px;
	background: #0f2453;
	color: #fff !important;
	border-radius: 3px;
	font-weight: 700;
	letter-spacing: 1px;
	min-width: 120px;
	text-align: center;
}

.next-btn:hover,
.next-btn:focus {
	background: #d49809;
	color: #fff !important;
	text-decoration: none;
}

@media (max-width: 480px) {
	.next-btn {
		display: block;
		width: 100%;
		margin-bottom: 10px;
	}

	.text-left,
	.text-right {
		text-align: center !important;
	}
}

/* --------------------------------------------------------------------------
   8. Tables - flat availability, interior grid
   -------------------------------------------------------------------------- */

.table-responsive {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	-ms-overflow-style: -ms-autohiding-scrollbar;
}

.table-responsive > table {
	margin-bottom: 0;
}

@media (max-width: 767px) {

	.table-responsive {
		border: 0;
		margin-bottom: 20px;
	}

	/* Keeps the availability columns readable rather than squeezed. */
	.table-responsive > .table {
		min-width: 520px;
	}

	.table-responsive > .table > thead > tr > th,
	.table-responsive > .table > tbody > tr > th,
	.table-responsive > .table > tbody > tr > td {
		padding: 9px 8px !important;
		font-size: 12px;
		line-height: 1.35;
	}

	.table-responsive > .table h5 {
		font-size: 12px;
		line-height: 1.5;
		margin: 0;
	}

	.pd-20 {
		padding: 12px !important;
		font-size: 13px;
	}

	.interior-th th {
		line-height: 1.6;
		padding: 12px 8px !important;
		font-size: 12px;
	}

	/* Hint that a table can be swiped sideways. */
	.table-responsive::after {
		content: "\2194  swipe to see all columns";
		display: block;
		font-size: 11px;
		color: #888;
		letter-spacing: .5px;
		padding: 6px 2px 0;
		text-align: right;
	}
}

/* --------------------------------------------------------------------------
   9. Forms - home page contact block, contact page
   -------------------------------------------------------------------------- */

.form-control {
	max-width: 100%;
	height: auto;
	min-height: 44px;
	/* 16px avoids the iOS zoom-on-focus jump */
	font-size: 16px;
}

textarea.form-control {
	min-height: 110px;
	resize: vertical;
}

/* The contact form sits inside a legacy <div align="center"> wrapper. */
.bcpl-form {
	text-align: left;
	max-width: 560px;
	margin: 0 auto;
}

.bcpl-form .form-group {
	margin-bottom: 16px;
}

.bcpl-req {
	color: #c0392b;
}

.bcpl-mandatory {
	font-size: 12px;
	color: #666;
	margin: 0 0 14px;
}

.bcpl-form label {
	display: block;
	margin-bottom: 6px;
	font-weight: 700;
	color: #0f2453;
}

.bcpl-form .bcpl-captcha {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.bcpl-form .bcpl-captcha input[type="text"] {
	-webkit-box-flex: 1;
	-ms-flex: 1 1 160px;
	flex: 1 1 160px;
	min-width: 140px;
	max-width: 220px;
	height: 44px;
	padding: 2px 8px;
	margin-right: 12px;
	border: 1px solid #ccc;
}

.bcpl-form .bcpl-captcha img {
	height: 46px;
	width: 130px;
	background: #fff;
	border: 1px solid #d8dce6;
	border-radius: 3px;
}

.bcpl-captcha-refresh {
	-ms-flex-negative: 0;
	flex-shrink: 0;
	width: 42px;
	height: 46px;
	margin-left: 8px;
	padding: 0;
	background: #f2f5fb;
	border: 1px solid #d8dce6;
	border-radius: 3px;
	color: #0f2453;
	font-size: 15px;
	cursor: pointer;
	-webkit-transition: background .2s ease, border-color .2s ease;
	transition: background .2s ease, border-color .2s ease;
}

.bcpl-captcha-refresh:hover,
.bcpl-captcha-refresh:focus {
	background: #0f2453;
	border-color: #0f2453;
	color: #ffce14;
}

.bcpl-form .bcpl-actions {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.bcpl-form .sub,
.bcpl-form .res {
	-webkit-box-flex: 1;
	-ms-flex: 1 1 140px;
	flex: 1 1 140px;
	min-height: 46px;
	margin: 0 10px 10px 0;
	padding: 10px 22px;
	border: 0;
	border-radius: 3px;
	font-weight: 700;
	letter-spacing: 1px;
	cursor: pointer;
}

.bcpl-form .sub {
	background: #0f2453;
	color: #fff;
}

.bcpl-form .sub:hover {
	background: #d49809;
}

.bcpl-form .res {
	background: #e6e6e6;
	color: #333;
}

.bcpl-form .res:hover {
	background: #d2d2d2;
}

.bcpl-error {
	border: 1px solid #990000;
	background-color: #d70000;
	color: #fff;
	padding: 8px 10px;
	border-radius: 3px;
	max-width: 100%;
	margin-bottom: 12px;
}

/* "Read More" buttons across the site follow the brand, not bootstrap red. */
.about-wthree .btn-danger,
.advantage-block .btn-danger {
	background: #0f2453;
	border-color: #0f2453;
	padding: 10px 26px;
	letter-spacing: 1px;
	font-weight: 700;
	border-radius: 3px;
}

.about-wthree .btn-danger:hover,
.about-wthree .btn-danger:focus,
.advantage-block .btn-danger:hover,
.advantage-block .btn-danger:focus {
	background: #d49809;
	border-color: #d49809;
}

@media (max-width: 767px) {

	.contact-agileits h4,
	.contact-w3-agile1 h4 {
		font-size: 20px;
	}

	/* Comfortable tap targets throughout. */
	a.btn,
	button,
	input[type="submit"],
	input[type="reset"],
	input[type="button"] {
		min-height: 44px;
	}
}

/* --------------------------------------------------------------------------
   10. Interior design page - gallery and tab buttons
   -------------------------------------------------------------------------- */

#vlightbox1 {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
}

/* A tidy grid instead of thumbnails at their own natural sizes. */
#vlightbox1 a {
	display: block;
	width: 16.666%;
	padding: 5px;
}

#vlightbox1 img {
	display: block;
	width: 100%;
	height: 140px;
	object-fit: cover;
	-o-object-fit: cover;
	border-radius: 3px;
}

@media (max-width: 1199px) {
	#vlightbox1 a {
		width: 25%;
	}
}

@media (max-width: 767px) {
	#vlightbox1 a {
		width: 50%;
	}

	#vlightbox1 img {
		height: 120px;
	}
}

/* The interior services grid reads as a table of headings - give it the same
   navy/gold treatment as the availability tables. */
.interior-th th {
	background: #f6f7fa;
	color: #0f2453;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: .6px;
	border-color: #e3e6ee !important;
}

.about-wthree h2.text-center {
	margin-top: 46px;
	font-family: 'Oswald', 'Lato', sans-serif;
	letter-spacing: 3px;
	color: #0f2453;
}

.tz-gallery {
	padding: 20px 0;
}

.tz-gallery .lightbox img {
	height: auto;
}

@media (max-width: 767px) {
	.tz-gallery {
		padding: 10px 0;
	}

	/* Stacked, full-width buttons instead of a squashed justified group. */
	.btn-pref.btn-group-justified {
		display: block;
	}

	.btn-pref.btn-group-justified > .btn-group {
		display: block;
		width: 100%;
		margin-bottom: 8px;
	}

	.btn-pref.btn-group-justified > .btn-group > .btn {
		width: 100%;
		border-radius: 3px !important;
		line-height: 1.5;
		padding: 13px 10px;
		font-size: 14px;
		white-space: normal;
	}

	.well {
		padding: 12px;
	}
}

.modal-lg {
	width: auto;
	max-width: 500px;
}

@media (max-width: 540px) {

	.modal-lg,
	.modal-dialog {
		width: auto;
		margin: 10px;
	}
}

.ch-grid li {
	width: auto;
	height: auto;
	max-width: 220px;
	margin: 12px;
}

/* --------------------------------------------------------------------------
   11. Footer
   -------------------------------------------------------------------------- */

.copy p {
	padding: 1em 15px;
	letter-spacing: 1px;
	line-height: 1.6;
}

@media (max-width: 767px) {
	.copy p {
		font-size: 12px;
		letter-spacing: .5px;
	}
}

/* --------------------------------------------------------------------------
   12. Legacy pages built with layout tables (watch.php)
   -------------------------------------------------------------------------- */

.bcpl-legacy-scroll {
	width: 100%;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
}

.bcpl-legacy-scroll > table {
	max-width: 100%;
}

@media (max-width: 767px) {
	.bcpl-legacy-scroll > table {
		width: 100% !important;
	}
}

/* --------------------------------------------------------------------------
   Site footer (layouts/contact.php)
   A flat navy panel rather than a photo with translucent boxes floating on it.
   Fields are tinted glass on the navy, not solid white - white blocks on a
   dark ground glare and pull the eye away from everything else.
   -------------------------------------------------------------------------- */

.bcpl-footer {
	position: relative;
	background: #0d1f47;
	background: -webkit-linear-gradient(top, #123059 0%, #0b1a3c 100%);
	background: linear-gradient(180deg, #123059 0%, #0b1a3c 100%);
	border-top: 3px solid #ffce14;
	padding: 58px 0 44px;
	color: #b9c2d6;
	font-size: 14px;
	line-height: 1.75;
}

.bcpl-footer__grid {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	margin: 0 -18px;
}

.bcpl-footer__col {
	padding: 0 18px;
	margin-bottom: 26px;
}

.bcpl-footer__col--form {
	width: 42%;
}

.bcpl-footer__col--links {
	width: 24%;
}

.bcpl-footer__col--reach {
	width: 34%;
}

/* This project's bootstrap.css has been edited to centre and pad every h4
   globally (h4 { text-align:center; padding:20px }), and style.css justifies
   every p - both have to be undone here. */
.bcpl-footer__title {
	margin: 0 0 6px;
	padding: 0;
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 2.2px;
	text-transform: uppercase;
	text-align: left;
	color: #fff;
}

.bcpl-footer p {
	text-align: left;
}

.bcpl-footer__title::after {
	content: "";
	display: block;
	width: 34px;
	height: 2px;
	margin: 10px 0 16px;
	background: #ffce14;
}

.bcpl-footer__lead {
	margin: 0 0 18px;
	font-size: 13.5px;
	color: #9fabc4;
}

/* --- form ------------------------------------------------------------------ */

.bcpl-footer__row {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	margin: 0 -6px;
}

.bcpl-footer__row > input {
	-webkit-box-flex: 1;
	-ms-flex: 1 1 140px;
	flex: 1 1 140px;
	margin: 0 6px 12px;
	width: auto;
}

.bcpl-footer__form input {
	display: block;
	width: 100%;
	margin-bottom: 12px;
	padding: 11px 14px;
	min-height: 46px;
	background: rgba(255, 255, 255, .06);
	border: 1px solid rgba(255, 255, 255, .18);
	border-radius: 3px;
	color: #fff;
	font-size: 14px;
	font-family: inherit;
	-webkit-transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
	transition: border-color .2s ease, background .2s ease, box-shadow .2s ease;
}

.bcpl-footer__form input::-webkit-input-placeholder {
	color: #8b96ad;
}

.bcpl-footer__form input::-moz-placeholder {
	color: #8b96ad;
	opacity: 1;
}

.bcpl-footer__form input::placeholder {
	color: #8b96ad;
}

.bcpl-footer__form input:hover {
	border-color: rgba(255, 255, 255, .32);
}

.bcpl-footer__form input:focus {
	outline: none;
	background: rgba(255, 255, 255, .1);
	border-color: #ffce14;
	-webkit-box-shadow: 0 0 0 3px rgba(255, 206, 20, .16);
	box-shadow: 0 0 0 3px rgba(255, 206, 20, .16);
}

.bcpl-footer__form button {
	display: inline-block;
	margin-top: 4px;
	padding: 12px 28px;
	background: #ffce14;
	border: 0;
	border-radius: 3px;
	color: #0f2453;
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	cursor: pointer;
	-webkit-transition: background .2s ease, transform .2s ease;
	transition: background .2s ease, transform .2s ease;
}

.bcpl-footer__form button i {
	margin-left: 7px;
}

.bcpl-footer__form button:hover,
.bcpl-footer__form button:focus {
	background: #fff;
	-webkit-transform: translateY(-2px);
	-ms-transform: translateY(-2px);
	transform: translateY(-2px);
}

.bcpl-footer__note {
	margin: 12px 0 0;
	font-size: 12px;
	color: #7e89a1;
}

/* --- quick links ----------------------------------------------------------- */

.bcpl-footer__links {
	list-style: none;
	margin: 0;
	padding: 0;
}

.bcpl-footer__links li {
	margin-bottom: 9px;
}

.bcpl-footer__links a {
	position: relative;
	display: inline-block;
	padding-left: 15px;
	color: #b9c2d6;
	font-size: 13.5px;
	-webkit-transition: color .2s ease, padding-left .2s ease;
	transition: color .2s ease, padding-left .2s ease;
}

.bcpl-footer__links a::before {
	content: "\203A";
	position: absolute;
	left: 0;
	top: -1px;
	color: #ffce14;
}

.bcpl-footer__links a:hover,
.bcpl-footer__links a:focus {
	color: #fff;
	padding-left: 20px;
	text-decoration: none;
}

/* --- reach us -------------------------------------------------------------- */

.bcpl-footer__contact {
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}

.bcpl-footer__contact li {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: start;
	-ms-flex-align: start;
	align-items: flex-start;
	margin-bottom: 13px;
	font-size: 13.5px;
}

.bcpl-footer__contact li > i {
	-ms-flex-negative: 0;
	flex-shrink: 0;
	width: 17px;
	margin-right: 11px;
	margin-top: 4px;
	color: #ffce14;
	text-align: center;
}

.bcpl-footer__contact a {
	color: #b9c2d6;
}

.bcpl-footer__contact a:hover {
	color: #ffce14;
}

.bcpl-footer__maplink {
	display: inline-block;
	margin-bottom: 20px;
	padding: 8px 16px;
	border: 1px solid rgba(255, 255, 255, .22);
	border-radius: 3px;
	color: #dfe4ef;
	font-size: 12px;
	letter-spacing: .8px;
	-webkit-transition: border-color .2s ease, color .2s ease;
	transition: border-color .2s ease, color .2s ease;
}

.bcpl-footer__maplink i {
	margin-right: 7px;
	color: #ffce14;
}

.bcpl-footer__maplink:hover,
.bcpl-footer__maplink:focus {
	border-color: #ffce14;
	color: #fff;
	text-decoration: none;
}

/* --- social ---------------------------------------------------------------- */

.bcpl-footer__social {
	list-style: none;
	margin: 0;
	padding: 0;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
}

.bcpl-footer__social li {
	margin: 0 9px 9px 0;
}

.bcpl-footer__social a {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: center;
	-ms-flex-pack: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	border: 1px solid rgba(255, 255, 255, .2);
	border-radius: 50%;
	color: #cdd5e4;
	font-size: 15px;
	-webkit-transition: background .2s ease, border-color .2s ease, color .2s ease;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}

.bcpl-footer__social a:hover,
.bcpl-footer__social a:focus {
	background: #ffce14;
	border-color: #ffce14;
	color: #0f2453;
	text-decoration: none;
}

/* --- copyright bar (layouts/footer.php) ------------------------------------ */

.copy {
	background: #0a1631;
	border-top: 1px solid rgba(255, 255, 255, .08);
}

.copy p {
	font-size: 13px;
	color: #97a2b8;
}

/* --- responsive ------------------------------------------------------------ */

@media (max-width: 991px) {
	.bcpl-footer__col--form {
		width: 100%;
	}

	.bcpl-footer__col--links {
		width: 38%;
	}

	.bcpl-footer__col--reach {
		width: 62%;
	}
}

@media (max-width: 767px) {
	.bcpl-footer {
		padding: 40px 0 30px;
	}

	.bcpl-footer__col--links,
	.bcpl-footer__col--reach {
		width: 100%;
	}

	.bcpl-footer__col {
		margin-bottom: 30px;
	}

	.bcpl-footer__col:last-child {
		margin-bottom: 0;
	}

	.bcpl-footer__form button {
		width: 100%;
		text-align: center;
	}
}

/* --------------------------------------------------------------------------
   Home page sections - Projects & Services / About BCPL / What We Offer
   One shared heading treatment, cards with a real media frame, and the two
   column blocks balanced against each other instead of one side dwarfing
   the other. Content and imagery unchanged.
   -------------------------------------------------------------------------- */

/* --- shared section heading ------------------------------------------------ */

.banner-bottom .agileits_banner_bottom h3,
.about-wthree .ab-w3l-spa > h3.title-w3-agileits,
.advantages .advantages-main > h3.title-w3-agileits {
	position: relative;
	margin: 0 0 14px;
	padding: 0 0 18px;
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 32px;
	font-weight: 400;
	line-height: 1.2;
	letter-spacing: 3px;
	text-align: center;
	text-transform: uppercase;
	color: #0f2453;
}

.banner-bottom .agileits_banner_bottom h3::after,
.about-wthree .ab-w3l-spa > h3.title-w3-agileits::after,
.advantages .advantages-main > h3.title-w3-agileits::after {
	content: "";
	position: absolute;
	left: 50%;
	bottom: 0;
	width: 62px;
	height: 3px;
	margin-left: -31px;
	background: #ffce14;
	border-radius: 2px;
}

.banner-bottom .agileits_banner_bottom h3 span {
	font-size: inherit !important;
	color: inherit;
	background: none;
	padding: 0;
	letter-spacing: inherit;
}

.banner-bottom .agileits_banner_bottom {
	margin-bottom: 34px;
}

.bcpl-tagline {
	text-align: center;
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 14px;
	font-weight: 400;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: #d49809;
	margin: 0 0 18px;
}

/* --- Projects & Services --------------------------------------------------- */

.banner-bottom {
	background: #fff;
	padding: 74px 0;
}

/* All four graphics are 200x160, so framing the media at that exact 5:4 ratio
   lets them fill it edge to edge - no letterboxing, no image floating in a
   box of empty background. */
.bcpl-cards .bcpl-card__media {
	position: relative;
	height: auto;
	aspect-ratio: 5 / 4;
	padding: 0;
	background: #fff;
	border-bottom: 1px solid #e7ebf3;
}

.bcpl-cards .bcpl-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	-o-object-fit: cover;
}

@supports not (aspect-ratio: 1) {
	.bcpl-cards .bcpl-card__media {
		height: 190px;
	}
}

.bcpl-card {
	position: relative;
}

/* Gold rule that sweeps in across the top of the card on hover. */
.bcpl-card::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 3px;
	background: #ffce14;
	-webkit-transform: scaleX(0);
	-ms-transform: scaleX(0);
	transform: scaleX(0);
	-webkit-transform-origin: left center;
	-ms-transform-origin: left center;
	transform-origin: left center;
	-webkit-transition: transform .35s ease;
	transition: transform .35s ease;
	z-index: 3;
}

.bcpl-card:hover::before,
.bcpl-card:focus::before {
	-webkit-transform: scaleX(1);
	-ms-transform: scaleX(1);
	transform: scaleX(1);
}

.bcpl-cards .bcpl-card__body {
	padding: 22px 20px 20px;
	border-top: 0;
}

.bcpl-cards .bcpl-card__title {
	font-size: 15px;
	letter-spacing: 1.6px;
	margin-bottom: 10px;
}

.bcpl-cards .bcpl-card__text {
	font-size: 13.5px;
	line-height: 1.7;
	color: #6b7286;
	margin-bottom: 16px;
}

.bcpl-cards .bcpl-card__cta {
	padding-top: 14px;
	border-top: 1px solid #eef0f5;
	width: 100%;
}

/* --- About BCPL ------------------------------------------------------------ */

.about-wthree {
	background: #eef1f6;
	padding: 74px 0;
}

.about-wthree .ab-w3l-spa > .about-para-w3ls {
	font-size: 15.5px;
	line-height: 1.9;
	color: #4a5265;
	max-width: 820px;
	margin: 0 auto 46px;
}

.bcpl-about-row > .col-md-6 > img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	-webkit-box-shadow: 0 10px 30px rgba(15, 36, 83, .14);
	box-shadow: 0 10px 30px rgba(15, 36, 83, .14);
}

.bcpl-about-row > .col-md-6 > p,
.bcpl-about-row > .col-md-6 p {
	font-size: 15px;
	line-height: 1.95;
	color: #4a5265;
	text-align: left;
}

@media (min-width: 992px) {
	.bcpl-about-row > .col-md-6:last-child {
		padding-left: 42px;
	}
}

/* --- What We Offer --------------------------------------------------------- */

.advantages {
	background: #fff;
	padding: 74px 0;
}

.advantages .advantages-main > h3.title-w3-agileits {
	color: #0f2453;
	margin-bottom: 40px;
}

.bcpl-offer-row {
	margin-left: -15px;
	margin-right: -15px;
}

.bcpl-offer-row .advantage-grid {
	padding-left: 15px;
	padding-right: 15px;
}

/* Copy panel: a quiet card with a gold spine rather than a boxed-in block. */
.bcpl-offer-row .left-w3ls .advantage-block {
	height: 100%;
	padding: 34px 34px 34px 32px;
	background: #f7f9fc;
	border: 1px solid #e7ebf3;
	border-left: 3px solid #ffce14;
	border-radius: 4px;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.bcpl-offer-row .left-w3ls .advantage-block:hover {
	background: #f2f5fb;
	border-color: #e7ebf3;
	border-left-color: #ffce14;
	-webkit-box-shadow: none;
	box-shadow: none;
}

.bcpl-offer-row .advantage-block > i.fa {
	display: inline-block;
	width: 52px;
	height: 52px;
	line-height: 52px;
	margin-bottom: 18px;
	text-align: center;
	font-size: 21px;
	color: #0f2453;
	background: #ffce14;
	border-radius: 4px;
}

.bcpl-offer-row .advantage-block p {
	font-size: 15px;
	line-height: 1.95;
	color: #4a5265;
	text-align: left;
	margin-bottom: 22px;
}

/* Photo column: match the copy panel's height instead of towering over it. */
.bcpl-offer-row .right-w3ls .advantage-block {
	height: 100%;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 4px;
	overflow: hidden;
	-webkit-box-shadow: 0 10px 30px rgba(15, 36, 83, .14);
	box-shadow: 0 10px 30px rgba(15, 36, 83, .14);
}

.bcpl-offer-row .right-w3ls .advantage-block img {
	width: 100%;
	height: auto;
	object-fit: cover;
	-o-object-fit: cover;
	border-radius: 4px;
}

@media (min-width: 992px) {
	.bcpl-offer-row {
		-webkit-box-align: stretch;
		-ms-flex-align: stretch;
		align-items: stretch;
	}

	.bcpl-offer-row .advantage-grid {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
	}

	.bcpl-offer-row .advantage-block {
		width: 100%;
	}

	/* services1.jpg is portrait (437x500). Left in normal flow it renders ~620px
	   tall and drags the copy panel up with it, leaving a block of dead space
	   under the text. Taking it out of flow lets the copy set the height and
	   the photo simply fills whatever that is. */
	.bcpl-offer-row .right-w3ls .advantage-block {
		position: relative;
		min-height: 380px;
	}

	.bcpl-offer-row .right-w3ls .advantage-block img {
		position: absolute;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
	}
}

/* --- small screens --------------------------------------------------------- */

@media (max-width: 991px) {

	.banner-bottom,
	.about-wthree,
	.advantages {
		padding: 46px 0;
	}

	.banner-bottom .agileits_banner_bottom h3,
	.about-wthree .ab-w3l-spa > h3.title-w3-agileits,
	.advantages .advantages-main > h3.title-w3-agileits {
		font-size: 25px;
		letter-spacing: 2px;
		padding-bottom: 14px;
	}

	.bcpl-about-row > .col-md-6 > img {
		margin-bottom: 24px;
	}

	.bcpl-offer-row .right-w3ls .advantage-block img {
		min-height: 0;
		height: auto;
	}

	.bcpl-offer-row .left-w3ls .advantage-block {
		padding: 24px 22px;
	}
}

@media (max-width: 767px) {

	.banner-bottom,
	.about-wthree,
	.advantages {
		padding: 38px 0;
	}

	.banner-bottom .agileits_banner_bottom h3,
	.about-wthree .ab-w3l-spa > h3.title-w3-agileits,
	.advantages .advantages-main > h3.title-w3-agileits {
		font-size: 21px !important;
		letter-spacing: 1.6px;
	}

	.bcpl-tagline {
		font-size: 12px;
		letter-spacing: 2px;
	}

	.about-wthree .ab-w3l-spa > .about-para-w3ls {
		margin-bottom: 28px;
	}
}

/* --------------------------------------------------------------------------
   About Us page
   The copy ran the full container width - a ~1000px measure that is hard to
   read - and the three closing paragraphs were one <p> broken with <br><br>.
   Same words, same photo, held to a readable column with real paragraphs.
   -------------------------------------------------------------------------- */

.bcpl-about-stat {
	max-width: 720px;
	margin: 0 auto 26px;
	text-align: center;
	font-size: 16px;
	line-height: 1.8;
	color: #3f4759;
}

.bcpl-about-stat .style1 {
	font-weight: 700;
	color: #0f2453;
}

.bcpl-about-stat .style2 {
	font-size: inherit;
}

/* --- figures pulled from the page's own copy ------------------------------- */

.bcpl-stats {
	list-style: none;
	margin: 0 auto 46px;
	padding: 0;
	max-width: 860px;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-ms-flex-wrap: wrap;
	flex-wrap: wrap;
	background: #fff;
	border: 1px solid #e2e6ef;
	border-radius: 4px;
	overflow: hidden;
	-webkit-box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
	box-shadow: 0 1px 2px rgba(16, 24, 40, .05);
}

.bcpl-stat {
	-webkit-box-flex: 1;
	-ms-flex: 1 1 0;
	flex: 1 1 0;
	padding: 24px 18px;
	text-align: center;
	border-right: 1px solid #e2e6ef;
}

.bcpl-stat:last-child {
	border-right: 0;
}

.bcpl-stat__num {
	display: block;
	font-family: 'Oswald', 'Lato', sans-serif;
	font-size: 30px;
	font-weight: 700;
	line-height: 1.1;
	color: #0f2453;
	margin-bottom: 6px;
}

.bcpl-stat__label {
	display: block;
	font-size: 11.5px;
	font-weight: 700;
	letter-spacing: 1.6px;
	text-transform: uppercase;
	color: #d49809;
}

/* --- promoter story row ---------------------------------------------------- */

.bcpl-about-row {
	margin-bottom: 46px;
}

.bcpl-about-row > .col-md-6 > img {
	width: 100%;
	height: auto;
	border-radius: 4px;
	-webkit-box-shadow: 0 10px 30px rgba(15, 36, 83, .14);
	box-shadow: 0 10px 30px rgba(15, 36, 83, .14);
}

.bcpl-about-row > .col-md-6 p {
	font-size: 15px;
	line-height: 1.95;
	color: #4a5265;
	text-align: left;
}

/* An even 50/50 leaves the photo towering over a short paragraph - give the
   copy the larger half so the two sides read closer in weight. */
@media (min-width: 992px) {
	.bcpl-about-row > .col-md-6:first-child {
		width: 45%;
	}

	.bcpl-about-row > .col-md-6:last-child {
		width: 55%;
		padding-left: 40px;
	}
}

/* --- closing copy ---------------------------------------------------------- */

.bcpl-prose > .col-md-12 {
	max-width: 860px;
	margin: 0 auto;
	float: none;
}

.bcpl-prose p {
	font-size: 15px;
	line-height: 2;
	color: #4a5265;
	text-align: left;
	margin: 0 0 22px;
}

.bcpl-prose p:last-child {
	margin-bottom: 0;
}

.bcpl-prose .style1 {
	font-weight: 700;
	color: #0f2453;
}

/* A quiet gold initial rule to open the closing section. */
.bcpl-prose > .col-md-12::before {
	content: "";
	display: block;
	width: 62px;
	height: 3px;
	margin: 0 auto 34px;
	background: #ffce14;
	border-radius: 2px;
}

@media (max-width: 767px) {
	.bcpl-stats {
		margin-bottom: 30px;
	}

	.bcpl-stat {
		-ms-flex: 1 1 100%;
		flex: 1 1 100%;
		border-right: 0;
		border-bottom: 1px solid #e2e6ef;
		padding: 18px;
	}

	.bcpl-stat:last-child {
		border-bottom: 0;
	}

	.bcpl-stat__num {
		font-size: 26px;
	}

	.bcpl-about-stat {
		font-size: 14.5px;
	}

	.bcpl-about-row {
		margin-bottom: 30px;
	}

	.bcpl-prose > .col-md-12::before {
		margin-bottom: 24px;
	}

	.bcpl-prose p {
		font-size: 14px;
		line-height: 1.9;
		margin-bottom: 18px;
	}
}

/* --------------------------------------------------------------------------
   13. Print and motion preferences
   -------------------------------------------------------------------------- */

@media print {

	.banner-top,
	.bcpl-loader,
	.bcpl-rail,
	.thim-click-to-bottom {
		display: none !important;
	}

	body {
		padding-top: 0 !important;
	}
}

@media (prefers-reduced-motion: reduce) {

	*,
	*::before,
	*::after {
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

/* --------------------------------------------------------------------------
   14. White header
   The nav bar was navy (style.css line ~377 `.w3_navigation`), with white
   link text on top of it. On white, the gold the old bar leaned on stops
   being legible - #ffce14 scores 1.49:1 against white and #d49809 only
   2.53:1, both far short of the 4.5:1 AA needs. So gold is kept purely as a
   graphic accent (the logo mark, brackets, rules) and every piece of text is
   navy #0f2453 (15.03:1) or the deep gold #96680a (4.91:1).
   -------------------------------------------------------------------------- */

.banner-top .w3_navigation {
	background: #fff;
}

/* the header floats over the page, so it needs its own edge now that the
   navy block is gone */
.banner-top {
	border-bottom: 1px solid #e6e9f0;
}

/* --- brand ----------------------------------------------------------------- */

.banner-top .navbar-brand > span,
.banner-top .navbar-default .navbar-brand,
.banner-top .navbar-default .navbar-brand:hover,
.banner-top .navbar-default .navbar-brand:focus {
	color: #0f2453;
}

.banner-top .navbar-brand .brand-tagline {
	color: #96680a;
}

/* --- desktop links --------------------------------------------------------- */

.banner-top .nav li a,
.banner-top .menu__link {
	background: transparent;
	color: #0f2453;
}

/* style.css gives the links a dark drop shadow to lift them off the navy;
   on white it just muddies them */
.banner-top .menu--iris .menu__link {
	text-shadow: none;
}

.banner-top .nav a:hover,
.banner-top .nav li a:hover,
.banner-top .nav li a:focus,
.banner-top .menu--iris .menu__link:hover,
.banner-top .menu--iris .menu__link:focus,
.banner-top .menu--iris .menu__item--current .menu__link {
	background: transparent;
	color: #96680a;
}

/* the corner brackets stay, in the deeper gold so they read on white */
.banner-top .menu--iris .menu__link::before,
.banner-top .menu--iris .menu__link::after {
	border-color: #d49809;
}

/* --- desktop dropdown ------------------------------------------------------ */

@media (min-width: 768px) {

	/* the panel used to sit against a navy bar; on white it needs an outline
	   of its own or it bleeds into the header */
	.banner-top .dropdown-menu {
		border: 1px solid #e6e9f0;
		border-top: 3px solid #d49809;
		-webkit-box-shadow: 0 14px 30px rgba(15, 36, 83, .16);
		box-shadow: 0 14px 30px rgba(15, 36, 83, .16);
	}
}

/* --- mobile header --------------------------------------------------------- */

@media (max-width: 767px) {

	.banner-top .navbar-toggle {
		border: 1px solid rgba(15, 36, 83, .38);
	}

	.banner-top .navbar-toggle:hover,
	.banner-top .navbar-toggle:focus {
		background: rgba(15, 36, 83, .07);
	}

	.banner-top .navbar-toggle .icon-bar {
		background-color: #0f2453;
	}

	.banner-top .navbar-collapse {
		background: #fff;
		border-top: 1px solid #e6e9f0;
	}

	.banner-top .navbar-nav > li > a,
	.banner-top .menu__list > li > a {
		color: #0f2453;
		border-bottom: 1px solid #eef0f5;
	}

	.banner-top .navbar-nav > li > a:hover,
	.banner-top .navbar-nav > li > a:focus,
	.banner-top .menu__list > li > a:hover,
	.banner-top .menu__list > li > a:focus {
		color: #96680a;
	}

	.banner-top .navbar-nav > li.dropdown > a.dropdown-toggle::after {
		color: #d49809;
	}

	/* the submenu was a black wash over navy; on white it has to be a tint */
	.banner-top .navbar-nav .dropdown-menu {
		background: #f6f7fa;
		border-left: 2px solid #d49809;
	}
}

/* --- mobile submenu -------------------------------------------------------- */
/* Section 4 colours these for the navy panel: #dfe4ef links on a black wash,
   with white hairline rules. All of that disappears on the light panel, so
   the three PROJECTS entries have to be re-inked. */

@media (max-width: 767px) {

	.banner-top .navbar-default .navbar-nav .open .dropdown-menu > li > a,
	.banner-top .navbar-default .navbar-nav .dropdown-menu > li > a {
		color: #0f2453;
		border-bottom: 1px solid #e6e9f0;
	}

	.banner-top .navbar-default .navbar-nav .dropdown-menu > li > a::before {
		color: #d49809;
	}

	.banner-top .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover,
	.banner-top .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus {
		background: rgba(212, 152, 9, .14);
		color: #96680a;
	}
}

/* --- the open PROJECTS link ------------------------------------------------ */
/* Every page runs a jQuery .hover() that toggles .open on the dropdown, and
   style.css sets `.navbar-default .navbar-nav>.open>a{color:#fff}` globally
   at (0,3,1) - with :hover at (0,4,1), which outranks the link colours set
   above. Left alone, PROJECTS turns white-on-white the moment it is hovered. */

.banner-top .navbar-default .navbar-nav > .open > a,
.banner-top .navbar-default .navbar-nav > .open > a:hover,
.banner-top .navbar-default .navbar-nav > .open > a:focus {
	background: transparent;
	color: #96680a;
}

/* --- keep the dropdown's own hover ----------------------------------------- */
/* The generic link colours above are `.banner-top .nav li a` (0,3,2 with the
   pseudo-class), which ties section 3's `.banner-top .dropdown-menu > li > a`
   and wins on source order - flattening the navy hover row the submenu was
   designed with. Re-assert it; gold on navy is 10.08:1. */

@media (min-width: 768px) {

	.banner-top .dropdown-menu > li > a {
		background: transparent;
		color: #0f2453;
	}

	.banner-top .dropdown-menu > li > a:hover,
	.banner-top .dropdown-menu > li > a:focus {
		background: #0f2453;
		color: #ffce14;
	}
}

/* --- the full logo lock-up -------------------------------------------------- */
/* The brand is now the artwork itself - mark, name and tagline in one image -
   instead of the mark beside live HTML text. It is a stacked, near-square
   lock-up (222x240, aspect .923), so its baked-in "BHUVANESHWARI" is only
   8.7% of the image height: it needs roughly 110px of height before that line
   is comfortably readable, against the 64px the old mark sat at. Height is
   stepped down on smaller screens, where the wordmark reads as brand shape
   rather than text and a tall fixed header would eat the viewport. */

.banner-top .navbar-brand .brand-logo {
	max-height: 112px;
	margin-right: 0;
	width: auto;
}

@media (max-width: 991px) {
	.banner-top .navbar-brand .brand-logo {
		max-height: 92px;
	}
}

@media (max-width: 767px) {
	.banner-top .navbar-brand .brand-logo {
		max-height: 68px;
	}
}

@media (max-width: 400px) {
	.banner-top .navbar-brand .brand-logo {
		max-height: 56px;
	}
}

/* --------------------------------------------------------------------------
   15. Nav row alignment
   Brand and menu were laid out with bootstrap's floats (.navbar-left /
   .navbar-right), which align both to the TOP of the row. That was unnoticed
   while the brand was a 64px mark, but against the 112px lock-up the menu
   sits high and reads as unaligned. Flex the row instead and centre it.
   Desktop only - below 768px the menu is the collapsed panel and has to stay
   a full-width block under the brand.
   -------------------------------------------------------------------------- */

@media (min-width: 768px) {

	.banner-top .w3_navigation .navbar {
		display: -webkit-box;
		display: -ms-flexbox;
		display: flex;
		-webkit-box-align: center;
		-ms-flex-align: center;
		align-items: center;
		-webkit-box-pack: justify;
		-ms-flex-pack: justify;
		justify-content: space-between;
	}

	/* bootstrap.css line ~6319 gives .navbar a clearfix ::before/::after.
	   Inside a flex container those stop being table cells and become two
	   extra flex items, which space-between then spaces out - pushing the
	   brand and the menu in from both edges. Flex needs no clearfix. */
	.banner-top .w3_navigation .navbar::before,
	.banner-top .w3_navigation .navbar::after {
		display: none;
	}

	/* .navbar-right pulls itself out by -15px to sit flush in the floated
	   row; as a flex item that just hangs it past the container edge */
	.banner-top .navbar-collapse.navbar-right {
		margin-right: 0;
	}

	/* style.css line ~4595 lifts .nav by 8px - a nudge for the float layout
	   that now reads as the menu sitting above centre */
	.banner-top .navbar-collapse .nav {
		margin-top: 0;
		margin-bottom: 0;
	}
}

/* --------------------------------------------------------------------------
   16. Floating contact rail
   The phone and email used to sit in a strip across the top of the header,
   which cost ~44px of every page for two links most visitors never need on
   arrival. They are now a fixed pair of buttons pinned to the right edge and
   centred against the viewport: icon only at rest, sliding open to reveal the
   number / address on hover or keyboard focus. Sits under the header
   (z-index 9999) so it can never cover the menu.
   Colours: gold on navy at rest is 10.08:1, navy on gold when open is 5.94:1.
   -------------------------------------------------------------------------- */

.bcpl-rail {
	position: fixed;
	right: 0;
	top: 50%;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	z-index: 9990;
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-orient: vertical;
	-webkit-box-direction: normal;
	-ms-flex-direction: column;
	flex-direction: column;
	-webkit-box-align: end;
	-ms-flex-align: end;
	align-items: flex-end;
}

.bcpl-rail-btn {
	display: -webkit-box;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-ms-flex-align: center;
	align-items: center;
	margin-bottom: 8px;
	background: #0f2453;
	color: #fff;
	text-decoration: none;
	border-radius: 4px 0 0 4px;
	-webkit-box-shadow: 0 6px 18px rgba(15, 36, 83, .28);
	box-shadow: 0 6px 18px rgba(15, 36, 83, .28);
	-webkit-transition: background .25s ease, color .25s ease;
	transition: background .25s ease, color .25s ease;
}

.bcpl-rail-btn:last-child {
	margin-bottom: 0;
}

.bcpl-rail-btn:hover,
.bcpl-rail-btn:focus {
	background: #d49809;
	color: #0f2453;
	text-decoration: none;
}

.bcpl-rail-ic {
	-webkit-box-flex: 0;
	-ms-flex: 0 0 52px;
	flex: 0 0 52px;
	width: 52px;
	height: 52px;
	line-height: 52px;
	text-align: center;
	font-size: 19px;
	color: #ffce14;
	-webkit-transition: color .25s ease;
	transition: color .25s ease;
}

.bcpl-rail-btn:hover .bcpl-rail-ic,
.bcpl-rail-btn:focus .bcpl-rail-ic {
	color: #0f2453;
}

/* clipped to nothing until the button opens; max-width animates, width:auto
   would not */
.bcpl-rail-txt {
	max-width: 0;
	overflow: hidden;
	white-space: nowrap;
	opacity: 0;
	font-family: 'Federo', sans-serif;
	font-size: 14px;
	letter-spacing: .6px;
	-webkit-transition: max-width .32s ease, opacity .22s ease, padding .32s ease;
	transition: max-width .32s ease, opacity .22s ease, padding .32s ease;
}

.bcpl-rail-btn:hover .bcpl-rail-txt,
.bcpl-rail-btn:focus .bcpl-rail-txt {
	max-width: 240px;
	opacity: 1;
	padding-left: 18px;
}

/* Touch: there is no hover to open the label, and a tap should place the call
   or open the mail client rather than expand a panel first. */
@media (max-width: 767px) {

	.bcpl-rail-txt {
		display: none;
	}

	.bcpl-rail-ic {
		-ms-flex: 0 0 46px;
		flex: 0 0 46px;
		width: 46px;
		height: 46px;
		line-height: 46px;
		font-size: 17px;
	}

	.bcpl-rail-btn {
		margin-bottom: 6px;
	}
}
