.cat-band {
  
  border-bottom:1px solid var(--border);
  background:var(--accent-tint);
}

.cat-band--plain { background:var(--panel) }

.cat-band__inner {
  padding-block:26px;
}

.cat-band__eyebrow-row { margin:0; gap:9px }

.ed-sw--xl { width:9px; height:9px }

.cat-band__eyebrow { letter-spacing:.16em }
.cat-band--plain .cat-band__eyebrow { color:var(--text-2) }

.cat-band__title {
  
  font:400 clamp(34px, 4.6vw, 62px)/1 var(--f-display);
  letter-spacing:-.022em;
  color:var(--ink-hard);
  margin-top:10px;
  text-wrap:pretty;
}

.cat-band__blurb {
  font:400 17px/1.45 var(--f-display);
  color:var(--body);
  margin-top:12px;
  max-width:560px;
  text-wrap:pretty;
}

.cat-shell {
  display:grid;
  grid-template-columns:minmax(0,1fr) var(--rail-r);
  gap:0;                                   
}
.cat-main {
  min-width:0;                             
  padding-right:26px;
  }

.cat-shell--norail { grid-template-columns:minmax(0,1fr) }
.cat-shell--norail .cat-main { padding-right:0; }

.cat-rail { padding:22px 0 0 26px; min-width:0 }

.cat-lead__link {
  display:block;
  padding:22px 0 20px;
  border-bottom:1px solid var(--border);
}

.cat-lead__img {
  
  height:auto; aspect-ratio:16/9;
}

.cat-lead__body {
  display:grid;
  grid-template-columns:minmax(0,1fr) 300px;
  gap:28px;
  margin-top:16px;
}
.cat-lead__kick { display:flex }
.cat-lead__title {
  font:400 clamp(26px, 2.9vw, 40px)/1.06 var(--f-display);
  letter-spacing:-.02em;
  color:var(--ink-hard);
  margin-top:10px;
  text-wrap:pretty;
}

.cat-lead__dek {
  font:400 15px/1.5 var(--f-display);
  color:var(--body);
}
.cat-lead__meta { display:block; margin-top:12px }

.cat-lead__link:hover { color:inherit }
.cat-lead__link:hover .cat-lead__title { color:var(--hover) }

.cat-two {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:26px;
  padding:20px 0;
  border-bottom:1px solid var(--border);
}
.cat-two__cell { min-width:0 }
.cat-two__link { display:block }
.cat-two__kick { display:flex; margin-top:11px }
.cat-two__title {
  font:400 24px/1.14 var(--f-display);
  letter-spacing:-.012em;
  color:var(--ink-hard);
  margin-top:8px;
  text-wrap:pretty;
}
.cat-two__dek {
  display:block;
  font:400 14px/1.45 var(--f-display);
  color:var(--body);
  margin-top:8px;
}

.cat-two__meta { display:block; margin-top:9px }
.cat-two__link:hover { color:inherit }
.cat-two__link:hover .cat-two__title { color:var(--hover) }

.cat-riverhead {
  display:flex; align-items:center; justify-content:space-between;
  gap:20px;
  padding:16px 0;
  border-bottom:1px solid var(--structure);   
}
.cat-riverhead__h {
  font:400 22px/1 var(--f-display);
  letter-spacing:-.01em;
  color:var(--ink);
}

.cat-row__link {
  display:grid;
  grid-template-columns:236px minmax(0,1fr);
  gap:20px;
  padding:18px 0;
  border-bottom:1px solid var(--border);      
}
.cat-row__img { align-self:start }
.cat-row__text { min-width:0 }
.cat-row__kick { display:flex }
.cat-row__title {
  font:400 25px/1.14 var(--f-display);
  letter-spacing:-.012em;
  color:var(--ink-hard);
  margin-top:8px;
  
}
.cat-row__dek {
  display:block;
  font:400 14.5px/1.45 var(--f-display);
  color:var(--body);
  margin-top:8px;
}
.cat-row__meta { display:block; margin-top:9px }
.cat-row__link:hover { color:inherit }
.cat-row__link:hover .cat-row__title { color:var(--hover) }

.cat-row__dek,
.cat-two__dek,
.cat-lead__dek {
  display:-webkit-box !important;
  -webkit-line-clamp:3;
  -webkit-box-orient:vertical;
  overflow:hidden;
}

.cat-nl {
  background:var(--accent-tint);
  padding:20px 22px;
  margin:22px 0;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:24px;
  align-items:center;
}
.cat-nl__eyebrow {
  font:700 10px/1 var(--f-body);
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--accent-text);
}
.cat-nl__h {
  font:400 24px/1.15 var(--f-display);
  color:var(--ink-hard);
  margin-top:9px;
  text-wrap:pretty;
}

.cat-nl__dek {
  font:400 13.5px/1.45 var(--f-body);
  color:var(--body);
  margin-top:7px;
}

.cat-nl__form  { margin-top:0; flex:none; flex-direction:column; align-items:stretch; gap:10px }
.cat-nl__input { flex:none; width:100%; padding:11px 12px; font-size:13px; border-right:1px solid var(--border-alt) }

.cat-nl__btn   { padding:12px 18px; width:100% }

.cat-more { display:flex; justify-content:center; padding:26px 0 34px }

.cat-topics {
  display:flex; flex-wrap:wrap; gap:8px;
  padding:14px 0 4px;
}
.cat-topics__chip { flex:none }

.cat-districts { gap:6px; padding:16px 0 0 }
.cat-districts .cat-topics__chip {
  
  display:inline-flex; align-items:baseline; gap:6px;
  white-space:nowrap;
}
.cat-districts__code {
  font-variant-numeric:tabular-nums;
  font-weight:600;
  color:var(--text-faint);
}
.cat-districts .cat-topics__chip.is-on .cat-districts__code { color:inherit; opacity:.72 }

.cat-districts__all { margin-right:6px }

.cat-topics__chip.is-on {
  background:var(--structure);
  border-color:var(--structure);
  color:var(--sand);
}

@media (max-width:700px) {
  .cat-topics {
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
    
    margin-inline:calc(var(--gutter) * -1);
    padding-inline:var(--gutter);
  }
  .cat-topics::-webkit-scrollbar { display:none }
}

.cat-pager {
  display:flex; align-items:center; justify-content:center;
  gap:18px; flex-wrap:wrap;
  padding:26px 0 34px;
  font:700 10.5px/1 var(--f-body);
  letter-spacing:.14em; text-transform:uppercase;
}
.cat-pager__list {
  display:flex; align-items:center; gap:4px;
  list-style:none; margin:0; padding:0;
}

.cat-pager__n {
  display:grid; place-items:center;
  min-width:34px; height:34px; padding:0 8px;
  color:var(--ink);
  border:1px solid transparent;
}
.cat-pager__n:hover { border-color:var(--border) }
.cat-pager__n.is-on {
  border-color:var(--structure);
  background:var(--structure);
  color:var(--sand);
}
.cat-pager__gap { color:var(--text-faint); padding:0 2px }

.cat-pager__step {
  display:inline-flex; align-items:center; gap:7px;
  color:var(--ink);
  border:1px solid var(--structure);
  padding:11px 18px;
}
.cat-pager__step:hover { color:var(--ink); background:var(--panel) }

.cat-pager__step.is-off {
  color:var(--text-faint);
  border-color:var(--border-alt);
  pointer-events:none;
}

@media (max-width:600px) {
  
  .cat-pager { gap:10px }
  .cat-pager__word { display:none }
  .cat-pager__step { padding:11px 14px }
}
.cat-more__btn {
  border:1px solid var(--structure);
  font:700 10.5px/1 var(--f-body);
  letter-spacing:.14em; text-transform:uppercase;
  color:var(--ink);
  padding:14px 30px;
}

.cat-more__btn:hover { background:var(--structure); color:var(--ivory) }

.cat-empty {
  padding:26px 0 30px;
  border-bottom:1px solid var(--border);
  text-align:center;
}
.cat-empty__title {
  font:400 27px/1.1 var(--f-display);
  letter-spacing:-.015em; color:var(--ink-hard);
  text-wrap:pretty;
}
.cat-empty__title em { font-style:italic }
.cat-empty__dek {
  font:400 14px/1.45 var(--f-display);
  color:var(--body); margin-top:10px;
}
.cat-empty__chips { justify-content:center; margin-top:18px }

.cat-rail-h {
  font:400 22px/1.15 var(--f-display);
  letter-spacing:-.01em;
  color:var(--ink);
  padding-bottom:12px;
  border-bottom:1px solid var(--structure);
}

.cat-mr__row {
  display:flex; gap:11px; align-items:flex-start;
  padding:12px 0;
  border-bottom:1px solid var(--border);      
}
.cat-mr__num {
  flex:none; width:12px;
  font:700 11px/1.3 var(--f-body);
  color:var(--text-faint);
}
.cat-mr__link {
  font:400 14px/1.25 var(--f-display);
  color:var(--ink-hard);
}

.cat-intel {
  background:var(--intel-dark);
  color:var(--ivory-2);
  padding:20px;
  margin-top:26px;
}
.cat-intel__eyebrow-row { margin:0; gap:8px }

.cat-intel__eyebrow { color:var(--ivory-2) }
.cat-intel__title {
  font:400 22px/1.15 var(--f-display);
  margin-top:10px;
  text-wrap:pretty;
}
.cat-intel__dek {
  font:400 13px/1.45 var(--f-display);
  color:var(--border-alt);
  margin-top:8px;
}
.cat-intel__list {
  display:flex; flex-direction:column; gap:9px;
  margin-top:14px;
  font:400 13px/1.3 var(--f-display);
}

.cat-intel__list li { padding-bottom:9px; border-bottom:1px solid var(--rule-dark) }
.cat-intel__list li:last-child { padding-bottom:0; border-bottom:0 }
.cat-intel__link:hover { color:var(--ivory) }
.cat-intel__cta { margin-top:16px; padding:12px 18px }

.cat-dist { margin-top:26px }
.cat-dist__cloud { gap:7px; margin-top:14px }
.cat-dist__cloud .ed-chip { padding:7px 9px; letter-spacing:.08em }

@media (max-width:1100px) {
  
  .cat-band__blurb { max-width:none }

  
  .cat-lead__body { grid-template-columns:minmax(0,1fr) 240px; gap:22px }
  .cat-row__link  { grid-template-columns:200px minmax(0,1fr); gap:18px }
  .cat-row__title { font-size:22px }
}

@media (max-width:960px) {
  
  .cat-shell { grid-template-columns:minmax(0,1fr) }
  .cat-main  { padding-right:0; border-right:0 }
  .cat-rail  {
    padding:0;
    margin-top:30px;
    border-top:2px solid var(--structure);
    padding-top:22px;
  }

  
  .cat-two { grid-template-columns:minmax(0,1fr); gap:24px }

  
  .cat-lead__body { grid-template-columns:minmax(0,1fr); gap:12px }
  .cat-lead__dek  { margin-top:0 }
}

@media (max-width:780px) {
  .cat-band__inner { padding-block:20px }
  .cat-band__blurb { font-size:15.5px; margin-top:10px }

  
  .cat-row__link { grid-template-columns:120px minmax(0,1fr); gap:14px; padding:14px 0 }
  .cat-row__title { font-size:18px; line-height:1.2; margin-top:6px }
  .cat-row__dek { display:none !important }   
  .cat-row__meta { margin-top:6px }

  .cat-two__title { font-size:20px }
  .cat-lead__title { font-size:24px }
  .cat-lead__dek { font-size:14.5px }

  
  .cat-nl {
    grid-template-columns:minmax(0,1fr);
    gap:16px;
    padding:18px;
  }
  .cat-nl__h { font-size:21px }
  
  .cat-nl__form { display:flex; width:100% }
  .cat-nl__input { flex:none; width:100%; min-width:0 }
  .cat-nl__btn { padding:12px 16px }

  
  .cat-more { padding:22px 0 28px }
  .cat-more__btn { padding:16px 26px; display:block; text-align:center }

  .cat-rail-h { font-size:20px }
  .cat-intel__title { font-size:20px }
}

@media (max-width:560px) {
  
  .cat-row__link { grid-template-columns:104px minmax(0,1fr); gap:12px }
  .cat-row__title { font-size:16.5px }

  
  .cat-riverhead { flex-direction:column; align-items:flex-start; gap:12px }

  
  .cat-dist__cloud .ed-chip,
  .cat-empty__chips .ed-chip { padding:16px 11px; line-height:1 }

  .cat-empty__title { font-size:22px }
}

.cat-main.is-swapping {
  opacity:.45;
  pointer-events:none;
  transition:opacity .12s linear;
}

@media (prefers-reduced-motion:reduce) {
  .cat-main.is-swapping { transition:none }
}

@media (max-width: 767px) {
  .cat-districts {
    display:flex; flex-wrap:nowrap; overflow-x:auto; gap:7px;
    
    padding-block:14px 12px;
    scroll-snap-type:x proximity;
    
    scroll-padding-inline-start:var(--gutter);
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none;                      
    
    -webkit-mask-image:linear-gradient(to right, #000 calc(100% - 34px), transparent 100%);
            mask-image:linear-gradient(to right, #000 calc(100% - 34px), transparent 100%);
  }
  .cat-districts::-webkit-scrollbar { display:none }
  .cat-districts .cat-topics__chip { flex:0 0 auto; scroll-snap-align:start }
  .cat-districts__all { margin-right:2px }
}
