/* Catalogue-specific layout; tokens, typography and site chrome are shared. */
[aria-current="page"] { color:var(--accent); }
#primary-nav [aria-current="page"] { text-decoration:underline; text-underline-offset:8px; text-decoration-thickness:1px; }
.sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0; }
.books-hero { padding-block:58px 64px; border-bottom:1px solid var(--line); }
.books-hero-content { display:grid; grid-template-columns:1.15fr 1fr; gap:8%; align-items:end; margin-top:24px; }
.books-hero h1 { font-size:clamp(58px,6vw,86px); }
.books-strapline { font:400 clamp(25px,2.6vw,36px)/1.3 var(--display); letter-spacing:-.025em; margin-top:23px; }
.books-hero-copy>p:first-child { color:var(--muted); font-size:14px; max-width:480px; }
.catalogue-tally { margin-top:25px; display:flex; gap:17px; font-size:10px; color:var(--accent); }
.catalogue-tally span { opacity:.5; }
.where-to-begin { border-bottom:1px solid var(--line); }
.begin-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:34px; }
.begin-story { display:grid; grid-template-columns:128px 1fr; align-items:start; gap:22px; }
.begin-cover { display:block; transition:transform .25s; }
.begin-cover:hover { transform:translateY(-5px); }
.begin-cover img { width:128px; aspect-ratio:5/8; object-fit:contain; box-shadow:0 12px 24px #0005; }
.begin-story .eyebrow { font-size:8px; }
.begin-story h3 { font-size:26px; margin:12px 0; }
.begin-theme { font-size:9px; color:var(--accent); margin-bottom:12px; }
.begin-hook { font-size:12px; color:var(--muted); }
.begin-story .text-link { margin-top:12px; }
.recommendation-future { display:block; font-size:9px; color:var(--muted); margin-top:3px; }
a.recommendation-future { min-height:44px; display:flex; align-items:center; }
.full-catalogue .section-heading { align-items:center; margin-bottom:18px; }
.book-filters { display:flex; gap:6px; flex-wrap:wrap; }
.book-filters button { min-height:48px; padding:10px 18px; border:1px solid transparent; background:transparent; font-size:12px; transition:background .2s,border-color .2s; }
.book-filters button[aria-pressed="true"] { border-color:#c7ae8455; color:var(--accent); background:#c7ae8409; }
.book-filters button:hover { background:var(--surface); }
.catalogue-status { color:var(--muted); font-size:12px; margin-bottom:48px; }
.catalogue-category-title { font-size:30px; margin-bottom:30px; }
.catalogue-category-title[data-catalogue-heading="standalone"] { margin-top:60px; }
.catalogue-group { display:grid; grid-template-columns:250px minmax(0,1fr); gap:60px; padding-block:36px 48px; border-top:1px solid var(--line); }
.catalogue-group-heading h3 { font-size:34px; margin:16px 0 20px; line-height:1.15; }
.catalogue-group-heading>p:last-child { max-width:250px; color:var(--muted); font-size:13px; }
.book-grid { list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); column-gap:34px; row-gap:44px; align-items:start; }
.book-card { min-width:0; scroll-margin-top:120px; }
.book-order { font-size:10px; color:var(--accent); letter-spacing:.12em; margin-bottom:14px; }
.book-frame { width:100%; max-width:210px; aspect-ratio:5/8; display:flex; align-items:center; justify-content:center; background:var(--surface); box-shadow:0 10px 20px #0004; }
.book-frame img { width:100%; height:100%; object-fit:contain; }
.book-copy { max-width:230px; }
.book-copy h4 { font:400 23px/1.2 var(--display); letter-spacing:-.025em; margin:20px 0 10px; }
.book-classification { font-size:10px; color:var(--accent); }
.book-teaser { font-size:12px; color:var(--muted); margin-top:8px; }
.book-future { display:flex; align-items:center; gap:16px; min-height:44px; font-size:11px; color:var(--muted); }
.book-future small { font-size:8px; opacity:.85; }
.book-card:target .book-frame { outline:1px solid var(--accent); outline-offset:7px; }
.book-card:target .book-copy h4 { color:var(--accent); }
@media(max-width:1100px) {
  .begin-grid { gap:24px; }
  .begin-story { grid-template-columns:96px 1fr; gap:18px; }
  .begin-cover img { width:96px; }
  .begin-story h3 { font-size:23px; }
  .catalogue-group { grid-template-columns:210px minmax(0,1fr); gap:36px; }
  .catalogue-group-heading h3 { font-size:29px; }
  .book-grid { gap:34px 24px; }
  .book-copy h4 { font-size:21px; }
}
@media(max-width:1023px) {
  .begin-grid { grid-template-columns:1fr; gap:30px; }
  .begin-story { grid-template-columns:100px 1fr; gap:26px; max-width:600px; padding-bottom:28px; border-bottom:1px solid var(--line); }
  .begin-story:last-child { border-bottom:0; padding-bottom:0; }
  .begin-cover img { width:100px; }
  .begin-story h3 { font-size:27px; }
  .catalogue-group { grid-template-columns:1fr; gap:30px; }
  .catalogue-group-heading>p:last-child { max-width:550px; }
  .catalogue-group-heading h3 { font-size:34px; }
}
@media(max-width:767px) {
  .books-hero { padding-block:42px 48px; }
  .books-hero-content { grid-template-columns:1fr; gap:28px; }
  .books-hero h1 { font-size:62px; }
  .books-strapline { font-size:28px; }
  .catalogue-tally { gap:12px; font-size:9px; }
  .full-catalogue .section-heading { align-items:start; flex-direction:column; gap:24px; }
  .book-filters { gap:4px; }
  .book-filters button { padding-inline:16px; }
  .catalogue-status { margin-bottom:32px; }
  .catalogue-category-title { font-size:27px; margin-bottom:24px; }
  .catalogue-category-title[data-catalogue-heading="standalone"] { margin-top:40px; }
  .catalogue-group { padding-block:28px 36px; }
  .catalogue-group-heading h3 { font-size:31px; max-width:320px; }
  .book-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:32px 22px; }
  .book-copy h4 { font-size:22px; }
  .book-classification { font-size:9px; }
  .book-future { flex-wrap:wrap; gap:8px; align-content:center; }
}
@media(max-width:374px) {
  .begin-story { grid-template-columns:82px 1fr; gap:20px; }
  .begin-cover img { width:82px; }
  .begin-story h3 { font-size:23px; }
  .begin-hook { font-size:11px; }
  .books-strapline { font-size:25px; }
  .catalogue-tally { gap:9px; font-size:8px; }
  .book-grid { grid-template-columns:1fr; gap:28px; }
  .book-card { display:grid; grid-template-columns:100px minmax(0,1fr); gap:0 20px; }
  .book-order { grid-column:1/-1; }
  .book-copy h4 { margin-top:0; font-size:23px; }
}
@media(prefers-reduced-motion:reduce) { .begin-cover:hover { transform:none; } }
