/* PostCard.css */ .post-card { background-color: white; border-radius: 1rem; box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); overflow: hidden; transition: box-shadow 0.3s ease, transform 0.3s ease; display: flex; flex-direction: column; height: 100%; } .post-card:hover { box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); transform: translateY(-5px); } .post-card-image-wrapper { height: 12rem; background-color: #e5e7eb; overflow: hidden; position: relative; display: flex; align-items: center; justify-content: center; } .post-card-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.3s ease; } .post-card:hover .post-card-image { transform: scale(1.05); } .post-card-fallback { font-size: 3rem; color: #9ca3af; } .post-card-content { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; } .post-meta { display: flex; align-items: center; font-size: 0.875rem; color: #6b7280; margin-bottom: 0.75rem; } .post-category-badge { color: #2563eb; font-weight: 700; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.05em; } .post-meta-divider { margin: 0 0.5rem; color: #e5e7eb; } .post-title { font-size: 1.25rem; font-weight: 700; margin-bottom: 0.75rem; line-height: 1.4; } .post-title a { color: #111827; text-decoration: none; transition: color 0.2s; } .post-title a:hover { color: #2563eb; } .post-excerpt { color: #4b5563; font-size: 0.95rem; line-height: 1.6; margin-bottom: 1.5rem; flex: 1; /* Line clamping for Webkit browsers */ display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; } .post-read-more { display: inline-flex; align-items: center; color: #2563eb; font-weight: 600; text-decoration: none; font-size: 0.95rem; transition: color 0.2s; } .post-read-more:hover { color: #1d4ed8; text-decoration: underline; }