/* ==========================================================================
   Projects (Our Work)
   Project cards, filter buttons and the single project page. HTML: template-parts/shared/project-cards.php, single-st_project.php
   ========================================================================== */

.filter-bar { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin-bottom: 40px; }
.project-card {
	position: relative;
	display: flex;
	flex-direction: column;
	border-radius: 22px;
	overflow: hidden;
	background: linear-gradient(170deg, rgba(255, 255, 255, .06), rgba(255, 255, 255, .015));
	border: 1px solid var(--border);
	transition: transform .5s var(--ease), border-color .3s, box-shadow .5s var(--ease);
}
.project-card.is-hidden { display: none; }
.project-card:hover { transform: translateY(-6px); border-color: rgba(167, 139, 250, .5); box-shadow: var(--shadow-glow); }
.project-card__media { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: linear-gradient(135deg, #2e1065, #0e7490); }
.project-card__media img { width: 100%; height: 100%; object-fit: cover; object-position: top; padding-top: 26px; transition: transform 1.2s var(--ease); }
.project-card:hover .project-card__media img { transform: scale(1.05); }
.project-card__placeholder { position: absolute; inset: 0; display: grid; place-items: center; font-family: var(--font-display); font-size: 3rem; font-weight: 800; color: rgba(255, 255, 255, .35); }
.project-card__overlay {
	position: absolute;
	z-index: 3;
	inset: 26px 0 0;
	display: flex;
	flex-wrap: wrap;
	align-content: center;
	justify-content: center;
	gap: 10px;
	padding: 16px;
	background: linear-gradient(180deg, rgba(7, 4, 26, .15), rgba(30, 12, 80, .78));
	opacity: 0;
	transition: opacity .4s var(--ease);
}
.project-card__view {
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 18px;
	border-radius: 999px;
	background: #fff;
	color: #1b0b3a;
	font-family: var(--font-display);
	font-weight: 600;
	font-size: .85rem;
	transform: translateY(12px);
	transition: transform .45s var(--ease);
}
.project-card__view:hover { color: #1b0b3a; box-shadow: 0 10px 30px -10px rgba(255, 255, 255, .6); }
.project-card__view--live { background: rgba(255, 255, 255, .12); color: #fff; border: 1px solid rgba(255, 255, 255, .45); backdrop-filter: blur(8px); transition-delay: .05s; }
.project-card__view--live:hover { color: #fff; background: rgba(255, 255, 255, .22); }
.project-card:hover .project-card__overlay { opacity: 1; }
.project-card__overlay { pointer-events: none; }
.project-card:hover .project-card__overlay { pointer-events: auto; }
/* "Live site" pill in the card footer (sits above the card's stretched link). */
.project-card__live {
	position: relative;
	z-index: 3;
	flex-shrink: 0;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 7px 14px;
	border-radius: 999px;
	background: rgba(52, 211, 153, .1);
	border: 1px solid rgba(52, 211, 153, .35);
	color: #a7f3d0;
	font-size: .8rem;
	font-weight: 600;
	white-space: nowrap;
	transition: background .3s, border-color .3s, color .3s, transform .3s var(--ease);
}
.project-card__live:hover { background: var(--success); border-color: var(--success); color: #062a1e; transform: translateY(-1px); }
.project-card__live-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 0 rgba(52, 211, 153, .6); animation: pulse 2s infinite; }
.project-card__live:hover .project-card__live-dot { background: #062a1e; animation: none; }
.project-card:hover .project-card__view { transform: none; }
.browser-bar {
	position: absolute; inset: 0 0 auto; z-index: 2;
	display: flex; align-items: center; gap: 5px;
	height: 26px; padding: 0 12px;
	background: rgba(10, 6, 30, .9);
	border-bottom: 1px solid var(--border);
}
.browser-bar span { width: 8px; height: 8px; border-radius: 50%; background: #f87171; flex-shrink: 0; }
.browser-bar span:nth-child(2) { background: #fbbf24; }
.browser-bar span:nth-child(3) { background: #34d399; }
.browser-bar em { margin-left: 8px; font-style: normal; font-size: .68rem; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.project-single__media img { padding-top: 26px; }
.project-card__body { display: flex; flex-direction: column; flex: 1; align-items: flex-start; padding: 20px 22px 18px; }
.project-card__body .tag { margin-bottom: 10px; font-size: .74rem; padding: 3px 10px; }
.project-card__title { font-size: 1.12rem; line-height: 1.3; margin-bottom: 8px; }
.project-card__title a { color: #fff; }
.project-card__text {
	flex: 1;
	margin: 0;
	color: var(--muted);
	font-size: .9rem;
	line-height: 1.6;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.project-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; margin-top: 16px; padding-top: 14px; border-top: 1px solid var(--border); }
.project-card__services { display: inline-flex; align-items: center; gap: 6px; color: var(--c-glow); font-size: .8rem; font-weight: 500; line-height: 1.35; min-width: 0; }
.project-card__services .std-icon { flex-shrink: 0; }
.project-card__arrow {
	flex-shrink: 0;
	width: 34px; height: 34px;
	display: grid; place-items: center;
	border-radius: 50%;
	border: 1px solid var(--border-strong);
	color: #fff;
	transition: all .4s var(--ease);
}
.project-card:hover .project-card__arrow { background: var(--grad-btn); border-color: transparent; transform: rotate(-45deg); }
.project-single { display: grid; grid-template-columns: 1.5fr .8fr; gap: 28px; align-items: start; }
.project-single__media { position: relative; overflow: hidden; padding: 0; }
.project-single__meta dl { margin: 0 0 24px; }
.project-single__meta dt { color: var(--muted); font-size: .8rem; text-transform: uppercase; letter-spacing: .12em; }
.project-single__meta dd { margin: 4px 0 18px; font-weight: 600; color: #fff; }
.project-single__content { grid-column: 1 / -1; }
/* Each project card gets its own colour theme (--pc). */
.project-card {
	--pc: #a78bfa;
	background:
		radial-gradient(120% 60% at 100% 100%, color-mix(in srgb, var(--pc) 18%, transparent), transparent 60%),
		linear-gradient(170deg, color-mix(in srgb, var(--pc) 10%, rgba(255, 255, 255, .04)), rgba(255, 255, 255, .015));
	border-color: color-mix(in srgb, var(--pc) 30%, transparent);
}
.project-card::before { content: ""; position: absolute; z-index: 4; inset: 0 0 auto; height: 3px; background: linear-gradient(90deg, transparent, var(--pc), transparent); box-shadow: 0 0 16px var(--pc); pointer-events: none; }
.project-card:hover { border-color: var(--pc); box-shadow: 0 30px 60px -28px var(--pc), 0 0 0 1px color-mix(in srgb, var(--pc) 40%, transparent); }
.project-card .browser-bar { background: color-mix(in srgb, var(--pc) 16%, rgba(10, 6, 30, .92)); border-bottom-color: color-mix(in srgb, var(--pc) 30%, transparent); }
.project-card .browser-bar em { color: color-mix(in srgb, var(--pc) 60%, #fff); }
.project-card__body .tag { background: color-mix(in srgb, var(--pc) 16%, transparent); border-color: color-mix(in srgb, var(--pc) 45%, transparent); color: color-mix(in srgb, var(--pc) 75%, #fff); }
.project-card__services { color: var(--pc); }
.project-card__foot { border-top-color: color-mix(in srgb, var(--pc) 22%, transparent); }
.project-card__live { background: color-mix(in srgb, var(--pc) 14%, transparent); border-color: color-mix(in srgb, var(--pc) 45%, transparent); color: color-mix(in srgb, var(--pc) 70%, #fff); }
.project-card__live:hover { background: var(--pc); border-color: var(--pc); color: #0b0620; }
.project-card__overlay { background: linear-gradient(180deg, rgba(7, 4, 26, .1), color-mix(in srgb, var(--pc) 45%, rgba(7, 4, 26, .85))); }

@media (max-width: 1024px) {
	.project-single { grid-template-columns: 1fr; }
}
