/* Kingswell Publishing — /books, /books/{slug}, /authors, /authors/{slug}
   Loaded on top of tokens.css + sections.css (colourways, .cv-rule reused). */

.cx,.ax,.bd,.ad{ padding-block:clamp(120px,15vh,180px) clamp(70px,10vw,130px); }

/* shared header */
.cx__head{ max-width:60ch;margin-bottom:clamp(32px,4vw,48px); }
.cx__title{ font-size:clamp(40px,7vw,84px);margin:.2em 0 .4em -.03em; }
.cx__lede{ color:rgba(7,33,31,.7);font-size:clamp(15px,1.1vw,17px); }
.cx__empty{ color:rgba(7,33,31,.55);padding:24px 0; }

/* covers: shared look for both colour-block and image */
.cv--1,.cv--2,.cv--3,.cv--4,.cv--5,.cv--6{ position:relative; }
.cxb__cover,.bd__cover,.ad__book-cover{
  display:flex;flex-direction:column;justify-content:space-between;
  aspect-ratio:2/3;overflow:hidden;padding:clamp(14px,1.6vw,24px);
  border-radius:2px;transition:transform .6s var(--ease-out-expo);
}
.cxb__cover.has-img,.bd__cover.has-img,.ad__book-cover.has-img{ padding:0; }
.cxb__cover.has-img img,.bd__cover.has-img img,.ad__book-cover.has-img img{
  width:100%;height:100%;object-fit:cover;
}
.cxb__ct{ font-family:Unbounded,serif;font-size:clamp(16px,1.5vw,24px);line-height:1.05;letter-spacing:-0.02em; }
.cxb__cs{ font-size:.62em;font-family:'Plus Jakarta Sans',sans-serif;letter-spacing:0; }
.cxb__cm{ font-size:11px;opacity:.66;letter-spacing:.02em; }

/* ---------- /books grid ---------- */
.cx__filter{
  display:flex;flex-wrap:wrap;gap:8px 20px;margin-bottom:clamp(32px,4vw,52px);
  font-family:Unbounded,serif;font-style:italic;font-size:15px;
}
.cx__filter a{ color:rgba(7,33,31,.55);padding-bottom:3px;border-bottom:1px solid transparent; }
.cx__filter a:hover{ color:var(--ink); }
.cx__filter a.is-active{ color:var(--ink);border-bottom-color:var(--gold); }

.cx__grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(22px,3vw,46px) clamp(18px,2.4vw,40px);
}
@media (max-width:900px){ .cx__grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .cx__grid{ grid-template-columns:1fr 1fr;gap:20px 14px; } }

.cxb{ display:flex;flex-direction:column;text-align:center; }
.cxb__cover:hover{ transform:translateY(-6px); }
.cxb__title{ font-family:Unbounded,serif;font-weight:400;font-size:16px;line-height:1.15;
  letter-spacing:-0.01em;margin-top:16px;text-transform:uppercase; }
.cxb__title a{ color:var(--ink); }
.cxb__status{ margin-top:10px;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--teal); }

/* ---------- /books/{slug} ---------- */
.bd__crumb{ margin-bottom:28px;font-size:13.5px; }
.bd__crumb a{ color:rgba(7,33,31,.6); }
.bd__grid{ display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:clamp(32px,6vw,80px);align-items:start; }
@media (max-width:900px){ .bd__grid{ grid-template-columns:1fr;} .bd__aside{ order:-1;max-width:280px; } }
.bd__title{ font-size:clamp(34px,5vw,64px);margin:.2em 0 0 -.03em; }
.bd__sub{ font-family:Unbounded,serif;font-style:italic;font-size:clamp(18px,2vw,26px);color:rgba(7,33,31,.6);margin-top:.2em; }
.bd__by{ margin-top:1em;font-size:15px;color:rgba(7,33,31,.7); }
.bd__by a{ color:var(--teal); }
.bd__genre{ margin-left:12px;padding-left:12px;border-left:1px solid var(--rule-dark);color:rgba(7,33,31,.5); }
.bd__body{ margin-top:1.6em;max-width:60ch; }
.bd__body p{ font-size:15.5px;line-height:1.7;color:rgba(7,33,31,.82); }

.bd__buy{ margin-top:2em; }
.bd__buy-h,.ad__buy-h{ font-family:Unbounded,serif;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  color:rgba(7,33,31,.5);margin-bottom:12px; }
.bd__buy ul,.ad__buy{ display:flex;flex-wrap:wrap;gap:10px; }
.bd__buy li a,.ad__buy li a{
  display:inline-block;padding:9px 18px;border:1px solid var(--rule-dark);border-radius:999px;
  font-size:13.5px;color:var(--ink);
}
.bd__buy li a:hover,.ad__buy li a:hover{ background:var(--ink);color:var(--paper);border-color:var(--ink); }
.bd__soon{ margin-top:2em;font-size:14px;color:rgba(7,33,31,.55); }

.bd__author{ margin-top:2.6em;padding-top:1.6em;border-top:1px solid var(--rule-dark); }
.bd__author h2{ font-family:Unbounded,serif;font-weight:400;font-size:20px;margin-bottom:.5em; }
.bd__author p{ font-size:14.5px;color:rgba(7,33,31,.72);max-width:56ch;margin-bottom:1em; }

.bd__more{ margin-top:24px; }
.bd__more-h{ font-family:Unbounded,serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:rgba(7,33,31,.5);margin-bottom:10px; }
.bd__more li{ display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--rule-dark);font-size:13.5px; }
.bd__more li span{ color:rgba(7,33,31,.45);white-space:nowrap; }

/* ---------- /authors ---------- */
.ax__list{ display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(20px,3vw,40px); }
@media (max-width:760px){ .ax__list{ grid-template-columns:1fr; } }
.axc{ padding-top:20px;border-top:1px solid var(--rule-dark); }
.axc__name{ font-family:Unbounded,serif;font-size:clamp(20px,2.4vw,30px);letter-spacing:-0.02em;color:var(--ink); }
.axc__bio{ margin-top:.6em;font-size:14.5px;color:rgba(7,33,31,.68);max-width:52ch; }
.axc__count{ margin-top:.6em;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:rgba(7,33,31,.42); }

/* ---------- /authors/{slug} ---------- */
.ad__peers{ display:flex;flex-wrap:wrap;gap:8px 18px;justify-content:center;margin-bottom:clamp(40px,6vw,80px);
  font-family:Unbounded,serif;font-style:italic;font-size:14px; }
.ad__peers a{ color:rgba(7,33,31,.5);padding-bottom:3px;border-bottom:1px solid transparent; }
.ad__peers a:hover{ color:var(--ink); }
.ad__peers a.is-active{ color:var(--ink);border-bottom-color:var(--gold); }

.ad__grid{ display:grid;grid-template-columns:300px minmax(0,1fr);gap:clamp(28px,5vw,64px);
  margin-bottom:clamp(48px,8vw,110px);align-items:start; }
.ad__grid--solo{ grid-template-columns:1fr;max-width:62ch; }
@media (max-width:820px){ .ad__grid{ grid-template-columns:1fr; } }
.ad__portrait figcaption{ margin-top:10px;font-size:12px;color:rgba(7,33,31,.5); }
.ad__portrait img{ border-radius:3px; }
.ad__eyebrow{ font-family:Unbounded,serif;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:rgba(7,33,31,.45); }
.ad__name{ font-family:Unbounded,serif;font-style:italic;font-weight:400;font-size:clamp(30px,4vw,52px);
  letter-spacing:-0.02em;margin:.15em 0 .4em; }
.ad__quote{ font-family:Unbounded,serif;font-style:italic;font-size:clamp(17px,1.8vw,22px);
  line-height:1.4;color:rgba(7,33,31,.72);max-width:40ch;margin-bottom:1em; }
.ad__bio{ font-size:15px;line-height:1.7;color:rgba(7,33,31,.8);max-width:60ch; }

.ad__book{ display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:clamp(28px,5vw,64px);
  align-items:start;padding-top:clamp(32px,4vw,52px);border-top:1px solid var(--rule-dark);
  margin-top:clamp(32px,4vw,52px);scroll-margin-top:96px; }
@media (max-width:760px){ .ad__book{ grid-template-columns:1fr;} .ad__book-cover{ order:-1;max-width:200px; } }
.ad__book-label{ font-family:Unbounded,serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:rgba(7,33,31,.45);margin-bottom:.6em; }
.ad__book-title{ font-family:Unbounded,serif;font-weight:400;font-size:clamp(22px,2.6vw,34px);line-height:1.1;letter-spacing:-0.02em; }
.ad__book-title a{ color:var(--ink); }
.ad__book-title span{ display:block;font-style:italic;font-size:.62em;color:rgba(7,33,31,.55);margin-top:.2em; }
.ad__book-desc{ margin:1em 0 1.4em;font-size:15px;line-height:1.7;color:rgba(7,33,31,.8);max-width:58ch; }
.ad__book-cover:hover{ transform:translateY(-6px); }
