/**
 * Contact Page Lab.
 *
 * Renders inside BeTheme's #Wrapper, so element rules from the theme
 * (h1-h4 sizes, a global `h3{font-size:28px!important}`, input widths,
 * button padding, a:hover colours) tie or beat plain class selectors.
 * Anything the theme also styles is re-asserted with !important on purpose.
 */

.impact-contact-lab {
	--ic-red: #b8342f;
	--ic-red-hover: #d20000;
	--ic-orange: #d9850e;
	--ic-teal: #0683e8;
	--ic-deep: #151a1f;
	--ic-green: #0e803b;
	--ic-slate: #4e555d;
	--ic-surface: #f1f4f6;
	--ic-bg: #fcfcfc;
	--ic-muted: #6b7480;
	--ic-faint: #9a9184;
	--ic-line: #ede9e2;
	--ic-line-strong: #e4ded4;
	--ic-gutter: 64px;
	/* BeTheme caps every other page's content at 1420px (.section_wrapper).
	   Match it, or this page runs full-bleed and reads as a different site
	   on a wide monitor. */
	--ic-max: 1420px;
	/* How far the content column sits from the viewport edge. Mirrors the
	   section padding, so a panel can bleed its background out to the edge
	   while its text stays aligned with every other section. */
	--ic-bleed: max(var(--ic-gutter), (100vw - var(--ic-max)) / 2);
	--ic-hero-bg: linear-gradient(135deg, #0683e8, #0667cd 55%, #151a1f);
	--ic-hero-size: auto;
	--ic-hero-position: center;
	--ic-hero-text: #fff;
	--ic-hero-soft: rgba(255, 255, 255, .82);
	--ic-hero-mute: rgba(255, 255, 255, .68);
	--ic-hero-faint: rgba(255, 255, 255, .58);
	--ic-hero-hair: rgba(255, 255, 255, .14);
	--ic-hero-ghost: rgba(255, 255, 255, .5);
	--ic-hero-ghost-bg: rgba(255, 255, 255, .12);
	--ic-hero-panel: rgba(255, 255, 255, .07);
	--ic-hero-line: rgba(255, 255, 255, .16);

	background: var(--ic-bg);
	color: var(--ic-slate);
	font-family: 'IBM Plex Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	overflow-x: clip;
}

.impact-contact-lab * {
	box-sizing: border-box;
}

.impact-contact-lab .impact-contact-lab__sections > section {
	/* The horizontal padding grows on wide screens so the content column
	   stays at --ic-max while section backgrounds still bleed edge to edge. */
	padding-inline: max(var(--ic-gutter), calc((100% - var(--ic-max)) / 2));
}

.impact-contact-lab h1,
.impact-contact-lab h2,
.impact-contact-lab h3,
.impact-contact-lab h4 {
	color: var(--ic-slate);
	font-family: inherit;
	letter-spacing: -.01em;
	margin: 0 !important;
	padding: 0 !important;
	text-transform: none !important;
}

.impact-contact-lab p {
	margin: 0 !important;
	padding: 0 !important;
}

.impact-contact-lab a {
	color: var(--ic-teal);
	text-decoration: none;
}

.impact-contact-lab a:hover {
	color: var(--ic-red);
}

.impact-contact-mono,
.impact-contact-lab .impact-contact-mono {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
}

.impact-contact-icon {
	display: block;
	fill: none;
	flex: 0 0 auto;
	overflow: visible;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 1.7;
}

/* ------------------------------------------------------------------ bits */

.impact-contact-eyebrow {
	display: block;
	font-size: 12px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.impact-contact-tab {
	align-self: flex-start;
	border-radius: 4px;
	color: #fff !important;
	display: inline-block;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .12em;
	padding: 5px 12px;
	text-transform: uppercase;
}

.impact-contact-tab--svc {
	background: linear-gradient(135deg, var(--ic-teal), var(--ic-deep) 55%, var(--ic-deep));
}

.impact-contact-tab--shop {
	background: linear-gradient(135deg, var(--ic-red), var(--ic-orange) 70%, #ffb020);
}

.impact-contact-tab--light {
	background: rgba(255, 255, 255, .16);
}

.impact-contact-rule {
	background: var(--ic-red);
	display: block;
	height: 2px;
	margin-top: 10px;
	width: 26px;
}

.impact-contact-lab .impact-contact-button {
	align-items: center;
	border: 0 !important;
	border-radius: 6px !important;
	cursor: pointer;
	display: inline-flex !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	gap: 8px !important;
	justify-content: center;
	line-height: 1.3 !important;
	margin: 0 !important;
	padding: 12px 22px !important;
	text-align: center;
	text-transform: none !important;
	transition: background .15s, color .15s, box-shadow .15s;
	width: auto !important;
}

.impact-contact-lab .impact-contact-button--red {
	background: var(--ic-red) !important;
	color: #fff !important;
}

.impact-contact-lab .impact-contact-button--red:hover {
	background: var(--ic-red-hover) !important;
	color: #fff !important;
}

.impact-contact-lab .impact-contact-button--ghost {
	background: transparent !important;
	box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .55);
	color: #fff !important;
}

.impact-contact-lab .impact-contact-button--ghost:hover {
	background: rgba(255, 255, 255, .12) !important;
	color: #fff !important;
}

.impact-contact-lab .impact-contact-hero .impact-contact-button--ghost {
	box-shadow: inset 0 0 0 1.5px var(--ic-hero-ghost);
	color: var(--ic-hero-text) !important;
}

.impact-contact-lab .impact-contact-hero .impact-contact-button--ghost:hover {
	background: var(--ic-hero-ghost-bg) !important;
	color: var(--ic-hero-text) !important;
}

.impact-contact-lab .impact-contact-button--teal {
	background: var(--ic-deep) !important;
	color: #fff !important;
}

.impact-contact-lab .impact-contact-button--teal:hover {
	background: var(--ic-teal) !important;
	color: #fff !important;
}

.impact-contact-lab .impact-contact-button--line {
	background: #fff !important;
	box-shadow: inset 0 0 0 1.5px var(--ic-line-strong);
	color: var(--ic-slate) !important;
}

.impact-contact-lab .impact-contact-button--line:hover {
	box-shadow: inset 0 0 0 1.5px var(--ic-red);
	color: var(--ic-red) !important;
}

.impact-contact-heading-row {
	align-items: flex-end;
	display: flex;
	gap: 24px;
	justify-content: space-between;
	margin-bottom: 28px;
}

.impact-contact-heading-row h2 {
	font-size: 30px !important;
	font-weight: 600 !important;
	margin-top: 10px !important;
}

.impact-contact-heading-row > a {
	flex: 0 0 auto;
	font-size: 14px;
	font-weight: 500;
}

/* ------------------------------------------------------------------ hero */

.impact-contact-lab .impact-contact-hero {
	background: var(--ic-hero-bg);
	background-position: var(--ic-hero-position);
	background-repeat: no-repeat;
	background-size: var(--ic-hero-size);
	color: var(--ic-hero-text);
	/* Vertical padding stays at zero, but the inline padding comes from the
	   shared section rule so the hero copy lines up with every other section
	   while the background still bleeds edge to edge. */
	padding-block: 0 !important;
}

.impact-contact-hero__inner {
	align-items: stretch;
	display: grid;
	grid-template-columns: 1.12fr .88fr;
}

.impact-contact-hero__main {
	display: flex;
	flex-direction: column;
	padding: 54px 48px 60px 0;
}

.impact-contact-lab .impact-contact-hero__main .impact-contact-eyebrow {
	color: var(--ic-hero-faint);
}

.impact-contact-lab .impact-contact-hero h1 {
	color: var(--ic-hero-text) !important;
	font-size: 44px !important;
	font-weight: 700 !important;
	line-height: 1.12 !important;
	margin-top: 14px !important;
}

.impact-contact-hero__sub {
	color: var(--ic-hero-soft);
	font-size: 16.5px;
	line-height: 1.6;
	margin-top: 14px !important;
	max-width: 460px;
}

.impact-contact-call {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-top: auto;
	padding-top: 34px;
}

.impact-contact-call__label {
	color: var(--ic-hero-faint);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
}

.impact-contact-lab .impact-contact-call b {
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 52px;
	font-weight: 500;
	letter-spacing: -.02em;
	line-height: 1.1;
}

.impact-contact-lab .impact-contact-call a {
	color: var(--ic-hero-text) !important;
}

.impact-contact-call__email {
	align-items: center;
	color: var(--ic-hero-soft);
	display: flex;
	font-size: 16px;
	gap: 10px;
	margin-top: 8px;
}

.impact-contact-call__note {
	color: var(--ic-hero-faint);
	font-size: 13px;
	margin-top: 10px !important;
	max-width: 460px;
}

.impact-contact-hero__panel {
	background: var(--ic-hero-panel);
	border-left: 1px solid var(--ic-hero-line);
	display: flex;
	flex-direction: column;
	gap: 18px;
	/* Negative margin + matching padding pushes the panel's background out to the
	   right edge of the screen while its content stays in the content column;
	   without it the panel ends mid-gradient and reads as a cut-off hero. */
	margin-right: calc(-1 * var(--ic-bleed));
	padding: 44px var(--ic-bleed) 44px 44px;
}

.impact-contact-lab .impact-contact-hero__panel h2 {
	color: var(--ic-hero-text) !important;
	font-size: 19px !important;
	font-weight: 600 !important;
}

.impact-contact-hero__address {
	color: var(--ic-hero-soft);
	font-size: 14.5px;
	line-height: 1.65;
	margin-top: 6px !important;
}

.impact-contact-status {
	align-items: center;
	align-self: flex-start;
	background: rgba(14, 128, 59, .18);
	border: 1px solid rgba(14, 128, 59, .5);
	border-radius: 99px;
	color: var(--ic-hero-text);
	display: inline-flex;
	font-size: 12.5px;
	font-weight: 500;
	gap: 8px;
	padding: 6px 14px;
}

.impact-contact-status i {
	background: var(--ic-green);
	border-radius: 50%;
	box-shadow: 0 0 0 4px rgba(14, 128, 59, .25);
	display: block;
	flex: 0 0 auto;
	height: 7px;
	width: 7px;
}

.impact-contact-status.is-shut {
	background: var(--ic-hero-ghost-bg);
	border-color: var(--ic-hero-ghost);
}

.impact-contact-status.is-shut i {
	background: #ffb020;
	box-shadow: none;
}

.impact-contact-hero__hours {
	border-top: 1px solid var(--ic-hero-line);
}

.impact-contact-hero__hours div {
	border-bottom: 1px solid var(--ic-hero-hair);
	color: var(--ic-hero-mute);
	display: flex;
	font-size: 13px;
	gap: 16px;
	justify-content: space-between;
	padding: 8px 0;
}

.impact-contact-hero__hours div span:last-child {
	color: var(--ic-hero-text);
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
}

.impact-contact-hero__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: auto;
}

/* ---------------------------------------------------------------- routes */

.impact-contact-lab .impact-contact-routes {
	margin-top: 38px;
	position: relative;
	z-index: 2;
}

.impact-contact-routes__intro {
	margin-bottom: 20px;
}

.impact-contact-routes__intro h2 {
	font-size: 26px !important;
	font-weight: 600 !important;
	margin-top: 10px !important;
}

.impact-contact-routes__grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(4, 1fr);
}

.impact-contact-route {
	background: #fff;
	border: 1px solid var(--ic-line);
	border-radius: 6px;
	box-shadow: 0 14px 34px rgba(11, 26, 33, .14);
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding: 22px 22px 24px;
	transition: box-shadow .18s, transform .18s;
}

.impact-contact-route:hover {
	box-shadow: 0 12px 28px rgba(11, 26, 33, .12);
	transform: translateY(-3px);
}

.impact-contact-route__icon {
	align-items: center;
	background: var(--ic-deep);
	border-radius: 6px;
	color: #fff;
	display: flex;
	height: 34px;
	justify-content: center;
	margin-bottom: 6px;
	width: 34px;
}

.impact-contact-route.is-product .impact-contact-route__icon {
	background: linear-gradient(135deg, var(--ic-red), var(--ic-orange) 70%, #ffb020);
}

.impact-contact-lab .impact-contact-route h3 {
	font-size: 16.5px !important;
	font-weight: 600 !important;
}

.impact-contact-route p {
	color: var(--ic-muted);
	font-size: 13.5px;
	line-height: 1.55;
}

.impact-contact-route__link {
	font-size: 14px;
	margin-top: 8px;
}

.impact-contact-route__link a {
	font-weight: 500;
}

.impact-contact-route__hint {
	align-items: center;
	color: var(--ic-faint) !important;
	display: flex;
	font-size: 12px !important;
	gap: 6px;
	margin-top: auto !important;
	padding-top: 12px !important;
}

.impact-contact-route__hint i {
	background: var(--ic-green);
	border-radius: 50%;
	display: block;
	flex: 0 0 auto;
	height: 6px;
	width: 6px;
}

/* ------------------------------------------------------------------ form */

.impact-contact-lab .impact-contact-form-section {
	align-items: start;
	display: grid;
	gap: 24px;
	grid-template-columns: 1.05fr .95fr;
	padding-bottom: var(--ic-gutter);
	padding-top: var(--ic-gutter);
}

.impact-contact-form {
	background: linear-gradient(135deg, var(--ic-teal), var(--ic-deep) 55%, var(--ic-deep));
	border-radius: 8px;
	color: #fff;
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 34px;
}

.impact-contact-lab .impact-contact-form h2 {
	color: #fff !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
}

.impact-contact-form__sub {
	color: rgba(255, 255, 255, .8);
	font-size: 13.5px;
}

.impact-contact-form__fine {
	color: rgba(255, 255, 255, .55);
	font-size: 11.5px;
	line-height: 1.5;
}

/* Contact Form 7, restyled for the dark card without touching its markup. */
.impact-contact-form__body p {
	margin: 0 0 12px !important;
}

.impact-contact-form__body label {
	color: rgba(255, 255, 255, .65) !important;
	display: block;
	font-size: 11px !important;
	font-weight: 500 !important;
	letter-spacing: .1em;
	margin-bottom: 6px !important;
	text-transform: uppercase;
}

.impact-contact-lab .impact-contact-form__body input[type="text"],
.impact-contact-lab .impact-contact-form__body input[type="email"],
.impact-contact-lab .impact-contact-form__body input[type="tel"],
.impact-contact-lab .impact-contact-form__body input[type="url"],
.impact-contact-lab .impact-contact-form__body input[type="number"],
.impact-contact-lab .impact-contact-form__body select,
.impact-contact-lab .impact-contact-form__body textarea {
	background: rgba(255, 255, 255, .1) !important;
	border: 1px solid rgba(255, 255, 255, .25) !important;
	border-radius: 6px !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
	color: #fff !important;
	font-family: inherit !important;
	font-size: 14px !important;
	margin: 0 !important;
	padding: 11px 14px !important;
	width: 100% !important;
}

.impact-contact-form__body textarea {
	min-height: 110px;
	resize: vertical;
}

.impact-contact-form__body ::placeholder {
	color: rgba(255, 255, 255, .5);
	opacity: 1;
}

.impact-contact-form__body select option {
	color: var(--ic-slate);
}

.impact-contact-lab .impact-contact-form__body input[type="checkbox"],
.impact-contact-lab .impact-contact-form__body input[type="radio"] {
	accent-color: #fff;
	height: 16px !important;
	margin: 0 8px 0 0 !important;
	width: 16px !important;
}

.impact-contact-form__body .wpcf7-list-item {
	margin: 0 14px 0 0 !important;
}

.impact-contact-form__body .wpcf7-list-item-label {
	color: rgba(255, 255, 255, .8);
	font-size: 13px;
}

.impact-contact-lab .impact-contact-form__body input[type="submit"],
.impact-contact-lab .impact-contact-form__body button[type="submit"] {
	background: var(--ic-red) !important;
	border: 0 !important;
	border-radius: 6px !important;
	color: #fff !important;
	cursor: pointer;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	padding: 12px 22px !important;
	text-transform: none !important;
	width: auto !important;
}

.impact-contact-lab .impact-contact-form__body input[type="submit"]:hover,
.impact-contact-lab .impact-contact-form__body button[type="submit"]:hover {
	background: var(--ic-red-hover) !important;
}

.impact-contact-form__body .wpcf7-not-valid-tip {
	color: #ffd7d7 !important;
	font-size: 12px;
}

.impact-contact-form__body .wpcf7-response-output {
	border-color: rgba(255, 255, 255, .4) !important;
	color: #fff;
	font-size: 13px;
	margin: 12px 0 0 !important;
}

.impact-contact-form__body .wpcf7-spinner {
	filter: brightness(2);
}

/* ------------------------------------------------------------ side panels */

.impact-contact-side {
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.impact-contact-panel {
	background: #fff;
	border: 1px solid var(--ic-line);
	border-radius: 8px;
	padding: 26px;
}

.impact-contact-panel--warm {
	background: var(--ic-surface);
	border-color: var(--ic-line-strong);
}

.impact-contact-lab .impact-contact-panel h3 {
	font-size: 18px !important;
	font-weight: 600 !important;
}

.impact-contact-lab .impact-contact-panel h4 {
	font-size: 16px !important;
	font-weight: 600 !important;
	margin-top: 22px !important;
}

.impact-contact-lab .impact-contact-panel .impact-contact-tab + h3 {
	margin-top: 12px !important;
}

.impact-contact-panel__address {
	color: #5a6472;
	font-size: 14.5px;
	line-height: 1.7;
	margin-top: 12px !important;
}

.impact-contact-panel--warm p {
	color: var(--ic-muted);
	font-size: 13.5px;
	line-height: 1.6;
	margin-top: 8px !important;
}

.impact-contact-panel--warm .impact-contact-button {
	margin-top: 16px !important;
}

.impact-contact-panel__buttons {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 16px;
}

.impact-contact-panel__note {
	color: var(--ic-faint);
	font-size: 12.5px;
	line-height: 1.55;
	margin-top: 12px !important;
}

.impact-contact-hours {
	border-top: 1px solid var(--ic-line);
	margin-top: 6px;
}

.impact-contact-hours div {
	border-bottom: 1px solid var(--ic-line);
	display: flex;
	font-size: 13.5px;
	gap: 16px;
	justify-content: space-between;
	padding: 9px 0;
}

.impact-contact-hours div span:first-child {
	color: var(--ic-muted);
}

.impact-contact-hours div span:last-child {
	color: var(--ic-slate);
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
}

.impact-contact-hours div.is-now {
	background: #f4faf2;
	border-radius: 4px;
	margin: 0 -8px;
	padding: 9px 8px;
}

.impact-contact-hours div.is-now span:last-child {
	color: var(--ic-green);
	font-weight: 500;
}

/* ------------------------------------------------------------------- map */

.impact-contact-lab .impact-contact-map-section {
	/* Both sides, like every other section. It carried only padding-bottom, so the "Getting to…"
	   heading sat hard against the cards of the section above it — the reported overlap. */
	padding-bottom: var(--ic-gutter);
	padding-top: var(--ic-gutter);
}

.impact-contact-map-grid {
	align-items: stretch;
	display: grid;
	gap: 20px;
	grid-template-columns: 1fr 320px;
}

.impact-contact-map {
	background: #edeae3;
	border: 1px solid var(--ic-line-strong);
	border-radius: 8px;
	height: 460px;
	overflow: hidden;
	position: relative;
}

.impact-contact-map iframe {
	border: 0;
	display: block;
	filter: saturate(.85);
	height: 100%;
	width: 100%;
}

.impact-contact-map__card {
	background: #fff;
	border-radius: 8px;
	box-shadow: 0 14px 34px rgba(11, 26, 33, .22);
	left: 22px;
	padding: 22px;
	position: absolute;
	top: 22px;
	width: 296px;
}

.impact-contact-map__tag {
	color: var(--ic-red);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.impact-contact-lab .impact-contact-map__card h3 {
	font-size: 17px !important;
	font-weight: 600 !important;
	margin-top: 8px !important;
}

.impact-contact-map__card p {
	color: var(--ic-muted);
	font-size: 13.5px;
	line-height: 1.6;
	margin-top: 8px !important;
}

.impact-contact-map__actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 16px;
}

.impact-contact-lab .impact-contact-map__actions .impact-contact-button {
	font-size: 13.5px !important;
	padding: 10px 14px !important;
	width: 100% !important;
}

.impact-contact-travel {
	background: var(--ic-surface);
	border-radius: 8px;
	padding: 26px;
}

.impact-contact-lab .impact-contact-travel > h3 {
	font-size: 17px !important;
	font-weight: 600 !important;
	margin-bottom: 18px !important;
}

.impact-contact-travel__grid {
	display: grid;
	gap: 14px;
}

.impact-contact-travel__cell {
	align-items: flex-start;
	display: flex;
	gap: 12px;
}

.impact-contact-travel__dot {
	align-items: center;
	background: #fff;
	border-radius: 6px;
	color: var(--ic-deep);
	display: flex;
	flex: 0 0 auto;
	height: 32px;
	justify-content: center;
	width: 32px;
}

.impact-contact-lab .impact-contact-travel__cell h4 {
	font-size: 14.5px !important;
	font-weight: 600 !important;
	margin-bottom: 3px !important;
}

.impact-contact-travel__cell p {
	color: var(--ic-muted);
	font-size: 13px;
	line-height: 1.55;
}

/* ---------------------------------------------------------------- urgent */

.impact-contact-lab .impact-contact-urgent {
	align-items: center;
	background: var(--ic-deep);
	color: #fff;
	display: flex;
	gap: 32px;
	padding-bottom: 30px;
	padding-top: 30px;
}

.impact-contact-urgent__icon {
	align-items: center;
	background: rgba(255, 255, 255, .14);
	border-radius: 6px;
	display: flex;
	flex: 0 0 auto;
	height: 44px;
	justify-content: center;
	width: 44px;
}

.impact-contact-lab .impact-contact-urgent h2 {
	color: #fff !important;
	font-size: 19px !important;
	font-weight: 600 !important;
}

.impact-contact-urgent__copy p {
	color: rgba(255, 255, 255, .75);
	font-size: 13.5px;
	margin-top: 3px !important;
}

.impact-contact-urgent__number {
	flex: 0 0 auto;
	margin-left: auto;
	text-align: right;
}

.impact-contact-lab .impact-contact-urgent__number b {
	display: block;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 24px;
	font-weight: 500;
}

.impact-contact-lab .impact-contact-urgent__number a {
	color: #fff !important;
}

.impact-contact-urgent__number span {
	color: rgba(255, 255, 255, .6);
	font-size: 12px;
}

/* ------------------------------------------------------------- locations */

/* "Find us" follows the dark urgent band, and with matching gutters top and bottom the two read as
   one block — the heading looked like part of the band above it rather than the start of something
   new. A little more air above, and a hairline the width of the content, separate them. */
.impact-contact-lab .impact-contact-locations {
	border-top: 1px solid var(--ic-line);
	margin-top: 8px;
	padding-bottom: var(--ic-gutter);
	padding-top: calc(var(--ic-gutter) + 16px);
}

.impact-contact-locations__grid {
	display: grid;
	gap: 20px;
	grid-template-columns: repeat(3, 1fr);
}

.impact-contact-location {
	background: #fff;
	border: 1px solid var(--ic-line);
	border-radius: 6px;
	display: flex;
	flex-direction: column;
	overflow: hidden;
}

.impact-contact-location__image {
	align-items: center;
	aspect-ratio: 16 / 10;
	background: repeating-linear-gradient(135deg, #efebe4 0 14px, #e4ded4 14px 28px);
	display: flex;
	justify-content: center;
	position: relative;
}

.impact-contact-location__image img {
	height: 100%;
	object-fit: cover;
	width: 100%;
}

.impact-contact-location__image span {
	background: rgba(252, 252, 252, .85);
	border-radius: 4px;
	color: #8b8377;
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 11px;
	line-height: 1.5;
	padding: 4px 10px;
	text-align: center;
}

.impact-contact-location__copy {
	display: flex;
	flex-direction: column;
	gap: 6px;
	padding: 18px 18px 20px;
}

.impact-contact-lab .impact-contact-location h3 {
	font-size: 15.5px !important;
	font-weight: 600 !important;
}

.impact-contact-location__copy p {
	color: var(--ic-muted);
	font-size: 13px;
	line-height: 1.55;
}

.impact-contact-location__copy a {
	font-size: 13px;
	font-weight: 500;
	margin-top: 6px;
}

/* ---------------------------------------------------------------- social */

.impact-contact-lab .impact-contact-social {
	align-items: center;
	display: grid;
	gap: 56px;
	grid-template-columns: 1fr 1fr;
	padding-bottom: var(--ic-gutter);
}

.impact-contact-lab .impact-contact-social > div > h2 {
	font-size: 26px !important;
	font-weight: 600 !important;
	margin: 12px 0 10px !important;
}

.impact-contact-lab .impact-contact-social > div > p {
	color: var(--ic-muted);
	font-size: 14.5px;
	line-height: 1.65;
	max-width: 440px;
}

.impact-contact-social__links {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 20px;
}

.impact-contact-social__links a {
	align-items: center;
	background: #fff;
	border: 1px solid var(--ic-line-strong);
	border-radius: 6px;
	color: var(--ic-deep);
	display: flex;
	height: 44px;
	justify-content: center;
	transition: background .15s, color .15s, border-color .15s;
	width: 44px;
}

.impact-contact-social__links a:hover {
	background: var(--ic-deep);
	border-color: var(--ic-deep);
	color: #fff;
}

.impact-contact-social__review {
	color: var(--ic-faint);
	font-size: 13px;
	margin-top: 14px !important;
}

.impact-contact-news {
	background: #fff;
	border: 1px solid var(--ic-line);
	border-radius: 8px;
	padding: 26px;
}

.impact-contact-lab .impact-contact-news h3 {
	font-size: 18px !important;
	font-weight: 600 !important;
}

.impact-contact-news > p {
	color: var(--ic-muted);
	font-size: 13.5px;
	line-height: 1.6;
	margin-top: 8px !important;
}

.impact-contact-news__form {
	margin-top: 14px;
}

.impact-contact-news__form p {
	margin: 0 !important;
}

.impact-contact-lab .impact-contact-news__form input[type="email"],
.impact-contact-lab .impact-contact-news__form input[type="text"] {
	border: 1px solid var(--ic-line-strong) !important;
	border-radius: 6px !important;
	box-sizing: border-box !important;
	color: var(--ic-slate) !important;
	font-family: inherit !important;
	font-size: 14px !important;
	margin: 0 0 10px !important;
	padding: 11px 14px !important;
	width: 100% !important;
}

.impact-contact-lab .impact-contact-news__form input[type="submit"],
.impact-contact-lab .impact-contact-news__form button[type="submit"] {
	background: var(--ic-orange) !important;
	border: 0 !important;
	border-radius: 6px !important;
	color: #fff !important;
	cursor: pointer;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	padding: 12px 22px !important;
	text-transform: none !important;
	width: auto !important;
}

.impact-contact-lab .impact-contact-news__form input[type="submit"]:hover,
.impact-contact-lab .impact-contact-news__form button[type="submit"]:hover {
	background: #b23f14 !important;
}

.impact-contact-news__note {
	color: var(--ic-faint);
	font-size: 11.5px;
	margin-top: 10px !important;
}

/* ------------------------------------------------------------------- faq */

.impact-contact-lab .impact-contact-faq-section {
	align-items: start;
	display: grid;
	gap: 56px;
	grid-template-columns: .8fr 1.2fr;
	padding-bottom: var(--ic-gutter);
	/* Needs its own top padding: it used to butt against the social block,
	   which hid the missing gap until the reviews band was added above it. */
	padding-top: var(--ic-gutter);
}

.impact-contact-lab .impact-contact-faq-section > div > h2 {
	font-size: 26px !important;
	font-weight: 600 !important;
	margin: 12px 0 0 !important;
}

.impact-contact-lab .impact-contact-faq-section > div > p {
	color: var(--ic-muted);
	font-size: 14px;
	line-height: 1.6;
	margin-top: 14px !important;
}

.impact-contact-faq details {
	border-bottom: 1px solid var(--ic-line-strong);
}

.impact-contact-faq summary {
	color: var(--ic-slate);
	cursor: pointer;
	display: flex;
	font-size: 15.5px;
	font-weight: 500;
	gap: 16px;
	justify-content: space-between;
	list-style: none;
	padding: 16px 0;
}

.impact-contact-faq summary::-webkit-details-marker {
	display: none;
}

.impact-contact-faq summary::after {
	color: var(--ic-red);
	content: "+";
	font-family: 'IBM Plex Mono', ui-monospace, monospace;
	font-size: 18px;
	line-height: 1;
}

.impact-contact-faq details[open] summary::after {
	content: "–";
}

.impact-contact-faq__answer {
	color: var(--ic-muted);
	font-size: 14px;
	line-height: 1.65;
	max-width: 640px;
	padding-bottom: 16px;
}

/* ----------------------------------------------------------------- legal */

.impact-contact-lab .impact-contact-legal {
	background: var(--ic-surface);
	display: grid;
	gap: 40px;
	grid-template-columns: repeat(4, 1fr);
	padding-bottom: 40px;
	padding-top: 40px;
}

.impact-contact-lab .impact-contact-legal h4 {
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .1em;
	margin-bottom: 10px !important;
	text-transform: uppercase !important;
}

.impact-contact-legal p {
	color: #8b8377;
	font-size: 12.5px;
	line-height: 1.7;
}

/* ------------------------------------------------------------ mobile bar */

.impact-contact-mobile-bar {
	display: none;
}

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

@media (max-width: 1240px) {
	.impact-contact-lab {
		--ic-gutter: 40px;
	}

	.impact-contact-routes__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.impact-contact-map-grid {
		grid-template-columns: 1fr;
	}

	.impact-contact-map {
		height: 380px;
	}
}

@media (max-width: 1024px) {
	.impact-contact-hero__inner,
	.impact-contact-lab .impact-contact-form-section,
	.impact-contact-lab .impact-contact-social,
	.impact-contact-lab .impact-contact-faq-section {
		grid-template-columns: 1fr;
	}

	.impact-contact-hero__main {
		padding: 40px 0 30px;
	}

	.impact-contact-hero__panel {
		border-left: 0;
		border-top: 1px solid var(--ic-hero-line);
		margin-inline: calc(-1 * var(--ic-bleed));
		padding: 30px var(--ic-bleed) 40px;
	}

	.impact-contact-lab .impact-contact-social,
	.impact-contact-lab .impact-contact-faq-section {
		gap: 28px;
	}

	.impact-contact-locations__grid {
		grid-template-columns: repeat(2, 1fr);
	}

	.impact-contact-lab .impact-contact-legal {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 780px) {
	.impact-contact-lab {
		--ic-gutter: 24px;
	}

	.impact-contact-lab .impact-contact-hero h1 {
		font-size: 26px !important;
		line-height: 1.18 !important;
	}

	.impact-contact-hero__sub {
		font-size: 14.5px;
	}

	.impact-contact-lab .impact-contact-call b {
		font-size: 32px;
	}

	.impact-contact-call {
		padding-top: 20px;
	}

	.impact-contact-lab .impact-contact-routes {
		margin-top: 24px;
	}

	.impact-contact-routes__grid,
	.impact-contact-locations__grid {
		grid-template-columns: 1fr;
	}

	.impact-contact-lab .impact-contact-form-section,
	.impact-contact-lab .impact-contact-locations {
		padding-bottom: 34px;
		padding-top: 46px;
	}

	.impact-contact-lab .impact-contact-map-section,
	.impact-contact-lab .impact-contact-social,
	.impact-contact-lab .impact-contact-faq-section {
		padding-bottom: 34px;
	}

	.impact-contact-form {
		padding: 24px 20px;
	}

	.impact-contact-lab .impact-contact-form h2 {
		font-size: 20px !important;
	}

	.impact-contact-map {
		height: 260px;
	}

	.impact-contact-map__card {
		border-radius: 0 0 8px 8px;
		box-shadow: none;
		left: 0;
		position: static;
		width: 100%;
	}

	.impact-contact-panel,
	.impact-contact-travel {
		padding: 20px;
	}

	.impact-contact-lab .impact-contact-urgent {
		align-items: flex-start;
		flex-direction: column;
		gap: 10px;
		padding-bottom: 24px;
		padding-top: 24px;
	}

	.impact-contact-urgent__number {
		margin-left: 0;
		text-align: left;
	}

	.impact-contact-heading-row {
		align-items: flex-start;
		flex-direction: column;
		gap: 12px;
	}

	.impact-contact-heading-row h2 {
		font-size: 22px !important;
	}

	.impact-contact-lab .impact-contact-social > div > h2,
	.impact-contact-lab .impact-contact-faq-section > div > h2,
	.impact-contact-routes__intro h2 {
		font-size: 21px !important;
	}

	.impact-contact-lab .impact-contact-legal {
		gap: 22px;
		padding-bottom: 26px;
		padding-top: 26px;
	}

	/* The sticky call/directions bar only exists at phone width. */
	.impact-contact-mobile-bar {
		background: #fff;
		border-top: 1px solid var(--ic-line-strong);
		bottom: 0;
		box-shadow: 0 -6px 20px rgba(11, 26, 33, .08);
		display: grid;
		gap: 10px;
		grid-template-columns: 1fr 1fr;
		padding: 10px 14px;
		position: sticky;
		z-index: 5;
	}

	.impact-contact-lab .impact-contact-mobile-bar .impact-contact-button {
		font-size: 14px !important;
		padding: 12px !important;
		width: 100% !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.impact-contact-route {
		transition: none;
	}

	.impact-contact-route:hover {
		transform: none;
	}
}

/* ---------------------------------------------------------------- Google reviews */

.impact-contact-lab .impact-contact-reviews {
	align-items: center;
	background: var(--ic-surface);
	border-bottom: 1px solid #e9e4da;
	border-top: 1px solid #e9e4da;
	display: grid;
	gap: 48px;
	grid-template-columns: 1fr 1.15fr;
	padding-bottom: 52px;
	padding-top: 52px;
}
.impact-contact-lab .impact-contact-reviews__summary {
	align-items: flex-start;
	display: flex;
	flex-direction: column;
}
.impact-contact-lab .impact-contact-reviews h2 {
	font-size: 26px;
	font-weight: 600;
	line-height: 1.25;
	margin-top: 12px !important;
}
.impact-contact-lab .impact-contact-score {
	align-items: center;
	display: flex;
	gap: 16px;
	margin-top: 18px;
}
.impact-contact-lab .impact-contact-score__num {
	color: var(--ic-slate);
	font-family: 'IBM Plex Mono', monospace;
	font-size: 44px;
	font-weight: 500;
	line-height: 1;
}
.impact-contact-lab .impact-contact-score__stars {
	color: #ffb020;
	display: block;
	font-size: 16px;
	letter-spacing: .1em;
}
.impact-contact-lab .impact-contact-score__text {
	color: var(--ic-muted);
	font-size: 13px;
	margin-top: 4px;
}
.impact-contact-lab .impact-contact-score__source {
	align-items: center;
	color: var(--ic-faint);
	display: flex;
	font-size: 12px;
	font-weight: 500;
	gap: 6px;
	margin-top: 5px;
}
.impact-contact-lab .impact-contact-reviews__text {
	color: var(--ic-muted);
	font-size: 13.5px;
	line-height: 1.6;
	margin-top: 14px;
	max-width: 38ch;
}
.impact-contact-lab .impact-contact-reviews__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-top: 18px;
}
.impact-contact-lab .impact-contact-quotes {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}
/* The card padding is stated on a two-class selector, and the inner blockquote is
   reset explicitly, because BeTheme gives blockquotes their own indent, border
   and italics. */
.impact-contact-lab .impact-contact-quote {
	background: #fff;
	border: 1px solid #e9e4da;
	border-radius: 6px;
	padding: 20px 22px;
}
.impact-contact-lab .impact-contact-quote blockquote {
	background: none;
	border: none;
	font-style: normal;
	margin: 0;
	padding: 0;
	quotes: none;
}
.impact-contact-lab .impact-contact-quote blockquote::before,
.impact-contact-lab .impact-contact-quote blockquote::after {
	content: none;
}
.impact-contact-lab .impact-contact-quote blockquote p {
	color: var(--ic-slate);
	font-size: 13.5px;
	line-height: 1.6;
}
.impact-contact-lab .impact-contact-quote blockquote p::before { content: "\201C"; }
.impact-contact-lab .impact-contact-quote blockquote p::after { content: "\201D"; }
.impact-contact-lab .impact-contact-quote__stars {
	color: #ffb020;
	display: block;
	font-size: 12.5px;
	letter-spacing: .08em;
	margin-bottom: 8px;
}
.impact-contact-lab .impact-contact-quote figcaption {
	color: var(--ic-faint);
	font-size: 12px;
	margin-top: 10px;
}

@media (max-width: 1024px) {
	.impact-contact-lab .impact-contact-reviews {
		gap: 24px;
		grid-template-columns: 1fr;
	}
}

@media (max-width: 780px) {
	.impact-contact-lab .impact-contact-quotes { grid-template-columns: 1fr; }
	.impact-contact-lab .impact-contact-quote { padding: 18px; }
}

/* ------------------------------------------------- hero quick actions and proof */

.impact-contact-lab .impact-contact-actions {
	display: grid;
	gap: 10px;
	grid-template-columns: repeat(3, 1fr);
	margin-top: 26px;
}
.impact-contact-lab .impact-contact-action {
	background: var(--ic-hero-panel);
	border: 1px solid var(--ic-hero-line);
	border-radius: 7px;
	color: var(--ic-hero-text) !important;
	display: flex;
	flex-direction: column;
	gap: 5px;
	padding: 15px 16px 16px;
	transition: background .15s, border-color .15s, transform .15s;
}
.impact-contact-lab .impact-contact-action:hover {
	background: var(--ic-hero-ghost-bg);
	border-color: var(--ic-hero-ghost);
	color: var(--ic-hero-text) !important;
	transform: translateY(-2px);
}
.impact-contact-lab .impact-contact-action.is-lead {
	background: var(--ic-red);
	border-color: var(--ic-red);
}
.impact-contact-lab .impact-contact-action.is-lead:hover {
	background: #d20000;
	border-color: #d20000;
}
.impact-contact-lab .impact-contact-action__kicker {
	align-items: center;
	color: var(--ic-hero-mute);
	display: flex;
	font-size: 11px;
	font-weight: 600;
	gap: 7px;
	letter-spacing: .12em;
	text-transform: uppercase;
}
.impact-contact-lab .impact-contact-action.is-lead .impact-contact-action__kicker { color: rgba(255, 255, 255, .88); }
.impact-contact-lab .impact-contact-action__title {
	font-size: 16.5px;
	font-weight: 600;
	letter-spacing: -.01em;
	line-height: 1.25;
}
.impact-contact-lab .impact-contact-action__title.impact-contact-mono {
	font-size: 19px;
	font-weight: 500;
}
.impact-contact-lab .impact-contact-action__note {
	color: var(--ic-hero-soft);
	font-size: 12.5px;
	line-height: 1.45;
}

.impact-contact-lab .impact-contact-proof {
	border-top: 1px solid var(--ic-hero-line);
	display: grid;
	grid-template-columns: repeat(4, auto);
	justify-content: start;
	list-style: none;
	margin: 26px 0 0 !important;
	padding: 26px 0 0 !important;
}
/* The divider needs equal space on both sides — padding alone puts it right up
   against the next column. */
.impact-contact-lab .impact-contact-proof li {
	border-right: 1px solid var(--ic-hero-line);
	list-style: none;
	margin: 0 26px 0 0;
	padding: 0 26px 0 0;
}
.impact-contact-lab .impact-contact-proof li:last-child {
	border-right: 0;
	margin-right: 0;
	padding-right: 0;
}
.impact-contact-lab .impact-contact-proof b {
	display: block;
	font-family: 'IBM Plex Mono', monospace;
	font-size: 23px;
	font-weight: 500;
	line-height: 1.15;
}
.impact-contact-lab .impact-contact-proof span {
	color: var(--ic-hero-mute);
	display: block;
	font-size: 12px;
	line-height: 1.4;
	margin-top: 4px;
}
.impact-contact-lab .impact-contact-proof__stars {
	color: #ffb020;
	font-size: 13px;
	letter-spacing: .06em;
}

@media (max-width: 1024px) {
	.impact-contact-lab .impact-contact-actions { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 780px) {
	.impact-contact-lab .impact-contact-actions {
		grid-template-columns: 1fr;
		margin-top: 18px;
	}
	.impact-contact-lab .impact-contact-proof {
		gap: 14px;
		grid-template-columns: 1fr 1fr;
		margin-top: 20px !important;
		padding-top: 18px !important;
	}
	.impact-contact-lab .impact-contact-proof li {
		border-right: 0;
		margin-right: 0;
		padding-right: 0;
	}
	.impact-contact-lab .impact-contact-proof b { font-size: 20px; }
}

/* --------------------------------------------------------- stepped enquiry form */

.impact-contact-lab .impact-contact-progress {
	display: flex;
	gap: 8px;
	margin: 4px 0 2px;
}
.impact-contact-lab .impact-contact-progress i {
	background: var(--ic-hero-line);
	border-radius: 2px;
	display: block;
	flex: 1;
	height: 3px;
	transition: background .2s;
}
.impact-contact-lab .impact-contact-progress i.is-on { background: #fff; }
.impact-contact-lab .impact-contact-stepno {
	color: var(--ic-hero-mute);
	font-size: 11.5px;
	letter-spacing: .1em;
	margin: 0 0 4px !important;
	text-transform: uppercase;
}
.impact-contact-lab .impact-contact-stepno b { color: #fff; }

.impact-contact-lab .impact-contact-step {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.impact-contact-lab .impact-contact-step[hidden] { display: none; }
.impact-contact-lab .impact-contact-step__nav {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}
.impact-contact-lab .impact-contact-step__next {
	background: var(--ic-red) !important;
	border: 0 !important;
	border-radius: 6px !important;
	color: #fff !important;
	cursor: pointer;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	min-height: 46px;
	padding: 12px 22px !important;
	transition: background .16s;
}
.impact-contact-lab .impact-contact-step__next:hover { background: #d20000 !important; }
.impact-contact-lab .impact-contact-step__back {
	background: none;
	border: 0;
	color: var(--ic-hero-soft);
	cursor: pointer;
	font-family: inherit;
	font-size: 13.5px;
	padding: 6px 2px;
}
.impact-contact-lab .impact-contact-step__back:hover { color: #fff; }

.impact-contact-lab .impact-contact-field {
	display: flex;
	flex-direction: column;
}
.impact-contact-lab .impact-contact-row2 {
	display: grid;
	gap: 12px;
	grid-template-columns: 1fr 1fr;
}
.impact-contact-lab .impact-contact-field label em {
	color: var(--ic-hero-faint);
	font-style: normal;
	letter-spacing: 0;
	text-transform: none;
}
.impact-contact-lab .impact-contact-fine {
	color: var(--ic-hero-mute);
	font-size: 11.5px;
	line-height: 1.5;
}

/* Reason and slot chips: real radio inputs, styled off input:checked + label so
   no :has() is needed. */
.impact-contact-lab .impact-contact-chips .wpcf7-form-control {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.impact-contact-lab .impact-contact-chips .wpcf7-list-item { margin: 0; }
.impact-contact-lab .impact-contact-chips .wpcf7-list-item label {
	cursor: pointer;
	display: block;
	margin: 0;
}
.impact-contact-lab .impact-contact-chips input {
	height: 1px;
	opacity: 0;
	position: absolute;
	width: 1px;
}
.impact-contact-lab .impact-contact-chips .wpcf7-list-item-label {
	background: var(--ic-hero-panel);
	border: 1px solid var(--ic-hero-line);
	border-radius: 99px;
	color: #fff;
	display: inline-block;
	font-size: 13px;
	font-weight: 500;
	letter-spacing: 0;
	padding: 8px 14px;
	text-transform: none;
	transition: background .15s, color .15s, border-color .15s;
}
.impact-contact-lab .impact-contact-chips input:checked + .wpcf7-list-item-label {
	background: #fff;
	border-color: #fff;
	color: var(--ic-deep);
}
.impact-contact-lab .impact-contact-chips input:focus-visible + .wpcf7-list-item-label {
	outline: 3px solid #ffb020;
	outline-offset: 2px;
}

/* The callback question is a checkbox drawn as a switch; the knob is a
   background image so input:checked + label can move it. */
.impact-contact-lab .impact-contact-callback {
	background: var(--ic-hero-panel);
	border: 1px solid var(--ic-hero-line);
	border-radius: 7px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 14px 16px;
	transition: border-color .16s;
}
.impact-contact-lab .impact-contact-callback.is-open { border-color: var(--ic-hero-ghost); }
.impact-contact-lab .impact-contact-callback__body {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.impact-contact-lab .impact-contact-callback__body[hidden] { display: none; }
.impact-contact-lab .impact-contact-switch .wpcf7-form-control,
.impact-contact-lab .impact-contact-switch .wpcf7-list-item {
	display: block;
	margin: 0;
	width: 100%;
}
.impact-contact-lab .impact-contact-switch label {
	cursor: pointer;
	display: block;
	margin: 0;
	width: 100%;
}
.impact-contact-lab .impact-contact-switch input {
	height: 1px;
	opacity: 0;
	position: absolute;
	width: 1px;
}
.impact-contact-lab .impact-contact-switch .wpcf7-list-item-label {
	align-items: center;
	color: #fff;
	display: flex;
	font-size: 14px;
	font-weight: 500;
	gap: 12px;
	justify-content: space-between;
	letter-spacing: 0;
	text-transform: none;
	width: 100%;
}
.impact-contact-lab .impact-contact-switch .wpcf7-list-item-label::after {
	background-color: rgba(255, 255, 255, .25);
	background-image: radial-gradient(circle at 11px 50%, #fff 0 8px, transparent 8px);
	background-position: 0 0;
	background-repeat: no-repeat;
	border-radius: 99px;
	content: "";
	flex: none;
	height: 21px;
	transition: background-color .16s, background-position .18s;
	width: 38px;
}
.impact-contact-lab .impact-contact-switch input:checked + .wpcf7-list-item-label::after {
	background-color: var(--ic-green);
	background-position: 17px 0;
}

.impact-contact-lab .impact-contact-consent .wpcf7-list-item { margin: 0; }
.impact-contact-lab .impact-contact-consent label {
	align-items: flex-start;
	color: var(--ic-hero-soft);
	cursor: pointer;
	display: flex;
	font-size: 12.5px;
	font-weight: 400;
	gap: 10px;
	letter-spacing: 0;
	line-height: 1.5;
	margin: 0;
	text-transform: none;
}
.impact-contact-lab .impact-contact-consent input[type="checkbox"] {
	accent-color: #fff;
	flex: none;
	height: 16px;
	margin-top: 2px;
	width: 16px;
}
.impact-contact-lab .impact-contact-file input[type="file"] {
	background: var(--ic-hero-panel);
	border: 1px solid var(--ic-hero-line);
	border-radius: 6px;
	color: var(--ic-hero-soft);
	font-size: 13px;
	padding: 9px 12px;
	width: 100%;
}

@media (max-width: 780px) {
	.impact-contact-lab .impact-contact-row2 { grid-template-columns: 1fr; }
}

/* ---------------------------------------------------------- hero photograph beside the text */

/* A photograph placed beside the words rather than behind them. The section becomes two columns
   and the picture takes its own, so the copy keeps full contrast — the reason somebody chooses
   this over a background in the first place. */
.impact-contact-hero--media-right,
.impact-contact-hero--media-left {
	align-items: stretch;
	display: grid;
	gap: clamp(18px, 3vw, 40px);
	grid-template-columns: 1.05fr .95fr;
}

.impact-contact-hero--media-left { direction: rtl; }
.impact-contact-hero--media-left > * { direction: ltr; }

.impact-contact-hero__media {
	background-repeat: no-repeat;
	border-radius: 10px;
	margin: 0;
	min-height: 320px;
}

@media (max-width: 860px) {
	/* Two columns of this size stop working well before the phone breakpoint; the picture goes
	   above the words rather than being squeezed into a strip beside them. */
	.impact-contact-hero--media-right,
	.impact-contact-hero--media-left {
		direction: ltr;
		grid-template-columns: 1fr;
	}

	.impact-contact-hero__media {
		min-height: 200px;
		order: -1;
	}
}
