/* =========================================================
   EASTERN PROJECT GALLERY — V2.0
   Clean, ID-independent Elementor widget.
========================================================= */

.epg-widget{
	--epg-gap:14px;
	--epg-row:230px;
	--epg-radius:18px;
	--epg-overlay:#06182E;
	--epg-overlay-opacity:72;
	--epg-gradient-depth:42%;
	width:100%;
}

.epg-widget,
.epg-widget *{
	box-sizing:border-box;
}

.epg-section-head{
	margin-bottom:34px;
}

.epg-eyebrow{
	display:flex;
	align-items:center;
	gap:10px;
	margin-bottom:10px;
	font-family:"Montserrat",Arial,sans-serif;
	font-size:14px;
	font-weight:600;
	line-height:1.2;
	color:#06182E;
}

.epg-eyebrow span{
	color:#C38A43;
	font-size:22px;
	line-height:1;
}

.epg-heading{
	margin:0;
	max-width:760px;
	font-family:"Google Sans Flex","Google Sans",Arial,sans-serif;
	font-size:clamp(34px,4vw,58px);
	font-weight:700;
	line-height:1.02;
	letter-spacing:-.04em;
	color:#06182E;
}

.epg-grid{
	display:grid;
	grid-template-columns:repeat(12,minmax(0,1fr));
	grid-auto-flow:dense;
	grid-auto-rows:var(--epg-row);
	gap:var(--epg-gap);
	width:100%;
}

.epg-card{
	position:relative;
	display:block;
	min-width:0;
	min-height:0;
	overflow:hidden;
	border-radius:var(--epg-radius);
	background:#E7E4DE;
	text-decoration:none!important;
	isolation:isolate;
}

.epg-image{
	display:block;
	width:100%;
	height:100%;
	max-width:none;
	object-fit:cover;
	object-position:var(--epg-focal-x,50%) var(--epg-focal-y,50%);
	transform:scale(1.01);
	transition:
		transform .8s cubic-bezier(.22,1,.36,1),
		filter .45s ease;
}

.epg-card::after{
	content:"";
	position:absolute;
	inset:0;
	z-index:1;
	pointer-events:none;
	background:
		linear-gradient(
			to top,
			var(--epg-overlay) 0%,
			var(--epg-overlay) var(--epg-gradient-depth),
			transparent 78%
		);
	opacity:calc(var(--epg-overlay-opacity) / 100);
	transition:opacity .35s ease;
}

.epg-overlay{
	position:absolute;
	z-index:2;
	left:22px;
	right:22px;
	bottom:20px;
	transition:
		transform .4s cubic-bezier(.22,1,.36,1),
		opacity .35s ease;
}

.epg-label{
	margin-bottom:5px;
	font-family:"Montserrat",Arial,sans-serif;
	font-size:12px;
	font-weight:600;
	line-height:1.2;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#C38A43;
}

.epg-title{
	margin:0;
	font-family:"Google Sans Flex","Google Sans",Arial,sans-serif;
	font-size:clamp(20px,2vw,30px);
	font-weight:600;
	line-height:1.05;
	letter-spacing:-.025em;
	color:#FFF;
}

/* ---------------------------------------------------------
   Text position
--------------------------------------------------------- */

.epg-text-top-left .epg-overlay,
.epg-item-text-top-left .epg-overlay{
	top:20px;
	bottom:auto;
	text-align:left;
}

.epg-text-top-center .epg-overlay,
.epg-item-text-top-center .epg-overlay{
	top:20px;
	bottom:auto;
	text-align:center;
}

.epg-text-center .epg-overlay,
.epg-item-text-center .epg-overlay{
	top:50%;
	bottom:auto;
	transform:translateY(-50%);
	text-align:center;
}

.epg-text-bottom-center .epg-overlay,
.epg-item-text-bottom-center .epg-overlay{
	text-align:center;
}

/* ---------------------------------------------------------
   Hover styles
--------------------------------------------------------- */

.epg-hover-reveal .epg-overlay{
	transform:translateY(8px);
	opacity:.9;
}

.epg-hover-reveal .epg-card:hover .epg-image{
	transform:scale(1.06);
}

.epg-hover-reveal .epg-card:hover::after{
	opacity:min(1, calc((var(--epg-overlay-opacity) + 14) / 100));
}

.epg-hover-reveal .epg-card:hover .epg-overlay{
	transform:translateY(0);
	opacity:1;
}

.epg-hover-zoom .epg-card:hover .epg-image{
	transform:scale(1.065);
}

.epg-hover-darken .epg-card:hover::after{
	opacity:min(1, calc((var(--epg-overlay-opacity) + 22) / 100));
}

.epg-hover-lift .epg-card{
	transition:
		transform .45s cubic-bezier(.22,1,.36,1),
		box-shadow .45s ease;
}

.epg-hover-lift .epg-card:hover{
	transform:translateY(-6px);
	box-shadow:0 20px 45px rgba(6,24,46,.16);
}

.epg-hover-none .epg-image,
.epg-hover-none .epg-overlay,
.epg-hover-none .epg-card,
.epg-hover-none .epg-card::after{
	transition:none!important;
}

/* =========================================================
   AUTO LAYOUT — adapts to image count
========================================================= */

/* 1 */
.epg-layout-auto.epg-count-1 .epg-card:nth-child(1){
	grid-column:1 / 13;
	grid-row:span 2;
}

/* 2 */
.epg-layout-auto.epg-count-2 .epg-card:nth-child(1){
	grid-column:1 / 8;
	grid-row:span 2;
}

.epg-layout-auto.epg-count-2 .epg-card:nth-child(2){
	grid-column:8 / 13;
	grid-row:span 2;
}

/* 3 */
.epg-layout-auto.epg-count-3 .epg-card:nth-child(1){
	grid-column:1 / 8;
	grid-row:span 2;
}

.epg-layout-auto.epg-count-3 .epg-card:nth-child(2),
.epg-layout-auto.epg-count-3 .epg-card:nth-child(3){
	grid-column:8 / 13;
	grid-row:span 1;
}

/* 4 */
.epg-layout-auto.epg-count-4 .epg-card:nth-child(1){
	grid-column:1 / 8;
	grid-row:span 2;
}

.epg-layout-auto.epg-count-4 .epg-card:nth-child(2){
	grid-column:8 / 13;
	grid-row:span 1;
}

.epg-layout-auto.epg-count-4 .epg-card:nth-child(3){
	grid-column:8 / 13;
	grid-row:span 1;
}

.epg-layout-auto.epg-count-4 .epg-card:nth-child(4){
	grid-column:1 / 13;
	grid-row:span 1;
}

/* 5 */
.epg-layout-auto.epg-count-5 .epg-card:nth-child(1){
	grid-column:1 / 8;
	grid-row:span 2;
}

.epg-layout-auto.epg-count-5 .epg-card:nth-child(2){
	grid-column:8 / 13;
	grid-row:span 1;
}

.epg-layout-auto.epg-count-5 .epg-card:nth-child(3){
	grid-column:8 / 13;
	grid-row:span 1;
}

.epg-layout-auto.epg-count-5 .epg-card:nth-child(4){
	grid-column:1 / 9;
	grid-row:span 1;
}

.epg-layout-auto.epg-count-5 .epg-card:nth-child(5){
	grid-column:9 / 13;
	grid-row:span 1;
}

/* 6+ */
.epg-layout-auto.epg-count-6 .epg-card:nth-child(6n + 1),
.epg-layout-auto.epg-count-7 .epg-card:nth-child(6n + 1),
.epg-layout-auto.epg-count-8 .epg-card:nth-child(6n + 1){
	grid-column:1 / 8;
	grid-row:span 2;
}

.epg-layout-auto.epg-count-6 .epg-card:nth-child(6n + 2),
.epg-layout-auto.epg-count-7 .epg-card:nth-child(6n + 2),
.epg-layout-auto.epg-count-8 .epg-card:nth-child(6n + 2){
	grid-column:8 / 13;
	grid-row:span 1;
}

.epg-layout-auto.epg-count-6 .epg-card:nth-child(6n + 3),
.epg-layout-auto.epg-count-7 .epg-card:nth-child(6n + 3),
.epg-layout-auto.epg-count-8 .epg-card:nth-child(6n + 3){
	grid-column:8 / 13;
	grid-row:span 1;
}

.epg-layout-auto.epg-count-6 .epg-card:nth-child(6n + 4),
.epg-layout-auto.epg-count-7 .epg-card:nth-child(6n + 4),
.epg-layout-auto.epg-count-8 .epg-card:nth-child(6n + 4){
	grid-column:1 / 9;
	grid-row:span 1;
}

.epg-layout-auto.epg-count-6 .epg-card:nth-child(6n + 5),
.epg-layout-auto.epg-count-7 .epg-card:nth-child(6n + 5),
.epg-layout-auto.epg-count-8 .epg-card:nth-child(6n + 5){
	grid-column:9 / 13;
	grid-row:span 2;
}

.epg-layout-auto.epg-count-6 .epg-card:nth-child(6n + 6),
.epg-layout-auto.epg-count-7 .epg-card:nth-child(6n + 6),
.epg-layout-auto.epg-count-8 .epg-card:nth-child(6n + 6){
	grid-column:1 / 9;
	grid-row:span 1;
}

/* =========================================================
   PRESETS
========================================================= */

/* Hero Left */
.epg-layout-hero-left .epg-card:nth-child(6n + 1){
	grid-column:1 / 8;
	grid-row:span 2;
}

.epg-layout-hero-left .epg-card:nth-child(6n + 2),
.epg-layout-hero-left .epg-card:nth-child(6n + 3){
	grid-column:8 / 13;
	grid-row:span 1;
}

.epg-layout-hero-left .epg-card:nth-child(6n + 4),
.epg-layout-hero-left .epg-card:nth-child(6n + 6){
	grid-column:1 / 9;
	grid-row:span 1;
}

.epg-layout-hero-left .epg-card:nth-child(6n + 5){
	grid-column:9 / 13;
	grid-row:span 2;
}

/* Hero Right */
.epg-layout-hero-right .epg-card:nth-child(6n + 1){
	grid-column:6 / 13;
	grid-row:span 2;
}

.epg-layout-hero-right .epg-card:nth-child(6n + 2),
.epg-layout-hero-right .epg-card:nth-child(6n + 3){
	grid-column:1 / 6;
	grid-row:span 1;
}

.epg-layout-hero-right .epg-card:nth-child(6n + 4){
	grid-column:5 / 13;
	grid-row:span 1;
}

.epg-layout-hero-right .epg-card:nth-child(6n + 5){
	grid-column:1 / 5;
	grid-row:span 2;
}

.epg-layout-hero-right .epg-card:nth-child(6n + 6){
	grid-column:5 / 13;
	grid-row:span 1;
}

/* Center Focus */
.epg-layout-center-focus .epg-card:nth-child(5n + 1){
	grid-column:4 / 10;
	grid-row:span 2;
}

.epg-layout-center-focus .epg-card:nth-child(5n + 2){
	grid-column:1 / 4;
	grid-row:span 1;
}

.epg-layout-center-focus .epg-card:nth-child(5n + 3){
	grid-column:10 / 13;
	grid-row:span 1;
}

.epg-layout-center-focus .epg-card:nth-child(5n + 4){
	grid-column:1 / 4;
	grid-row:span 1;
}

.epg-layout-center-focus .epg-card:nth-child(5n + 5){
	grid-column:10 / 13;
	grid-row:span 1;
}

/* Editorial */
.epg-layout-editorial .epg-card:nth-child(6n + 1){
	grid-column:1 / 9;
	grid-row:span 2;
}

.epg-layout-editorial .epg-card:nth-child(6n + 2){
	grid-column:9 / 13;
	grid-row:span 1;
}

.epg-layout-editorial .epg-card:nth-child(6n + 3){
	grid-column:9 / 13;
	grid-row:span 1;
}

.epg-layout-editorial .epg-card:nth-child(6n + 4){
	grid-column:1 / 5;
	grid-row:span 2;
}

.epg-layout-editorial .epg-card:nth-child(6n + 5),
.epg-layout-editorial .epg-card:nth-child(6n + 6){
	grid-column:5 / 13;
	grid-row:span 1;
}

/* Balanced */
.epg-layout-balanced .epg-card{
	grid-column:span 4;
	grid-row:span 1;
}

.epg-layout-balanced .epg-card:nth-child(4n + 1){
	grid-column:span 6;
}

.epg-layout-balanced .epg-card:nth-child(4n + 2){
	grid-column:span 6;
}

/* Masonry-style */
.epg-layout-masonry .epg-card{
	grid-column:span 4;
	grid-row:span 1;
}

.epg-layout-masonry .epg-card:nth-child(5n + 1),
.epg-layout-masonry .epg-card:nth-child(5n + 4){
	grid-row:span 2;
}

.epg-layout-masonry .epg-card:nth-child(7n + 3){
	grid-column:span 8;
}

/* =========================================================
   CUSTOM SIZING
========================================================= */

.epg-layout-custom .epg-card{
	grid-column:span 3;
	grid-row:span 1;
}

.epg-layout-custom .epg-card.epg-d-small{
	grid-column:span 3;
	grid-row:span 1;
}

.epg-layout-custom .epg-card.epg-d-wide{
	grid-column:span 6;
	grid-row:span 1;
}

.epg-layout-custom .epg-card.epg-d-tall{
	grid-column:span 3;
	grid-row:span 2;
}

.epg-layout-custom .epg-card.epg-d-large{
	grid-column:span 6;
	grid-row:span 2;
}

.epg-layout-custom .epg-card.epg-d-auto{
	grid-column:span 4;
	grid-row:span 1;
}

/* =========================================================
   TABLET
========================================================= */

@media(max-width:1024px){

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

	.epg-layout-auto .epg-card,
	.epg-layout-hero-left .epg-card,
	.epg-layout-hero-right .epg-card,
	.epg-layout-center-focus .epg-card,
	.epg-layout-editorial .epg-card,
	.epg-layout-balanced .epg-card,
	.epg-layout-masonry .epg-card{
		grid-column:auto;
		grid-row:span 1;
	}

	.epg-layout-auto .epg-card:nth-child(4n + 1),
	.epg-layout-hero-left .epg-card:nth-child(4n + 1),
	.epg-layout-hero-right .epg-card:nth-child(4n + 1),
	.epg-layout-editorial .epg-card:nth-child(4n + 1){
		grid-row:span 2;
	}

	.epg-layout-custom .epg-card{
		grid-column:span 1;
		grid-row:span 1;
	}

	.epg-layout-custom .epg-card.epg-t-wide{
		grid-column:span 2;
		grid-row:span 1;
	}

	.epg-layout-custom .epg-card.epg-t-tall{
		grid-column:span 1;
		grid-row:span 2;
	}

	.epg-layout-custom .epg-card.epg-t-small,
	.epg-layout-custom .epg-card.epg-t-auto{
		grid-column:span 1;
		grid-row:span 1;
	}
}

/* =========================================================
   MOBILE
========================================================= */

@media(max-width:767px){

	.epg-grid{
		display:flex;
		gap:var(--epg-gap);
	}

	.epg-mobile-stack .epg-grid{
		flex-direction:column;
	}

	.epg-mobile-stack .epg-card{
		width:100%;
		min-height:var(--epg-row);
		flex:0 0 auto;
	}

	.epg-mobile-stack .epg-card:first-child{
		min-height:calc(var(--epg-row) * 1.18);
	}

	.epg-mobile-swipe .epg-grid{
		flex-direction:row;
		overflow-x:auto;
		scroll-snap-type:x mandatory;
		overscroll-behavior-inline:contain;
		-webkit-overflow-scrolling:touch;
		scrollbar-width:none;
		padding-bottom:2px;
	}

	.epg-mobile-swipe .epg-grid::-webkit-scrollbar{
		display:none;
	}

	.epg-mobile-swipe .epg-card{
		flex:0 0 86%;
		min-height:var(--epg-row);
		scroll-snap-align:start;
	}

	.epg-overlay{
		left:16px;
		right:16px;
		bottom:15px;
	}

	.epg-text-top-left .epg-overlay,
	.epg-item-text-top-left .epg-overlay,
	.epg-text-top-center .epg-overlay,
	.epg-item-text-top-center .epg-overlay{
		top:15px;
	}
}

/* =========================================================
   LIGHTBOX
========================================================= */

.epg-lightbox{
	position:fixed;
	inset:0;
	z-index:999999;
	display:flex;
	align-items:center;
	justify-content:center;
	padding:34px;
	background:rgba(3,11,20,.94);
	opacity:0;
	visibility:hidden;
	transition:
		opacity .28s ease,
		visibility .28s ease;
}

.epg-lightbox.is-open{
	opacity:1;
	visibility:visible;
}

.epg-lightbox-stage{
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	max-width:92vw;
	max-height:92vh;
}

.epg-lightbox-stage img{
	display:block;
	max-width:min(92vw,1600px);
	max-height:84vh;
	width:auto;
	height:auto;
	object-fit:contain;
	border-radius:12px;
	transform:scale(.985);
	opacity:.88;
	transition:
		transform .28s cubic-bezier(.22,1,.36,1),
		opacity .28s ease;
}

.epg-lightbox.is-open .epg-lightbox-stage img{
	transform:scale(1);
	opacity:1;
}

.epg-lightbox-meta{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:20px;
	width:100%;
	margin-top:12px;
	color:#FFF;
	font-family:"Montserrat",Arial,sans-serif;
}

.epg-lightbox-caption{
	font-size:14px;
	line-height:1.4;
}

.epg-lightbox-counter{
	flex:0 0 auto;
	font-size:13px;
	opacity:.68;
}

.epg-close,
.epg-prev,
.epg-next{
	position:absolute;
	z-index:2;
	display:flex;
	align-items:center;
	justify-content:center;
	width:46px;
	height:46px;
	padding:0;
	border:0;
	border-radius:999px;
	background:rgba(255,255,255,.12);
	color:#FFF;
	font:inherit;
	cursor:pointer;
	backdrop-filter:blur(10px);
	transition:background .25s ease;
}

.epg-close:hover,
.epg-prev:hover,
.epg-next:hover{
	background:rgba(255,255,255,.22);
}

.epg-close{
	top:22px;
	right:22px;
	font-size:30px;
	line-height:1;
}

.epg-prev,
.epg-next{
	top:50%;
	transform:translateY(-50%);
	font-size:36px;
	line-height:1;
}

.epg-prev{
	left:22px;
}

.epg-next{
	right:22px;
}

.epg-lightbox.is-single .epg-prev,
.epg-lightbox.is-single .epg-next,
.epg-lightbox.is-single .epg-lightbox-counter{
	display:none;
}

@media(max-width:767px){

	.epg-lightbox{
		padding:16px;
	}

	.epg-lightbox-stage img{
		max-width:94vw;
		max-height:78vh;
	}

	.epg-prev{
		left:8px;
	}

	.epg-next{
		right:8px;
	}

	.epg-close{
		top:10px;
		right:10px;
	}
}

@media(prefers-reduced-motion:reduce){

	.epg-image,
	.epg-card,
	.epg-card::after,
	.epg-overlay,
	.epg-lightbox,
	.epg-lightbox-stage img{
		transition:none!important;
	}
}
