/* v14 premium layer: Cormorant Garamond (display) + Source Sans 3 (text), self-hosted */
@font-face{font-family:"Cormorant";src:url(/fonts/cormorant.woff2) format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"Cormorant";src:url(/fonts/cormorant-italic.woff2) format("woff2");font-weight:300 700;font-style:italic;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(/fonts/sourcesans.woff2) format("woff2");font-weight:200 900;font-display:swap}
@font-face{font-family:"Source Sans 3";src:url(/fonts/sourcesans-italic.woff2) format("woff2");font-weight:200 900;font-style:italic;font-display:swap}
:root{--paper:#faf7f1;--cream:#f2ece0;--ink:#1f1c18;--ink2:#575046;--navy:#18223b;--accent:#82580c;--gold:#c19034;--line:#e3dccd;
--serif:"Cormorant","Iowan Old Style","Palatino Linotype",Palatino,Georgia,serif;--sans:"Source Sans 3",system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif}
body{font:18px/1.7 var(--sans);background:var(--paper);color:var(--ink);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.005em;color:var(--navy)}
h1{font-size:clamp(2.4rem,5.6vw,4rem);line-height:1.05}h2{font-size:clamp(1.8rem,3.6vw,2.5rem)}h3{font-size:1.35rem}
.hero h1,.hero h2{color:#fff}
.eyebrow{font:600 .74rem/1.4 var(--sans);letter-spacing:.22em;color:var(--accent)}
.vh{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
section{padding:72px 0}.wrap{max-width:1200px;padding:0 24px}
/* header + mega menu */
header.site{position:sticky;top:0;z-index:30;background:rgba(250,247,241,.96);backdrop-filter:saturate(1.2) blur(8px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:72px}
.brand{font:600 1.55rem/1 var(--serif);color:var(--navy);text-decoration:none;white-space:nowrap;margin:0}
.brand span{font:600 .68rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);margin-left:6px;vertical-align:middle}
#menu{background:none;border:1px solid var(--line);border-radius:999px;font:600 .9rem var(--sans);padding:9px 16px;color:var(--ink);cursor:pointer}
nav.main{display:none;position:absolute;top:72px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);padding:6px 24px 20px;max-height:calc(100vh - 72px);overflow:auto}
nav.main.open{display:block}nav.main>ul{list-style:none;margin:0;padding:0}
nav.main>ul>li{position:relative;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;align-items:center}
nav.main a.top{flex:1;display:block;padding:13px 2px;text-decoration:none;font-weight:600;font-size:1rem;color:var(--ink)}
nav.main a.top[aria-current=page]{color:var(--accent)}
.dd-btn{width:44px;height:44px;border:0;background:none;cursor:pointer;position:relative}
.dd-btn::after{content:"";position:absolute;left:50%;top:45%;width:7px;height:7px;border-right:2px solid var(--ink2);border-bottom:2px solid var(--ink2);transform:translate(-50%,-50%) rotate(45deg);transition:transform .2s}
li.open>.dd-btn::after{transform:translate(-50%,-20%) rotate(-135deg)}
.mega{display:none;width:100%;padding:4px 0 14px}li.open>.mega{display:grid;gap:10px}
.mcol ul{list-style:none;margin:0;padding:0}.mcol a{display:block;padding:6px 0;text-decoration:none;color:var(--ink);font-size:.97rem}.mcol a:hover{color:var(--accent)}
.mh{font:600 .7rem var(--sans);letter-spacing:.2em;text-transform:uppercase;color:var(--ink2);margin:8px 0 4px}
@media(min-width:1080px){#menu{display:none}
 nav.main{display:block;position:static;border:0;padding:0;background:none;max-height:none;overflow:visible}
 nav.main>ul{display:flex;gap:2px}nav.main>ul>li{border:0;flex-wrap:nowrap}
 nav.main a.top{padding:10px 8px;font-size:.93rem;white-space:nowrap}
 .dd-btn{width:22px;height:36px;margin-left:-6px}
 .mega{position:absolute;top:100%;left:-16px;width:max-content;max-width:760px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 60px #1c254126;padding:22px 26px;grid-auto-flow:column;gap:36px}
 li.has-dd:hover>.mega,li.has-dd:focus-within>.mega,li.open>.mega{display:grid}
 nav.main>ul>li:nth-last-child(-n+3) .mega{left:auto;right:-16px}
 nav.main>ul>li:nth-child(6) a.top{background:var(--navy);color:#fff;border-radius:999px;padding:8px 16px;margin-left:6px}
 nav.main>ul>li:nth-child(6) a.top[aria-current=page]{background:var(--accent)}}
/* hero */
.hero{background:radial-gradient(120% 140% at 85% 10%,#2a3a63 0,#18223b 55%,#111827 100%);color:#efe8da;padding:84px 0 92px}
.hero h1{font-size:clamp(2.5rem,5.4vw,4.2rem);max-width:17ch}.lede-l{font-size:1.18rem;color:#ddd5c4;max-width:46ch;margin:0 0 28px}
.hero .eyebrow{color:#e5c27c}.hero .btn{background:#e5c27c;border-color:#e5c27c;color:#18223b}.hero .btn.alt{background:transparent;color:#fff;border-color:#ffffff99}
.phero{background:var(--cream);padding:64px 0 44px;border-bottom:1px solid var(--line)}.phero .lede{margin:0;text-align:left;max-width:62ch;font-size:1.15rem}
/* buttons */
.btn{font-family:var(--sans);letter-spacing:.01em;padding:12px 24px;margin:4px 6px 4px 0}
.btn.soon,.btn[aria-disabled=true]{background:transparent;border:1.5px dashed #b9ab8c;color:var(--ink2);cursor:not-allowed}
.btn.soon small{font:600 .68rem var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-left:6px;color:var(--accent)}
.buybox{display:flex;flex-wrap:wrap;gap:6px;margin:24px 0 8px}
/* grids + cards */
.grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:30px 24px;margin:18px 0 22px}
@media(min-width:700px){.grid{grid-template-columns:repeat(auto-fill,minmax(176px,1fr))}}
.card .c{aspect-ratio:3/4;border-radius:3px;box-shadow:0 1px 2px #0000001a,0 10px 26px #2a1d0a1f}
.card h3{font-size:1.18rem;line-height:1.2;margin-top:4px;color:var(--ink)}.card p{font-size:.88rem}
.shelf-h{margin:34px 0 4px}.shelf-h:first-child{margin-top:0}
.tph{width:100%;height:100%;display:flex;flex-direction:column;justify-content:space-between;padding:14% 11%;text-align:center;color:#f6efe1;background:#24324f;border:1px solid #ffffff14;outline:1px solid #e5c27c55;outline-offset:-10px}
.tph-children{background:linear-gradient(160deg,#25365a,#16203a)}.tph-science{background:linear-gradient(160deg,#1f4a52,#13303a)}.tph-novels,.tph-ya{background:linear-gradient(160deg,#4a2a2a,#2a1717)}
.tph-granite{background:linear-gradient(160deg,#5a3a24,#2d1d12)}.tph-nonfiction{background:linear-gradient(160deg,#3d4a2c,#222b17)}.tph-cards{background:linear-gradient(160deg,#6b3a2c,#3d1f17)}
.tph-s{font:600 .58rem/1.4 var(--sans);letter-spacing:.2em;text-transform:uppercase;color:#e5c27c}
.tph-t{font:600 1.25rem/1.15 var(--serif)}.tph-a{font:italic 500 .8rem var(--serif);color:#d9cfbb}
.tph.big{aspect-ratio:3/4;border-radius:4px;box-shadow:0 18px 40px #3b2a0f33}.tph.big .tph-t{font-size:clamp(1.8rem,3vw,2.6rem)}.tph.big .tph-s{font-size:.75rem}
.subt{font:italic 500 1.45rem var(--serif);margin-top:-6px;color:var(--ink2)}
.crumbs a{color:var(--ink2)}
.sitem{display:flex;flex-direction:column;gap:10px}.sitem .btn{font-size:.82rem;padding:8px 14px;text-align:center}
/* home */
.featured{padding:80px 0}.featblock .feature img{box-shadow:0 18px 40px #3b2a0f2a}
.doors{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:30px}
.door{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:24px 24px 20px;text-decoration:none;color:var(--ink);transition:border-color .2s,transform .2s}
.door:hover{border-color:var(--gold);transform:translateY(-2px)}.door h3{margin:0 0 6px}.door p{margin:0;color:var(--ink2);font-size:.96rem}
.svc{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.svc-c{display:block;background:#fff;border:1px solid var(--line);border-radius:14px;padding:28px;text-decoration:none;color:var(--ink)}a.svc-c:hover{border-color:var(--gold)}
.svc-c h2{font-size:1.7rem;margin-top:0}.more{font-weight:600;color:var(--navy)}
.prose h2{font-size:1.65rem;margin-top:36px}.plain{list-style:none;padding:0}.plain li{padding:8px 0;border-bottom:1px solid var(--line)}
.panel{border-radius:14px}
/* footer */
footer.site{background:#121a2e;color:#cfc8b8;padding:64px 0 34px;margin-top:0;font-size:.95rem}
footer.site a{color:#ecd59e;text-decoration:none}footer.site a:hover{text-decoration:underline}
footer.site h2{font:600 1.15rem var(--serif);color:#fff;margin:0 0 10px;letter-spacing:.01em}
.ftop{display:grid;gap:36px;padding-bottom:36px;border-bottom:1px solid #ffffff1f}@media(min-width:900px){.ftop{grid-template-columns:1fr 1.2fr}}
.fw{font:600 1.7rem var(--serif);color:#fff;margin:0 0 8px}.fw span{font:600 .66rem var(--sans);letter-spacing:.22em;text-transform:uppercase;color:#e5c27c;margin-left:6px}
.soc a{margin-right:14px}
.fnl h2{font-size:1.5rem}.fnl p{margin:4px 0 12px}.fnl-row{display:flex;flex-wrap:wrap;gap:10px}.fnl-row input{flex:1 1 180px;background:#ffffff0f;border:1px solid #ffffff3a;color:#fff}
.fnl-row input::placeholder{color:#bdb6a6}.fnl .btn{background:#e5c27c;border-color:#e5c27c;color:#18223b;margin:0}.fnl .small{color:#a9a294}
.fmap{display:grid;gap:26px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));padding:36px 0}.fmap ul{list-style:none;margin:0;padding:0}.fmap li{margin:6px 0}
.tip,.copy{margin:0;padding-top:14px;color:#a9a294;font-size:.88rem}.tip{border-top:1px solid #ffffff1f;padding-top:22px}
@media(max-width:640px){section{padding:52px 0}.hero{padding:56px 0 64px}.featured{padding:56px 0}}

/* v16: product boxes, mobile polish */
.pbox{border:1px solid rgba(28,37,65,.14);border-radius:14px;padding:18px 20px;margin:22px 0;background:rgba(255,255,255,.55);display:grid;gap:14px}
.pbox .offer{display:grid;gap:8px}
.pbox .offer+.offer{border-top:1px solid rgba(28,37,65,.1);padding-top:14px}
.pbox dl.meta{margin:0}
.pbox .price{font-variant-numeric:lining-nums}
.pbox .ship{margin:0}
.pbox .pfaq{margin:0}
.pbox .btn{justify-self:start}
.wrap>.pbox{max-width:560px;margin:28px auto}
img{max-width:100%;height:auto}
.cover-wrap img,.book img.ncov{object-fit:contain}
@media (max-width:640px){
 .book{grid-template-columns:1fr!important}
 .cover-wrap{max-width:320px;margin:0 auto}
 .pbox{padding:14px}
 .pbox .btn{justify-self:stretch;text-align:center}
 h1{overflow-wrap:anywhere}
 table{display:block;overflow-x:auto}
}

.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

.cardquote{margin:14px 0 18px;padding:0 0 0 16px;border-left:3px solid #c19034;font-family:var(--serif);font-size:1.35rem;line-height:1.35}
.cardquote p{margin:0 0 6px}
.cardquote footer{font-family:inherit;font-size:1rem;color:#575046}

/* v21: Amazon covers are 2:3; show the whole cover in 3:4 grid tiles (never crop) */
.card .c img.amz{object-fit:contain}
/* v22: content note on adult titles */
.cnote{font-weight:600;margin:.5em 0 1em}
.card .t .cnote{margin:.35em 0 0;font-size:.8rem}
