.ds-book-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: calc(var(--ds-spacing-unit) * 6);
}

.ds-book-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    text-decoration: none;
    color: inherit;
}

.ds-book-card__media {
    position: relative;
    aspect-ratio: 2 / 3;
    overflow: hidden;
    border-bottom: var(--ds-border-width) solid var(--ds-color-border);
    background: color-mix(in srgb, var(--ds-color-text) 3%, transparent);
}

.ds-book-card__img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--ds-animation-duration) var(--ds-animation-easing);
}

.ds-book-card:hover .ds-book-card__img {
    transform: scale(1.03);
}

.ds-book-card__content {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding: calc(var(--ds-spacing-unit) * 6);
    gap: calc(var(--ds-spacing-unit) * 2);
}

.ds-book-card__title {
    margin: 0;
    font-size: 1.25rem;
    line-height: 1.2;
    letter-spacing: -0.02em;
    font-weight: 800;
}

.ds-book-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: calc(var(--ds-spacing-unit) * 3);
    color: var(--ds-color-secondary);
    font-size: 0.9rem;
    margin-top: calc(var(--ds-spacing-unit) * 1);
}

.ds-book-card__meta-item {
    display: flex;
    align-items: center;
    gap: calc(var(--ds-spacing-unit) * 1);
}

.ds-book-card__action {
    margin-top: auto;
    padding-top: calc(var(--ds-spacing-unit) * 4);
    color: var(--ds-color-primary);
    font-weight: 800;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}