
.operator-directory-page,
.operator-mini-page {
  --op-shell:#FDF5E9;
  --op-deep:#2B3A12;
  --op-olive:#436300;
  --op-orange:#D26C0F;
  background:var(--op-shell);
  color:var(--op-deep);
}

.operator-directory-page main,
.operator-mini-page main {
  padding-top:90px;
}

.operator-directory-intro {
  padding:90px max(24px,6vw) 58px;
  border-bottom:1px solid rgba(43,58,18,.14);
}

.operator-directory-intro h1 {
  max-width:960px;
  margin:12px 0 24px;
  font:400 clamp(58px,7vw,104px)/.9 var(--serif);
  letter-spacing:-.045em;
}

.operator-directory-intro > p:not(.eyebrow) {
  max-width:720px;
  font:400 19px/1.6 var(--body);
  color:rgba(43,58,18,.67);
}

.operator-filter-bar {
  position:sticky;
  top:70px;
  z-index:5;
  display:flex;
  gap:8px;
  overflow-x:auto;
  padding:18px max(24px,6vw);
  background:rgba(253,245,233,.96);
  border-bottom:1px solid rgba(43,58,18,.12);
}

.operator-filter-bar button {
  flex:0 0 auto;
  padding:9px 14px;
  border:1px solid rgba(67,99,0,.25);
  border-radius:999px;
  background:transparent;
  color:rgba(43,58,18,.65);
  font:600 10px var(--sans);
  cursor:pointer;
}

.operator-filter-bar button.active {
  background:var(--op-olive);
  border-color:var(--op-olive);
  color:var(--op-shell);
}

.operator-directory-list {
  padding:0 max(24px,6vw) 100px;
}

.operator-directory-row {
  display:grid;
  grid-template-columns:46px minmax(220px,.8fr) minmax(280px,1.2fr) auto;
  gap:24px;
  align-items:center;
  min-height:112px;
  border-bottom:1px solid rgba(43,58,18,.13);
}

.operator-directory-row.hidden { display:none; }

.operator-directory-row .op-index {
  font:600 9px var(--sans);
  color:var(--op-orange);
}

.operator-directory-row h2 {
  margin:0;
  font:400 27px/1.05 var(--serif);
}

.operator-directory-row p {
  margin:0;
  max-width:650px;
  font:400 14px/1.55 var(--body);
  color:rgba(43,58,18,.62);
}

.operator-directory-row .op-meta {
  margin-bottom:5px;
  font:600 9px var(--sans);
  text-transform:uppercase;
  letter-spacing:.11em;
  color:rgba(43,58,18,.48);
}

.operator-directory-row .op-member {
  color:var(--op-olive);
}

.operator-directory-row .op-arrow {
  font-size:18px;
}

.operator-mini-shell {
  min-height:calc(100vh - 90px);
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,.38fr);
  padding:80px max(24px,8vw) 120px;
  gap:10vw;
  align-items:start;
}

.operator-mini-main {
  max-width:830px;
}

.operator-mini-main .eyebrow {
  color:var(--op-orange);
}

.operator-mini-main h1 {
  margin:18px 0 32px;
  font:400 clamp(58px,7.2vw,112px)/.88 var(--serif);
  letter-spacing:-.05em;
}

.operator-mini-description {
  max-width:760px;
  margin:0 0 50px;
  font:400 clamp(19px,2vw,28px)/1.5 var(--body);
  color:rgba(43,58,18,.76);
}

.operator-mini-details {
  border-top:1px solid rgba(43,58,18,.15);
}

.operator-mini-detail {
  padding:19px 0;
  border-bottom:1px solid rgba(43,58,18,.15);
}

.operator-mini-detail strong {
  display:block;
  margin-bottom:7px;
  font:600 10px var(--sans);
  text-transform:uppercase;
  letter-spacing:.11em;
  color:var(--op-olive);
}

.operator-mini-detail span,
.operator-mini-detail a {
  font:400 17px/1.45 var(--body);
}

.operator-mini-aside {
  padding-top:58px;
}

.operator-mini-aside p {
  margin:0 0 18px;
  font:400 14px/1.6 var(--body);
  color:rgba(43,58,18,.58);
}

.operator-mini-aside a {
  display:inline-block;
  padding-bottom:4px;
  border-bottom:1px solid var(--op-olive);
  font:600 10px var(--sans);
  text-transform:uppercase;
  letter-spacing:.1em;
}

.member-directory-note {
  margin:20px max(24px,6vw) 0;
  padding:20px 0 0;
  border-top:1px solid rgba(43,58,18,.14);
  font:400 15px/1.55 var(--body);
  color:rgba(43,58,18,.64);
}

.member-directory-note a {
  border-bottom:1px solid rgba(67,99,0,.55);
}

@media(max-width:820px){
  .operator-directory-row {
    grid-template-columns:30px 1fr 20px;
    gap:12px;
    padding:22px 0;
  }
  .operator-directory-row .op-description {
    grid-column:2;
  }
  .operator-directory-row .op-arrow {
    grid-column:3;
    grid-row:1;
  }
  .operator-mini-shell {
    grid-template-columns:1fr;
    gap:20px;
    padding-top:55px;
  }
  .operator-mini-aside {
    padding-top:0;
  }
}
