/* ==========================================================
   AP BLOG — EDITORIAL GRID V1

   Desktop : 3 columnas
   Tablet  : 2 columnas
   Móvil   : 1 columna

   Alcance exclusivo:
   pages/blog.html
========================================================== */


/* ==========================================================
   SECCIÓN
========================================================== */

.blog-editorial-grid-section {
    position: relative;
    overflow: hidden;

    padding:
        clamp(2.4rem, 5vw, 4.6rem)
        0;

    background:
        radial-gradient(
            circle at 8% 8%,
            rgba(13, 110, 253, .075),
            transparent 27rem
        ),
        radial-gradient(
            circle at 94% 34%,
            rgba(192, 38, 211, .055),
            transparent 24rem
        ),
        linear-gradient(
            180deg,
            #f8fbff 0%,
            #ffffff 48%,
            #f8fbff 100%
        );
}


.blog-editorial-grid-wrap {
    position: relative;
    z-index: 1;
}


/* ==========================================================
   GRID
========================================================== */

.blog-editorial-grid {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap:
        clamp(
            1.25rem,
            2.2vw,
            2rem
        );

    align-items: stretch;
}


/* ==========================================================
   TARJETA
========================================================== */

.blog-grid-card {
    position: relative;

    display: flex;
    flex-direction: column;

    min-width: 0;
    height: 100%;

    overflow: hidden;

    border:
        1px solid
        rgba(15, 23, 42, .085);

    border-radius:
        24px;

    background:
        rgba(255, 255, 255, .98);

    box-shadow:
        0 12px 34px
        rgba(15, 23, 42, .075);

    isolation: isolate;

    transition:
        transform .32s ease,
        box-shadow .32s ease,
        border-color .32s ease;
}


.blog-grid-card::before {
    content: "";

    position: absolute;
    z-index: 4;

    top: 0;
    left: 22px;
    right: 22px;

    height: 3px;

    border-radius:
        0 0 999px 999px;

    background:
        linear-gradient(
            90deg,
            #0d6efd 0%,
            #6d5dfc 55%,
            #c026d3 100%
        );

    opacity: .88;
}


/* ==========================================================
   IMAGEN
========================================================== */

.blog-grid-media {
    position: relative;

    display: block;

    width: 100%;

    aspect-ratio:
        16 / 10;

    overflow: hidden;

    background:
        #e8eef7;

    text-decoration: none;
}


.blog-grid-media > img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
    object-position: center;

    transform: scale(1.001);

    transition:
        transform .55s
        cubic-bezier(.2, .65, .3, 1);
}


.blog-grid-media-shade {
    position: absolute;
    inset: 0;

    pointer-events: none;

    background:
        linear-gradient(
            180deg,
            rgba(15, 23, 42, .02) 40%,
            rgba(15, 23, 42, .34) 100%
        );
}


/* ==========================================================
   BADGE
========================================================== */

.blog-grid-badge {
    position: absolute;

    z-index: 2;

    left: 1rem;
    bottom: 1rem;

    max-width:
        calc(100% - 2rem);

    padding:
        .5rem .82rem !important;

    border:
        1px solid
        rgba(255, 255, 255, .42);

    border-radius:
        999px;

    box-shadow:
        0 7px 18px
        rgba(15, 23, 42, .18);

    font-size:
        .75rem;

    font-weight:
        700;

    letter-spacing:
        .015em;

    line-height:
        1.2;

    white-space:
        normal;
}


/* ==========================================================
   CONTENIDO
========================================================== */

.blog-grid-body {
    display: flex;
    flex-direction: column;

    flex: 1;

    padding:
        1.35rem
        1.35rem
        1.45rem;
}


.blog-grid-title {
    margin:
        0 0 .8rem;

    color:
        #0f172a;

    font-size:
        clamp(
            1.25rem,
            1.65vw,
            1.58rem
        );

    font-weight:
        750;

    line-height:
        1.23;

    letter-spacing:
        -.018em;

    display:
        -webkit-box;

    -webkit-line-clamp:
        3;

    -webkit-box-orient:
        vertical;

    overflow: hidden;
}


.blog-grid-title > a {
    color: inherit;

    text-decoration: none;

    transition:
        color .24s ease;
}


.blog-grid-excerpt {
    margin:
        0 0 1.25rem;

    color:
        #536176;

    font-size:
        .97rem;

    line-height:
        1.68;

    display:
        -webkit-box;

    -webkit-line-clamp:
        4;

    -webkit-box-orient:
        vertical;

    overflow: hidden;
}


/* ==========================================================
   BOTÓN
========================================================== */

.blog-grid-link {
    display: inline-flex;

    align-items: center;
    justify-content: center;

    gap: .62rem;

    align-self:
        flex-start;

    margin-top:
        auto;

    min-height:
        46px;

    padding:
        .72rem 1.15rem;

    font-size:
        .87rem;

    font-weight:
        700;

    line-height:
        1.2;

    box-shadow:
        0 7px 17px
        rgba(13, 110, 253, .16);

    transition:
        transform .25s ease,
        box-shadow .25s ease,
        background-color .25s ease;
}


.blog-grid-link i {
    font-size:
        .92rem;

    transition:
        transform .25s ease;
}


/* ==========================================================
   EFECTOS PC
========================================================== */

@media
(hover: hover)
and
(pointer: fine) {

    .blog-grid-card:hover {
        transform:
            translateY(-7px);

        border-color:
            rgba(13, 110, 253, .18);

        box-shadow:
            0 22px 50px
            rgba(15, 23, 42, .13);
    }


    .blog-grid-card:hover
    .blog-grid-media > img {
        transform:
            scale(1.055);
    }


    .blog-grid-card:hover
    .blog-grid-title > a {
        color:
            #0d6efd;
    }


    .blog-grid-link:hover {
        transform:
            translateY(-2px);

        box-shadow:
            0 11px 24px
            rgba(13, 110, 253, .24);
    }


    .blog-grid-link:hover i {
        transform:
            translateX(4px);
    }

}


/* ==========================================================
   TABLET
========================================================== */

@media (max-width: 991.98px) {

    .blog-editorial-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        gap:
            1.35rem;
    }


    .blog-grid-card {
        border-radius:
            22px;
    }


    .blog-grid-title {
        font-size:
            1.35rem;
    }

}


/* ==========================================================
   MÓVIL
========================================================== */

@media (max-width: 767.98px) {

    .blog-editorial-grid-section {
        padding:
            1.75rem 0 2.25rem;
    }


    .blog-editorial-grid {
        grid-template-columns:
            minmax(0, 1fr);

        gap:
            1.15rem;
    }


    .blog-grid-card {
        border-radius:
            20px;

        box-shadow:
            0 9px 26px
            rgba(15, 23, 42, .075);
    }


    .blog-grid-media {
        aspect-ratio:
            16 / 9;
    }


    .blog-grid-body {
        padding:
            1rem
            1rem
            1.1rem;
    }


    .blog-grid-badge {
        left:
            .8rem;

        bottom:
            .8rem;

        max-width:
            calc(100% - 1.6rem);

        font-size:
            .7rem;

        padding:
            .43rem .68rem !important;
    }


    .blog-grid-title {
        margin-bottom:
            .65rem;

        font-size:
            clamp(
                1.2rem,
                6vw,
                1.4rem
            );

        -webkit-line-clamp:
            3;
    }


    .blog-grid-excerpt {
        margin-bottom:
            1rem;

        font-size:
            .93rem;

        line-height:
            1.62;

        -webkit-line-clamp:
            3;
    }


    .blog-grid-link {
        width:
            100%;

        align-self:
            stretch;

        min-height:
            46px;

        padding:
            .7rem .9rem;

        font-size:
            .84rem;
    }

}


/* ==========================================================
   MÓVIL MUY PEQUEÑO
========================================================== */

@media (max-width: 359.98px) {

    .blog-grid-title {
        font-size:
            1.16rem;
    }


    .blog-grid-excerpt {
        -webkit-line-clamp:
            2;
    }


    .blog-grid-link {
        font-size:
            .8rem;
    }

}


/* ==========================================================
   ACCESIBILIDAD
========================================================== */

.blog-grid-title > a:focus-visible,
.blog-grid-media:focus-visible,
.blog-grid-link:focus-visible {
    outline:
        3px solid
        rgba(13, 110, 253, .35);

    outline-offset:
        3px;
}


@media
(prefers-reduced-motion: reduce) {

    .blog-grid-card,
    .blog-grid-media > img,
    .blog-grid-link,
    .blog-grid-link i,
    .blog-grid-title > a {
        transition:
            none !important;
    }


    .blog-grid-card:hover {
        transform:
            none !important;
    }

}
