.sultana-colecciones-listado {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
    max-width: 1100px;
    margin: 0 auto;
}

.sultana-coleccion-card {
    display: block;
    text-decoration: none;
    color: #000;
    border: 1px solid #000;
    overflow: hidden;
    transition: transform 0.16s ease, box-shadow 0.16s ease;
}

.sultana-coleccion-card:hover {
    transform: translateY(-4px);
    box-shadow: 4px 4px 0 #000;
}

.sultana-coleccion-card__imagen {
    aspect-ratio: 21 / 9;
    background-size: cover;
    background-position: center;
    background-color: #f2f2f2;
}

.sultana-coleccion-card__cuerpo {
    padding: 16px;
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.sultana-coleccion-card__titulo {
    font-size: 18px;
    font-weight: 700;
}

.sultana-coleccion-card__extracto {
    font-size: 13px;
    color: #555;
}

.sultana-coleccion-libros {
    max-width: 1100px;
    margin: 2.5rem auto 0;
}

.sultana-coleccion-libros h2 {
    font-size: 20px;
    border-bottom: 2px solid #000;
    padding-bottom: 8px;
    margin-bottom: 16px;
}

.sultana-coleccion-libros__grid {
    display: grid;
    grid-template-columns: repeat(var(--sultana-cols, 3), minmax(0, 1fr));
    gap: 16px;
    align-items: start;
}

/* Sin esto un título largo empuja la celda y desborda el grid. */
.sultana-coleccion-libros__grid > * {
    min-width: 0;
}

/* ---- Ficha de un libro dentro de la colección ----
   Móvil (por defecto): portada arriba, título debajo.
   Escritorio (>= 700px): título al lado de la portada.
   En los dos casos el título se recorta a un máximo de líneas, así una
   obra con nombre larguísimo no rompe la grilla ni desalinea las tapas. */
.sultana-coleccion-libro {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-width: 0;
}

.sultana-coleccion-libro__portada {
    display: block;
    width: 100%;
    max-width: 120px;
    min-width: 0;
}

.sultana-coleccion-libro__portada img {
    display: block;
    box-sizing: border-box;
    width: 100%;
    height: auto;
    aspect-ratio: 2 / 3;
    object-fit: cover;
    background: #f2f2f2;
    border: 1px solid #000;
    transition: box-shadow 0.16s ease;
}

.sultana-coleccion-libro:hover .sultana-coleccion-libro__portada img {
    box-shadow: 4px 4px 0 #000;
}

.sultana-coleccion-libro__info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.sultana-coleccion-libro__titulo {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.35;
    min-width: 0;
}

.sultana-coleccion-libro__titulo a {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    overflow: hidden;
    overflow-wrap: anywhere;
    word-break: break-word;
    color: #000;
    text-decoration: none;
}

.sultana-coleccion-libro__titulo a:hover,
.sultana-coleccion-libro__titulo a:focus-visible {
    text-decoration: underline;
}

/* ---- Botón: toda la colección al carrito ---- */
.sultana-coleccion-carrito {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin-top: 20px;
}

.sultana-coleccion-carrito__boton {
    padding: 10px 20px;
    background: #000;
    color: #fff;
    border: 1px solid #000;
    font: inherit;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    cursor: pointer;
    transition: transform 0.16s ease, background-color 0.16s ease, color 0.16s ease, box-shadow 0.16s ease;
}

.sultana-coleccion-carrito__boton:hover:enabled {
    background: #fff;
    color: #000;
    transform: translateY(-2px);
    box-shadow: 0 4px 0 #000;
}

.sultana-coleccion-carrito__boton:active:enabled {
    transform: translateY(0);
    box-shadow: none;
}

.sultana-coleccion-carrito__boton:disabled {
    opacity: 0.6;
    cursor: progress;
}

.sultana-coleccion-carrito__boton:focus-visible {
    outline: 2px solid #000;
    outline-offset: 3px;
}

.sultana-coleccion-carrito__estado {
    margin: 0;
    font-size: 13px;
    line-height: 1.4;
    color: #000;
}

.sultana-coleccion-carrito__estado--error {
    color: #a00;
}

.sultana-coleccion-carrito__estado a {
    color: inherit;
    font-weight: 600;
}

@media (max-width: 480px) {
    .sultana-coleccion-carrito__boton {
        width: 100%;
    }
}

@media (max-width: 700px) {
    .sultana-coleccion-libros__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 480px) {
    .sultana-coleccion-libros__grid {
        grid-template-columns: 1fr;
    }
}

@media (min-width: 700px) {
    .sultana-coleccion-libro {
        display: grid;
        grid-template-columns: minmax(0, 96px) minmax(0, 1fr);
        gap: 12px;
        align-items: start;
    }

    .sultana-coleccion-libro__portada {
        max-width: 96px;
    }

    /* Libro sin portada: la ficha no reserva la columna de la tapa, si no
       el título quedaría metido en los 96px de la imagen. Va acá adentro
       porque compite con la regla de arriba y el orden decide. */
    .sultana-coleccion-libro--sin-portada {
        grid-template-columns: minmax(0, 1fr);
    }

    .sultana-coleccion-libro__titulo a {
        -webkit-line-clamp: 3;
        line-clamp: 3;
    }
}

@media (min-width: 700px) {
    .sultana-colecciones-listado {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}
