/**
 * Service archive and single service.
 */

.bv-services-archive,
.bv-service-single,
.bv-service-article {
	background: var(--bv-bg);
}

/* Archive hero. */
.bv-services-hero,
.bv-service-hero {
	position: relative;
	isolation: isolate;
	overflow: clip;
	border-bottom: var(--bv-border-width) solid var(--bv-border);
}

.bv-services-hero::before,
.bv-service-hero::before {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		radial-gradient(circle at 82% 28%, color-mix(in srgb, var(--bv-primary) 18%, transparent), transparent 30rem),
		linear-gradient(var(--bv-border) 1px, transparent 1px),
		linear-gradient(90deg, var(--bv-border) 1px, transparent 1px);
	background-size: auto, 4rem 4rem, 4rem 4rem;
	content: "";
	mask-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.42), transparent 94%);
	opacity: 0.34;
	pointer-events: none;
}

.bv-services-hero__inner,
.bv-service-hero__inner {
	padding-block: var(--bv-section-space);
}

.bv-services-hero__title,
.bv-service-hero__title {
	margin-block: var(--bv-space-4) var(--bv-space-6);
	font-size: var(--bv-type-display-lg);
	overflow-wrap: anywhere;
}

.bv-services-hero__description,
.bv-service-hero__summary {
	max-width: 48rem;
	color: var(--bv-text-secondary);
	font-size: var(--bv-type-body-lg);
}

/* Editorial service index. */
.bv-services-index {
	background: var(--bv-surface);
}

.bv-services-index__list {
	border-top: var(--bv-border-width) solid var(--bv-border);
}

.bv-service-row {
	display: grid;
	min-width: 0;
	gap: var(--bv-space-4);
	padding-block: clamp(var(--bv-space-8), 5vw, var(--bv-space-16));
	border-bottom: var(--bv-border-width) solid var(--bv-border);
}

.bv-service-row__number,
.bv-service-row__eyebrow,
.bv-service-project__meta,
.bv-service-knowledge-item time,
.bv-service-hero__index {
	color: var(--bv-text-muted);
	font-family: var(--bv-font-mono);
	font-size: var(--bv-type-label);
	letter-spacing: var(--bv-tracking-label);
	text-transform: uppercase;
}

.bv-service-row__eyebrow {
	margin-bottom: var(--bv-space-3);
}

.bv-service-row__title {
	font-size: var(--bv-type-h2);
}

.bv-service-row__title a,
.bv-service-project h3 a,
.bv-service-knowledge-item h3 a {
	color: var(--bv-text);
	text-decoration: none;
}

.bv-service-row__summary {
	max-width: 42rem;
	margin-bottom: var(--bv-space-6);
	color: var(--bv-text-secondary);
	font-size: var(--bv-type-body-lg);
}

.bv-service-row__link,
.bv-service-project__link {
	display: inline-flex;
	width: fit-content;
	min-height: 2.75rem;
	align-items: center;
	gap: var(--bv-space-2);
	font-weight: var(--bv-font-weight-medium);
	text-decoration: underline;
	text-decoration-color: transparent;
	text-underline-offset: 0.3em;
}

.bv-service-row__link span,
.bv-service-project__link span {
	transition: transform var(--bv-motion-fast) var(--bv-easing-standard);
}

/* Shared CTA treatment. */
.bv-services-cta,
.bv-service-final-cta {
	border-block: var(--bv-border-width) solid var(--bv-border);
	background: var(--bv-surface-elevated);
}

.bv-services-cta__inner,
.bv-service-final-cta__inner {
	display: grid;
	gap: var(--bv-space-8);
}

.bv-services-cta h2,
.bv-service-final-cta h2 {
	max-width: 24ch;
	margin-block: var(--bv-space-4) var(--bv-space-6);
	font-size: var(--bv-type-h2);
}

.bv-services-cta p:not(.bv-eyebrow),
.bv-service-final-cta p:not(.bv-eyebrow) {
	max-width: 42rem;
	color: var(--bv-text-secondary);
	font-size: var(--bv-type-body-lg);
}

.bv-services-cta .bv-button,
.bv-service-final-cta .bv-button {
	width: 100%;
}

/* Single service hero and content. */
.bv-service-hero__inner {
	display: grid;
	gap: var(--bv-space-12);
}

.bv-service-hero__content {
	max-width: 66rem;
}

.bv-service-hero__summary {
	margin-bottom: var(--bv-space-8);
}

.bv-service-hero__index {
	align-self: end;
	color: var(--bv-text-muted);
}

.bv-service-content {
	background: var(--bv-bg);
}

.bv-service-content__inner {
	font-size: var(--bv-type-body-lg);
}

.bv-service-content__inner > :where(:not(.alignwide):not(.alignfull)) {
	max-width: var(--bv-reading-max);
	margin-inline: auto;
}

.bv-service-content__inner > * + * {
	margin-top: var(--bv-space-6);
}

.bv-service-content__inner :where(h2, h3, h4) {
	margin-top: var(--bv-space-12);
}

.bv-service-content__inner :where(p, li) {
	color: var(--bv-text-secondary);
}

.bv-service-content__inner .alignwide {
	width: 100%;
}

.bv-service-content__inner .alignfull {
	width: min(100vw, var(--bv-container-max));
	max-width: none;
	margin-inline: 50%;
	transform: translateX(-50%);
}

/* Related work and knowledge. */
.bv-service-projects,
.bv-service-knowledge {
	border-top: var(--bv-border-width) solid var(--bv-border);
}

.bv-service-projects {
	background: var(--bv-surface);
}

.bv-service-knowledge {
	background: var(--bv-bg);
}

.bv-service-section-heading {
	max-width: 48rem;
	margin-bottom: var(--bv-space-12);
}

.bv-service-section-heading h2 {
	margin-top: var(--bv-space-4);
	font-size: var(--bv-type-h2);
}

.bv-service-projects__list {
	border-top: var(--bv-border-width) solid var(--bv-border);
}

.bv-service-project {
	display: grid;
	min-width: 0;
	gap: var(--bv-space-4);
	padding-block: var(--bv-space-8);
	border-bottom: var(--bv-border-width) solid var(--bv-border);
}

.bv-service-project h3,
.bv-service-knowledge-item h3 {
	font-size: var(--bv-type-h3);
}

.bv-service-project__summary,
.bv-service-knowledge-item p {
	max-width: 42rem;
	color: var(--bv-text-secondary);
}

.bv-service-knowledge__grid {
	display: grid;
	gap: var(--bv-space-4);
}

.bv-service-knowledge-item {
	display: flex;
	min-width: 0;
	flex-direction: column;
	align-items: flex-start;
	padding: var(--bv-space-6);
	border: var(--bv-border-width) solid var(--bv-border);
	border-radius: var(--bv-radius-default);
	background: var(--bv-surface);
}

.bv-service-knowledge-item time,
.bv-service-knowledge-item h3 {
	margin-bottom: var(--bv-space-4);
}

@media (min-width: 36rem) {
	.bv-services-cta .bv-button,
	.bv-service-final-cta .bv-button {
		width: fit-content;
	}
}

@media (min-width: 48rem) {
	.bv-service-row {
		grid-template-columns: 3rem minmax(14rem, 0.8fr) minmax(0, 1.2fr);
		column-gap: var(--bv-grid-gap);
		align-items: start;
	}

	.bv-service-project {
		grid-template-columns: minmax(12rem, 0.7fr) minmax(0, 1.3fr);
		column-gap: var(--bv-grid-gap);
	}

	.bv-service-project__meta {
		grid-column: 1;
	}

	.bv-service-project h3 {
		grid-column: 1;
	}

	.bv-service-project__summary,
	.bv-service-project__link {
		grid-column: 2;
	}

	.bv-service-knowledge__grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media (min-width: 60rem) {
	.bv-services-cta__inner,
	.bv-service-final-cta__inner {
		grid-template-columns: minmax(0, 1fr) auto;
		align-items: end;
	}

	.bv-service-hero__inner {
		grid-template-columns: minmax(0, 1fr) auto;
	}

	.bv-service-knowledge__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (hover: hover) and (pointer: fine) {
	.bv-service-row:hover {
		background: color-mix(in srgb, var(--bv-surface-elevated) 72%, transparent);
	}

	.bv-service-row__title a:hover,
	.bv-service-project h3 a:hover,
	.bv-service-knowledge-item h3 a:hover {
		color: var(--bv-accent);
	}

	.bv-service-row__link:hover,
	.bv-service-project__link:hover {
		text-decoration-color: currentColor;
	}

	.bv-service-row__link:hover span,
	.bv-service-project__link:hover span {
		transform: translateX(var(--bv-space-1));
	}
}

@media (prefers-reduced-motion: reduce) {
	.bv-service-row,
	.bv-service-row__link span,
	.bv-service-project__link span {
		transition: none;
	}
}
