/* Keep rich text (including pasted nonbreaking spaces) within its own column.
   Do not hide overflow: all descriptions and prices must remain readable. */
.people-page .people__item,
.people-page .people__item-wrapper,
.team .team__item {
  min-width: 0;
  max-width: 100%;
}

.people-page .people__content,
.people-page .people__desc,
.team .team__content,
.specialist-page__hero-content,
.specialist-page__text,
.specialist-page__legacy-description {
  min-width: 0;
  overflow-wrap: break-word;
  overflow-wrap: anywhere;
  word-break: normal;
}

.people-page .specialist-card__media,
.people-page .people__item-wrapper > .people__img,
.team .team__img {
  flex-shrink: 0;
  max-width: 100%;
}

/* The site uses flex/grid rows, rather than HTML tables, for prices. */
#prices_accordion [data-price-item] > div,
.fortemed-service-prices__name {
  min-width: 0;
  overflow-wrap: break-word;
  overflow-wrap: anywhere;
}

.fortemed-service-prices__item {
  min-width: 0;
  max-width: 100%;
}

/* Price explanations used to be one unbroken line extending off-screen.
   Anchor the popup to the name column, not to the question mark at its edge. */
#prices_accordion [data-price-item] > div:first-child { position: relative; }
#prices_accordion [data-price-item] .tip { position: static; }
#prices_accordion [data-price-item] .tip::before { display: none; }
#prices_accordion [data-price-item] .tip::after {
  top: 100%;
  left: 0;
  right: auto;
  bottom: auto;
  width: min(32rem, 100%);
  max-width: 100%;
  margin: 6px 0 0;
  box-sizing: border-box;
  transform: none;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.4;
  text-align: left;
}
