.media-component {
  margin: var(--space-48) var(--side-spacing);
}
.media-component__caption {
  -webkit-margin-before: var(--space-12);
  margin-block-start: var(--space-12);
}
.media-component__caption p {
  font-feature-settings: "liga" on;
  font-feature-settings: "ss12" off, "liga" on;
  font-family: var(--text-sans);
  font-size: calc(var(--t-caption-2-size) * 1px);
  font-size: calc(var(--t-caption-2-size) / 390 * 100vw);
  font-variation-settings: "wght" var(--t-caption-2-weight),
    "wdth" var(--t-caption-2-width);
  letter-spacing: var(--t-caption-2-letter-spacing);
  line-height: calc(var(--t-caption-2-line-height) * 1px);
  line-height: calc(var(--t-caption-2-line-height) / var(--t-caption-2-size));
}
@media (min-width: 640px) {
  .media-component__caption p {
    font-size: calc(var(--t-caption-2-size) / 640 * 100vw);
  }
}
@media (min-width: 1024px) {
  .media-component__caption p {
    font-size: calc(var(--t-caption-2-size) / 1024 * 100vw);
  }
}
@media (min-width: 1440px) {
  .media-component__caption p {
    font-size: calc(var(--t-caption-2-size) / 1440 * 100vw);
  }
}
@media (min-width: 1920px) {
  .media-component__caption p {
    font-size: calc(var(--t-caption-2-size) / 1920 * 100vw);
  }
}
.media-component--full .media-component__content {
  margin-inline: calc(var(--side-spacing) * -1);
  width: calc(100% + var(--side-spacing) * 2);
}
.media-component--full .media-component__caption {
  margin-inline: var(--side-spacing);
}
.media-component--in-carousel .media-component__caption {
  -webkit-margin-end: var(--space-32);
  margin-inline: 0;
  margin-inline-end: var(--space-32);
}
@media (min-width: 40rem) {
  .media-component {
    --col-start: 1;
    --col-span: 12;
    -moz-column-gap: var(--grid-gap);
    column-gap: var(--grid-gap);
    display: grid;
    grid-template-columns: repeat(12, 1fr);
  }
  .media-component__content {
    grid-column: var(--col-start) / span var(--col-span);
  }
  .media-component--large .media-component__content {
    --col-start: 2;
    --col-span: 10;
  }
  .media-component--medium .media-component__content {
    --col-start: 3;
    --col-span: 8;
  }
  .media-component--small .media-component__content {
    --col-start: 4;
    --col-span: 6;
  }
}
@media (min-width: 64rem) {
  .media-component {
    --col-start: 1;
    --col-span: 12;
    -moz-column-gap: var(--grid-gap);
    column-gap: var(--grid-gap);
    display: grid;
    grid-template-columns: repeat(12, 1fr);
  }
  .media-component__content {
    grid-column: var(--col-start) / span var(--col-span);
  }
  .media-component--large .media-component__content {
    --col-start: 3;
    --col-span: 8;
  }
  .media-component--medium .media-component__content {
    --col-start: 4;
    --col-span: 6;
  }
  .media-component--small .media-component__content {
    --col-start: 5;
    --col-span: 4;
  }
  .media-component--left .media-component__content {
    --col-start: 1;
  }
  .media-component--right .media-component__content {
    --col-start: calc(13 - var(--col-span));
  }
  .media-component__content .media-component__caption {
    -moz-column-gap: var(--grid-gap);
    column-gap: var(--grid-gap);
    display: grid;
    grid-template-columns: repeat(var(--col-span), 1fr);
  }
  .media-component__content .media-component__caption p {
    grid-column: span 4;
  }
  .media-component__content .media-component__caption--width-medium p {
    grid-column: span 3;
  }
  .media-component__content .media-component__caption--width-small p {
    grid-column: span 2;
  }
  .media-component__content .media-component__caption--width-x-small p {
    grid-column: span 1;
  }
  .media-component__content .media-component__caption--size-small p {
    font-feature-settings: "liga" on;
    font-feature-settings: "ss12" off, "liga" on;
    font-family: var(--text-sans);
    font-size: calc(var(--t-caption-1-size) * 1px);
    font-size: calc(var(--t-caption-1-size) / 390 * 100vw);
    font-variation-settings: "wght" var(--t-caption-1-weight),
      "wdth" var(--t-caption-1-width);
    letter-spacing: var(--t-caption-1-letter-spacing);
    line-height: calc(var(--t-caption-1-line-height) * 1px);
    line-height: calc(var(--t-caption-1-line-height) / var(--t-caption-1-size));
    text-transform: uppercase;
  }
}
@media (min-width: 64rem) and (min-width: 640px) {
  .media-component__content .media-component__caption--size-small p {
    font-size: calc(var(--t-caption-1-size) / 640 * 100vw);
  }
}
@media (min-width: 64rem) and (min-width: 1024px) {
  .media-component__content .media-component__caption--size-small p {
    font-size: calc(var(--t-caption-1-size) / 1024 * 100vw);
  }
}
@media (min-width: 64rem) and (min-width: 1440px) {
  .media-component__content .media-component__caption--size-small p {
    font-size: calc(var(--t-caption-1-size) / 1440 * 100vw);
  }
}
@media (min-width: 64rem) and (min-width: 1920px) {
  .media-component__content .media-component__caption--size-small p {
    font-size: calc(var(--t-caption-1-size) / 1920 * 100vw);
  }
}
@media (min-width: 64rem) {
  .media-component__caption {
    --caption-span: 4;
    grid-column: var(--col-start) / span var(--caption-span);
  }
  .media-component__caption--medium {
    --caption-span: 3;
  }
  .media-component__caption--small {
    --caption-span: 2;
  }
  .media-component__caption--x-small {
    --caption-span: 1;
  }
  .media-component__caption--x-small p {
    font-feature-settings: "liga" on;
    font-feature-settings: "ss12" off, "liga" on;
    font-family: var(--text-sans);
    font-size: calc(var(--t-caption-2-size) * 1px);
    font-size: calc(var(--t-caption-2-size) / 390 * 100vw);
    font-variation-settings: "wght" var(--t-caption-2-weight),
      "wdth" var(--t-caption-2-width);
    letter-spacing: var(--t-caption-2-letter-spacing);
    line-height: calc(var(--t-caption-2-line-height) * 1px);
    line-height: calc(var(--t-caption-2-line-height) / var(--t-caption-2-size));
  }
}
@media (min-width: 64rem) and (min-width: 640px) {
  .media-component__caption--x-small p {
    font-size: calc(var(--t-caption-2-size) / 640 * 100vw);
  }
}
@media (min-width: 64rem) and (min-width: 1024px) {
  .media-component__caption--x-small p {
    font-size: calc(var(--t-caption-2-size) / 1024 * 100vw);
  }
}
@media (min-width: 64rem) and (min-width: 1440px) {
  .media-component__caption--x-small p {
    font-size: calc(var(--t-caption-2-size) / 1440 * 100vw);
  }
}
@media (min-width: 64rem) and (min-width: 1920px) {
  .media-component__caption--x-small p {
    font-size: calc(var(--t-caption-2-size) / 1920 * 100vw);
  }
}
@media (min-width: 64rem) {
  .media-component--in-carousel .media-component__caption p {
    --caption-span: 12;
    grid-column: var(--col-start) / span var(--caption-span);
  }
}
