/* =========================================================
   AvidVinyl Build 047.4 — Catalogue Refinement
   Visual polish only: catalogue controls, cards, pagination,
   hover states and responsive spacing.
   ========================================================= */

.catalogue-page{
    padding-bottom:clamp(56px,7vw,90px);
}

.catalogue-heading{
    margin-bottom:38px;
    align-items:end;
}
.catalogue-heading h1{
    margin:0;
    line-height:1;
}
.catalogue-heading > p{
    max-width:620px;
    line-height:1.65;
}

/* Filters: calmer spacing and consistent control height. */
.catalogue-controls{
    gap:14px;
    padding:22px;
    align-items:end;
}
.catalogue-controls label{
    min-width:0;
}
.catalogue-controls input,
.catalogue-controls select,
.catalogue-controls button{
    min-height:50px;
    height:50px;
    border-radius:6px;
}
.catalogue-controls input,
.catalogue-controls select{
    padding-left:13px;
    padding-right:13px;
}
.catalogue-controls button{
    padding:0 22px;
    font-weight:800;
    transition:transform .16s ease, box-shadow .16s ease, opacity .16s ease;
}
.catalogue-controls button:hover{
    transform:translateY(-1px);
}

.alphabet{
    margin:26px 0 30px;
    gap:6px;
}
.alphabet a{
    min-width:36px;
    height:36px;
    border-radius:5px;
    transition:transform .15s ease, background-color .15s ease, color .15s ease;
}
.alphabet a:hover{
    transform:translateY(-1px);
}

.catalogue-status{
    margin:34px 0 20px;
}
.view-toggle{
    border-radius:6px;
    overflow:hidden;
}
.view-toggle a{
    min-width:58px;
    text-align:center;
}

/* Cards: equal-height layout with aligned buying controls. */
.catalogue-grid:not(.list-view){
    align-items:stretch;
    gap:clamp(18px,2.1vw,28px);
}
.catalogue-grid:not(.list-view) .card{
    height:100%;
    display:flex;
    flex-direction:column;
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.catalogue-grid:not(.list-view) .card:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 24px rgba(0,0,0,.08);
}
.catalogue-grid:not(.list-view) .image-wrap{
    overflow:hidden;
}
.catalogue-grid:not(.list-view) .image-wrap img{
    transition:transform .22s ease;
}
.catalogue-grid:not(.list-view) .card:hover .image-wrap img{
    transform:scale(1.015);
}
.catalogue-grid:not(.list-view) .card-body{
    flex:1;
    display:flex;
    flex-direction:column;
    padding-top:20px;
}
.catalogue-grid:not(.list-view) .record-copy{
    flex:1;
}

.catalogue-grid .artist{
    font-size:1.08em;
    line-height:1.25;
    font-weight:800;
    letter-spacing:.01em;
    margin-bottom:7px;
}
.catalogue-grid .card h3{
    line-height:1.35;
    margin-top:0;
    margin-bottom:12px;
    font-weight:650;
}
.catalogue-grid .label-meta{
    margin-top:0;
}
.catalogue-grid .condition-meta{
    margin-top:10px;
}
.catalogue-grid:not(.list-view) .audio-wrap{
    margin-top:16px;
}
.catalogue-grid:not(.list-view) .buy-row{
    margin-top:auto;
    padding-top:18px;
    align-items:center;
}
.catalogue-grid .buy-row > strong{
    font-size:1.22rem;
    line-height:1;
}
.catalogue-grid .view-details,
.catalogue-grid .add{
    min-height:42px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:5px;
    transition:transform .15s ease, box-shadow .15s ease, opacity .15s ease;
}
.catalogue-grid .view-details:hover,
.catalogue-grid .add:hover{
    transform:translateY(-1px);
}

/* Pagination: easier targets and a clearer active page. */
.pagination{
    margin-top:46px;
    margin-bottom:18px;
    gap:7px;
    flex-wrap:wrap;
}
.pagination a,
.pagination .current-page{
    min-width:42px;
    height:42px;
    padding:0 12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:6px;
    font-size:.95rem;
    font-weight:800;
    text-decoration:none;
}
.pagination .current-page{
    box-shadow:0 2px 8px rgba(0,0,0,.12);
}
.pagination .page-direction{
    min-width:auto;
    padding-left:17px;
    padding-right:17px;
}

/* Keep list view compact while improving readability. */
.catalogue-grid.list-view .card{
    transition:box-shadow .18s ease, border-color .18s ease;
}
.catalogue-grid.list-view .card:hover{
    box-shadow:0 8px 22px rgba(0,0,0,.07);
}

@media(max-width:1050px){
    .catalogue-controls{
        gap:12px;
    }
}

@media(max-width:820px){
    .catalogue-heading{
        margin-bottom:30px;
    }
    .catalogue-grid:not(.list-view){
        gap:18px;
    }
    .catalogue-grid:not(.list-view) .card-body{
        padding-top:17px;
    }
    .pagination{
        margin-top:38px;
    }
}

@media(max-width:540px){
    .catalogue-controls{
        padding:17px;
        gap:12px;
    }
    .catalogue-controls input,
    .catalogue-controls select,
    .catalogue-controls button{
        width:100%;
        min-height:48px;
        height:48px;
    }
    .alphabet{
        margin:22px 0 26px;
    }
    .alphabet a{
        min-width:34px;
        height:34px;
    }
    .catalogue-status{
        margin-top:28px;
    }
    .catalogue-grid:not(.list-view){
        gap:14px;
    }
    .catalogue-grid .artist{
        font-size:1.04em;
    }
    .catalogue-grid .buy-row > strong{
        font-size:1.12rem;
    }
    .pagination a,
    .pagination .current-page{
        min-width:38px;
        height:38px;
        padding:0 10px;
        font-size:.9rem;
    }
}

@media (prefers-reduced-motion: reduce){
    .catalogue-controls button,
    .alphabet a,
    .catalogue-grid .card,
    .catalogue-grid .image-wrap img,
    .catalogue-grid .view-details,
    .catalogue-grid .add{
        transition:none !important;
        transform:none !important;
    }
}
