/**

 * Project Category Grid — front-end

 */



.pcg-grid {

	display: grid;

	grid-template-columns: repeat(4, 1fr);

	gap: clamp(14px, 2.5vw, 24px);

	width: 80%;

	max-width: 1400px;

	margin-left: auto;

	margin-right: auto;

	box-sizing: border-box;

}



/* Large tablet / small desktop */

@media (max-width: 1100px) {

	.pcg-grid {

		grid-template-columns: repeat(2, 1fr);

		width: 88%;

		gap: clamp(14px, 3vw, 22px);

	}

}



/* Phone */

@media (max-width: 560px) {

	.pcg-grid {

		grid-template-columns: 1fr;

		width: 100%;

		max-width: none;

		padding-left: clamp(12px, 4vw, 20px);

		padding-right: clamp(12px, 4vw, 20px);

		gap: clamp(16px, 4vw, 20px);

	}

}



.pcg-card {

	margin: 0;

	min-width: 0;

}



.pcg-card__link {

	display: flex;

	flex-direction: column;

	border-radius: 5px;

	overflow: hidden;

	text-decoration: none;

	color: inherit;

	box-shadow: 0 8px 30px rgba(0, 0, 0, 0.12);

	transition: box-shadow 0.35s ease;

}



.pcg-card__link:hover,

.pcg-card__link:focus-visible {

	box-shadow: 0 14px 40px rgba(0, 0, 0, 0.18);

	outline: none;

}



.pcg-card__link:focus-visible {

	box-shadow: 0 0 0 3px #fff, 0 0 0 6px #fcc60e;

}



.pcg-card__image-wrap {

	position: relative;

	width: 100%;

	aspect-ratio: 4 / 5;

	flex-shrink: 0;

	overflow: hidden;

}



/* Image layer — scales on hover */

.pcg-card__media {

	position: absolute;

	inset: 0;

	z-index: 0;

	overflow: hidden;

}



.pcg-card__img-el,

.pcg-card__placeholder {

	width: 100%;

	height: 100%;

	object-fit: cover;

	display: block;

	transform: scale(1);

	transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94);

	will-change: transform;

}



.pcg-card__placeholder {

	background: linear-gradient(135deg, #2a2a2a 0%, #4a4a48 50%, #2f2f2d 100%);

}



.pcg-card__link:hover .pcg-card__img-el,

.pcg-card__link:hover .pcg-card__placeholder,

.pcg-card__link:focus-visible .pcg-card__img-el,

.pcg-card__link:focus-visible .pcg-card__placeholder {

	transform: scale(1.08);

}



/* Title — bar under image; hidden on hover when overlay shows same name */

.pcg-card__title {

	font-family: Arial, Helvetica, sans-serif;

	font-weight: 600;

	font-size: clamp(16px, 1.15vw, 22px);

	line-height: 1.3;

	color: #ffffff;

	margin: 0;

	padding: 12px 14px;

	text-align: center;

	background: #1c1c1c;

	flex-shrink: 0;

	max-height: 6em;

	overflow: hidden;

	transition: max-height 0.35s ease, padding 0.35s ease, opacity 0.25s ease, margin 0.35s ease;

}



.pcg-card__link:hover .pcg-card__title,

.pcg-card__link:focus-visible .pcg-card__title {

	max-height: 0;

	padding-top: 0;

	padding-bottom: 0;

	margin: 0;

	opacity: 0;

}



/* Overlay — hover: dark scrim, title + CTA centered in image box */

.pcg-card__overlay {

	position: absolute;

	inset: 0;

	z-index: 1;

	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.78) 0%,
		rgba(0, 0, 0, 0.7) 45%,
		rgba(0, 0, 0, 0.74) 100%
	);

	display: flex;

	align-items: center;

	justify-content: center;

	padding: clamp(16px, 4vw, 28px);

	opacity: 0;

	visibility: hidden;

	transition: opacity 0.35s ease, visibility 0.35s ease;

	pointer-events: none;

}



.pcg-card__link:hover .pcg-card__overlay,

.pcg-card__link:focus-visible .pcg-card__overlay {

	opacity: 1;

	visibility: visible;

}



.pcg-card__overlay-inner {

	display: flex;

	flex-direction: column;

	align-items: center;

	justify-content: center;

	gap: clamp(14px, 2.5vw, 20px);

	text-align: center;

	max-width: 100%;

}



.pcg-card__overlay-title {

	font-family: Arial, Helvetica, sans-serif;

	font-weight: 700;

	font-size: clamp(18px, 1.35vw, 26px);

	line-height: 1.2;

	color: #ffffff;

	margin: 0;

	max-width: 100%;

}



.pcg-card__btn {

	font-family: Arial, Helvetica, sans-serif;

	font-weight: 500;

	font-size: 15px;

	line-height: 1.2;

	color: #ffffff;

	background: #78756e;

	border-radius: 999px;

	padding: 11px 28px;

	display: inline-block;

	transition: background-color 0.25s ease, transform 0.2s ease, color 0.25s ease;

	white-space: nowrap !important;

}



.pcg-card__link:hover .pcg-card__btn:hover,

.pcg-card__link:focus-visible .pcg-card__btn:hover {

	background: #5c5a54;

	color: #fff;

}



.pcg-card__btn:active {

	transform: scale(0.98);

}



.pcg-card__btn:hover {

	color: #fff;

	background: #5c5a54;

}



@media (prefers-reduced-motion: reduce) {

	.pcg-card__img-el,

	.pcg-card__placeholder,

	.pcg-card__overlay,

	.pcg-card__btn,

	.pcg-card__link,

	.pcg-card__title {

		transition: none;

	}



	.pcg-card__link:hover .pcg-card__img-el,

	.pcg-card__link:hover .pcg-card__placeholder,

	.pcg-card__link:focus-visible .pcg-card__img-el,

	.pcg-card__link:focus-visible .pcg-card__placeholder {

		transform: none;

	}

}


