.catalog-navigation,.pagination-links,.letter-index { display:flex; gap:1.25rem; flex-wrap:wrap; justify-content:center; margin:1.5rem 0; align-items:center; }
.catalog-search { display:flex; max-width:650px; gap:.5rem; margin:1rem auto 2rem; }
.catalog-search input { min-width:0; }
.skip-link { position:absolute; left:-9999px; }.skip-link:focus { left:1rem; top:1rem; z-index:10000; background:white; padding:1rem; }
h1:focus { outline: none; }
button:focus-visible,a:focus-visible,input:focus-visible { outline:3px solid var(--shop-accent, #444); outline-offset:4px; }
.book-description { white-space:pre-line; margin:1.5rem 0; }
.author-link { display:inline-block; margin-right:1rem; }.gallery { display:flex; flex-wrap:wrap; gap:1rem; }.gallery figure { max-width:220px; }.gallery img { max-width:100%; }
.index-list { line-height:2.2; }.letter-index [aria-current=page] { font-weight:bold; text-decoration:underline; }
.added-notice { font-size:.85rem; margin-top:.5rem; }.cart-table input { max-width:5rem; }.cart-total { text-align:right; font-size:1.2rem; }
#blazor-error-ui { display:none; position:fixed; bottom:0; background:#fff3cd; padding:1rem; width:100%; z-index:9999; }
.book-page .content .format-list { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.4rem; }
.book-page .content .format-list .format { padding:0; min-width:0; cursor:default; }
.book-page .content .format-list .format .icon { margin:0 auto; width:clamp(38px,8vw,75px); height:clamp(38px,8vw,75px); }
.format-action { display:block; width:100%; border:0; background:none; color:inherit; padding:0; font:inherit; text-decoration:none; cursor:pointer; }
.book-page .content .format-list .format.disabled { opacity:.35; }
.book-page .content .format-list .format.disabled img { opacity:1; }
.format-status:empty { display:none; }
.share-controls .btn { margin:0 .5rem .5rem 0; }
.checkout-transition { text-align:center; max-width:650px; margin:3rem auto; }
.checkout-transition > .bi { font-size:5rem; color:var(--shop-accent, #444); }
.checkout-transition p { margin:1.5rem 0; }
.cookie-dialog { border: 0; border-radius: 6px; padding: 1.5rem; max-width: 650px; width: calc(100% - 2rem); max-height: calc(100vh - 2rem); overflow: auto; box-shadow: 0 8px 40px #0005; }
.cookie-dialog::backdrop { background: #0008; }
.cookie-dialog h2 { margin-top: 0; }
.cookie-dialog input { margin-right: .4rem; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
.cookie-status { margin: 1rem 0 0; }
.shop-payment-methods { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; height: 100%; }
.shop-payment-methods img { object-fit: contain; max-width: 46px; height: 26px; }
@media(max-width:991px) { .cart-table { font-size:.9rem; } }

.open-access-dialog { width:calc(100% - 2rem); max-width:650px; max-height:calc(100vh - 2rem); overflow:auto; border:0; border-radius:6px; padding:1.5rem; box-shadow:0 8px 40px #0005; }
.open-access-dialog::backdrop { background:#0008; }

.book-gallery { width:100%; }
.book-gallery-thumbnails { display:flex; flex-wrap:wrap; gap:1rem; }
.book-gallery-thumbnails figure { max-width:180px; }
.book-gallery-thumbnail { padding:0; border:0; background:none; cursor:zoom-in; }
.book-gallery-thumbnail img { max-width:100%; max-height:220px; object-fit:contain; }
.book-gallery-dialog { width:min(960px,calc(100% - 2rem)); max-height:calc(100dvh - 2rem); border:0; border-radius:8px; padding:1.5rem; overflow:auto; }
.book-gallery-dialog::backdrop { background:rgba(0,0,0,.7); }
.book-gallery-toolbar, .book-gallery-controls { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.book-gallery-toolbar h2 { font-size:1.25rem; margin:0; }
.book-gallery-dialog figure { max-width:none; text-align:center; margin:1rem 0; }
.book-gallery-dialog figure img { width:auto; max-width:100%; max-height:65dvh; object-fit:contain; }
.book-gallery-dialog figcaption { margin-top:.5rem; }
.book-gallery-thumbnail:focus-visible { outline:3px solid var(--shop-accent); outline-offset:4px; }

.book-price del { opacity:.7; margin-right:.5rem; }
.campaign-price { color:var(--shop-accent,#444); }
