/* Jobs listing: heading, then keylined rows — title, location, "View job post" pill.
   Hovering a row turns the title red and fills the pill (Style → "Lines & row hover"). */
.tc-w-joblist {
  padding-bottom: 120px;
}

.tc-w-joblist__heading {
  margin: 0 0 8px;
  font-size: clamp(40px, 4.5vw, 64px);
  line-height: 1.05;
  letter-spacing: -0.03em;
  font-weight: 400;
  color: #262626;
}

.tc-w-joblist__filters {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 40px;
}

.tc-w-joblist :where(.tc-w-joblist__filter) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 16px;
  border: 1px solid #262626;
  border-radius: 999px;
  background: transparent;
  color: #262626;
  font: inherit;
  text-transform: uppercase;
  letter-spacing: -0.06em;
  cursor: pointer;
  transition: transform 180ms ease-out, background 180ms, color 180ms, border-color 180ms;
}

.tc-w-joblist :where(.tc-w-joblist__filter:is(:hover, :focus-visible)) {
  transform: scale(1.05);
  background: #f44349;
  border-color: #f44349;
}

.tc-w-joblist :where(.tc-w-joblist__filter.is-on) {
  transform: none;
  background: #262626;
  border-color: #262626;
  color: #fff9f5;
}

.tc-w-joblist__list {
  border-bottom: 0;
}

.tc-w-joblist__row {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  column-gap: var(--tc-gutter, 24px);
  row-gap: 12px;
  align-items: center;
  padding: 32px 0;
  border-top: var(--tc-joblist-line-size, 1px) solid var(--tc-joblist-line, rgba(38, 38, 38, 0.3));
  color: inherit;
  text-decoration: none;
  transition: background-color 180ms;
}

.tc-w-joblist__list > .tc-w-joblist__row[hidden] {
  display: none;
}

.tc-w-joblist__main {
  grid-column: 1 / span 6;
  min-width: 0;
}

.tc-w-joblist__kicker {
  margin: 0 0 8px;
}

.tc-w-joblist__title {
  margin: 0;
  transition: color 180ms;
}

.tc-w-joblist__meta {
  grid-column: 7 / span 4;
  margin: 0;
}

.tc-w-joblist__cta {
  grid-column: 11 / span 2;
  justify-self: end;
}

.tc-w-joblist :where(.tc-w-joblist__link) {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 6px 16px;
  border: 1px solid #262626;
  border-radius: 999px;
  color: #262626;
  white-space: nowrap;
  transform-origin: center;
  transition: transform 180ms ease-out, background 180ms, color 180ms, border-color 180ms;
}

/* Row rollover: outranks Style → Row button (normal), like the Expertise rows. */
.tc-w-joblist .tc-w-joblist__row:is(:hover, :focus-visible) {
  background-color: var(--tc-joblist-hover-bg, transparent);
  outline: none;
}

.tc-w-joblist .tc-w-joblist__row:is(:hover, :focus-visible) .tc-w-joblist__title {
  color: var(--tc-joblist-hover-title, #262626);
}

.tc-w-joblist .tc-w-joblist__row:is(:hover, :focus-visible) .tc-w-joblist__link {
  transform: scale(1.05);
  background-color: var(--tc-joblist-hover-fill, #f44349) !important;
  border-color: var(--tc-joblist-hover-border, #f44349) !important;
  color: var(--tc-joblist-hover-ink, #262626) !important;
}

.tc-w-joblist__row:is(:hover, :focus-visible) .tc-w-joblist__link > * {
  transform: scale(calc(1 / 1.05));
}

.tc-w-joblist__row:focus-visible .tc-w-joblist__title {
  text-decoration: underline;
}

.tc-w-joblist__empty {
  margin: 0;
  padding: 40px 0;
  border-top: var(--tc-joblist-line-size, 1px) solid var(--tc-joblist-line, rgba(38, 38, 38, 0.3));
}

@media (prefers-reduced-motion: reduce) {
  .tc-w-joblist .tc-w-joblist__row:is(:hover, :focus-visible) .tc-w-joblist__link,
  .tc-w-joblist__row:is(:hover, :focus-visible) .tc-w-joblist__link > * {
    transform: none;
  }
}

/* Tablet and mobile layouts for this widget. */
@media (max-width: 900px) {
  .tc-w-joblist { padding-bottom: 72px; }

  .tc-w-joblist__filters { margin-bottom: 32px; }

  .tc-w-joblist__row { padding: 24px 0; }

  .tc-w-joblist__main { grid-column: 1 / span 7; }

  .tc-w-joblist__meta { grid-column: 8 / span 5; }

  .tc-w-joblist__cta { grid-column: 1 / -1; justify-self: start; }
}

@media (max-width: 600px) {
  .tc-w-joblist__filters {
    flex-wrap: nowrap;
    gap: 6px;
    margin-bottom: 24px;
    overflow-x: auto;
    scrollbar-width: none;
  }

  .tc-w-joblist :where(.tc-w-joblist__filter) { flex: none; padding: 6px 12px; }

  .tc-w-joblist__row { row-gap: 8px; padding: 20px 0; }

  .tc-w-joblist__main,
  .tc-w-joblist__meta,
  .tc-w-joblist__cta { grid-column: 1 / -1; }

  .tc-w-joblist__cta { margin-top: 4px; }
}
