:root { --shop-accent:#996699; }
html { scroll-padding-top:150px; }
body { margin:0; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; font-family:'Open Sans',sans-serif; color:#333; padding-top:142px; }
header { position:fixed; top:0; left:0; right:0; z-index:1000; border-bottom:1px solid #875987; }
header .toprow { background:#212121; color:white; }
header .toprow .container { display:flex; align-items:center; justify-content:flex-end; gap:1.25rem; min-height:42px; padding-top:5px; padding-bottom:5px; }
header .payment-icons { margin-right:auto; }
header .toprow a { color:white; text-decoration:none; }
header .badge { background:#996699; color:white; }
header .brand-row { background:#996699; }
header .brand-row .container { display:flex; align-items:center; gap:1rem; min-height:100px; }
.publisher-logo { flex:0 0 auto; }
.publisher-logo img { max-width:250px; height:auto; }
header .menu { margin-left:auto; }
header .menu ul { display:flex; flex-wrap:wrap; gap:.2rem; list-style:none; padding:0; margin:0; }
header .menu a { display:block; color:white; font-size:.9rem; padding:.65rem .55rem; white-space:nowrap; text-decoration:none; }
header .menu a:hover, header .menu a:focus-visible { color:white; text-decoration:underline; }
header .menu-toggle { display:none; color:white; border-color:white; margin-left:auto; }
main.body-content { flex:1 0 auto; padding-top:2rem; padding-bottom:3rem; }
h1 { color:#996699; font-size:1.5rem; font-weight:700; }
h2 { font-size:1.3rem; font-weight:700; }
h3 { font-size:1.2rem; font-weight:700; }
a { color:#875087; }
a:hover { color:#653b65; }
.btn-shop { background:#996699; border-color:#875987; color:white; }
.btn-shop:hover, .btn-shop:focus-visible { background:#875987; color:white; }
.btn-shop-outline { border:1px solid #996699; color:#875087; }
.btn-shop-outline:hover, .btn-shop-outline:focus-visible { background:#996699; color:white; }
.booklist-title { text-align:center; margin:2rem 0 1rem; }
.booklist .book { display:flex; flex-direction:column; padding:1.5rem; text-align:center; }
.booklist .book .img { height:290px; display:flex; align-items:center; justify-content:center; }
.booklist .book .img img { width:auto; height:auto; max-height:100%; max-width:100%; object-fit:contain; }
.booklist .book .info { display:flex; flex-direction:column; flex:1; }
.booklist .book .title { font-weight:bold; margin:1rem 0 .5rem; min-height:3rem; }
.booklist .book .price { margin-bottom:.75rem; }
.booklist .book .shop { margin-top:auto; }
.booklist .book .shop .btn { margin-bottom:.5rem; }
.book-page .title { margin-top:1.5rem; }
.book-page .author { font-style:italic; }
.book-page .cover figure img { width:auto; max-width:100%; max-height:550px; }
.book-page .cover figure { text-align:center; }
.book-page .book-details { padding:1rem 0; }
.book-page .format-list { margin-bottom:1rem; padding-bottom:1rem; border-bottom:1px solid #99669940; }
.book-page .format .text { overflow-wrap:anywhere; text-align:center; }
.book-page .format .text p { font-size:.85rem; margin:.5rem 0; }
.book-page .format .text h4 { font-size:1rem; }
.book-page .format .icon { background:#996699; border:1px solid #996699; border-radius:50%; padding:10px; display:flex; align-items:center; justify-content:center; }
.book-page .format .icon img { width:100%; height:100%; object-fit:contain; }
.share-footer { margin-top:2rem; padding-top:1rem; border-top:1px solid #ddd; }
footer { flex-shrink:0; background:#212121; color:#ccc; padding:2.5rem 0; }
footer .column { padding-bottom:1rem; }
footer h4 { font-size:1rem; font-weight:bold; color:white; margin:1.25rem 0; }
footer a, footer a:visited { color:#e3cde3; }
footer a:hover, footer a:focus-visible { color:white; }
footer .payment-icons { min-height:32px; margin-bottom:1rem; }
footer .btn-shop-outline { border-color:#996699; background:#996699; color:white; }
footer .btn-shop-outline:hover, footer .btn-shop-outline:focus-visible { border-color:#875987; background:#875987; color:white; }
footer .footer-house { max-width:100px; height:auto; }
@media(max-width:1199px) {
    header .menu a { font-size:.85rem; padding:.5rem .35rem; }
    .publisher-logo img { max-width:210px; }
}
@media(max-width:991px) {
    body { padding-top:122px; }
    header .brand-row .container { min-height:80px; flex-wrap:wrap; padding-top:10px; padding-bottom:10px; }
    header .menu-toggle { display:block; }
    header .menu { display:none; width:100%; margin:0; }
    header .menu.mobile-open { display:block; max-height:65dvh; overflow:auto; }
    header .menu ul { flex-direction:column; }
    header .menu a { padding:.65rem; font-size:1rem; }
    .book-page .cover { margin-top:2rem; }
}
@media(max-width:575px) {
    header .toprow .container { gap:1rem; }
    .publisher-logo img { max-width:210px; }
    .booklist .book .img { height:260px; }
}
/* Keep the publisher's side-by-side catalogue cards and three-column desktop layout. */
.booklist .booklistrow .book { flex-direction:row; align-items:flex-end; gap:1rem; text-align:left; font-size:.9rem; }
.booklist .booklistrow .book .img { flex:0 0 40%; height:auto; max-height:230px; }
.booklist .booklistrow .book .img img { width:100%; max-width:170px; max-height:230px; box-shadow:2px 2px 2px #0003; }
.booklist .booklistrow .book .info { min-width:0; }
.booklist .booklistrow .book .title { min-height:0; margin:0 0 .5rem; line-height:1.3; }
.booklist .booklistrow .book .price { text-align:right; font-weight:bold; }
.booklist .booklistrow .book .shop .btn { width:100%; font-size:.85rem; }
@media(min-width:576px) and (max-width:991px) { .booklist .booklistrow .book { flex:0 0 50%; max-width:50%; } }
@media(min-width:992px) { .booklist .booklistrow .book { flex:0 0 33.333333%; max-width:33.333333%; } }