/* ===========================================================
   Ketanomy — Current Affairs styles
   Loads AFTER pyq-styles.css and inherits its tokens.
   =========================================================== */

/* ---------- hub: month/updated stamp under the lede ---------- */
.ca-stamp{
  font-family:var(--display);font-size:13px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);margin-top:22px;display:inline-flex;
  align-items:center;gap:10px;
}
.ca-stamp::before{content:"";width:7px;height:7px;background:var(--brass);border-radius:50%}

/* ---------- hub grid: one tile per set of chapters ---------- */
.ca-grid{grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:14px}
.ca-grid .chap-link{align-items:flex-start;padding:20px 22px}
.ca-grid .chap-no{min-width:64px;font-size:16px;letter-spacing:.02em;padding-top:1px}
.ca-grid .chap-name{flex:1;font-family:var(--display);font-size:16px;font-weight:600;line-height:1.3}
.chap-sub{
  display:block;font-family:var(--serif);font-size:14px;font-weight:400;line-height:1.45;
  color:var(--ink-soft);margin-top:7px;
}
.chap-link.is-empty{opacity:.55}
.chap-link.is-empty:hover{border-color:var(--rule);transform:none;box-shadow:none}
.chap-link.is-empty .chap-no{color:var(--ink-soft)}
.chap-flag{
  font-family:var(--display);font-size:10px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--rule);
  padding:3px 7px;white-space:nowrap;margin-left:10px;
}

/* ---------- chapter page: which chapters this page covers ---------- */
.ca-covers{
  font-family:var(--serif);font-size:18px;color:var(--ink-soft);line-height:1.55;
  margin-top:14px;max-width:640px;
}

/* ---------- part divider (PART A / PART B inside one page) ---------- */
.ca-part{margin:46px 0 22px;border-bottom:2px solid var(--ink);padding-bottom:14px}
.ca-part:first-child{margin-top:0}
.ca-part-label{
  font-family:var(--display);font-size:12px;font-weight:700;letter-spacing:.18em;
  text-transform:uppercase;color:var(--brass-deep);display:block;margin-bottom:8px;
}
.ca-part h2{
  font-family:var(--display);font-weight:600;font-size:clamp(24px,3vw,32px);
  line-height:1.15;letter-spacing:-.01em;color:var(--ink);
}
.ca-toc-part{
  display:block;font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass-deep);margin:20px 0 8px;
}
.ca-toc-part:first-of-type{margin-top:4px}

/* lead block — content that sits before the first heading */
.ca-topic.ca-lead{border-left:3px solid var(--brass)}

/* ---------- chapter page: layout ---------- */
.ca-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:56px;align-items:start;margin-top:34px}
.ca-body{min-width:0}
.ca-toc{position:sticky;top:100px;max-height:calc(100vh - 130px);overflow-y:auto;padding-right:6px}
.ca-toc::-webkit-scrollbar{width:3px}
.ca-toc::-webkit-scrollbar-thumb{background:var(--rule)}
.ca-toc-label{
  font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.18em;
  text-transform:uppercase;color:var(--brass-deep);margin-bottom:16px;display:block;
}
.ca-toc a{
  display:block;font-family:var(--display);font-size:14px;font-weight:500;line-height:1.35;
  color:var(--ink);opacity:.7;text-decoration:none;padding:7px 0 7px 14px;
  border-left:2px solid var(--rule);transition:all .18s;
}
.ca-toc a:hover{opacity:1;border-left-color:var(--brass)}
.ca-toc a.active{opacity:1;border-left-color:var(--brass-deep);color:var(--brass-deep)}

/* ---------- topic block ---------- */
.ca-topic{
  background:#fff;border:1px solid var(--rule);padding:34px 36px;margin-bottom:24px;
  scroll-margin-top:100px;
}
.ca-topic-head{border-bottom:2px solid var(--ink);padding-bottom:14px;margin-bottom:22px}
.ca-topic-no{
  font-family:var(--display);font-weight:600;font-size:13px;letter-spacing:.14em;
  text-transform:uppercase;color:var(--brass-deep);display:block;margin-bottom:8px;
}
.ca-topic h2{
  font-family:var(--display);font-weight:600;font-size:27px;line-height:1.2;
  letter-spacing:-.01em;color:var(--ink);
}
.ca-topic h3{
  font-family:var(--display);font-weight:600;font-size:19px;color:var(--ink);
  margin:28px 0 10px;letter-spacing:-.005em;
}
.ca-topic h3:first-child{margin-top:0}
.ca-topic p{font-family:var(--serif);font-size:18px;line-height:1.65;color:var(--ink-2);margin-bottom:14px}
.ca-topic p:last-child{margin-bottom:0}
.ca-topic strong{color:var(--ink);font-weight:600}

/* lists */
.ca-topic ul,.ca-topic ol{margin:0 0 16px 0;padding-left:0;list-style:none}
.ca-topic ol{counter-reset:ca-ol}
.ca-topic li{
  font-family:var(--serif);font-size:18px;line-height:1.6;color:var(--ink-2);
  padding-left:26px;position:relative;margin-bottom:9px;
}
.ca-topic ul>li::before{
  content:"";position:absolute;left:4px;top:.72em;width:7px;height:1px;background:var(--brass-deep);
}
.ca-topic ol>li{counter-increment:ca-ol}
.ca-topic ol>li::before{
  content:counter(ca-ol)".";position:absolute;left:0;top:0;
  font-family:var(--display);font-size:14px;font-weight:600;color:var(--brass-deep);line-height:1.85;
}
.ca-topic li ul{margin:9px 0 0}

/* ---------- tables ---------- */
.ca-table-wrap{
  overflow-x:auto;margin:18px 0 20px;-webkit-overflow-scrolling:touch;
  /* shadow on the right edge while there is more table to scroll to */
  background:
    linear-gradient(to right,#fff 30%,rgba(255,255,255,0)) left center,
    linear-gradient(to right,rgba(255,255,255,0),#fff 70%) right center,
    radial-gradient(farthest-side at 0 50%,rgba(26,26,26,.14),transparent) left center,
    radial-gradient(farthest-side at 100% 50%,rgba(26,26,26,.14),transparent) right center;
  background-repeat:no-repeat;background-size:36px 100%,36px 100%,12px 100%,12px 100%;
  background-attachment:local,local,scroll,scroll;
}
.ca-table{width:100%;border-collapse:collapse;font-family:var(--display);font-size:15px;min-width:460px}
.ca-table caption{
  caption-side:top;text-align:left;font-family:var(--display);font-size:12px;font-weight:600;
  letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);padding-bottom:10px;
}
.ca-table th,.ca-table td{
  border:1px solid var(--rule);padding:11px 14px;text-align:left;vertical-align:top;line-height:1.5;
}
.ca-table th{background:var(--paper-2);font-weight:600;color:var(--ink);line-height:1.35}
.ca-table td.num,.ca-table th.num{white-space:nowrap}
.ca-table .nw{white-space:nowrap}
.ca-table td{color:var(--ink-2)}
.ca-table tbody tr:nth-child(even) td{background:rgba(243,240,231,.42)}
.ca-table td.num,.ca-table th.num{text-align:right;font-variant-numeric:tabular-nums}

/* ---------- callouts ---------- */
.ca-callout{
  border-left:3px solid var(--brass);background:var(--paper);padding:18px 22px;margin:20px 0;
}
.ca-callout .ca-callout-label{
  font-family:var(--display);font-size:11px;font-weight:700;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass-deep);display:block;margin-bottom:8px;
}
.ca-callout p,.ca-callout li{font-size:17px;margin-bottom:8px}
.ca-callout p:last-child,.ca-callout li:last-child{margin-bottom:0}
.ca-callout.exam{border-left-color:var(--teal)}
.ca-callout.exam .ca-callout-label{color:var(--teal)}
.ca-callout.data{border-left-color:#2f6b4f}
.ca-callout.data .ca-callout-label{color:#2f6b4f}

/* key figure strip */
.ca-figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin:22px 0}
.ca-fig{padding:20px 22px;border-right:1px solid var(--rule)}
.ca-fig:last-child{border-right:none}
.ca-fig .fig-num{font-family:var(--display);font-weight:600;font-size:30px;line-height:1;color:var(--ink);letter-spacing:-.01em}
.ca-fig .fig-num em{font-style:normal;font-size:17px;color:var(--brass-deep);vertical-align:super}
.ca-fig .fig-lbl{font-family:var(--serif);font-size:15px;color:var(--ink-soft);margin-top:9px;line-height:1.4}

/* footnote under a table */
.ca-src.ca-note{font-family:var(--serif);font-size:15px;font-style:italic;margin-top:8px}

/* source line */
.ca-src{
  font-family:var(--display);font-size:12px;font-weight:500;letter-spacing:.04em;
  color:var(--ink-soft);margin:-8px 0 22px;display:block;
}
.ca-src + p,.ca-src + h3{margin-top:0}
.ca-src a{color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px}
.ca-src a:hover{color:var(--brass-deep)}

/* tag row */
.ca-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.ca-tag{
  font-family:var(--display);font-size:11px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-soft);background:var(--paper-2);border:1px solid var(--rule);padding:5px 10px;
}

/* empty / coming soon */
.ca-empty{
  background:var(--paper-2);border:1px dashed var(--brass);padding:40px 32px;text-align:center;
  margin-top:34px;
}
.ca-empty h2{font-family:var(--display);font-weight:600;font-size:24px;color:var(--ink);margin-bottom:10px}
.ca-empty p{font-family:var(--serif);font-size:18px;color:var(--ink-soft);max-width:520px;margin:0 auto}

/* print — students revise on paper */
@media print{
  nav,footer,.ca-toc,.chap-pager,.back-link{display:none!important}
  body{background:#fff;font-size:12pt}
  .ca-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .ca-topic{border:none;padding:0;margin-bottom:26px;page-break-inside:avoid}
}

@media(max-width:980px){
  .ca-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .ca-toc{display:none}
}
@media(max-width:640px){
  .ca-topic{padding:24px 20px}
  .ca-topic h2{font-size:23px}
  .ca-topic p,.ca-topic li{font-size:17px}
  .ca-figs{grid-template-columns:1fr 1fr}
  .ca-fig{border-bottom:1px solid var(--rule)}
}
