
:root{
	--ekc-orange:#F16A21;
	--ekc-ink:#171717;
	--ekc-text:#484848;
	--ekc-muted:#747474;
	--ekc-cream:#F6F3EE;
	--ekc-warm:#ECE5DB;
	--ekc-line:#DDD6CD;
	--ekc-max:1320px;
}

body.single-ekc_project .site-main{
	max-width:none!important;
	padding:0!important;
	margin:0!important;
}

.ekc-project-single{
	width:100%;
	overflow:hidden;
	background:#fff;
	color:var(--ekc-text);
	font-family:Arial,Helvetica,sans-serif;
	line-height:1.7;
}

.ekc-project-single *,
.ekc-project-single *::before,
.ekc-project-single *::after{box-sizing:border-box}

.ekc-project-single img{display:block;max-width:100%}
.ekc-project-single a{text-decoration:none}
.ekc-project-single h1,
.ekc-project-single h2,
.ekc-project-single h3{
	margin:0;
	color:var(--ekc-ink);
	font-family:Georgia,"Times New Roman",serif;
	font-weight:600;
	line-height:1.03;
	letter-spacing:-.03em;
}

.ekc-p-wrap{
	width:min(calc(100% - 56px),var(--ekc-max));
	margin-inline:auto;
}

.ekc-p-section{padding:clamp(52px,5.4vw,76px) 0}

.ekc-p-kicker{
	display:inline-flex;
	align-items:center;
	gap:12px;
	margin:0 0 14px;
	color:var(--ekc-orange);
	font-size:11px;
	font-weight:900;
	letter-spacing:.17em;
	text-transform:uppercase;
}

.ekc-p-kicker::before{
	content:"";
	width:40px;
	height:2px;
	background:currentColor;
}

.ekc-p-title{font-size:clamp(38px,4.8vw,68px)}

.ekc-p-copy{
	color:var(--ekc-muted);
	font-size:16px;
	line-height:1.8;
}

.ekc-p-btn{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	min-height:50px;
	padding:14px 23px;
	border:1px solid var(--ekc-orange);
	border-radius:2px;
	background:var(--ekc-orange);
	color:#fff!important;
	font-size:12px;
	font-weight:900;
	letter-spacing:.055em;
	text-transform:uppercase;
	transition:.28s ease;
}

.ekc-p-btn:hover{
	background:var(--ekc-ink);
	border-color:var(--ekc-ink);
	transform:translateY(-2px);
}

/* Hero */
.ekc-p-hero{
	position:relative;
	min-height:clamp(690px,82vh,900px);
	display:flex;
	align-items:flex-end;
	overflow:hidden;
	background:#111;
	isolation:isolate;
}

.ekc-p-hero__media{
	position:absolute;
	inset:0;
}

.ekc-p-hero__media img{
	width:100%;
	height:100%;
	object-fit:cover;
}

.ekc-p-hero__media::after{
	content:"";
	position:absolute;
	inset:0;
	background:
		linear-gradient(90deg,rgba(8,8,8,.93),rgba(8,8,8,.55) 42%,rgba(8,8,8,.08) 75%),
		linear-gradient(0deg,rgba(8,8,8,.55),transparent 50%);
}

.ekc-p-hero__content{
	position:relative;
	z-index:2;
	width:100%;
	padding:120px 0 70px;
}

.ekc-p-hero .ekc-p-kicker{color:#fff}
.ekc-p-hero .ekc-p-kicker::before{background:var(--ekc-orange)}

.ekc-p-hero h1{
	max-width:900px;
	color:#fff;
	font-size:clamp(52px,7vw,96px);
}

.ekc-p-hero__meta{
	display:flex;
	flex-wrap:wrap;
	gap:8px 18px;
	margin-top:18px;
	color:rgba(255,255,255,.72);
	font-size:12px;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
}

.ekc-p-hero__meta span+span::before{
	content:"/";
	margin-right:18px;
	color:var(--ekc-orange);
}

/* Snapshot */
.ekc-p-snapshot{
	background:var(--ekc-cream);
	border-bottom:1px solid var(--ekc-line);
}

.ekc-p-snapshot__grid{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	border-top:1px solid var(--ekc-line);
	border-left:1px solid var(--ekc-line);
}

.ekc-p-snapshot__item{
	min-height:116px;
	padding:18px;
	border-right:1px solid var(--ekc-line);
	border-bottom:1px solid var(--ekc-line);
}

.ekc-p-snapshot__item small{
	display:block;
	margin-bottom:6px;
	color:var(--ekc-orange);
	font-size:9px;
	font-weight:900;
	letter-spacing:.13em;
	text-transform:uppercase;
}

.ekc-p-snapshot__item strong{
	color:var(--ekc-ink);
	font-size:14px;
}

/* Story */
.ekc-p-story{
	display:grid;
	grid-template-columns:.9fr 1.1fr;
	gap:64px;
	align-items:start;
}

.ekc-p-story__content p{margin:0 0 14px}

.ekc-p-story__split{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px;
}

.ekc-p-story-card{
	padding:26px;
	background:var(--ekc-cream);
	border:1px solid var(--ekc-line);
}

.ekc-p-story-card h3{
	margin-bottom:10px;
	font-family:Arial,Helvetica,sans-serif;
	font-size:18px;
	font-weight:800;
	letter-spacing:-.01em;
}

.ekc-p-story-card p{
	margin:0;
	color:var(--ekc-muted);
	font-size:14px;
}

/* Gallery */
.ekc-p-gallery{
	background:var(--ekc-ink);
	color:#fff;
}

.ekc-p-gallery .ekc-p-title{color:#fff}
.ekc-p-gallery__grid{
	display:grid;
	grid-template-columns:1.25fr .75fr .75fr;
	grid-template-rows:320px 270px;
	gap:10px;
	margin-top:26px;
}

.ekc-p-gallery__item{
	position:relative;
	overflow:hidden;
	background:#272727;
	cursor:zoom-in;
}

.ekc-p-gallery__item:first-child{grid-row:1/3}
.ekc-p-gallery__item:nth-child(4){grid-column:2/4}

.ekc-p-gallery__item img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .65s ease;
}

.ekc-p-gallery__item:hover img{transform:scale(1.035)}

/* Before after */
.ekc-p-ba-head{
	display:grid;
	grid-template-columns:1fr minmax(300px,460px);
	gap:44px;
	align-items:end;
	margin-bottom:24px;
}
.ekc-p-ba-head p{margin:0}

.ekc-p-ba{
	--pos:50%;
	position:relative;
	aspect-ratio:16/9;
	overflow:hidden;
	background:#ccc;
}

.ekc-p-ba img{
	position:absolute;
	inset:0;
	width:100%;
	height:100%;
	object-fit:cover;
}

.ekc-p-ba__before{
	position:absolute;
	inset:0;
	width:100%;
	overflow:hidden;
	clip-path:inset(0 calc(100% - var(--pos)) 0 0);
}

.ekc-p-ba__before img{
	width:100%;
	height:100%;
	max-width:none;
	object-fit:cover;
}

.ekc-p-ba__line{
	position:absolute;
	z-index:4;
	top:0;
	bottom:0;
	left:var(--pos);
	width:2px;
	background:#fff;
	transform:translateX(-50%);
	pointer-events:none;
}

.ekc-p-ba__handle{
	position:absolute;
	z-index:5;
	top:50%;
	left:var(--pos);
	width:54px;
	height:54px;
	display:grid;
	place-items:center;
	border:2px solid #fff;
	border-radius:50%;
	background:var(--ekc-orange);
	color:#fff;
	transform:translate(-50%,-50%);
	pointer-events:none;
}

.ekc-p-ba input{
	position:absolute;
	z-index:8;
	inset:0;
	width:100%;
	height:100%;
	margin:0;
	opacity:0;
	cursor:ew-resize;
}

.ekc-p-ba__label{
	position:absolute;
	z-index:6;
	top:16px;
	padding:7px 10px;
	background:rgba(15,15,15,.78);
	color:#fff;
	font-size:9px;
	font-weight:900;
	letter-spacing:.13em;
	text-transform:uppercase;
	pointer-events:none;
}
.ekc-p-ba__label--before{left:16px}
.ekc-p-ba__label--after{right:16px}

/* Details */
.ekc-p-details{
	background:var(--ekc-warm);
}

.ekc-p-details__grid{
	display:grid;
	grid-template-columns:.72fr 1.28fr;
	gap:58px;
	align-items:start;
}

.ekc-p-detail-cards{
	display:grid;
	grid-template-columns:repeat(2,1fr);
	border-top:1px solid #d3cabf;
	border-left:1px solid #d3cabf;
}

.ekc-p-detail-card{
	min-height:140px;
	padding:20px;
	border-right:1px solid #d3cabf;
	border-bottom:1px solid #d3cabf;
	background:rgba(255,255,255,.35);
}

.ekc-p-detail-card small{
	display:block;
	margin-bottom:8px;
	color:var(--ekc-orange);
	font-size:9px;
	font-weight:900;
	letter-spacing:.13em;
	text-transform:uppercase;
}

.ekc-p-detail-card strong{
	color:var(--ekc-ink);
	font-size:14px;
}

/* Testimonial */
.ekc-p-testimonial{
	background:var(--ekc-orange);
	color:#fff;
}

.ekc-p-testimonial blockquote{
	max-width:1000px;
	margin:0;
	color:#fff;
	font-family:Georgia,"Times New Roman",serif;
	font-size:clamp(31px,4vw,54px);
	line-height:1.15;
	letter-spacing:-.025em;
}

.ekc-p-testimonial cite{
	display:block;
	margin-top:18px;
	font-style:normal;
	font-size:11px;
	font-weight:900;
	letter-spacing:.1em;
	text-transform:uppercase;
}

/* Related service */
.ekc-p-service-cta{
	background:var(--ekc-cream);
}

.ekc-p-service-cta__grid{
	display:grid;
	grid-template-columns:1fr auto;
	gap:36px;
	align-items:center;
}

/* Related cards + shortcode cards */
.ekc-project-cards,
.ekc-p-related__grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:10px;
}

.ekc-project-card,
.ekc-p-related-card{
	display:block;
	background:#fff;
	color:var(--ekc-ink)!important;
	border:1px solid var(--ekc-line);
	overflow:hidden;
	transition:.3s ease;
}

.ekc-project-card:hover,
.ekc-p-related-card:hover{
	transform:translateY(-4px);
	box-shadow:0 16px 38px rgba(0,0,0,.08);
}

.ekc-project-card__media,
.ekc-p-related-card__media{
	aspect-ratio:4/3;
	overflow:hidden;
	background:#eee;
}

.ekc-project-card__media img,
.ekc-p-related-card__media img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .6s ease;
}

.ekc-project-card:hover img,
.ekc-p-related-card:hover img{transform:scale(1.035)}

.ekc-project-card__body,
.ekc-p-related-card__body{padding:18px}

.ekc-project-card__body span,
.ekc-p-related-card__body span{
	display:block;
	margin-bottom:6px;
	color:var(--ekc-orange);
	font-size:9px;
	font-weight:900;
	letter-spacing:.12em;
	text-transform:uppercase;
}

.ekc-project-card__body h3,
.ekc-p-related-card__body h3{
	font-size:25px;
}

.ekc-project-card__body em{
	display:block;
	margin-top:12px;
	color:var(--ekc-muted);
	font-style:normal;
	font-size:11px;
	font-weight:800;
	text-transform:uppercase;
}

/* Final CTA */
.ekc-p-final{
	position:relative;
	overflow:hidden;
	background:var(--ekc-ink);
	color:#fff;
}

.ekc-p-final::after{
	content:"";
	position:absolute;
	right:-120px;
	top:-190px;
	width:440px;
	height:440px;
	border:1px solid rgba(241,106,33,.35);
	transform:rotate(31deg);
}

.ekc-p-final__grid{
	position:relative;
	z-index:2;
	display:grid;
	grid-template-columns:1fr auto;
	gap:36px;
	align-items:center;
}

.ekc-p-final h2{
	max-width:850px;
	color:#fff;
	font-size:clamp(39px,4.8vw,64px);
}

.ekc-p-final p{
	max-width:700px;
	margin:12px 0 0;
	color:rgba(255,255,255,.68);
}

/* Lightbox */
.ekc-p-lightbox{
	position:fixed;
	z-index:999999;
	inset:0;
	display:none;
	align-items:center;
	justify-content:center;
	padding:30px;
	background:rgba(0,0,0,.92);
}
.ekc-p-lightbox.is-open{display:flex}
.ekc-p-lightbox img{
	max-width:min(1500px,94vw);
	max-height:90vh;
	object-fit:contain;
}
.ekc-p-lightbox button{
	position:absolute;
	top:18px;
	right:20px;
	width:42px;
	height:42px;
	border:1px solid rgba(255,255,255,.35);
	border-radius:50%;
	background:transparent;
	color:#fff;
	font-size:24px;
	cursor:pointer;
}

/* Reveal */
.ekc-p-reveal{
	opacity:0;
	transform:translateY(20px);
	transition:opacity .72s ease,transform .72s cubic-bezier(.22,.61,.36,1);
}
.ekc-p-reveal.is-visible{
	opacity:1;
	transform:none;
}

@media(max-width:1024px){
	.ekc-p-snapshot__grid{grid-template-columns:repeat(2,1fr)}
	.ekc-p-story,
	.ekc-p-details__grid{grid-template-columns:1fr;gap:32px}
	.ekc-p-gallery__grid{
		grid-template-columns:1fr 1fr;
		grid-template-rows:430px 260px 260px;
	}
	.ekc-p-gallery__item:first-child{grid-column:1/-1;grid-row:auto}
	.ekc-p-gallery__item:nth-child(4){grid-column:1/-1}
	.ekc-project-cards,
	.ekc-p-related__grid{grid-template-columns:1fr 1fr}
}

@media(max-width:767px){
	.ekc-p-wrap{width:calc(100% - 30px)}
	.ekc-p-section{padding:50px 0}
	.ekc-p-hero{min-height:700px}
	.ekc-p-hero__media::after{
		background:linear-gradient(0deg,rgba(8,8,8,.95),rgba(8,8,8,.55) 65%,rgba(8,8,8,.15));
	}
	.ekc-p-hero__content{padding:110px 0 55px}
	.ekc-p-hero h1{font-size:46px}
	.ekc-p-snapshot__grid,
	.ekc-p-story__split,
	.ekc-p-detail-cards,
	.ekc-project-cards,
	.ekc-p-related__grid{grid-template-columns:1fr}
	.ekc-p-gallery__grid{
		display:flex;
		overflow-x:auto;
		gap:9px;
		scroll-snap-type:x mandatory;
		scrollbar-width:none;
	}
	.ekc-p-gallery__grid::-webkit-scrollbar{display:none}
	.ekc-p-gallery__item,
	.ekc-p-gallery__item:first-child,
	.ekc-p-gallery__item:nth-child(4){
		flex:0 0 84vw;
		height:420px;
		scroll-snap-align:start;
	}
	.ekc-p-ba{aspect-ratio:4/5}
	.ekc-p-ba-head,
	.ekc-p-service-cta__grid,
	.ekc-p-final__grid{grid-template-columns:1fr;gap:18px}
	.ekc-p-btn{width:100%}
}

@media(prefers-reduced-motion:reduce){
	.ekc-p-reveal{opacity:1;transform:none}
	.ekc-project-card,
	.ekc-p-related-card,
	.ekc-project-card img,
	.ekc-p-related-card img{transition:none!important}
}


/* =========================================================
   RELEVANT PROJECTS — service-page shortcode
   [ekc_relevant_projects]
   ========================================================= */
.ekc-rp{
	--ekc-rp-orange:#F16A21;
	--ekc-rp-ink:#171717;
	--ekc-rp-text:#484848;
	--ekc-rp-muted:#747474;
	--ekc-rp-cream:#F6F3EE;
	--ekc-rp-line:#DDD6CD;
	--ekc-rp-max:1320px;

	position:relative;
	width:100vw;
	max-width:none!important;
	margin-left:calc(50% - 50vw);
	padding:clamp(52px,5.4vw,74px) 0;
	overflow:hidden;
	background:#fff;
	color:var(--ekc-rp-text);
	font-family:Arial,Helvetica,sans-serif;
}

.ekc-rp *,
.ekc-rp *::before,
.ekc-rp *::after{box-sizing:border-box}

.ekc-rp__wrap{
	width:min(calc(100% - 56px),var(--ekc-rp-max));
	margin-inline:auto;
}

.ekc-rp__head{
	display:grid;
	grid-template-columns:1fr minmax(300px,440px);
	gap:44px;
	align-items:end;
	margin-bottom:25px;
}

.ekc-rp__kicker{
	display:inline-flex;
	align-items:center;
	gap:12px;
	margin:0 0 13px;
	color:var(--ekc-rp-orange);
	font-size:10px;
	font-weight:900;
	letter-spacing:.16em;
	text-transform:uppercase;
}

.ekc-rp__kicker::before{
	content:"";
	width:38px;
	height:2px;
	background:currentColor;
}

.ekc-rp h2{
	margin:0;
	color:var(--ekc-rp-ink);
	font-family:Georgia,"Times New Roman",serif;
	font-size:clamp(37px,4.4vw,61px);
	font-weight:600;
	line-height:1.04;
	letter-spacing:-.03em;
}

.ekc-rp__intro p{
	margin:0 0 8px;
	color:var(--ekc-rp-muted);
	font-size:13px;
}

.ekc-rp__intro a{
	color:var(--ekc-rp-ink)!important;
	border-bottom:1px solid var(--ekc-rp-orange);
	font-size:10px;
	font-weight:900;
	letter-spacing:.055em;
	text-decoration:none!important;
	text-transform:uppercase;
}

.ekc-rp__grid{
	display:grid;
	grid-template-columns:repeat(3,1fr);
	gap:10px;
}

.ekc-rp__card{
	position:relative;
	min-height:390px;
	overflow:hidden;
	background:#222;
	color:#fff!important;
	text-decoration:none!important;
}

.ekc-rp__media{
	position:absolute;
	inset:0;
	overflow:hidden;
	background:#222;
}

.ekc-rp__media::after{
	content:"";
	position:absolute;
	inset:0;
	background:linear-gradient(to top,rgba(8,8,8,.94),rgba(8,8,8,.03) 65%);
}

.ekc-rp__media img{
	width:100%;
	height:100%;
	object-fit:cover;
	transition:transform .72s cubic-bezier(.22,.61,.36,1);
}

.ekc-rp__card:hover .ekc-rp__media img{
	transform:scale(1.045);
}

.ekc-rp__body{
	position:absolute;
	z-index:2;
	left:20px;
	right:20px;
	bottom:18px;
}

.ekc-rp__body small{
	display:block;
	margin-bottom:5px;
	color:var(--ekc-rp-orange);
	font-size:9px;
	font-weight:900;
	letter-spacing:.14em;
	text-transform:uppercase;
}

.ekc-rp__body h3{
	margin:0;
	color:#fff;
	font-family:Georgia,"Times New Roman",serif;
	font-size:clamp(26px,2.4vw,36px);
	font-weight:600;
	line-height:1.08;
	letter-spacing:-.025em;
}

.ekc-rp__body span{
	display:inline-block;
	margin-top:11px;
	color:rgba(255,255,255,.68);
	font-size:9px;
	font-weight:900;
	letter-spacing:.08em;
	text-transform:uppercase;
	transition:.25s ease;
}

.ekc-rp__card:hover .ekc-rp__body span{
	color:#fff;
	transform:translateX(3px);
}

@media(max-width:900px){
	.ekc-rp__head{
		grid-template-columns:1fr;
		gap:15px;
	}

	.ekc-rp__grid{
		grid-template-columns:1fr 1fr;
	}
}

@media(max-width:767px){
	.ekc-rp__wrap{width:calc(100% - 30px)}

	.ekc-rp__grid{
		display:flex;
		gap:9px;
		overflow-x:auto;
		scroll-snap-type:x mandatory;
		scrollbar-width:none;
	}

	.ekc-rp__grid::-webkit-scrollbar{display:none}

	.ekc-rp__card{
		flex:0 0 84vw;
		min-height:410px;
		scroll-snap-align:start;
	}
}
