/**
 * Single Project ("project details") template styles.
 *
 * Hand-written CSS, enqueued only on single Project views by
 * inc/enqueue.php — same escape hatch as assets/css/style.css, so design
 * tweaks here need no SCSS rebuild. Brand values come from the theme's
 * design tokens where they exist; the navy/body/muted greys below match
 * the project-details design.
 */

.project-single {
	--project-navy: var(--color-primary, #002a71);
	--project-body: #4c4c7f;
	--project-muted: #9ea2ae;
	--project-hairline: rgba(0, 0, 0, 0.08);
	--project-max: var(--container-width, 1280px);

	color: var(--project-body);
	font-family: var(--wp--preset--font-family--body);
}

.project-single__section {
	padding-block: 50px;
}

.project-single__inner {
	width: 100%;
	max-width: var(--project-max);
	margin-inline: auto;
	padding-inline: clamp(24px, 5vw, 80px);
}

/* Intro */
.project-single__eyebrow {
	display: inline-flex;
	align-items: center;
	margin-bottom: 24px;
	padding: 6px 16px;
	border: 1px solid #5e49ef;
	border-radius: var(--radius-sm, 8px);
	background: linear-gradient(
		110.6deg,
		rgba(0, 80, 215, 0.1) 1%,
		rgba(206, 114, 193, 0.1) 25%,
		rgba(240, 148, 121, 0.1) 47%,
		rgba(57, 172, 255, 0.1) 66%,
		rgba(94, 73, 239, 0.1) 83%,
		rgba(215, 79, 0, 0.1) 100%
	);
	color: var(--project-navy);
	font-size: 14px;
	line-height: 1.4;
}

.project-single__title {
	margin: 0 0 12px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(26px, 4vw, 42px);
	font-weight: 800;
	line-height: 1.31;
	letter-spacing: -1px;
	color: var(--project-navy);
}

.project-single__intro {
	max-width: 1180px;
}

.project-single__intro p {
	margin: 0 0 12px;
	font-size: 16px;
	line-height: 25px;
	color: var(--project-body);
}

.project-single__intro p:last-child {
	margin-bottom: 0;
}

.project-single__banner {
	margin-top: 24px;
	border-radius: var(--radius-sm, 8px);
	overflow: hidden;
}

.project-single__banner img {
	display: block;
	width: 100%;
	height: auto;
}

/* Section headings */
.project-single__heading {
	margin: 0 0 24px;
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(26px, 4vw, 42px);
	font-weight: 800;
	line-height: 1.2;
	letter-spacing: -1px;
	color: var(--project-navy);
}

.project-single__heading--flush {
	margin-bottom: 0;
}

/* Numbered lists (What We Did / Outcome) */
.project-single__list {
	counter-reset: project-item;
	margin: 0;
	padding: 0;
	list-style: none;
}

.project-single__list > li {
	counter-increment: project-item;
	position: relative;
	padding-left: 30px;
	padding-bottom: 16px;
	margin-bottom: 16px;
	border-bottom: 1px solid var(--project-hairline);
	font-size: 16px;
	line-height: 25px;
	color: var(--project-body);
}

.project-single__list > li::before {
	content: counter(project-item) ".";
	position: absolute;
	top: 0;
	left: 0;
	font-weight: 500;
	color: var(--project-body);
}

.project-single__list > li:last-child {
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: 0;
}

/* Scale */
.project-single__scale-panel {
	padding: 50px 45px;
	border-radius: var(--radius-sm, 8px);
	background: linear-gradient(
		97.1deg,
		rgba(0, 80, 215, 0.1) 1%,
		rgba(206, 114, 193, 0.1) 18%,
		rgba(240, 148, 121, 0.1) 40%,
		rgba(171, 103, 221, 0.1) 55%,
		rgba(94, 73, 239, 0.1) 83%,
		rgba(0, 80, 215, 0.1) 100%
	);
}

.project-single__stats {
	display: grid;
	grid-template-columns: repeat(var(--project-stats-columns, 4), minmax(0, 1fr));
	gap: 20px;
	margin-top: 24px;
}

.project-stat {
	padding: 20px 24px;
	border-radius: var(--radius-sm, 8px);
	background: #fff;
	box-shadow:
		-8px -6px 24px -6px rgba(19, 25, 39, 0.12),
		0 8px 24px -4px rgba(19, 25, 39, 0.08);
}

.project-stat__value {
	margin: 0 0 6px;
	font-size: clamp(28px, 3vw, 36px);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -1px;
	color: var(--project-navy);
}

.project-stat__label {
	margin: 0 0 4px;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.4;
	color: var(--project-body);
}

.project-stat__description {
	margin: 0;
	font-size: 14px;
	line-height: 1.4;
	color: var(--project-muted);
}

/* Outcome — image column on the left, content on the right. `stretch`
   plus the object-fit rule below lets the image match the height of
   whatever the content column ends up being, however long the list is. */
.project-single__outcome-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 20px;
	align-items: stretch;
}

.project-single__outcome-grid--no-media {
	grid-template-columns: 1fr;
}

.project-single__outcome-media {
	position: relative;
	min-height: 260px;
	border-radius: var(--radius-sm, 8px);
	overflow: hidden;
}

.project-single__outcome-media img {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.project-single__outcome-content .project-single__list {
	margin-bottom: 35px;
}

.project-single__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	padding: 12px 24px;
	border: 1px solid #000;
	border-radius: var(--radius-sm, 8px);
	background: var(--color-heading, #0a0a0a);
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 16px;
	font-weight: 500;
	white-space: nowrap;
	transition: opacity var(--transition, 200ms ease);
}

.project-single__cta:hover,
.project-single__cta:focus-visible {
	background: var(--color-heading, #0a0a0a);
	color: #fff;
	opacity: 0.85;
}

/* Responsive */
@media (max-width: 1100px) {
	.project-single__section {
		padding-block: 40px;
	}

	.project-single__stats {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.project-single__outcome-grid {
		grid-template-columns: 1fr;
	}

	/* Stacked: the image is already first in the markup, so it just needs a
	   real height of its own once it is no longer matching a sibling column. */
	.project-single__outcome-media {
		aspect-ratio: 4 / 3;
	}
}

@media (max-width: 600px) {
	.project-single__scale-panel {
		padding: 32px 24px;
	}

	.project-single__stats {
		grid-template-columns: 1fr;
	}
}

.project-single__eyebrow-row {
	display: flex;
	align-items: center;
	gap: 16px;
	margin-bottom: 24px;
}


.project-single__eyebrow-row .project-single__eyebrow {
	margin-bottom: 0;
}
 
.project-single__back {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	padding: 0;
	flex: none;
	border-radius: var(--radius-sm, 8px);
	border: 1px solid #5e49ef;
	background: linear-gradient(

		110.6deg,

		rgba(0, 80, 215, 0.1) 1%,

		rgba(206, 114, 193, 0.1) 25%,

		rgba(240, 148, 121, 0.1) 47%,

		rgba(57, 172, 255, 0.1) 66%,

		rgba(94, 73, 239, 0.1) 83%,

		rgba(215, 79, 0, 0.1) 100%

	);

	color: var(--project-navy);
	cursor: pointer;
	transition: filter .2s ease, transform .2s ease;
}

.project-single__back:hover {
	filter: brightness(0.97);
	transform: translateX(-2px);
}

.project-single__back svg {
	width: 18px;
	height: 18px;
}
 
