.pfc-50b4803a-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 30px;
}

.pfc-50b4803a-card-wrapper {
    perspective: 1000px;
    width: 100%;
    height: 350px; /* Default, overridden by control */
}

.pfc-50b4803a-card {
    position: relative;
    width: 100%;
    height: 100%;
    transition: transform 0.6s cubic-bezier(0.4, 0.2, 0.2, 1);
    transform-style: preserve-3d;
    cursor: pointer;
    border-radius: 15px; /* Default */
}

.pfc-50b4803a-card-wrapper:hover .pfc-50b4803a-card {
    transform: rotateY(180deg);
}

.pfc-50b4803a-card-front,
.pfc-50b4803a-card-back {
    position: absolute;
    width: 100%;
    height: 100%;
    backface-visibility: hidden;
    border-radius: inherit;
    overflow: hidden;
}

.pfc-50b4803a-card-front {
    background-size: cover;
    background-position: center;
    background-color: #333;
}

.pfc-50b4803a-card-overlay {
    position: absolute;
    bottom: 0;
    width: 100%;
    padding: 20px;
    background: linear-gradient(to top, rgba(0,0,0,0.8) 0%, transparent 100%);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    height: 100%;
}

.pfc-50b4803a-meta {
    font-size: 0.85em;
    margin-bottom: 8px;
    opacity: 0.9;
    display: flex;
    justify-content: space-between;
    text-transform: uppercase;
    font-weight: 300;
}

.pfc-50b4803a-title {
    margin: 0;
    color: #fff;
    font-family: 'yo', sans-serif;
    font-weight: 700;
    line-height: 1.2;
    transition: font-size 0.2s ease;
}

.pfc-50b4803a-card-back {
    background-color: #fff;
    border: 2px solid #e32636;
    color: #000;
    transform: rotateY(180deg);
    padding: 30px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    text-align: left;
}

.pfc-50b4803a-back-content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
}

.pfc-50b4803a-excerpt {
    font-size: 1rem;
    line-height: 1.5;
    font-style: italic;
    color: #000;
    display: -webkit-box;
    -webkit-line-clamp: 8;
    -webkit-box-orient: vertical;  
    overflow: hidden;
    margin-bottom: 20px;
}

.pfc-50b4803a-btn {
    display: inline-block;
    padding: 10px 20px;
    background-color: #e32636;
    color: #fff;
    text-decoration: none;
    font-family: 'yo', sans-serif;
    font-size: 0.9em; /* Smaller than excerpt */
    font-weight: bold;
    border-radius: 50px; /* 100% rounded */
    border: 2px solid #e32636;
    transition: background-color 0.3s, color 0.3s;
}

.pfc-50b4803a-btn:hover {
    background-color: #fff;
    color: #e32636;
}

.pfc-50b4803a-loader {
	text-align: center;
	padding: 20px;
	width: 100%;
	clear: both;
}

.pfc-spinner {
	animation: pfc-rotate 2s linear infinite;
	width: 40px;
	height: 40px;
}

.pfc-spinner circle {
	stroke: #e32636;
	stroke-linecap: round;
	animation: pfc-dash 1.5s ease-in-out infinite;
}

@keyframes pfc-rotate {
	100% { transform: rotate(360deg); }
}

@keyframes pfc-dash {
	0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; }
	50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; }
	100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; }
}
