.catalog-hero{padding:34px 0 26px;border-bottom:1px solid var(--line-strong);}
.catalog-hero-row{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:32px;align-items:end;}
.catalog-hero > .lead{margin-top:14px;font-size:clamp(14px,1.35vw,20px);}
.genre-cloud{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px;}
.catalog-toolbar{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 0;border-bottom:1px solid var(--line);}
.catalog-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:28px;padding-top:24px;}
.filter-panel{border-right:1px solid var(--line);padding-right:22px;align-self:start;position:sticky;top:105px;}
.filter-title{font-family:"Archivo Black",Arial Black,sans-serif;font-size:18px;text-transform:uppercase;margin-bottom:14px;}
.filter-group{border-top:1px solid var(--line);padding:14px 0;}
fieldset.filter-group{border:0;border-top:1px solid var(--line);margin:0;min-inline-size:0;}
.filter-group label,.filter-group legend{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--grey);margin-bottom:8px;}
.filter-group input,.filter-group select{width:100%;min-height:42px;border:1px solid var(--line);background:transparent;padding:9px 10px;}
.filter-group input::placeholder{color:rgba(12,12,10,.45);}
.check-row{display:flex!important;align-items:center;gap:9px;font-size:12px!important;letter-spacing:0!important;text-transform:none!important;color:var(--ink)!important;margin:8px 0!important;}
.check-row input{width:auto;min-height:0;}
.sort-control{display:flex;align-items:center;gap:10px;}
.sort-label{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:var(--grey);}
.sort-select{min-width:170px;min-height:38px;border:1px solid var(--line);background:transparent;padding:7px 30px 7px 10px;color:var(--ink);}
.sort-select:focus,.filter-group input:focus,.filter-group select:focus{outline:1px solid var(--ink);outline-offset:1px;}
.active-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 18px;}
.chip{border:1px solid var(--line);padding:7px 9px;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--grey);}
.book-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 18px;}
.book-card{display:flex;flex-direction:column;height:100%;border-top:1px solid var(--line-strong);padding-top:12px;min-width:0;}
.book-image-link{position:relative;display:block;aspect-ratio:3/4;background:transparent;border:0;overflow:hidden;margin-bottom:12px;}
.book-image-link img{width:100%;height:100%;object-fit:cover;padding:0;transition:opacity .25s ease,transform .35s ease;}
.book-image-link .hover-image{position:absolute;inset:0;opacity:0;}
@media (hover:hover){.book-card:hover .book-image-link .hover-image{opacity:1}.book-card:hover .book-image-link .main-image.has-hover{opacity:0}.book-card:hover .book-image-link img{transform:scale(1.015)}}
.book-title{font-family:"Archivo Black",Arial Black,sans-serif;text-transform:uppercase;font-size:18px;line-height:1.02;letter-spacing:-.01em;margin-bottom:8px;}
.book-title a:hover{color:var(--red);}
.book-author{font-size:12px;line-height:1.35;color:var(--grey);margin-bottom:2px;}
.book-author a:hover{color:var(--red);}
.book-meta{font-size:12px;line-height:1.55;color:var(--grey);}
.book-meta a:hover{color:var(--red);}
.book-tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0;}
.book-feature-tags{margin-top:0;}
.book-price-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:12px 0 10px;margin-top:auto;}
.price{font-size:18px;font-weight:700;}
.card-actions{display:grid;grid-template-columns:1fr;gap:8px;}
.pagination{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin:44px 0 10px;}
.page-button{min-width:40px;min-height:40px;border:1px solid var(--line);font-size:11px;letter-spacing:.1em;text-transform:uppercase;padding:0 10px;}
.page-button.active,.page-button:hover{background:var(--ink);color:var(--paper);}
.page-button[disabled]{opacity:.35;cursor:not-allowed;background:transparent;color:var(--grey);}
.author-page{padding:34px 0 64px;}
.author-heading{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:32px;align-items:end;}
.author-meta{color:var(--grey);font-size:clamp(18px,2.2vw,32px);line-height:1.18;}
.author-books{margin-top:52px;}
.author-books .section-title{font-size:clamp(28px,3.8vw,54px);line-height:.9;margin-bottom:24px;}
.suggest-section{border-bottom:1px solid var(--line);}
.suggest-heading{padding:9px 14px 3px;font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--grey);}
.suggest-row{display:flex;justify-content:space-between;gap:14px;padding:9px 14px;border-top:1px solid var(--line);font-size:12px;}
.suggest-row:hover,.suggest-row.active{background:rgba(180,35,29,.06);color:var(--red);}
.suggest-main{font-weight:700;}
.suggest-sub{color:var(--grey);font-size:11px;}
.filter-drawer-toggle{display:none;}
@media (min-width:861px){
  body[data-page="fiction"],
  body[data-page="non-fiction"],
  body[data-page="genre"],
  body[data-page="new-drop"],
  body[data-page="new-arrivals"],
  body[data-page="sold-archive"]{
    height:auto;
    min-height:100vh;
    min-height:100dvh;
    overflow:auto;
  }
  body.page .main:has(.catalog-hero){
    flex:1 1 auto;
    min-height:auto;
    overflow:visible;
  }
  .catalog-hero{
    flex:0 0 auto;
    padding:18px 0 8px;
    border-bottom:0;
  }
  .catalog-hero .page-title{
    font-size:clamp(48px,6.4vw,96px);
  }
  .catalog-hero .lead{
    font-size:clamp(16px,1.6vw,24px);
  }
  .genre-cloud{
    flex-wrap:nowrap;
    overflow-x:auto;
    gap:18px;
    margin-top:14px;
    padding-bottom:4px;
    scrollbar-width:none;
  }
  .genre-cloud::-webkit-scrollbar{display:none;}
  .genre-cloud .tag{
    flex:0 0 auto;
    border:0;
    min-height:0;
    padding:0;
    color:var(--grey);
  }
  .genre-cloud .tag:hover{color:var(--red);}
  .catalog-toolbar{
    display:none;
  }
  .catalog-layout{
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:25px 0 42px;
  }
  .filter-panel{
    position:static;
    flex:0 0 auto;
    min-height:0;
    max-height:none;
    display:flex;
    align-items:flex-start;
    gap:14px;
    overflow:visible;
    overscroll-behavior:contain;
    border-right:0;
    padding:10px 0 12px;
    scrollbar-width:none;
  }
  .filter-panel form{
    display:contents;
  }
  .filter-panel .sort-control{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    flex:0 1 135px;
    gap:0;
    min-width:0;
  }
  .filter-clear{
    flex:0 0 82px;
    align-self:end;
    min-height:28px;
    height:28px;
    padding:0 10px;
    border:1px solid var(--ink);
    background:transparent;
    color:var(--ink);
    font-size:9px;
    font-weight:700;
    letter-spacing:.12em;
    line-height:28px;
    text-transform:uppercase;
    white-space:nowrap;
  }
  .filter-clear:hover{
    background:var(--ink);
    color:var(--paper);
  }
  .filter-clear:focus-visible{
    outline:2px solid var(--red);
    outline-offset:2px;
  }
  .filter-panel::-webkit-scrollbar{display:none;}
  .filter-title{display:none;}
  .filter-panel form > div:first-child{display:none!important;}
  .filter-group{
    display:flex;
    flex-direction:column;
    flex:0 1 150px;
    min-width:0;
    border:0;
    padding:0;
  }
  .filter-group:has(#filterQ){flex-basis:210px;}
  .filter-group:has(#minPrice),
  .filter-group:has(#maxPrice){
    flex:0 0 132px;
  }
  .filter-group:has(#authorFilter),
  .filter-group:has(#genreFilter){
    flex-basis:165px;
  }
  .filter-group:has(#firstYearFilter){
    flex-basis:205px;
  }
  .filter-group:has(#bindingFilter){
    flex-basis:140px;
  }
  fieldset.filter-group{
    border:0;
    margin:0;
    padding:0;
  }
  .filter-group:nth-of-type(1){flex-basis:210px;}
  .filter-panel fieldset.filter-group{flex-basis:150px;}
  .filter-group label,
  .filter-group legend,
  .sort-label{
    position:absolute;
    width:1px;
    height:1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
  }
  .filter-group input,
  .filter-group select,
  .sort-select{
    width:100%;
    min-width:0;
    box-sizing:border-box;
    height:28px;
    min-height:28px;
    border:0;
    border-bottom:1px solid rgba(12,12,10,.22);
    border-radius:0;
    padding:0 2px;
    background:transparent;
    color:var(--ink);
    font-size:14px;
    line-height:28px;
  }
  .filter-group input::placeholder{
    color:rgba(12,12,10,.42);
    opacity:1;
  }
  .filter-group select,
  .sort-select{
    -webkit-appearance:none;
    appearance:none;
    padding-right:24px;
    background-image:linear-gradient(45deg, transparent 50%, var(--ink) 50%),linear-gradient(135deg, var(--ink) 50%, transparent 50%);
    background-position:calc(100% - 13px) 11px,calc(100% - 8px) 11px;
    background-repeat:no-repeat;
    background-size:5px 5px;
  }
  .check-row{
    min-height:24px;
    margin:2px 0!important;
    font-size:12px!important;
    color:rgba(12,12,10,.78)!important;
  }
  .check-row input{margin:0;}
  .catalog-layout > section{
    min-width:0;
    display:flex;
    flex-direction:column;
  }
  .active-chips{
    flex:0 0 auto;
    margin-bottom:4px;
  }
  .chip{border:0;padding:0;color:var(--red);}
  .book-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
    gap:34px 18px;
    overflow:visible;
    padding-bottom:0;
  }
  .book-card{
    border-top:0;
    padding-top:0;
  }
  .book-image-link{
    aspect-ratio:3/4;
    height:auto;
    border:0;
    background:transparent;
    margin-bottom:10px;
  }
  .book-title{
    font-size:16px;
    margin-bottom:6px;
  }
  .book-author,
  .book-meta{font-size:11px;line-height:1.35;}
  .book-author{margin-bottom:1px;}
  .book-tags{gap:8px;margin:8px 0;}
  .book-feature-tags{margin-top:0;}
  .book-tags .tag{
    border:0;
    min-height:0;
    padding:0;
  }
  .book-price-row{margin:8px 0 8px;margin-top:auto;}
  .price{font-size:15px;}
  .book-price-row .status-badge{
    min-height:0;
    padding:0;
    border:0;
    font-size:9px;
  }
  .card-actions .btn{
    min-height:34px;
    padding:8px 10px;
    border-color:var(--line);
  }
  .pagination{
    flex:0 0 auto;
    margin:42px 0 0;
  }
  .page-button{border:0;min-height:32px;}
}
