/* FILE: assets/css/portfolio-grid.css */

.portfolio-plugin-wrapper {
	--base-color: #333;
	--base-bg: #fff;
	font-family: inherit;
}

.portfolio-filter-bar {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 30px;
	justify-content: center;
}

.portfolio-filter-btn {
	cursor: pointer;
	padding: 8px 16px;
	border-radius: 9999px;
	transition: all 0.3s ease;
	font-size: 14px;
	font-weight: 500;
}

.portfolio-grid {
	display: grid;
	gap: var(--grid-gap, 20px);
}

.portfolio-columns-4 { grid-template-columns: repeat(4, 1fr); }
.portfolio-columns-3 { grid-template-columns: repeat(3, 1fr); }
.portfolio-columns-2 { grid-template-columns: repeat(2, 1fr); }

@media (max-width: 1279px) {
	.portfolio-columns-4 { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 1023px) {
	.portfolio-columns-4, .portfolio-columns-3 { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
	.portfolio-columns-4, .portfolio-columns-3, .portfolio-columns-2 { grid-template-columns: 1fr; }
}

.portfolio-card {
	overflow: hidden;
	position: relative;
	transition: opacity 0.3s ease, transform 0.3s ease;
	display: block; /* For JS Filtering */
	border-radius: var(--card-radius, 8px);
}

.portfolio-card.animate-in {
	animation: fadeInUp 0.5s forwards ease-out;
}

@keyframes fadeInUp {
	0% {
		opacity: 0;
		transform: translateY(20px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

.portfolio-card-figure {
	margin: 0;
	position: relative;
	overflow: hidden;
	height: 100%;
	border-radius: inherit;
}

.portfolio-card-img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform 0.4s ease;
	aspect-ratio: 4/3;
	object-fit: cover;
}

.portfolio-card:hover .portfolio-card-img {
	transform: scale(1.05);
}

.portfolio-card-overlay {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	padding: 20px;
	text-align: center;
	opacity: 0;
	transition: opacity 0.3s ease;
}

.portfolio-card:hover .portfolio-card-overlay {
	opacity: 1;
}

.portfolio-card-title {
	margin: 0 0 10px;
	overflow: hidden;
	white-space: nowrap;
	text-overflow: ellipsis;
	width: 100%;
	font-size: var(--title-size, 20px);
	color: var(--title-color, inherit);
}

.portfolio-card-desc {
	margin: 0 0 15px;
	font-size: var(--desc-size, 14px);
	color: var(--desc-color, inherit);
}

.portfolio-card-link {
	padding: 8px 16px;
	text-decoration: none;
	border-radius: 4px;
	font-weight: 600;
	text-transform: uppercase;
	font-size: 12px;
	transition: background 0.3s ease, color 0.3s ease;
}

.portfolio-loader {
	text-align: center;
	padding: 40px 0;
}
.portfolio-spinner {
	display: inline-block;
	width: 40px;
	height: 40px;
	border: 4px solid rgba(0,0,0,0.1);
	border-radius: 50%;
	border-top-color: #333;
	animation: spin 1s ease-in-out infinite;
}

@keyframes spin {
	to { transform: rotate(360deg); }
}

/* --- LAYOUT 1: Clean Minimal --- */
.portfolio-layout-1 .portfolio-filter-btn { border: 1px solid #ddd; background: transparent; color: var(--base-color); }
.portfolio-layout-1 .portfolio-filter-btn:hover, .portfolio-layout-1 .portfolio-filter-btn.active { background: var(--base-color); color: var(--base-bg); border-color: var(--base-color); }
.portfolio-layout-1 .portfolio-card-overlay { position: static; opacity: 1; padding: 15px 0 0 0; text-align: left; }
.portfolio-layout-1 .portfolio-card-link { display: inline-block; padding: 0; color: var(--base-color); border-bottom: 2px solid var(--base-color); border-radius: 0; }
.portfolio-layout-1 .portfolio-card-link:hover { padding-bottom: 2px; }

/* --- LAYOUT 2: Boxed Card --- */
.portfolio-layout-2 .portfolio-filter-btn { background: #eee; color: #333; border: none; }
.portfolio-layout-2 .portfolio-filter-btn:hover, .portfolio-layout-2 .portfolio-filter-btn.active { background: var(--base-color); color: var(--base-bg); }
.portfolio-layout-2 .portfolio-card { background: var(--base-bg); border: 1px solid rgba(0,0,0,0.08); box-shadow: 0 4px 6px rgba(0,0,0,0.04); }
.portfolio-layout-2 .portfolio-card-overlay { position: static; opacity: 1; padding: 20px; background: transparent; color: var(--base-color); text-align: left; }
.portfolio-layout-2 .portfolio-card-link { background: var(--base-color); color: var(--base-bg); display: inline-block; }
.portfolio-layout-2 .portfolio-card-link:hover { opacity: 0.9; }

/* --- LAYOUT 3: Classic Overlay (Fade) --- */
.portfolio-layout-3 .portfolio-filter-btn { border: 2px solid var(--base-color); background: transparent; color: var(--base-color); }
.portfolio-layout-3 .portfolio-filter-btn.active, .portfolio-layout-3 .portfolio-filter-btn:hover { background: var(--base-color); color: var(--base-bg); }
.portfolio-layout-3 .portfolio-card-overlay { background: rgba(0, 0, 0, 0.7); color: #fff; }
.portfolio-layout-3 .portfolio-card-link { border: 1px solid #fff; color: #fff; }
.portfolio-layout-3 .portfolio-card-link:hover { background: #fff; color: #000; }

/* --- LAYOUT 4: Modern Overlay (Slide Up) --- */
.portfolio-layout-4 .portfolio-filter-btn { background: transparent; color: var(--base-color); border-bottom: 2px solid transparent; border-radius: 0; padding: 8px 4px; }
.portfolio-layout-4 .portfolio-filter-btn:hover, .portfolio-layout-4 .portfolio-filter-btn.active { border-color: var(--base-color); }
.portfolio-layout-4 .portfolio-card-overlay { 
    background: linear-gradient(to top, rgba(0,0,0,0.9) 0%, rgba(0,0,0,0) 100%); 
    color: #fff; justify-content: flex-end; padding-bottom: 30px; 
    transform: translateY(20px); opacity: 0; transition: all 0.4s ease;
}
.portfolio-layout-4 .portfolio-card:hover .portfolio-card-overlay { transform: translateY(0); opacity: 1; }
.portfolio-layout-4 .portfolio-card-link { background: #fff; color: #000; border-radius: 99px; }

/* --- LAYOUT 5: List View --- */
.portfolio-layout-5 .portfolio-grid { grid-template-columns: 1fr; gap: 30px; }
.portfolio-layout-5 .portfolio-card { display: flex; flex-direction: row; align-items: stretch; border: 1px solid #eaeaea; background: var(--base-bg); }
.portfolio-layout-5 .portfolio-card-figure { flex: 0 0 40%; display: flex; flex-direction: row; margin: 0; position: static; }
.portfolio-layout-5 .portfolio-card-img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto; }
.portfolio-layout-5 .portfolio-card-overlay { position: static; flex: 1; opacity: 1; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; text-align: left; padding: 40px; }
.portfolio-layout-5 .portfolio-card-link { background: var(--base-color); color: var(--base-bg); }
@media(max-width:768px) {
    .portfolio-layout-5 .portfolio-card-figure { flex: 0 0 100%; height: 250px; }
    .portfolio-layout-5 .portfolio-card { flex-direction: column; }
}

/* --- LAYOUT 6: Accordion Gallery --- */
.portfolio-layout-6 .portfolio-grid {
	display: flex;
	flex-wrap: nowrap;
	height: 500px;
	gap: 15px;
}
.portfolio-layout-6 .portfolio-card {
	flex: 1;
	height: 100%;
	border-radius: 12px;
	overflow: hidden;
	position: relative;
	transition: flex 0.6s cubic-bezier(0.25, 0.8, 0.25, 1);
	cursor: pointer;
}
.portfolio-layout-6 .portfolio-card:hover {
	flex: 5;
}
.portfolio-layout-6 .portfolio-card-figure {
	width: 100%;
	height: 100%;
	margin: 0;
}
.portfolio-layout-6 .portfolio-card-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	aspect-ratio: auto;
	transition: transform 0.6s ease;
}
.portfolio-layout-6 .portfolio-card:hover .portfolio-card-img {
	transform: scale(1.02);
}
.portfolio-layout-6 .portfolio-card-overlay {
	opacity: 0;
	background: linear-gradient(0deg, rgba(20,20,30,0.95) 0%, rgba(20,20,30,0.4) 40%, transparent 100%);
	padding: 30px;
	justify-content: flex-end;
	align-items: flex-start;
	text-align: left;
	transition: opacity 0.4s ease 0.2s;
}
.portfolio-layout-6 .portfolio-card:hover .portfolio-card-overlay {
	opacity: 1;
}
.portfolio-layout-6 .portfolio-card-title {
	font-size: 22px;
	font-weight: 600;
	color: #fff;
	white-space: normal;
	max-width: 90%;
	margin-bottom: 20px;
	line-height: 1.4;
}
.portfolio-layout-6 .portfolio-card-desc {
	display: none;
}
.portfolio-layout-6 .portfolio-card-link {
	border: 1px solid rgba(255,255,255,0.4);
	color: #fff;
	background: transparent;
	border-radius: 30px;
	padding: 10px 24px;
	text-transform: capitalize;
	font-weight: 300;
}
.portfolio-layout-6 .portfolio-card-link:hover {
	background: #fff;
	color: #000;
}
@media(max-width: 768px) {
	.portfolio-layout-6 .portfolio-grid {
		flex-direction: column;
		height: 800px;
	}
}
