/** Final Media Card: explicit roles only. Legacy components are frozen compatibility. */
.media-card[class], .elementor .elementor-element.media-card {
  --tsds-card-content-flow: 0px;
  --tsds-elf-gap-x: var(--gap-0);
  --tsds-elf-gap-y: var(--gap-0);
  box-sizing: border-box;
  min-width: 0;
  padding: 0;
  overflow: clip;
  border-radius: var(--tsds-card-radius, var(--ts-radius-standard));
  row-gap: 0 !important;
  column-gap: 0 !important;
}
.media-card-frame[class], .elementor .elementor-element.media-card-frame { border-radius: inherit; overflow: clip; min-width: 0; box-sizing: border-box; padding: 0; --tsds-elf-gap-x: var(--gap-0); --tsds-elf-gap-y: var(--gap-0); row-gap: 0 !important; column-gap: 0 !important; }
/* The only supported layout owners are the root, explicit frame and native Boxed wrapper. */
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > :is(.media-card-image, .media-card-content) {
  box-sizing: border-box;
  min-width: 0;
  margin: 0 !important;
}
:where(:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > :is(.media-card-image, .media-card-content)) { flex: 1 1 0%; }
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-image {
  padding: 0;
  min-height: 0;
  border-radius: 0;
}
:where(.media-card-image) { align-self: stretch; }
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-content {
  padding: var(--media-card-padding, var(--tsds-card-padding, var(--pad-m)));
}
/* Initial no-script fallback follows explicit source order; measured physical direction wins. */
:is(.media-card:not([data-media-card-side]), .media-card:not([data-media-card-side]) > .media-card-frame, .media-card:not([data-media-card-side]) > .e-con-inner, .media-card:not([data-media-card-side]) > .elementor-container) > .media-card-image ~ .media-card-content:not([data-media-card-image-side]),
:is(.media-card[data-media-card-side="top"], .media-card[data-media-card-side="top"] > .media-card-frame, .media-card[data-media-card-side="top"] > .e-con-inner, .media-card[data-media-card-side="top"] > .elementor-container) > .media-card-content:not([data-media-card-image-side]) { padding-top: 0; }
:is(.media-card[data-media-card-side="bottom"], .media-card[data-media-card-side="bottom"] > .media-card-frame, .media-card[data-media-card-side="bottom"] > .e-con-inner, .media-card[data-media-card-side="bottom"] > .elementor-container) > .media-card-content:not([data-media-card-image-side]) { padding-bottom: 0; }
:is(.media-card[data-media-card-side="left"], .media-card[data-media-card-side="left"] > .media-card-frame, .media-card[data-media-card-side="left"] > .e-con-inner, .media-card[data-media-card-side="left"] > .elementor-container) > .media-card-content:not([data-media-card-image-side]) { padding-left: 0; }
:is(.media-card[data-media-card-side="right"], .media-card[data-media-card-side="right"] > .media-card-frame, .media-card[data-media-card-side="right"] > .e-con-inner, .media-card[data-media-card-side="right"] > .elementor-container) > .media-card-content:not([data-media-card-image-side]) { padding-right: 0; }
/* Every expressly named content region owns its facing side, including a retained middle image. */
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-content:not([data-media-card-image-side]):has(~ .media-card-image) { padding-bottom: 0; }
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-content[data-media-card-image-side="top"] { padding-top: 0; }
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-content[data-media-card-image-side="right"] { padding-right: 0; }
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-content[data-media-card-image-side="bottom"] { padding-bottom: 0; }
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-content[data-media-card-image-side="left"] { padding-left: 0; }
/* Known native V4/Classic media paths; authored fit/position declarations retain precedence. */
:where(.media-card-image) { position: relative; }
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-image > :is(img,a,picture,.elementor-widget-container),
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-image > :is(a,picture,.elementor-widget-container,.elementor-element[data-atomic]) > :is(img,a,picture),
:is(.media-card, .media-card > .media-card-frame, .media-card > .e-con-inner, .media-card > .elementor-container) > .media-card-image > :is(.elementor-widget-container,.elementor-element[data-atomic]) > a > img {
  display: block; width: 100%; max-width: 100%; height: 100%; border-radius: 0;
}
:where(.media-card-image > img, .media-card-image > a, .media-card-image > picture,
  .media-card-image > .elementor-widget-container,
  .media-card-image > :is(a,picture,.elementor-widget-container,.elementor-element[data-atomic]) > :is(img,a,picture),
  .media-card-image > :is(.elementor-widget-container,.elementor-element[data-atomic]) > a > img) {
  display: block; box-sizing: border-box; width: 100%; max-width: 100%; height: 100%;
  min-width: 0; margin: 0; border-radius: 0; object-fit: cover;
}
.media-card :is(.e-image-link-base,.e-paragraph-link-base,.e-heading-link-base):focus-visible {
  outline: 2px solid currentColor;
}
.media-card[class] :is(a[href],button,input,select,textarea,[tabindex]):focus-visible,
.elementor .media-card[class] :is(a[href],button,input,select,textarea,[tabindex]):focus-visible {
  outline-offset: -2px !important;
}
@media (forced-colors: active) {
  .media-card[class] { outline: var(--outline-width, 1px) solid CanvasText; outline-offset: -1px; }
}

/* Explicit vertical layout option; no change to native layouts without this modifier. */
.elementor .elementor-element.media-card.media-card-vertical { display:flex; flex-direction:column; }
/* Explicit reuse of a former Card flow as a real layout gap: same token, no new scale. */
.elementor .elementor-element:is(.media-card,.media-card-frame).media-card-gap-flow { --tsds-elf-gap-x:var(--tsds-card-flow,var(--flow-s)); --tsds-elf-gap-y:var(--tsds-card-flow,var(--flow-s)); gap:var(--tsds-card-flow,var(--flow-s)) !important; }
/* A native image may itself be the explicitly named media region. */
.elementor .elementor-element.media-card > img.media-card-image { display:block; width:100%; max-width:100%; height:auto; }
/* Existing compact-card dimensions and CTA tokens, explicit final roles only. */
.elementor .elementor-element.media-card-compact { display:flex; flex-direction:column; inline-size:100%; }
.elementor .media-card-compact > .media-card-image { flex:0 0 auto; aspect-ratio:16 / 10; }
.elementor .media-card-compact > .media-card-image img { inline-size:100%; block-size:100%; object-fit:cover; object-position:center top; }
.elementor .media-card-compact > .media-card-content { flex:1 1 auto; display:flex; flex-direction:column; row-gap:var(--tsds-flow,var(--flow-xs)) !important; }
.elementor .media-card-compact > .media-card-content > * { margin-block:0 !important; min-inline-size:0; overflow-wrap:anywhere; }
.elementor .media-card-compact > .media-card-content > .e-button-base:last-child { margin-block-start:auto !important; white-space:normal; min-block-size:2.75rem; }

.elementor .elementor-element:is(.media-card,.media-card-frame):is(.gap-0,.gap-xxxs,.gap-xxs,.gap-xs,.gap-s,.gap-m,.gap-l,.gap-xl,.gap-xxl,.gap-xxxl) { --tsds-elf-gap-x:var(--tsds-gap); --tsds-elf-gap-y:var(--tsds-gap); gap:var(--tsds-gap) !important; }

.elementor .elementor-element:is(.media-card,.media-card-frame):is(.gx-0,.gx-xxxs,.gx-xxs,.gx-xs,.gx-s,.gx-m,.gx-l,.gx-xl,.gx-xxl,.gx-xxxl) { --tsds-elf-gap-x:var(--tsds-gap-x); column-gap:var(--tsds-gap-x) !important; }

.elementor .elementor-element:is(.media-card,.media-card-frame):is(.gy-0,.gy-xxxs,.gy-xxs,.gy-xs,.gy-s,.gy-m,.gy-l,.gy-xl,.gy-xxl,.gy-xxxl) { --tsds-elf-gap-y:var(--tsds-gap-y); row-gap:var(--tsds-gap-y) !important; }
/* Explicit linked-card UX; no change to unlinked Cards or TSDS base factors. */
.elementor a.media-card[data-mps-card-link] {
  color: var(--tsds-card-color);
  text-decoration: none;
  cursor: pointer;
}
.elementor a.media-card-compact[data-mps-job-filter-card] { text-align: center; }
.elementor a.media-card[data-mps-card-link]:focus-visible {
  outline: 3px solid var(--ts-color-primary);
  outline-offset: -3px;
}
.elementor a.media-card[data-mps-card-link] [data-mps-card-cta] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  align-self: flex-start;
  min-block-size: 2.75rem;
  box-sizing: border-box;
  padding-block: var(--btn-py-xs);
  padding-inline: var(--btn-px-xs);
  border: var(--btn-border-width) solid var(--ts-color-primary);
  border-radius: var(--btn-radius);
  background: transparent;
  color: var(--ts-color-primary);
  line-height: 1.1;
  text-align: center;
  white-space: normal;
  transition: background-color var(--btn-transition-duration) var(--btn-transition-easing), color var(--btn-transition-duration) var(--btn-transition-easing);
}
.elementor a.media-card-compact[data-mps-job-filter-card] [data-mps-card-cta] { align-self: center; }
.elementor a.media-card[data-mps-card-link]:is(:hover, :focus-visible) [data-mps-card-cta],
.elementor a.media-card[data-mps-card-link][aria-pressed="true"] [data-mps-card-cta] {
  background: var(--ts-color-primary);
  color: var(--ts-color-on-primary);
}
