/*
 * ASJ Plumbing & Maintenance — premium architectural property-care system.
 * Scoped to .asj-site so the plugin can coexist safely with any WordPress theme.
 */

@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/archivo-latin-600-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/archivo-latin-700-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Archivo";
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url("../fonts/archivo-latin-800-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-400-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-600-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Source Sans 3";
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url("../fonts/source-sans-3-latin-700-normal.woff2") format("woff2");
}

.asj-site {
	--asj-ink: #071b32;
	--asj-blue: #174e7a;
	--asj-blue-light: #39769e;
	--asj-orange: #ef6a2e;
	--asj-orange-ink: #8a310d;
	--asj-plaster: #f1ece3;
	--asj-paper: #faf8f3;
	--asj-stone: #e3dbcf;
	--asj-mist: #dce3e7;
	--asj-charcoal: #16222d;
	--asj-slate: #43525e;
	--asj-muted: #677580;
	--asj-line: rgba(7, 27, 50, 0.18);
	--asj-line-light: rgba(255, 255, 255, 0.22);
	--asj-display: "Archivo", "Arial Narrow", "Helvetica Neue", Arial, sans-serif;
	--asj-sans: "Source Sans 3", "Segoe UI", Arial, sans-serif;
	--asj-shell: min(100% - 64px, 1480px);
	--asj-reading: min(100% - 64px, 820px);
	--asj-section: clamp(84px, 9vw, 148px);
	--asj-radius: 0;
	margin: 0;
	background: var(--asj-plaster);
	color: var(--asj-ink);
	font-family: var(--asj-sans);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

.asj-site,
.asj-site .asj-site-frame,
.asj-site .asj-main {
	max-width: 100%;
	overflow-x: hidden;
	overflow-x: clip;
}

.asj-site .asj-site-frame {
	min-height: 100vh;
	background: var(--asj-plaster);
}

.asj-site *,
.asj-site *::before,
.asj-site *::after { box-sizing: border-box; }

.asj-site [hidden] { display: none !important; }

.asj-site img,
.asj-site svg,
.asj-site video { display: block; max-width: 100%; }
.asj-site img { height: auto; }
.asj-site .asj-logo { display: block; max-width: 100%; height: auto; }
.asj-site .asj-header__logo .asj-logo,
.asj-site .asj-header__logo > img { width: min(194px, 100%); height: auto; }
.asj-site .asj-menu__logo .asj-logo,
.asj-site .asj-menu__logo > img { width: min(194px, 100%); height: auto; }
.asj-site .asj-footer__wordmark.asj-logo,
.asj-site .asj-footer__wordmark { width: min(220px, 100%); height: auto; }
.asj-site .asj-logo--compact { width: 44px !important; height: 44px !important; object-fit: contain; }
.asj-site a { color: inherit; text-decoration: none; }
.asj-site button,
.asj-site input,
.asj-site select,
.asj-site textarea { font: inherit; }
.asj-site button,
.asj-site [type="button"],
.asj-site [type="submit"] { cursor: pointer; }

.asj-site h1,
.asj-site h2,
.asj-site h3,
.asj-site h4,
.asj-site p,
.asj-site ul,
.asj-site ol,
.asj-site figure,
.asj-site blockquote { margin-top: 0; }

.asj-site h1,
.asj-site h2,
.asj-site h3,
.asj-site h4 {
	color: inherit;
	font-family: var(--asj-display);
	font-weight: 700;
	overflow-wrap: break-word;
	text-wrap: balance;
}

.asj-site h1 {
	font-size: clamp(3rem, 5vw, 4.75rem);
	line-height: 0.95;
	letter-spacing: -0.052em;
}

.asj-site h2 {
	font-size: clamp(2.35rem, 3.7vw, 3.5rem);
	line-height: 0.98;
	letter-spacing: -0.046em;
}

.asj-site h3 {
	font-size: clamp(1.65rem, 2.4vw, 2.5rem);
	line-height: 1.02;
	letter-spacing: -0.038em;
}

.asj-site h4 {
	font-size: clamp(1.35rem, 2vw, 2rem);
	line-height: 1.05;
	letter-spacing: -0.032em;
}

.asj-site h1 em,
.asj-site h2 em,
.asj-site h3 em,
.asj-site blockquote em {
	color: var(--asj-orange);
	font-style: normal;
	font-weight: inherit;
}

.asj-site p:last-child,
.asj-site ul:last-child,
.asj-site ol:last-child { margin-bottom: 0; }
.asj-site ::selection { background: var(--asj-orange); color: var(--asj-ink); }

.asj-site :where(a, button, input, textarea, select, summary):focus-visible {
	outline: 3px solid var(--asj-orange);
	outline-offset: 4px;
}

.asj-site .asj-shell { width: var(--asj-shell); margin-inline: auto; }
.asj-site .asj-reading-width { width: var(--asj-reading); margin-inline: auto; }
.asj-site .asj-section { padding-block: var(--asj-section); }
.asj-site .asj-section--paper { background: var(--asj-paper); }
.asj-site .asj-section--mist { background: var(--asj-mist); }
.asj-site .asj-section--ink,
.asj-site .asj-dark-section { background: var(--asj-ink); color: #fff; }

.asj-site .asj-kicker,
.asj-site .asj-eyebrow,
.asj-site .asj-label {
	display: flex;
	margin-bottom: 20px;
	align-items: center;
	gap: 11px;
	color: var(--asj-blue);
	font-family: var(--asj-display);
	font-size: 0.65rem;
	font-weight: 700;
	line-height: 1.4;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.asj-site .asj-kicker::before,
.asj-site .asj-eyebrow::before {
	width: 24px;
	height: 2px;
	background: currentColor;
	content: "";
	flex: 0 0 auto;
}

.asj-site .asj-section--ink .asj-kicker,
.asj-site .asj-dark-section .asj-kicker,
.asj-site .asj-home-hero .asj-kicker,
.asj-site .asj-interior-hero .asj-kicker,
.asj-site .asj-project-hero .asj-kicker,
.asj-site .asj-contact-hero .asj-kicker,
.asj-site .asj-legal-hero .asj-kicker { color: #9fc5dc; }

.asj-site .asj-lead {
	max-width: 34ch;
	font-family: var(--asj-display);
	font-size: clamp(1.45rem, 2.25vw, 2.35rem);
	font-weight: 600;
	line-height: 1.15;
	letter-spacing: -0.036em;
}

.asj-site .asj-microcopy { color: var(--asj-muted); font-size: 0.82rem; line-height: 1.5; }

.asj-site .asj-section-heading {
	display: grid;
	grid-template-columns: minmax(0, 1.45fr) minmax(270px, 0.55fr);
	gap: clamp(36px, 8vw, 136px);
	align-items: end;
	margin-bottom: clamp(52px, 7vw, 96px);
}

.asj-site .asj-section-heading h2 { margin-bottom: 0; }
.asj-site .asj-section-heading > p,
.asj-site .asj-section-heading > a,
.asj-site .asj-section-heading > div:last-child { margin-bottom: 7px; }

.asj-site .asj-button-row { display: flex; flex-wrap: wrap; gap: 14px; align-items: center; }

.asj-site .asj-button,
.asj-site .button-primary,
.asj-site .button-hero {
	position: relative;
	display: inline-flex;
	min-width: 166px;
	min-height: 54px;
	padding: 14px 20px;
	align-items: center;
	justify-content: space-between;
	gap: 30px;
	border: 1px solid var(--asj-ink);
	border-radius: 0;
	background: var(--asj-ink);
	color: #fff;
	font-family: var(--asj-display);
	font-size: 0.67rem;
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.075em;
	text-transform: uppercase;
	overflow: hidden;
	transition: background-color 180ms ease, border-color 180ms ease, color 180ms ease, transform 180ms ease;
}

.asj-site .asj-button::before,
.asj-site .asj-enquiry-form button[type="submit"]::before {
	position: absolute;
	inset: 0 auto 0 0;
	width: 4px;
	background: var(--asj-orange);
	content: "";
	transition: width 180ms ease;
}
.asj-site .asj-button:hover::before,
.asj-site .asj-enquiry-form button[type="submit"]:hover::before { width: 8px; }
.asj-site .asj-button:hover { background: transparent; color: var(--asj-ink); transform: translateY(-2px); }
.asj-site .asj-button:hover .asj-action-icon { transform: translateX(5px); }

.asj-site .asj-action-icon {
	position: relative;
	display: inline-block;
	width: 38px;
	height: 12px;
	flex: 0 0 38px;
	transition: transform 180ms ease;
}
.asj-site .asj-action-icon i { position: absolute; inset: 0; display: block; }
.asj-site .asj-action-icon i::before {
	position: absolute;
	top: 50%;
	right: 0;
	width: 100%;
	height: 1px;
	background: currentColor;
	content: "";
}
.asj-site .asj-action-icon i::after {
	position: absolute;
	top: calc(50% - 4px);
	right: 0;
	width: 8px;
	height: 8px;
	border: 1px solid currentColor;
	background: transparent;
	content: "";
}
.asj-site .asj-action-icon--back { transform: scaleX(-1); }
.asj-site .asj-action-icon--down { transform: rotate(90deg); }
.asj-site .asj-action-icon--external { width: 18px; height: 18px; flex-basis: 18px; }
.asj-site .asj-action-icon--external i::before { top: 3px; right: 3px; width: 10px; transform: rotate(-45deg); transform-origin: right; }
.asj-site .asj-action-icon--external i::after { top: 2px; right: 2px; width: 9px; height: 9px; border-width: 1px 1px 0 0; }

.asj-site .asj-button--light,
.asj-site .button-hero { border-color: #fff; background: #fff; color: var(--asj-ink); }
.asj-site .asj-button--light:hover,
.asj-site .button-hero:hover { background: transparent; color: #fff; }
.asj-site .asj-button--dark { border-color: var(--asj-ink); background: var(--asj-ink); color: #fff; }

.asj-site .asj-text-link {
	display: inline-flex;
	min-height: 44px;
	padding-block: 10px 7px;
	align-items: center;
	gap: 22px;
	border-bottom: 1px solid currentColor;
	font-family: var(--asj-display);
	font-size: 0.67rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	transition: color 180ms ease, gap 180ms ease;
}
.asj-site .asj-text-link:hover { gap: 29px; color: var(--asj-blue); }
.asj-site .asj-text-link:hover .asj-action-icon { transform: translateX(5px); }
.asj-site .asj-text-link--light { color: #fff; }
.asj-site .asj-text-link--light:hover { color: #a9d1e5; }

.asj-site .asj-skip-link {
	position: fixed;
	top: 10px;
	left: 10px;
	z-index: 100000;
	padding: 12px 18px;
	background: #fff;
	color: var(--asj-ink);
	font-weight: 700;
	transform: translateY(-160%);
}
.asj-site .asj-skip-link:focus { transform: translateY(0); }
.asj-site .asj-noscript-nav { display: flex; min-height: 52px; padding: 8px max(18px, calc((100% - 1480px) / 2)); flex-wrap: wrap; align-items: center; gap: 8px 24px; border-bottom: 1px solid var(--asj-line); background: var(--asj-paper); }
.asj-site .asj-noscript-nav a { min-height: 36px; padding-block: 7px; color: var(--asj-ink); font-family: var(--asj-display); font-size: .68rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }

/* Header */
.asj-site .asj-emergency-bar {
	position: relative;
	z-index: 82;
	min-height: 44px;
	background: var(--asj-orange);
	color: var(--asj-ink);
}

.asj-site .asj-emergency-bar__inner {
	display: flex;
	min-height: 44px;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
}

.asj-site .asj-emergency-bar p { margin: 0; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.025em; }
.asj-site .asj-emergency-bar a {
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	gap: 10px;
	font-family: var(--asj-display);
	font-size: 0.66rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}
.asj-site .asj-emergency-bar a:hover { text-decoration: underline; text-underline-offset: 4px; }

.asj-site .asj-header {
	position: sticky;
	top: 0;
	z-index: 80;
	width: 100%;
	border-bottom: 1px solid var(--asj-line);
	background: rgba(251, 250, 247, 0.97);
	color: var(--asj-ink);
	backdrop-filter: blur(16px);
	transition: box-shadow 220ms ease, background-color 220ms ease;
}
.asj-site .asj-header.is-scrolled { box-shadow: 0 8px 24px rgba(7, 27, 50, 0.07); }
.admin-bar.asj-site .asj-header,
body.admin-bar .asj-site .asj-header { top: 32px; }

.asj-site .asj-header__inner {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	min-height: 86px;
	align-items: center;
	gap: clamp(24px, 4vw, 68px);
}

.asj-site .asj-header__logo { display: flex; min-width: 0; min-height: 48px; align-items: center; }
.asj-site .asj-header__logo svg { width: auto; max-width: 194px; height: 46px; }
.asj-site .asj-wordmark { display: inline-flex; align-items: center; gap: 12px; }

.asj-site .asj-desktop-nav { display: flex; height: 86px; align-items: stretch; justify-content: center; gap: clamp(20px, 2.5vw, 42px); }
.asj-site .asj-desktop-nav > a {
	position: relative;
	display: inline-flex;
	min-height: 44px;
	align-items: center;
	color: var(--asj-charcoal);
	font-family: var(--asj-display);
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 0.045em;
	text-transform: uppercase;
}

.asj-site .asj-desktop-nav > a::after {
	position: absolute;
	right: 0;
	bottom: 20px;
	left: 0;
	height: 2px;
	background: var(--asj-orange);
	content: "";
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 180ms ease;
}
.asj-site .asj-desktop-nav > a:hover::after,
.asj-site .asj-desktop-nav > a[aria-current="page"]::after { transform: scaleX(1); transform-origin: left; }

.asj-site .asj-header__actions { display: flex; align-items: center; gap: 10px; }
.asj-site .asj-header__quote {
	position: relative;
	display: inline-flex;
	min-height: 46px;
	padding: 12px 17px;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--asj-ink);
	border-radius: var(--asj-radius);
	background: var(--asj-ink);
	color: #fff;
	font-family: var(--asj-display);
	font-size: 0.63rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	gap: 14px;
	overflow: hidden;
	transition: background-color 180ms ease, color 180ms ease;
}
.asj-site .asj-header__quote::before { position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--asj-orange); content: ""; }
.asj-site .asj-header__quote .asj-action-icon { width: 24px; flex-basis: 24px; }
.asj-site .asj-header__quote:hover { background: transparent; color: var(--asj-ink); }
.asj-site .asj-header__call { display: grid; min-width: 116px; min-height: 46px; padding-inline: 8px; align-items: center; gap: 1px; color: var(--asj-orange-ink); font-size: 0.76rem; font-weight: 700; }

.asj-site .asj-menu-button,
.asj-site .asj-menu__close {
	display: none;
	min-width: 46px;
	min-height: 46px;
	padding: 0;
	align-items: center;
	justify-content: center;
	border: 1px solid var(--asj-line);
	border-radius: var(--asj-radius);
	background: transparent;
	color: inherit;
}

/* Full-screen navigation */
.asj-site .asj-menu {
	position: fixed;
	inset: 0;
	z-index: 1000;
	visibility: hidden;
	background: var(--asj-ink);
	color: #fff;
	opacity: 0;
	overflow-y: auto;
	overscroll-behavior: contain;
	transition: opacity 200ms ease, visibility 200ms ease;
}
.asj-site .asj-menu.is-open { visibility: visible; opacity: 1; }
.asj-menu-open { overflow: hidden; }
.admin-bar.asj-site .asj-menu,
body.admin-bar .asj-site .asj-menu { top: 32px; height: calc(100dvh - 32px); }
.asj-site .asj-menu__inner { display: grid; min-height: 100dvh; padding-block: 30px 40px; grid-template-rows: auto 1fr auto; gap: 32px; }
.asj-site .asj-menu__top { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.asj-site .asj-menu .asj-menu__close { display: inline-flex; width: auto; padding-inline: 16px; gap: 13px; border-color: var(--asj-line-light); font-family: var(--asj-display); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
.asj-site .asj-menu__close span { font-size: 1.6rem; font-weight: 400; }

/* Home hero */
.asj-site .asj-home-hero {
	position: relative;
	display: grid;
	min-height: clamp(690px, calc(100svh - 86px), 930px);
	background: var(--asj-ink);
	color: #fff;
	isolation: isolate;
}
.asj-site .asj-home-hero__media { position: absolute; inset: 0; z-index: -2; }
.asj-site .asj-home-hero__media img { width: 100%; height: 100%; object-fit: cover; object-position: 52% 48%; }
.asj-site .asj-home-hero::before,
.asj-site .asj-media-scrim {
	position: absolute;
	inset: 0;
	z-index: -1;
	background: linear-gradient(90deg, rgba(7, 27, 50, 0.94) 0%, rgba(7, 27, 50, 0.72) 43%, rgba(7, 27, 50, 0.15) 80%), linear-gradient(0deg, rgba(7, 27, 50, 0.64) 0%, transparent 45%);
	content: "";
}
.asj-site .asj-home-hero__content { position: relative; display: grid; width: var(--asj-shell); padding-block: clamp(90px, 14vh, 170px) 118px; grid-template-columns: minmax(0, 1fr) minmax(270px, 330px); align-self: stretch; align-content: center; align-items: end; gap: clamp(50px, 10vw, 160px); }
.asj-site .asj-home-hero__content h1 { max-width: 12ch; margin-bottom: 30px; }
.asj-site .asj-home-hero__content > p:not(.asj-kicker) { max-width: 570px; margin-bottom: 34px; color: rgba(255, 255, 255, 0.84); font-size: clamp(1rem, 1.4vw, 1.2rem); }

/* Editorial service index — intentionally asymmetric */
.asj-site .asj-service-index { padding-block: var(--asj-section); background: var(--asj-paper); }
.asj-site .asj-service-index__grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: stretch; gap: 14px; }

/* Interior and service heroes */
.asj-site .asj-interior-hero { position: relative; display: grid; min-height: clamp(540px, 70vh, 760px); background: var(--asj-ink); color: #fff; isolation: isolate; }
.asj-site .asj-interior-hero__media { position: absolute; inset: 0; z-index: -2; }
.asj-site .asj-interior-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-interior-hero__credit { position: absolute; right: 14px; bottom: 14px; z-index: 1; max-width: min(70vw, 360px); padding: 7px 9px; background: rgba(7, 27, 50, 0.88); color: rgba(255, 255, 255, 0.86); font-size: 0.62rem; font-weight: 600; line-height: 1.35; text-align: right; }
.asj-site .asj-interior-hero::after { position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(7, 27, 50, 0.93) 0%, rgba(7, 27, 50, 0.6) 48%, rgba(7, 27, 50, 0.1) 82%), linear-gradient(0deg, rgba(7, 27, 50, 0.52), transparent 58%); content: ""; }
.asj-site .asj-interior-hero__content { display: flex; padding-block: clamp(100px, 14vh, 160px) 74px; align-self: stretch; flex-direction: column; justify-content: end; }
.asj-site .asj-interior-hero__content h1 { max-width: 10ch; margin-bottom: 26px; font-size: clamp(3.3rem, 5.2vw, 5rem); }
.asj-site .asj-interior-hero__content > p:not(.asj-kicker) { max-width: 600px; margin-bottom: 0; color: rgba(255, 255, 255, 0.84); font-size: clamp(1rem, 1.4vw, 1.2rem); }

/* Breadcrumbs */
.asj-site .asj-breadcrumbs,
.asj-site .breadcrumbs,
.asj-site .rank-math-breadcrumb { padding-block: 15px; border-bottom: 1px solid var(--asj-line); background: var(--asj-paper); color: var(--asj-muted); font-size: 0.7rem; line-height: 1.4; }
.asj-site .asj-breadcrumbs ol,
.asj-site .rank-math-breadcrumb p { display: flex; width: var(--asj-shell); margin: 0 auto; padding: 0; flex-wrap: wrap; align-items: center; gap: 7px; list-style: none; }
.asj-site .asj-breadcrumbs a:hover,
.asj-site .rank-math-breadcrumb a:hover { color: var(--asj-blue); text-decoration: underline; text-underline-offset: 3px; }
.asj-site .asj-interior-hero .asj-breadcrumbs { width: 100%; margin: 0 0 auto; padding: 0 0 28px; border: 0; background: transparent; color: rgba(255,255,255,.7); }
.asj-site .asj-interior-hero .asj-breadcrumbs ol { width: 100%; margin: 0; gap: 8px; }
.asj-site .asj-interior-hero .asj-breadcrumbs li { display: inline-flex; align-items: center; gap: 8px; }
.asj-site .asj-interior-hero .asj-breadcrumbs li + li::before { color: var(--asj-orange); content: "/"; }
.asj-site .asj-interior-hero .asj-breadcrumbs a:hover { color: #fff; }

/* Trust band */
.asj-site .asj-credentials { padding-block: clamp(56px, 7vw, 94px); border-block: 1px solid var(--asj-line); background: var(--asj-mist); }
.asj-site .asj-credentials__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-left: 1px solid rgba(7, 27, 50, 0.26); }
.asj-site .asj-credential,
.asj-site .asj-stat { min-height: 130px; padding: 24px; border-right: 1px solid rgba(7, 27, 50, 0.26); }
.asj-site .asj-credential strong,
.asj-site .asj-stat strong { display: block; margin-bottom: 9px; font-family: var(--asj-display); font-size: clamp(1.55rem, 2.5vw, 2.65rem); font-weight: 700; line-height: 1; letter-spacing: -0.04em; }
.asj-site .asj-credential span,
.asj-site .asj-stat span { display: block; max-width: 24ch; color: var(--asj-slate); font-size: 0.72rem; line-height: 1.5; }

.asj-site .asj-photo-credit { margin-top: 22px; color: var(--asj-muted); font-size: 0.7rem; }

/* Project / post detail */
.asj-site .asj-project-hero { position: relative; display: grid; min-height: clamp(560px, 76vh, 830px); background: var(--asj-ink); color: #fff; isolation: isolate; }
.asj-site .asj-project-hero__media { position: absolute; inset: 0; z-index: -2; }
.asj-site .asj-project-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-project-hero::after { position: absolute; inset: 0; z-index: -1; background: linear-gradient(0deg, rgba(7, 27, 50, 0.94) 0%, rgba(7, 27, 50, 0.2) 70%), linear-gradient(90deg, rgba(7, 27, 50, 0.62), transparent 70%); content: ""; }
.asj-site .asj-project-hero__content { display: flex; padding-block: 110px 70px; align-self: stretch; flex-direction: column; justify-content: end; }
.asj-site .asj-project-hero__back { position: absolute; top: 40px; left: 0; display: inline-flex; min-height: 44px; align-items: center; gap: 10px; font-family: var(--asj-display); font-size: 0.64rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
.asj-site .asj-project-hero__content h1 { max-width: 11ch; margin-bottom: 28px; font-size: clamp(3.3rem, 5.2vw, 5rem); }
.asj-site .asj-privacy__content { min-width: 0; }
.asj-site .asj-privacy__content > * + * { margin-top: 1.45em; }
.asj-site .asj-privacy__content h2 { margin-top: 1.25em; font-size: clamp(2.2rem, 3.7vw, 3.5rem); }
.asj-site .asj-privacy__content h3 { margin-top: 1.6em; font-size: clamp(1.6rem, 2.5vw, 2.55rem); }
.asj-site .asj-privacy__content a { color: var(--asj-blue); text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.asj-site .asj-project-facts { position: sticky; top: 120px; padding-top: 20px; border-top: 4px solid var(--asj-orange); background: var(--asj-paper); }
.asj-site .asj-project-facts > div { display: grid; min-height: 84px; padding: 18px 20px; grid-template-columns: 90px 1fr; align-items: start; gap: 16px; border-bottom: 1px solid var(--asj-line); }
.asj-site .asj-project-facts dt { color: var(--asj-muted); font-family: var(--asj-display); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.asj-site .asj-project-facts dd { margin: 0; font-size: 0.83rem; font-weight: 600; }

/* Contact and forms */
.asj-site .asj-contact-page { background: var(--asj-paper); }
.asj-site .asj-contact-page__grid { display: grid; grid-template-columns: minmax(320px, 0.72fr) minmax(0, 1.18fr); gap: clamp(54px, 9vw, 140px); align-items: start; }
.asj-site .asj-contact-page__details { position: sticky; top: 122px; }
.admin-bar.asj-site .asj-contact-page__details,
body.admin-bar .asj-site .asj-contact-page__details { top: 154px; }
.asj-site .asj-contact-page__details h2,
.asj-site .asj-contact-page__form-heading h2 { margin-bottom: 30px; font-size: clamp(2.35rem, 3.7vw, 3.5rem); }
.asj-site .asj-contact-methods { margin-top: 42px; border-top: 1px solid var(--asj-line); }
.asj-site .asj-contact-methods a { display: grid; min-height: 92px; padding-block: 20px; grid-template-columns: 82px minmax(0, 1fr) auto; align-items: center; gap: 16px; border-bottom: 1px solid var(--asj-line); }
.asj-site .asj-contact-methods span,
.asj-site .asj-contact-methods small { color: var(--asj-slate); font-family: var(--asj-display); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.asj-site .asj-contact-methods strong { min-width: 0; font-family: var(--asj-display); font-size: clamp(1.15rem, 1.8vw, 1.65rem); font-weight: 700; line-height: 1.15; overflow-wrap: anywhere; }
.asj-site .asj-contact-methods a:hover strong { color: var(--asj-blue); }
.asj-site .asj-contact-note,
.asj-site .asj-info-notes { margin-top: 34px; padding: 20px; border-left: 4px solid var(--asj-orange); background: var(--asj-plaster); color: var(--asj-slate); font-size: 0.77rem; }
.asj-site .asj-enquiry-panel,
.asj-site .asj-contact-page__form { padding: clamp(28px, 5vw, 64px); border: 1px solid var(--asj-line); border-radius: var(--asj-radius); background: #fff; box-shadow: 0 16px 36px rgba(7, 27, 50, 0.06); }
.asj-site .asj-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 25px 22px; }
.asj-site .asj-form-grid > .asj-form-wide,
.asj-site .asj-form-grid > label:has(textarea),
.asj-site .asj-form-grid > .asj-consent,
.asj-site .asj-form-grid > .asj-form-actions { grid-column: 1 / -1; }
.asj-site .asj-enquiry-form label,
.asj-site .asj-form-field { display: grid; min-width: 0; gap: 8px; color: var(--asj-ink); font-family: var(--asj-display); font-size: 0.63rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; }
.asj-site .asj-enquiry-form input:not([type="checkbox"]):not([type="radio"]),
.asj-site .asj-enquiry-form select,
.asj-site .asj-enquiry-form textarea,
.asj-site .asj-form-field input,
.asj-site .asj-form-field select,
.asj-site .asj-form-field textarea { width: 100%; min-height: 54px; padding: 13px 0; border: 0; border-bottom: 1px solid #7b858a; border-radius: 0; background: transparent; color: var(--asj-ink); font-family: var(--asj-sans); font-size: 0.93rem; font-weight: 400; letter-spacing: 0; text-transform: none; transition: border-color 180ms ease, box-shadow 180ms ease; }
.asj-site .asj-enquiry-form textarea,
.asj-site .asj-form-field textarea { min-height: 132px; resize: vertical; }
.asj-site .asj-enquiry-form input:focus,
.asj-site .asj-enquiry-form select:focus,
.asj-site .asj-enquiry-form textarea:focus,
.asj-site .asj-form-field input:focus,
.asj-site .asj-form-field select:focus,
.asj-site .asj-form-field textarea:focus { border-color: var(--asj-blue); outline: 0; box-shadow: 0 2px 0 var(--asj-blue); }
.asj-site .asj-enquiry-form input[aria-invalid="true"],
.asj-site .asj-enquiry-form select[aria-invalid="true"],
.asj-site .asj-enquiry-form textarea[aria-invalid="true"] { border-color: #a92e24; box-shadow: 0 2px 0 #a92e24; }
.asj-site .asj-consent { display: grid !important; grid-template-columns: 22px 1fr; align-items: start; gap: 12px !important; color: var(--asj-slate) !important; font-family: var(--asj-sans) !important; font-size: 0.72rem !important; font-weight: 400 !important; letter-spacing: 0 !important; line-height: 1.55; text-transform: none !important; }
.asj-site .asj-consent input { width: 20px; height: 20px; margin: 1px 0 0; accent-color: var(--asj-blue); }
.asj-site .asj-consent a { color: var(--asj-blue); text-decoration: underline; text-underline-offset: 3px; }
.asj-site .asj-enquiry-form button[type="submit"] { display: inline-flex; min-width: 190px; min-height: 56px; padding: 14px 20px; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid var(--asj-ink); border-radius: var(--asj-radius); background: var(--asj-ink); color: #fff; font-family: var(--asj-display); font-size: 0.66rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
.asj-site .asj-enquiry-form button[type="submit"]:hover { background: var(--asj-blue); border-color: var(--asj-blue); }
.asj-site .asj-enquiry-form button[disabled] { cursor: wait; opacity: 0.68; }
.asj-site .asj-honeypot { position: absolute !important; left: -9999px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }

/* Flash notices */
.asj-site .asj-form-notice,
.asj-site .asj-flash,
.asj-site .asj-error { margin-bottom: 26px; padding: 16px 18px; border-left: 4px solid var(--asj-blue); border-radius: var(--asj-radius); background: var(--asj-mist); color: var(--asj-ink); font-size: 0.78rem; line-height: 1.55; }
.asj-site .asj-form-notice--success,
.asj-site .asj-flash--success { border-color: #285e48; background: #dfece6; }
.asj-site .asj-form-notice--error,
.asj-site .asj-flash--error,
.asj-site .asj-error { border-color: #a92e24; background: #f5dfdc; }
.asj-site .asj-form-notice--warning,
.asj-site .asj-flash--warning { border-color: var(--asj-orange-ink); background: #fae7dc; }
.asj-site .asj-field-error { color: #a92e24; font-family: var(--asj-sans); font-size: 0.69rem; font-weight: 600; letter-spacing: 0; text-transform: none; }

/* Large contact callout */
.asj-site .asj-contact-strip { background: var(--asj-orange); color: var(--asj-ink); }
.asj-site .asj-contact-strip__inner { display: grid; min-height: 390px; padding-block: clamp(65px, 8vw, 116px); grid-template-columns: minmax(0, 1fr) minmax(320px, 0.55fr); gap: clamp(46px, 9vw, 140px); align-items: end; }
.asj-site .asj-contact-strip h2 { max-width: 11ch; margin: 0; font-size: clamp(2.6rem, 3.7vw, 3.5rem); }
.asj-site .asj-contact-strip__links { display: grid; min-width: 0; border-top: 1px solid rgba(7, 27, 50, 0.48); }
.asj-site .asj-contact-strip__links a { display: flex; min-width: 0; min-height: 66px; padding-block: 14px; align-items: center; justify-content: space-between; gap: 20px; border-bottom: 1px solid rgba(7, 27, 50, 0.48); }
.asj-site .asj-contact-strip__links span,
.asj-site .asj-contact-strip__links small { font-family: var(--asj-display); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
.asj-site .asj-contact-strip__links strong { min-width: 0; font-family: var(--asj-display); font-size: clamp(1.05rem, 1.7vw, 1.5rem); font-weight: 700; line-height: 1.2; text-align: right; overflow-wrap: anywhere; }
.asj-site .asj-contact-strip__links a:hover strong { text-decoration: underline; text-underline-offset: 5px; }

/* Privacy and cookie UI */
.asj-site .asj-privacy__grid { display: grid; grid-template-columns: 270px minmax(0, 820px); gap: clamp(46px, 9vw, 130px); align-items: start; }
.asj-site .asj-privacy__nav { position: sticky; top: 120px; padding-top: 18px; border-top: 3px solid var(--asj-ink); }
.asj-site .asj-privacy__nav a { display: flex; min-height: 44px; align-items: center; border-bottom: 1px solid var(--asj-line); font-size: 0.72rem; font-weight: 600; }
.asj-site .asj-cookie-banner,
.asj-site .asj-cookie-panel,
.asj-site .cookie-notice-container { position: fixed; right: 20px; bottom: 20px; z-index: 9998; width: min(460px, calc(100% - 40px)); padding: 24px; border-top: 4px solid var(--asj-orange); border-radius: var(--asj-radius); background: var(--asj-ink); color: #fff; box-shadow: 0 16px 36px rgba(7, 27, 50, 0.22); }
.asj-site .asj-cookie-banner h2,
.asj-site .asj-cookie-panel h2 { margin-bottom: 12px; font-size: 1.8rem; }
.asj-site .asj-cookie-banner p,
.asj-site .asj-cookie-panel p,
.asj-site .cookie-notice-container p { margin-bottom: 18px; color: rgba(255, 255, 255, 0.74); font-size: 0.73rem; }
.asj-site .asj-cookie-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.asj-site .asj-cookie-actions button,
.asj-site .cookie-notice-container .cn-button { display: inline-flex; min-height: 44px; padding: 10px 14px; align-items: center; border: 1px solid rgba(255, 255, 255, 0.55); border-radius: var(--asj-radius); background: transparent; color: #fff; font-family: var(--asj-display); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.asj-site .asj-cookie-actions button:first-child,
.asj-site .cookie-notice-container .cn-set-cookie { border-color: var(--asj-orange); background: var(--asj-orange); color: var(--asj-ink); }

/* Empty / 404 */
.asj-site .asj-empty-state,
.asj-site .asj-not-found { display: grid; min-height: 70vh; padding-block: var(--asj-section); align-content: center; text-align: center; }
.asj-site .asj-empty-state h1,
.asj-site .asj-not-found h1 { margin-bottom: 28px; font-size: clamp(3.5rem, 5.2vw, 5rem); }
.asj-site .asj-empty-state p,
.asj-site .asj-not-found p { max-width: 50ch; margin-inline: auto; }
.asj-site .asj-empty-state .asj-button,
.asj-site .asj-not-found .asj-button { margin: 28px auto 0; }

/* Footer */
.asj-site .asj-footer { padding-block: clamp(76px, 10vw, 138px) 30px; background: var(--asj-ink); color: #fff; }
.asj-site .asj-footer__lead { display: grid; padding-bottom: clamp(60px, 8vw, 110px); grid-template-columns: minmax(0, 1fr) auto; align-items: end; gap: clamp(34px, 7vw, 100px); border-bottom: 1px solid var(--asj-line-light); }
.asj-site .asj-footer__lead h2 { max-width: 14ch; margin: 0; font-size: clamp(2.6rem, 3.7vw, 3.5rem); }
.asj-site .asj-footer__grid { display: grid; padding-block: 52px; grid-template-columns: 1.25fr repeat(3, minmax(0, 1fr)); gap: 36px; }
.asj-site .asj-footer__grid > div { display: grid; align-content: start; gap: 6px; }
.asj-site .asj-footer__label { margin-bottom: 15px; color: #8ebbd5; font-family: var(--asj-display); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; }
.asj-site .asj-footer__grid a { display: inline-flex; min-height: 44px; width: fit-content; align-items: center; color: rgba(255, 255, 255, 0.76); font-size: 0.77rem; }
.asj-site .asj-footer__grid a:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.asj-site .asj-footer__base { display: flex; padding-top: 24px; align-items: center; justify-content: space-between; gap: 24px; border-top: 1px solid var(--asj-line-light); color: rgba(255, 255, 255, 0.56); font-size: 0.66rem; }
.asj-site .asj-footer__base p { margin: 0; }
.asj-site .asj-footer__base a { color: #fff; }
.asj-site .asj-mobile-actions { display: none; }

/* Exact component map for the ASJ build */
.asj-site .asj-section--soft { background: var(--asj-mist); }
.asj-site .asj-centred-action { display: flex; margin-top: clamp(38px, 6vw, 72px); justify-content: center; }

.asj-site .asj-emergency-bar__inner p { display: flex; align-items: center; gap: 10px; }
.asj-site .asj-emergency-bar__inner p > span { width: 8px; height: 8px; border-radius: 50%; background: var(--asj-ink); box-shadow: 0 0 0 4px rgba(7, 27, 50, 0.12); }
.asj-site .asj-emergency-bar__inner p strong { font-family: var(--asj-display); font-size: 0.64rem; letter-spacing: 0.07em; text-transform: uppercase; }
.asj-site .asj-emergency-bar__inner p em { padding-left: 10px; border-left: 1px solid rgba(7, 27, 50, 0.4); font-size: 0.71rem; font-style: normal; font-weight: 600; }
.asj-site .asj-desktop-nav .asj-nav-services { position: relative; display: flex; align-items: stretch; }
.asj-site .asj-desktop-nav .asj-nav-services > a { position: relative; display: inline-flex; min-height: 44px; align-items: center; gap: 6px; color: var(--asj-charcoal); font-family: var(--asj-display); font-size: 0.65rem; font-weight: 700; letter-spacing: 0.045em; text-transform: uppercase; }
.asj-site .asj-desktop-nav .asj-nav-services > a .asj-action-icon { width: 11px; height: 11px; flex-basis: 11px; }
.asj-site .asj-desktop-nav .asj-nav-services > a .asj-action-icon i::after { top: calc(50% - 3px); width: 6px; height: 6px; }
.asj-site .asj-desktop-nav .asj-nav-services > a::after { position: absolute; right: 0; bottom: 20px; left: 0; height: 2px; background: var(--asj-orange); content: ""; transform: scaleX(0); transform-origin: right; transition: transform 180ms ease; }
.asj-site .asj-desktop-nav .asj-nav-services:hover > a::after,
.asj-site .asj-desktop-nav .asj-nav-services:focus-within > a::after { transform: scaleX(1); transform-origin: left; }
.asj-site .asj-desktop-nav__urgent { color: var(--asj-orange-ink) !important; }
.asj-site .asj-nav-services__panel { position: absolute; top: calc(100% - 1px); left: 50%; display: grid; visibility: hidden; width: min(620px, 80vw); padding: 28px; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px; border: 1px solid var(--asj-line); border-top: 3px solid var(--asj-orange); background: var(--asj-paper); box-shadow: 0 16px 32px rgba(7, 27, 50, 0.1); opacity: 0; transform: translate(-50%, -8px); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease; }
.asj-site .asj-nav-services:hover .asj-nav-services__panel,
.asj-site .asj-nav-services:focus-within .asj-nav-services__panel { visibility: visible; opacity: 1; transform: translate(-50%, 0); }
.asj-site .asj-nav-services__panel > div { display: grid; align-content: start; gap: 2px; }
.asj-site .asj-nav-services__panel p { margin-bottom: 10px; color: var(--asj-blue); font-family: var(--asj-display); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.asj-site .asj-nav-services__panel a { display: flex; min-height: 44px; padding-block: 8px; align-items: center; border-bottom: 1px solid var(--asj-line); font-size: 0.81rem; font-weight: 600; }
.asj-site .asj-nav-services__panel a:hover { color: var(--asj-blue); padding-left: 5px; }
.asj-site .asj-header__call small { color: var(--asj-orange-ink); font-family: var(--asj-display); font-size: 0.55rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.asj-site .asj-header__call strong { color: var(--asj-ink); font-size: 0.8rem; }
.asj-site .asj-menu-button > span { font-family: var(--asj-display); font-size: 0.62rem; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
.asj-site .asj-menu-button > i { position: relative; width: 20px; height: 12px; border-block: 1px solid currentColor; }
.asj-site .asj-menu__logo { display: flex; min-width: 0; align-items: center; }
.asj-site .asj-menu__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(320px, 0.65fr); gap: clamp(40px, 8vw, 120px); align-content: center; }
.asj-site .asj-menu__primary { display: grid; border-top: 1px solid var(--asj-line-light); }
.asj-site .asj-menu__primary a { display: flex; min-height: 74px; align-items: center; border-bottom: 1px solid var(--asj-line-light); font-family: var(--asj-display); font-size: clamp(1.7rem, 3.4vw, 3.6rem); font-weight: 700; line-height: 1; letter-spacing: -0.045em; }
.asj-site .asj-menu__primary a:hover { padding-left: 8px; color: #b8d8e9; }
.asj-site .asj-menu__services { display: grid; align-content: start; }
.asj-site .asj-menu__services > p { margin-bottom: 10px; color: #8ebbd5; font-family: var(--asj-display); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; }
.asj-site .asj-menu__services a { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 18px; border-bottom: 1px solid var(--asj-line-light); color: rgba(255,255,255,.78); font-size: 0.8rem; }
.asj-site .asj-menu__services a:hover { color: #fff; }
.asj-site .asj-menu__contact { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1px; background: var(--asj-line-light); }
.asj-site .asj-menu__contact a { display: grid; min-width: 0; min-height: 78px; padding: 16px 18px; align-content: center; background: var(--asj-charcoal); }
.asj-site .asj-menu__contact small { color: #8ebbd5; font-family: var(--asj-display); font-size: 0.58rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; }
.asj-site .asj-menu__contact strong { min-width: 0; font-size: 1rem; overflow-wrap: anywhere; }

.asj-site .asj-home-hero__copy { max-width: 880px; }
.asj-site .asj-home-hero__urgent { margin: 22px 0 0 !important; color: rgba(255,255,255,.7) !important; font-size: .76rem !important; }
.asj-site .asj-home-hero__urgent a { color: #fff; font-weight: 700; text-decoration: underline; text-decoration-color: var(--asj-orange); text-underline-offset: 4px; }
.asj-site .asj-home-hero__folio { display: grid; min-height: 320px; padding: 26px; align-content: space-between; border: 1px solid rgba(255,255,255,.4); border-top: 4px solid var(--asj-orange); background: rgba(7,27,50,.76); backdrop-filter: blur(12px); }
.asj-site .asj-home-hero__folio > span,
.asj-site .asj-home-hero__folio > small { color: rgba(255,255,255,.7); font-family: var(--asj-display); font-size: .64rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.asj-site .asj-home-hero__folio > strong { color: #fff; font-family: var(--asj-display); font-size: clamp(1.75rem,2.7vw,2.65rem); line-height: 1.08; letter-spacing: -.04em; }
.asj-site .asj-interior-hero--services .asj-interior-hero__content h1 { max-width: 15ch; font-size: clamp(3.1rem,4.8vw,4.7rem); }
.asj-site .asj-button--urgent { border-color: var(--asj-orange); background: var(--asj-orange); color: var(--asj-ink); }
.asj-site .asj-button--urgent:hover { border-color: #fff; background: #fff; color: var(--asj-ink); }
.asj-site .asj-button--ghost { border-color: rgba(255,255,255,.7); background: transparent; color: #fff; }
.asj-site .asj-button--ghost:hover { border-color: #fff; background: #fff; color: var(--asj-ink); }

.asj-site .asj-service-tile { position: relative; display: grid; min-height: 470px; grid-column: span 4; color: #fff; isolation: isolate; overflow: hidden; }
.asj-site .asj-service-tile--1 { min-height: 600px; grid-column: span 7; }
.asj-site .asj-service-tile--2 { min-height: 600px; grid-column: span 5; }
.asj-site .asj-service-tile--6 { min-height: 520px; grid-column: span 5; }
.asj-site .asj-service-tile--7 { min-height: 520px; grid-column: span 7; }
.asj-site .asj-service-tile--8,
.asj-site .asj-service-tile--9 { min-height: 520px; grid-column: span 6; }
.asj-site .asj-service-tile__media { position: absolute; inset: 0; z-index: -2; }
.asj-site .asj-service-tile__media img { width: 100%; height: 100%; object-fit: cover; object-position: var(--asj-focus, 50% 50%); transition: transform 650ms cubic-bezier(.2,.65,.25,1); }
.asj-site .asj-service-tile__media .asj-media-scrim { z-index: 0; background: linear-gradient(0deg,rgba(7,27,50,.96),rgba(7,27,50,.08) 76%); }
.asj-site .asj-service-tile:hover .asj-service-tile__media img { transform: scale(1.035); }
.asj-site .asj-service-tile__copy { position: relative; display: grid; width: min(86%,560px); margin: 0 0 18px 18px; padding: 24px 72px 24px 24px; align-self: end; gap: 9px; background: rgba(7,27,50,.94); backdrop-filter: blur(8px); }
.asj-site .asj-service-tile__copy small { color: #b8d8e9; font-family: var(--asj-display); font-size: .68rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.asj-site .asj-service-tile__copy h3 { max-width: 12ch; margin-bottom: 0; font-size: clamp(1.8rem,2.7vw,2.7rem); }
.asj-site .asj-service-tile__copy p { max-width: 43ch; margin: 0; color: var(--asj-mist); font-size: .88rem; }
.asj-site .asj-service-tile__copy > .asj-action-icon { position: absolute; right: 24px; bottom: 27px; }
.asj-site .asj-service-tile:hover .asj-service-tile__copy > .asj-action-icon { transform: translateX(5px); }
.asj-site [data-media="bathroom-installation"] { --asj-focus: 52% 48%; }
.asj-site [data-media="home-extensions"] { --asj-focus: 50% 48%; }
.asj-site [data-media="kitchen-installation"] { --asj-focus: 55% 48%; }
.asj-site [data-media="attic-conversions"] { --asj-focus: 50% 28%; }
.asj-site [data-media="heating"] { --asj-focus: 50% 52%; }
.asj-site [data-media="roofing"] { --asj-focus: 47% 40%; }
.asj-site [data-media="plumbing"] { --asj-focus: 48% 52%; }
.asj-site [data-media="insurance-works"] { --asj-focus: 50% 48%; }
.asj-site [data-media="home-adaptations"] { --asj-focus: 50% 60%; }

.asj-site .asj-home-story { background: var(--asj-plaster); }
.asj-site .asj-home-story__heading { display: grid; margin-bottom: clamp(50px,7vw,92px); grid-template-columns: minmax(0,1.15fr) minmax(300px,.62fr); gap: clamp(48px,9vw,140px); align-items: end; }
.asj-site .asj-home-story__heading h2 { max-width: 15ch; margin-bottom: 0; }
.asj-site .asj-home-story__heading > div:last-child > p:not(.asj-lead) { color: var(--asj-slate); }
.asj-site .asj-home-story__gallery { position: relative; display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(260px,34vw)); gap: 14px; }
.asj-site .asj-home-story__image { position: relative; min-height: 0; margin: 0; grid-column: 8 / span 5; overflow: hidden; }
.asj-site .asj-home-story__image--wide { grid-column: 1 / span 7; grid-row: 1 / 3; }
.asj-site .asj-home-story__image img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-home-story__image figcaption,
.asj-site .asj-home-proof__media figcaption,
.asj-site .asj-insurance-feature__media figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 46px 16px 14px; background: linear-gradient(0deg,rgba(7,27,50,.92),transparent); color: #fff; font-size: .68rem; }
.asj-site .asj-home-story__note { position: relative; z-index: 2; display: grid; width: min(370px,calc(100% - 42px)); margin: 0 0 22px 22px; padding: 20px; grid-column: 1 / span 7; grid-row: 2; align-self: end; grid-template-columns: 58px 1fr; gap: 18px; background: var(--asj-orange); color: var(--asj-ink); }
.asj-site .asj-home-story__note > span { font-family: var(--asj-display); font-size: 1.7rem; font-weight: 800; letter-spacing: -.05em; }
.asj-site .asj-home-story__note p { margin: 0; font-size: .76rem; line-height: 1.45; }

.asj-site .asj-home-proof__grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(390px,.8fr); gap: clamp(55px,8vw,120px); align-items: center; }
.asj-site .asj-home-proof__media { position: relative; min-height: 760px; margin: 0; overflow: hidden; }
.asj-site .asj-home-proof__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 54%; }
.asj-site .asj-home-proof__content { min-width: 0; }
.asj-site .asj-home-proof__statement h2 { margin-bottom: 26px; }
.asj-site .asj-home-proof__statement > p:last-child { color: rgba(255,255,255,.72); }
.asj-site .asj-home-proof__points { border-top: 1px solid var(--asj-line-light); }
.asj-site .asj-home-proof__points article { display: grid; min-height: 190px; padding: 28px 0; grid-template-columns: 62px 1fr; gap: 24px; border-bottom: 1px solid var(--asj-line-light); }
.asj-site .asj-home-proof__points article > span { color: #8ebbd5; font-family: var(--asj-display); font-size: .63rem; font-weight: 700; letter-spacing: .1em; }
.asj-site .asj-home-proof__points h3 { margin-bottom: 12px; font-size: clamp(1.55rem,2.3vw,2.3rem); }
.asj-site .asj-home-proof__points p { color: rgba(255,255,255,.7); font-size: .82rem; }

.asj-site .asj-project-preview-grid { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.75fr); grid-template-rows: repeat(2,minmax(310px,1fr)); gap: 16px; }
.asj-site .asj-project-preview-grid .asj-project-card { min-height: 310px; grid-column: 2; grid-row: auto; }
.asj-site .asj-project-preview-grid .asj-project-card:first-child { min-height: 636px; grid-column: 1; grid-row: 1 / 3; }
.asj-site .asj-project-card { position: relative; display: grid; min-width: 0; margin: 0; grid-template-rows: minmax(0,1fr) auto; background: var(--asj-paper); color: var(--asj-ink); overflow: hidden; }
.asj-site .asj-project-card__media { position: relative; display: block; min-height: 290px; overflow: hidden; }
.asj-site .asj-project-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.asj-site .asj-project-card:hover .asj-project-card__media img { transform: scale(1.025); }
.asj-site .asj-project-card__media > small { position: absolute; top: 14px; left: 14px; padding: 8px 10px; background: var(--asj-ink); color: #fff; font-family: var(--asj-display); font-size: .56rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.asj-site .asj-project-card__placeholder,
.asj-site .asj-project-hero__placeholder { display: grid; width: 100%; height: 100%; min-height: 290px; background: var(--asj-mist); color: var(--asj-blue); font-family: var(--asj-display); font-size: 4rem; font-weight: 800; place-items: center; }
.asj-site .asj-project-card__copy { position: relative; display: grid; min-height: 195px; padding: 24px; align-content: start; gap: 8px; border: 1px solid var(--asj-line); border-top: 0; }
.asj-site .asj-project-card__copy p { margin: 0; color: var(--asj-blue); font-family: var(--asj-display); font-size: .59rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.asj-site .asj-project-card__copy h3 { max-width: 15ch; margin: 0; padding-right: 30px; font-size: clamp(1.45rem,2.2vw,2.2rem); }
.asj-site .asj-project-card__copy > span { color: var(--asj-muted); font-size: .73rem; }
.asj-site .asj-project-card__copy > .asj-action-icon { position: absolute; right: 22px; bottom: 22px; }
.asj-site .asj-project-card:hover .asj-project-card__copy > .asj-action-icon { transform: translateX(5px); }
.asj-site .asj-project-card__content { display: grid; min-height: 220px; padding: 24px; align-content: start; gap: 12px; border: 1px solid var(--asj-line); border-top: 0; }
.asj-site .asj-project-card__content .asj-kicker { margin-bottom: 0; }
.asj-site .asj-project-card__content h3 { margin: 0; font-size: clamp(1.45rem, 2.2vw, 2.2rem); }
.asj-site .asj-project-card__content > p:not(.asj-kicker) { margin: 0; color: var(--asj-slate); font-size: 0.78rem; }
.asj-site .asj-project-card__content .asj-text-link { width: fit-content; margin-top: auto; }
.asj-site .asj-project-card__meta { color: var(--asj-blue) !important; font-family: var(--asj-display); font-size: 0.62rem !important; font-weight: 700; letter-spacing: 0.07em; text-transform: uppercase; }
.asj-site .asj-project-filters { display: flex; margin-bottom: 34px; padding-bottom: 14px; flex-wrap: wrap; gap: 8px; border-bottom: 1px solid var(--asj-line); }
.asj-site .asj-project-filters button { display: inline-flex; min-height: 44px; padding: 9px 14px; align-items: center; border: 1px solid var(--asj-line); border-radius: var(--asj-radius); background: transparent; color: var(--asj-ink); font-family: var(--asj-display); font-size: 0.63rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; }
.asj-site .asj-project-filters button:hover,
.asj-site .asj-project-filters button[aria-pressed="true"] { border-color: var(--asj-ink); background: var(--asj-ink); color: #fff; }
.asj-site .asj-project-empty { display: grid; min-height: 260px; padding: 34px; border: 1px solid var(--asj-line); background: var(--asj-paper); text-align: center; place-content: center; }
.asj-site .asj-real-work-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.asj-site .asj-real-work-strip figure { position: relative; min-height: 430px; margin: 0; overflow: hidden; }
.asj-site .asj-real-work-strip figure:nth-child(2) { margin-top: 54px; }
.asj-site .asj-real-work-strip img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-real-work-strip figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 42px 16px 16px; background: linear-gradient(0deg,rgba(7,27,50,.9),transparent); color: #fff; font-size: .68rem; }
.asj-site .asj-insurance-feature { position: relative; display: grid; min-height: 760px; grid-template-columns: minmax(0,1.12fr) minmax(390px,.72fr); }
.asj-site .asj-insurance-feature__media { position: relative; min-height: 760px; margin: 0; overflow: hidden; }
.asj-site .asj-insurance-feature__media img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-insurance-feature__media .asj-media-scrim { z-index: 0; background: linear-gradient(90deg,transparent 55%,rgba(7,27,50,.62)); }
.asj-site .asj-insurance-feature__copy { display: flex; width: 100%; margin: 0; padding: clamp(50px,7vw,110px); flex-direction: column; justify-content: center; background: var(--asj-ink); }
.asj-site .asj-insurance-feature__copy h2 { margin-bottom: 30px; }
.asj-site .asj-insurance-feature__copy > p:not(.asj-kicker) { margin-bottom: 30px; color: rgba(255,255,255,.75); }
.asj-site .asj-insurance-feature__copy .asj-button { width: fit-content; }
.asj-site .asj-service-area { position: relative; background-color: var(--asj-ink); background-image: linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px); background-size: 58px 58px; color: #fff; }
.asj-site .asj-service-area::before { position: absolute; inset: 0 auto 0 0; width: clamp(8px,1.2vw,18px); background: var(--asj-orange); content: ""; }
.asj-site .asj-service-area__grid { display: grid; grid-template-columns: minmax(230px,.42fr) minmax(0,1fr); gap: clamp(55px,10vw,160px); align-items: center; }
.asj-site .asj-service-area__marker { display: grid; min-height: 330px; padding: 30px; align-content: space-between; border: 1px solid rgba(255,255,255,.32); background: rgba(7,27,50,.82); }
.asj-site .asj-service-area__marker small,
.asj-site .asj-service-area__marker span { color: rgba(255,255,255,.7); font-family: var(--asj-display); font-size: .65rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.asj-site .asj-service-area__marker strong { color: var(--asj-orange); font-family: var(--asj-display); font-size: clamp(5rem,10vw,9rem); line-height: .8; letter-spacing: -.09em; }
.asj-site .asj-service-area__copy h2 { max-width: 13ch; }
.asj-site .asj-service-area__copy > p:not(.asj-kicker) { max-width: 62ch; color: rgba(255,255,255,.74); }
.asj-site .asj-service-area__links { display: flex; margin: 34px 0; padding-block: 14px; flex-wrap: wrap; gap: 8px 28px; border-block: 1px solid rgba(255,255,255,.25); }
.asj-site .asj-service-area__links a { min-height: 44px; padding-block: 10px; color: #fff; font-size: .8rem; font-weight: 700; text-decoration: underline; text-decoration-color: var(--asj-orange); text-underline-offset: 5px; }

.asj-site .asj-home-contact { background: var(--asj-plaster); }
.asj-site .asj-home-contact__grid,
.asj-site .asj-inline-enquiry__grid { display: grid; grid-template-columns: minmax(320px,.72fr) minmax(0,1.12fr); gap: clamp(55px,9vw,140px); align-items: start; }
.asj-site .asj-home-contact__grid > div:first-child,
.asj-site .asj-inline-enquiry__grid > div:first-child { position: sticky; top: 130px; }
.asj-site .asj-home-contact__grid > div:first-child h2,
.asj-site .asj-inline-enquiry__grid > div:first-child h2 { margin-bottom: 28px; }
.asj-site .asj-home-contact__grid > div:first-child > p:not(.asj-kicker),
.asj-site .asj-inline-enquiry__grid > div:first-child > p:not(.asj-kicker) { max-width: 47ch; color: var(--asj-slate); }
.asj-site .asj-home-contact__grid > div:first-child a { color: var(--asj-blue); font-weight: 700; }
.asj-site .asj-home-contact__form,
.asj-site .asj-inline-enquiry__grid > div:last-child { padding: clamp(28px,4.5vw,58px); border: 1px solid var(--asj-line); background: #fff; box-shadow: 0 14px 32px rgba(7,27,50,.05); }
.asj-site .asj-dark-section.asj-inline-enquiry .asj-inline-enquiry__grid > div:last-child { color: var(--asj-ink); }
.asj-site .asj-dark-section.asj-inline-enquiry .asj-inline-enquiry__grid > div:first-child > p:not(.asj-kicker) { color: rgba(255,255,255,.72); }

.asj-site .asj-services-lane__heading { display: grid; margin-bottom: clamp(45px,7vw,90px); grid-template-columns: 90px minmax(0,1fr) minmax(280px,.55fr); gap: 26px; align-items: end; }
.asj-site .asj-services-lane__heading > span { align-self: start; color: var(--asj-blue); font-family: var(--asj-display); font-size: .65rem; font-weight: 700; letter-spacing: .11em; }
.asj-site .asj-services-lane__heading h2 { margin-bottom: 0; }
.asj-site .asj-services-lane__heading > p { color: var(--asj-slate); }
.asj-site .asj-services-lane--planned .asj-services-lane__heading > span,
.asj-site .asj-services-lane--planned .asj-kicker { color: #8ebbd5; }
.asj-site .asj-services-lane--planned .asj-services-lane__heading > p { color: rgba(255,255,255,.72); }
.asj-site .asj-services-lane .asj-services-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1px; border: 1px solid var(--asj-line); background: var(--asj-line); }
.asj-site .asj-services-lane--planned .asj-services-grid { border-color: var(--asj-line-light); background: var(--asj-line-light); }
.asj-site .asj-services-lane .asj-service-card:nth-child(n) { position: relative; display: grid; min-height: 530px; padding: 0; grid-column: auto; grid-row: auto; grid-template-rows: minmax(290px,1fr) auto; background: var(--asj-paper); color: var(--asj-ink); overflow: hidden; }
.asj-site .asj-services-lane .asj-service-card__media { position: relative; min-height: 290px; overflow: hidden; }
.asj-site .asj-services-lane .asj-service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 550ms ease; }
.asj-site .asj-services-lane .asj-service-card__media .asj-media-scrim { z-index: 0; background: linear-gradient(0deg,rgba(7,27,50,.44),transparent 60%); }
.asj-site .asj-services-lane .asj-service-card:hover .asj-service-card__media img { transform: scale(1.025); }
.asj-site .asj-services-lane .asj-service-card__copy { display: grid; min-height: 220px; padding: 26px; align-content: start; gap: 12px; }
.asj-site .asj-services-lane .asj-service-card__copy h3 { margin: 0; font-size: clamp(1.7rem,2.6vw,2.65rem); }
.asj-site .asj-services-lane .asj-service-card__copy p { max-width: 55ch; margin: 0; color: var(--asj-slate); }
.asj-site .asj-services-lane .asj-service-card__copy strong { display: flex; margin-top: auto; padding-top: 18px; align-items: center; justify-content: space-between; gap: 20px; border-top: 1px solid var(--asj-line); font-family: var(--asj-display); font-size: .64rem; letter-spacing: .06em; text-transform: uppercase; }
.asj-site .asj-services-lane__action { display: flex; min-height: 96px; padding-top: 24px; align-items: center; justify-content: space-between; gap: 24px; }
.asj-site .asj-services-lane__action p { margin: 0; font-family: var(--asj-display); font-size: 1.1rem; font-weight: 700; }

/* Renovation-first Services overview */
.asj-site .asj-services-lane--improvements { background: var(--asj-paper); }
.asj-site .asj-services-lane--improvements .asj-services-grid--improvements { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 14px; border: 0; background: transparent; }
.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(n) { position: relative; display: grid; min-height: 520px; padding: 0; grid-column: span 4; grid-row: auto; grid-template-rows: 1fr; color: #fff; isolation: isolate; overflow: hidden; }
.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(1) { min-height: 610px; grid-column: span 7; }
.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(2) { min-height: 610px; grid-column: span 5; }
.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(6) { min-height: 440px; grid-column: span 12; }
.asj-site .asj-services-lane--improvements .asj-service-card__media { position: absolute; inset: 0; z-index: -2; min-height: 0; }
.asj-site .asj-services-lane--improvements .asj-service-card__media img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(4) .asj-service-card__media img { object-position: 50% 28%; }
.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(6) .asj-service-card__media img { object-position: 50% 38%; }
.asj-site .asj-services-lane--improvements .asj-service-card__media .asj-media-scrim { z-index: 0; background: linear-gradient(0deg,rgba(7,27,50,.92),rgba(7,27,50,.03) 72%); }
.asj-site .asj-services-lane--improvements .asj-service-card__copy { position: relative; display: grid; width: min(88%,590px); min-height: 0; margin: auto 16px 16px; padding: 24px; align-self: end; gap: 11px; background: rgba(7,27,50,.93); color: #fff; backdrop-filter: blur(8px); }
.asj-site .asj-services-lane--improvements .asj-service-card__copy h3 { color: #fff; }
.asj-site .asj-services-lane--improvements .asj-service-card__copy p { color: rgba(255,255,255,.74); font-size: .9rem; }
.asj-site .asj-services-lane--improvements .asj-service-card__copy strong { margin-top: 5px; border-color: rgba(255,255,255,.3); }

.asj-site .asj-services-proof__grid { display: grid; grid-template-columns: minmax(290px,.5fr) minmax(0,1.2fr); gap: clamp(50px,9vw,140px); align-items: center; }
.asj-site .asj-services-proof__copy h2 { max-width: 12ch; margin-bottom: 28px; }
.asj-site .asj-services-proof__copy > p:not(.asj-kicker) { color: rgba(255,255,255,.72); }
.asj-site .asj-services-proof__media { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); grid-template-rows: repeat(2,minmax(260px,24vw)); gap: 14px; }
.asj-site .asj-services-proof__media figure { position: relative; min-height: 0; margin: 0; overflow: hidden; }
.asj-site .asj-services-proof__media figure:first-child { grid-row: 1 / 3; }
.asj-site .asj-services-proof__media img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-services-proof__media figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 42px 14px 14px; background: linear-gradient(0deg,rgba(7,27,50,.9),transparent); color: #fff; font-size: .68rem; }

.asj-site .asj-services-systems__grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); gap: 14px; }
.asj-site .asj-services-systems .asj-service-card { display: grid; min-height: 530px; grid-column: span 4; grid-template-rows: minmax(280px,1fr) auto; border: 1px solid var(--asj-line); background: var(--asj-paper); color: var(--asj-ink); overflow: hidden; }
.asj-site .asj-services-systems .asj-service-card__media { position: relative; min-height: 280px; margin: 0; overflow: hidden; }
.asj-site .asj-services-systems .asj-service-card__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 500ms ease; }
.asj-site .asj-services-systems .asj-service-card__copy { display: grid; min-height: 220px; padding: 24px; align-content: start; gap: 12px; }
.asj-site .asj-services-systems .asj-service-card__copy h3 { margin: 0; font-size: clamp(1.6rem,2.4vw,2.35rem); }
.asj-site .asj-services-systems .asj-service-card__copy p { margin: 0; color: var(--asj-slate); font-size: .88rem; }
.asj-site .asj-services-systems .asj-service-card__copy strong { display: flex; margin-top: auto; padding-top: 16px; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid var(--asj-line); font-family: var(--asj-display); font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; }
.asj-site .asj-services-systems .asj-service-card:hover img { transform: scale(1.03); }
.asj-site .asj-services-systems .asj-service-card--support { min-height: 320px; grid-column: 1 / -1; grid-template-columns: minmax(300px,.55fr) minmax(0,1fr); grid-template-rows: 1fr; border-top: 4px solid var(--asj-orange); }
.asj-site .asj-services-systems .asj-service-card--support .asj-service-card__media { min-height: 320px; }
.asj-site .asj-services-systems .asj-service-card--support .asj-service-card__copy { min-height: 320px; padding: clamp(28px,4vw,54px); align-content: center; }
.asj-site .asj-services-systems__note { display: flex; min-height: 88px; margin-top: 14px; padding: 18px 22px; align-items: center; justify-content: space-between; gap: 24px; border: 1px solid var(--asj-line); background: var(--asj-stone); }
.asj-site .asj-services-systems__note p { margin: 0; }
.asj-site .asj-services-systems__note a { min-height: 44px; padding: 10px 0; border-bottom: 1px solid currentColor; font-family: var(--asj-display); font-size: .68rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }

.asj-site .asj-service-intro__grid,
.asj-site .asj-projects-intro__grid,
.asj-site .asj-about-intro__grid,
.asj-site .asj-emergency-intro__grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(340px,.65fr); gap: clamp(54px,9vw,150px); align-items: start; }
.asj-site .asj-service-intro__grid h2,
.asj-site .asj-projects-intro__grid h2,
.asj-site .asj-about-intro__grid h2,
.asj-site .asj-emergency-intro__grid h2 { margin-bottom: 0; }
.asj-site .asj-service-intro__grid > div:last-child,
.asj-site .asj-projects-intro__grid > div:last-child,
.asj-site .asj-about-intro__grid > div:last-child,
.asj-site .asj-emergency-intro__grid > div:last-child { padding-top: clamp(20px,4vw,70px); }
.asj-site .asj-service-scope__grid { display: grid; grid-template-columns: minmax(300px,.65fr) minmax(0,1.15fr); gap: clamp(54px,9vw,150px); align-items: start; }
.asj-site .asj-service-scope__heading { position: sticky; top: 130px; }
.asj-site .asj-service-scope__heading h2 { margin-bottom: 24px; }
.asj-site .asj-service-scope__heading > p:not(.asj-kicker) { max-width: 46ch; color: var(--asj-slate); }
.asj-site .asj-service-scope__list { margin: 0; padding: 0; border-top: 1px solid var(--asj-line); list-style: none; counter-reset: none; }
.asj-site .asj-service-scope__list li { display: grid; min-height: 102px; padding: 22px 0; grid-template-columns: 70px 1fr; align-items: center; gap: 20px; border-bottom: 1px solid var(--asj-line); }
.asj-site .asj-service-scope__list span { color: var(--asj-blue); font-family: var(--asj-display); font-size: .64rem; font-weight: 700; letter-spacing: .1em; }
.asj-site .asj-service-scope__list strong { font-family: var(--asj-display); font-size: clamp(1.2rem,2vw,1.75rem); line-height: 1.1; letter-spacing: -.03em; }
.asj-site .asj-service-editorial { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(380px,.7fr); }
.asj-site .asj-service-editorial__media { position: relative; min-height: 700px; }
.asj-site .asj-service-editorial__media img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-service-editorial__media small { position: absolute; right: 0; bottom: 0; padding: 12px 14px; background: var(--asj-paper); color: var(--asj-ink); font-family: var(--asj-display); font-size: .58rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.asj-site .asj-service-editorial__copy { display: flex; padding: clamp(50px,7vw,110px); flex-direction: column; justify-content: center; }
.asj-site .asj-service-editorial__copy h2 { margin-bottom: 28px; }
.asj-site .asj-service-editorial__copy > p:not(.asj-kicker) { margin-bottom: 28px; color: rgba(255,255,255,.74); }
.asj-site .asj-process-steps { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--asj-line-light); border-left: 1px solid var(--asj-line-light); }
.asj-site .asj-process-steps--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.asj-site .asj-process-steps article { display: grid; min-height: 320px; padding: 26px; align-content: space-between; gap: 38px; border-right: 1px solid var(--asj-line-light); border-bottom: 1px solid var(--asj-line-light); }
.asj-site .asj-process-steps article > span { color: #8ebbd5; font-family: var(--asj-display); font-size: .62rem; font-weight: 700; letter-spacing: .1em; }
.asj-site .asj-process-steps h3 { margin: auto 0 0; font-size: clamp(1.55rem,2.4vw,2.4rem); }
.asj-site .asj-process-steps p { color: rgba(255,255,255,.7); font-size: .8rem; }
.asj-site .asj-process-steps--light { border-color: var(--asj-line); }
.asj-site .asj-process-steps--light article { border-color: var(--asj-line); }
.asj-site .asj-process-steps--light article > span { color: var(--asj-blue); }
.asj-site .asj-process-steps--light p { color: var(--asj-slate); }
.asj-site .asj-service-faq__grid { display: grid; grid-template-columns: minmax(300px,.6fr) minmax(0,1fr); gap: clamp(50px,9vw,140px); align-items: start; }
.asj-site .asj-service-faq__grid > div:first-child { position: sticky; top: 130px; }
.asj-site .asj-accordion { border-top: 1px solid var(--asj-line); }
.asj-site .asj-accordion details { border-bottom: 1px solid var(--asj-line); }
.asj-site .asj-accordion summary { display: grid; min-height: 86px; padding: 20px 0; grid-template-columns: 1fr 44px; align-items: center; gap: 20px; cursor: pointer; font-family: var(--asj-display); font-size: clamp(1.1rem,1.8vw,1.5rem); font-weight: 700; line-height: 1.2; letter-spacing: -.025em; list-style: none; }
.asj-site .asj-accordion summary::-webkit-details-marker { display: none; }
.asj-site .asj-accordion summary span { display: grid; width: 40px; height: 40px; border: 1px solid var(--asj-line); place-items: center; transition: transform 180ms ease; }
.asj-site .asj-accordion details[open] summary span { transform: rotate(45deg); }
.asj-site .asj-accordion details > div { padding: 0 58px 24px 0; color: var(--asj-slate); }

.asj-site .asj-service-related .asj-section-heading > p { color: rgba(255,255,255,.7); }
.asj-site .asj-related-services__rail { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; }
.asj-site .asj-related-service { position: relative; display: grid; min-height: 490px; color: #fff; isolation: isolate; overflow: hidden; }
.asj-site .asj-related-service__media { position: absolute; inset: 0; z-index: -2; margin: 0; overflow: hidden; }
.asj-site .asj-related-service__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 600ms cubic-bezier(.2,.65,.25,1); }
.asj-site .asj-related-service__media .asj-media-scrim { z-index: 0; background: linear-gradient(0deg,rgba(7,27,50,.94),rgba(7,27,50,.03) 72%); }
.asj-site .asj-related-service__copy { position: relative; display: grid; margin: auto 16px 16px; padding: 22px 68px 22px 22px; align-self: end; gap: 7px; background: rgba(7,27,50,.92); backdrop-filter: blur(7px); }
.asj-site .asj-related-service__copy small { color: #b8d8e9; font-family: var(--asj-display); font-size: .66rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.asj-site .asj-related-service__copy strong { font-family: var(--asj-display); font-size: clamp(1.45rem,2.2vw,2.2rem); line-height: 1.05; letter-spacing: -.035em; }
.asj-site .asj-related-service__copy .asj-action-icon { position: absolute; right: 22px; bottom: 26px; }
.asj-site .asj-related-service:hover img { transform: scale(1.035); }
.asj-site .asj-related-service:hover .asj-action-icon { transform: translateX(5px); }

.asj-site .asj-project-masonry { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); grid-auto-rows: 92px; gap: 18px; }
.asj-site .asj-project-masonry .asj-project-card { min-height: 0; grid-column: span 4; grid-row: span 6; }
.asj-site .asj-project-masonry .asj-project-card--1 { grid-column: span 7; grid-row: span 7; }
.asj-site .asj-project-masonry .asj-project-card--2 { grid-column: span 5; grid-row: span 5; }
.asj-site .asj-project-masonry .asj-project-card--3 { grid-column: 8 / span 5; grid-row: span 5; }
.asj-site .asj-project-masonry .asj-project-card--4 { grid-column: span 5; grid-row: span 6; }
.asj-site .asj-project-masonry .asj-project-card--5 { grid-column: span 7; grid-row: span 6; }
.asj-site .asj-project-masonry .asj-project-card__media { min-height: 0; }
.asj-site .asj-project-masonry .asj-project-card__copy { min-height: 168px; }
.asj-site .asj-project-brief__grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(320px,.55fr); gap: clamp(55px,9vw,140px); align-items: end; }
.asj-site .asj-project-brief__grid h2 { margin-bottom: 0; }
.asj-site .asj-project-brief__grid > div:last-child p { color: rgba(255,255,255,.72); }
.asj-site .asj-project-brief__grid .asj-button { margin-top: 22px; }
.asj-site .asj-project-story__grid { display: grid; grid-template-columns: 330px minmax(0,1fr); gap: clamp(55px,9vw,140px); align-items: start; }
.asj-site .asj-project-facts > .asj-kicker { padding-inline: 20px; }
.asj-site .asj-project-facts small { color: var(--asj-muted); font-family: var(--asj-display); font-size: .59rem; font-weight: 700; letter-spacing: .09em; text-transform: uppercase; }
.asj-site .asj-project-facts strong { font-size: .84rem; }
.asj-site .asj-project-story__content > h2 { margin-bottom: 32px; font-size: clamp(2.35rem,3.7vw,3.5rem); }
.asj-site .asj-prose { max-width: 760px; color: var(--asj-slate); }
.asj-site .asj-prose > * + * { margin-top: 1.35em; }
.asj-site .asj-prose h2,
.asj-site .asj-prose h3 { margin-top: 1.5em; color: var(--asj-ink); }
.asj-site .asj-prose a { color: var(--asj-blue); text-decoration: underline; text-underline-offset: 3px; }
.asj-site .asj-project-result { margin-top: 50px; padding: 32px; border-left: 4px solid var(--asj-orange); background: var(--asj-mist); }
.asj-site .asj-project-result .asj-lead { margin-bottom: 0; }
.asj-site .asj-project-gallery__grid { display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); grid-auto-rows: 100px; gap: 16px; }
.asj-site .asj-project-gallery__grid figure { position: relative; margin: 0; grid-column: span 6; grid-row: span 5; overflow: hidden; }
.asj-site .asj-project-gallery__grid figure:nth-child(3n+1) { grid-column: span 7; grid-row: span 6; }
.asj-site .asj-project-gallery__grid figure:nth-child(3n+2) { grid-column: span 5; grid-row: span 4; }
.asj-site .asj-project-gallery__grid img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-project-gallery__grid figcaption { position: absolute; right: 0; bottom: 0; padding: 9px 12px; background: var(--asj-ink); color: #fff; font-family: var(--asj-display); font-size: .57rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }

.asj-site .asj-real-work-strip--about figure { min-height: 520px; }
.asj-site .asj-values-grid,
.asj-site .asj-contact-guide__grid,
.asj-site .asj-emergency-types { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--asj-line); border-left: 1px solid var(--asj-line); }
.asj-site .asj-values-grid article,
.asj-site .asj-contact-guide__grid article,
.asj-site .asj-emergency-types article { display: grid; min-height: 310px; padding: 25px; align-content: space-between; gap: 40px; border-right: 1px solid var(--asj-line); border-bottom: 1px solid var(--asj-line); }
.asj-site .asj-values-grid article > span,
.asj-site .asj-contact-guide__grid article > span,
.asj-site .asj-emergency-types article > span { color: var(--asj-blue); font-family: var(--asj-display); font-size: .62rem; font-weight: 700; letter-spacing: .1em; }
.asj-site .asj-values-grid h3,
.asj-site .asj-contact-guide__grid h3,
.asj-site .asj-emergency-types h3 { margin: auto 0 0; font-size: clamp(1.45rem,2.2vw,2.15rem); }
.asj-site .asj-values-grid p,
.asj-site .asj-contact-guide__grid p,
.asj-site .asj-emergency-types p { color: var(--asj-slate); font-size: .79rem; }
.asj-site .asj-about-routes__grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); border: 1px solid var(--asj-line); }
.asj-site .asj-about-route { display: grid; min-height: 450px; padding: clamp(35px,5vw,70px); align-content: space-between; gap: 28px; border-right: 1px solid var(--asj-line); background: var(--asj-paper); }
.asj-site .asj-about-route:last-child { border-right: 0; }
.asj-site .asj-about-route--urgent { background: var(--asj-orange); }
.asj-site .asj-about-route--urgent .asj-kicker { color: var(--asj-ink); }
.asj-site .asj-about-route h2 { max-width: 12ch; margin: auto 0 0; font-size: clamp(2.25rem,3.7vw,3.5rem); }
.asj-site .asj-about-route > p:not(.asj-kicker) { max-width: 48ch; color: var(--asj-slate); }
.asj-site .asj-about-route--urgent > p:not(.asj-kicker) { color: var(--asj-ink); }
.asj-site .asj-about-route > strong { display: flex; min-height: 48px; padding-top: 14px; align-items: center; justify-content: space-between; border-top: 1px solid currentColor; font-family: var(--asj-display); font-size: .65rem; letter-spacing: .06em; text-transform: uppercase; }

.asj-site .asj-about-next__grid { display: grid; grid-template-columns: minmax(0,1.05fr) minmax(360px,.72fr); gap: clamp(55px,9vw,140px); align-items: center; }
.asj-site .asj-about-next__media { position: relative; min-height: 690px; margin: 0; overflow: hidden; }
.asj-site .asj-about-next__media img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 54%; }
.asj-site .asj-about-next__media figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 46px 16px 14px; background: linear-gradient(0deg,rgba(7,27,50,.9),transparent); color: #fff; font-size: .68rem; }
.asj-site .asj-about-next__copy h2 { margin-bottom: 28px; }
.asj-site .asj-about-next__copy > p:not(.asj-kicker) { color: var(--asj-slate); }
.asj-site .asj-about-next__actions { display: flex; margin-top: 30px; flex-wrap: wrap; align-items: center; gap: 16px 24px; }

.asj-site .asj-emergency-types { width: var(--asj-shell); margin: clamp(50px,7vw,90px) auto 0; }
.asj-site .asj-emergency-safety__grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(350px,.72fr); gap: clamp(54px,9vw,140px); align-items: center; }
.asj-site .asj-emergency-safety__grid > div:first-child { position: relative; min-height: 620px; }
.asj-site .asj-emergency-safety__grid > div:first-child img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-emergency-safety__grid > div:first-child small { position: absolute; right: 0; bottom: 0; padding: 11px 14px; background: var(--asj-paper); font-family: var(--asj-display); font-size: .58rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.asj-site .asj-check-list { margin: 28px 0; padding: 0; list-style: none; }
.asj-site .asj-check-list li { position: relative; padding: 14px 0 14px 30px; border-top: 1px solid var(--asj-line); color: var(--asj-slate); }
.asj-site .asj-check-list li:last-child { border-bottom: 1px solid var(--asj-line); }
.asj-site .asj-check-list li::before { position: absolute; top: 20px; left: 3px; width: 9px; height: 9px; border: 2px solid var(--asj-orange-ink); content: ""; }
.asj-site .asj-call-panel { background: var(--asj-orange); color: var(--asj-ink); text-align: center; }
.asj-site .asj-call-panel .asj-shell { display: grid; justify-items: center; }
.asj-site .asj-call-panel .asj-kicker { color: var(--asj-ink); }
.asj-site .asj-call-panel h2 { max-width: 13ch; margin-bottom: 22px; }
.asj-site .asj-call-panel p:not(.asj-kicker) { margin-bottom: 26px; }

.asj-site .asj-contact-hero { padding-block: clamp(80px,10vw,140px); background: var(--asj-ink); }
.asj-site .asj-contact-hero__grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(330px,.58fr); gap: clamp(55px,9vw,140px); align-items: end; }
.asj-site .asj-contact-hero__copy h1 { max-width: 10ch; margin-bottom: 28px; }
.asj-site .asj-contact-hero__copy > p:not(.asj-kicker) { max-width: 56ch; color: rgba(255,255,255,.74); }
.asj-site .asj-contact-hero__emergency { display: grid; padding: 28px; gap: 13px; border-top: 4px solid var(--asj-ink); background: var(--asj-orange); color: var(--asj-ink); }
.asj-site .asj-contact-hero__emergency > span { font-family: var(--asj-display); font-size: clamp(3rem,5vw,4.75rem); font-weight: 800; line-height: .85; letter-spacing: -.07em; }
.asj-site .asj-contact-hero__emergency .asj-kicker { margin: 12px 0 0; color: var(--asj-ink); }
.asj-site .asj-contact-hero__emergency h2 { margin-bottom: 8px; font-size: clamp(1.8rem,3vw,3rem); }
.asj-site .asj-contact-hero__emergency > a { display: flex; min-height: 50px; padding-top: 14px; align-items: center; justify-content: space-between; border-top: 1px solid var(--asj-ink); font-family: var(--asj-display); font-size: 1.15rem; font-weight: 700; }
.asj-site .asj-contact-hero__project { position: relative; display: grid; min-height: 530px; color: #fff; isolation: isolate; overflow: hidden; }
.asj-site .asj-contact-hero__project figure { position: absolute; inset: 0; z-index: -2; margin: 0; overflow: hidden; }
.asj-site .asj-contact-hero__project figure::after { position: absolute; inset: 0; background: linear-gradient(0deg,rgba(7,27,50,.95),rgba(7,27,50,.08) 70%); content: ""; }
.asj-site .asj-contact-hero__project figure img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-contact-hero__project figcaption { position: absolute; top: 14px; left: 14px; z-index: 1; padding: 8px 10px; background: var(--asj-ink); color: #fff; font-family: var(--asj-display); font-size: .6rem; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.asj-site .asj-contact-hero__project > div { display: grid; margin: auto 18px 18px; padding: 24px; align-self: end; gap: 9px; background: rgba(7,27,50,.92); backdrop-filter: blur(8px); }
.asj-site .asj-contact-hero__project h2 { margin-bottom: 14px; font-size: clamp(1.65rem,2.7vw,2.65rem); }
.asj-site .asj-contact-hero__project .asj-kicker { margin-bottom: 4px; }
.asj-site .asj-contact-page__urgent-note { margin-top: 30px; padding: 20px; border-left: 4px solid var(--asj-orange); background: var(--asj-plaster); }
.asj-site .asj-contact-page__urgent-note p { margin-bottom: 9px; color: var(--asj-slate); font-size: .78rem; }
.asj-site .asj-contact-page__urgent-note .asj-text-link { min-height: 36px; padding-block: 6px; font-size: .62rem; }
.asj-site .asj-contact-methods .asj-action-icon { color: var(--asj-ink); }
.asj-site .asj-contact-page address { margin-top: 25px; color: var(--asj-slate); font-style: normal; }
.asj-site .asj-contact-image-band { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); }
.asj-site .asj-contact-image-band figure { position: relative; min-height: 400px; margin: 0; overflow: hidden; }
.asj-site .asj-contact-image-band figure:nth-child(2) { min-height: 480px; margin-top: -40px; }
.asj-site .asj-contact-image-band img { width: 100%; height: 100%; object-fit: cover; }
.asj-site .asj-contact-image-band figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 38px 14px 14px; background: linear-gradient(0deg,rgba(7,27,50,.9),transparent); color: #fff; font-size: .66rem; }
.asj-site .asj-legal-hero { padding-block: clamp(100px,13vw,180px); background: var(--asj-ink); }
.asj-site .asj-legal-hero h1 { max-width: 11ch; margin-bottom: 28px; }
.asj-site .asj-legal-hero > .asj-shell > p:not(.asj-kicker) { max-width: 62ch; color: rgba(255,255,255,.72); }
.asj-site .asj-section-label { margin-bottom: 10px; color: #b8d8e9; font-family: var(--asj-display); font-size: 0.61rem; font-weight: 700; letter-spacing: 0.11em; text-transform: uppercase; }
.asj-site .asj-privacy__grid > aside { position: sticky; top: 120px; }
.asj-site .asj-privacy__grid > aside h2 { margin-bottom: 20px; font-size: clamp(1.8rem,2.8vw,2.8rem); }
.asj-site .asj-privacy__grid > aside > p:not(.asj-kicker) { color: var(--asj-slate); font-size: .78rem; }
.asj-site .asj-privacy__grid > aside > a { display: inline-flex; min-height: 44px; margin-top: 15px; align-items: center; gap: 18px; border-bottom: 1px solid currentColor; color: var(--asj-blue); font-family: var(--asj-display); font-size: .62rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.asj-site .asj-editor-content { border-top: 1px solid var(--asj-line); background: var(--asj-paper); }
.asj-site .asj-editor-content__inner { display: grid; grid-template-columns: minmax(210px, .45fr) minmax(0, 1fr); gap: clamp(36px,8vw,120px); align-items: start; }
.asj-site .asj-editor-content__inner > h2 { max-width: 10ch; font-size: clamp(2rem,4vw,3.8rem); }
.asj-site .asj-editor-content__body { max-width: 760px; color: var(--asj-charcoal); font-size: clamp(1rem,1.3vw,1.15rem); line-height: 1.72; }
.asj-site .asj-editor-content__body > * + * { margin-top: 1.1em; }
.asj-site .asj-editor-content__body h2,
.asj-site .asj-editor-content__body h3 { margin-top: 1.5em; color: var(--asj-ink); }
.asj-site .asj-editor-content__body a { color: var(--asj-blue); text-decoration: underline; text-underline-offset: 4px; }
.asj-site .asj-pagination { margin-top: clamp(36px,6vw,72px); }
.asj-site .asj-pagination .page-numbers { display: flex; margin: 0; padding: 0; flex-wrap: wrap; gap: 8px; list-style: none; }
.asj-site .asj-pagination a,
.asj-site .asj-pagination span { display: grid; min-width: 44px; min-height: 44px; padding: 8px 13px; border: 1px solid var(--asj-line); background: var(--asj-paper); color: var(--asj-ink); font-family: var(--asj-display); font-size: .72rem; font-weight: 700; place-items: center; }
.asj-site .asj-pagination .current { border-color: var(--asj-ink); background: var(--asj-ink); color: #fff; }
.asj-site .asj-error.asj-section { display: grid; min-height: 70vh; margin: 0; padding-block: var(--asj-section); border: 0; background: var(--asj-ink); color: #fff; }
.asj-site .asj-error.asj-section .asj-shell { align-self: center; }
.asj-site .asj-error.asj-section h1 { max-width: 12ch; margin-bottom: 26px; }
.asj-site .asj-error.asj-section p:not(.asj-kicker) { max-width: 55ch; margin-bottom: 28px; color: rgba(255,255,255,.72); }

.admin-bar.asj-site .asj-home-proof__statement,
body.admin-bar .asj-site .asj-home-proof__statement,
.admin-bar.asj-site .asj-home-contact__grid > div:first-child,
body.admin-bar .asj-site .asj-home-contact__grid > div:first-child,
.admin-bar.asj-site .asj-inline-enquiry__grid > div:first-child,
body.admin-bar .asj-site .asj-inline-enquiry__grid > div:first-child,
.admin-bar.asj-site .asj-service-scope__heading,
body.admin-bar .asj-site .asj-service-scope__heading,
.admin-bar.asj-site .asj-service-faq__grid > div:first-child,
body.admin-bar .asj-site .asj-service-faq__grid > div:first-child,
.admin-bar.asj-site .asj-project-facts,
body.admin-bar .asj-site .asj-project-facts,
.admin-bar.asj-site .asj-privacy__grid > aside,
body.admin-bar .asj-site .asj-privacy__grid > aside { top: 162px; }

.asj-site .asj-footer__wordmark { width: min(220px, 100%); height: auto; margin-bottom: 30px; }
.asj-site .asj-footer__lead > div:first-child .asj-kicker { margin-bottom: 22px; }
.asj-site .asj-footer .asj-kicker { color: #b8d8e9; }
.asj-site .asj-footer__lead-actions { display: flex; padding-bottom: 7px; align-items: center; gap: 20px; }
.asj-site .asj-footer__contact address { color: rgba(255,255,255,.65); font-size: .77rem; font-style: normal; }
.asj-site .asj-footer__contact { min-width: 0; overflow-wrap: anywhere; }
.asj-site .asj-quote-panel { min-width: 0; }
.asj-site .asj-quote-form { display: grid; gap: 25px; }
.asj-site .asj-quote-form .asj-form-grid { margin: 0; }
.asj-site .asj-contact-preference { display: flex; min-width: 0; margin: 0; padding: 0; flex-wrap: wrap; gap: 10px 24px; border: 0; }
.asj-site .asj-contact-preference legend { width: 100%; margin-bottom: 8px; color: var(--asj-ink); font-family: var(--asj-display); font-size: .63rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.asj-site .asj-contact-preference label { display: inline-flex; min-height: 44px; align-items: center; grid-template-columns: none; gap: 8px; color: var(--asj-slate); font-family: var(--asj-sans); font-size: .78rem; font-weight: 600; letter-spacing: 0; text-transform: none; }
.asj-site .asj-contact-preference input { width: 19px; height: 19px; margin: 0; accent-color: var(--asj-blue); }
.asj-site .asj-form-message { display: grid; gap: 8px; }
.asj-site .asj-call-first { display: grid; margin-bottom: 24px; padding: 20px; gap: 8px; border-left: 4px solid var(--asj-ink); background: var(--asj-orange); color: var(--asj-ink); }
.asj-site .asj-call-first .asj-kicker { margin: 0; color: var(--asj-ink); }
.asj-site .asj-call-first strong { font-family: var(--asj-display); font-size: 1.15rem; }
.asj-site .asj-call-first a { width: fit-content; border-bottom: 1px solid currentColor; font-family: var(--asj-display); font-weight: 700; }
.asj-site .asj-button--primary { border-color: var(--asj-blue); background: var(--asj-blue); color: #fff; }
.asj-site .asj-button--primary:hover { border-color: var(--asj-ink); background: var(--asj-ink); color: #fff; }

/* Content remains visible at all times; interaction must never gate reading. */
.asj-site [data-reveal] { opacity: 1; transform: none; }

@media (max-width: 1180px) {
	.asj-site { --asj-shell: min(100% - 48px, 1480px); --asj-reading: min(100% - 48px, 820px); }
	.asj-site .asj-desktop-nav,
.asj-site .asj-header__call { display: none; }
	.asj-site .asj-header__inner { grid-template-columns: auto 1fr auto; min-height: 78px; }
	.asj-site .asj-header__actions { grid-column: 3; }
	.asj-site .asj-menu-button { display: inline-flex; padding-inline: 14px; gap: 11px; }
	.asj-site .asj-service-index__grid .asj-service-tile:nth-child(n) { min-height: 500px; grid-column: span 6; }
	.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(n) { min-height: 500px; grid-column: span 6; }
	.asj-site .asj-services-systems .asj-service-card:nth-child(n) { grid-column: span 6; }
	.asj-site .asj-services-systems .asj-service-card:nth-child(3),
	.asj-site .asj-services-systems .asj-service-card--support { grid-column: 1 / -1; }
	.asj-site .asj-project-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asj-site .asj-process-steps,
.asj-site .asj-process-steps--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asj-site .asj-values-grid,
.asj-site .asj-contact-guide__grid,
.asj-site .asj-emergency-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asj-site .asj-footer__lead { grid-template-columns: minmax(0, 1fr) auto; }
	.asj-site .asj-footer__lead .asj-button { grid-column: auto; }
}

@media (max-width: 820px) {
	.asj-site { --asj-shell: min(100% - 36px, 1480px); --asj-reading: min(100% - 36px, 820px); --asj-section: clamp(72px, 15vw, 108px); }
	.asj-site .asj-editor-content__inner { grid-template-columns: 1fr; gap: 24px; }
	.asj-site .asj-editor-content__inner > h2 { max-width: none; }
	.asj-site h1 { font-size: clamp(2.65rem, 8vw, 3rem); }
	.asj-site h2 { font-size: clamp(2.15rem, 6.8vw, 2.5rem); }
	.asj-site .asj-emergency-bar__inner { width: 100%; padding-inline: 18px; }
	.asj-site .asj-emergency-bar p { font-size: 0.68rem; }
	.asj-site .asj-emergency-bar a { flex: 0 0 auto; font-size: 0.62rem; }
	.asj-site .asj-header__inner { min-height: 70px; }
	.asj-site .asj-header__logo svg { height: 40px; }
	.asj-site .asj-header__quote { display: none; }
	.asj-site .asj-home-hero { min-height: calc(100svh - 70px); }
	.asj-site .asj-home-hero__content { padding-block: 92px 108px; grid-template-columns: 1fr; align-content: center; align-items: start; gap: 38px; }
	.asj-site .asj-home-hero__content h1 { max-width: 12ch; }
	.asj-site .asj-home-hero::before,
.asj-site .asj-media-scrim { background: linear-gradient(0deg, rgba(7, 27, 50, 0.94) 0%, rgba(7, 27, 50, 0.45) 75%), linear-gradient(90deg, rgba(7, 27, 50, 0.56), transparent); }
	.asj-site .asj-section-heading,
.asj-site .asj-contact-page__grid,
.asj-site .asj-privacy__grid,
.asj-site .asj-contact-strip__inner { grid-template-columns: 1fr; }
	.asj-site .asj-section-heading { gap: 26px; }
	.asj-site .asj-credentials__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asj-site .asj-project-facts,
.asj-site .asj-contact-page__details,
.asj-site .asj-privacy__nav { position: static; }
	.asj-site .asj-contact-page__grid { gap: 48px; }
	.asj-site .asj-contact-strip__inner { min-height: 0; gap: 46px; }
	.asj-site .asj-footer__lead { grid-template-columns: 1fr; }
	.asj-site .asj-footer__lead .asj-button { grid-column: 1; }
	.asj-site .asj-footer__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }

	.asj-site .asj-header__logo .asj-logo,
.asj-site .asj-header__logo > img { width: min(170px, 100%); }
	.asj-site .asj-menu__grid { grid-template-columns: 1fr; gap: 38px; align-content: start; }
	.asj-site .asj-menu__primary a { min-height: 62px; font-size: clamp(1.65rem, 6vw, 2.4rem); }
	.asj-site .asj-menu__services { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
	.asj-site .asj-menu__services > p { grid-column: 1 / -1; }
	.asj-site .asj-home-hero__copy h1,
.asj-site .asj-interior-hero__content h1,
.asj-site .asj-project-hero__content h1,
.asj-site .asj-contact-hero__copy h1,
.asj-site .asj-legal-hero h1 { font-size: clamp(2.65rem, 8vw, 3rem); }
	.asj-site .asj-contact-page__details h2,
.asj-site .asj-contact-page__form-heading h2,
.asj-site .asj-contact-strip h2,
.asj-site .asj-project-story__content > h2,
.asj-site .asj-about-route h2,
.asj-site .asj-footer__lead h2 { font-size: clamp(2.15rem, 6.8vw, 2.5rem); }
	.asj-site .asj-home-hero__folio { width: min(100%, 430px); min-height: 260px; }
	.asj-site .asj-interior-hero { min-height: 590px; }
	.asj-site .asj-interior-hero__content { padding-block: 100px 64px; }
	.asj-site .asj-service-index__grid .asj-service-tile:nth-child(n) { min-height: 470px; grid-column: span 12; }
	.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(n) { min-height: 470px; grid-column: 1 / -1; }
	.asj-site .asj-services-proof__grid { grid-template-columns: 1fr; gap: 45px; }
	.asj-site .asj-services-proof__media { grid-template-rows: repeat(2,330px); }
	.asj-site .asj-services-systems .asj-service-card:nth-child(n) { grid-column: 1 / -1; }
	.asj-site .asj-services-systems .asj-service-card--support { grid-template-columns: 1fr; grid-template-rows: 320px auto; }
	.asj-site .asj-services-systems__note { align-items: flex-start; flex-direction: column; gap: 8px; }
	.asj-site .asj-home-story__heading { grid-template-columns: 1fr; gap: 30px; }
	.asj-site .asj-home-story__gallery { grid-template-rows: 520px 360px; }
	.asj-site .asj-home-story__image--wide { grid-column: 1 / -1; grid-row: 1; }
	.asj-site .asj-home-story__image:not(.asj-home-story__image--wide) { grid-column: span 6; grid-row: 2; }
	.asj-site .asj-home-story__note { grid-column: 1 / -1; grid-row: 1; }
	.asj-site .asj-home-proof__grid { grid-template-columns: 1fr; gap: 50px; }
	.asj-site .asj-home-proof__media { min-height: 620px; }
	.asj-site .asj-home-proof__statement,
.asj-site .asj-home-contact__grid > div:first-child,
.asj-site .asj-inline-enquiry__grid > div:first-child,
.asj-site .asj-service-scope__heading,
.asj-site .asj-service-faq__grid > div:first-child { position: static; }
	.asj-site .asj-project-preview-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
	.asj-site .asj-project-preview-grid .asj-project-card { min-height: 480px; }
	.asj-site .asj-project-preview-grid .asj-project-card:nth-child(n) { grid-column: auto; grid-row: auto; }
	.asj-site .asj-project-preview-grid .asj-project-card:first-child { grid-column: 1 / -1; }
	.asj-site .asj-real-work-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asj-site .asj-real-work-strip figure { min-height: 380px; }
	.asj-site .asj-real-work-strip figure:nth-child(2) { margin-top: 36px; }
	.asj-site .asj-real-work-strip figure:nth-child(3) { grid-column: 1 / -1; }
	.asj-site .asj-insurance-feature { min-height: 0; grid-template-columns: 1fr; }
	.asj-site .asj-insurance-feature__media { min-height: 540px; }
	.asj-site .asj-service-area__grid { grid-template-columns: 1fr; gap: 40px; }
	.asj-site .asj-service-area__marker { min-height: 230px; }
	.asj-site .asj-home-contact__grid,
.asj-site .asj-inline-enquiry__grid { grid-template-columns: 1fr; gap: 48px; }
	.asj-site .asj-services-lane__heading { grid-template-columns: 1fr; gap: 16px; }
	.asj-site .asj-services-lane .asj-services-grid { grid-template-columns: 1fr; }
	.asj-site .asj-service-intro__grid,
.asj-site .asj-projects-intro__grid,
.asj-site .asj-about-intro__grid,
.asj-site .asj-emergency-intro__grid,
.asj-site .asj-service-scope__grid,
.asj-site .asj-service-faq__grid,
.asj-site .asj-project-brief__grid,
.asj-site .asj-project-story__grid,
.asj-site .asj-emergency-safety__grid,
.asj-site .asj-contact-hero__grid { grid-template-columns: 1fr; }
	.asj-site .asj-service-intro__grid > div:last-child,
.asj-site .asj-projects-intro__grid > div:last-child,
.asj-site .asj-about-intro__grid > div:last-child,
.asj-site .asj-emergency-intro__grid > div:last-child { padding-top: 0; }
	.asj-site .asj-service-editorial { grid-template-columns: 1fr; }
	.asj-site .asj-service-editorial__media { min-height: 520px; }
	.asj-site .asj-related-services__rail { grid-template-columns: repeat(2,minmax(0,1fr)); }
	.asj-site .asj-related-service:last-child { grid-column: 1 / -1; min-height: 420px; }
	.asj-site .asj-process-steps,
.asj-site .asj-process-steps--three { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asj-site .asj-project-masonry { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
	.asj-site .asj-project-masonry .asj-project-card:nth-child(n) { min-height: 500px; grid-column: auto; grid-row: auto; }
	.asj-site .asj-project-facts { position: static; }
	.asj-site .asj-project-gallery__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: auto; }
	.asj-site .asj-project-gallery__grid figure:nth-child(n) { min-height: 420px; grid-column: auto; grid-row: auto; }
	.asj-site .asj-values-grid,
.asj-site .asj-contact-guide__grid,
.asj-site .asj-emergency-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asj-site .asj-about-routes__grid { grid-template-columns: 1fr; }
	.asj-site .asj-about-route { min-height: 390px; border-right: 0; border-bottom: 1px solid var(--asj-line); }
	.asj-site .asj-about-route:last-child { border-bottom: 0; }
	.asj-site .asj-about-next__grid { grid-template-columns: 1fr; gap: 46px; }
	.asj-site .asj-about-next__media { min-height: 560px; }
	.asj-site .asj-emergency-safety__grid > div:first-child { min-height: 520px; }
	.asj-site .asj-contact-hero__grid { gap: 44px; }
	.asj-site .asj-contact-hero__project { min-height: 500px; }
	.asj-site .asj-contact-hero__emergency { max-width: 520px; }
	.asj-site .asj-contact-image-band { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.asj-site .asj-contact-image-band figure { min-height: 360px; }
	.asj-site .asj-contact-image-band figure:nth-child(2) { min-height: 410px; margin-top: -26px; }
	.asj-site .asj-contact-image-band figure:nth-child(3) { grid-column: 1 / -1; }
	.asj-site .asj-privacy__grid > aside { position: static; }
	.asj-site .asj-footer__lead-actions { padding-bottom: 0; justify-content: flex-start; }
}

@media (max-width: 520px) {
	.asj-site { --asj-shell: calc(100% - 28px); --asj-reading: calc(100% - 28px); font-size: 15px; }
	.asj-site h1 { font-size: clamp(2.55rem, 12vw, 3rem); line-height: 0.96; }
	.asj-site h2 { font-size: clamp(2.05rem, 9.5vw, 2.5rem); }
	.asj-site .asj-emergency-bar__inner { min-height: 48px; }
	.asj-site .asj-emergency-bar p { max-width: 23ch; font-size: 0.62rem; line-height: 1.35; }
	.asj-site .asj-emergency-bar a span { display: none; }
	.asj-site .asj-header__inner { min-height: 66px; gap: 10px; }
	.asj-site .asj-header__logo { min-width: 0; }
	.asj-site .asj-header__logo svg { max-width: 154px; height: 36px; }
	.asj-site .asj-menu-button { width: 46px; padding: 0; }
	.asj-site .asj-menu-button > span { display: none; }
	.asj-site .asj-menu__inner { padding-block: 18px 28px; }
	.asj-site .asj-home-hero { min-height: max(650px, calc(100svh - 66px)); }
	.asj-site .asj-home-hero__content { padding-block: 72px 100px; gap: 28px; }
	.asj-site .asj-home-hero__content > p:not(.asj-kicker) { font-size: 0.93rem; }
	.asj-site .asj-button-row { align-items: stretch; flex-direction: column; }
	.asj-site .asj-button-row .asj-button,
.asj-site .asj-button-row .asj-text-link { width: 100%; }
	.asj-site .asj-credentials__grid { grid-template-columns: 1fr; }
	.asj-site .asj-credential,
.asj-site .asj-stat { min-height: 112px; }
	.asj-site .asj-form-grid { grid-template-columns: 1fr; }
	.asj-site .asj-form-grid > * { grid-column: 1 !important; }
	.asj-site .asj-enquiry-panel,
.asj-site .asj-contact-page__form { padding: 28px 18px; }
	.asj-site .asj-contact-methods a { grid-template-columns: 1fr auto; gap: 7px 12px; }
	.asj-site .asj-contact-methods span,
.asj-site .asj-contact-methods small { grid-column: 1 / -1; }
	.asj-site .asj-contact-strip__links a { align-items: flex-start; flex-direction: column; gap: 4px; }
	.asj-site .asj-contact-strip__links strong { text-align: left; }
	.asj-site .asj-project-facts > div { grid-template-columns: 80px minmax(0, 1fr); }
	.asj-site .asj-footer__grid { grid-template-columns: 1fr; }
	.asj-site .asj-footer__base { align-items: flex-start; flex-direction: column; gap: 8px; }
	.asj-site .asj-cookie-banner,
.asj-site .asj-cookie-panel,
.asj-site .cookie-notice-container { right: 10px; bottom: 82px; width: calc(100% - 20px); padding: 20px; }
	.asj-site .asj-mobile-actions { position: fixed; right: 0; bottom: 0; left: 0; z-index: 900; display: grid; min-height: 68px; grid-template-columns: 1fr 1fr; box-shadow: 0 -8px 22px rgba(7, 27, 50, 0.16); }
	.asj-site .asj-mobile-actions a { display: grid; min-width: 0; min-height: 68px; padding: 10px 14px; align-content: center; justify-items: start; background: var(--asj-ink); color: #fff; }
	.asj-site .asj-mobile-actions a:first-child { background: var(--asj-orange); color: var(--asj-ink); }
	.asj-site .asj-mobile-actions span { font-family: var(--asj-display); font-size: 0.56rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
	.asj-site .asj-mobile-actions strong { max-width: 100%; font-size: 0.75rem; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.asj-site .asj-footer { padding-bottom: 98px; }

	.asj-site .asj-header__logo .asj-logo,
.asj-site .asj-header__logo > img { width: min(150px, 100%); }
	.asj-site .asj-menu__logo .asj-logo,
.asj-site .asj-menu__logo > img { width: min(156px, 100%); }
	.asj-site .asj-menu__top { align-items: center; }
	.asj-site .asj-menu__grid { gap: 30px; }
	.asj-site .asj-menu__primary a { min-height: 58px; font-size: 1.85rem; }
	.asj-site .asj-menu__services { grid-template-columns: 1fr; }
	.asj-site .asj-menu__contact { grid-template-columns: 1fr; }
	.asj-site .asj-emergency-bar__inner p em { display: none; }
	.asj-site .asj-home-hero__copy h1,
.asj-site .asj-interior-hero__content h1,
.asj-site .asj-project-hero__content h1,
.asj-site .asj-contact-hero__copy h1,
.asj-site .asj-legal-hero h1 { font-size: clamp(2.55rem, 12vw, 3rem); }
	.asj-site .asj-home-hero__folio { min-height: 220px; padding: 20px; }
	.asj-site .asj-service-index__grid .asj-service-tile:nth-child(n) { min-height: 390px; grid-column: span 12; }
	.asj-site .asj-services-lane--improvements .asj-service-card:nth-child(n) { min-height: 410px; }
	.asj-site .asj-services-lane--improvements .asj-service-card__copy { width: calc(100% - 24px); margin: auto 12px 12px; padding: 20px; }
	.asj-site .asj-services-proof__media { display: grid; grid-template-columns: 1fr; grid-template-rows: none; }
	.asj-site .asj-services-proof__media figure:nth-child(n) { min-height: 330px; grid-row: auto; }
	.asj-site .asj-services-systems .asj-service-card { min-height: 460px; }
	.asj-site .asj-services-systems .asj-service-card--support { grid-template-rows: 260px auto; }
	.asj-site .asj-services-systems .asj-service-card--support .asj-service-card__media { min-height: 260px; }
	.asj-site .asj-services-systems .asj-service-card--support .asj-service-card__copy { min-height: 260px; padding: 26px 20px; }
	.asj-site .asj-service-tile__copy { width: calc(100% - 24px); margin: 0 12px 12px; padding: 20px 66px 20px 20px; }
	.asj-site .asj-service-tile__copy > .asj-action-icon { right: 20px; bottom: 22px; }
	.asj-site .asj-home-story__gallery { display: grid; grid-template-columns: 1fr; grid-template-rows: none; }
	.asj-site .asj-home-story__image:nth-child(n) { min-height: 350px; grid-column: 1; grid-row: auto; }
	.asj-site .asj-home-story__note { position: absolute; right: 12px; bottom: 12px; left: 12px; width: auto; margin: 0; }
	.asj-site .asj-home-proof__media { min-height: 430px; }
	.asj-site .asj-service-index__grid { display: flex; margin-right: -14px; padding: 0 14px 12px 0; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-color: var(--asj-orange) transparent; }
	.asj-site .asj-service-index__grid .asj-service-tile:nth-child(n) { min-height: 430px; flex: 0 0 84vw; scroll-snap-align: start; }
	.asj-site .asj-project-preview-grid { display: flex; margin-right: -14px; padding: 0 14px 12px 0; overflow-x: auto; gap: 12px; scroll-snap-type: x mandatory; scrollbar-color: var(--asj-orange) transparent; }
	.asj-site .asj-project-preview-grid .asj-project-card:nth-child(n) { min-height: 460px; flex: 0 0 84vw; grid-column: auto; grid-row: auto; scroll-snap-align: start; }
	.asj-site .asj-real-work-strip { grid-template-columns: 1fr; }
	.asj-site .asj-real-work-strip figure:nth-child(n) { min-height: 350px; margin-top: 0; grid-column: auto; }
	.asj-site .asj-insurance-feature__media,
.asj-site .asj-service-editorial__media { min-height: 390px; }
	.asj-site .asj-insurance-feature__copy,
.asj-site .asj-service-editorial__copy { padding: 48px 20px; }
	.asj-site .asj-service-area__marker { min-height: 210px; padding: 22px; }
	.asj-site .asj-service-area__marker strong { font-size: 5.5rem; }
	.asj-site .asj-services-lane .asj-service-card:nth-child(n) { min-height: 470px; grid-template-rows: minmax(230px, 1fr) auto; }
	.asj-site .asj-services-lane .asj-service-card__copy { min-height: 210px; padding: 22px 20px; }
	.asj-site .asj-services-lane__action { align-items: flex-start; flex-direction: column; }
	.asj-site .asj-related-services__rail { grid-template-columns: 1fr; }
	.asj-site .asj-related-service:nth-child(n) { min-height: 390px; grid-column: auto; }
	.asj-site .asj-service-scope__list li { grid-template-columns: 48px 1fr; }
	.asj-site .asj-process-steps,
.asj-site .asj-process-steps--three { grid-template-columns: 1fr; }
	.asj-site .asj-process-steps article { min-height: 270px; }
	.asj-site .asj-project-masonry { grid-template-columns: 1fr; gap: 14px; }
	.asj-site .asj-project-masonry .asj-project-card:nth-child(n) { min-height: 470px; }
	.asj-site .asj-project-gallery__grid { grid-template-columns: 1fr; }
	.asj-site .asj-project-gallery__grid figure:nth-child(n) { min-height: 360px; }
	.asj-site .asj-values-grid,
.asj-site .asj-contact-guide__grid,
.asj-site .asj-emergency-types { grid-template-columns: 1fr; }
	.asj-site .asj-values-grid article,
.asj-site .asj-contact-guide__grid article,
.asj-site .asj-emergency-types article { min-height: 250px; }
	.asj-site .asj-emergency-safety__grid > div:first-child { min-height: 390px; }
	.asj-site .asj-about-next__media { min-height: 420px; }
	.asj-site .asj-about-next__actions { align-items: stretch; flex-direction: column; }
	.asj-site .asj-about-next__actions .asj-button,
	.asj-site .asj-about-next__actions .asj-text-link { width: 100%; }
	.asj-site .asj-contact-hero__emergency > span { font-size: 3.5rem; }
	.asj-site .asj-contact-hero__project { min-height: 440px; }
	.asj-site .asj-contact-hero__project > div { margin: auto 12px 12px; padding: 20px; }
	.asj-site .asj-contact-image-band { grid-template-columns: 1fr; }
	.asj-site .asj-contact-image-band figure:nth-child(n) { min-height: 330px; margin-top: 0; grid-column: auto; }
	.asj-site .asj-footer__lead-actions { width: 100%; align-items: stretch; flex-direction: column; }
	.asj-site .asj-footer__lead-actions .asj-button,
.asj-site .asj-footer__lead-actions .asj-text-link { width: 100%; }
	.asj-site .asj-mobile-actions small,
.asj-site .asj-mobile-actions span { font-family: var(--asj-display); font-size: 0.56rem; font-weight: 700; letter-spacing: 0.09em; text-transform: uppercase; }
}

@media (max-width: 360px) {
	.asj-site { --asj-shell: calc(100% - 22px); --asj-reading: calc(100% - 22px); }
	.asj-site h1 { font-size: 3rem; }
	.asj-site .asj-header__logo .asj-logo,
	.asj-site .asj-header__logo > img { width: min(140px, 100%); }
	.asj-site .asj-emergency-bar p { max-width: 18ch; }
}

@media (max-width: 782px) {
	.admin-bar.asj-site .asj-header,
body.admin-bar .asj-site .asj-header { top: 46px; }
	.admin-bar.asj-site .asj-menu,
body.admin-bar .asj-site .asj-menu { top: 46px; height: calc(100dvh - 46px); }
}

@media (prefers-reduced-motion: reduce) {
	.asj-site *,
.asj-site *::before,
.asj-site *::after { scroll-behavior: auto !important; animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
	.asj-site.asj-reveal-ready [data-reveal] { opacity: 1 !important; transform: none !important; }
}

@media print {
	.asj-site { background: #fff !important; color: #000 !important; font-family: Arial, sans-serif; font-size: 11pt; }
	.asj-site .asj-emergency-bar,
.asj-site .asj-header,
.asj-site .asj-menu,
.asj-site .asj-mobile-actions,
.asj-site .asj-cookie-banner,
.asj-site .asj-cookie-panel,
.asj-site .asj-footer,
.asj-site .asj-button,
.asj-site .asj-button-row,
.asj-site .asj-contact-strip { display: none !important; }
	.asj-site [data-reveal] { opacity: 1 !important; transform: none !important; }
	.asj-site .asj-main,
.asj-site .asj-site-frame,
.asj-site .asj-section { padding: 0 !important; background: #fff !important; color: #000 !important; overflow: visible !important; }
	.asj-site .asj-dark-section,
.asj-site .asj-home-hero,
.asj-site .asj-interior-hero,
.asj-site .asj-project-hero,
.asj-site .asj-contact-hero,
.asj-site .asj-legal-hero { min-height: 0 !important; padding: 18pt 0 !important; background: #fff !important; color: #000 !important; }
	.asj-site .asj-dark-section p { color: #000 !important; }
	.asj-site .asj-home-hero__media,
.asj-site .asj-interior-hero__media,
.asj-site .asj-project-hero__media,
.asj-site .asj-media-scrim { display: none !important; }
	.asj-site .asj-home-hero__content,
.asj-site .asj-interior-hero__content,
.asj-site .asj-project-hero__content { display: block !important; width: 100% !important; padding: 0 !important; }
	.asj-site h1,
.asj-site h2,
.asj-site h3 { color: #000 !important; font-family: Arial, sans-serif; break-after: avoid; }
	.asj-site img { max-height: 140mm; object-fit: contain !important; break-inside: avoid; }
	.asj-site a[href]::after { content: " (" attr(href) ")"; font-size: 8pt; font-weight: 400; }
	.asj-site .asj-contact-page__grid,
.asj-site .asj-privacy__grid { display: block; }
}
