.fp-wrapper {
	width: 100%;
}

/* Stretched Link */
.fp-stretched-target {
	position: relative;
}
.fp-stretched-link::after {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: 1;
	pointer-events: auto;
}

/* Banner */
.fp-banner {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	text-decoration: none;
	overflow: hidden;
}
.fp-banner-bg {
	position: absolute;
	inset: 0;
	z-index: 0;
}
.fp-banner-bg img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.8s ease;
}
.fp-banner-overlay {
	position: absolute;
	inset: 0;
	z-index: 1;
}
.fp-banner-content {
	position: relative;
	z-index: 2;
	width: 100%;
}
.fp-banner-bottom {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	width: 100%;
}
.fp-banner-left {
	display: flex;
	flex-direction: column;
}
.fp-banner-right {
	display: flex;
}
.fp-banner-link {
	border-bottom: 1px solid transparent;
}
.fp-stretch-viewport {
	width: 100vw;
	position: relative;
	left: 50%;
	right: 50%;
	margin-left: -50vw;
	margin-right: -50vw;
}

/* Grid & Cards */
.fp-grid {
	display: grid;
    grid-template-columns: repeat(3, 1fr); /* Ensure default desktop grid */
    align-items: start;
    width: 100%;
}

/* Enforce 3 columns on desktop specifically for the staggered layout secondary row */
.fp-grid.is-staggered {
    grid-template-columns: repeat(3, 1fr);
}

.fp-card {
	display: flex;
	flex-direction: column;
}

/* Ensure no direct children overrides block the grid */
.fp-grid > * {
    width: auto !important; /* Prevents 100% width overrides */
}

/* Critical hiding */
.fp-card[hidden], .fp-grid[hidden] {
	display: none !important;
}

.fp-card-img img {
	width: 100%;
	display: block;
}

/* CTA */
.fp-cta {
	display: flex;
	flex-direction: column;
	align-self: end;
}

/* Ensure the CTA is always the 3rd column if present */
.fp-grid.is-staggered .fp-cta {
    grid-column: 3;
}

/* Reveal Animation */
.fp-reveal {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.9s ease, transform 0.9s ease;
}
.fp-reveal.is-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* Filters */
.fp-filter-area {
	display: flex;
	flex-direction: column;
}
.fp-filter-group {
	display: flex;
	flex-wrap: wrap;
}
.fp-filter-buttons {
	display: flex;
	flex-wrap: wrap;
}
.fp-filter-btn {
	cursor: pointer;
	border: 1px solid transparent;
}
.fp-filter-select {
	cursor: pointer;
}

/* Media Queries for Responsive Grid */
@media (max-width: 1024px) { /* Tablet */
    .fp-grid.is-staggered {
        grid-template-columns: repeat(2, 1fr);
    }
    .fp-grid.is-staggered .fp-cta {
        grid-column: 1 / -1; /* CTA spans full width on tablet */
        align-self: start;
        margin-top: 30px;
    }
}

@media (max-width: 767px) { /* Mobile */
	.fp-stretch-viewport {
		width: 100%;
		left: auto;
		right: auto;
		margin: 0;
	}
	.fp-banner-bottom {
		flex-direction: column;
		align-items: flex-start;
		gap: 20px;
	}
    
    .fp-grid, .fp-grid.is-staggered {
        grid-template-columns: repeat(1, 1fr);
    }

	.fp-grid.is-staggered > .fp-card:nth-child(even) {
		transform: none !important;
	}
	.fp-grid.is-staggered .fp-cta {
        grid-column: 1;
		align-self: start;
        margin-top: 20px;
	}
}
