/*
 * Composants publics consolidés — V8.
 * Ce fichier est chargé après app.css afin de remplacer proprement les anciens
 * correctifs du menu secondaire sans dépendre de JavaScript.
 */
.site-nav > details.nav-more {
    position: relative !important;
    display: inline-flex !important;
    flex: 0 0 auto !important;
    align-items: center !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    z-index: 1200 !important;
}
.site-nav > details.nav-more > summary {
    all: unset !important;
    box-sizing: border-box !important;
    position: relative !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: .35em !important;
    min-height: 0 !important;
    padding: 0 0 18px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: rgba(248, 241, 232, .9) !important;
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif !important;
    font-size: clamp(1.18rem, 1.35vw, 1.46rem) !important;
    font-weight: 500 !important;
    line-height: 1 !important;
    letter-spacing: .005em !important;
    text-shadow: 0 8px 20px rgba(0, 0, 0, .5) !important;
    cursor: pointer !important;
    user-select: none !important;
    white-space: nowrap !important;
}
.site-nav > details.nav-more > summary::-webkit-details-marker { display: none !important; }
.site-nav > details.nav-more > summary::after {
    content: "⌄" !important;
    display: inline-block !important;
    color: rgba(224, 194, 99, .92) !important;
    font-size: .72em !important;
    line-height: 1 !important;
    transform: translateY(-.04em) !important;
    transition: transform 180ms ease !important;
}
.site-nav > details.nav-more[open] > summary::after {
    transform: translateY(.04em) rotate(180deg) !important;
}
.site-nav > details.nav-more > summary::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: 6px !important;
    width: 0 !important;
    height: 2px !important;
    transform: translateX(-50%) !important;
    background: linear-gradient(90deg, transparent, var(--sk-gold, #d4a700), transparent) !important;
    box-shadow: 0 0 14px rgba(212, 167, 0, .78) !important;
    transition: width 180ms ease !important;
}
.site-nav > details.nav-more > summary:hover,
.site-nav > details.nav-more > summary:focus-visible,
.site-nav > details.nav-more.is-current > summary,
.site-nav > details.nav-more[open] > summary { color: #fff !important; }
.site-nav > details.nav-more > summary:hover::before,
.site-nav > details.nav-more > summary:focus-visible::before,
.site-nav > details.nav-more.is-current > summary::before,
.site-nav > details.nav-more[open] > summary::before { width: 58px !important; }
.site-nav > details.nav-more > summary:focus-visible {
    outline: 2px solid rgba(214,171,40,.72) !important;
    outline-offset: 5px !important;
}
.site-nav > details.nav-more:not([open]) > .nav-more-menu { display: none !important; }
.site-nav > details.nav-more > .nav-more-menu {
    position: absolute !important;
    inset: auto -.8rem auto auto !important;
    top: calc(100% + .25rem) !important;
    z-index: 10000 !important;
    width: min(18rem, calc(100vw - 2rem)) !important;
    min-width: 0 !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: .18rem !important;
    padding: .7rem !important;
    overflow: visible !important;
    border: 1px solid rgba(214,171,40,.34) !important;
    border-radius: 1rem !important;
    background: rgba(8, 6, 15, .97) !important;
    box-shadow: 0 1.2rem 3rem rgba(0,0,0,.52), 0 0 2rem rgba(119,53,171,.16) !important;
    backdrop-filter: blur(16px) !important;
    transform: none !important;
    visibility: visible !important;
    max-height: none !important;
}
.site-nav > details.nav-more > .nav-more-menu > a {
    all: unset !important;
    box-sizing: border-box !important;
    display: block !important;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: .72rem .85rem !important;
    border: 0 !important;
    border-radius: .65rem !important;
    background: transparent !important;
    color: #f3ede4 !important;
    font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif !important;
    font-size: 1.02rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: .01em !important;
    text-decoration: none !important;
    text-shadow: none !important;
    white-space: normal !important;
    cursor: pointer !important;
}
.site-nav > details.nav-more > .nav-more-menu > a::before,
.site-nav > details.nav-more > .nav-more-menu > a::after { content: none !important; }
.site-nav > details.nav-more > .nav-more-menu > a:hover,
.site-nav > details.nav-more > .nav-more-menu > a:focus-visible,
.site-nav > details.nav-more > .nav-more-menu > a[aria-current="page"] {
    background: linear-gradient(100deg, rgba(117,48,154,.34), rgba(117,48,154,.08)) !important;
    color: #fff !important;
}

@media (max-width: 900px), (orientation: portrait) and (max-width: 1180px) {
    .site-nav > details.nav-more > summary {
        min-height: 40px !important;
        padding: 0 14px !important;
        border: 1px solid rgba(212,167,0,.34) !important;
        border-radius: 999px !important;
        background: rgba(0,0,0,.22) !important;
        color: #fffaf2 !important;
        font-size: 1.04rem !important;
        font-weight: 700 !important;
        text-shadow: 0 8px 20px rgba(0,0,0,.38) !important;
    }
    .site-nav > details.nav-more > summary::before { content: none !important; }
    .site-nav > details.nav-more > .nav-more-menu {
        right: 0 !important;
        width: min(17rem, calc(100vw - 1.4rem)) !important;
    }
}
@media (max-width: 520px) {
    .site-nav > details.nav-more > summary {
        min-height: 36px !important;
        padding: 0 10px !important;
        font-size: .94rem !important;
    }
}

/* Agrandissement sobre des couvertures sur les dispositifs disposant d’un vrai survol. */
@media (hover: hover) and (pointer: fine) {
    .catalog-book { position: relative; }
    .catalog-book:hover { z-index: 12; }
    .catalog-book-cover-wrap {
        overflow: visible;
        transform-origin: 50% 78%;
        transition: transform 260ms cubic-bezier(.2,.75,.2,1), filter 260ms ease, box-shadow 260ms ease;
        will-change: transform;
    }
    .catalog-book-cover-wrap:hover,
    .catalog-book:focus-within .catalog-book-cover-wrap {
        transform: translateY(-.55rem) scale(1.24);
        filter: saturate(1.04) contrast(1.02);
        box-shadow: 0 1.5rem 3.3rem rgba(0,0,0,.42), 0 0 2.4rem rgba(129,61,181,.2);
    }
}
@media (prefers-reduced-motion: reduce) {
    .catalog-book-cover-wrap { transition-duration: .01ms !important; }
}

/* Catalogue public : recherche, filtres et pagination sobres. */
.catalog-tools {
    margin: 0 0 clamp(1.8rem, 4vw, 3rem);
    padding: 0;
}
.catalog-tools-summary {
    display: grid;
    gap: .9rem;
}
.catalog-tools .catalog-count {
    margin: 0;
    color: rgba(255,255,255,.76);
}
.catalog-filter-details {
    border-top: 1px solid rgba(212,167,0,.22);
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding: .65rem 0;
}
.catalog-filter-details > summary {
    width: fit-content;
    list-style: none;
    cursor: pointer;
    color: rgba(255,250,242,.92);
    font-weight: 700;
    letter-spacing: .02em;
}
.catalog-filter-details > summary::-webkit-details-marker { display: none; }
.catalog-filter-details > summary::after { content: " +"; color: #d6ad31; }
.catalog-filter-details[open] > summary::after { content: " −"; }
.catalog-filter-form {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: .85rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid rgba(255,255,255,.09);
    border-radius: 1rem;
    background: rgba(9,8,20,.42);
}
.catalog-filter-form label {
    display: grid;
    gap: .35rem;
    min-width: 0;
    color: rgba(255,255,255,.68);
    font-size: .88rem;
}
.catalog-filter-form input,
.catalog-filter-form select {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: .55rem .7rem;
    border: 1px solid rgba(255,255,255,.15);
    border-radius: .65rem;
    background: rgba(255,255,255,.065);
    color: #fff;
    font: inherit;
}
.catalog-filter-form select option { color: #171321; }
.catalog-search-field { grid-column: span 2; }
.catalog-filter-actions {
    grid-column: 1 / -1;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .9rem;
}
.catalog-filter-actions a {
    color: rgba(255,255,255,.72);
    text-underline-offset: .2em;
}
.catalog-no-results { margin-bottom: 3rem; }
.catalog-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 1rem;
    margin: 3rem 0 1rem;
    color: rgba(255,255,255,.7);
}
.catalog-pagination a {
    display: inline-flex;
    min-height: 40px;
    align-items: center;
    padding: .45rem .8rem;
    border: 1px solid rgba(212,167,0,.3);
    border-radius: 999px;
    color: #fffaf2;
    text-decoration: none;
}
.catalog-pagination a:hover,
.catalog-pagination a:focus-visible { background: rgba(117,48,154,.22); }
@media (max-width: 980px) {
    .catalog-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .catalog-filter-form { grid-template-columns: 1fr; }
    .catalog-search-field { grid-column: auto; }
    .catalog-pagination { justify-content: space-between; }
}
