/* BluPrint Capital, coverage grid ---------------------------------------
   The one data component that outlived main.css. Every selector is scoped
   to .cov*, so nothing here can collide with site.css. Loaded only by
   research.html.
   --------------------------------------------------------------------- */
:root{--paper:#FFFFFF;--line:rgba(10,13,17,.13);--ink-1:#FAFAF8;--blue:#20A2CE;
  --mono:'Inter',ui-monospace,SFMono-Regular,Menlo,monospace;
  --ease-out:cubic-bezier(.22,.61,.36,1);}

.cov{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}
.cov-cell{background:var(--paper);padding:20px;position:relative;transition:background .4s var(--ease);overflow:hidden}
.cov-cell::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--c,var(--blue));transform:scaleY(0);transform-origin:bottom;transition:transform .45s var(--ease-out)}
.cov-cell:hover{background:var(--ink-1)}
.cov-cell:hover::before{transform:scaleY(1)}
.cov-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.cov-name{font-family:var(--display);font-size:19px;line-height:1.15}
.cov-tkr{font-family:var(--mono);font-size:9.5px;letter-spacing:.12em;color:var(--fg-3);white-space:nowrap}
.cov-cell p{font-size:12.5px;line-height:1.6;color:var(--fg-3);min-height:60px}
.cov-ex{margin-top:12px;font-family:var(--mono);font-size:9px;letter-spacing:.16em;color:var(--fg-3);border:1px solid var(--line);display:inline-block;padding:3px 7px;border-radius:2px}
.cov-cell{display:flex;flex-direction:column;gap:0}
.cov-logo{height:34px;width:auto;max-width:132px;object-fit:contain;object-position:left center;margin-bottom:16px;
  filter:grayscale(1) contrast(.9);opacity:.78;transition:filter .4s var(--ease),opacity .4s}
.cov-cell:hover .cov-logo{filter:none;opacity:1}
.cov-mono{height:34px;width:34px;border-radius:var(--r);display:flex;align-items:center;justify-content:center;
  margin-bottom:16px;background:var(--c,var(--navy));color:#fff;font-family:var(--display);font-weight:800;font-size:13px;letter-spacing:-.02em}
.cov-ex{color:var(--fg-2);border-color:var(--line-2)}
.cov-tkr{color:var(--fg-2);font-weight:500}
.cov-cell::before{width:4px}
.cov-rows{border:1px solid var(--line);border-radius:2px;overflow:hidden;background:var(--paper)}
.cov-row{display:grid;grid-template-columns:186px minmax(0,1fr);border-bottom:1px solid var(--line)}
.cov-row:last-child{border-bottom:none}
.cov-band{background:var(--c);color:#fff;padding:20px 20px;display:flex;flex-direction:column;
  justify-content:center;gap:3px;position:relative}
.cov-band-idx{font-family:var(--label);font-size:var(--lab-sm);letter-spacing:var(--ls);
  font-weight:500;color:rgba(255,255,255,.62)}
.cov-band-name{font-family:var(--display);font-weight:700;font-size:19px;letter-spacing:-.02em;line-height:1.1}
.cov-band-sub{font-size:11.5px;line-height:1.45;color:rgba(255,255,255,.78)}
.cov-band-n{margin-top:8px;font-family:var(--label);font-size:9.5px;letter-spacing:var(--ls);
  text-transform:uppercase;font-weight:500;color:rgba(255,255,255,.6)}
.cov-cells{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(158px,1fr);
  gap:1px;background:var(--line);overflow-x:auto;scrollbar-width:thin}
.cov-cells .cov-cell{background:var(--paper);padding:16px 15px;display:flex;flex-direction:column;min-width:0}
.cov-cells .cov-cell::before{display:none}
.cov-cell .cov-logo{height:26px;max-width:96px;margin-bottom:12px}
.cov-cell .cov-mono{height:26px;width:26px;font-size:11px;margin-bottom:12px;background:var(--c)}
.cov-top{display:block;margin-bottom:4px}
.cov-name{font-size:14.5px;line-height:1.2;display:block}
.cov-tkr{display:block;margin-bottom:9px}
.cov-cells .cov-cell p{font-size:11.5px;line-height:1.55;color:var(--fg-3);min-height:0}
.cov-cells::-webkit-scrollbar{height:6px}
.cov-cells::-webkit-scrollbar-thumb{background:var(--line-2);border:0;border-radius:99px}
.cov-cell .cov-mono{background:var(--ink-2);color:var(--fg-3);border:1px solid var(--line);
  transition:background .4s var(--ease),color .4s var(--ease),border-color .4s}
.cov-cell:hover .cov-mono{background:var(--c);color:#fff;border-color:var(--c)}
.cov-cell .cov-logo{height:20px;max-width:66px;margin-bottom:12px}
.cov-cell .cov-mono{height:20px;width:20px;font-size:9px;margin-bottom:12px}
.cov-cell .cov-logo{height:24px;max-width:150px}
.cov-logo{height:34px;max-width:none;object-position:left center;margin-bottom:14px}
.cov-logo{height:42px;max-width:78%;margin-bottom:16px}
.cov-cell .cov-logo{height:40px;max-width:100%;margin-bottom:16px;object-position:left center}


/* ══════════════════════════════════════════════════════════════════════════
   THE VERTICAL PALETTE

   Five institutional colours, one per bucket. Earlier attempts stepped a
   single hue, which is why they kept reading as shades of blue however the
   steps were spaced. Two BluPrint blues cannot both be buckets either: at
   201 and 200 degrees they are the same colour to a reader, and the darker
   one only reached 2.7:1 on the band it has to sit on.

   So the two brand blues anchor the furniture, black for the band and the
   BluPrint blue for the first bucket, and the rest are institutional mint,
   indigo, red and yellow.

   Validated: every pair at least 25 degrees apart in hue, and each one
   clears WCAG AA for all text sizes on the ink band, 5.3:1 to 9.8:1.
   ═════════════════════════════════════════════════════════════════════════ */
:root{
  --s1:#2E9BD4;   /* Design it      BluPrint blue        */
  --s2:#3BA07C;   /* Build it       institutional mint   */
  --s3:#8A7BD8;   /* Equip it       institutional indigo */
  --s4:#D4635C;   /* Maintain it    institutional red    */
  --s5:#E0B23F;   /* Clean it up    institutional yellow */
}

/* .cov-row sets display:grid, which beats the [hidden] attribute's
   display:none from the UA sheet, so filtering did nothing at all. */
.cov-row[hidden]{display:none}

.cov-band{position:relative;background:#0F151B;color:#fff;
  padding:clamp(22px,2.4vw,30px) clamp(20px,2.2vw,28px)}
.cov-band::before{content:'';position:absolute;left:0;top:0;bottom:0;width:5px;
  background:var(--c,var(--s1))}
.cov-band-idx{color:var(--c,var(--s1))}
.cov-band-sub{color:rgba(255,255,255,.66)}
.cov-band-n{color:rgba(255,255,255,.44)}

/* the company marker picks up its own vertical */
.cov-cell::before{background:var(--c,var(--s1))}
.cov-cell .cov-mono{background:var(--c,var(--s1));color:#0A0D11;font-weight:800}
.cov-cell:hover .cov-mono{background:var(--c,var(--s1));border-color:var(--c,var(--s1))}

/* ---- room to breathe --------------------------------------------------- */
.cov-rows{margin-top:clamp(28px,3.4vw,48px)}
.cov-cells .cov-cell{padding:clamp(22px,2.3vw,30px) clamp(18px,1.9vw,24px)}
.cov-cell .cov-logo{height:30px;max-width:104px;margin-bottom:clamp(18px,2vw,24px)}
.cov-name{font-size:15px;line-height:1.25}
.cov-tkr{display:block;margin-top:7px;margin-bottom:clamp(12px,1.4vw,16px)}
.cov-cells .cov-cell p{font-size:12px;line-height:1.62}
.cov-band-name{margin-top:4px}
.cov-band-sub{margin-top:7px}
.cov-band-n{margin-top:clamp(12px,1.6vw,18px)}

/* the filter swatch carries the colour of the band it selects */
.fbtn i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:9px;
  vertical-align:-1px}
.filters{gap:9px}
