:root{--navy:#102f4a;--navy-2:#0a2238;--blue:#286da8;--sky:#eaf4fa;--gold:#e6a436;--ink:#182733;--muted:#667782;--paper:#f5f7f5;--white:#fff;--border:#dce4e7;--serif:'Libre Caslon Text',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;--shadow:0 18px 50px rgba(16,47,74,.1);--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--sans);color:var(--ink);background:#fff;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.skip-link{position:absolute;left:1rem;top:-5rem;z-index:9999;background:#fff;padding:.7rem 1rem;border-radius:.5rem;box-shadow:var(--shadow)}.skip-link:focus{top:1rem}.container{--bs-gutter-x:2rem;max-width:1320px}.utility-bar{background:var(--navy-2);color:#dce9f2}.utility-bar a{transition:color .2s}.utility-bar a:hover{color:#fff}.nav-shell{background:#fff;position:relative;z-index:1030}.navbar-brand img{width:285px}.navbar .nav-link{font-weight:600;font-size:.94rem;color:#314657!important;padding:.65rem .8rem!important;position:relative}.navbar .nav-link:after:not(.dropdown-toggle){display:none}.navbar .nav-link.active,.navbar .nav-link:hover{color:var(--blue)!important}.navbar .nav-link.active:before{content:"";position:absolute;height:2px;left:.8rem;right:.8rem;bottom:.2rem;background:var(--gold)}.nav-icon{width:42px;height:42px;border:1px solid var(--border);border-radius:50%;display:grid;place-items:center;color:var(--navy);transition:.2s}.nav-icon:hover{background:var(--navy);color:#fff;border-color:var(--navy)}.cart-link{position:relative}.cart-link span{position:absolute;right:-3px;top:-5px;background:var(--gold);color:var(--navy-2);font-size:.65rem;font-weight:800;width:18px;height:18px;display:grid;place-items:center;border-radius:50%;border:2px solid #fff}.navbar-toggler{border:0;color:var(--navy);font-size:1.75rem;padding:.1rem .35rem}.navbar-toggler:focus{box-shadow:0 0 0 3px rgba(40,109,168,.2)}.announcement-bar{font-size:.82rem;background:#7dacd4;color:#ffffff;border-top:1px solid #7dacd4}.announcement-label{color:#ffffff;font-weight:700;white-space:nowrap}.announcement-label i{color:#fff700}.offcanvas{--bs-offcanvas-width:330px}.mobile-nav a,.mobile-account a{display:flex;padding:.85rem 0;font-weight:600;border-bottom:1px solid var(--border)}.mobile-nav a.active{color:var(--blue)}
.hero-section{position:relative;overflow:hidden;background:var(--navy-2);color:#fff}.hero-backdrop{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,30,49,.98) 0%,rgba(10,38,61,.91) 42%,rgba(10,34,56,.3) 75%,rgba(10,34,56,.12)),url('../images/hero-library.jpg') center/cover no-repeat;transform:scale(1.01)}.hero-section:after{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(255,255,255,.12);border-radius:50%;right:-140px;top:-180px}.min-vh-hero{min-height:470px}.hero-section h1{font:600 clamp(2rem,4vw,5rem)/1 var(--serif);letter-spacing:-.045em;margin:1.25rem 0 1.2rem}.hero-lead{max-width:650px;color:#d7e4eb;font-size:1.15rem;margin-bottom:2rem}.eyebrow{display:inline-flex;align-items:center;color:var(--blue);font-size:.78rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.eyebrow.light{color:#f4c36e}.hero-search{display:flex;align-items:center;background:#fff;border-radius:14px;padding:.45rem;max-width:680px;box-shadow:0 18px 45px rgba(0,0,0,.2)}.hero-search>i{color:#82919a;margin-left:.75rem}.hero-search input{min-width:0;flex:1;border:0;outline:0;padding:.85rem;color:var(--ink)}.hero-search button,.newsletter-form button{border:0;border-radius:10px;background:var(--gold);color:#172c3b;font-weight:800;padding:.85rem 1.55rem;transition:.2s}.hero-search button:hover,.newsletter-form button:hover{background:#f0b753;transform:translateY(-1px)}.popular-searches{display:flex;flex-wrap:wrap;gap:.6rem 1rem;font-size:.8rem;margin-top:1.1rem;color:#b9cbd6}.popular-searches span{font-weight:700;color:#fff}.popular-searches a{text-decoration:underline;text-underline-offset:3px}.benefit-strip{box-shadow:0 8px 30px rgba(16,47,74,.08);position:relative;z-index:2}.benefit{display:flex;align-items:center;gap:.8rem;padding:1.3rem;border-right:1px solid var(--border)}.benefit:last-child{border-right:0}.benefit>i{color:var(--blue);font-size:1.5rem}.benefit strong,.benefit span{display:block}.benefit strong{font-size:.88rem}.benefit span{font-size:.73rem;color:var(--muted)}
.section-space{padding:6.5rem 0}.bg-paper{background:var(--paper)}.section-heading{margin-bottom:2.5rem;max-width:700px}.section-heading h2,.publisher-section h2{font:700 clamp(2rem,3.5vw,3.25rem)/1.16 var(--serif);letter-spacing:-.035em;margin:.55rem 0 0}.section-heading p{color:var(--muted);margin-top:1rem}.text-link{display:inline-flex;align-items:center;gap:.45rem;color:var(--blue);font-weight:700;white-space:nowrap}.text-link i{transition:transform .2s}.text-link:hover i{transform:translateX(4px)}.subject-card{position:relative;display:flex;flex-direction:column;min-height:190px;padding:1.5rem;border:1px solid var(--border);border-radius:var(--radius);background:#fff;transition:.25s}.subject-card:hover{transform:translateY(-5px);border-color:#b5ccda;box-shadow:var(--shadow)}.subject-icon{width:48px;height:48px;border-radius:14px;background:var(--sky);color:var(--blue);display:grid;place-items:center;font-size:1.35rem;margin-bottom:1.7rem}.subject-card strong{font:700 1.02rem/1.25 var(--serif)}.subject-card small{color:var(--muted);margin-top:.2rem}.subject-arrow{position:absolute;right:1.3rem;top:1.3rem;color:#9aacb6}.book-card{display:flex;flex-direction:column;border:1px solid var(--border);border-radius:var(--radius);background:#fff;overflow:hidden;transition:.25s}.book-card:hover{box-shadow:var(--shadow);border-color:transparent}.book-cover{height:315px;background:linear-gradient(145deg,#edf3f5,#f9faf8);display:grid;place-items:center;position:relative;padding:2.1rem 1.5rem}.book-cover img{height:235px;width:auto;object-fit:contain;filter:drop-shadow(10px 15px 12px rgba(19,42,57,.22));transition:transform .3s}.book-badge{position:absolute;left:1rem;top:1rem;background:var(--navy);color:#fff;border-radius:20px;padding:.3rem .65rem;font-size:.67rem;font-weight:700;letter-spacing:.04em}.book-body{display:flex;flex:1;flex-direction:column;padding:1.25rem}.book-subject{text-transform:uppercase;letter-spacing:.1em;font-size:.67rem;color:var(--blue);font-weight:800;margin-bottom:.5rem}.book-title{font:700 1rem/1.4 var(--serif);min-height:2.8em;margin:0 0 .55rem}.book-title a:hover{color:var(--blue)}.book-author{font-size:.75rem;line-height:1.45;color:var(--muted);min-height:2.2em;margin-bottom:1.15rem}.book-price{display:block;font-weight:800;color:var(--navy);font-size:.95rem}.book-body del{color:#c62828;font-size:.72rem}.add-to-cart{width:42px;height:42px;border-radius:50%;border:1px solid var(--border);background:#fff;color:var(--navy);transition:.2s}.add-to-cart:hover,.add-to-cart.is-added{background:var(--navy);border-color:var(--navy);color:#fff}
.heritage-section{background:var(--navy);color:#fff;overflow:hidden}.heritage-visual{position:relative}.heritage-visual img{width:100%;height:480px;object-fit:cover;border-radius:28px;box-shadow:0 25px 50px rgba(0,0,0,.25)}.year-card{position:absolute;bottom:-25px;right:-25px;width:180px;height:180px;background:var(--gold);color:var(--navy-2);border-radius:50%;display:flex;flex-direction:column;justify-content:center;text-align:center;padding:1rem;border:8px solid var(--navy)}.year-card strong{font:700 3rem/1 var(--serif)}.year-card span{font-size:.72rem;line-height:1.3;font-weight:700;margin-top:.4rem}.heritage-section h2{font:700 clamp(2.2rem,4vw,3.8rem)/1.12 var(--serif);letter-spacing:-.04em;margin:1rem 0 1.5rem}.heritage-section p{color:#c6d6df}.heritage-stats{display:flex;gap:2.2rem;border-top:1px solid rgba(255,255,255,.16);margin-top:2.25rem;padding-top:1.5rem}.heritage-stats strong,.heritage-stats span{display:block}.heritage-stats strong{font:700 1.2rem var(--serif);color:#fff}.heritage-stats span{font-size:.7rem;color:#9fb5c2}.feature-card{position:relative;display:block;min-height:370px;padding:2rem;border-radius:24px;overflow:hidden;color:#fff;transition:.25s}.feature-card:hover{transform:translateY(-5px);color:#fff;box-shadow:var(--shadow)}.feature-card:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;right:-100px;bottom:-110px;background:rgba(255,255,255,.07)}.feature-ebook{background:#1e6c89}.feature-library{background:#173f60}.feature-author{background:#8b5c30}.feature-number{position:absolute;right:1.5rem;top:1rem;font:700 4rem var(--serif);opacity:.12}.feature-card>i{font-size:2rem}.feature-card h3{font:700 1.55rem var(--serif);margin:5.5rem 0 .75rem}.feature-card p{color:rgba(255,255,255,.76);max-width:290px}.feature-card>span:last-child{display:inline-block;font-size:.83rem;font-weight:700;margin-top:1.25rem}.publisher-section p{color:var(--muted)}.publisher-board{background:#fff;border:1px solid var(--border);border-radius:24px;padding:1.5rem;box-shadow:var(--shadow)}.publisher-board img{width:100%;mix-blend-mode:multiply}.newsletter-section{padding:6rem 0 6rem;background:linear-gradient(#fff 50%,var(--navy-2) 50%)}.newsletter-card{background:var(--blue);color:#fff;padding:3.25rem;border-radius:28px;box-shadow:0 20px 55px rgba(20,71,108,.25)}.newsletter-card h2{font:700 clamp(2rem,3vw,3rem)/1.15 var(--serif);margin:.6rem 0}.newsletter-card p{margin:0;color:#d7e7f1}.newsletter-form{display:flex;background:#fff;border-radius:14px;padding:.4rem}.newsletter-form input{min-width:0;flex:1;border:0;outline:0;padding:.85rem;color:var(--ink)}.newsletter-card small{display:block;margin-top:.65rem;color:#d7e7f1}.site-footer{background:var(--navy-2);color:#adbfcb}.footer-main{padding:5rem 1rem 3.5rem}.footer-logo{display:block;background:#fff;border-radius:10px;padding:.65rem 1rem;width:max-content}.footer-logo img{width:245px}.site-footer h2{font:700 .8rem var(--sans);letter-spacing:.12em;text-transform:uppercase;color:#fff;margin-bottom:1.25rem}.site-footer ul{list-style:none;padding:0;margin:0}.site-footer li{margin:.55rem 0}.site-footer a:hover{color:#fff}.social-links{display:flex;gap:.5rem;margin-top:1.5rem}.social-links a{width:38px;height:38px;border:1px solid #345069;border-radius:50%;display:grid;place-items:center}.site-footer address{display:flex;gap:.75rem;font-style:normal}.site-footer address i,.footer-contact i{color:var(--gold)}.footer-contact a{display:flex;gap:.75rem;margin:.6rem 0}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #284156;padding:1.4rem 1rem;font-size:.75rem}.footer-bottom div{display:flex;gap:1.5rem}
@media (max-width:1199.98px){.navbar-brand img{width:230px}.navbar .nav-link{padding:.6rem .55rem!important;font-size:.86rem}.book-cover{height:280px}.year-card{right:-10px}}
@media (max-width:991.98px){.min-vh-hero{min-height:440px}.hero-backdrop{background:linear-gradient(90deg,rgba(7,30,49,.97),rgba(7,30,49,.72)),url('../images/hero-library.jpg') 65% center/cover}.section-space{padding:4.5rem 0}.benefit:nth-child(2){border-right:0}.benefit:nth-child(-n+2){border-bottom:1px solid var(--border)}.heritage-visual img{height:390px}.newsletter-section{padding:6rem 0 6rem;}.newsletter-card{padding:2.25rem}.footer-main{padding-top:4rem}}
@media (max-width:575.98px){.container{--bs-gutter-x:1.35rem}.navbar-brand img{width:190px}.nav-icon:first-child{display:none}.nav-icon{width:38px;height:38px}.min-vh-hero{min-height:400px}.hero-lead{font-size:1rem}.hero-search{padding:.35rem}.hero-search input{font-size:.82rem;padding:.75rem .45rem}.hero-search button{padding:.75rem .9rem}.popular-searches{display:none}.benefit{padding:1rem .5rem;gap:.55rem}.benefit>i{font-size:1.2rem}.benefit strong{font-size:.74rem}.benefit span{font-size:.62rem}.section-space{padding:3.75rem 0}.section-heading{margin-bottom:1.75rem}.subject-card{min-height:165px;padding:1rem}.subject-icon{margin-bottom:1.25rem}.subject-arrow{right:1rem;top:1rem}.book-cover{height:230px;padding:1.5rem .75rem}.book-cover img{height:175px}.book-body{padding:1rem}.book-title{font-size:.87rem;min-height:3.8em}.book-author{font-size:.68rem}.book-price{font-size:.83rem}.add-to-cart{width:36px;height:36px}.heritage-visual img{height:300px}.year-card{width:130px;height:130px;bottom:-15px}.year-card strong{font-size:2rem}.heritage-section h2{font-size:2.35rem}.heritage-stats{gap:1rem;justify-content:space-between}.feature-card{min-height:310px}.feature-card h3{margin-top:3.5rem}.publisher-board{padding:.6rem}.newsletter-card{padding:1.6rem;border-radius:20px}.newsletter-form{display:block;background:transparent;padding:0}.newsletter-form input{width:100%;border-radius:10px;margin-bottom:.6rem}.newsletter-form button{width:100%}.footer-bottom{flex-direction:column;gap:.8rem}}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}
.bestseller-section{padding-top:0}.nav-shell.is-scrolled{position:fixed;left:0;right:0;top:0;box-shadow:0 8px 28px rgba(16,47,74,.12);animation:header-in .25s ease both}@keyframes header-in{from{transform:translateY(-100%)}to{transform:translateY(0)}}

/* Light footer theme */
.newsletter-section{background:#fff}
.site-footer{background:#fff;color:var(--muted);border-top:1px solid var(--border)}
.footer-logo{background:transparent;padding:0}
.site-footer h2{color:var(--navy)}
.site-footer a{color:#526775;transition:color .2s}
.site-footer a:hover{color:var(--blue)}
.social-links a{border-color:var(--border)}
.social-links a:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.footer-bottom{border-top-color:var(--border);color:#788892}
.section-heading-wide{max-width:none;width:100%}.section-heading-wide>.text-link{margin-top:.15rem}

/* Premium four-slide hero */
.hero-section .carousel{background:var(--navy-2)}
.hero-slide{position:relative;isolation:isolate;background-position:center;background-size:cover;background-repeat:no-repeat}
.hero-slide::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,25,42,.65) 0%,rgba(7,31,51,.5) 42%,rgba(7,31,51,.1) 76%,rgba(7,31,51,.03) 100%)}
.hero-slide::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.02),rgba(4,23,38,.08))}
.hero-wind{background-image:url('../images/hero-library.jpg')}
.hero-biodiversity{background-image:url('../images/hero-slide-2.jpg')}
.hero-agriculture{background-image:url('../images/hero-slide-3.jpg')}
.hero-physics{background-image:url('../images/hero-slide-4.jpg')}
.hero-biodiversity::before,.hero-physics::before{background:linear-gradient(270deg,rgba(5,22,38,.67) 0%,rgba(7,27,46,.52) 43%,rgba(7,27,46,.12) 74%,rgba(7,27,46,.03) 100%)}
.hero-copy-right{padding-left:3rem}
.hero-btn{display:inline-flex;align-items:center;gap:.75rem;background:var(--gold);color:var(--navy-2);font-weight:800;padding:.9rem 1.35rem;border-radius:12px;box-shadow:0 12px 30px rgba(0,0,0,.18);transition:transform .2s,background .2s}
.hero-btn:hover{color:var(--navy-2);background:#f2b952;transform:translateY(-2px)}
.hero-btn i{transition:transform .2s}.hero-btn:hover i{transform:translateX(4px)}
.hero-indicators{justify-content:flex-start;left:max(1rem,calc((100% - 1288px)/2));right:auto;bottom:1.4rem;margin:0;gap:.45rem}
.hero-indicators [data-bs-target]{width:34px;height:3px;margin:0;border:0;border-radius:5px;background:#fff;opacity:.4;transition:width .3s,opacity .3s}
.hero-indicators .active{width:64px;opacity:1;background:var(--gold)}
.hero-control{width:46px;height:46px;top:50%;bottom:auto;margin-top:-23px;border:1px solid rgba(255,255,255,.35);border-radius:50%;background:rgba(8,30,48,.5);opacity:0;transition:opacity .2s,background .2s}
.hero-control.carousel-control-prev{left:1.25rem}.hero-control.carousel-control-next{right:1.25rem}.hero-section:hover .hero-control,.hero-control:focus{opacity:1}.hero-control:hover{background:var(--gold);color:var(--navy)}
.hero-section .carousel-item.active .eyebrow,.hero-section .carousel-item.active h1,.hero-section .carousel-item.active .hero-lead,.hero-section .carousel-item.active .hero-search,.hero-section .carousel-item.active .hero-btn{animation:hero-content-in .7s ease both}
.hero-section .carousel-item.active h1{animation-delay:.08s}.hero-section .carousel-item.active .hero-lead{animation-delay:.15s}.hero-section .carousel-item.active .hero-search,.hero-section .carousel-item.active .hero-btn{animation-delay:.22s}
@keyframes hero-content-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@media (max-width:991.98px){.hero-slide::before,.hero-biodiversity::before,.hero-physics::before{background:linear-gradient(90deg,rgba(5,25,42,.63),rgba(5,25,42,.35))}.hero-copy-right{padding-left:0}.hero-indicators{left:1rem}.hero-control{display:none}}
@media (max-width:575.98px){.hero-slide{background-position:center}.hero-slide::before,.hero-biodiversity::before,.hero-physics::before{background:rgba(5,25,42,.48)}.hero-indicators{bottom:1rem}.hero-indicators [data-bs-target]{width:24px}.hero-indicators .active{width:42px}}

/* Shared search between navigation and highlights */
.catalog-search-section{padding:1.25rem 0;background:#eaf3f8;border-top:1px solid #7dacd5}
.catalog-search-panel{display:flex;align-items:center;gap:1.5rem;width:100%;margin:0 auto;padding:0}
.catalog-search-label{flex-shrink:0;font-weight:700;font-size:1.05rem;color:var(--navy);margin:0}
.catalog-search-panel .hero-search{flex:1;min-width:0}
.catalog-search-panel .hero-search{width:100%;max-width:none;margin:0;padding:.3rem;border:1px solid #b8d5ee;border-radius:10px;background:#ffffff;box-shadow:none;flex-wrap:nowrap}
.catalog-search-panel .hero-search input{min-width:0;width:auto;flex:1;padding:.55rem .65rem;font-size:.9rem;text-align:left;background:transparent}
.catalog-search-panel .hero-search button{flex-shrink:0;width:auto;padding:.55rem 1.1rem;font-size:.85rem;border-radius:7px}
.catalog-search-panel .hero-search:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(40,109,168,.12)}
.catalog-search-panel .hero-search button:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media(max-width:575.98px){.catalog-search-section{padding:.6rem 0}.catalog-search-panel .hero-search input{font-size:.8rem;padding:.55rem .4rem}.catalog-search-panel .hero-search button{padding:.55rem .75rem}.catalog-search-panel .hero-search>i{margin-left:.4rem}}

.hero-banner{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}

/* About page */
.about-hero{padding:2rem 0 3.5rem;background:linear-gradient(90deg,rgba(234,244,250,.96) 0%,rgba(234,244,250,.88) 50%,rgba(234,244,250,.65) 100%),url('../images/hero-library.jpg') center bottom/cover no-repeat;border-bottom:1px solid var(--border)}
.about-hero .breadcrumb{font-size:.85rem;margin-bottom:2.5rem}.about-hero .breadcrumb a{color:var(--blue)}
.about-hero h1{font:700 clamp(2.5rem,5vw,4rem)/1.15 var(--serif);color:var(--navy);margin:.75rem 0 1rem}
.about-hero p{font-size:1.15rem;font-weight:500;color:var(--navy);max-width:620px;margin:0}
.about-heritage{background:var(--navy);color:#fff;border-radius:var(--radius);padding:2rem}.about-heritage>i{display:block;font-size:2.5rem;color:var(--gold);margin-bottom:1.5rem}.about-heritage .eyebrow{color:var(--gold)}
.about-heritage h2{font:700 1.8rem/1.4 var(--serif);margin:1rem 0 2rem}
.about-fact{padding:1.25rem 0;border-top:1px solid rgba(255,255,255,.2)}.about-fact strong{display:block;font-size:2rem;color:var(--gold)}.about-fact span{color:#d7e4eb}
.about-copy h2{font:700 clamp(1.5rem,3vw,2rem)/1.35 var(--serif);color:var(--navy);margin:.75rem 0 1.5rem}.about-copy p+h2{margin-top:2.75rem;padding-top:2rem;border-top:1px solid var(--border)}
.about-copy p{color:#435865;margin-bottom:1.4rem;line-height:1.85}.about-copy strong{color:var(--ink)}.about-copy a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}

.footer-social{margin-top:1.5rem}.footer-social h2{margin-bottom:.75rem}.footer-social .social-links{margin-top:0;flex-wrap:wrap}.footer-social .social-links a{width:44px;height:44px;font-size:1.15rem}.footer-social .social-links a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* Public book browsing */
.books-intro{background:var(--sky);padding:2rem 0 3rem;border-bottom:1px solid var(--border)}.books-intro .breadcrumb{font-size:.85rem;margin-bottom:2rem}.books-intro h1{font:700 clamp(2.3rem,5vw,3.5rem)/1.2 var(--serif);color:var(--navy);margin:.6rem 0 1rem}.books-intro p{color:var(--muted)}
.books-search{display:flex;align-items:center;gap:1rem;max-width:850px;background:#fff;border:1px solid #b5ccda;padding:.5rem .5rem .5rem 1rem;border-radius:12px;margin-top:1.5rem}.books-search input{flex:1;min-width:0;border:0;padding:.7rem 0;background:transparent}.books-search button{background:var(--navy);color:#fff;border:0;border-radius:8px;padding:.85rem 1.3rem;font-weight:700}.books-search:focus-within{outline:2px solid var(--blue);outline-offset:2px}
.books-section{padding:3.5rem 0 5rem}.books-subjects{border:1px solid var(--border);border-radius:14px;overflow:hidden}.books-subjects h2{font:700 1rem var(--sans);background:var(--navy);color:#fff;padding:1.25rem;margin:0}.books-subjects h2 i{margin-right:.5rem}.books-subjects a{display:block;padding:.6rem 1.1rem;border-top:1px solid var(--border);font-size:.87rem}.books-subjects .subject-child{padding-left:2rem;font-size:.8rem}.books-subjects a:hover,.books-subjects a[aria-current]{background:var(--sky);color:var(--blue)}
.books-catalogues{padding:1.5rem;background:var(--sky);border-radius:14px;scroll-margin-top:2rem}.books-catalogues>i{font-size:2rem;color:var(--blue)}.books-catalogues h2{font:700 1.15rem/1.4 var(--serif);margin:1rem 0}.books-catalogues p{font-size:.85rem;color:var(--muted)}.books-catalogues a{display:block;font-size:.88rem;color:var(--blue);font-weight:700;margin-top:1rem;overflow-wrap:anywhere}
.books-heading{font:700 clamp(1.4rem,3vw,2rem) var(--serif);margin:0}.books-alphabet{display:flex;flex-wrap:wrap;gap:.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border)}.books-alphabet a{display:inline-flex;justify-content:center;padding:.65rem 1.1rem;border:1px solid var(--border);border-radius:8px;font-weight:700;font-size:.85rem}.books-alphabet a[aria-current],.books-alphabet a:hover{background:var(--navy);color:#fff;border-color:var(--navy)}.books-results{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.85rem;margin:1.5rem 0}.books-empty{padding:4rem 1.5rem;background:var(--paper);border:1px dashed var(--border);border-radius:14px;text-align:center}.books-empty>i{font-size:3rem;color:var(--blue)}.books-empty h3{font:700 1.5rem var(--serif);margin:1rem 0}.books-empty p{color:var(--muted)}.book-list-details{border-top:1px solid var(--border);margin-top:1rem;padding-top:.8rem;font-size:.8rem}.book-list-details summary{color:var(--blue);font-weight:700;cursor:pointer}.book-list-details dl{margin:1rem 0 0}.book-list-details dd{overflow-wrap:anywhere}.books-section a:focus-visible,.books-section summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
@media(max-width:575.98px){.books-search{flex-wrap:wrap;gap:.5rem}.books-search input{flex-basis:80%}.books-search button{width:100%}.books-alphabet a{padding:.6rem .85rem}.books-section{padding:2rem 0 3rem}}

/* Shared page breadcrumbs */
.breadcrumb-strip{width:100%;padding:.65rem 0;background:#f6f6f6}
.breadcrumb-strip .breadcrumb{font-size:.75rem;line-height:1}
.breadcrumb-strip .breadcrumb a{color:var(--blue)}
.breadcrumb-strip .breadcrumb-item.active{color:#526775}

/* Book detail page */
.book-detail-link{margin-top:1rem;padding-top:.8rem;border-top:1px solid var(--border);font-size:.85rem}
.book-detail-section{padding:3rem 0 5rem}.book-detail-cover{position:relative;width:100%;max-width:230px;margin:0 auto;aspect-ratio:300/410;background:var(--paper);border:1px solid var(--border);border-radius:18px;overflow:hidden}.book-detail-cover img{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain}
.book-detail-section h1{font:700 clamp(1.25rem,2vw,1.65rem)/1.4 var(--serif);color:var(--navy);overflow-wrap:anywhere}.book-detail-author{color:var(--muted);margin:1rem 0}.book-detail-price{display:flex;align-items:baseline;flex-wrap:wrap;gap:.7rem;margin:1.5rem 0}.book-detail-price strong{font-size:1.6rem;color:var(--navy)}.book-detail-price del{color:#c62828}.book-detail-price span{flex-basis:100%;color:var(--blue);font-size:.85rem}
.book-specifications{display:grid;grid-template-columns:auto 1fr;gap:.6rem 1.5rem;padding:1.25rem 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border);font-size:.9rem}.book-specifications dd{margin:0;overflow-wrap:anywhere}.book-enquiry{display:inline-flex;align-items:center;gap:.6rem;background:var(--navy);color:#fff;padding:.8rem 1.2rem;border-radius:8px;font-weight:700}.book-enquiry:hover{background:var(--blue);color:#fff}
.book-information .nav-tabs{gap:.3rem;flex-wrap:wrap}.book-information .nav-link{color:var(--muted);font-weight:700;padding:1rem}.book-information .nav-link.active{color:var(--navy);border-bottom:3px solid var(--gold)}.book-information .tab-content{padding:1.5rem;border:1px solid var(--border);border-top:0;overflow-wrap:anywhere}.book-information h2{font:700 1.4rem var(--serif);margin-bottom:1rem}.book-information pre{white-space:pre-wrap}.book-detail-section a:focus-visible{outline:3px solid var(--blue);outline-offset:3px}.breadcrumb-strip .breadcrumb-item{overflow-wrap:anywhere}
@media(max-width:575.98px){.book-information .nav-link{font-size:.8rem;padding:.75rem .6rem}.book-detail-section{padding:2rem 0 3rem}}

@media(max-width:575.98px){.catalog-search-panel{flex-direction:column;align-items:stretch;gap:.5rem}.catalog-search-label{font-size:.9rem}}

.books-section .book-badge{z-index:1}
.books-subjects .subject-group{border-top:1px solid var(--border);overflow:hidden}
.books-subjects summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.1rem;list-style:none;cursor:pointer;font-size:.87rem;font-weight:700}
.books-subjects summary::-webkit-details-marker{display:none}
.books-subjects summary:hover,.books-subjects .subject-group[open]>summary{background:var(--sky);color:var(--blue)}
.books-subjects summary,.books-subjects .subject-child{transition:background-color .2s,color .2s}
.subject-chevron{flex-shrink:0;font-size:.75rem;transition:transform .28s cubic-bezier(.4,0,.2,1)}
.subject-group[open]>summary .subject-chevron{transform:rotate(90deg)}
.subject-group.is-closing>summary .subject-chevron{transform:rotate(0)}
.books-subjects .subject-children{background:var(--paper);border-left:3px solid var(--blue);margin:0 .8rem .8rem}
.books-subjects .subject-child{padding:.7rem .9rem;font-size:.82rem}
.books-subjects .subject-all{font-weight:700}
.books-subjects a[aria-current]{font-weight:700}
.books-subjects summary:focus-visible,.books-subjects a:focus-visible{outline:3px solid var(--blue);outline-offset:-3px}
@media(prefers-reduced-motion:reduce){.books-subjects summary,.books-subjects .subject-child,.subject-chevron{transition:none}}

.cart-add-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:.75rem;margin:1.5rem 0}
.cart-add-form .form-control,.cart-quantity-form .form-control{width:80px}
.cart-button{display:inline-flex;align-items:center;gap:.6rem;background:var(--navy);color:#fff;padding:.75rem 1.2rem;font-weight:700}
.cart-button:hover,.cart-button:focus-visible{background:var(--blue);color:#fff}
.about-copy a.cart-button{color:#fff;text-decoration:none}
.about-copy a.cart-button:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.cart-section{padding:3rem 0 5rem}
.cart-item{display:grid;grid-template-columns:90px minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;margin-bottom:1rem;border:1px solid var(--border);border-radius:14px;background:#fff}
.cart-cover{display:block;width:90px;height:123px;object-fit:cover;border-radius:5px}
.cart-book-info{min-width:0}.cart-item .book-title{min-height:0;overflow-wrap:anywhere}
.cart-controls,.cart-quantity-form{display:flex;align-items:center;gap:.5rem}
.cart-icon-button{display:grid;place-items:center;width:38px;height:38px;padding:0}
.cart-controls .form-control{width:65px}
.cart-summary{padding:1.5rem;background:var(--paper);border:1px solid var(--border);border-radius:14px}
@media(max-width:767.98px){.cart-item{grid-template-columns:65px minmax(0,1fr);gap:.8rem}.cart-cover{width:65px;height:89px}.cart-controls{grid-column:2;justify-self:end}}

.author-form{padding:2rem;border:1px solid var(--border);border-radius:18px;background:var(--paper)}.author-form legend{font:700 1.25rem var(--serif);margin-bottom:1rem}.author-form .form-label{font-weight:600}.eresources-banner{display:block;overflow:hidden;border:1px solid var(--border);border-radius:18px}.eresources-banner img{display:block;width:100%;height:auto}@media(max-width:575.98px){.author-form{padding:1.25rem}}

.eresources-banner{position:relative;aspect-ratio:1300/280;background:#fff}
.eresources-banner img{position:absolute;inset:0;width:100%;height:auto}
.eresources-download{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:1.25rem;padding:1.75rem;margin-top:1.25rem;border:1px solid var(--border);border-radius:14px;background:var(--sky)}
.eresources-download h2{font:700 1.35rem/1.4 var(--serif);margin:0;color:var(--navy)}
.eresources-download-button{padding:1rem 1.75rem;font-size:1.05rem;box-shadow:0 5px 14px rgba(18,57,91,.18)}
@media(max-width:575.98px){.eresources-download{text-align:center;padding:1.25rem}.eresources-download-button{width:100%;justify-content:center}}

.author-section{padding:3.5rem 0 5rem;background:linear-gradient(180deg,#f2f6fa 0%,#fff 100%)}
.author-section .author-form,.recommendation-modal .author-form{padding:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 16px 48px rgba(18,57,91,.09);border:1px solid #d9e4ed}
.author-form-header{display:flex;align-items:center;gap:1rem;padding:1.5rem 2.5rem;background:#fff;color:var(--navy);border-bottom:1px solid var(--border)}
.author-form-icon{display:none}
.author-form-header h2{font:700 1.35rem/1.4 var(--serif);margin:0 0 .35rem}
.author-form-header p{margin:0;color:var(--muted);font-size:.9rem}
.author-required-note{margin-left:auto;white-space:nowrap;font-size:.75rem;color:var(--muted)}
.author-form-body{padding:2.5rem}
.author-form .author-fieldset{margin:0;margin-bottom:2rem;--bs-gutter-x:1.5rem;--bs-gutter-y:1.25rem;padding:0 0 2rem;border-bottom:1px solid var(--border)}
.author-form .author-fieldset+.author-fieldset{padding-top:2rem}
.author-form .author-fieldset>legend{float:none;display:flex;align-items:center;gap:.75rem;width:100%;padding:0;margin:0;color:var(--navy);font-size:1.2rem}
.author-section-number{display:grid;place-items:center;width:34px;height:34px;flex-shrink:0;border-radius:10px;background:var(--sky);font:800 .8rem var(--sans);color:var(--blue)}
.author-form .form-label{margin-bottom:.5rem;font-size:.85rem;color:#314657}
.author-form .form-control,.author-form .form-select{min-height:48px;padding:.7rem .9rem;border-radius:9px;background:#fbfcfe}
.author-form .form-control::placeholder{color:#8998a7;font-size:.85rem}
.author-form .form-control:focus,.author-form .form-select:focus{background:#fff;border-color:var(--blue);box-shadow:0 0 0 3px rgba(40,109,168,.12)}
.author-form .author-catalogue-choice>legend{font-family:var(--sans);font-size:.85rem;margin-bottom:.75rem}
.author-catalogue-choice .form-check-inline{padding:.65rem 1rem .65rem 2.5rem;margin-right:.65rem;border:1px solid var(--border);border-radius:9px;background:#fbfcfe}
.author-form-footer{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem}
.author-security{max-width:280px;flex:1}
.author-submit{min-height:48px;padding:.85rem 1.75rem;border-radius:10px}
@media(max-width:767.98px){.author-form-header{padding:1.5rem;flex-wrap:wrap}.author-form-header h2{font-size:1.3rem}.author-required-note{width:100%;margin-left:0}.author-form-body{padding:1.5rem}.author-form-footer{align-items:stretch;flex-direction:column}.author-security{max-width:none}.author-submit{justify-content:center}.author-section{padding:2rem 0 3rem}}

.contact-details{padding:2rem;border:1px solid var(--border);border-radius:18px;background:#fff}.contact-details h2{font:700 1.5rem/1.4 var(--serif);margin:1rem 0 1.75rem;color:var(--navy)}.contact-detail{display:flex;gap:1rem;padding:1.25rem 0;border-top:1px solid var(--border)}.contact-detail>i{color:var(--blue);font-size:1.35rem}.contact-detail h3{font:700 .9rem var(--sans);margin:0 0 .6rem}.contact-detail p{margin:0;font-size:.9rem}.contact-detail a{font-size:.9rem;color:var(--blue);overflow-wrap:anywhere}.contact-detail a:hover{text-decoration:underline}.contact-map h2{font:700 1.5rem var(--serif);margin-bottom:1rem}.contact-map iframe{display:block;border:1px solid var(--border);border-radius:18px}@media(max-width:575.98px){.contact-details{padding:1.5rem}.contact-map iframe{height:300px}}


.form-control:where(:not(:focus):not(.is-invalid):not(.is-valid)),.form-select:where(:not(:focus):not(.is-invalid):not(.is-valid)),.form-check-input:where(:not(:focus):not(:checked):not(.is-invalid):not(.is-valid)){border-color:#9aaaba}

.cart-add-quantity label{display:block;margin-bottom:.5rem;font-size:.85rem;font-weight:600}
.cart-add-form .form-control,.cart-add-form .cart-button{height:48px;border-radius:9px}
.cart-add-form .cart-button{justify-content:center;white-space:nowrap}

.journal-benefits li{margin-bottom:.85rem;padding-left:.25rem}.author-registration-link{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border);text-align:center}.author-registration-link p{margin-bottom:.5rem;font-size:.9rem;color:var(--muted)}.author-registration-link a{font-weight:700;color:var(--blue)}

.cart-progress{margin-bottom:2.5rem;padding:0;background:none;border:0;box-shadow:none}
.cart-progress-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;padding:0;gap:0}
.cart-progress-step{position:relative;min-width:0}
.cart-progress-step:not(:last-child):after{content:"";position:absolute;top:21px;left:calc(50% + 30px);right:calc(-50% + 30px);height:2px;background:var(--border)}
.cart-progress-step.is-done:after{background:#a6d2bf}
.cart-progress-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;text-align:center;gap:.75rem;border-radius:10px}
a.cart-progress-content:focus-visible{outline:3px solid var(--blue);outline-offset:5px}
.cart-progress-number{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:2px solid var(--border);border-radius:50%;background:#f5f7fa;color:var(--muted);font-size:.95rem;font-weight:800}
.cart-progress-label{display:block;font-size:.9rem;font-weight:700;color:var(--muted)}
.cart-progress-status{display:block;font-size:.73rem;color:var(--muted);margin-top:.1rem}
.is-done .cart-progress-number{background:#e9f5ef;border-color:#b6dac8;color:#25734f}
.is-done .cart-progress-label,.is-done .cart-progress-status{color:#25734f}
.is-current .cart-progress-number{background:var(--navy);border-color:var(--navy);color:#fff;box-shadow:none}
.is-current .cart-progress-label{color:var(--navy)}
.is-current .cart-progress-status{color:var(--blue);font-weight:700}
a.cart-progress-content:hover .cart-progress-label{text-decoration:underline;text-underline-offset:4px}
@media(max-width:575.98px){.cart-progress{padding:0}.cart-progress-list{grid-template-columns:1fr;gap:1.25rem}.cart-progress-content{flex-direction:row;align-items:center;text-align:left;gap:1rem}.cart-progress-step:not(:last-child):after{top:48px;bottom:-1rem;left:21px;right:auto;width:2px;height:auto}.cart-progress-label{font-size:.88rem}}

.order-summary-table{table-layout:fixed;width:100%;min-width:880px}
.order-summary-table .summary-cover-column{width:120px}
.order-summary-table .summary-isbn-column{width:155px}
.order-summary-table .summary-quantity-column{width:110px}
.order-summary-table .summary-price-column{width:155px}
.order-summary-table .summary-subtotal-column{width:170px}
.order-summary-table th,.order-summary-table td{padding:1rem .75rem;overflow-wrap:anywhere}
.order-summary-table .summary-book-cover{display:block;width:96px;min-width:96px;max-width:none;height:132px;object-fit:contain;object-position:center}
.order-summary-table .summary-book-description .text-link{display:block;white-space:normal;overflow-wrap:anywhere}
.order-summary-table .summary-book-description p{overflow-wrap:anywhere}

.order-summary-section{padding-top:1.75rem}
.order-address-card{height:100%;padding:1.5rem;border:1px solid var(--border);border-top:3px solid var(--blue);border-radius:12px;background:#f5f9fc;overflow-wrap:anywhere}
.order-address-bill{border-top-color:var(--gold);background:#fffbf3}
.order-address-card h2{display:flex;align-items:center;gap:.65rem;margin:0 0 1rem;color:var(--navy);font:700 1.15rem/1.4 var(--serif)}
.order-address-card h2 i{font-size:1.25rem;color:var(--blue)}
.order-address-bill h2 i{color:#9a6a14}
.order-address-name{display:block;margin-bottom:.35rem;color:var(--navy);font-size:1.05rem}
.order-address-contact{margin-top:1rem;padding-top:.85rem;border-top:1px solid var(--border);font-size:.9rem}
@media(max-width:575.98px){.order-summary-section{padding-top:1.25rem}.order-address-card{padding:1.15rem}}

/* Shared CAPTCHA field: image, answer, then refresh. */
.author-security.captcha-field{width:100%;max-width:390px;min-width:0}
.captcha-field>.form-label{display:block}
.captcha-entry{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 40px;gap:.5rem;align-items:stretch}
.captcha-challenge{display:flex;align-items:center;justify-content:center;height:48px;overflow:hidden;border:1px solid var(--navy);border-radius:9px;background:var(--navy)}
.captcha-challenge img{display:block;width:100%;height:100%;object-fit:contain}
.author-form .captcha-entry .form-control{width:100%;min-width:0;height:48px;padding:.65rem .5rem;text-align:center;letter-spacing:.1em;color:var(--navy);font-size:.9rem}
.author-form .captcha-entry .form-control::placeholder{letter-spacing:normal;font-size:.8rem}
.captcha-refresh{display:grid;place-items:center;min-height:48px;padding:0;border:1px solid var(--border);border-radius:9px;background:#fbfcfe;color:var(--blue);font-size:1.2rem;cursor:pointer;transition:background .2s,color .2s}
.captcha-refresh:hover{background:var(--sky);color:var(--navy)}
.captcha-refresh:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.captcha-refresh:disabled{opacity:.5;cursor:wait}
.captcha-help{display:block;margin-top:.5rem;color:var(--muted);font-size:.68rem;line-height:1.5}
@media(max-width:767.98px){.author-security.captcha-field{max-width:100%}}
@media(max-width:359.98px){.captcha-entry{gap:.3rem;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) 34px}.author-form .captcha-entry .form-control{padding:.5rem .25rem;letter-spacing:normal}}

/* Journal accounts and manuscript review. */
.journal-workspace{padding-top:2rem}
.journal-account-nav{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:2rem;padding:.65rem;border:1px solid var(--border);border-radius:12px;background:var(--paper)}
.journal-account-nav a,.journal-account-nav button{display:inline-flex;align-items:center;gap:.5rem;padding:.65rem .9rem;border:0;border-radius:8px;background:transparent;color:var(--navy);font:600 .85rem var(--sans)}
.journal-account-nav a:hover,.journal-account-nav button:hover,.journal-account-nav a.active{background:var(--navy);color:#fff}
.journal-account-nav form{margin-left:auto}
.journal-account-nav a:focus-visible,.journal-account-nav button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.journal-table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:12px}
.journal-table-wrap th{background:var(--paper);color:var(--navy);font-size:.8rem;white-space:nowrap}
.journal-table-wrap td,.journal-table-wrap th{padding:1rem;vertical-align:middle}
.journal-table-wrap td{font-size:.88rem;min-width:130px;max-width:350px;overflow-wrap:anywhere}
.journal-status{display:inline-block;padding:.3rem .7rem;border-radius:20px;background:var(--sky);color:var(--navy);font-size:.72rem;font-weight:700}
.journal-status-approved{background:#e4f3e9;color:#215b38}.journal-status-rejected{background:#fbe8e6;color:#9f3025}.journal-status-sent-for-revisions{background:#fff2d9;color:#785011}
.journal-event{padding:1.15rem 0;border-top:1px solid var(--border)}.journal-event:last-child{padding-bottom:0}
.journal-feedback-text{white-space:pre-wrap;overflow-wrap:anywhere}
@media(max-width:575.98px){.journal-account-nav form{margin-left:0}.journal-table-wrap td,.journal-table-wrap th{padding:.75rem}}

.announcement-copy{flex:1;min-width:0;overflow:hidden}.announcement-ticker{display:block;position:relative;width:max-content;white-space:nowrap;animation:highlights-rtl 30s linear infinite}.announcement-copy:hover .announcement-ticker,.announcement-bar.is-paused .announcement-ticker{animation-play-state:paused}.announcement-toggle{flex-shrink:0;display:grid;place-items:center;width:30px;height:30px;padding:0;border:1px solid #ffffff80;border-radius:50%;background:transparent;color:#fff}.announcement-toggle:focus-visible{outline:2px solid #fff;outline-offset:3px}@keyframes highlights-rtl{from{left:100%;transform:translateX(0)}to{left:0;transform:translateX(-100%)}}@media(prefers-reduced-motion:reduce){.announcement-ticker{animation:none;white-space:normal;width:auto}.announcement-toggle{display:none}}

/* Header live book suggestions */
[data-book-search]{position:relative}
.book-search-results{position:absolute;top:calc(100% + 8px);left:0;right:0;z-index:1050;max-height:min(480px,65vh);overflow-y:auto;background:#fff;border:1px solid #b8d5ee;border-radius:10px;box-shadow:0 16px 36px rgba(16,47,74,.18);color:var(--ink);text-align:left}
.book-search-results[hidden]{display:none}
.book-search-status{margin:0;padding:.8rem 1rem;font-size:.85rem;color:var(--muted)}
.book-search-item{display:flex;align-items:center;gap:1rem;padding:.8rem 1rem;border-top:1px solid var(--border);color:var(--ink);text-decoration:none}
.book-search-item:hover,.book-search-item:focus-visible{background:#eaf3f8;color:var(--navy);outline:2px solid var(--blue);outline-offset:-2px}
.book-search-cover{display:flex;align-items:center;justify-content:center;flex:0 0 48px;width:48px;height:66px;background:#edf2f5;border-radius:3px;overflow:hidden;color:var(--muted)}
.book-search-cover img{width:100%;height:100%;object-fit:contain}
.book-search-copy{min-width:0;overflow-wrap:anywhere}
.book-search-copy strong{display:block;font-size:.9rem;line-height:1.4}
.book-search-copy small{display:block;margin-top:.2rem;font-size:.78rem;color:var(--muted)}

.books-subjects a{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.subject-count{flex-shrink:0;margin-left:auto;border-radius:20px;background:#e6eef4;color:var(--navy);padding:.1rem .5rem;font-size:.72rem;font-weight:600;font-variant-numeric:tabular-nums}
.related-books h2{font:700 1.5rem/1.35 var(--serif);color:var(--navy);margin:0}
.related-books-row{position:relative;max-width:100%;min-width:0;display:flex;gap:1.5rem;overflow-x:auto;scroll-snap-type:x proximity;padding:8px 4px 1.5rem}
.related-book{flex:0 0 calc((100% - 4.5rem)/4);min-width:220px;scroll-snap-align:start}
.related-books-row:focus-visible{outline:2px solid var(--blue);outline-offset:4px}
.book-cover img{max-width:100%}
@media(max-width:575.98px){.book-detail-cover{max-width:180px}.related-book{flex-basis:75%;min-width:200px}}

.related-books-controls{display:flex;gap:.5rem;flex-shrink:0}
.related-books-controls[hidden]{display:none}
.related-books-controls button{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--border);border-radius:50%;background:#fff;color:var(--navy)}
.related-books-controls button:hover{background:var(--sky);border-color:var(--blue)}
.related-books-controls button:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
@media(max-width:575.98px){.book-detail-section .row{--bs-gutter-x:1rem}}

/* Homepage registration popup */
html.signup-popup-open{overflow:hidden}
.signup-popup{width:min(620px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);padding:0;border:3px solid var(--gold);border-radius:14px;background:#fff;color:var(--ink);box-shadow:0 24px 80px #0005;overflow-y:auto}
.signup-popup::backdrop{background:rgba(8,25,40,.65)}
.signup-popup-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.6rem 1.5rem;background:var(--gold);color:#172c3b}
.signup-popup-header h2{margin:0;font:700 1.1rem/1.5 var(--sans)}
.signup-popup-header button{flex-shrink:0;border:0;background:transparent;color:#172c3b;font-size:1.8rem;line-height:1;width:32px;height:32px}
.signup-popup-form{padding:1.5rem}.signup-popup .form-label{font-size:.85rem;font-weight:600}
.signup-popup .form-control{font-size:.9rem;padding:.65rem .75rem}
.signup-popup-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-top:1px solid var(--border);padding-top:1.25rem;margin-top:1.25rem}
.signup-popup-footer a{font-size:.85rem;color:var(--blue)}
.signup-popup button:focus-visible,.signup-popup a:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
@media(max-width:575.98px){.signup-popup-header{padding:.5rem 1rem}.signup-popup-form{padding:1rem}.signup-popup-header h2{font-size:.95rem}.signup-popup-footer .btn{width:100%}}

/* Dimensional book-cover hover, shared by cards and the details page. */
.book-cover,.book-detail-cover{perspective:1000px}
.book-cover-volume{position:relative;display:inline-block;max-width:100%;line-height:0;isolation:isolate;transform:rotateY(0deg);transform-style:preserve-3d;transition:transform .45s ease}
.book-cover-volume img{position:relative;z-index:2;display:block;filter:none;box-shadow:7px 10px 16px rgba(19,42,57,.2)}
.book-cover-volume::before{content:"";position:absolute;inset:2% 0;background:repeating-linear-gradient(to right,#e0ded6 0,#e0ded6 1px,#fffdf5 1px,#fffdf5 3px);border:1px solid #b7b3a7;border-right:3px solid #39434a;box-shadow:4px 4px 7px #132a3926;z-index:1;transition:transform .45s ease}
.book-cover-volume::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(to right,transparent 4%,#00000018 6%,#ffffff16 8%,transparent 12%)}
:is(.book-card,.book-detail-cover):focus-within .book-cover-volume{transform:rotateY(-30deg) scale(.98)}
:is(.book-card,.book-detail-cover):focus-within .book-cover-volume::before{transform:translateX(16px)}
@media(hover:hover) and (pointer:fine){:is(.book-card,.book-detail-cover):hover .book-cover-volume{transform:rotateY(-30deg) scale(.98)}:is(.book-card,.book-detail-cover):hover .book-cover-volume::before{transform:translateX(16px)}}
@media(prefers-reduced-motion:reduce){.book-cover-volume,.book-cover-volume::before{transition:none}:is(.book-card,.book-detail-cover):hover .book-cover-volume,:is(.book-card,.book-detail-cover):focus-within .book-cover-volume{transform:none}:is(.book-card,.book-detail-cover):hover .book-cover-volume::before,:is(.book-card,.book-detail-cover):focus-within .book-cover-volume::before{transform:none}}

/* Compact, responsive location map in the footer contact column. */
.footer-map{display:block;width:100%;height:180px;border:0;border-radius:12px;margin-bottom:1rem}

.book-carousel-dots{display:flex;justify-content:center;flex-wrap:wrap;gap:2px;margin-top:.5rem}
.book-carousel-dots[hidden]{display:none}
.book-carousel-dots button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:0;background:transparent;border-radius:50%}
.book-carousel-dots button::before{content:"";width:9px;height:9px;border-radius:50%;background:#b9c8d2;transition:background .2s,transform .2s}
.book-carousel-dots button[aria-current="true"]::before{background:var(--blue);transform:scale(1.3)}
.book-carousel-dots button:focus-visible{outline:2px solid var(--blue);outline-offset:2px}

/* Hide homepage carousel scrollbars while preserving swipe and scripted scrolling. */
.home-book-carousel .related-books-row{scrollbar-width:none;-ms-overflow-style:none}
.home-book-carousel .related-books-row::-webkit-scrollbar{display:none}

/* Keep the full cover and its dimensional page edge visible. */
.book-detail-cover{overflow:visible;border:0;border-radius:0;background:transparent;display:grid;place-items:center}
.book-detail-cover .book-cover-volume{width:100%}
.book-detail-cover .book-cover-volume img{position:relative;width:100%;height:auto}
.book-detail-cover:focus-visible{outline:3px solid var(--blue);outline-offset:6px}
.policy-copy{max-width:900px;margin:0 auto;overflow-wrap:anywhere;color:#435865;line-height:1.85}
.policy-copy h2,.policy-copy h3,.policy-copy h4{color:var(--navy);font-family:var(--serif);margin:2.5rem 0 1rem}
.policy-copy p>span{font-weight:700;color:var(--navy)}
.policy-copy ul,.policy-copy ol{padding-left:1.5rem;margin-bottom:1.4rem}
.policy-copy li+li{margin-top:.5rem}
.policy-copy table{display:block;max-width:100%;overflow-x:auto}
.policy-copy th,.policy-copy td{padding:.75rem;border:1px solid var(--border)}
