:host {
  display: block;
}

  :host * {
    box-sizing: border-box;
  }

.banner {
  display: flex;
  align-items: flex-start;
  gap: var(--s-space-16);

  max-width: 100%;
  min-height: 3.5rem;
  padding: var(--s-space-16);
}

.banner:focus:not(:focus-visible) {
    outline: none;
  }

.banner:focus-visible {
    outline-color: var(--s-focus-default);
    outline-offset: var(--s-space-4);
  }

@media (min-width: 992px) and (max-width: 1439px) and (hover: hover),(min-width: 1440px) {

.banner {
    padding: var(--s-space-16);
    min-height: 3.25rem
}
  }

.banner--size-s {
  padding: var(--s-space-8);
  justify-content: center;
}

.banner--size-s .banner__content {
    flex-grow: 0;
    text-align: center;
  }

.banner--size-s .banner__controls {
    margin-left: 0;
  }

.banner--intent-default .banner__icon,
  .banner--intent-default .banner__content,
  .banner--intent-default .banner__action-button,
  .banner--intent-default .banner__dismiss-button,
  .banner--intent-critical .banner__icon,
  .banner--intent-critical .banner__content,
  .banner--intent-critical .banner__action-button,
  .banner--intent-critical .banner__dismiss-button,
  .banner--intent-success .banner__icon,
  .banner--intent-success .banner__content,
  .banner--intent-success .banner__action-button,
  .banner--intent-success .banner__dismiss-button,
  .banner--intent-info .banner__icon,
  .banner--intent-info .banner__content,
  .banner--intent-info .banner__action-button,
  .banner--intent-info .banner__dismiss-button {
    color: var(--s-text-on-status);
  }

.banner--intent-default {
  background-color: var(--s-surface-neutral-default);
}

.banner--intent-critical {
  background-color: var(--s-surface-critical-default);
}

.banner--intent-success {
  background-color: var(--s-surface-success-default);
}

.banner--intent-info {
  background-color: var(--s-surface-info-default);
}

.banner--intent-warning {
  background-color: var(--s-surface-warning-default);
}

.banner--intent-warning .banner__icon {
    color: var(--s-icon-strong);
  }

.banner--intent-warning .banner__content,
  .banner--intent-warning .banner__action-button,
  .banner--intent-warning .banner__dismiss-button {
    color: var(--s-text-default);
  }

.banner__content {
  display: flex;
  align-items: flex-start;

  min-height: 1.5rem;
  flex-grow: 1;
  line-height: var(--s-line-height-base);
}

@media (min-width: 992px) and (max-width: 1439px) and (hover: hover),(min-width: 1440px) {

.banner__content {
    font-size: var(--s-font-size-sm);
    line-height: var(--s-line-height-sm);
    min-height: 1.25rem
}
  }

.banner__icon {
  display: none;
  width: 1.5rem;
  height: 1.5rem;
  margin-right: var(--s-space-8);
  flex-shrink: 0;
  color: var(--s-icon-on-status);
}

@media (min-width: 375px) {

.banner__icon {
    display: inline-flex
}
  }

@media (min-width: 992px) and (max-width: 1439px) and (hover: hover),(min-width: 1440px) {

.banner__icon {
    width: 1.25rem;
    height: 1.25rem
}
  }

.banner__text {
  min-height: 1.5rem;
}

@media (min-width: 992px) and (max-width: 1439px) and (hover: hover),(min-width: 1440px) {

.banner__text {
    min-height: 1.25rem
}
  }

.banner__controls {
  display: inline-flex;
  flex-shrink: 0;
  align-items: flex-start;
  line-height: var(--s-line-height-base);
  gap: var(--s-space-16);
}

@media (min-width: 768px) {

.banner__controls {
    gap: var(--s-space-24)
}
  }

.banner__action-button,
.banner__dismiss-button {
  display: inline-flex;
  overflow: hidden;
  max-width: 7rem;
  height: 1.5rem;
  padding: 0;
  flex-shrink: 0;
  align-items: center;
  border: none;
  background-color: transparent;
  font: inherit;
  font-weight: var(--s-font-weight-semibold);
  white-space: nowrap;
  text-overflow: ellipsis;
  cursor: pointer;
}

.banner__action-button:focus, .banner__dismiss-button:focus {
    outline-color: var(--s-focus-default);
  }

@media (min-width: 768px) {

.banner__action-button,
.banner__dismiss-button {
    max-width: 12rem
}
  }

@media (min-width: 992px) and (max-width: 1439px) and (hover: hover),(min-width: 1440px) {

.banner__action-button,
.banner__dismiss-button {
    font-size: var(--s-font-size-sm);
    line-height: var(--s-line-height-sm);
    height: 1.25rem
}
  }
