/* Stable public hooks. Owner CSS loads after all core CSS and typography settings. */
body{font-family:var(--font-body);font-weight:var(--body-weight);line-height:var(--body-leading);letter-spacing:var(--body-tracking)}
h1,h2,h3,.finder-main strong{font-family:var(--font-heading);font-weight:var(--heading-weight)}
.hero-copy h1{font-family:var(--font-hero);font-weight:var(--hero-weight)}
.desktop-nav,.mobile-menu{font-family:var(--font-navigation)}
.desktop-nav a,.desktop-nav summary,.mobile-menu a,.mobile-menu summary{font-weight:var(--navigation-weight)}
.button{font-family:var(--font-button);font-weight:var(--button-weight)}
.site-footer h2{font-family:var(--font-footer-heading)}
.book-card[hidden]{display:none!important}
.catalogue-tools.without-search{display:flex;justify-content:center;gap:2rem;width:100%}
.catalogue-tools.without-search fieldset{width:min(310px,100%)}
.books-menu{position:relative}
.books-menu summary{cursor:pointer;list-style:none;font-size:.9rem}
.books-menu summary::-webkit-details-marker{display:none}
.books-menu-links{position:absolute;top:calc(100% + 1rem);left:-1rem;min-width:260px;padding:.6rem 1rem;background:var(--colour-paper);border:1px solid var(--colour-line);border-radius:var(--radius-sm);box-shadow:var(--shadow)}
.books-menu-links a{display:block;padding:.7rem 0}
.header-actions a.search-button{display:grid;place-items:center;text-decoration:none}
.finder-banner>.finder-launcher{display:flex;align-items:stretch;justify-content:center;width:100%;min-height:188px;padding:0 20px;color:var(--colour-white);text-align:left;text-decoration:none;background:transparent;border:0;cursor:pointer}
.finder-banner>.finder-launcher:hover .finder-main,.finder-banner>.finder-launcher:focus-visible .finder-main{color:var(--finder-hover-colour)}
.finder-banner>.finder-launcher:focus-visible{outline:3px solid var(--finder-hover-colour);outline-offset:-6px}
@media(max-width:800px){.mobile-menu summary{padding:.8rem 0}.mobile-menu .books-menu-links{position:static;box-shadow:none;border:0;padding:0 1rem}.mobile-menu{max-height:calc(100dvh - 74px);overflow:auto}}
@media(max-width:520px){.catalogue-tools.without-search{flex-direction:column;align-items:center;gap:1rem}}
