/**
 * Single Project
 * Precision Home
 * Mobile First
 */

.ph-project-single {
	overflow: hidden;
}

/* ==================================================
   Hero
================================================== */

.ph-project-single-hero {
	position: relative;
	isolation: isolate;
	min-height: 650px;
	padding: 34px 0 0;
	overflow: hidden;
	background:
		radial-gradient(
			circle at 90% 10%,
			rgba(212, 175, 55, 0.12),
			transparent 28%
		),
		linear-gradient(
			145deg,
			#0e141b,
			#17222c
		);
	color: #ffffff;
}

.ph-project-single-hero.has-image {
	background-image: var(--ph-project-single-image);
	background-position: center;
	background-size: cover;
}

.ph-project-single-hero__overlay {
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(
			90deg,
			rgba(10, 14, 19, 0.96) 0%,
			rgba(10, 14, 19, 0.8) 52%,
			rgba(10, 14, 19, 0.42) 100%
		),
		linear-gradient(
			180deg,
			rgba(10, 14, 19, 0.15),
			rgba(10, 14, 19, 0.72)
		);
}

.ph-project-single-hero__breadcrumbs {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 7px;
	color: rgba(255, 255, 255, 0.65);
	font-size: 11px;
	line-height: 1.6;
}

.ph-project-single-hero__breadcrumbs a {
	color: rgba(255, 255, 255, 0.82);
	text-decoration: none;
}

.ph-project-single-hero__content {
	max-width: 790px;
	padding: 95px 0 130px;
}

.ph-project-single-hero__badges {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 18px;
}

.ph-project-single-hero__badges span {
	display: inline-flex;
	align-items: center;
	min-height: 34px;
	padding: 7px 12px;
	background: rgba(142, 59, 67, 0.9);
	color: #ffffff;
	border: 1px solid rgba(212, 175, 55, 0.55);
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
}

.ph-project-single-hero__badges .is-status {
	background: rgba(255, 255, 255, 0.1);
	color: var(--ph-color-gold-light, #efd16b);
}

.ph-project-single-hero__title {
	margin: 0;
	max-width: 900px;
	color: #ffffff;
	font-size: clamp(36px, 10vw, 58px);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: -0.5px;
	text-wrap: balance;
}

.ph-project-single-hero__description {
	max-width: 700px;
	margin: 18px 0 0;
	color: rgba(255, 255, 255, 0.72);
	font-size: 14px;
	line-height: 1.9;
}

.ph-project-single-hero__location {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 15px;
	margin-top: 20px;
}

.ph-project-single-hero__location span {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	color: rgba(255, 255, 255, 0.8);
	font-size: 12px;
	font-weight: 700;
}

.ph-project-single-hero__location svg {
	width: 18px;
	height: 18px;
	color: var(--ph-color-gold-light, #efd16b);
}

.ph-project-single-hero__facts {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1px;
	margin-top: -62px;
	overflow: hidden;
	background: rgba(116, 47, 54, 0.1);
	border: 1px solid rgba(212, 175, 55, 0.3);
	border-radius: 18px;
	box-shadow: 0 25px 55px rgba(0, 0, 0, 0.22);
	backdrop-filter: blur(15px);
	-webkit-backdrop-filter: blur(15px);
}

.ph-project-single-hero__fact {
	padding: 17px 12px;
	background: rgba(255, 255, 255, 0.96);
	text-align: center;
}

.ph-project-single-hero__fact span,
.ph-project-single-hero__fact strong {
	display: block;
}

.ph-project-single-hero__fact span {
	color: var(--ph-color-muted, #737881);
	font-size: 10px;
	font-weight: 700;
}

.ph-project-single-hero__fact strong {
	margin-top: 5px;
	color: var(--ph-color-dark, #15171b);
	font-size: 13px;
	font-weight: 800;
}

/* ==================================================
   Overview
================================================== */

.ph-project-overview {
	padding: 110px 0 70px;
	background:
		radial-gradient(
			circle at 6% 90%,
			rgba(212, 175, 55, 0.08),
			transparent 23%
		),
		linear-gradient(
			180deg,
			#ffffff,
			#faf7f3
		);
}

.ph-project-overview__header {
	max-width: 760px;
	margin-bottom: 34px;
}

.ph-project-overview__eyebrow {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 11px;
	color: var(--ph-color-primary, #8e3b43);
	font-size: 13px;
	font-weight: 800;
}

.ph-project-overview__eyebrow span {
	width: 30px;
	height: 2px;
	background: var(--ph-color-gold, #d4af37);
}

.ph-project-overview__title {
	margin: 0;
	color: var(--ph-color-dark, #15171b);
	font-size: clamp(31px, 8vw, 45px);
	font-weight: 800;
	line-height: 1.35;
}

.ph-project-overview__title span {
	display: block;
	color: var(--ph-color-primary, #8e3b43);
}

.ph-project-overview__intro {
	max-width: 900px;
	margin-bottom: 31px;
	color: var(--ph-color-text, #4b4f56);
	font-size: 15px;
	line-height: 1.95;
}

.ph-project-overview__intro > *:first-child {
	margin-top: 0;
}

.ph-project-overview__intro > *:last-child {
	margin-bottom: 0;
}

.ph-project-overview__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
}

.ph-project-overview__card {
	position: relative;
	display: grid;
	grid-template-columns: 54px minmax(0, 1fr);
	gap: 15px;
	padding: 20px 17px;
	background: #ffffff;
	border: 1px solid rgba(142, 59, 67, 0.11);
	border-radius: 18px;
	box-shadow: var(
		--ph-shadow-sm,
		0 6px 18px rgba(21, 23, 27, 0.06)
	);
}

.ph-project-overview__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 54px;
	height: 54px;
	background:
		linear-gradient(
			145deg,
			var(--ph-color-primary-dark, #742f36),
			var(--ph-color-primary, #8e3b43)
		);
	color: var(--ph-color-gold-light, #efd16b);
	border: 1px solid rgba(212, 175, 55, 0.6);
	border-radius: 15px;
}

.ph-project-overview__icon svg {
	width: 27px;
	height: 27px;
}

.ph-project-overview__number {
	margin: 0;
	color: var(--ph-color-gold, #d4af37);
	font-size: 11px;
	font-weight: 800;
}

.ph-project-overview__card h3 {
	margin: 4px 0 0;
	color: var(--ph-color-dark, #15171b);
	font-size: 19px;
	font-weight: 800;
}

.ph-project-overview__card div > p:last-child {
	margin: 8px 0 0;
	color: var(--ph-color-text, #4b4f56);
	font-size: 13px;
	line-height: 1.85;
}

/* ==================================================
   Tablet
================================================== */

@media (min-width: 768px) {

	.ph-project-single-hero {
		min-height: 720px;
		padding-top: 42px;
	}

	.ph-project-single-hero__content {
		padding: 120px 0 155px;
	}

	.ph-project-single-hero__description {
		font-size: 16px;
	}

	.ph-project-single-hero__facts {
		grid-template-columns: repeat(5, minmax(0, 1fr));
		margin-top: -68px;
	}

	.ph-project-single-hero__fact {
		padding: 20px 13px;
	}

	.ph-project-single-hero__fact strong {
		font-size: 14px;
	}

	.ph-project-overview {
		padding: 125px 0 88px;
	}

	.ph-project-overview__grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 18px;
	}

	.ph-project-overview__card {
		display: block;
		padding: 25px 22px;
	}

	.ph-project-overview__card h3 {
		margin-top: 15px;
		font-size: 21px;
	}
}

/* ==================================================
   Desktop
================================================== */

@media (min-width: 1100px) {

	.ph-project-single-hero {
		min-height: 790px;
	}

	.ph-project-single-hero__content {
		padding: 145px 0 180px;
	}

	.ph-project-single-hero__title {
		font-size: clamp(56px, 5vw, 76px);
	}

	.ph-project-single-hero__description {
		font-size: 17px;
	}

	.ph-project-overview {
		padding: 140px 0 100px;
	}

	.ph-project-overview__title {
		font-size: 52px;
	}

	.ph-project-overview__card {
		min-height: 300px;
	}
}
/* ==================================================
   Project Timeline
================================================== */

.ph-project-timeline {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: 72px 0;
	background:
		linear-gradient(
			145deg,
			#111820,
			#1a2631
		);
	color: #ffffff;
}

.ph-project-timeline__shape {
	position: absolute;
	top: -170px;
	left: -150px;
	z-index: -1;
	width: 430px;
	height: 430px;
	border: 1px solid rgba(212, 175, 55, 0.13);
	border-radius: 50%;
}

.ph-project-timeline__header {
	max-width: 760px;
	margin-bottom: 38px;
}

.ph-project-timeline__eyebrow {
	display: flex;
	align-items: center;
	gap: 9px;
	margin: 0 0 12px;
	color: var(--ph-color-gold-light, #efd16b);
	font-size: 13px;
	font-weight: 800;
}

.ph-project-timeline__eyebrow span {
	width: 30px;
	height: 2px;
	background: var(--ph-color-gold, #d4af37);
}

.ph-project-timeline__title {
	margin: 0;
	color: #ffffff;
	font-size: clamp(31px, 8vw, 46px);
	font-weight: 800;
	line-height: 1.35;
}

.ph-project-timeline__title span {
	display: block;
	color: var(--ph-color-gold-light, #efd16b);
}

.ph-project-timeline__description {
	margin: 14px 0 0;
	color: rgba(255, 255, 255, 0.66);
	font-size: 14px;
	line-height: 1.85;
}

.ph-project-timeline__list {
	position: relative;
	display: grid;
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ph-project-timeline__list::before {
	position: absolute;
	top: 28px;
	right: 28px;
	bottom: 28px;
	width: 1px;
	background:
		linear-gradient(
			to bottom,
			var(--ph-color-gold, #d4af37),
			rgba(212, 175, 55, 0.14)
		);
	content: "";
}

.ph-project-timeline__item {
	position: relative;
	display: grid;
	grid-template-columns: 56px minmax(0, 1fr);
	gap: 15px;
	align-items: start;
}

.ph-project-timeline__number {
	position: relative;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	background:
		linear-gradient(
			145deg,
			var(--ph-color-primary-dark, #742f36),
			var(--ph-color-primary, #8e3b43)
		);
	color: var(--ph-color-gold-light, #efd16b);
	border: 1px solid var(--ph-color-gold, #d4af37);
	border-radius: 16px;
	box-shadow: 0 14px 28px rgba(0, 0, 0, 0.18);
	font-size: 13px;
	font-weight: 800;
}

.ph-project-timeline__content {
	padding: 18px 17px;
	background: rgba(255, 255, 255, 0.065);
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 16px;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.ph-project-timeline__content h3 {
	margin: 0;
	color: #ffffff;
	font-size: 16px;
	font-weight: 800;
}

.ph-project-timeline__content p {
	margin: 7px 0 0;
	color: rgba(255, 255, 255, 0.68);
	font-size: 13px;
	line-height: 1.85;
}

@media (min-width: 768px) {

	.ph-project-timeline {
		padding: 92px 0;
	}

	.ph-project-timeline__list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px;
	}

	.ph-project-timeline__list::before {
		display: none;
	}

	.ph-project-timeline__item {
		display: block;
	}

	.ph-project-timeline__number {
		margin-bottom: 12px;
	}

	.ph-project-timeline__content {
		min-height: 175px;
		padding: 22px;
	}
}

@media (min-width: 1100px) {

	.ph-project-timeline {
		padding: 110px 0;
	}

	.ph-project-timeline__list {
		grid-template-columns: repeat(auto-fit, minmax(185px, 1fr));
	}

	.ph-project-timeline__content {
		min-height: 205px;
	}
}

/* Project related + CTA */
.ph-project-single-related{padding:90px 0 100px;background:linear-gradient(180deg,#fff,#f8f5f2)}
.ph-project-single-related__head{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-bottom:32px}
.ph-project-single-related__eyebrow{margin:0 0 8px;color:#8e3b43;font-weight:800}.ph-project-single-related__head h2{margin:0;color:#15171b;font-size:clamp(28px,3.2vw,44px);line-height:1.35}.ph-project-single-related__head>a{color:#8e3b43;font-weight:800;text-decoration:none}.ph-project-single-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.ph-project-single-cta{display:grid;grid-template-columns:minmax(0,1.3fr) auto;align-items:center;gap:34px;margin-top:54px;padding:34px;background:radial-gradient(circle at 85% 10%,rgba(212,175,55,.14),transparent 32%),linear-gradient(135deg,#15171b,#242b32);color:#fff;border:1px solid rgba(212,175,55,.28);border-radius:26px;box-shadow:0 24px 60px rgba(21,23,27,.16)}.ph-project-single-cta p{margin:0 0 8px;color:#efd16b;font-weight:800}.ph-project-single-cta h2{margin:0;font-size:clamp(25px,3vw,38px);line-height:1.4}.ph-project-single-cta span{display:block;max-width:760px;margin-top:12px;color:rgba(255,255,255,.72);line-height:1.9}.ph-project-single-cta__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.ph-project-single-cta__actions a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 17px;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:999px;text-decoration:none;font-weight:800}.ph-project-single-cta__actions a.is-primary{background:linear-gradient(135deg,#742f36,#8e3b43);border-color:rgba(212,175,55,.65)}
@media(max-width:900px){.ph-project-single-related__grid{grid-template-columns:1fr 1fr}.ph-project-single-cta{grid-template-columns:1fr}.ph-project-single-cta__actions{justify-content:flex-start}}
@media(max-width:640px){.ph-project-single-related{padding:64px 0 74px}.ph-project-single-related__head{display:block}.ph-project-single-related__head>a{display:inline-block;margin-top:14px}.ph-project-single-related__grid{grid-template-columns:1fr}.ph-project-single-cta{padding:24px 19px;border-radius:20px}.ph-project-single-cta__actions{display:grid;grid-template-columns:1fr 1fr}.ph-project-single-cta__actions a:last-child{grid-column:1/-1}}


/* v5.0 execution proof visuals */
.ph-single-project-featured,.ph-project-execution-gallery{padding:clamp(70px,8vw,112px) 0;background:#fff}.ph-single-project-featured__header,.ph-project-execution-gallery__head{display:flex;align-items:end;justify-content:space-between;gap:28px;margin-bottom:30px}.ph-single-project-featured__eyebrow,.ph-project-execution-gallery__eyebrow{display:flex;align-items:center;gap:10px;margin:0 0 10px;color:var(--ph-primary,#8e3b43);font-weight:800}.ph-single-project-featured__eyebrow span,.ph-project-execution-gallery__eyebrow span{width:34px;height:2px;background:var(--ph-gold,#d4af37)}.ph-single-project-featured__title,.ph-project-execution-gallery__head h2{margin:0;color:var(--ph-heading,#15171b);font-size:clamp(30px,4vw,48px);line-height:1.2}.ph-single-project-featured__title span,.ph-project-execution-gallery__head h2 span{color:var(--ph-primary,#8e3b43)}.ph-single-project-featured__meta{display:flex;flex-wrap:wrap;gap:8px}.ph-single-project-featured__meta span{padding:8px 12px;border-radius:999px;background:#f6ecee;color:#742f36;font-weight:700}.ph-single-project-featured__figure,.ph-project-execution-gallery__figure{margin:0}.ph-single-project-featured__media,.ph-project-execution-gallery__figure{position:relative;overflow:hidden;border-radius:28px;box-shadow:0 24px 70px rgba(21,23,27,.13)}.ph-single-project-featured__media{aspect-ratio:16/9}.ph-single-project-featured__image,.ph-project-execution-gallery__figure img{width:100%;height:100%;object-fit:cover;display:block}.ph-single-project-featured__overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 48%,rgba(12,15,18,.74))}.ph-single-project-featured__caption{position:absolute;right:24px;left:24px;bottom:22px;color:#fff}.ph-single-project-featured__caption-label{display:inline-flex;margin-bottom:7px;color:#f4d66d;font-weight:800}.ph-single-project-featured__caption strong{display:block;font-size:clamp(20px,3vw,30px)}.ph-single-project-featured__caption p{margin:7px 0 0;max-width:720px;color:rgba(255,255,255,.86)}.ph-project-execution-gallery{background:#f8f8f9}.ph-project-execution-gallery__head{align-items:flex-start;flex-direction:column;max-width:820px}.ph-project-execution-gallery__head p:last-child{margin:0;color:#5f6369;line-height:1.85}.ph-project-execution-gallery__figure{aspect-ratio:16/9}.ph-project-execution-gallery__figure figcaption{position:absolute;right:18px;left:18px;bottom:18px;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 16px;border-radius:16px;background:rgba(21,23,27,.78);backdrop-filter:blur(10px);color:#fff}.ph-project-execution-gallery__figure figcaption span{color:rgba(255,255,255,.74);font-size:13px}@media(max-width:767px){.ph-single-project-featured,.ph-project-execution-gallery{padding:64px 0}.ph-single-project-featured__header{align-items:flex-start;flex-direction:column}.ph-single-project-featured__media,.ph-project-execution-gallery__figure{aspect-ratio:4/3;border-radius:20px}.ph-single-project-featured__caption{right:16px;left:16px;bottom:14px}.ph-single-project-featured__caption p{display:none}.ph-project-execution-gallery__figure figcaption{right:10px;left:10px;bottom:10px;align-items:flex-start;flex-direction:column;gap:2px}}

/* v5.4 project case-study navigation and contextual links */
.ph-project-jump{position:sticky;top:0;z-index:18;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(142,59,67,.1);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.admin-bar .ph-project-jump{top:32px}
.ph-project-jump .ph-container{display:flex;gap:.45rem;overflow-x:auto;padding-top:.65rem;padding-bottom:.65rem;scrollbar-width:none}
.ph-project-jump .ph-container::-webkit-scrollbar{display:none}
.ph-project-jump a{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;min-height:40px;padding:.55rem .9rem;border:1px solid rgba(142,59,67,.12);border-radius:999px;background:#fff;color:var(--ph-color-dark,#15171b);font-size:.82rem;font-weight:800;text-decoration:none;white-space:nowrap}
.ph-project-jump a:hover,.ph-project-jump a:focus-visible{border-color:rgba(142,59,67,.38);color:var(--ph-color-primary,#8e3b43)}
.ph-project-single-hero__badge-link{display:inline-flex;align-items:center;min-height:34px;padding:7px 12px;background:rgba(142,59,67,.9);color:#fff;border:1px solid rgba(212,175,55,.55);border-radius:999px;font-size:11px;font-weight:800;text-decoration:none}
.ph-project-single-hero__badge-link:hover,.ph-project-single-hero__badge-link:focus-visible{background:#742f36;color:#fff}
.ph-project-single-hero__location-link{display:inline-flex;align-items:center;gap:7px;color:rgba(255,255,255,.86);font-size:12px;font-weight:700;text-decoration:none}
.ph-project-single-hero__location-link:hover,.ph-project-single-hero__location-link:focus-visible{color:var(--ph-color-gold-light,#efd16b)}
@media(max-width:782px){.admin-bar .ph-project-jump{top:46px}}
@media(max-width:600px){.ph-project-jump{position:relative;top:auto}.ph-project-jump a{min-height:44px;font-size:.8rem}.ph-project-single-hero__title{font-size:clamp(30px,9vw,42px)}}
@media(prefers-reduced-motion:reduce){.ph-project-jump{scroll-behavior:auto}}
