:root {
  --aot-typography_font-family: 'ABBvoice', 'Helvetica Neue', Helvetica, Arial, sans-serif;
  --content-text-color: var(--aot-sys-color-shades-grey90);
  --table-border-color: var(--aot-sys-color-shades-grey20);
}

@media only screen and (max-width: 767px) {
  :root {
    --content-grid-column: 1 / span 4;
    --h4-margin: 40px 0 0;
    --body-section-column-gap: 16px;
    --body-section-grid-template-columns: repeat(4, 1fr);
    --figure-width: calc(100vw - 32px);
    --cta-button-width: 100%;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1023px) {
  :root {
    --content-grid-column: 1 / span 12;
    --figure-width: calc(35% - 0px);
  }
}

@media only screen and (min-width: 768px) and (max-width: 1919px) {
  :root {
    --h4-margin: 24px 0 0;
  }
}

@media only screen and (min-width: 768px) {
  :root {
    --body-section-column-gap: 24px;
    --cta-button-width: fit-content;
  }
}

@media only screen and (min-width: 768px) and (max-width: 1439px) {
  :root {
    --body-section-grid-template-columns: repeat(12, 1fr);
  }
}

@media only screen and (min-width: 1024px) and (max-width: 1439px) {
  :root {
    --figure-width: calc((100% / 9 * 4) - 12px);
  }
}

@media only screen and (max-width: 1439px) {
  :root {
    --h3-margin: 40px 0 0;
  }
}

@media only screen and (min-width: 1024px) {
  :root {
    --content-grid-column: 4 / span 8;
  }
}

@media only screen and (max-width: 1439px) {
  :root {
    --video-width: 100%;
  }
}

@media only screen and (min-width: 1440px) and (max-width: 1599px) {
  :root {
    --h3-margin: 24px 0 0;
  }
}

@media only screen and (min-width: 1440px) {
  :root {
    --video-width: 1278px;
    --body-section-grid-template-columns: repeat(12, 1fr);
    --figure-width: calc(38% - 16px);
  }
}

@media only screen and (min-width: 1600px) {
  :root {
    --h3-margin: 40px 0 0;
  }
}

@media only screen and (min-width: 1920px) {
  :root {
    --h4-margin: 40px 0 0;
  }
}

.press-release {
  display: grid;
  column-gap: var(--aot-sys-layout-column-gap);
  grid-template-columns: var(--body-section-grid-template-columns);
}

.press-release h2,
.press-release h3,
.press-release h4,
.press-release blockquote,
.press-release p,
.press-release ul,
.press-release ol {
  grid-column: 4 / span 8;

  @media only screen and (max-width: 767px) {
    grid-column: 1 / span 4;
  }

  @media only screen and (min-width: 768px) and (max-width: 1023px) {
    grid-column: 1 / span 11;
  }
}

.press-release figure,
.press-release table,
.press-release iframe {
  grid-column: 4 / span 9;

  @media only screen and (max-width: 767px) {
    grid-column: 1 / span 4;
  }

  @media only screen and (min-width: 768px) and (max-width: 1023px) {
    grid-column: 1 / span 12;
  }
}

.press-release h4,
.press-release p,
.press-release ul li,
.press-release ol li,
.press-release figcaption,
.press-release table td,
.press-release table th {
  font-family: var(--aot-sys-typography-font-family);
}

.press-release h2,
.press-release h3,
.press-release blockquote {
  font-family: var(--aot-sys-typography-font-family-display);
}

@media only screen and (min-width: 428px) {
  .press-release {
    margin-top: var(--aot-sys-spacing-component-x-large);
    margin-bottom: var(--aot-sys-spacing-component-x-large);
  }
}

.press-release strong {
  font-size: inherit;
  line-height: inherit;
  font-weight: var(--aot-sys-typography-body-xx-small-bold-font-weight);
}

.press-release a {
  font-size: inherit;
  line-height: inherit;
  font-weight: inherit;
  color: inherit;
}

.press-release sub,
.press-release sup {
  font-size: inherit;
}

.press-release h2:not(:first-child),
.press-release ul,
.press-release ol {
  margin: var(--aot-sys-spacing-component-x-small) 0 0;
}

.press-release :is(h2, h3, h4, p, ul, ol, blockquote, table, figure, iframe):first-child {
  margin: 0;
}

.press-release h2 {
  font-size: var(--aot-sys-typography-headline-display-uc-medium-font-size);
  line-height: var(--aot-sys-typography-headline-display-uc-medium-line-height);
  font-weight: var(--aot-sys-typography-headline-display-uc-medium-font-weight);
  color: var(--aot-sys-color-primary-black);
}

.press-release h3 {
  font-size: var(--aot-sys-typography-headline-display-sc-medium-font-size);
  line-height: var(--aot-sys-typography-headline-display-sc-medium-line-height);
  font-weight: var(--aot-sys-typography-headline-display-sc-medium-font-weight);
  margin: var(--aot-sys-spacing-component-x-small) 0 0;
  color: var(--aot-sys-color-primary-black);
}

.press-release h4 {
  font-size: var(--aot-sys-typography-body-small-bold-font-size);
  line-height: var(--aot-sys-typography-body-small-bold-line-height);
  font-weight: var(--aot-sys-typography-body-small-bold-font-weight);
  color: var(--aot-sys-color-primary-black);
  margin: var(--aot-sys-spacing-component-x-small) 0 0;
}

.press-release ul,
.press-release ol {
  padding-inline-start: 30px;
}

.press-release ul li,
.press-release ol li {
  font-size: var(--aot-sys-typography-body-small-reg-font-size);
  line-height: var(--aot-sys-typography-body-small-reg-line-height);
  font-weight: var(--aot-sys-typography-body-small-reg-font-weight);
  color: var(--aot-sys-color-primary-black);
}

.aot-layout-grid .press-release p {
  font-size: var(--aot-sys-typography-body-small-reg-font-size);
  line-height: var(--aot-sys-typography-body-small-reg-line-height);
  font-weight: var(--aot-sys-typography-body-small-reg-font-weight);
  color: var(--aot-sys-color-primary-black);
  margin: var(--aot-sys-spacing-component-x-small) 0 0;

  @media only screen and (max-width: 767px) {
    word-break: break-word;
  }
}

.press-release p small {
  font-size: var(--aot-sys-typography-body-xx-small-reg-font-size);
}

.press-release a {
  text-decoration-line: underline;
  text-decoration-style: solid;
  text-decoration-skip-ink: none;
  text-decoration-thickness: auto;
  text-underline-offset: auto;
  text-underline-position: from-font;
}

.press-release figure {
  margin: var(--aot-sys-spacing-component-x-large) 0 0;

  :is(img) {
    max-width: 100%;
    object-fit: cover;
    width: 100%;
  }

  :is(figcaption) {
    padding-top: var(--aot-sys-spacing-component-x-small);
    font-size: var(--aot-sys-typography-body-xx-small-reg-font-size);
    line-height: var(--aot-sys-typography-body-xx-small-reg-line-height);
    font-weight: var(--aot-sys-typography-body-xx-small-reg-font-weight);
    background-color: var(--aot-sys-color-primary-white);
  }
}

.press-release figure:has(> img):not(.text-wrapped-image figure, .cta-button-wrapper figure) {
  aspect-ratio: 16 / 9;
  opacity: 1;
  background: var(--aot-sys-color-shades-grey10) cover no-repeat;
}

.press-release iframe {
  width: 100%;
  margin-top: var(--aot-sys-spacing-component-x-large);

  @media only screen and (min-width: 768px) and (max-width: 1023px) {
    margin: var(--aot-sys-spacing-component-x-large) 4px 0;
  }
}

.press-release blockquote {
  margin: var(--aot-sys-spacing-component-x-large) 0 0;
  font-size: var(--aot-sys-typography-headline-display-sc-large-font-size);
  line-height: var(--aot-sys-typography-headline-display-sc-large-line-height);
  font-weight: var(--aot-sys-typography-headline-display-sc-large-font-weight);
  padding-right: var(--aot-sys-spacing-grid-margin);
}

.press-release ul[data-nb-gallery] {
  padding: 0;
}

.press-release ul[data-nb-gallery] li {
  list-style: none;
}

.press-release table {
  margin-top: var(--aot-sys-spacing-component-x-large);
}

.press-release table td,
.press-release table th {
  font-size: var(--aot-sys-typography-body-xx-small-reg-font-size);
  line-height: var(--aot-sys-typography-body-xx-small-reg-line-height);
  font-weight: var(--aot-sys-typography-body-xx-small-reg-font-weight);
  color: var(--content-text-color);
  padding: 24px 16px 24px 0px;
  border-bottom: 1px solid var(--aot-sys-color-borders-grey);
}

.press-release table th {
  text-align: left;
  font-weight: var(--aot-sys-typography-body-xx-small-bold-font-weight);
}

@media only screen and (max-width: 767px) {
  .press-release table {
    display: block;
    min-width: 100%;
    white-space: nowrap;
    overflow-x: auto;
  }
}

.press-release table th {
  font-weight: var(--aot-sys-typography-body-xx-small-bold-font-weight);
}

.press-release figure:has(> iframe) {
  @media only screen and (min-width: 768px) {
    grid-column: 1 / span 12;
  }

  @media only screen and (min-width: 1024px) {
    display: grid;
    grid-template-columns: var(--body-section-grid-template-columns);
    column-gap: var(--aot-sys-layout-column-gap);
  }

  :is(figcaption) {
    padding-top: var(--aot-sys-spacing-component-x-small);
  }
}

.press-release figure > iframe {
  aspect-ratio: 16 / 9;
  border: 0;
  width: calc(100% + 1 * var(--aot-sys-layout-bleed));
  margin-right: calc(-1 * var(--aot-sys-layout-bleed));

  @media only screen and (max-width: 767px) {
    width: calc(100% + 2 * var(--aot-sys-layout-bleed));
    margin-right: calc(-1 * var(--aot-sys-layout-bleed));
    margin-left: calc(-1 * var(--aot-sys-layout-bleed));
  }

  @media only screen and (min-width: 768px) {
    grid-column: 1 / span 12;
  }
}

.press-release figure > figcaption {
  @media only screen and (min-width: 1024px) {
    grid-column: 4 / span 9;
  }
}

.press-release .text-wrapped-image {
  grid-column: 4 / span 8;
  margin-top: var(--aot-sys-spacing-component-x-large);

  & p {
    color: var(--content-text-color);
  }

  @media only screen and (max-width: 767px) {
    grid-column: 1 / span 4;
  }

  @media only screen and (min-width: 768px) and (max-width: 1023px) {
    grid-column: 1 / span 11;
  }

  :is(figure) {
    width: var(--figure-width);
    clear: both;
    margin: 0;
    margin-bottom: var(--aot-sys-spacing-component-small);

    @media only screen and (min-width: 768px) {
      &:not(:first-of-type) {
        margin-top: 40px;
      }
    }
  }

  :is(img) {
    aspect-ratio: 1 / 1;
    opacity: 0.9;
    background: lightgray 50% / cover no-repeat;

    @media only screen and (max-width: 767px) {
      width: 100%;
    }
  }

  :is(figure[data-alignment]:not([data-alignment='center'])) figcaption {
    @media only screen and (max-width: 767px) {
      margin-bottom: 24px;
    }
  }

  :is(figure[data-alignment='center']) + p {
    margin: var(--aot-sys-spacing-component-x-large) 0 0;
  }

  :is(figure[data-alignment]:not([data-alignment='center'])) + p {
    @media only screen and (max-width: 767px) {
      margin: 24px 0 0;
    }
    @media only screen and (min-width: 768px) {
      margin: 0;
    }
  }
}

.press-release .image-carousel {
  grid-column: var(--content-grid-column);
  margin-top: var(--aot-sys-spacing-component-x-large);
}

.press-release .cta-button-wrapper {
  grid-column: var(--content-grid-column);
  margin-top: var(--aot-sys-spacing-component-x-large);

  figure {
    min-height: 40px;

    & > a {
      width: var(--cta-button-width);
      text-decoration: none;

      &:focus-visible {
        border-radius: 20px;
        outline-offset: 2px;
        outline: 2px solid var(--aot-sys-color-borders-focus);
      }

      & > button {
        display: flex;
        height: 48px;
        padding: var(--aot-sys-spacing-none) var(--aot-sys-spacing-component-x-small);
        justify-content: center;
        align-items: center;
        border-radius: 28px;
        border: none;
        margin: 0;
        text-align: center;
        font-family: var(--aot-sys-typography-font-family);
        font-size: var(--aot-sys-typography-button-large-font-size);
        font-style: normal;
        font-weight: var(--aot-sys-typography-button-large-font-weight);
        line-height: var(--aot-sys-typography-button-large-line-height);
        color: var(--aot-sys-color-primary-white);
        cursor: pointer;
        background-color: var(--aot-sys-color-primary-accent-default);
        background-image: linear-gradient(90deg, var(--aot-sys-color-borders-lilac) 13%, var(--aot-sys-color-primary-accent-default) 50%);
        background-size: 200%;
        background-position: right;
        transition:
          background-position 0.3s cubic-bezier(0.65, 0, 0.35, 1),
          background-image 0.3s cubic-bezier(0.65, 0, 0.35, 1),
          opacity 0.2s;

        &:hover {
          background-position: 30%;
          background-image: linear-gradient(90deg, var(--aot-sys-color-borders-lilac) 13%, var(--aot-sys-color-primary-accent-default) 50%);
          opacity: 1;
        }

        &:focus-visible {
          outline-offset: 2px;
          outline: 2px solid var(--aot-sys-color-borders-focus);
        }
      }
    }
  }
}
