/**
 * @file
 * Publication Preview Component
 *
 * Editorial grid of preview images. Shadow-based cards. Image sits flush
 * with card bottom (no gap).
 *
 * The wildcard reset inside `.publication-preview__item a` is the deep
 * fix for the gap: Drupal's Full HTML text format frequently wraps
 * <img> elements in a <p> and CKEditor sometimes adds a stray <br>.
 * Both have inherited margins that show as a sliver below the image.
 * Zeroing everything inside the anchor kills it in every case.
 */

.publication-preview {
    display: grid;
    gap: 1.5rem;
    grid-template-columns: repeat(3, 1fr);
}

.publication-preview__item { margin: 0; padding: 0; }

.publication-preview__item a {
    display: block;
    overflow: hidden;
    border-radius: var(--radius-lg, 1rem);
    background: var(--color-surface-base);
    box-shadow: var(--card-shadow-base);
    transition: var(--card-transition);
    line-height: 0;
    font-size: 0;
    /* Nuke any inherited spacing on wrapped elements CKEditor may inject */
}

.publication-preview__item a *,
.publication-preview__item a p,
.publication-preview__item a br {
    margin: 0 !important;
    padding: 0 !important;
    line-height: 0 !important;
    font-size: 0 !important;
    display: block;
}

.publication-preview__item a:hover {
    transform: translateY(var(--card-lift-y, -4px));
    box-shadow: var(--card-shadow-hover);
}

.publication-preview__item img {
    display: block !important;
    width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    vertical-align: bottom !important;
    border: 0 !important;
    transition: transform 0.6s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.publication-preview__item a:hover img { transform: scale(1.03); }

.publication-preview__item figcaption {
    margin: 1rem 0 0;
    font-family: var(--font-family-base, inherit);
    font-size: 0.9375rem;
    line-height: 1.5;
    color: var(--color-text-secondary);
    text-align: center;
}

@media (max-width: 768px) {
    .publication-preview { grid-template-columns: 1fr; }
}
