/**
 * Portfolio Widget Styles
 *
 * Elementor widget styles for the Portfolio component.
 * Supports list-view and grid-view modes.
 *
 * @package Soma
 * @since 3.1.8
 */

/* Container */
.soma-portfolio-widget {
	position: relative;
}

.soma-portfolio-widget .container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 20px;
}

/* Filters Bar */
.soma-portfolio-widget .portfolio-filters {
	display: flex;
	align-items: center;
	border-top: 1px solid var(--soma-color-border-light);
	padding: 20px 0;
}

.soma-portfolio-widget .portfolio-filters .filters-list {
	display: flex;
	align-items: center;
	gap: var(--soma-spacing-25);
}

.soma-portfolio-widget .portfolio-filters.desk {
	display: flex;
}

.soma-portfolio-widget .portfolio-filters.movil {
	display: none;
}

.soma-portfolio-widget .portfolio-filters .filter {
	cursor: pointer;
	font-size: var(--soma-font-size-tiny);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	transition: var(--soma-transition-base);
	color: var(--soma-color-text-secondary);
}

.soma-portfolio-widget .portfolio-filters .filter:hover,
.soma-portfolio-widget .portfolio-filters .filter.active {
	color: var(--soma-color-primary);
}

/* View Mode Toggle */
.soma-portfolio-widget .view-mode {
	display: flex;
	margin-left: auto;
	gap: 20px;
}

.soma-portfolio-widget .view-mode > div {
	display: flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	opacity: 0.5;
	transition: var(--soma-transition-base);
}

.soma-portfolio-widget .view-mode > div:hover,
.soma-portfolio-widget .view-mode > div.current-view {
	opacity: 1;
}

.soma-portfolio-widget .view-mode span {
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.soma-portfolio-widget .view-mode svg {
	width: 20px;
	height: 20px;
}

/* Projects Container - List View */
.soma-portfolio-widget .projects.list-view .project {
	display: grid;
	grid-template-columns: 33% 66%;
	gap: var(--soma-spacing-md);
	padding: var(--soma-spacing-md) 0;
	text-decoration: none;
	transition: var(--soma-transition-base);
}

.soma-portfolio-widget .projects.list-view .project:last-child {
	border-bottom: none;
}

.soma-portfolio-widget .projects.list-view .project .info {
	display: flex;
	flex-direction: column;
	justify-content: center;
}

.soma-portfolio-widget .projects.list-view .project .year {
	font-size: var(--soma-font-size-h1);
	font-weight: var(--soma-font-weight-normal);
	margin-bottom: var(--soma-spacing-xs);
	color: var(--soma-color-text-light);
}

.soma-portfolio-widget .projects.list-view .project .title h3 {
	font-size: var(--soma-font-size-h6);
	margin: 0 0 var(--soma-spacing-xs);
	color: var(--soma-color-text-secondary);
	transition: var(--soma-transition-base);
}

.soma-portfolio-widget .projects.list-view .project .city {
	font-size: var(--soma-font-size-tiny);
	color: var(--soma-color-text-secondary);
}

.soma-portfolio-widget .projects.list-view .project .image {
	overflow: hidden;
}

.soma-portfolio-widget .projects.list-view .project .image img {
	width: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
	aspect-ratio: 16/9;
}

.soma-portfolio-widget .projects.list-view .project:hover .image img {
	transform: scale(1.1);
}

/* Projects Container - Grid View */
.soma-portfolio-widget .projects.grid-view {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: var(--soma-spacing-md);
	padding: var(--soma-spacing-md) 0;
}

.soma-portfolio-widget .projects.grid-view .project {
	display: block;
	text-decoration: none;
}

.soma-portfolio-widget .projects.grid-view .project .info {
	padding: var(--soma-spacing-15) 0;
}

.soma-portfolio-widget .projects.grid-view .project .year {
	font-size: var(--soma-font-size-h1);
	font-weight: var(--soma-font-weight-normal);
	margin-bottom: var(--soma-spacing-5);
	color: var(--soma-color-text-primary);
}

.soma-portfolio-widget .projects.grid-view .project .title h3 {
	font-size: var(--soma-font-size-body);
	margin: 0 0 var(--soma-spacing-5);
	color: var(--soma-color-text-secondary);
	transition: var(--soma-transition-base);
}

.soma-portfolio-widget .projects.grid-view .project .city {
	font-size: var(--soma-font-size-tiny);
	color: var(--soma-color-text-secondary);
}

.soma-portfolio-widget .projects.grid-view .project .image {
	overflow: hidden;
	aspect-ratio: 16/9;
}

.soma-portfolio-widget .projects.grid-view .project .image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.soma-portfolio-widget .projects.grid-view .project:hover .image img {
	transform: scale(1.1);
}

/* Loader */
.soma-portfolio-widget .loader-container {
	text-align: center;
	padding: var(--soma-spacing-lg) 0;
}

.soma-portfolio-widget .loader-container .loading {
	display: none;
	font-size: var(--soma-font-size-tiny);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--soma-color-text-secondary);
}

.soma-portfolio-widget.loading .loader-container .loading {
	display: inline-block;
}

/* Style Variants */

/* FibraSOMA (Dark) */
.soma-portfolio-widget.style-fibrasoma {
	background-color: var(--soma-color-bg-dark);
	color: var(--soma-color-text-light);
}

.soma-portfolio-widget.style-fibrasoma .portfolio-filters {
	border-top-color: var(--soma-color-border-dark);
}

.soma-portfolio-widget.style-fibrasoma .portfolio-filters .filter {
	color: var(--soma-color-text-muted);
}

.soma-portfolio-widget.style-fibrasoma .portfolio-filters .filter:hover,
.soma-portfolio-widget.style-fibrasoma .portfolio-filters .filter.active {
	color: var(--soma-color-text-light);
}

.soma-portfolio-widget.style-fibrasoma .view-mode > div {
	color: var(--soma-color-text-light);
}

.soma-portfolio-widget.style-fibrasoma .project .title h3 {
	color: var(--soma-color-text-light);
}

.soma-portfolio-widget.style-fibrasoma .project .year {
	color: var(--soma-color-text-light);
}

.soma-portfolio-widget.style-fibrasoma .project .city {
	color: var(--soma-color-text-muted);
}

/* SOMA (Light) */
.soma-portfolio-widget.style-soma {
	background-color: var(--soma-color-bg-white);
	color: var(--soma-color-text-primary);
}

/* Hide Year/City modifiers */
.soma-portfolio-widget.hide-year .project .year {
	display: none;
}

.soma-portfolio-widget.hide-city .project .city {
	display: none;
}

/* Mobile Filters */
.soma-portfolio-widget .portfolio-filters.movil .ViewAll {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: var(--soma-spacing-15);
	cursor: pointer;
	background: var(--soma-color-bg-light);
}

.soma-portfolio-widget .portfolio-filters.movil .IteamView {
	padding: 0 var(--soma-spacing-15);
	background: var(--soma-color-bg-light);
}

.soma-portfolio-widget .portfolio-filters.movil .IteamView .filter {
	padding: var(--soma-spacing-xs) 0;
	border-bottom: 1px solid var(--soma-color-border-light);
}

.soma-portfolio-widget .portfolio-filters.movil .IteamView .filter:last-child {
	border-bottom: none;
}

.soma-portfolio-widget.style-fibrasoma .portfolio-filters.movil .ViewAll,
.soma-portfolio-widget.style-fibrasoma .portfolio-filters.movil .IteamView {
	background: var(--soma-color-primary-light);
}

.soma-portfolio-widget.style-fibrasoma .portfolio-filters.movil .IteamView .filter {
	border-bottom-color: var(--soma-color-border-dark);
}

/* Responsive */
@media (max-width: 1024px) {
	.soma-portfolio-widget .projects.grid-view {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 768px) {
	.soma-portfolio-widget .portfolio-filters.desk {
		display: none;
	}

	.soma-portfolio-widget .portfolio-filters.movil {
		display: block;
	}

	.soma-portfolio-widget .projects.list-view .project {
		grid-template-columns: 1fr;
	}

	.soma-portfolio-widget .projects.list-view .project .image {
		order: -1;
	}

	.soma-portfolio-widget .projects.list-view .project .image img {
		height: 250px;
	}

	.soma-portfolio-widget .projects.grid-view {
		grid-template-columns: 1fr;
	}
}

/* Animation */
.soma-portfolio-widget .project {
	animation: fadeInUp 0.5s ease forwards;
	opacity: 0;
}

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

.soma-portfolio-widget .project:nth-child(1) { animation-delay: 0s; }
.soma-portfolio-widget .project:nth-child(2) { animation-delay: 0.05s; }
.soma-portfolio-widget .project:nth-child(3) { animation-delay: 0.1s; }
.soma-portfolio-widget .project:nth-child(4) { animation-delay: 0.15s; }
.soma-portfolio-widget .project:nth-child(5) { animation-delay: 0.2s; }
.soma-portfolio-widget .project:nth-child(6) { animation-delay: 0.25s; }
.soma-portfolio-widget .project:nth-child(7) { animation-delay: 0.3s; }
.soma-portfolio-widget .project:nth-child(8) { animation-delay: 0.35s; }
.soma-portfolio-widget .project:nth-child(9) { animation-delay: 0.4s; }
.soma-portfolio-widget .project:nth-child(10) { animation-delay: 0.45s; }
