/**
 * Eclipse Portfolio — Frontend Styles
 * Matches the Figma reference: navy primary, gold accent, before/after media,
 * default card shows Challenge + Solution; expanded reveals Specs + Results.
 */

.eclipse-portfolio {
	--eclipse-primary: #003466;
	--eclipse-accent: #C8924B;
	--eclipse-success: #22A06B;
	--eclipse-bg: #F9FAFB;
	--eclipse-card-bg: #FFFFFF;
	--eclipse-text: #1B2330;
	--eclipse-muted: #505050;
	--eclipse-border: #E6E6E6;
	--eclipse-radius: 16px;
	--eclipse-radius-sm: 8px;
	--eclipse-gap: clamp(24px, 3vw, 48px);
	--eclipse-shadow: 0 6px 24px rgba(11, 30, 58, 0.06);
	font-family: "Manrope", Arial, sans-serif;
	color: var(--eclipse-text);
	width: 100% !important;
	max-width: 1280px !important;
	margin: 0 auto !important;
	padding: clamp(24px, 4vw, 64px) 0;
	transform: none !important;
	box-sizing: border-box;
}

.eclipse-portfolio *,
.eclipse-portfolio *::before,
.eclipse-portfolio *::after {
	box-sizing: border-box;
}

.eclipse-portfolio__header {
	margin-bottom: 24px;
	text-align: left;
}
.eclipse-portfolio__eyebrow {
	display: none;
	color: var(--eclipse-accent);
	text-transform: uppercase;
	letter-spacing: 0.16em;
	font-size: 0.82rem;
	margin: 0 0 8px;
	font-weight: 600;
}
.eclipse-portfolio__filter-heading {
	font-family: "Manrope", Arial, sans-serif !important;
	font-size: 40px;
	margin: 0;
	color: var(--eclipse-primary);
	line-height: 1.2;
	font-weight: 700;
}
.eclipse-portfolio__title {
	font-size: clamp(1.8rem, 2.6vw, 2.4rem);
	margin: clamp(28px, 4vw, 52px) 0 clamp(20px, 3vw, 36px);
	color: var(--eclipse-primary);
	text-align: center;
	font-weight: 800;
}

/* Filter bar — labeled selects in a single row */
.eclipse-portfolio__filter-bar {
	background: var(--eclipse-bg);
	border: 1px solid var(--eclipse-border);
	border-radius: var(--eclipse-radius);
	padding: 24px;
	margin-bottom: clamp(40px, 5vw, 64px);
}
.eclipse-portfolio__filter-row {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr)) auto;
	gap: 16px;
	align-items: start;
}
.eclipse-portfolio__field {
	display: flex;
	flex-direction: column;
	gap: 0;
	min-width: 0;
}
.eclipse-portfolio__field label {
	display: flex;
	align-items: center;
	min-height: 67px;
	padding: 20px 0;
	font-family: "Manrope", Arial, sans-serif;
	font-weight: 700;
	color: #000;
	font-size: 18px;
	line-height: 1.5;
	white-space: nowrap;
}
.eclipse-portfolio__filter,
.eclipse-portfolio__search-input {
	height: 48px;
	width: 100%;
	padding: 12px;
	border: 1px solid var(--eclipse-border);
	border-radius: var(--eclipse-radius-sm);
	background: #fff;
	color: var(--eclipse-muted);
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='8' viewBox='0 0 14 8' fill='none'%3E%3Cpath d='M1 1l6 6 6-6' stroke='%230B1E3A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 16px center;
	padding-right: 52px;
}
.eclipse-portfolio__search-input {
	background-image: none;
	padding-right: 16px;
	cursor: text;
	color: var(--eclipse-text);
}
.eclipse-portfolio__apply-field {
	justify-content: flex-end;
}
.eclipse-portfolio__apply-field label,
.eclipse-portfolio__apply-field::before {
	content: "";
	display: block;
	min-height: 67px;
	padding: 20px 0;
}
.eclipse-portfolio__submit {
	height: 48px;
	background: var(--eclipse-primary);
	color: #fff;
	border: 1px solid #212326;
	border-radius: var(--eclipse-radius-sm);
	padding: 8px 44px;
	font-weight: 700;
	font-family: inherit;
	font-size: 16px;
	line-height: 1.5;
	white-space: nowrap;
	cursor: pointer;
	transition: opacity 0.15s ease, transform 0.15s ease;
}
.eclipse-portfolio__submit:hover { opacity: 0.92; }
.eclipse-portfolio__submit:active { transform: translateY(1px); }

/* Results */
.eclipse-portfolio__results {
	min-height: 200px;
	position: relative;
}
.eclipse-portfolio__results.is-loading::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(255,255,255,0.65);
	z-index: 2;
}
.eclipse-portfolio__empty {
	text-align: center;
	color: var(--eclipse-muted);
	padding: 64px 16px;
	font-size: 1.05rem;
}

/* Cards list */
.eclipse-portfolio__cards {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: var(--eclipse-gap);
}
.eclipse-portfolio__cards--grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
}

/* Card */
.eclipse-card {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: clamp(40px, 6.25vw, 80px);
	background: var(--eclipse-bg);
	border: 1px solid var(--eclipse-border);
	border-radius: var(--eclipse-radius);
	overflow: hidden;
	padding: 40px;
	box-shadow: none;
	align-items: center;
}
.eclipse-card__body {
	order: 1;
}
.eclipse-card__media {
	order: 2;
}
.eclipse-portfolio__cards--grid .eclipse-card,
.eclipse-portfolio__cards--stacked .eclipse-card {
	grid-template-columns: 1fr;
}

/* Media (before/after stack) */
.eclipse-card__media {
	display: flex;
	flex-direction: column;
	gap: 16px;
	width: 100%;
	height: 480px;
	min-height: 480px;
	overflow: hidden;
}
.eclipse-card__media-item {
	position: relative;
	margin: 0;
	overflow: hidden;
	border-radius: var(--eclipse-radius);
	flex: 1 1 0;
	min-height: 0;
	background: #efeae1;
}
.eclipse-card__media-item--single {
	flex-basis: 100%;
}
.eclipse-card__media-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.eclipse-card__media-label {
	position: absolute;
	top: 16px;
	left: 16px;
	background: rgba(23, 51, 79, 0.8);
	color: #fff;
	padding: 6px 12px;
	border-radius: 4px;
	font-family: "Inter", Arial, sans-serif;
	font-weight: 600;
	font-size: 12px;
	line-height: 16px;
	z-index: 2;
}
.eclipse-card__media-placeholder {
	width: 100%;
	height: 100%;
	background: linear-gradient(135deg, #efeae1 0%, #d9d1c0 100%);
}

/* Body */
.eclipse-card__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 0;
	height: 100%;
	min-width: 0;
}
.eclipse-card__title {
	margin: 0 0 4px;
	font-family: "Manrope", Arial, sans-serif !important;
	font-size: 30px;
	color: #212326;
	line-height: 36px;
	font-weight: 700;
}
.eclipse-card__location {
	margin: 0 0 12px;
	color: #3F4647;
	font-size: 14px;
	line-height: 20px;
}
.eclipse-card__tagline {
	margin: 0 0 20px;
	color: #C18215;
	font-weight: 500;
	font-size: 14px;
	line-height: 20px;
}
.eclipse-card__story {
	display: flex;
	flex-direction: column;
	gap: 7px;
	margin-bottom: 16px;
}
.eclipse-card__story:last-of-type {
	margin-bottom: 24px;
}
.eclipse-card__story h4 {
	margin: 0;
	color: #212326;
	font-size: 14px;
	line-height: 20px;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	font-weight: 700;
}
.eclipse-card__story p {
	margin: 0;
	color: #3F4647;
	line-height: 22.75px;
	font-size: 14px;
}

/* Actions row */
.eclipse-card__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 16px;
	align-items: center;
	margin-top: 0;
}
.eclipse-card__toggle {
	background: transparent;
	border: 0;
	cursor: pointer;
	color: var(--eclipse-primary);
	font-weight: 500;
	font-family: "Manrope", Arial, sans-serif;
	font-size: 14px;
	line-height: 20px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 0;
}
.eclipse-card__toggle:hover { color: var(--eclipse-accent); }
.eclipse-card__toggle-icon {
	transition: transform 0.2s ease;
}
.eclipse-card.is-expanded .eclipse-card__toggle-icon {
	transform: rotate(180deg);
}
.eclipse-card__toggle-less { display: none; }
.eclipse-card.is-expanded .eclipse-card__toggle-more { display: none; }
.eclipse-card.is-expanded .eclipse-card__toggle-less { display: inline; }

.eclipse-card__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 6px;
	min-height: 36px;
	background: var(--eclipse-primary);
	color: #fff !important;
	text-decoration: none;
	padding: 8px 12px;
	border-radius: 6px;
	font-weight: 700;
	font-size: 14px;
	line-height: 20px;
	box-shadow: 0 10px 15px -3px rgba(0,0,0,0.1), 0 4px 6px -4px rgba(0,0,0,0.1);
	transition: opacity 0.15s ease, transform 0.15s ease;
}
.eclipse-card__cta:hover { opacity: 0.92; color: #fff; }
.eclipse-card__cta:active { transform: translateY(1px); }

/* Expanded */
.eclipse-card__expanded {
	display: flex;
	flex-direction: column;
	gap: 16px;
	margin-bottom: 24px;
	animation: eclipseFade 0.3s ease;
}
.eclipse-card__expanded[hidden] {
	display: none;
}
@keyframes eclipseFade {
	from { opacity: 0; transform: translateY(-4px); }
	to   { opacity: 1; transform: none; }
}

.eclipse-card__list-section h4 {
	margin: 0 0 8px;
	color: #212326;
	font-size: 14px;
	line-height: 20px;
	letter-spacing: 0.7px;
	text-transform: uppercase;
	font-weight: 700;
}
.eclipse-card__check-list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 7px;
}
.eclipse-card__check-list li {
	position: relative;
	padding-left: 24px;
	color: #3F4647;
	font-size: 14px;
	line-height: 20px;
}
.eclipse-card__check-list li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 1.8px solid currentColor;
	background-repeat: no-repeat;
	background-position: center;
	background-size: 10px 10px;
}
.eclipse-card__check-list--success li {
	color: var(--eclipse-success);
}
.eclipse-card__check-list--success li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.5l2.5 2.5 4.5-5' stroke='%2322A06B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.eclipse-card__check-list--accent li {
	color: var(--eclipse-accent);
}
.eclipse-card__check-list--accent li::before {
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M2.5 6.5l2.5 2.5 4.5-5' stroke='%23C8924B' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}
.eclipse-card__check-list li > * {
	color: var(--eclipse-text);
}
.eclipse-card__check-list--success li,
.eclipse-card__check-list--accent li {
	color: var(--eclipse-text);
}
.eclipse-card__check-list--success li::before { border-color: var(--eclipse-success); }
.eclipse-card__check-list--accent li::before  { border-color: var(--eclipse-accent); }

.eclipse-card__product-used {
	margin: 0;
	font-size: 12px;
	line-height: 18px;
	color: #212326;
}
.eclipse-card__product-used strong {
	font-weight: 700;
	margin-right: 4px;
}

.eclipse-card__details-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
	gap: 14px;
	padding: 14px;
	background: #fff;
	border-radius: var(--eclipse-radius-sm);
}
.eclipse-card__details-grid > div {
	display: flex;
	flex-direction: column;
	font-size: 0.9rem;
}
.eclipse-card__details-grid strong {
	color: var(--eclipse-muted);
	font-weight: 500;
	font-size: 0.74rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 4px;
}

.eclipse-card__gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(120px, 1fr));
	gap: 8px;
}
.eclipse-card__gallery-item {
	display: block;
	overflow: hidden;
	border-radius: var(--eclipse-radius-sm);
	aspect-ratio: 4 / 3;
}
.eclipse-card__gallery-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.3s ease;
}
.eclipse-card__gallery-item:hover img { transform: scale(1.05); }

/* Pagination */
.eclipse-portfolio__pagination {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 18px;
	margin-top: clamp(32px, 4vw, 56px);
}
.eclipse-portfolio__page-prev,
.eclipse-portfolio__page-next {
	background: transparent;
	border: 1px solid var(--eclipse-border);
	padding: 10px 16px;
	border-radius: var(--eclipse-radius-sm);
	cursor: pointer;
	font-family: inherit;
	font-size: 0.9rem;
	color: var(--eclipse-text);
}
.eclipse-portfolio__page-prev:disabled,
.eclipse-portfolio__page-next:disabled {
	opacity: 0.4;
	cursor: not-allowed;
}
.eclipse-portfolio__page-info {
	color: var(--eclipse-muted);
	font-size: 0.92rem;
}

/* Mobile */
@media (max-width: 880px) {
	.eclipse-card {
		grid-template-columns: 1fr;
		padding: 24px;
	}
	.eclipse-portfolio__cards--alternating .eclipse-card--right {
		direction: ltr;
	}
	.eclipse-card__media-item {
		aspect-ratio: 16 / 10;
	}
}
@media (max-width: 980px) {
	.eclipse-portfolio__filter-row {
		grid-template-columns: 1fr;
	}
	.eclipse-portfolio__field label {
		min-height: auto;
		padding: 0 0 8px;
		white-space: normal;
	}
	.eclipse-portfolio__apply-field::before {
		display: none;
	}
	.eclipse-portfolio__apply-field {
		justify-content: stretch;
	}
	.eclipse-portfolio__submit {
		width: 100%;
	}
}
@media (max-width: 640px) {
	.eclipse-card__title {
		font-size: 1.4rem;
	}
	.eclipse-card__actions {
		flex-direction: column;
		align-items: stretch;
	}
	.eclipse-card__cta {
		justify-content: center;
	}
}
