.book-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
    margin-top: 24px;
}

.book-grid-home {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.book-card {
    display: grid;
    grid-template-columns: minmax(180px, .8fr) minmax(0, 1.2fr);
    overflow: hidden;
    min-height: 340px;
}

.book-cover-wrap {
    display: grid;
    place-items: center;
    background: linear-gradient(145deg, #edf5fb, #fff);
    padding: 18px;
}

.book-cover-wrap img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 420px;
    object-fit: contain;
}

.book-grid-home .book-card {
    grid-template-columns: 1fr;
}

.book-grid-home .book-cover-wrap {
    min-height: 300px;
}

.book-grid-home .book-cover-wrap img {
    width: auto;
    max-width: 100%;
    height: 270px;
}

.book-copy {
    padding: 24px;
}

.book-copy h2,
.book-copy h3 {
    font: 700 24px/1.25 Georgia, serif;
    color: var(--navy);
    margin: 12px 0 4px;
}

.book-subtitle {
    font: italic 17px/1.45 Georgia, serif;
    color: var(--muted);
}

.admin-book-cover {
    display: block;
    max-width: 220px;
    max-height: 300px;
    object-fit: contain;
    border-radius: 10px;
    background: #f4f7f9;
    padding: 8px;
}

.text-align-left { text-align: left; }
.text-align-center { text-align: center; }
.text-align-right { text-align: right; }
.text-align-justify { text-align: justify; }

@media (max-width: 900px) {
    .book-grid,
    .book-grid-home {
        grid-template-columns: 1fr;
    }

    .book-card {
        grid-template-columns: minmax(160px, .65fr) minmax(0, 1.35fr);
    }

    .book-grid-home .book-card {
        grid-template-columns: minmax(160px, .65fr) minmax(0, 1.35fr);
    }

    .book-grid-home .book-cover-wrap {
        min-height: 0;
    }

    .book-grid-home .book-cover-wrap img {
        width: 100%;
        height: auto;
    }
}

@media (max-width: 560px) {
    .book-card {
        grid-template-columns: 1fr;
    }

    .book-cover-wrap img {
        max-height: 360px;
    }

    .book-copy {
        padding: 20px;
    }
}
