/* Industries hub · regulation map — a tinted heat map of every industry, sector by sector (one row group each), across
   the areas of regulation. Each cell: the tint and three pips say how heavily that area shapes the work, the figure how
   many rules are mapped (a link into that industry's rulebook); "B" where no industry rule exists but the baseline
   covers the area. A sector switch (JS) narrows the map. Then the instruments that cross industries.
   On phones each row is the industry's name over its seven cells (all seven always in view, 44 px tall), and each sector
   repeats the columns' short names (hub copy areas › abbr) over its rows.
   core.css tokens only · no gradients except mask fades · no !important. */
.ind-rb__map{margin:0}
.ind-rb__switch{position:relative;display:flex;align-items:center;gap:10px 16px;margin-bottom:18px}
.ind-rb__switch[hidden]{display:none}
.ind-rb__swl{flex:none;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.ind-rb__sws{position:relative;display:flex;flex-wrap:wrap;gap:6px}
.ind-rb__sw{display:inline-flex;align-items:center;gap:8px;min-height:36px;padding:0 12px;border:1px solid var(--line-3);border-radius:var(--r-pill);background:var(--paper);
  font-family:var(--f-b);font-size:var(--t-xs);font-weight:500;color:var(--ink);cursor:pointer;transition:border-color var(--d1) var(--e-io),background var(--d1) var(--e-io),color var(--d1) var(--e-io)}
.ind-rb__sw:hover{border-color:var(--ink)}
.ind-rb__sw[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--on-ink)}
.ind-rb__sw:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.ind-rb__swc{font-family:var(--f);font-size:var(--t-lbl);color:var(--muted)}
.ind-rb__sw[aria-pressed="true"] .ind-rb__swc{color:var(--on-ink-2)}

.ind-rb__scroll{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--paper)}
.ind-rb__t{width:100%;min-width:1000px;border-collapse:separate;border-spacing:0;table-layout:fixed}
.ind-rb__t th,.ind-rb__t td{text-align:left;vertical-align:middle}
.ind-rb__t tbody[hidden]{display:none}
.ind-rb__corner,.ind-rb__t tbody th[scope="row"]{position:sticky;left:0;z-index:2;width:232px;background:var(--paper);border-right:1px solid var(--line-2)}
.ind-rb__corner{padding:18px 18px 14px;vertical-align:bottom;border-bottom:1px solid var(--ink);font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--faint)}
.ind-rb__t thead th{position:relative;padding:18px 12px 14px;vertical-align:bottom;border-bottom:1px solid var(--ink)}
.ind-rb__ah{display:block;font-size:var(--t-xs);font-weight:500;line-height:1.3;color:var(--ink)}
.ind-rb__as{display:none}
.ind-rb__eg{display:block;margin-top:4px;font-family:var(--f);font-size:var(--t-lbl);line-height:1.4;color:var(--faint)}
.ind-rb__t thead th.is-col .ind-rb__ah{text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:4px}

/* a sector's row group: its name over its rows */
.ind-rb__gr th{position:sticky;left:0;padding:22px 18px 8px;border-bottom:1px solid var(--line-3);background:var(--paper)}
.ind-rb__t tbody:first-of-type .ind-rb__gr th{padding-top:16px}
.ind-rb__gn{font-family:var(--f-h);font-size:1.06rem;font-weight:500;letter-spacing:-.01em;color:var(--ink)}
.ind-rb__gc{margin-left:12px;font-family:var(--f);font-size:var(--t-lbl);font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--faint)}
.ind-rb__gk{display:none}   /* phones only: the columns' short names over each sector's rows */
.ind-rb__t tbody th[scope="row"]{padding:0 16px;border-bottom:1px solid var(--line-2)}
.ind-rb__t tbody tr:last-child>*{border-bottom:0}
.ind-rb__sec{display:flex;align-items:center;gap:8px;min-height:50px;font-size:var(--t-sm);font-weight:500;line-height:1.3;color:var(--ink)}
.ind-rb__sec:hover,.ind-rb__t tbody th.is-row .ind-rb__sec{text-decoration:underline;text-decoration-color:var(--blue);text-underline-offset:4px}
.ind-rb__fl{display:inline-grid;place-items:center;flex:none;width:18px;height:18px;border-radius:var(--r-xs);background:var(--blue-wash);
  font-family:var(--f);font-size:var(--t-lbl);font-weight:500;color:var(--blue-d);text-decoration:none}
.ind-rb__t td{position:relative;padding:4px 5px;border-bottom:1px solid var(--line-2)}

/* the cell: tint + three pips (one box-shadowed dot, so no extra markup) + the count */
.ind-rb__cell{--p1:var(--paper);--p2:var(--paper);--p3:var(--paper);--pr:inset 0 0 0 1px var(--line-3);
  position:relative;display:flex;align-items:center;justify-content:flex-end;min-height:42px;padding:0 12px 0 40px;border-radius:var(--r-sm);
  font-family:var(--f);font-size:var(--t-xs);color:var(--ink);transition:box-shadow var(--d1) var(--e-io)}
.ind-rb__cell::before{content:"";position:absolute;left:12px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--p1);box-shadow:var(--pr),9px 0 0 var(--p2),18px 0 0 var(--p3)}
.ind-rb__t td.lv-1 .ind-rb__cell{background:var(--paper-2);--p1:var(--ink);--pr:0 0 0 0 transparent;--p2:var(--line-3);--p3:var(--line-3)}
.ind-rb__t td.lv-2 .ind-rb__cell{background:var(--paper-3);--p1:var(--ink);--p2:var(--ink);--p3:var(--line-3);--pr:0 0 0 0 transparent}
.ind-rb__t td.lv-3 .ind-rb__cell{background:var(--blue-wash);--p1:var(--blue);--p2:var(--blue);--p3:var(--blue);--pr:0 0 0 0 transparent}
.ind-rb__t td.lv-0 .ind-rb__cell{--p1:var(--line-2);--p2:var(--line-2);--p3:var(--line-2);--pr:0 0 0 0 transparent}
.ind-rb__cell{font-weight:500;font-variant-numeric:tabular-nums}
a.ind-rb__cell{text-decoration:underline;text-decoration-color:var(--line-3);text-underline-offset:4px}
a.ind-rb__cell:hover,a.ind-rb__cell:focus-visible{box-shadow:inset 0 0 0 1px var(--ink)}
a.ind-rb__cell:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
a.ind-rb__cell.is-base{box-shadow:inset 0 0 0 1px var(--line-3)}
a.ind-rb__cell.is-base{text-decoration:none;font-size:var(--t-lbl);letter-spacing:.06em;color:var(--txt)}
.ind-rb__cell.is-none{font-weight:400;color:var(--ghost)}

.ind-rb__key{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:18px;font-size:var(--t-xs);color:var(--muted)}
.ind-rb__kk{display:inline-flex;align-items:center;gap:8px;color:var(--txt)}
.ind-rb__kc{--p1:var(--paper);--p2:var(--paper);--p3:var(--paper);position:relative;display:inline-block;width:26px;height:6px}
.ind-rb__kc::before{content:"";position:absolute;left:0;top:0;width:6px;height:6px;border-radius:50%;background:var(--p1);box-shadow:9px 0 0 var(--p2),18px 0 0 var(--p3)}
.ind-rb__kc.lv-1{--p1:var(--ink);--p2:var(--line-3);--p3:var(--line-3)}
.ind-rb__kc.lv-2{--p1:var(--ink);--p2:var(--ink);--p3:var(--line-3)}
.ind-rb__kc.lv-3{--p1:var(--blue);--p2:var(--blue);--p3:var(--blue)}
.ind-rb__kn2,.ind-rb__kb{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 5px;border-radius:var(--r-xs);box-shadow:inset 0 0 0 1px var(--line-3);
  font-family:var(--f);font-size:var(--t-lbl);font-weight:500;color:var(--ink)}
.ind-rb__kl{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line-3);text-underline-offset:3px}
.ind-rb__kl:hover{text-decoration-color:var(--blue)}
.ind-rb__kn{flex-basis:100%;max-width:90ch;line-height:1.55}

/* ---------- instruments that cross industries ---------- */
.ind-rb__cross{margin-top:clamp(56px,7vw,96px)}
.ind-rb__xh{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px 24px;margin-bottom:22px;padding-bottom:16px;border-bottom:1px solid var(--ink)}
.ind-rb__h{font-family:var(--f-h);font-size:var(--t-h3);font-weight:500;line-height:1.2;letter-spacing:-.015em;color:var(--ink)}
.ind-rb__xl{font-size:var(--t-sm);color:var(--muted);max-width:60ch}
.ind-rb__fams{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--bdh-gap)}
.ind-fam{display:flex;flex-direction:column;gap:10px;min-width:0;padding:22px 22px 20px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--paper)}
.ind-fam.is-all{border-color:var(--blue-line);background:var(--blue-wash)}
.ind-fam.is-all :is(.ind-fam__count,.ind-fam__by){color:var(--txt)}
.ind-fam__count{display:flex;align-items:baseline;gap:6px;color:var(--muted);font-size:var(--t-xs)}
.ind-fam__count b{font-family:var(--f);font-size:2.2rem;font-weight:500;line-height:1;letter-spacing:-.04em;color:var(--ink)}
.ind-fam__bar{position:relative;display:block;height:4px;border-radius:2px;background:var(--line-2);overflow:hidden}
.ind-fam__bar i{position:absolute;left:0;top:0;bottom:0;width:var(--p,0%);border-radius:2px;background:var(--ink)}
.ind-fam.is-all .ind-fam__bar i{background:var(--blue)}
.ind-fam__t{margin-top:4px;font-family:var(--f-h);font-size:1.12rem;font-weight:500;line-height:1.3;letter-spacing:-.01em;color:var(--ink)}
.ind-fam__by{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;font-size:var(--t-xs);line-height:1.45;color:var(--muted)}
.ind-fam__area{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:var(--r-pill);background:var(--paper-3);font-family:var(--f);font-size:var(--t-lbl);letter-spacing:.06em;color:var(--txt)}
.ind-fam.is-all .ind-fam__area{background:var(--paper)}
.ind-fam__note{font-size:var(--t-xs);line-height:1.55;color:var(--txt)}
.ind-fam__secs{display:flex;flex-wrap:wrap;gap:6px;padding-top:2px}
.ind-fam__secs a,.ind-fam__more span{display:inline-flex;align-items:center;min-height:30px;padding:0 10px;border:1px solid var(--line-3);border-radius:var(--r-pill);background:var(--paper);
  font-size:var(--t-xs);font-weight:500;color:var(--ink);transition:border-color var(--d1) var(--e-io),color var(--d1) var(--e-io)}
.ind-fam__more span{border-style:dashed;color:var(--muted)}
.ind-fam__secs a:hover{border-color:var(--blue);color:var(--blue-d)}

@media (max-width:1180px){.ind-rb__fams{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1100px){
  .ind-rb__t{min-width:880px}
  .ind-rb__corner,.ind-rb__t tbody th[scope="row"]{width:180px}
  .ind-rb__switch{align-items:flex-start;flex-direction:column}
  .ind-rb__sws{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%;padding-bottom:2px}
  .ind-rb__sws::-webkit-scrollbar{display:none}
  .ind-rb__sws li{flex:none}
  .ind-rb__sw{white-space:nowrap}
}
@media (max-width:600px){
  /* the phone map: each row is the industry's name over its seven cells; seven columns of at least 44 px fit 348 px */
  .ind-rb__sws{margin-inline:calc(var(--gutter) * -1);padding-inline:var(--gutter)}
  .ind-rb__sw{min-height:44px}
  .ind-rb__scroll{border-radius:var(--r-lg)}
  .ind-rb__t{min-width:348px;table-layout:auto}
  .ind-rb__t thead tr,.ind-rb__t tbody tr:not(.ind-rb__gr),.ind-rb__gk{display:grid;grid-template-columns:repeat(var(--n,7),minmax(44px,1fr));column-gap:1px}
  .ind-rb__t thead tr{padding:0 4px}
  .ind-rb__t tbody tr:not(.ind-rb__gr){padding:0 4px 6px;border-bottom:1px solid var(--line-2)}
  .ind-rb__t tbody tr:last-child{border-bottom:0}
  .ind-rb__corner{display:none}
  .ind-rb__t thead th{height:92px;padding:0 0 10px;text-align:center;border-bottom:0}
  .ind-rb__ah{display:flex;justify-content:center}
  .ind-rb__al,.ind-rb__eg{display:none}
  .ind-rb__as{display:block;writing-mode:vertical-rl;transform:rotate(180deg);font-size:var(--t-lbl);white-space:nowrap}
  .ind-rb__gr th{display:block;position:static;padding:16px 10px 6px}
  .ind-rb__gk{margin:10px -6px 0}   /* the row grid sits 4 px in; the header 10 px */
  .ind-rb__gk i{font-family:var(--f);font-size:var(--t-lbl);font-style:normal;font-weight:500;letter-spacing:.04em;line-height:1.2;text-align:center;text-transform:uppercase;color:var(--faint)}
  .ind-rb__t tbody:first-of-type .ind-rb__gk{display:none}   /* the column heads are just above */
  .ind-rb__t tbody th[scope="row"]{grid-column:1 / -1;position:static;width:auto;padding:0 6px;border:0;background:transparent}
  .ind-rb__sec{min-height:44px;font-size:var(--t-xs)}
  .ind-rb__t td{padding:0;border-bottom:0}
  .ind-rb__cell{flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:46px;padding:8px 0 0;border-radius:var(--r-xs)}
  .ind-rb__cell::before{position:static;margin:0 18px 0 0;align-self:center}
  .ind-rb__kn2,.ind-rb__kb{min-width:20px}
  .ind-rb__fams{grid-template-columns:minmax(0,1fr);gap:14px}
  .ind-fam{padding:18px 18px 16px;gap:8px}
  .ind-fam__count b{font-size:1.8rem}
  .ind-fam__secs a,.ind-fam__more span{min-height:44px;padding:0 14px}
}

/* touch screens (phones and tablets): 44px tap targets (integrator, responsive pass) */
@media (pointer:coarse){
  .ind-rb__sw,.ind-rb__cell,.ind-fam__secs a{min-height:44px}
}
