.catalog{padding:48px 5%}
.catalog h1{font-size:clamp(36px,5vw,64px);letter-spacing:-2px}
.lead{font-size:20px;line-height:1.6;max-width:760px}
.demo{background:#eef1fa;padding:14px 18px;border-radius:6px;font-size:14px}
.filters{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 20px}
input,select,button{font:inherit}
.filters input{flex:2;min-width:200px}
.filters select{flex:1;min-width:160px}
.filters input,.filters select,.filters button{padding:13px;border:1px solid #b8c2cf;border-radius:6px;background:white}
.bookgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px 24px}
.bookcard{background:transparent;text-align:left;color:inherit;position:relative}
.book-open,.book-details{display:block;width:100%;border:0;background:transparent;text-align:left;color:inherit;padding:0;cursor:pointer}
.bookcard img{width:100%;height:265px;object-fit:contain;background:#f0f1ed;padding:18px;border-radius:7px}
.bookcard h2{font-size:19px;line-height:1.35;margin:14px 0 8px}
.bookcard p{font-size:14px;line-height:1.5;color:#59614f;margin:8px 0}
.bookcard strong{display:block;margin:12px 0;color:#204ac8}
.book-details{font-size:14px;color:#233a31;text-decoration:underline;text-underline-offset:3px}
.bookcard:hover img{background:#e4e9f4}
.creator-row span{color:#6b7169}
.creator{color:#204ac8;text-decoration:none}
.creator:hover{color:#173e34}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}
.tag{display:inline-block;padding:4px 8px;border-radius:999px;background:#eef2fb;color:#204ac8;font-size:12px;line-height:1.2;text-decoration:none}
.tag:hover{background:#dfe7f8;color:#173e34}
.availability{display:inline-block;color:#235642;font-weight:700}
.bookcard>.availability{position:absolute;z-index:1;top:10px;left:10px;padding:6px 9px;border-radius:999px;background:#e2ee96;font-size:13px}
.availability.unavailable{color:#7b2d20;background:#f7d9ce}
button:focus-visible,input:focus-visible,select:focus-visible,.creator:focus-visible,.tag:focus-visible{outline:3px solid #204ac8;outline-offset:4px}
dialog{width:min(950px,94vw);max-height:90vh;border:0;border-radius:12px;padding:32px}
dialog::backdrop{background:#16244399}
#close{float:right;background:none;border:0;font-size:30px;cursor:pointer}
#book{clear:both;display:grid;grid-template-columns:1fr 1.2fr;gap:30px}
#book img{width:100%;max-height:400px;object-fit:contain}
#book h2{font-size:28px;line-height:1.2}
#book p{line-height:1.6}
.book-description{line-height:1.6}.book-description p{margin:0 0 1em}.book-description ul,.book-description ol{padding-left:1.5em;margin:0 0 1em}
#book dl{font-size:14px;line-height:1.6}
#book dt{font-weight:bold;margin-top:10px}
#book dd{margin:0}
.gallery{display:flex;flex-wrap:wrap;gap:8px}
.gallery button{padding:0;border:1px solid #ccd4df;background:white;cursor:pointer}
.gallery img{width:65px!important;height:75px}
.empty{grid-column:1/-1;padding:40px 0}
@media(max-width:900px){.bookgrid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.bookgrid{grid-template-columns:repeat(2,1fr);gap:24px 16px}.bookcard img{height:200px;padding:10px}#book{grid-template-columns:1fr}.catalog{padding-top:30px}.bookcard h2{font-size:17px}dialog{padding:20px}}

.bookcard img{height:300px;padding:0;background:transparent;border-radius:3px}
.bookcard{display:flex;flex-direction:column}
.bookcard strong{margin-top:auto;padding-top:16px}
.book-cart{display:block;align-self:flex-start;padding:12px 24px;margin:4px 0 12px;border:0;border-radius:999px;background:#204ac8;color:#fff;text-decoration:none;font-size:16px;font-weight:600;cursor:pointer}
.book-cart:hover{background:#173ba4}.book-cart:focus-visible{outline:3px solid #204ac8;outline-offset:3px}.book-cart:disabled{background:#dce1e7;color:#59614f;cursor:not-allowed}.purchase-note{font-size:12px;color:#59614f;margin-bottom:12px}
@media(max-width:900px){.bookcard img{height:280px}}
@media(max-width:640px){.bookcard img{height:220px}.book-cart{padding:11px 18px;font-size:14px}}
.bookcard{min-width:0;overflow-wrap:anywhere}.bookgrid{grid-template-columns:repeat(4,minmax(0,1fr))}@media(max-width:900px){.bookgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:640px){.bookgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
