:host {
  display: inline;
  /** Width of the arrow */
  --_floating-arrow-size: var(--pf-c-popover__arrow--Width, var(--pf-global--arrow--width-lg, 1.5625rem));
  /** Heading font color */
  --_header-text-color: var(--pf-c-popover__title-text--Color, inherit);
  /** Heading icon font color */
  --_header-icon-color: var(--pf-c-popover__title-icon--Color, var(--pf-global--Color--100, #151515));
  --_animation-speed: var(--pf-popover--animation-speed, 300ms);
  --_z-index: var(--pf-popover--z-index, 9999);
}

.visually-hidden {
  position: fixed;
  top: 0;
  left: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

[hidden] {
  display: none !important;
}

#container {
  display: inline-flex;
  position: relative;
}

#trigger {
  display: inline-block;
  position: relative;
}

#arrow {
  display: block;
  position: absolute;
  /** Arrow background color */
  background-color: var(--pf-c-popover__arrow--BackgroundColor, var(--pf-global--BackgroundColor--100, #fff));
  /** Arrow box shadow */
  box-shadow: var(
    --pf-c-popover__arrow--BoxShadow,
    var(--pf-global--BoxShadow--lg, 0 0.5rem 1rem 0 rgba(3, 3, 3, 0.16), 0 0 0.375rem 0 rgba(3, 3, 3, 0.08))
  );
  content: '';
  /** Height of the arrow */
  height: var(--pf-c-popover__arrow--Height, var(--pf-global--arrow--width-lg, 1.5625rem));
  /** Width of the arrow */
  width: var(--pf-c-popover__arrow--Width, var(--pf-global--arrow--width-lg, 1.5625rem));
  rotate: 45deg;
  z-index: -1;
  pointer-events: none;
}

#popover {
  display: block;
  position: absolute;
  opacity: 0;
  z-index: -1;
  transition: visibility 0s, opacity var(--_animation-speed) cubic-bezier(0.54, 1.5, 0.38, 1.11) 0s;
  left: 0;
  top: 0;
  translate: var(--_floating-content-translate);
  /** Popover box shadow */
  box-shadow: var(
    --pf-c-popover--BoxShadow,
    var(--pf-global--BoxShadow--lg, 0 0.5rem 1rem 0 rgba(3, 3, 3, 0.16), 0 0 0.375rem 0 rgba(3, 3, 3, 0.08))
  );
  border: 0;
  padding: 0;
  visibility: hidden;
}

#popover[open] {
  opacity: 1;
  z-index: var(--_z-index);
  visibility: visible;
}

[part='content'] {
  position: relative;
  /** Popover padding (top, right, bottom, left) */
  padding: var(--pf-c-popover__content--PaddingTop, var(--pf-global--spacer--md, 1rem))
    var(--pf-c-popover__content--PaddingRight, var(--pf-global--spacer--md, 1rem))
    var(--pf-c-popover__content--PaddingBottom, var(--pf-global--spacer--md, 1rem))
    var(--pf-c-popover__content--PaddingLeft, var(--pf-global--spacer--md, 1rem));
  word-break: break-word;
  /** Popover line height */
  line-height: var(--pf-c-popover--line-height, 1.5);
  /** Popover font-size */
  font-size: var(--pf-c-popover__content--FontSize, var(--pf-global--FontSize--sm, 0.875rem));
  color: var(--pf-c-popover__content--Color, var(--pf-global--Color--100, #151515));
  /** Popover background color */
  background-color: var(--pf-c-popover__content--BackgroundColor, var(--pf-global--BackgroundColor--100, #fff));
  /** Popover max-width */
  max-width: var(
    --pf-c-popover--MaxWidth,
    calc(var(--pf-c-popover__content--PaddingLeft, 1rem) + var(--pf-c-popover__content--PaddingRight, 1rem) + 18.75rem)
  );
  /** Popover min-width */
  min-width: var(
    --pf-c-popover--MinWidth,
    calc(var(--pf-c-popover__content--PaddingLeft, 1rem) + var(--pf-c-popover__content--PaddingRight, 1rem) + 18.75rem)
  );
  width: max-content;
}

[part='close-button'] {
  cursor: pointer;
  position: absolute;
  /** Close button right position */
  right: var(
    --pf-c-popover--c-button--Right,
    calc(var(--pf-c-popover__content--PaddingRight, 1rem) - var(--pf-global--spacer--md, 1rem))
  );
  /** Close button top position */
  top: var(
    --pf-c-popover--c-button--Top,
    calc(var(--pf-c-popover__content--PaddingTop, 1rem) - var(--pf-global--spacer--form-element, 0.375rem))
  );
}

[part='content'] > [part='close-button']:not([hidden]) ~ *:not([hidden]) {
  /** Padding between close button and its immediate sibling */
  padding-right: var(--pf-c-popover--c-button--sibling--PaddingRight, var(--pf-global--spacer--2xl, 3rem));
}

[part='header'] {
  display: flex;
  align-items: baseline;
}

[part='icon'] {
  color: var(--_header-icon-color);
  /** Heading icon right margin */
  margin-right: var(--pf-c-popover__title-icon--MarginRight, var(--pf-global--spacer--sm, 0.5rem));
}

[part='icon'] ::slotted(*),
[part='icon'] * {
  vertical-align: -0.125em;
}

[part='icon'],
[part='heading']::slotted(:is(h2, h3, h4, h5, h6)),
[part='heading'] :is(h2, h3, h4, h5, h6) {
  /** Header font-size */
  font-size: var(--pf-c-popover__title--FontSize, var(--pf-global--FontSize--md, 1rem));
  font-weight: var(--pf-global--FontWeight--normal, 400);
  --pf-icon--size: var(
    --pf-c-popover__title--FontSize,
    var(--pf-global--FontSize--md, var(--pf-global--icon--FontSize--md, 1em))
  );
}

[part='heading']::slotted(:is(h2, h3, h4, h5, h6)),
[part='heading'] :is(h2, h3, h4, h5, h6) {
  color: var(--_header-text-color);
  margin-top: 0;
  /** Header bottom margin */
  margin-bottom: var(--pf-c-popover__title--MarginBottom, var(--pf-global--spacer--sm, 0.5rem));
  /** Header line height */
  line-height: var(--pf-c-popover__title--LineHeight, var(--pf-global--LineHeight--md, 1.5));
  /** Header font-family */
  font-family: var(
    --pf-c-popover__title--FontFamily,
    var(
      --pf-global--FontFamily--heading--sans-serif,
      'RedHatDisplay',
      'Overpass',
      overpass,
      helvetica,
      arial,
      sans-serif
    )
  );
}

[part='body'] {
  display: block;
  word-wrap: break-word;
}

[part='footer'] {
  /** Footer top margin */
  margin-top: var(--pf-c-popover__footer--MarginTop, var(--pf-global--spacer--md, 1rem));
}

:host([alert-severity='default']) {
  /** Default alert heading color */
  --_header-text-color: var(--pf-c-popover--m-default__title-text--Color, var(--pf-global--default-color--300, #003737));
  /** Default alert icon color */
  --_header-icon-color: var(--pf-c-popover--m-default__title-icon--Color, var(--pf-global--default-color--200, #009596));
}

:host([alert-severity='info']) {
  /** Info alert heading color */
  --_header-text-color: var(--pf-c-popover--m-info__title-text--Color, var(--pf-global--info-color--200, #002952));
  /** Info alert icon color */
  --_header-icon-color: var(--pf-c-popover--m-info__title-icon--Color, var(--pf-global--info-color--100, #2b9af3));
}

:host([alert-severity='warning']) {
  /** Warning alert icon color */
  --_header-icon-color: var(--pf-c-popover--m-warning__title-icon--Color, var(--pf-global--warning-color--100, #f0ab00));
  /** Warning alert heading color */
  --_header-text-color: var(--pf-c-popover--m-warning__title-text--Color, var(--pf-global--warning-color--200, #795600));
}

:host([alert-severity='success']) {
  /** Success alert icon color */
  --_header-icon-color: var(--pf-c-popover--m-success__title-icon--Color, var(--pf-global--success-color--100, #3e8635));
  /** Success alert heading color */
  --_header-text-color: var(--pf-c-popover--m-success__title-text--Color, var(--pf-global--success-color--200, #1e4f18));
}

:host([alert-severity='danger']) {
  /** Danger alert icon color */
  --_header-icon-color: var(--pf-c-popover--m-danger__title-icon--Color, var(--pf-global--danger-color--100, #c9190b));
  /** Danger alert heading color */
  --_header-text-color: var(--pf-c-popover--m-danger__title-text--Color, var(--pf-global--danger-color--200, #a30000));
}
