/* ==========================================================================
   Swift Shell — Projects page
   Page-scoped only. Reuses existing design tokens, .btn, .eyebrow and
   the visually-hidden utility from global.css. Does not redefine or
   touch any homepage/global selector.
   ========================================================================== */

.projects-container {
	width: 100%;
	max-width: 1200px;
	margin-inline: auto;
	padding-inline: var(--container-gutter);
}

/* -------------------------------------------------------------------------
   Header active state (Projecten)
   ------------------------------------------------------------------------- */
.nav-menu .current-menu-item > a,
.nav-menu .current_page_item > a {
	color: var(--color-text);
	position: relative;
}

.nav-menu .current-menu-item > a::after,
.nav-menu .current_page_item > a::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: -6px;
	height: 1px;
	background: var(--color-gold);
}

/* -------------------------------------------------------------------------
   Hero
   ------------------------------------------------------------------------- */
.projects-hero {
	padding-block: 72px 56px;
	background: var(--color-bg);
}

.projects-hero__grid {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: var(--space-lg);
}

.projects-hero__intro { max-width: 640px; }

.projects-hero__heading {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(2.2rem, 4vw, 3.6rem);
	line-height: 1.1;
	letter-spacing: -0.01em;
	color: var(--color-text);
	margin-block: var(--space-sm) var(--space-md);
}

.projects-hero__body {
	color: var(--color-text-muted);
	font-size: 1.05rem;
	line-height: 1.6;
	max-width: 46ch;
}

.projects-hero__count {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}

.projects-hero__count-number {
	font-family: var(--font-heading);
	font-size: 2.6rem;
	line-height: 1;
	color: var(--color-gold);
}

.projects-hero__count-label {
	margin-top: 6px;
	font-size: 0.72rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

@media (min-width: 1024px) {
	.projects-hero { padding-block: 100px 90px; }

	.projects-hero__grid {
		grid-template-columns: 7fr 2fr 3fr;
		align-items: start;
		column-gap: var(--space-lg);
	}

	.projects-hero__count {
		grid-column: 3;
		align-items: flex-start;
		padding-top: 6px;
	}
}

/* -------------------------------------------------------------------------
   Filters
   ------------------------------------------------------------------------- */
.projects-filters {
	background: var(--color-bg);
}

.projects-filters__list {
	display: flex;
	align-items: center;
	gap: 28px;
	overflow-x: auto;
	padding-bottom: var(--space-sm);
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
}

.projects-filters__item {
	flex: none;
	background: none;
	border: none;
	padding: 0 0 8px;
	font-family: var(--font-body);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-text-muted);
	white-space: nowrap;
	position: relative;
	transition: color var(--transition-fast);
}

.projects-filters__item:hover { color: var(--color-text); }

.projects-filters__item.is-active {
	color: var(--color-text);
}

.projects-filters__item.is-active::after {
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 1px;
	background: var(--color-gold);
}

.projects-filters__rule {
	border-top: 1px solid var(--color-border);
}

@media (min-width: 1024px) {
	.projects-filters__list { overflow-x: visible; }
}

/* -------------------------------------------------------------------------
   Grid
   ------------------------------------------------------------------------- */
.projects-grid-section {
	padding-block: 40px 0;
	background: var(--color-bg);
}

.projects-grid {
	display: grid;
	grid-template-columns: 1fr;
	column-gap: 24px;
	row-gap: 48px;
}

.project-item {
	display: block;
	color: inherit;
}

.project-item[hidden] { display: none; }

.project-item__media {
	display: block;
	aspect-ratio: 16 / 8.5;
	overflow: hidden;
	border-radius: 5px;
	background: var(--color-surface-muted);
}

.project-item__image {
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: center;
	display: block;
	transition: transform var(--transition-normal);
}

.project-item__media-placeholder {
	display: block;
	width: 100%;
	height: 100%;
	background: linear-gradient(150deg, var(--color-surface-muted) 0%, var(--color-border) 100%);
}

.project-item:hover .project-item__image { 
	transform: none; 
}

.project-item__meta {
	display: block;
	margin-top: 17px;
	font-size: 0.74rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--color-text-muted);
}

.project-item__title-row {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-top: 8px;
}

.project-item__title {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: 1.55rem;
	color: var(--color-text);
	margin: 0;
}

.project-item__arrow {
	flex-shrink: 0;
	color: var(--color-text);
	transition: transform var(--transition-fast);
}

.project-item:hover .project-item__arrow,
.project-item:focus-visible .project-item__arrow {
	transform: translate(2px, -2px);
}

.project-item:focus-visible {
	outline: 2px solid var(--color-gold);
	outline-offset: 4px;
	border-radius: var(--radius-small);
}

@media (min-width: 700px) {
	.projects-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1200px) {
	.projects-grid { grid-template-columns: repeat(3, 1fr); }
}

@media (prefers-reduced-motion: reduce) {
	.project-item__image,
	.project-item__arrow {
		transition: none;
	}
}

/* -------------------------------------------------------------------------
   Load more
   ------------------------------------------------------------------------- */
.projects-load-more {
	display: flex;
	justify-content: center;
	padding-top: 72px;
}

.projects-load-more__link {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 0.85rem;
	font-weight: 600;
	color: var(--color-text-muted);
	transition: color var(--transition-fast);
}

.projects-load-more__link:hover { color: var(--color-text); }

/* -------------------------------------------------------------------------
   Final CTA
   ------------------------------------------------------------------------- */
.projects-cta {
	margin-top: 120px;
	padding-block: 100px;
	background: var(--color-dark);
	color: var(--color-on-dark);
}

.projects-cta .eyebrow { color: var(--color-gold); }

.projects-cta__grid {
	display: grid;
	grid-template-columns: 1fr;
	row-gap: var(--space-lg);
}

.projects-cta__heading {
	font-family: var(--font-heading);
	font-weight: 400;
	font-size: clamp(1.9rem, 3vw, 2.6rem);
	line-height: 1.15;
	color: var(--color-on-dark);
	margin-top: var(--space-sm);
}

.projects-cta__right p {
	color: var(--color-on-dark-muted);
	max-width: 34ch;
	margin-bottom: var(--space-md);
}

@media (min-width: 1024px) {
	.projects-cta { padding-block: 110px; }

	.projects-cta__grid {
		grid-template-columns: 7fr 1fr 4fr;
		align-items: end;
	}

	.projects-cta__right { grid-column: 3; }
}

@media (max-width: 767px) {
	.projects-grid-section { padding-block: 32px 0; }
	.project-item + .project-item { margin-top: 0; }
	.projects-grid { row-gap: 44px; }
	.projects-cta { margin-top: 88px; padding-block: 64px; }
}

/* Project card description */
.project-item__description {
	display: block;
	max-width: 42ch;
	margin-top: 10px;

	font-family: var(--font-body);
	font-size: 0.92rem;
	font-weight: 400;
	line-height: 1.65;

	color: var(--color-text-muted);
}

/* Project card external website link */
.project-item__website {
	display: inline-flex;
	align-items: center;
	gap: 7px;

	width: fit-content;
	margin-top: 18px;

	font-family: var(--font-body);
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1;

	letter-spacing: 0.11em;
	text-transform: uppercase;

	color: var(--color-text);
}

.project-item__website span {
	display: inline-block;
	font-size: 0.85rem;
	transition: transform 180ms ease;
}

.project-item:hover .project-item__website span {
	transform: translate(2px, -2px);
}

@media (max-width: 699px) {
	.project-item__description {
		margin-top: 8px;
		font-size: 0.88rem;
		line-height: 1.6;
	}

	.project-item__website {
		margin-top: 15px;
		font-size: 0.68rem;
	}
}

/* Projects final CTA — same button style as Services */
.projects-cta .btn {
	background: var(--color-gold);
	color: var(--color-text);
	border-color: var(--color-gold);
}

.projects-cta .btn:hover,
.projects-cta .btn:focus-visible {
	background: var(--color-gold);
	color: var(--color-text);
	border-color: var(--color-gold);
	opacity: 0.9;
}

/* ==========================================================================
   Projects filters — mobile horizontal rail FORCE
   ========================================================================== */

@media (max-width: 767px) {

	.projects-filters .projects-container {
		position: relative !important;
		padding-right: 0 !important;
		overflow: hidden !important;
	}

	.projects-filters__list {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 26px !important;

		width: 100% !important;
		max-width: 100% !important;

		overflow-x: auto !important;
		overflow-y: hidden !important;

		padding-right: 48px !important;
		padding-bottom: 12px !important;

		-webkit-overflow-scrolling: touch !important;
		scroll-snap-type: x proximity !important;
		scrollbar-width: none !important;
	}

	.projects-filters__list::-webkit-scrollbar {
		display: none !important;
	}

	.projects-filters__item {
		display: block !important;
		flex: 0 0 auto !important;
		width: auto !important;
		min-width: max-content !important;
		white-space: nowrap !important;
		scroll-snap-align: start !important;
	}

	.projects-filters .projects-container::after {
		content: '' !important;
		position: absolute !important;
		top: 0 !important;
		right: 0 !important;
		z-index: 2 !important;

		width: 42px !important;
		height: 42px !important;

		pointer-events: none !important;

		background: linear-gradient(
			to right,
			rgba(0, 0, 0, 0),
			var(--color-bg) 85%
		) !important;
	}
}