.module{
    display:grid;
    grid-template-columns:1fr 1fr;
    align-items:stretch;
    gap:28px;
    margin:48px auto;
    max-width:920px;
}

.module.right .image{
    order:2;
}

.module.right .text{
    order:1;
}

.image{
    position:relative;
    height:420px;
    border-radius:28px;
    overflow:hidden;
    background:#ddd;
    box-shadow:0 18px 40px rgba(0,0,0,0.10);
    transition:transform 0.28s ease, box-shadow 0.28s ease;
}

.image img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    transition:transform 0.5s ease;
}

.text{
    background:#ffffff;
    border-radius:28px;
    padding:42px 42px 38px;
    box-shadow:0 18px 40px rgba(0,0,0,0.10);
    display:flex;
    flex-direction:column;
    justify-content:center;
    cursor:pointer;
    transition:transform 0.28s ease, box-shadow 0.28s ease;
    position:relative;
    overflow:hidden;
    height:420px;
    box-sizing:border-box;
}

.text::after{
    content:"Lire plus";
    position:absolute;
    right:18px;
    bottom:16px;
    font-size:12px;
    font-weight:600;
    letter-spacing:0.04em;
    color:#666;
    opacity:0.85;
    pointer-events:none;
}

.text h2{
    margin:0 0 18px 0;
    font-size:var(--cards-title-desktop, 34px);
    line-height:1.1;
    font-weight:700;
    letter-spacing:-0.02em;
}

.text-preview{
    overflow:hidden;
}

.text-preview p{
    line-height:1.8;
    font-size:var(--cards-text-desktop, 16px);
    margin:0 0 16px 0;
    color:#2b2b2b;
}

.text-preview ul,
.text-preview ol{
    margin:0 0 16px 0;
    padding-left:20px;
}

.text-preview li{
    margin-bottom:10px;
    line-height:1.7;
    font-size:var(--cards-text-desktop, 16px);
    color:#2b2b2b;
}

.text-preview > *:last-child{
    margin-bottom:0;
}

.text-preview .btn{
    display:none;
}

.module:hover .image,
.module:hover .text{
    transform:translateY(-4px);
    box-shadow:0 24px 50px rgba(0,0,0,0.14);
}

.module:hover .image img{
    transform:scale(1.04);
}

@media (max-width:1024px){

    .module{
        grid-template-columns:1fr 1fr;
        gap:22px;
        margin:38px auto;
        max-width:860px;
    }

    .image{
        height:360px;
    }

    .text{
        height:360px;
        padding:30px 28px 46px;
    }

    .text h2{
        font-size:28px;
    }

    .text-preview p,
    .text-preview li{
        font-size:15px;
        line-height:1.7;
    }
}

@media (max-width:900px){

    .module{
        grid-template-columns:1fr 1fr;
        gap:14px;
        margin:24px auto;
        max-width:100%;
    }

    .module.right .image{
        order:2;
    }

    .module.right .text{
        order:1;
    }

    .image{
        height:220px;
        border-radius:22px;
    }

    .text{
        height:220px;
        padding:18px 18px 42px;
        border-radius:22px;
    }

    .text h2{
        font-size:var(--cards-title-mobile, 22px);
        margin-bottom:10px;
    }

    .text-preview{
        display:-webkit-box;
        -webkit-line-clamp:6;
        -webkit-box-orient:vertical;
        overflow:hidden;
    }

    .text-preview p,
    .text-preview li{
        font-size:var(--cards-text-mobile, 14px);
        line-height:1.55;
    }

    .text::after{
        right:14px;
        bottom:12px;
        font-size:11px;
    }
}

@media (max-width:560px){

    .module{
        grid-template-columns:1fr 1fr;
        gap:12px;
        margin:18px auto;
    }

    .image{
        height:190px;
        border-radius:18px;
    }

    .text{
        height:190px;
        padding:14px 14px 36px;
        border-radius:18px;
    }

    .text h2{
        font-size:var(--cards-title-mobile, 18px);
        margin-bottom:8px;
    }

    .text-preview{
        -webkit-line-clamp:5;
    }

    .text-preview p,
    .text-preview li{
        font-size:var(--cards-text-mobile, 13px);
        line-height:1.45;
    }

    .text::after{
        font-size:10px;
        bottom:10px;
        right:12px;
    }
}