*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;color:var(--text);font-family:"DM Sans",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}.wrap{width:min(1240px,calc(100% - 32px));margin:0 auto}
.assoc-bar{display:flex;gap:1rem;justify-content:center;align-items:center;flex-wrap:wrap;font-size:.78rem;padding:.4rem 1rem;background:var(--bar);color:var(--muted)}
.assoc-bar a{color:var(--text)}.assoc-bar .age{border:1px solid var(--line2);border-radius:999px;padding:.05rem .55rem;color:var(--text)}
.hdr{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line)}
.hdr-in{display:flex;align-items:center;gap:1rem;padding:.8rem 0;flex-wrap:wrap}
.brand{font-weight:800;font-size:1.15rem;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:.5rem;letter-spacing:.01em}
.brand em{font-style:normal;color:var(--accent);text-transform:uppercase;font-size:.78rem;letter-spacing:.14em;border:1px solid var(--accent);padding:.1rem .45rem;border-radius:6px}
.brand .dot{width:.7rem;height:.7rem;border-radius:3px;background:var(--accent);box-shadow:0 0 14px var(--accent)}
.search{flex:1;display:flex;gap:.4rem;min-width:240px}
.search input,.filter input{flex:1;background:var(--field);border:1px solid var(--line2);color:var(--text);border-radius:10px;padding:.6rem .85rem;font:inherit}
.homelink{color:var(--text);font-size:.9rem;text-decoration:none;opacity:.85}
.dept{display:flex;gap:.2rem;overflow-x:auto;padding:.35rem 0 .6rem;scrollbar-width:thin}
.dept a{white-space:nowrap;color:var(--text);text-decoration:none;font-size:.88rem;font-weight:600;padding:.4rem .75rem;border-radius:8px;opacity:.9}
.dept a:hover,.dept a[aria-current]{background:var(--accent);color:var(--accent-ink);opacity:1}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.35rem;text-decoration:none;font-weight:800;border-radius:10px;padding:.7rem 1.1rem;border:1px solid transparent;cursor:pointer;font:inherit;font-weight:800}
.btn.buy{background:var(--accent);color:var(--accent-ink)}.btn.buy:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--text);border-color:var(--line2)}
.btn.sm{padding:.45rem .8rem;font-size:.85rem}.btn.big{padding:1rem 1.6rem;font-size:1.1rem;width:100%;max-width:380px;margin-top:1rem}
.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:800;color:var(--accent);margin-bottom:.4rem}
.hero{margin:1.2rem 0;border-radius:20px;overflow:hidden;border:1px solid var(--line)}
.hero-in{padding:2.4rem 2rem;max-width:760px;background:var(--hero-scrim);border-radius:0 20px 20px 0}
.hero h1,.dept-hero h1{font-size:clamp(2rem,5vw,3.2rem);line-height:1.05;margin:.1rem 0 .6rem;letter-spacing:-.02em;text-transform:var(--h-transform)}
.hero p,.dept-hero p{color:var(--text);opacity:.9;max-width:44rem}
.hero-cta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.dept-hero{border-radius:16px;padding:1.6rem 1.6rem;margin:.6rem 0 1.2rem;border:1px solid var(--line)}
.dept-hero>*{position:relative}
.crumbs{font-size:.85rem;color:var(--muted);margin:1rem 0 .4rem}.crumbs a{color:var(--muted)}
.shelf{margin:2rem 0}.shelf-head{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;border-bottom:2px solid var(--accent);padding-bottom:.4rem;margin-bottom:.8rem}
.shelf-head h2{margin:0;font-size:1.3rem;text-transform:var(--h-transform);letter-spacing:.02em}.more{font-weight:700;text-decoration:none}
.sub{color:var(--muted);margin:-.3rem 0 .8rem;font-size:.92rem}
.rowscroll{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(230px,1fr);gap:1rem;overflow-x:auto;padding-bottom:.6rem;scroll-snap-type:x mandatory}
.rowscroll .pcard{scroll-snap-align:start}
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.pcard{background:var(--panel);border:1px solid var(--line);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.pcard:hover{border-color:var(--accent)}
.ptile{height:120px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.4rem;color:var(--tile-ink);position:relative}
.pbrand{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:var(--tile-label);padding:.12rem .5rem;border-radius:6px}
.pbody{padding:.85rem .95rem .2rem;flex:1}.pbody h3{margin:0 0 .3rem;font-size:1rem;line-height:1.25}.pbody p{margin:0;color:var(--muted);font-size:.88rem}
.chips{display:flex;gap:.3rem;flex-wrap:wrap;margin-top:.5rem}.chip{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;border:1px solid var(--line2);border-radius:999px;padding:.1rem .5rem;color:var(--muted)}
.pcta{display:flex;gap:.4rem;flex-wrap:wrap;padding:.85rem .95rem .95rem}.pcta .buy{flex:1}
.aisles{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem}
.aisle{position:relative;display:flex;flex-direction:column;gap:.35rem;padding:1.2rem;border-radius:16px;text-decoration:none;color:var(--tile-ink);min-height:190px;border:1px solid var(--line);overflow:hidden}
.aisle b{font-size:1.2rem;color:var(--tile-ink)}.aisle small{opacity:.9}.aisle:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(0,0,0,.35)}
.anum{font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:var(--tile-label);align-self:flex-start;padding:.1rem .45rem;border-radius:5px}
.acount{margin-top:auto;font-weight:700;font-size:.85rem}
.endcap{background:var(--endcap);border:1px solid var(--line);border-radius:18px;padding:.4rem 1rem 1rem;margin:2rem 0}
.kits{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}
.kit{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1rem}
.kit-h h3{margin:.3rem 0 .1rem}.kit-h p{margin:0 0 .6rem;color:var(--muted);font-size:.9rem}
.badge{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;background:var(--accent);color:var(--accent-ink);padding:.12rem .5rem;border-radius:5px}
.kit ul{list-style:none;margin:0;padding:0;display:grid;gap:.5rem}
.kit li{display:flex;align-items:center;gap:.6rem;background:var(--panel2);border-radius:10px;padding:.5rem}
.kic{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;color:var(--tile-ink);flex:none}
.kn{flex:1;min-width:0;display:flex;flex-direction:column}.kn b{font-size:.88rem}.kn small{color:var(--muted)}
.fine{font-size:.78rem;color:var(--muted)}
.layout{display:grid;grid-template-columns:220px 1fr;gap:1.4rem}
.side{display:flex;flex-direction:column;gap:.2rem;position:sticky;top:130px;align-self:start}
.side h4{margin:0 0 .4rem;text-transform:uppercase;font-size:.75rem;letter-spacing:.14em;color:var(--muted)}
.side a{color:var(--text);text-decoration:none;padding:.45rem .6rem;border-radius:8px;display:flex;justify-content:space-between;font-size:.92rem}
.side a span{color:var(--muted);font-size:.8rem}.side a[aria-current]{background:var(--panel2);border-left:3px solid var(--accent)}
.filter{display:flex;gap:.8rem;align-items:center;margin-bottom:1rem}.filter span{color:var(--muted);font-size:.85rem;white-space:nowrap}
.fchips{display:flex;gap:.4rem;flex-wrap:wrap;margin:-.3rem 0 1rem}
.fchip{background:var(--panel);color:var(--text);border:1px solid var(--line2);border-radius:999px;padding:.35rem .8rem;cursor:pointer;font:inherit;font-size:.85rem}
.fchip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.pdp{display:grid;grid-template-columns:minmax(240px,420px) 1fr;gap:1.6rem;margin:1rem 0 1.4rem}
.pdp-tile{border-radius:18px;min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;color:var(--tile-ink)}
.pdp-tile span{font-weight:800;letter-spacing:.14em;text-transform:uppercase;background:var(--tile-label);padding:.2rem .7rem;border-radius:6px}
.pdp-main h1{margin:.1rem 0 .1rem;font-size:clamp(1.7rem,4vw,2.5rem);line-height:1.1}.by{color:var(--muted);margin:0 0 .8rem}
.bullets{padding-left:1.1rem;margin:0}.bullets li{margin:.3rem 0}
.gsec{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.3rem;margin:1rem 0}
.gsec.two{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem}.gsec h2{font-size:1.1rem;margin:0 0 .5rem}.gsec ul{margin:0;padding-left:1.1rem}
.likes h2{color:var(--accent)}.watch h2{color:var(--warn)}
.disclosure{margin:2.4rem 0 1rem;border-top:1px solid var(--line);padding-top:1.2rem;color:var(--muted);font-size:.9rem}.disclosure strong{color:var(--text)}
.ftr{margin-top:2rem;padding:1.1rem 0;font-size:.82rem;color:var(--muted)}.ftr .wrap{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.ftr a{color:var(--text)}
.hidden{display:none!important}
@media(max-width:760px){.layout{grid-template-columns:1fr}.side{display:none}.pdp{grid-template-columns:1fr}.pdp-tile{min-height:200px}.gsec.two{grid-template-columns:1fr}.hero-in{padding:1.6rem 1.2rem}}

/* The Adult Bookshop: old-school librarian. Dark wood, deep burgundy, cream pages, brass, classic serif, card catalog */
:root{--bg:#f1e7d3;--bar:#1f130d;--panel:#fbf6ea;--panel2:#efe3c8;--field:#fffdf6;--text:#2b1a14;--muted:#6a5547;--line:rgba(60,35,20,.14);--line2:rgba(60,35,20,.28);
--accent:#6b1626;--accent-ink:#f6ecd8;--warn:#8a5a1c;--tile-ink:#f6ecd8;--tile-label:rgba(20,10,6,.55);--h-transform:none;
--wood:#2e1b12;--wood2:#4a2d1d;--burg:#5e1322;--cream:#f6ecd8;--brass:#b08d4a;--ink:#1d3557;
--grain:repeating-linear-gradient(92deg,rgba(255,255,255,.025) 0 2px,transparent 2px 7px),repeating-linear-gradient(88deg,rgba(0,0,0,.06) 0 1px,transparent 1px 11px);
--hero-scrim:transparent;--endcap:linear-gradient(180deg,rgba(94,19,34,.06),rgba(251,246,234,.9))}
body{background:var(--bg);font-family:"Libre Baskerville",Georgia,serif;font-size:15px}
h1,h2,h3,.aisle b,.pdp-main h1,.hdr .brand{font-family:"Playfair Display",Georgia,serif;font-weight:700;letter-spacing:.005em;text-transform:none}
.eyebrow{font-family:"Libre Baskerville",Georgia,serif;font-style:italic;text-transform:none;letter-spacing:.02em;font-size:.95rem;font-weight:400}
.assoc-bar{background:var(--wood);color:#d9c9aa}.assoc-bar a,.assoc-bar .age{color:var(--cream);border-color:rgba(246,236,216,.35)}
.hdr.band{background:var(--grain),linear-gradient(180deg,#4a2d1d,#26160f);border-bottom:3px solid var(--brass)}
.hdr .brand,.hdr .homelink,.dept a{color:var(--cream)}.hdr .brand{font-size:1.4rem}
.brand .dot{background:var(--brass);box-shadow:none;border-radius:50%}
.brand em{color:var(--brass);border:none;padding:0 .2rem;font-family:"Libre Baskerville",Georgia,serif;font-style:italic;text-transform:none;letter-spacing:0;font-size:.85rem}
.dept a{font-family:"Libre Baskerville",Georgia,serif}.dept a:hover,.dept a[aria-current]{background:var(--burg);color:var(--cream);box-shadow:inset 0 -2px 0 var(--brass)}
.search input{background:var(--field);color:var(--text);border-color:var(--brass)}
.band{background:var(--grain),linear-gradient(135deg,#5e1322,#3a0b16);color:var(--cream)}
.hero{display:grid;grid-template-columns:1.2fr .8fr;align-items:center;gap:1rem;border:1px solid var(--brass);outline:1px solid var(--brass);outline-offset:4px;border-radius:4px}
.hero-in{background:none}.hero h1{font-size:clamp(2.3rem,5vw,3.6rem);color:var(--cream);font-style:italic}
.hero p,.dept-hero p{color:#efe2c8}.hero .eyebrow,.dept-hero .eyebrow{color:#d8b872}
.dept-hero h1{color:var(--cream)}
.hero .btn.ghost{color:var(--cream);border-color:rgba(246,236,216,.5)}
.hero-art{margin:1.2rem 1.4rem 1.2rem 0;position:relative}
.hero-art svg{width:100%;height:auto;display:block}
.shelf-head{border-bottom:1px solid var(--brass);box-shadow:0 3px 0 -2px var(--brass)}.shelf-head h2{color:var(--burg);font-style:italic}
/* card-catalog cards */
.pcard{background:#fffdf5;background-image:linear-gradient(transparent 0 30px,rgba(176,70,70,.35) 30px 31px,transparent 31px),repeating-linear-gradient(transparent 0 23px,rgba(29,53,87,.12) 23px 24px);border:1px solid #d9c9a6;border-radius:3px;box-shadow:0 2px 0 #e6d7b6,0 4px 0 #d9c9a6,0 8px 14px rgba(46,27,18,.12)}
.pcard:hover{border-color:var(--brass);transform:translateY(-2px)}
.ptile{position:relative;border-bottom:1px solid #d9c9a6}.ptile::after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;margin-left:-6px;border-radius:50%;background:var(--bg);border:1px solid #cdbb95}
.pbody h3{font-family:"Playfair Display",Georgia,serif;font-size:1.05rem}
.pbrand{font-family:"Courier Prime","Courier New",monospace;letter-spacing:.06em}
.callno{position:absolute;top:.45rem;left:.55rem;font:700 .72rem/1 "Courier Prime","Courier New",monospace;color:var(--cream);opacity:.85;letter-spacing:.05em}
.note{position:absolute;right:.4rem;bottom:-.9rem;z-index:2;background:#fff6a8;color:#1d3557;font-family:"Caveat",cursive;font-size:1.15rem;font-weight:700;padding:.1rem .55rem .15rem;transform:rotate(3deg);box-shadow:0 3px 6px rgba(0,0,0,.18)}
.chip{border-color:var(--line2);font-family:"Courier Prime","Courier New",monospace}
.btn{font-family:"Libre Baskerville",Georgia,serif}
.btn.buy{background:var(--burg);color:var(--cream);border:1px solid #3a0b16;box-shadow:inset 0 0 0 1px rgba(176,141,74,.5)}
.btn.buy:hover{background:#7a1a2e}
.btn.ghost{color:var(--text);border-color:var(--line2)}
.aisle{border:1px solid var(--brass)!important;border-radius:3px;box-shadow:0 6px 0 -2px var(--wood2)}.anum{background:var(--cream);color:var(--burg);font-family:"Courier Prime","Courier New",monospace}
.t-sex-ed{background:var(--grain),linear-gradient(135deg,#4a2d1d,#26160f)}.t-relationships{background:var(--grain),linear-gradient(135deg,#1d3557,#10213a)}.t-romance{background:var(--grain),linear-gradient(135deg,#6b1626,#3a0b16)}.t-steamy{background:var(--grain),linear-gradient(135deg,#3a0b16,#1a0509)}
.endcap{border:1px solid var(--brass)}
.side a[aria-current]{background:var(--panel2);border-left:3px solid var(--burg)}
.fchip.on{background:var(--burg)}
.disclosure strong{color:var(--burg)}
.ftr{background:var(--grain),var(--wood);color:#d9c9aa}.ftr a{color:var(--cream)}.band-thin{border-top:3px solid var(--brass)}
.ftr .wink{font-family:"Caveat",cursive;font-size:20px;color:#e9cf8f}
.xlink{display:flex;gap:1rem;align-items:center;justify-content:space-between;flex-wrap:wrap;margin:1.5rem 0;padding:1rem 1.2rem;background:var(--panel);border:1px dashed var(--brass);border-radius:3px}
.xlink p{margin:0}.xlink .hand{font-family:"Caveat",cursive;font-size:1.35rem;color:var(--ink)}
@media(max-width:760px){.hero{grid-template-columns:1fr}.hero-art{margin:0 1rem 1rem;max-width:320px}}
