/* Casewell — brand book edition 1, August 2026 */

:root{
  --ink:#1B1D23;
  --paper:#F7F5F0;
  --mulberry:#5C2E4E;
  --mulberry-lt:#B589A6;
  --grey60:#6B6E76;
  --grey30:#C9C6BE;
  --grey15:#EAE7E0;
  --white:#FFFFFF;

  --d1:#1B1D23; --d2:#2A4E6E; --d3:#A8551F;
  --d4:#6E8CA8; --d5:#D9963F; --d6:#BFC6CE;

  --s1:4px; --s2:8px; --s3:16px; --s4:24px;
  --s5:32px; --s6:64px; --s7:128px;

  --serif:'Newsreader',Georgia,serif;
  --sans:'Archivo',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,monospace;
}

*,*::before,*::after{box-sizing:border-box}

html{-webkit-text-size-adjust:100%}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:18px;
  font-weight:400;
  line-height:1.65;
  font-variant-numeric:tabular-nums;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:1200px;margin:0 auto;padding:0 var(--s5)}
@media(min-width:960px){.wrap{padding:0 var(--s6)}}

/* text runs 7 of 12 columns */
.measure{max-width:68ch}

/* ---------- type ---------- */
.display,h1{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(38px,7vw,72px);
  line-height:1.0;
  letter-spacing:-0.02em;
  margin:0 0 var(--s4);
}
h2{
  font-family:var(--serif);
  font-weight:300;
  font-size:clamp(30px,4.5vw,48px);
  line-height:1.08;
  letter-spacing:-0.02em;
  margin:0 0 var(--s4);
}
h3{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(24px,3vw,32px);
  line-height:1.15;
  margin:0 0 var(--s3);
}
.eyebrow{
  font-family:var(--sans);
  font-weight:600;
  font-size:20px;
  line-height:1.3;
  letter-spacing:0.02em;
  margin:0 0 var(--s3);
}
.lead{font-size:clamp(20px,2.4vw,24px);line-height:1.5;font-weight:400}
p{margin:0 0 var(--s4)}
small,.small{font-size:15px;line-height:1.5}
.label{
  font-family:var(--mono);
  font-size:14px;
  font-weight:400;
  line-height:1.45;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--grey60);
  margin:0 0 var(--s3);
  display:block;
}
.data{font-weight:500;line-height:1.4;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none;border-bottom:1px solid var(--grey30);transition:border-color .15s}
a:hover{border-bottom-color:var(--mulberry)}

/* ---------- margin mark ---------- */
.mark{
  display:inline-block;
  width:0.16em;height:1em;
  background:var(--mulberry);
  border-radius:0;
  vertical-align:-0.08em;
}
.flag{
  border-left:3px solid var(--mulberry);
  padding-left:var(--s4);
}

/* ---------- header ---------- */
header.site{
  border-bottom:1px solid var(--grey30);
  padding:var(--s4) 0;
  margin-bottom:var(--s6);
}
header.site .wrap{display:flex;align-items:baseline;gap:var(--s5);flex-wrap:wrap}
.wordmark{
  font-family:var(--serif);
  font-weight:300;
  font-size:30px;
  letter-spacing:-0.02em;
  border:0;
  display:inline-flex;
  align-items:baseline;
  gap:0.32em;
}
.wordmark .mark{height:0.62em}
nav{margin-left:auto;display:flex;gap:var(--s4);flex-wrap:wrap}
nav a{
  font-family:var(--mono);
  font-size:14px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--grey60);
  border:0;
  padding-bottom:2px;
  border-bottom:1px solid transparent;
}
nav a:hover,nav a[aria-current]{color:var(--ink);border-bottom-color:var(--mulberry)}

/* ---------- sections ---------- */
section{margin-bottom:var(--s7)}
.rule{border:0;border-top:1px solid var(--grey30);margin:var(--s6) 0}

.ink{
  background:var(--ink);
  color:var(--paper);
  padding:var(--s6) 0;
  margin-bottom:var(--s7);
}
.ink .label{color:var(--grey30)}
.ink a{border-bottom-color:var(--grey60)}

/* ---------- numbered list, margin-mark numbering ---------- */
ol.marks{list-style:none;margin:0;padding:0;counter-reset:m}
ol.marks li{
  counter-increment:m;
  display:grid;
  grid-template-columns:auto 1fr;
  gap:var(--s4);
  padding:var(--s4) 0;
  border-top:1px solid var(--grey30);
}
ol.marks li::before{
  content:counter(m,decimal-leading-zero);
  font-family:var(--mono);
  font-size:14px;
  letter-spacing:0.1em;
  color:var(--mulberry);
  padding-top:6px;
}
ol.marks h3{margin-bottom:var(--s2)}
ol.marks p{margin:0;max-width:60ch}

/* ---------- tables ---------- */
table{width:100%;border-collapse:collapse;margin:0 0 var(--s4);font-size:16px}
caption{text-align:left;font-family:var(--mono);font-size:14px;letter-spacing:0.1em;text-transform:uppercase;color:var(--grey60);padding-bottom:var(--s3)}
th{
  text-align:left;
  font-family:var(--mono);
  font-size:13px;
  font-weight:400;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--grey60);
  padding:0 var(--s3) var(--s2) 0;
  border-bottom:2px solid var(--ink);
  white-space:nowrap;
}
td{padding:var(--s3) var(--s3) var(--s3) 0;vertical-align:top;border:0}
tbody tr:nth-child(even){background:var(--grey15)}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;padding-right:0}
td.name{font-weight:500}
td .note{display:block;color:var(--grey60);font-size:15px;line-height:1.45;margin-top:2px}
.table-scroll{overflow-x:auto}

/* ---------- chart ---------- */
.figure{margin:0}
.figcap{font-family:var(--mono);font-size:14px;letter-spacing:0.1em;text-transform:uppercase;color:var(--grey60);margin-bottom:var(--s4)}
.figcap b{font-family:var(--sans);font-weight:500;letter-spacing:0;text-transform:none;font-size:16px;color:var(--paper)}
.chart{display:flex;align-items:flex-end;gap:calc(var(--s4));height:220px;border-bottom:1px solid var(--grey60);padding:0}
.bar{flex:1;display:flex;flex-direction:column;justify-content:flex-end;height:100%}
.bar i{display:block;background:var(--d6);width:100%}
.bar.mark-bar i{background:var(--mulberry-lt)}
.bar span{
  font-family:var(--mono);font-size:13px;letter-spacing:0.06em;
  color:var(--grey30);padding-top:var(--s2);
}
.bar em{font-style:normal;font-size:15px;font-weight:500;padding-bottom:var(--s2);color:var(--paper)}
.srcline{
  font-family:var(--mono);font-size:13px;letter-spacing:0.06em;
  color:var(--grey60);border-top:1px solid var(--grey60);
  padding-top:var(--s2);margin-top:var(--s4);
}

/* ---------- footer ---------- */
footer.site{
  border-top:1px solid var(--grey30);
  padding:var(--s5) 0 var(--s6);
  color:var(--grey60);
  font-size:15px;
}
footer.site .wrap{display:flex;gap:var(--s4);flex-wrap:wrap;align-items:baseline}
footer.site nav{margin-left:auto}

.empty{
  border:1px solid var(--grey30);
  padding:var(--s6) var(--s5);
  text-align:center;
}

/* ---------- contact form ---------- */
form.contact{max-width:36rem;margin:0 0 var(--s5)}
form.contact p{margin:0 0 var(--s4)}
form.contact label{
  display:block;
  font-family:var(--mono);
  font-size:13px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--grey60);
  margin-bottom:var(--s2);
}
form.contact input,
form.contact textarea{
  width:100%;
  font-family:var(--sans);
  font-size:18px;
  line-height:1.5;
  color:var(--ink);
  background:var(--white);
  border:1px solid var(--grey30);
  border-radius:0;
  padding:var(--s3);
  -webkit-appearance:none;
}
form.contact input:focus,
form.contact textarea:focus{
  outline:0;
  border-color:var(--mulberry);
  box-shadow:inset 0 0 0 1px var(--mulberry);
}
form.contact textarea{min-height:9rem;resize:vertical}
form.contact button{
  font-family:var(--mono);
  font-size:14px;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--paper);
  background:var(--ink);
  border:0;
  border-radius:0;
  padding:var(--s3) var(--s5);
  cursor:pointer;
}
form.contact button:hover{background:var(--mulberry)}
.hp{position:absolute;left:-9999px}

/* ---------- report pages ---------- */
.rpt-head{
  border-bottom:2px solid var(--ink);
  padding-bottom:var(--s3);
  margin-bottom:var(--s5);
  display:flex;flex-wrap:wrap;gap:var(--s4);align-items:baseline;
  font-family:var(--mono);font-size:13px;letter-spacing:0.1em;text-transform:uppercase;color:var(--grey60);
}
.rpt-head .no{color:var(--ink)}
.rpt-head .right{margin-left:auto}
.secnum{
  font-family:var(--mono);font-size:14px;letter-spacing:0.1em;
  color:var(--mulberry);display:block;margin-bottom:var(--s2);
}
ol.bottomlines{list-style:none;margin:0 0 var(--s5);padding:0;counter-reset:b}
ol.bottomlines li{
  counter-increment:b;display:grid;grid-template-columns:auto 1fr;gap:var(--s4);
  padding:var(--s4) 0;border-top:1px solid var(--grey30);
}
ol.bottomlines li:last-child{border-bottom:1px solid var(--grey30)}
ol.bottomlines li::before{
  content:counter(b,decimal-leading-zero);
  font-family:var(--mono);font-size:14px;letter-spacing:0.1em;color:var(--mulberry);padding-top:5px;
}
ol.bottomlines b{font-family:var(--serif);font-weight:400;font-size:22px;line-height:1.25;display:block;margin-bottom:var(--s2)}
ol.bottomlines p{margin:0;max-width:62ch}
.srckey{font-family:var(--mono);font-size:12px;color:var(--mulberry);vertical-align:super}
table.actions td:first-child{width:46%}
table.sources td{font-size:15px;line-height:1.45}
table.sources td:first-child{font-family:var(--mono);font-size:12px;color:var(--mulberry);white-space:nowrap}
.verifybox{
  border:1px solid var(--mulberry);padding:var(--s4);margin:var(--s5) 0;
  font-size:15px;line-height:1.5;max-width:62ch;
}
.verifybox b{font-family:var(--mono);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:var(--mulberry);display:block;margin-bottom:var(--s2)}
.chart.light{border-bottom-color:var(--grey60)}
.chart.light .bar i{background:var(--d4)}
.chart.light .bar.mark-bar i{background:var(--mulberry)}
.chart.light .bar span{color:var(--grey60)}
.chart.light .bar em{color:var(--ink)}
.figcap.light b{color:var(--ink)}
