/* =========================================================================
   ZEEM Projects — archive
   Direct port of Downloads/zeem-projects.html. Class names match the
   reference; only WP-coexistence rules are added (header/footer hiding,
   reset on Hello Elementor's content wrappers).
   ========================================================================= */

:root {
	--navy:          #0B1A2E;
	--navy-deep:     #071322;
	--gold:          #C9A96E;
	--gold-dim:      rgba( 201, 169, 110, 0.4 );
	--white:         #FFFFFF;
	--grey:          #5A6478;
	--grey-light:    #8A92A1;
	--overlay:       rgba( 11, 26, 46, 0.60 );
	--overlay-heavy: rgba( 11, 26, 46, 0.80 );
	--font:          'Outfit', system-ui, -apple-system, 'Helvetica Neue', Arial, sans-serif;
}

/* ---------- Hello Elementor chrome neutralized on /projects/ ---------- */
.post-type-archive-projects .site-header,
.post-type-archive-projects .site-footer,
.post-type-archive-projects #masthead,
.post-type-archive-projects #colophon {
	display: none !important;
}
.post-type-archive-projects #page,
.post-type-archive-projects #content,
.post-type-archive-projects .site-main,
.post-type-archive-projects .site {
	max-width: none;
	width: 100%;
	padding: 0;
	margin: 0;
	background: var( --navy );
}

/* The body itself carries the .post-type-archive-projects class — selector
   has to be `body.post-type-archive-projects`. Without this, Hello Elementor's
   default body styling (white-ish bg, default font) leaks through. */
body.post-type-archive-projects {
	background: var( --navy );
	color: var( --white );
	font-family: var( --font );
	font-weight: 300;
	overflow-x: hidden;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
html:has( body.post-type-archive-projects ) {
	background: var( --navy );
}

/* Reset for our own elements only (nav handled by nav.css) */
.intro-spacer,
.intro-spacer *,
.project-section,
.project-section *,
.project-spacer,
.site-footer,
.site-footer * {
	box-sizing: border-box;
}

/* =========================================================================
   INTRO SPACER
   ========================================================================= */
.intro-spacer {
	height: 100vh;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-direction: column;
	gap: 16px;
	position: relative;
	font-family: var( --font );
}
.intro-spacer h1 {
	font-size: 13px;
	font-weight: 300;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var( --gold );
	margin: 0;
}
.intro-spacer p {
	font-size: 13px;
	font-weight: 300;
	letter-spacing: 0.08em;
	color: var( --grey );
	margin: 0;
}
.scroll-hint {
	position: absolute;
	bottom: 40px;
	left: 50%;
	transform: translateX( -50% );
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	animation: zeemPulseDown 2s ease-in-out infinite;
}
.scroll-hint span {
	font-size: 10px;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var( --grey );
}
.scroll-hint .line {
	width: 1px;
	height: 30px;
	background: linear-gradient( to bottom, var( --gold-dim ), transparent );
}
@keyframes zeemPulseDown {
	0%, 100% { opacity: 0.4; transform: translateX( -50% ) translateY( 0 ); }
	50%      { opacity: 1;   transform: translateX( -50% ) translateY( 6px ); }
}

/* =========================================================================
   PROJECT SECTION
   ========================================================================= */
.project-section {
	position: relative;
	width: 100%;
	font-family: var( --font );
}
.project-inner {
	display: flex;
	max-width: 1400px;
	margin: 0 auto;
	padding: 0 40px;
	position: relative;
}

/* LEFT: Images Column */
.project-images {
	width: 55%;
	position: relative;
}
.project-image {
	width: 100%;
	height: 85vh;
	height: 85dvh;
	position: relative;
	overflow: hidden;
	margin-bottom: 6px;
}
.project-image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* RIGHT: Content Column */
.project-content {
	width: 45%;
	position: relative;
}
.project-content-sticky {
	position: sticky;
	top: 50%;
	transform: translateY( -50% );
	padding-left: 70px;
	will-change: opacity;
}
.project-number {
	font-size: 12px;
	font-weight: 300;
	letter-spacing: 0.2em;
	color: var( --gold-dim );
	margin-bottom: 16px;
	opacity: 0;
	font-family: var( --font );
}
.project-title {
	font-size: 52px;
	font-weight: 200;
	letter-spacing: 0.01em;
	line-height: 1.1;
	color: var( --gold );
	margin: 0 0 20px 0;
	opacity: 0;
	font-family: var( --font );
}
.project-meta {
	font-size: 14px;
	font-weight: 300;
	letter-spacing: 0.06em;
	color: var( --grey-light );
	margin-bottom: 36px;
	opacity: 0;
	font-family: var( --font );
}
.project-desc {
	font-size: 16px;
	font-weight: 300;
	line-height: 1.75;
	color: var( --grey );
	max-width: 400px;
	margin: 0 0 40px 0;
	opacity: 0;
	font-family: var( --font );
}
.project-cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 15px;
	font-weight: 400;
	letter-spacing: 0.04em;
	color: var( --gold );
	text-decoration: none;
	opacity: 0;
	transition: gap 0.3s ease;
	font-family: var( --font );
}
.project-cta:hover {
	gap: 16px;
	color: var( --gold );
}
.project-cta .arrow {
	display: inline-block;
	transition: transform 0.3s ease;
	font-size: 18px;
}

/* =========================================================================
   PROJECT SPACER (between projects)
   ========================================================================= */
.project-spacer {
	height: 60vh;
	position: relative;
}
.project-spacer::after {
	content: '';
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate( -50%, -50% );
	width: 40px;
	height: 1px;
	background: var( --gold-dim );
}

/* =========================================================================
   FOOTER
   ========================================================================= */
.site-footer {
	padding: 100px 20px 60px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0;
	position: relative;
	font-family: var( --font );
}
.site-footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: 50%;
	transform: translateX( -50% );
	width: 60px;
	height: 1px;
	background: var( --gold-dim );
}
.footer-logo {
	font-size: 20px;
	font-weight: 400;
	letter-spacing: 0.2em;
	color: var( --gold );
	text-decoration: none;
	margin-bottom: 14px;
	transition: opacity 0.3s ease;
}
.footer-logo:hover { opacity: 0.7; }

.footer-locations {
	font-size: 12px;
	font-weight: 300;
	letter-spacing: 0.12em;
	color: var( --grey-light );
	margin-bottom: 28px;
}
.footer-locations .dot {
	display: inline-block;
	margin: 0 10px;
	color: var( --gold-dim );
}

.footer-socials {
	display: flex;
	align-items: center;
	gap: 24px;
	margin-bottom: 40px;
}
.footer-socials a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 1px solid rgba( 201, 169, 110, 0.12 );
	color: var( --grey-light );
	text-decoration: none;
	transition: border-color 0.3s ease, color 0.3s ease;
}
.footer-socials a:hover {
	border-color: var( --gold-dim );
	color: var( --gold );
}
.footer-socials svg {
	width: 15px;
	height: 15px;
	fill: currentColor;
}

.footer-copyright {
	font-size: 11px;
	font-weight: 300;
	letter-spacing: 0.08em;
	color: var( --grey );
	margin: 0;
}

/* =========================================================================
   MOBILE-only chrome
   ========================================================================= */
.mobile-title-card,
.mobile-sticky-title,
.mobile-overlay {
	display: none;
}

@media ( max-width: 768px ) {
	/* Nav styles live in nav.css */

	.site-footer { padding: 70px 20px 40px; }

	.intro-spacer h1 { font-size: 12px; }

	.project-inner {
		flex-direction: column;
		padding: 0;
	}
	.project-images { width: 100%; }
	.project-content { display: none; }

	.project-image {
		height: 75vh;
		height: 75dvh;
		margin-bottom: 4px;
	}

	/* Mobile Title Card */
	.mobile-title-card {
		display: flex;
		height: 100vh;
		height: 100dvh;
		align-items: center;
		justify-content: center;
		flex-direction: column;
		gap: 12px;
		padding: 0 30px;
	}
	.mobile-title-card .m-title {
		font-size: 38px;
		font-weight: 200;
		color: var( --gold );
		text-align: center;
		letter-spacing: 0.01em;
		line-height: 1.15;
		font-family: var( --font );
	}
	.mobile-title-card .m-meta {
		font-size: 13px;
		font-weight: 300;
		color: var( --grey-light );
		letter-spacing: 0.08em;
		text-align: center;
		font-family: var( --font );
	}

	/* Mobile Sticky Title — Fix 5: correct top offset + margin pull */
	.mobile-sticky-title {
		display: block;
		position: sticky;
		top: 70px; /* sits just below the 60px glass nav */
		left: 0;
		z-index: 50;
		padding: 0 16px;
		pointer-events: none;
		margin-bottom: -36px; /* pulls images up so sticky adds no extra gap */
	}
	.mobile-sticky-title span {
		display: inline-block;
		font-size: 13px;
		font-weight: 300;
		letter-spacing: 0.04em;
		color: var( --gold );
		background: rgba( 11, 26, 46, 0.75 );
		-webkit-backdrop-filter: blur( 10px );
		backdrop-filter: blur( 10px );
		padding: 6px 14px;
		border-radius: 3px;
		border: 1px solid rgba( 201, 169, 110, 0.08 );
		font-family: var( --font );
	}

	/* Mobile Overlay on Image 3 */
	.mobile-overlay {
		display: flex;
		position: absolute;
		bottom: 0;
		left: 0;
		right: 0;
		height: 55%;
		background: linear-gradient(
			to bottom,
			transparent 0%,
			rgba( 11, 26, 46, 0.55 ) 30%,
			rgba( 11, 26, 46, 0.78 ) 100%
		);
		padding: 0 24px 24px;
		flex-direction: column;
		justify-content: flex-end;
		opacity: 0;
		transition: opacity 0.5s ease;
	}
	.mobile-overlay.visible { opacity: 1; }
	.mobile-overlay .m-desc {
		font-size: 15px;
		font-weight: 300;
		line-height: 1.65;
		color: var( --white );
		margin: 0 0 20px 0;
		font-family: var( --font );
	}
	.mobile-overlay .m-btn-space { height: 40px; }
	.mobile-overlay .m-cta {
		font-size: 14px;
		font-weight: 400;
		letter-spacing: 0.04em;
		color: var( --gold );
		text-decoration: none;
		opacity: 0;
		transition: opacity 0.4s ease;
		font-family: var( --font );
	}
	.mobile-overlay .m-cta.visible { opacity: 1; }

	/* Fix 3: shorter spacer between projects on mobile */
	.project-spacer { height: 25vh; }
}

/* Reduced motion: skip reveals, show everything */
@media ( prefers-reduced-motion: reduce ) {
	.project-number,
	.project-title,
	.project-meta,
	.project-desc,
	.project-cta {
		opacity: 1 !important;
	}
	.mobile-overlay { opacity: 1; }
	.mobile-overlay .m-cta { opacity: 1; }
	.scroll-hint { animation: none; }
}
