/* Tier1 Construction Services: homepage components.
   Colours resolve through Core Framework tokens, so tier1-dark.css only reassigns --t1-* values.
   1rem = 10px (Core Framework root size). Measurements come from T1_Index_v1.psd. */

@font-face {
	font-family: "Inter";
	src: url("../fonts/inter-latin-wght-normal.woff2") format("woff2");
	font-weight: 100 900;
	font-style: normal;
	font-display: swap;
}

:root {
	--t1-font: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;
	--t1-gutter: clamp(2rem, 5vw, 4rem);
	--t1-section: clamp(6rem, 8vw, 12rem);
	--t1-fs-h1: clamp(3.8rem, 2.6rem + 2.6vw, 6rem);
	--t1-fs-h2: clamp(3rem, 2.1rem + 1.9vw, 4.8rem);
	--t1-fs-h3: clamp(2.2rem, 1.9rem + .6vw, 3rem);
	--t1-fs-h4: clamp(1.9rem, 1.7rem + .4vw, 2.4rem);
	--t1-fs-body: clamp(1.7rem, 1.6rem + .2vw, 2rem);

	/* Surfaces */
	--t1-accent: var(--primary);
	--t1-page: var(--bg-body);
	--t1-title: var(--text-title);
	--t1-text: var(--text-body);
	--t1-eyebrow: currentColor;
	--t1-rule: var(--primary);

	/* Orange bands */
	--t1-band: var(--primary);
	--t1-band-title: #000;
	--t1-band-text: #000;
	--t1-photo-blend: luminosity;
	--t1-photo-opacity: .7;
	--t1-photo-filter: none;

	/* Service panel */
	--t1-panel: #fff;
	--t1-caption: rgba(255, 255, 255, .7);
	--t1-caption-strong: rgba(255, 255, 255, .8);
	--t1-caption-title: #000;
	--t1-caption-text: #000;

	/* Why Tier1 */
	--t1-why: linear-gradient(to bottom, var(--secondary) 20%, var(--primary) 100%);
	--t1-why-photo-opacity: .13;
	--t1-why-wordmark: var(--primary-10);
	--t1-why-frame: #000;
	--t1-feature: linear-gradient(90deg, var(--primary) 0%, #fff 100%);
	--t1-feature-title: #000;
	--t1-feature-text: #000;
	--t1-feature-number: #e9e9e9;

	/* Housing cards */
	--t1-card: #fff;
	--t1-card-border: #000;
	--t1-card-title: #000;
	--t1-card-text: #000;

	/* CTA */
	--t1-cta: linear-gradient(to bottom, var(--secondary) 0%, var(--primary) 100%);
	--t1-cta-photo-blend: lighten;
	--t1-cta-photo-opacity: .37;

	/* Logos */
	--t1-clogo-colour: block;
	--t1-clogo-mono: none;
	--t1-logos-strip: transparent;
	--t1-logos-strip-pad: 0;
	--t1-accred-chip: transparent;
	--t1-logo-dark-display: block;
	--t1-logo-light-display: none;
	--t1-credit-filter: brightness(0) opacity(.64);

	/* Controls */
	--t1-btn-bg: var(--primary);
	--t1-btn-text: #000;
	--t1-btn-outline: var(--primary);

	/* Motion */
	--t1-header-shadow: 0 .6rem 2.4rem rgba(0, 0, 0, .1);
	--t1-hover-shadow: 0 1.8rem 3.6rem rgba(0, 0, 0, .16);
	--t1-btn-shadow: 0 .8rem 2rem var(--primary-30);
	--t1-feature-number-hover: var(--primary-30);
	--t1-ease: cubic-bezier(.2, .7, .2, 1);
	--t1-hover: .3s;
}

/* Base */
body.bricks-is-frontend,
.brx-body {
	font-family: var(--t1-font);
	font-size: var(--t1-fs-body);
	font-weight: 300;
	line-height: 1.3;
	color: var(--t1-text);
	background: var(--t1-page);
}

.t1-section,
.t1-section * { box-sizing: border-box; }

.brxe-section.t1-section {
	position: relative;
	width: 100%;
	padding: var(--t1-section) 0;
	isolation: isolate;
	overflow: hidden;
}

.brxe-container.t1-container {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: calc(140rem + 2 * var(--t1-gutter));
	margin-inline: auto;
	padding-inline: var(--t1-gutter);
	display: block;
}

.t1-section .t1-title,
.t1-section .t1-h3,
.t1-section .t1-h4 {
	font-family: var(--t1-font);
	color: var(--t1-title);
	margin: 0;
	width: auto;
	max-width: none;
	text-align: inherit;
}
.t1-section .t1-title { font-size: var(--t1-fs-h2); font-weight: 600; line-height: 1.2; }
.t1-section .t1-title--hero { font-size: var(--t1-fs-h1); color: #fff; }
.t1-title--hero span { color: var(--primary); }
.t1-section .t1-h3 { font-size: var(--t1-fs-h3); font-weight: 600; line-height: 1.2; }
.t1-section .t1-h4 { font-size: var(--t1-fs-h4); font-weight: 500; line-height: 1.25; }

.t1-eyebrow,
.t1-section .t1-eyebrow {
	font-size: var(--t1-fs-body);
	font-weight: 300;
	line-height: 1.2;
	text-transform: uppercase;
	color: var(--t1-eyebrow);
	margin: 0 0 3rem;
}
.t1-copy,
.t1-section .t1-copy { font-size: var(--t1-fs-body); font-weight: 300; line-height: 1.3; margin: 2.8rem 0 0; color: inherit; width: auto; max-width: none; text-align: inherit; }

.t1-section .t1-head { display: block; flex: 1 1 auto; width: auto; max-width: 68rem; }
.t1-section .t1-head--center { max-width: 76rem; width: 100%; margin-inline: auto; text-align: center; }
.t1-section .t1-head-row {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: flex-end;
	gap: 3rem;
	width: 100%;
	margin-bottom: 3.6rem;
}
.t1-link {
	font-size: var(--t1-fs-body);
	font-weight: 300;
	text-transform: uppercase;
	white-space: nowrap;
	color: inherit;
}

/* Buttons */
.brxe-button.t1-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 5.7rem;
	padding: 1rem 3.4rem;
	border: 2px solid var(--t1-btn-bg);
	border-radius: 2.8rem;
	background: var(--t1-btn-bg);
	color: var(--t1-btn-text);
	font-family: var(--t1-font);
	font-size: var(--t1-fs-body);
	font-weight: 500;
	line-height: 1;
	text-align: center;
	transition: translate var(--t1-hover) ease, box-shadow var(--t1-hover) ease, background-color var(--t1-hover) ease, border-color var(--t1-hover) ease, color var(--t1-hover) ease;
}
.brxe-button.t1-btn--outline { background: transparent; border-color: var(--t1-btn-outline); color: var(--primary); }
.t1-btns { display: flex; flex-wrap: wrap; gap: 1rem; margin-top: 4.4rem; }

/* Layered backgrounds */
.t1-bg {
	position: absolute !important;
	inset: 0;
	z-index: 0;
	width: 100% !important;
	height: 100% !important;
	max-width: none;
	object-fit: cover;
	pointer-events: none;
}
.t1-bg--band {
	object-position: center;
	mix-blend-mode: var(--t1-photo-blend);
	opacity: var(--t1-photo-opacity);
	filter: var(--t1-photo-filter);
}

/* Header */
.brxe-section.t1-header-bar {
	position: relative;
	z-index: 20;
	width: 100%;
	background: var(--t1-page);
}
.brxe-container.t1-header {
	display: flex;
	flex-direction: row;
	align-items: center;
	gap: 2.4rem;
	width: 100%;
	max-width: calc(140rem + 2 * var(--t1-gutter));
	min-height: 12.1rem;
	margin-inline: auto;
	padding-inline: var(--t1-gutter);
}
.t1-logo { width: 17.5rem; height: auto; flex: 0 0 auto; }
.t1-logo img { display: block; width: 100%; height: auto; }
.brxe-logo.t1-logo--dark { display: var(--t1-logo-dark-display); }
.brxe-logo.t1-logo--light { display: var(--t1-logo-light-display); }
.t1-nav { margin-right: auto; }
.t1-nav .bricks-nav-menu { gap: 1.8rem; }
.t1-nav .bricks-nav-menu > li { margin: 0; }
.t1-nav .bricks-nav-menu a {
	font-family: var(--t1-font);
	font-size: var(--t1-fs-body);
	font-weight: 300;
	color: var(--t1-title);
}
.t1-nav .bricks-mobile-menu-toggle { color: var(--t1-title); }
.t1-nav .bricks-mobile-menu-wrapper { background: var(--t1-page); }
.t1-nav .bricks-mobile-menu a { color: var(--t1-title); font-size: 2rem; }
.brxe-button.t1-btn--header { min-width: 24rem; font-weight: 300; }

/* Hero */
.brxe-section.t1-hero {
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: clamp(56rem, 42vw, 80rem);
	padding: 8rem 0;
	background: var(--secondary);
}
.t1-hero::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	background: linear-gradient(90deg, rgba(0, 0, 0, .62) 0%, rgba(0, 0, 0, .42) 42%, rgba(0, 0, 0, 0) 68%);
}
.t1-section .t1-hero__content { display: block; width: 100%; max-width: 66rem; color: #fff; }
.t1-hero__content .t1-eyebrow {
	margin-bottom: 2.4rem;
	padding-bottom: 2.6rem;
	border-bottom: 2px solid var(--t1-rule);
}
.t1-hero__content .t1-copy { margin-top: 2.6rem; }

/* Client logos */
.brxe-section.t1-clients { background: var(--t1-page); color: var(--t1-title); }
.t1-clients .t1-copy { color: var(--t1-title); }
.t1-logos {
	margin-top: 5.6rem;
	padding: var(--t1-logos-strip-pad);
	border-radius: 2.4rem;
	background: var(--t1-logos-strip);
	overflow: hidden;
}

/* Orange band: core expertise */
.brxe-section.t1-band { background: var(--t1-band); color: var(--t1-band-text); }
.t1-band .t1-title { color: var(--t1-band-title); }
.t1-band--core { padding-bottom: 13rem; }
.t1-band--core .t1-bg--band {
	-webkit-mask-image: linear-gradient(90deg, transparent 8%, #000 100%);
	mask-image: linear-gradient(90deg, transparent 8%, #000 100%);
}
.t1-section .t1-panel {
	display: grid;
	margin: 0;
	list-style: none;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 1.4rem;
	padding: 1.8rem;
	border-radius: 2.5rem;
	background: var(--t1-panel);
}
.t1-section .t1-tile {
	position: relative;
	list-style: none;
	aspect-ratio: 447 / 487;
	border-radius: 2rem;
	overflow: hidden;
}
.t1-tile .t1-tile__img,
.t1-project .t1-tile__img {
	position: absolute !important;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: scale var(--t1-hover) ease;
}
.t1-section .t1-caption {
	position: absolute;
	width: auto;
	left: 1.5rem;
	right: 1.5rem;
	bottom: 1.6rem;
	padding: 1.9rem 2.1rem;
	border-radius: 1.2rem;
	background: var(--t1-caption);
	-webkit-backdrop-filter: blur(6px);
	backdrop-filter: blur(6px);
	color: var(--t1-caption-text);
}
.t1-caption .t1-h3,
.t1-caption .t1-h4 { color: var(--t1-caption-title); }
.t1-caption .t1-copy { margin-top: 1.6rem; color: var(--t1-caption-text); }

/* Projects */
.brxe-section.t1-work { background: var(--t1-page); color: var(--t1-title); }
.t1-section .t1-grid-3 { display: grid; width: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.6rem; }
.t1-section .t1-project {
	position: relative;
	display: block;
	width: 100%;
	padding: 0;
	aspect-ratio: 459 / 380;
	border-radius: 2.4rem;
	overflow: hidden;
}
.t1-project .t1-caption { background: var(--t1-caption-strong); padding: 1.7rem 1.8rem; }
.t1-project .t1-copy { margin-top: 1rem; font-weight: 400; font-size: clamp(1.5rem, 1.1vw, 2rem); }

/* Why Tier1 */
.brxe-section.t1-why {
	padding: 8rem 0 clamp(5rem, 4.7vw, 9rem);
	background: var(--t1-why);
	color: #fff;
}
.t1-why .t1-bg {
	opacity: var(--t1-why-photo-opacity);
	-webkit-mask-image: linear-gradient(to bottom, #000 80%, transparent 100%);
	mask-image: linear-gradient(to bottom, #000 80%, transparent 100%);
}
.t1-why .t1-title { color: #fff; }
.t1-why .t1-eyebrow { color: var(--t1-eyebrow-why, #fff); }
.t1-wordmark {
	position: absolute;
	top: 2.6rem;
	left: 0;
	right: 0;
	z-index: 0;
	margin: 0;
	font-family: var(--t1-font);
	font-size: 8.65vw;
	font-weight: 600;
	line-height: 1;
	white-space: nowrap;
	text-align: center;
	color: var(--t1-why-wordmark);
	pointer-events: none;
	user-select: none;
}
.t1-section .t1-features {
	display: grid;
	counter-reset: item;
	list-style: none;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.6rem 1.4rem;
	margin-top: 5.6rem;
	padding: 1.4rem;
	border-radius: 2.5rem;
	background: var(--t1-why-frame);
}
.t1-section .t1-feature {
	position: relative;
	display: block;
	aspect-ratio: auto;
	width: 100%;
	height: 100%;
	padding: 3.4rem 2.5rem 3.2rem;
	border-radius: 1.6rem;
	background: var(--t1-feature);
	overflow: hidden;
}
.t1-feature .t1-h3 { position: relative; z-index: 1; color: var(--t1-feature-title); }
.t1-feature .t1-copy { position: relative; z-index: 1; margin-top: 1.8rem; color: var(--t1-feature-text); }
.t1-features .card-feature-29__wrapper {
	display: block;
	width: auto;
	max-width: none;
	margin: 0;
	list-style: none;
	counter-increment: item;
}
.t1-features .card-feature-29__link { display: block; height: 100%; }
.t1-section .t1-feature::before {
	content: counter(item, decimal-leading-zero);
	position: absolute;
	right: 2.4rem;
	bottom: 2.6rem;
	z-index: 0;
	font-family: var(--t1-font);
	font-size: clamp(5.6rem, 4.6vw, 8.8rem);
	font-weight: 700;
	line-height: 1;
	color: var(--t1-feature-number);
	pointer-events: none;
	transition: color var(--t1-hover) ease;
}

/* Orange band: housing */
.brxe-section.t1-band--homes { padding-top: 3rem; color: var(--t1-band-text); }
.t1-band--homes .t1-bg--band {
	object-position: center bottom;
	-webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 34%);
	mask-image: linear-gradient(to bottom, transparent 0%, #000 34%);
}
.t1-section .t1-cards {
	display: grid;
	padding: 0;
	list-style: none;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 6rem;
	margin-top: 5.2rem;
}
.t1-section .t1-card {
	display: flex;
	width: 100%;
	height: 100%;
	flex-direction: column;
	padding: 3.8rem 3.3rem 3.6rem;
	border: 2px solid var(--t1-card-border);
	border-radius: 2.4rem;
	background: var(--t1-card);
	color: var(--t1-card-text);
}
.t1-card .t1-h3,
.t1-card .t1-h4 { color: var(--t1-card-title); }
.t1-section .t1-card__img { width: 100%; aspect-ratio: 605 / 333; object-fit: cover; border-radius: 1.6rem; }
.t1-card .t1-h3 { margin-top: 3.6rem; }
.t1-card .t1-h4 { margin-top: 2rem; }
.t1-card .t1-copy { margin-top: 2rem; }
.t1-card .t1-btn { align-self: flex-start; margin-top: auto; }
.t1-card .t1-btns { margin-top: auto; padding-top: 3.4rem; }

/* About */
.brxe-section.t1-about { background: var(--t1-page); color: var(--t1-title); }
.brxe-container.t1-about__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 7rem;
	align-items: center;
}
.t1-section .t1-about__img { width: 100%; aspect-ratio: 674 / 600; object-fit: cover; border-radius: 2.4rem; }
.t1-about .t1-copy { color: var(--t1-text); }

/* CTA */
.brxe-section.t1-cta-wrap { background: var(--t1-page); padding: 0 var(--t1-gutter); }
.brxe-container.t1-cta {
	position: relative;
	width: 100%;
	max-width: 140rem;
	margin-inline: auto;
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 3rem;
	min-height: 45rem;
	padding: 11rem 4rem 8rem;
	border-radius: 2.6rem;
	background: var(--t1-cta);
	color: #fff;
	overflow: hidden;
	isolation: isolate;
}
.t1-cta .t1-bg {
	z-index: -1;
	mix-blend-mode: var(--t1-cta-photo-blend);
	opacity: var(--t1-cta-photo-opacity);
	-webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 50%, transparent 100%);
	mask-image: linear-gradient(90deg, transparent 0%, #000 50%, transparent 100%);
}
.t1-cta .t1-title { color: #fff; }
.t1-cta .t1-eyebrow { color: var(--t1-eyebrow-cta, #fff); }
.t1-cta .t1-cta__main { display: block; width: auto; max-width: 82rem; }
.t1-cta__main .t1-copy { font-size: var(--t1-fs-h4); font-weight: 500; line-height: 1.2; }
.t1-cta .t1-cta__side { display: flex; flex-direction: column; align-items: flex-end; flex: 0 0 auto; width: auto; text-align: right; }
.t1-cta__side .t1-link { font-size: var(--t1-fs-h4); font-weight: 500; text-transform: none; line-height: 1.2; color: #fff; }
.t1-cta__side .t1-btn { margin-top: 2.6rem; }

/* Footer */
.brxe-section.t1-footer { background: var(--t1-page); color: var(--t1-title); padding: 13rem 0 3rem; }
.t1-section .t1-footer__top {
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 2fr);
	gap: 4rem;
	padding-top: 4.6rem;
	border-top: 2px solid var(--t1-rule);
}
.t1-section .t1-footer__brand { display: block; }
.t1-footer .t1-copy { max-width: 46rem; margin-top: 4rem; }
.t1-accreds { display: flex; flex-direction: row; align-items: center; gap: 2.8rem; margin-top: 3.6rem; }
.t1-accreds .brxe-image { height: 7rem; width: auto; padding: var(--t1-accred-pad, 0); border-radius: 1rem; background: var(--t1-accred-chip); }
.t1-footer .footer-30__container-menu { padding-top: 3.8rem; }
.t1-footer .footer-30__menu-heading { font-size: var(--t1-fs-h4); font-weight: 500; color: var(--t1-title); }
.t1-footer .footer-30__menu .bricks-nav-menu a {
	font-family: var(--t1-font);
	font-size: var(--t1-fs-body);
	font-weight: 300;
	color: var(--t1-title);
}
.t1-footer .footer-30__menu .bricks-nav-menu > li { list-style: none; }
.t1-footer .footer-30__contact-element { list-style: none; }
.t1-footer .footer-30__contact-element-link {
	font-size: var(--t1-fs-body);
	font-weight: 500;
	color: var(--t1-title);
}
.t1-footer .footer-30__container-bot { flex-direction: column; align-items: flex-start; row-gap: .8rem; }
.t1-credit { margin: 2rem 0 0; font-size: 1.2rem; color: var(--t1-text); }
.t1-credit a { color: inherit; }

/* Tablet */
@media (max-width: 991px) {
	.t1-section .t1-panel,
	.t1-section .t1-grid-3,
	.t1-section .t1-cards,
	.t1-section .t1-features,
	.brxe-container.t1-about__grid { grid-template-columns: 1fr; }
	.t1-section .t1-tile, .t1-section .t1-project { aspect-ratio: 16 / 11; }
	.t1-section .t1-cards { gap: 3rem; }
	.brxe-container.t1-about__grid { gap: 4rem; }
	.t1-section .t1-head-row { flex-direction: column; align-items: flex-start; }
	.brxe-container.t1-cta { flex-direction: column; align-items: flex-start; padding: 6rem 3rem; }
	.t1-cta .t1-cta__side { align-items: flex-start; text-align: left; }
	.t1-section .t1-footer__top { grid-template-columns: 1fr; }
	.t1-footer .footer-30__container-menu { padding-top: 0; }
	.t1-footer .t1-copy { margin-top: 3rem; }
	.brxe-container.t1-header { min-height: 9rem; justify-content: space-between; }
	.t1-nav { order: 3; margin-right: 0; }
}

/* Mobile */
@media (max-width: 600px) {
	.t1-footer .footer-30__container-menu { flex-direction: column; row-gap: 3.2rem; }
	.t1-footer .footer-30__menu-section { align-items: flex-start; }
	.t1-footer .footer-30__menu-heading { text-align: left; }
	.t1-footer .footer-30__contact-element-link { justify-content: flex-start; }
	.t1-section .t1-tile { aspect-ratio: 4 / 4.2; }
	.t1-section .t1-project { aspect-ratio: 4 / 3.6; }
	.t1-section .t1-card { padding: 2rem 2rem 2.6rem; }
	.t1-section .t1-feature::before { display: none; }
	.t1-btns .brxe-button { width: 100%; }
	.t1-link { white-space: normal; }
	.t1-logos { --logo-7-transparency-size: 48px; }
}


.t1-credit-logo { filter: var(--t1-credit-filter); display: block; width: 15.2rem; height: auto; margin-top: 2.4rem; }

@media (max-width: 767px) {
	:root { --t1-cta: linear-gradient(to bottom, var(--secondary) 35%, var(--primary-d-2) 125%); }
	.t1-hero::after { background: rgba(0, 0, 0, .62); }
}

/* Logo carousel: CSS from Brixies logo-section-7 (Core Framework edition).
   It lives here because a signed code element from brixies.co will not execute on this site. */
.t1-logos {
	--logo-7-transparency-size: 200px;
	--logo-7-duration: 35s;
}
.logo-7__logo-list-container {
	-webkit-mask-image: linear-gradient(to right, transparent 0, #000 var(--logo-7-transparency-size), #000 calc(100% - var(--logo-7-transparency-size)), transparent);
	mask-image: linear-gradient(to right, transparent 0, #000 var(--logo-7-transparency-size), #000 calc(100% - var(--logo-7-transparency-size)), transparent);
}
.logo-7__logo-list {
	list-style: none;
	animation: horizontal-scroll-rtl var(--logo-7-duration) linear infinite;
}
.logo-7__logo-list-container:hover .logo-7__logo-list { animation-play-state: paused; }
.logo-7__logo { max-height: 8.6rem; object-fit: contain; }
@keyframes horizontal-scroll-rtl {
	from { transform: translateX(0); }
	to { transform: translateX(-100%); }
}

/* Service tiles: the description opens on hover and the first tile rests open, as drawn in the PSD.
   Touch screens have no hover, so every description stays visible there. */
.t1-reveal { display: grid; grid-template-rows: 1fr; }
.t1-reveal__inner { min-height: 0; overflow: hidden; }
.t1-reveal__inner .t1-copy { margin-top: 1.6rem; }

@media (hover: hover) and (pointer: fine) {
	.t1-reveal {
		grid-template-rows: 0fr;
		opacity: 0;
		transition: grid-template-rows var(--t1-hover) ease, opacity var(--t1-hover) ease;
	}
	.t1-tile:hover .t1-reveal,
	.t1-panel:not(:hover) .t1-tile:first-child .t1-reveal {
		grid-template-rows: 1fr;
		opacity: 1;
	}
}

/* Sticky header
   Bricks' on-scroll mode keeps the header in the page flow. The slot keeps a constant height
   and only the bar shrinks, so the page below never jumps. */
html { scroll-padding-top: 10rem; }
#brx-header.brx-sticky {
	height: 12.1rem;
	background: transparent;
	pointer-events: none;
}
.brxe-section.t1-header-bar {
	pointer-events: auto;
	transition: box-shadow .3s ease;
}
.brxe-container.t1-header { transition: min-height .3s var(--t1-ease); }
.t1-logo { transition: width .3s var(--t1-ease); }
.brxe-button.t1-btn--header { transition: min-height .3s var(--t1-ease), translate var(--t1-hover) ease, box-shadow var(--t1-hover) ease, background-color var(--t1-hover) ease, border-color var(--t1-hover) ease, color var(--t1-hover) ease; }
#brx-header.scrolling .brxe-section.t1-header-bar { box-shadow: var(--t1-header-shadow); }
#brx-header.scrolling .brxe-container.t1-header { min-height: 7.8rem; }
#brx-header.scrolling .t1-logo { width: 13.6rem; }
#brx-header.scrolling .brxe-button.t1-btn--header { min-height: 4.8rem; }

@media (max-width: 991px) {
	#brx-header.brx-sticky { height: 9rem; }
	#brx-header.scrolling .brxe-container.t1-header { min-height: 9rem; }
	#brx-header.scrolling .t1-logo { width: 17.5rem; }
	html { scroll-padding-top: 8.6rem; }
}

/* Hover: individual translate and scale properties, so GSAP's inline transform never overrides them */
.t1-nav .bricks-nav-menu > li > a { position: relative; }
.t1-nav .bricks-nav-menu > li > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -.5rem;
	height: 2px;
	background: var(--primary);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--t1-hover) ease;
}
.t1-link {
	background-image: linear-gradient(currentColor, currentColor);
	background-position: 0 100%;
	background-repeat: no-repeat;
	background-size: 0 1px;
	transition: background-size var(--t1-hover) ease;
}
.t1-tile,
.t1-project,
.t1-feature,
.t1-card,
.t1-about__img { transition: translate var(--t1-hover) ease, box-shadow var(--t1-hover) ease; }
.t1-caption { transition: translate var(--t1-hover) ease; }
.t1-card__img { transition: filter var(--t1-hover) ease; }
.logo-7__logo-wrapper { transition: scale var(--t1-hover) ease; }

@media (hover: hover) and (pointer: fine) {
	.t1-nav .bricks-nav-menu > li > a:hover::after { transform: scaleX(1); }
	.t1-link:hover { background-size: 100% 1px; }

	.brxe-button.t1-btn:hover {
		translate: 0 -2px !important;
		background: var(--primary-l-1);
		border-color: var(--primary-l-1);
		box-shadow: var(--t1-btn-shadow);
	}
	.brxe-button.t1-btn--outline:hover { background: var(--primary); border-color: var(--primary); color: #000; }

	.t1-tile:hover,
	.t1-project:hover,
	.t1-card:hover,
	.t1-about__img:hover { translate: 0 -4px !important; box-shadow: var(--t1-hover-shadow); }
	.t1-tile:hover .t1-tile__img,
	.t1-project:hover .t1-tile__img { scale: 1.04; }
	.t1-project:hover .t1-caption { translate: 0 -3px; }

	.t1-feature:hover { translate: 0 -3px !important; box-shadow: var(--t1-hover-shadow); }
	.t1-section .t1-feature:hover::before { color: var(--t1-feature-number-hover); }

	.t1-card:hover .t1-card__img { filter: brightness(1.04); }
	.logo-7__logo-wrapper:hover { scale: 1.05; }
}

@media (prefers-reduced-motion: reduce) {
	.logo-7__logo-list { animation: none; }
	.logo-7__logo-list-container { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
	.logo-7__logo-list[aria-hidden="true"] { display: none; }
	.brxe-button.t1-btn,
	.t1-tile, .t1-project, .t1-feature, .t1-card, .t1-about__img,
	.t1-caption, .t1-tile__img, .logo-7__logo-wrapper, .t1-reveal,
	.t1-link, .t1-logo, .brxe-container.t1-header { transition: none; }
	.brxe-button.t1-btn:hover,
	.t1-tile:hover, .t1-project:hover, .t1-card:hover, .t1-feature:hover, .t1-about__img:hover,
	.t1-project:hover .t1-caption { translate: none !important; }
	.t1-tile:hover .t1-tile__img, .t1-project:hover .t1-tile__img, .logo-7__logo-wrapper:hover { scale: none; }
}

/* Bricksforge adds .brf-reset-transition { transition: none !important } to everything it animates.
   These restore only the hover properties, which never overlap GSAP's transform and opacity. */
.t1-tile.brf-reset-transition,
.t1-project.brf-reset-transition,
.t1-feature.brf-reset-transition,
.t1-card.brf-reset-transition,
.t1-about__img.brf-reset-transition {
	transition: translate var(--t1-hover) ease, box-shadow var(--t1-hover) ease !important;
}
.brxe-button.t1-btn.brf-reset-transition {
	transition: translate var(--t1-hover) ease, box-shadow var(--t1-hover) ease, background-color var(--t1-hover) ease, border-color var(--t1-hover) ease, color var(--t1-hover) ease !important;
}
.t1-link.brf-reset-transition { transition: background-size var(--t1-hover) ease !important; }

/* Hero image served through a Bricks picture source */
picture.t1-bg img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* Mobile hero: fills the screen below the header, copy on top, the van's logo left clear below it */
@media (max-width: 767px) {
	.brxe-section.t1-hero {
		justify-content: center;
		min-height: max(calc(100svh - 9rem), 50rem);
		padding: 3.2rem 0;
	}
	.t1-hero picture.t1-bg img { object-position: center top; }
	.t1-hero::after {
		background: linear-gradient(to bottom, rgba(0, 0, 0, .12) 0%, rgba(0, 0, 0, .12) 18%, rgba(0, 0, 0, .74) 33%, rgba(0, 0, 0, .74) 80%, rgba(0, 0, 0, .55) 100%);
	}
	.t1-hero__content .t1-eyebrow {
		margin-bottom: 1.8rem;
		padding-bottom: 1.6rem;
		font-size: 1.3rem;
	}
	.t1-section .t1-title--hero { font-size: clamp(2.9rem, 8.4vw, 4.4rem); }
	.t1-hero__content .t1-copy { margin-top: 1.6rem; font-size: 1.6rem; }
	.t1-hero .t1-btns {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: .8rem;
		margin-top: 2.4rem;
	}
	.t1-hero .brxe-button.t1-btn {
		width: 100%;
		min-height: 5rem;
		padding: 1rem .8rem;
		font-size: 1.5rem;
	}
}

/* Mobile menu */
.brxe-button.t1-burger { display: none; }
.t1-menu { display: none; }

@media (max-width: 991px) {
	.t1-nav { display: none; }

	.brxe-button.t1-burger,
	.brxe-button.t1-menu__close {
		position: relative;
		display: block;
		flex: 0 0 auto;
		width: 4.8rem;
		height: 4.8rem;
		min-height: 0;
		margin-left: auto;
		padding: 0;
		border: 0;
		border-radius: 50%;
		background: transparent;
		color: var(--t1-title);
		cursor: pointer;
	}
	.t1-burger::before,
	.t1-menu__close::before,
	.t1-menu__close::after {
		content: "";
		position: absolute;
		top: 50%;
		left: 50%;
		width: 2.6rem;
		height: 2px;
		margin: -1px 0 0 -1.3rem;
		background: currentColor;
		border-radius: 2px;
	}
	.t1-burger::before { box-shadow: 0 -.8rem 0 currentColor, 0 .8rem 0 var(--primary); }
	.t1-menu__close::before { transform: rotate(45deg); }
	.t1-menu__close::after { transform: rotate(-45deg); }

	.t1-menu {
		position: fixed;
		inset: 0;
		z-index: 5;
		display: flex;
		flex-direction: column;
		height: 100vh;
		height: 100dvh;
		padding: 0 var(--t1-gutter) 3.2rem;
		overflow-y: auto;
		overscroll-behavior: contain;
		background: var(--t1-page);
		color: var(--t1-title);
		visibility: hidden;
		pointer-events: auto;
	}
	.t1-menu.is-open { visibility: visible; }
	.t1-menu__top {
		display: flex;
		flex: 0 0 auto;
		align-items: center;
		min-height: 9rem;
	}
	#brx-header .t1-menu .t1-logo { width: 17.5rem; }

	.t1-menu__nav { flex: 0 0 auto; margin-top: 2.4rem; }
	.t1-menu__nav .bricks-nav-menu {
		display: flex;
		flex-direction: column;
		gap: 0;
		margin: 0;
		padding: 0;
		list-style: none;
	}
	.t1-menu__nav .bricks-nav-menu > li {
		margin: 0;
		border-bottom: 1px solid var(--border-primary);
	}
	.t1-menu__nav .bricks-nav-menu > li > a {
		display: block;
		padding: 1.6rem 0;
		font-family: var(--t1-font);
		font-size: clamp(2.6rem, 7vw, 3.4rem);
		font-weight: 600;
		line-height: 1.2;
		color: var(--t1-title);
	}
	.t1-menu__nav .bricks-nav-menu > li > a::after { display: none; }

	.t1-menu__contact {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		gap: .8rem;
		margin-top: auto;
		padding-top: 3.2rem;
	}
	.t1-menu__contact .t1-eyebrow {
		margin: 0 0 .4rem;
		padding-top: 2rem;
		width: 100%;
		border-top: 2px solid var(--t1-rule);
		font-size: 1.4rem;
	}
	.t1-menu__contact .t1-link {
		font-size: 2rem;
		font-weight: 500;
		text-transform: none;
		color: var(--t1-title);
	}
	html.t1-menu-open body {
		position: fixed;
		left: 0;
		right: 0;
		width: 100%;
	}
}

@media (prefers-reduced-motion: reduce) {
	.t1-tile.brf-reset-transition,
	.t1-project.brf-reset-transition,
	.t1-feature.brf-reset-transition,
	.t1-card.brf-reset-transition,
	.t1-about__img.brf-reset-transition,
	.brxe-button.t1-btn.brf-reset-transition,
	.t1-link.brf-reset-transition { transition: none !important; }
}

@media (max-width: 767px) {
	.t1-hero .brxe-button.t1-btn { padding: 1rem .4rem; font-size: 1.4rem; white-space: nowrap; }
}
/* Short phones: the copy reaches the van's logo, so the image steps back */
@media (max-width: 767px) and (max-height: 720px) {
	.t1-hero::after { background: rgba(0, 0, 0, .74); }
}

/* Brixies markup: neutralise structure settings the PSD does not use */
.t1-tile .card-feature-102 {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
	padding: 0;
	border-radius: 0;
}
.brxe-block.t1-reveal { display: grid; width: 100%; }
.brxe-block.t1-reveal__inner { display: block; width: 100%; }
.t1-reveal .card-feature-102__description { max-height: none; overflow: visible; }
.t1-section .t1-card .card-feature-21__container-info {
	display: flex;
	flex: 1 1 auto;
	flex-direction: column;
	width: 100%;
	padding: 0;
}
.t1-about .t1-about__text { display: block; width: auto; }
.t1-about .t1-copy p + p { margin-top: 2.4rem; }
.t1-work .feature-82__slider-wrapper { width: 100%; }
.t1-section .t1-btns { flex-direction: row; align-items: stretch; width: auto; }
.t1-section .t1-card .t1-btns { width: 100%; }
.t1-section .t1-card__img { height: auto; }
.t1-section .t1-card .t1-card__img { flex: 0 0 auto; height: auto; aspect-ratio: 605 / 333; }
.t1-section .t1-btns .brxe-button.t1-btn { margin-top: 0; }
.t1-section .t1-card .t1-btns .brxe-button.t1-btn { margin-top: auto; }
.brxe-section.t1-header-bar { padding: 0; }

/* Brixies shows this caption from a slider state, so it stays visible here */
.t1-section .t1-project .t1-caption { opacity: 1; visibility: visible; transform: none; }
.brxe-nav-menu.t1-nav .bricks-nav-menu > li > a { font-size: var(--t1-fs-body); font-weight: 300; }
.t1-section .t1-footer__top { padding-bottom: 3.6rem; }
.t1-footer .footer-30__container-menu { grid-template-columns: 1.5fr 1fr 1fr; column-gap: 3rem; }
.t1-section .t1-card .card-feature-21__container-info { row-gap: 0; justify-content: flex-start; }
@media (max-width: 600px) {
	.t1-footer .footer-30__container-menu { grid-template-columns: 1fr; }
}

/* Mobile header: a compact Contact Us button beside the menu button, the same size while scrolling */
@media (max-width: 991px) {
	.brxe-button.t1-burger { margin-left: .4rem; }
	.brxe-container.t1-header { flex-wrap: nowrap; column-gap: 0; }
	#brx-header .brxe-button.t1-btn--header,
	#brx-header.scrolling .brxe-button.t1-btn--header {
		flex: 0 0 auto;
		min-width: 0;
		min-height: 4.2rem;
		margin-left: auto;
		padding: .8rem 1.8rem;
		font-size: 1.5rem;
		font-weight: 500;
	}
}

@media (max-width: 767px) {
	#brx-header .t1-header > .t1-logo,
	#brx-header .t1-menu .t1-logo { width: 13rem; }
	#brx-header.scrolling .t1-header > .t1-logo { width: 13rem; }
}

/* Our Services dropdown: Bricks wraps a parent link in .brx-submenu-toggle, so it needs its own rules */
.brxe-nav-menu.t1-nav .bricks-nav-menu > li > .brx-submenu-toggle > a {
	position: relative;
	font-family: var(--t1-font);
	font-size: var(--t1-fs-body);
	font-weight: 300;
	color: var(--t1-title);
}
.t1-nav .bricks-nav-menu > li > .brx-submenu-toggle > a::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -.5rem;
	height: 2px;
	background: var(--primary);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform var(--t1-hover) ease;
}
.t1-nav .brx-submenu-toggle button { padding: 0; margin-left: .6rem; background: none; border: 0; color: var(--t1-title); cursor: pointer; }
.t1-nav .brx-submenu-toggle svg { width: 1.5rem; height: 1.5rem; transition: rotate var(--t1-hover) ease; }
.t1-nav .bricks-nav-menu > li:hover .brx-submenu-toggle svg { rotate: 180deg; }

.brxe-nav-menu.t1-nav .bricks-nav-menu .sub-menu {
	min-width: 32rem;
	padding: .8rem;
	border: 1px solid var(--border-primary);
	border-radius: 1.2rem;
	background: var(--t1-page);
	box-shadow: var(--t1-hover-shadow);
}
.brxe-nav-menu.t1-nav .bricks-nav-menu .sub-menu li { margin: 0; border: 0; background: none; }
.brxe-nav-menu.t1-nav .bricks-nav-menu .sub-menu a {
	display: block;
	width: 100%;
	padding: 1.1rem 1.4rem;
	border-radius: .8rem;
	font-family: var(--t1-font);
	font-size: 1.7rem;
	font-weight: 300;
	line-height: 1.2;
	white-space: nowrap;
	color: var(--t1-title);
	transition: background-color var(--t1-hover) ease;
}

@media (hover: hover) and (pointer: fine) {
	.t1-nav .bricks-nav-menu > li:hover > .brx-submenu-toggle > a::after { transform: scaleX(1); }
	.brxe-nav-menu.t1-nav .bricks-nav-menu .sub-menu a:hover { background: var(--primary-20); color: var(--t1-title); }
}

/* The footer shares this menu, so its children stay out of the Pages column */
.t1-footer .footer-30__menu .sub-menu,
.t1-footer .footer-30__menu .brx-submenu-toggle button { display: none; }

/* Mobile menu: services listed under Our Services, with no hover to depend on */
@media (max-width: 991px) {
	.t1-menu__nav .brx-submenu-toggle {
		display: flex;
		align-items: center;
		justify-content: space-between;
		cursor: pointer;
	}
	.t1-menu__nav .brx-submenu-toggle button {
		display: flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		width: 4.8rem;
		height: 4.8rem;
		margin-right: -1.2rem;
		padding: 0;
		border: 0;
		background: none;
		color: var(--t1-title);
		cursor: pointer;
	}
	.t1-menu__nav .brx-submenu-toggle svg {
		width: 2rem;
		height: 2rem;
		transition: rotate var(--t1-hover) ease;
	}
	.t1-menu__nav li.t1-open .brx-submenu-toggle svg { rotate: 180deg; }
	.t1-menu__nav .bricks-nav-menu > li > .brx-submenu-toggle > a {
		display: block;
		flex: 1 1 auto;
		padding: 1.6rem 0;
		font-family: var(--t1-font);
		font-size: clamp(2.6rem, 7vw, 3.4rem);
		font-weight: 600;
		line-height: 1.2;
		color: var(--t1-title);
	}
	.t1-menu__nav .bricks-nav-menu .sub-menu {
		position: static;
		display: block;
		overflow: hidden;
		min-width: 0;
		max-height: 0;
		margin: 0;
		padding: 0;
		border: 0;
		background: none;
		box-shadow: none;
		list-style: none;
		opacity: 1;
		visibility: hidden;
		transform: none;
		transition: max-height var(--t1-hover) ease, padding-bottom var(--t1-hover) ease, visibility var(--t1-hover) ease;
	}
	.t1-menu.is-open .bricks-nav-menu li.t1-open > .sub-menu {
		max-height: 20rem;
		padding-bottom: 1.4rem;
		visibility: visible;
	}
	.t1-menu__nav .bricks-nav-menu .sub-menu li { margin: 0; border: 0; }
	.t1-menu__nav .bricks-nav-menu .sub-menu a {
		display: block;
		padding: .6rem 0;
		font-family: var(--t1-font);
		font-size: 1.8rem;
		font-weight: 300;
		line-height: 1.3;
		color: var(--t1-title);
	}
}

@media (prefers-reduced-motion: reduce) {
	.t1-nav .bricks-nav-menu > li:hover .brx-submenu-toggle svg { rotate: none; }
	.t1-menu__nav .brx-submenu-toggle svg,
	.t1-menu__nav .bricks-nav-menu .sub-menu { transition: none; }
}

/* Logos come in pairs: colour for the light design, white for the dark one */
.brxe-image.t1-clogo-colour { display: var(--t1-clogo-colour); }
.brxe-image.t1-clogo-mono { display: var(--t1-clogo-mono); opacity: .85; }

/* Mobile headings: desktop line breaks go, and sizes follow the screen so titles stay on two lines */
@media (max-width: 767px) {
	.t1-section .t1-title { font-size: clamp(2.3rem, 6.6vw, 3rem); text-wrap: balance; }
	.t1-section .t1-title br { display: none; }
	.t1-section .t1-title--hero br { display: inline; }
	.t1-section .t1-title--hero { font-size: clamp(2.9rem, 8.4vw, 4.4rem); }
	.t1-section .t1-h3 { font-size: 2rem; }
	.t1-section .t1-h4 { font-size: 1.7rem; }
	.t1-section .t1-feature { padding: 2.6rem 2.2rem; }
}
@media (max-width: 767px) {
	.t1-band--homes .t1-title { font-size: clamp(2.1rem, 5.9vw, 3rem); }
}

/* Office address in the footer */
.t1-footer .footer-30__contact-element-link.t1-address { align-items: flex-start; font-weight: 300; line-height: 1.35; }
.t1-footer .t1-address address { font-style: normal; }
.t1-footer .t1-address .t1-ico { margin-top: .3rem; }
.t1-footer .t1-address address { font-size: 1.7rem; }

/* Inline icons: this replaces a 170KB icon font used for three symbols */
.t1-ico {
	display: block;
	flex: 0 0 auto;
	width: 2.2rem;
	height: 2.2rem;
	background: currentColor;
	-webkit-mask: var(--t1-ico) center / contain no-repeat;
	mask: var(--t1-ico) center / contain no-repeat;
}
.t1-ico--phone { --t1-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.62 10.79a15.05 15.05 0 0 0 6.59 6.59l2.2-2.2a1 1 0 0 1 1.02-.24c1.12.37 2.33.57 3.57.57a1 1 0 0 1 1 1V20a1 1 0 0 1-1 1C10.61 21 3 13.39 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1c0 1.25.2 2.45.57 3.57a1 1 0 0 1-.25 1.02l-2.2 2.2z'/%3E%3C/svg%3E"); }
.t1-ico--mail { --t1-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M20 4H4a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2zm0 4-8 5-8-5V6l8 5 8-5v2z'/%3E%3C/svg%3E"); }
.t1-ico--pin { --t1-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7zm0 9.5a2.5 2.5 0 1 1 0-5 2.5 2.5 0 0 1 0 5z'/%3E%3C/svg%3E"); }

/* Mobile carousel: about three logos in view, and the full set comes round sooner */
@media (max-width: 767px) {
	.t1-logos { --logo-7-transparency-size: 24px; --logo-7-duration: 20s; }
	.t1-section .logo-7__logo-wrapper { width: 8.4rem; margin-inline: 1.2rem; }
	.t1-section .logo-7__logo { max-height: 6.4rem; }
}

.brxe-image.t1-credit-logo { width: 10.5rem; height: auto; }

/* Contact Us lives in the header button on desktop, so this menu item is for the mobile menu and footer */
.t1-nav .bricks-nav-menu > .t1-mobile-only { display: none; }
.t1-footer .footer-30__container-bot { row-gap: .6rem; }
.t1-footer .t1-credit { margin-top: 0; }

@media (max-width: 340px) {
	#brx-header .t1-header > .t1-logo,
	#brx-header.scrolling .t1-header > .t1-logo { width: 10.4rem; }
	#brx-header .brxe-button.t1-btn--header,
	#brx-header.scrolling .brxe-button.t1-btn--header { padding: .8rem 1.3rem; font-size: 1.4rem; }
}

@media (max-width: 991px) {
	.t1-header > .t1-logo { order: 1; }
	#brx-header .brxe-button.t1-btn--header { order: 2; }
	.brxe-container.t1-header > .brxe-button.t1-burger { order: 3; }
}

@media (max-width: 340px) {
	.t1-hero .brxe-button.t1-btn { padding: 1rem .2rem; font-size: 1.25rem; letter-spacing: 0; }
}

/* Small laptops and landscape tablets: the nav stays on one line */
@media (min-width: 992px) and (max-width: 1280px) {
	.t1-nav .bricks-nav-menu { flex-wrap: nowrap; gap: 1.4rem; }
	.t1-nav .bricks-nav-menu a { white-space: nowrap; }
	.brxe-nav-menu.t1-nav .bricks-nav-menu > li > a,
	.brxe-nav-menu.t1-nav .bricks-nav-menu > li > .brx-submenu-toggle > a { font-size: 1.6rem; }
	.brxe-button.t1-btn--header { min-width: 0; padding-inline: 2.4rem; font-size: 1.6rem; white-space: nowrap; }
	.t1-logo { width: 15rem; }
}
