/* TSDS opt-in prose spacing for generated lists, no MPS changes. */
.elementor .elementor-element.prose-list-s :is(ul, ol) > li + li {
  margin-block-start: var(--flow-xs);
}

/* Native V4 table roles, including the Editor display:contents widget shell; consistent label/value alignment at every width. */
.elementor .elementor-element.data-pairs > [role="row"] {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  column-gap: var(--gap-s);
  align-items: start;
}
.elementor .elementor-element.data-pairs > [role="row"] > :is([role="rowheader"], [role="cell"]),
.elementor .elementor-element.data-pairs > [role="row"] > .elementor-widget > :is([role="rowheader"], [role="cell"]) {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}
.elementor .elementor-element.data-pairs > [role="row"] > [role="rowheader"],
.elementor .elementor-element.data-pairs > [role="row"] > .elementor-widget > [role="rowheader"] {
  font-weight: 500;
}

/* Row presence follows the renderer: an omitted/hidden/empty value has no label row.
 * Generic role contract, with no MPS or form selectors. */
.elementor .elementor-element.data-pairs > [role="row"]:not(:has(> [role="cell"], > .elementor-widget > [role="cell"])),
.elementor .elementor-element.data-pairs > [role="row"]:has(> [role="cell"][hidden]),
.elementor .elementor-element.data-pairs > [role="row"]:has(> [role="cell"]:empty),
.elementor .elementor-element.data-pairs > [role="row"]:has(> .elementor-widget > [role="cell"][hidden]),
.elementor .elementor-element.data-pairs > [role="row"]:has(> .elementor-widget > [role="cell"]:empty) {
  display: none;
}

/* Opt-in contact portrait: employer heading, then image and details at every width. */
.contact-person {
  display: grid;
  grid-template-columns: 6rem minmax(0, 1fr);
  align-items: center;
  column-gap: var(--gap-xs);
  row-gap: var(--gap-xxs);
  min-inline-size: 0;
}
.contact-person > h4 {
  grid-column: 1 / -1;
  margin: 0;
  font: inherit;
  font-weight: 600;
  overflow-wrap: anywhere;
}
.contact-person > img {
  inline-size: 6rem;
  block-size: 6rem;
  max-inline-size: 100%;
  aspect-ratio: 1;
  object-fit: cover;
  object-position: center top;
}
.contact-person > div {
  inline-size: 100%;
  min-inline-size: 0;
  overflow-wrap: anywhere;
}
.contact-person > div small {
  font-size: 0.875em;
}
.contact-person + .contact-person {
  border-block-start: 1px solid color-mix(in srgb, var(--ts-color-border) 30%, transparent);
  padding-block-start: var(--flow-s);
}
.contact-person:not(:has(> img)) {
  grid-template-columns: minmax(0, 1fr);
}
@media (max-width: 767px) {
  .contact-person {
    grid-template-columns: 4.5rem minmax(0, 1fr);
  }
  .contact-person > img {
    inline-size: 4.5rem;
    block-size: 4.5rem;
  }
  .contact-person:not(:has(> img)) {
    grid-template-columns: minmax(0, 1fr);
  }
}
