/*
 * STJ Portfolio front-end styles.
 * Intentionally minimal and colorless (currentColor / inherit) so it takes on
 * whatever theme is active. Every element has a stable class name so it can
 * be overridden from the theme's own stylesheet without touching this file.
 */

.stj-portfolio-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5em 1.5em;
	list-style: none;
	margin: 0 0 1.5em;
	padding: 0;
}

.stj-portfolio-filter-item {
	cursor: pointer;
	opacity: 0.6;
	padding-bottom: 0.25em;
	border-bottom: 2px solid transparent;
}

.stj-portfolio-filter-item:hover {
	opacity: 0.85;
}

.stj-portfolio-filter-item.is-active {
	opacity: 1;
	border-bottom-color: currentColor;
}

.stj-portfolio-grid {
	column-count: var(--stj-portfolio-columns, 4);
	column-gap: 1.5em;
}

@media (max-width: 992px) {
	.stj-portfolio-grid {
		column-count: 2;
	}
}

@media (max-width: 576px) {
	.stj-portfolio-grid {
		column-count: 1;
	}
}

.stj-portfolio-item {
	margin: 0 0 1.5em;
	display: inline-block;
	width: 100%;
	break-inside: avoid;
}

.stj-portfolio-item.is-hidden {
	display: none;
}

.stj-portfolio-thumb {
	position: relative;
	display: block;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
}

.stj-portfolio-thumb img {
	display: block;
	width: 100%;
	height: auto;
	transition: transform 0.3s ease;
}

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

.stj-portfolio-title {
	position: absolute;
	inset: auto 0 0 0;
	padding: 0.75em 1em;
	background: rgba(0, 0, 0, 0.55);
	color: #fff;
	font-weight: 600;
	opacity: 0;
	transform: translateY(100%);
	transition: opacity 0.25s ease, transform 0.25s ease;
}

.stj-portfolio-thumb:hover .stj-portfolio-title,
.stj-portfolio-thumb:focus .stj-portfolio-title {
	opacity: 1;
	transform: translateY(0);
}

.stj-portfolio-modal-source {
	display: none;
}

/* Modal */

.stj-portfolio-modal {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
}

.stj-portfolio-modal[hidden] {
	display: none;
}

.stj-portfolio-modal-overlay {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.75);
}

.stj-portfolio-modal-dialog {
	position: relative;
	z-index: 1;
	max-width: 900px;
	width: 92%;
	max-height: 88vh;
	overflow-y: auto;
	background: var(--stj-portfolio-modal-bg, #fff);
	color: var(--stj-portfolio-modal-color, #111);
	padding: 2.5em;
	border-radius: 4px;
}

.stj-portfolio-modal-controls {
	position: absolute;
	top: 0.15em;
	right: 0.4em;
	display: flex;
	align-items: center;
	gap: 0.25em;
}

.stj-portfolio-modal-close,
.stj-portfolio-modal-prev,
.stj-portfolio-modal-next {
	background: none;
	border: none;
	cursor: pointer;
	font-size: 2.5em !important;
	font-weight: normal !important;
	line-height: 1;
	color: inherit;
	padding: 0.15em 0.3em;
}

.stj-portfolio-modal-body {
	display: flex;
	flex-wrap: wrap;
	gap: 2em;
	align-items: flex-start;
	padding-top: 1em;
}

.stj-portfolio-modal-image,
.stj-portfolio-modal-info {
	flex: 1 1 320px;
	min-width: 0;
}

.stj-portfolio-modal-title {
	margin: 0 0 0.5em;
	font-size: 1.5em;
}

.stj-portfolio-modal-image img {
	display: block;
	width: 100%;
	height: auto;
}

.stj-portfolio-modal-tax {
	opacity: 0.7;
	font-size: 0.9em;
	margin-top: 1em;
}

.stj-portfolio-modal-link {
	margin-top: 1em;
}

@media (max-width: 700px) {
	.stj-portfolio-modal-body {
		flex-direction: column;
	}
}
