@font-face { font-family:Roboto; src:url('/Content/fonts/Roboto-Regular.ttf') format('truetype'); font-weight:400; font-display:swap; }
@font-face { font-family:Roboto; src:url('/Content/fonts/Roboto-Medium.ttf') format('truetype'); font-weight:500; font-display:swap; }
@font-face { font-family:Roboto; src:url('/Content/fonts/Roboto-Bold.ttf') format('truetype'); font-weight:700; font-display:swap; }
@font-face { font-family:'EB Garamond'; src:url('/Content/fonts/EBGaramond.ttf') format('truetype'); font-weight:400 800; font-display:swap; }
:root { --shop-accent:#5c8080; --srii-paper:#d8cfc2; }
body { margin:0; min-height:100vh; min-height:100dvh; display:flex; flex-direction:column; font-family:Roboto,sans-serif; color:#333; padding-top:46px; }
header { background:white; }
html { scroll-padding-top:46px; }
.toprow { position:fixed; top:0; left:0; right:0; z-index:1000; height:46px; background:#212121; }
.toprow .container { height:100%; display:flex; align-items:center; justify-content:flex-end; gap:1.5rem; padding-top:5px; padding-bottom:5px; }
.toprow .payment-icons { margin-right:auto; }
.toprow a, .toprow a:hover, .toprow a:visited { color:white; text-decoration:none; }
.toprow .badge { background:#5c8080; color:white; }
.brand-row { display:flex; align-items:center; gap:1.5rem; padding-top:1.25rem; padding-bottom:1.25rem; border-bottom:1px solid #d0d0d0; }
.publisher-logo { flex-shrink:0; }
.publisher-logo img { height:150px; width:auto; max-width:100%; }
.menu { flex:1; margin-left:auto; }
.menu ul { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:.75rem 1.25rem; list-style:none; margin:0; padding:0; }
.menu a { color:#221f1f; text-decoration:none; font-weight:500; white-space:nowrap; }
.menu a:hover, .menu a:focus-visible { color:#517171; text-decoration:underline; }
.menu-toggle { display:none; border:0; padding:.25rem; background:none; color:#456666; font-size:2.25rem; line-height:1; cursor:pointer; }
.body-content { flex:1 0 auto; background:#d8cfc2; padding:2rem 0 4rem; }
h1 { color:#517171; font-size:1.7rem; font-weight:700; }
h2 { color:#5c8080; font-size:1.4rem; font-weight:700; }
h3 { color:#5c8080; font-size:1.2rem; font-weight:700; }
h4 { color:#a23a27; font-size:1.4rem; }
a { color:#456666; }
a:hover { color:#314b4b; }
.btn-shop { color:white; background:#5c8080; border:1px solid #517171; }
.btn-shop:hover, .btn-shop:focus-visible { color:white; background:#456666; }
.btn-shop-outline { color:#456666; border:1px solid #5c8080; }
.btn-shop-outline:hover, .btn-shop-outline:focus-visible { color:white; background:#5c8080; }
.catalog-search { margin-top:0; }
.body-content:has(.catalog-search input:is([value=''], :not([value]))) .booklist-title { display:none; }
.booklist .booklistrow { margin-top:1.5rem; }
.booklist .booklistrow .book { display:flex; flex-direction:row; align-items:flex-start; gap:1rem; padding:1rem; border:12px solid #d8cfc2; background:#feffff; font-size:.9rem; }
.booklist .booklistrow .book .img { flex:0 0 40%; }
.booklist .booklistrow .book .img img { width:100%; max-width:170px; height:auto; box-shadow:2px 2px 2px #0003; }
.booklist .booklistrow .book .info { flex:1; min-width:0; display:flex; flex-direction:column; align-self:stretch; }
.booklist .book .title { line-height:1.4; margin-bottom:1rem; }
.booklist .book .title a { color:black; text-decoration:none; }
.booklist .book .price { text-align:right; margin:auto 0 .75rem; font-size:1rem; }
.booklist .book .shop .btn { width:100%; font-size:.85rem; margin-bottom:.5rem; }
.book-page { background:#feffff; padding:2rem; }
.book-page .title { color:#5c8080; font-size:1.7rem; margin:1.5rem 0 1rem; }
.book-page .author { font-family:'EB Garamond',serif; font-size:1.4rem; }
.book-page .book-description { font-family:'EB Garamond',serif; font-size:1.4rem; }
.book-page .format-list { padding-bottom:1rem; margin-bottom:1rem; border-bottom:1px solid #5c808040; }
.book-page .format .icon { background:#5c8080; border:1px solid #5c8080; 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; }
.book-page .format .text { text-align:center; overflow-wrap:anywhere; }
.book-page .format .text p { font-size:.85rem; margin:.5rem 0; }
.book-page .format .text h4 { color:#456666; font-size:1rem; }
.book-page .cover figure { text-align:center; }
.book-page .cover figure img { width:auto; max-width:100%; max-height:550px; box-shadow:2px 2px 2px #0003; }
.book-page .book-details { padding:1rem 0; }
.share-footer { margin-top:2rem; padding-top:1rem; border-top:1px solid #d0d0d0; }
.body-content:has(h1.mb-5) p { font-family:'EB Garamond',serif; font-size:1.35rem; }
footer { background:white; flex-shrink:0; padding:2rem 0; text-align:center; }
footer .payment-icons { margin-bottom:1.5rem; }
footer .shop-payment-methods { justify-content:center; }
footer .footer-logo img { width:auto; max-width:239px; max-height:150px; }
footer h5 { font-size:1rem; font-weight:500; margin:1.25rem 0; }
footer .footer-distribution { margin-top:0; margin-bottom:1.75rem; }
footer a { color:#333; }
footer a:hover { color:#456666; }
footer .btn-shop-outline { color:white; background:#5c8080; }
footer .btn-shop-outline:hover, footer .btn-shop-outline:focus-visible { background:#456666; }
@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%; } }
@media(max-width:1199px) { .menu a { font-size:.9rem; } .menu ul { gap:.75rem; } }
@media(max-width:991px) {
    .brand-row { flex-wrap:wrap; }
    .menu-toggle { display:block; margin-left:auto; margin-right:.75rem; font-size:2.75rem; }
    .menu { display:none; }
    .book-page .cover { margin-top:2rem; }
}
@media(max-width:575px) {
    .publisher-logo img { height:120px; }
    .book-page { padding:1rem; }
    .book-page .content .format-list .format .icon { width:clamp(42px,11vw,48px); height:clamp(42px,11vw,48px); }
    .book-page .format .text p, .book-page .format .text h4 { font-size:.75rem; line-height:1.3; }
    footer .footer-logo { text-align:center; margin-bottom:1rem; }
}
dialog.cookie-dialog::backdrop, dialog.open-access-dialog::backdrop, dialog.book-gallery-dialog::backdrop { background:rgba(255,255,255,.18); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }

.mobile-menu { width:100vw; max-width:none; height:100vh; height:100dvh; max-height:none; margin:0; border:0; padding:5rem 1.5rem 12vh; background:white; color:#333; }
.mobile-menu[open] { display:flex; align-items:center; justify-content:center; }
.mobile-menu::backdrop { background:white; }
.mobile-menu nav { width:100%; max-height:100%; overflow:auto; }
.mobile-menu ul { display:flex; flex-direction:column; align-items:center; gap:1.25rem; list-style:none; padding:0; margin:0; text-align:center; }
.mobile-menu a { display:block; color:#456666; font-size:1.25rem; line-height:1.4; text-decoration:none; padding:.25rem; }
.mobile-menu a:hover, .mobile-menu a:focus-visible { text-decoration:underline; }
.mobile-menu-close { position:fixed; top:1rem; right:1.5rem; padding:.5rem; border:0; background:white; color:#456666; font-size:1.75rem; line-height:1; cursor:pointer; }
body:has(.mobile-menu[open]) { overflow:hidden; }