﻿/* Tarjeta de noticia (Views/Shared/_NoticiasMoD). La burbuja de fecha es común (card-meta-bubble.css);
   aquí solo se coloca sobre la imagen. */

/* Toda la tarjeta lleva a la noticia: el título se extiende sobre ella (stretched-link de Bootstrap). */
.moc-news-card {
    position: relative;
}

/* El acercamiento del hover (scale, en Quasar.css) entraba de golpe: la animación de entrada de los resultados
   declara en la tarjeta una transición de opacidad y transform que sustituye a la suya. Aquí van las cuatro
   propiedades juntas; el retardo de entrada se declara aparte y no se pierde. */
.moc-news-card,
.moc-news-card.qg-content-search-result-item {
    transition: opacity .42s ease-out, transform .42s ease-out, scale .3s ease-in-out, box-shadow .3s ease-in-out;
}

.moc-news-card:has(.stretched-link:focus-visible) {
    outline: .125rem solid var(--qg-public-color-secondary-coral);
    outline-offset: .25rem;
}

.moc-news-card__image {
    position: relative;
    display: block;
}

/* El acercamiento de la imagen al pasar por encima (scale, en Quasar.css) entraba de golpe: la plantilla declara en el
   propio img una transición solo de opacidad, que sustituye a la de la tarjeta. Aquí se transicionan las dos. El
   selector repite las clases de la plantilla para ganarle en especificidad sin recurrir a !important. */
.moc-news-card.mpl-post-item:not(.mpl-post-vertical) .mpl-post-image > .mpl-image > img {
    transition: opacity .2s ease-in-out, scale .3s ease-in-out, transform .3s ease-in-out;
}

.moc-news-card__meta-bubble {
    position: absolute;
    bottom: .875rem;
    left: .875rem;
    z-index: 1;
    max-width: calc(100% - 1.75rem);
}

.moc-news-card__description {
    color: var(--qg-public-color-white);
}

/* "Ver más" compacto, alineado a la derecha y por encima del enlace de la tarjeta para conservar su hover. */
.moc-news-card__more {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: .5rem;
    width: fit-content;
    margin: 1rem 0 0 auto;
    padding: .625rem 1.25rem;
}

@media (max-width: 575px) {
    .moc-news-card__meta-bubble {
        right: .625rem;
        bottom: .625rem;
        left: .625rem;
        max-width: none;
    }
}

/* Separación entre noticias.

   Eran 110 px declarados y 60 efectivos: la plantilla pone 60 px de margen superior entre artículos y la vista
   añadía `margen-inferior` (50 px), que se solapaban. Con cinco noticias por página, eso es media pantalla de
   desplazamiento en huecos. La clase sale del marcado y el espacio se decide aquí, en un solo sitio. */
/* El selector repite el de la plantilla porque el suyo lleva un `:not()` y, con dos clases a secas, le gana. */
.moc-news-card.mpl-post-item:not(.mpl-post-vertical) + .moc-news-card.mpl-post-item {
    margin-top: var(--qg-public-space-md);
}

/* La imagen se lleva más ancho, y deja de mandar en el alto.

   El título rara vez llena su línea y la entradilla ocupa dos, así que la columna de texto iba holgada y la
   imagen se quedaba estrecha.

   Ojo con el alto: la plantilla le fija la proporción a la caja con un `padding-top: 74%` en un `::before`,
   así que ensancharla la alargaba, y con ella toda la tarjeta (de 273 a 362 px en la primera prueba). Se
   suelta esa proporción y se le da el alto que ya tenía; el recorte lo resuelve `object-fit: cover`. */
.moc-news-card.mpl-post-item:not(.mpl-post-vertical) .mpl-post-image > .mpl-image::before {
    padding-top: 0;
}

.moc-news-card.mpl-post-item:not(.mpl-post-vertical) .mpl-post-image > .mpl-image {
    height: 13.875rem;
}

@media (min-width: 1200px) {
    .moc-news-card.mpl-post-item:not(.mpl-post-vertical) .mpl-post-image {
        flex: 0 0 26.25rem;
        max-width: 26.25rem;
    }
}

@media (min-width: 992px) and (max-width: 1199.98px) {
    .moc-news-card.mpl-post-item:not(.mpl-post-vertical) .mpl-post-image {
        flex: 0 0 20rem;
        max-width: 20rem;
    }
}
