/*
 * Fichier : abs-livre-fiche.css
 * Emplacement : assets/css/
 *
 * Responsabilité :
 * Présente ce que le plugin ajoute à la fiche d'un livre audio : sous-titre
 * et série, personnes créditées, identifiant, écoute de l'extrait,
 * renseignements, mentions de la couverture, onglets propres au livre et
 * grille des recommandations.
 *
 * Ce que cette feuille ne fait pas :
 *   La galerie, le prix, le formulaire d'achat, la barre d'onglets et la mise
 *   en page de la fiche appartiennent au thème et à WooCommerce. Les règles
 *   posées ici ne visent que les blocs du plugin, tous porteurs de la classe
 *   abs-livre-fiche.
 *
 * Couleurs, espacements et rayons :
 *   Toutes les valeurs viennent des variables du thème, avec une valeur de
 *   repli. Le thème redéfinit ses variables pour prefers-contrast: more, et
 *   une seule valeur posée en dur crève ce mécanisme en silence.
 *
 * Conteneur toujours rendu :
 *   Un bloc dont le conteneur sert de cible à un fragment est écrit même sans
 *   contenu, avec une classe de vacuité que cette feuille masque. Un sélecteur
 *   sans cible ne remplace rien.
 *
 * Dépliage des rôles :
 *   La liste porte l'état replié et les personnes au-delà du nombre présenté
 *   portent leur marque. Sans le script, la liste reste dépliée : un contenu
 *   masqué sans moyen de le révéler est un contenu perdu.
 *
 * Recommandations :
 *   Leur grille reprend la forme des cartes du catalogue, sous le conteneur
 *   de la fiche : deux domaines nomment leurs éléments de la même façon, et
 *   une règle sans conteneur s'applique aux deux selon l'ordre de chargement.
 */

.abs-livre-fiche {
    --abs-espace-mince: var(--discovery-space-1, 0.25rem);
    --abs-espace-court: var(--discovery-space-3, 0.75rem);
    --abs-espace: var(--discovery-space-6, 1.5rem);

    --abs-texte-menu: var(--discovery-text-sm, 0.875rem);
    --abs-texte-normal: var(--discovery-text-base, 1rem);

    --abs-rayon: var(--discovery-radius-md, 0.5rem);
    --abs-ligne-serree: var(--discovery-line-tight, 1.2);
    --abs-graisse-forte: var(--discovery-weight-semibold, 600);

    --abs-colonnes: 3;
    --abs-forme-couverture: 1 / 1;

    --abs-texte: var(--discovery-color-text, #1a1a1a);
    --abs-attenue: var(--discovery-color-muted, #595959);
    --abs-fond: var(--discovery-color-background, #ffffff);
    --abs-surface: var(--discovery-color-surface, #f2f2f2);
    --abs-bordure: var(--discovery-color-border, #767676);
    --abs-lien: var(--discovery-color-link, #0b5cad);
    --abs-accent: var(--discovery-color-accent, #6b3fa0);

    color: var(--abs-texte);
}

/* Conteneurs sans contenu */

.abs-livre-fiche.abs-livre-vide {
    display: none;
}

/* Marque éditrice */

.abs-livre-fiche.abs-livre-marque {
    margin: 0 0 var(--abs-espace-mince);
    font-size: var(--abs-texte-menu);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--abs-attenue);
}

/* Sous-titre et série */

.abs-livre-fiche.abs-livre-intro {
    margin: 0 0 var(--abs-espace-court);
}

.abs-livre-fiche .abs-fiche-sous-titre {
    margin: 0 0 var(--abs-espace-mince);
    line-height: var(--abs-ligne-serree);
    color: var(--abs-attenue);
}

.abs-livre-fiche .abs-fiche-serie {
    margin: 0;
    font-size: var(--abs-texte-menu);
}

/* Personnes créditées */

.abs-livre-fiche .abs-fiche-personnes {
    margin: 0 0 var(--abs-espace-court);
    font-size: var(--abs-texte-menu);
}

.abs-livre-fiche .abs-role {
    display: flex;
    flex-wrap: wrap;
    gap: var(--abs-espace-mince);
    margin: 0 0 var(--abs-espace-mince);
}

.abs-livre-fiche .abs-role-libelle {
    font-weight: var(--abs-graisse-forte);
    color: var(--abs-attenue);
}

.abs-livre-fiche .abs-role-personnes {
    margin: 0;
}

.abs-livre-fiche .abs-personnes-repliees .abs-personne-repliee {
    display: none;
}

.abs-livre-fiche .abs-personnes-plus {
    margin-left: var(--abs-espace-mince);
    padding: 0;
    border: 0;
    background: none;
    color: var(--abs-lien);
    font-size: inherit;
    text-decoration: underline;
    cursor: pointer;
}

/* Identifiant */

.abs-livre-fiche.abs-livre-isbn {
    display: flex;
    flex-wrap: wrap;
    gap: var(--abs-espace-mince);
    margin: 0 0 var(--abs-espace-court);
    font-size: var(--abs-texte-menu);
}

.abs-livre-fiche .abs-livre-isbn-etiquette {
    color: var(--abs-attenue);
}

/* Livre annoncé indisponible */

.abs-livre-fiche.abs-livre-indisponible {
    margin: 0 0 var(--abs-espace-court);
    padding: var(--abs-espace-court);
    border: 1px solid var(--abs-accent);
    border-radius: var(--abs-rayon);
    background-color: var(--abs-surface);
}

/* Écoute et présentation */

.abs-livre-fiche.abs-livre-ecoute {
    margin: 0 0 var(--abs-espace);
}

.abs-livre-fiche .abs-livre-ecoute-titre {
    margin: 0 0 var(--abs-espace-court);
    font-size: var(--abs-texte-normal);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--abs-attenue);
}

.abs-livre-fiche .abs-livre-ecoute-commandes {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--abs-espace-court);
}

.abs-livre-fiche .abs-livre-presentation {
    margin: var(--abs-espace-court) 0 0;
}

.abs-livre-fiche .abs-livre-presentation-titre {
    margin: 0 0 var(--abs-espace-mince);
    font-size: var(--abs-texte-normal);
}

/* Renseignements, mentions et listes de définitions */

.abs-livre-fiche .abs-livre-renseignements,
.abs-livre-fiche.abs-fiche-mentions {
    margin: 0 0 var(--abs-espace-court);
    font-size: var(--abs-texte-menu);
}

.abs-livre-fiche .abs-livre-renseignement,
.abs-livre-fiche .abs-fiche-mention {
    display: flex;
    flex-wrap: wrap;
    gap: var(--abs-espace-mince);
    margin: 0 0 var(--abs-espace-mince);
}

.abs-livre-fiche .abs-livre-renseignement dt,
.abs-livre-fiche .abs-fiche-mention dt {
    color: var(--abs-attenue);
}

.abs-livre-fiche .abs-livre-renseignement dd,
.abs-livre-fiche .abs-fiche-mention dd {
    margin: 0;
}

/* Onglets propres au livre */

.abs-livre-fiche .abs-livre-onglet-titre {
    margin: 0 0 var(--abs-espace-court);
}

.abs-livre-fiche .abs-livre-equipe,
.abs-livre-fiche .abs-livre-entrees,
.abs-livre-fiche .abs-livre-distinctions {
    margin: 0;
    padding: 0;
    list-style: none;
}

.abs-livre-fiche .abs-livre-membre,
.abs-livre-fiche .abs-livre-entree,
.abs-livre-fiche .abs-livre-distinction {
    margin: 0 0 var(--abs-espace-court);
    padding: 0 0 var(--abs-espace-court);
    border-bottom: 1px solid var(--abs-bordure);
}

.abs-livre-fiche .abs-livre-membre-role {
    display: block;
    font-size: var(--abs-texte-menu);
    color: var(--abs-attenue);
}

.abs-livre-fiche .abs-livre-entree-titre,
.abs-livre-fiche .abs-livre-distinction-titre {
    display: block;
    font-weight: var(--abs-graisse-forte);
}

.abs-livre-fiche .abs-livre-entree-precisions {
    display: block;
    font-size: var(--abs-texte-menu);
    color: var(--abs-attenue);
}

.abs-livre-fiche .abs-livre-entree-resume,
.abs-livre-fiche .abs-livre-distinction-description {
    display: block;
    margin: var(--abs-espace-mince) 0 0;
}

.abs-livre-fiche .abs-livre-distinction {
    display: flex;
    gap: var(--abs-espace-court);
}

.abs-livre-fiche .abs-livre-distinction-image img {
    display: block;
    width: 4rem;
    height: auto;
    border-radius: var(--abs-rayon);
}

/* Recommandations, au format des cartes du catalogue */

.abs-livre-fiche.abs-livre-recommandations,
.abs-livre-fiche.abs-livre-montees {
    margin: var(--abs-espace) 0 0;
}

.abs-livre-fiche .abs-livre-grille {
    display: grid;
    grid-template-columns: repeat(var(--abs-colonnes), minmax(0, 1fr));
    gap: var(--abs-espace);
    margin: 0;
    padding: 0;
    list-style: none;
}

.abs-livre-fiche .abs-carte {
    display: flex;
}

.abs-livre-fiche .abs-carte-lien {
    display: flex;
    flex-direction: column;
    gap: var(--abs-espace-court);
    width: 100%;
    padding: var(--abs-espace-court);
    border: 1px solid var(--abs-bordure);
    border-radius: var(--abs-rayon);
    background-color: var(--abs-fond);
    text-decoration: none;
    color: var(--abs-texte);
}

.abs-livre-fiche .abs-carte-lien:hover .abs-carte-titre,
.abs-livre-fiche .abs-carte-lien:focus-visible .abs-carte-titre {
    text-decoration: underline;
}

.abs-livre-fiche .abs-carte-couverture {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: var(--abs-forme-couverture);
    object-fit: cover;
    border-radius: var(--abs-rayon);
}

.abs-livre-fiche .abs-carte-titre {
    margin: 0;
    font-size: var(--abs-texte-normal);
    line-height: var(--abs-ligne-serree);
    color: var(--abs-lien);
}

.abs-livre-fiche .abs-carte-parties {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--abs-espace-court);
    font-size: var(--abs-texte-menu);
}

.abs-livre-fiche .abs-carte-partie-prix {
    font-weight: var(--abs-graisse-forte);
}

.abs-livre-fiche .abs-carte-partie-notation,
.abs-livre-fiche .abs-carte-partie-duree {
    color: var(--abs-attenue);
}

.abs-livre-fiche .abs-carte-partie-promotion {
    padding: var(--abs-espace-mince) var(--abs-espace-court);
    border: 1px solid var(--abs-accent);
    border-radius: var(--abs-rayon);
    color: var(--abs-accent);
    font-weight: var(--abs-graisse-forte);
}

/* Largeurs réduites */

@media (max-width: 1024px) {

    .abs-livre-fiche .abs-livre-grille {
        grid-template-columns: repeat(min(var(--abs-colonnes), 3), minmax(0, 1fr));
    }
}

@media (max-width: 768px) {

    .abs-livre-fiche .abs-livre-grille {
        grid-template-columns: repeat(min(var(--abs-colonnes), 2), minmax(0, 1fr));
    }
}

@media (max-width: 480px) {

    .abs-livre-fiche .abs-livre-grille {
        grid-template-columns: minmax(0, 1fr);
    }

    .abs-livre-fiche .abs-livre-distinction {
        flex-direction: column;
    }
}
