/* Report promo — desktop split / mobile stack.
   Layout only. Padding, gaps, margins, widths, type and colours are Elementor defaults (Style tab). */

.tc-w-promo {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  box-sizing: border-box;
  width: 100%;
}

.tc-w-promo--left .tc-w-promo__media {
  order: -1;
}

.tc-w-promo__copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  min-width: 0;
}

.tc-w-promo[data-tc-align="center"] .tc-w-promo__copy {
  align-items: center;
  text-align: center;
}

.tc-w-promo[data-tc-align="right"] .tc-w-promo__copy {
  align-items: flex-end;
  text-align: right;
}

.tc-w-promo__btn {
  align-self: flex-start;
}

.tc-w-promo[data-tc-align="center"] .tc-w-promo__btn {
  align-self: center;
}

.tc-w-promo[data-tc-align="right"] .tc-w-promo__btn {
  align-self: flex-end;
}

/* The pill grows on hover (Button → Hover scale); the label is scaled back so the text stays the same size. */
.tc-w-promo__btn-label {
  display: inline-block;
  transition: transform 180ms ease-out;
}

.tc-w-promo__btn:is(:hover, :focus-visible) .tc-w-promo__btn-label {
  transform: scale(calc(1 / var(--tc-h-scale, 1.05)));
}

.tc-w-promo__media {
  position: relative;
  align-self: stretch;
  overflow: hidden;
}

.tc-w-promo__media.is-empty {
  min-height: 400px;
}

.tc-w-promo__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

@media (max-width: 900px) {
  .tc-w-promo {
    display: flex;
    flex-direction: column;
    align-items: stretch;
  }

  .tc-w-promo--left .tc-w-promo__media {
    order: 1;
  }
}
