:root {
  --al-glossary-accent: #116b55;
  --al-glossary-accent-soft: #eaf6f1;
  --al-glossary-text: #152b25;
  --al-glossary-muted: #50645d;
  --al-glossary-border: #c9d8d2;
  --al-glossary-surface: #fff;
  --al-glossary-focus: #b27618;
  --al-glossary-radius: 12px;
  --al-glossary-shadow: 0 12px 34px rgb(11 37 30 / 16%);
  --al-glossary-z: 80;
}

.al-glossary-wrap {
  display: inline;
  position: relative;
}

.al-glossary-term {
  color: var(--al-glossary-accent);
  cursor: help;
  font: inherit;
  font-style: normal;
  text-decoration: underline dotted currentcolor 1px;
  text-underline-offset: 0.18em;
}

.al-glossary-term:hover {
  background: var(--al-glossary-accent-soft);
  border-radius: 0.2em;
}

.al-glossary-term:focus {
  outline: none;
}

.al-glossary-term:focus-visible {
  background: var(--al-glossary-accent-soft);
  border-radius: 0.2em;
  outline: 3px solid var(--al-glossary-focus);
  outline-offset: 3px;
}

.al-glossary-tooltip {
  background: var(--al-glossary-surface);
  border: 1px solid var(--al-glossary-border);
  border-radius: var(--al-glossary-radius);
  box-sizing: border-box;
  box-shadow: var(--al-glossary-shadow);
  color: var(--al-glossary-text);
  display: block;
  font-size: 0.9375rem;
  font-style: normal;
  font-weight: 400;
  left: 50%;
  line-height: 1.65;
  max-width: min(320px, calc(100vw - 32px));
  opacity: 0;
  overflow-wrap: anywhere;
  padding: 0.9rem 1rem;
  pointer-events: none;
  position: absolute;
  text-align: left;
  top: calc(100% + 10px);
  transform: translate(-50%, 3px);
  transition: opacity 120ms ease, transform 120ms ease, visibility 0s linear 120ms;
  visibility: hidden;
  white-space: normal;
  width: max-content;
  z-index: var(--al-glossary-z);
}

.al-glossary-tooltip__term,
.al-glossary-tooltip__description {
  display: block;
}

.al-glossary-tooltip__term {
  color: var(--al-glossary-accent);
  font-weight: 750;
  margin-bottom: 0.22rem;
}

.al-glossary-tooltip__description {
  color: var(--al-glossary-muted);
}

.al-glossary-tooltip.is-open {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  transition-delay: 0s;
  visibility: visible;
}

.al-glossary-layer {
  inset: 0;
  pointer-events: none;
  position: fixed;
  z-index: var(--al-glossary-z);
}

.al-glossary-layer .al-glossary-tooltip {
  left: 0;
  margin: 0;
  position: fixed;
  top: 0;
  transform: none;
}

.al-glossary-layer .al-glossary-tooltip.is-open {
  pointer-events: auto;
  transform: none;
}

.al-glossary-layer .al-glossary-tooltip.is-open::before {
  content: "";
  height: 12px;
  left: 0;
  position: absolute;
  right: 0;
}

.al-glossary-layer .al-glossary-tooltip.is-open[data-placement="bottom"]::before {
  top: -12px;
}

.al-glossary-layer .al-glossary-tooltip.is-open[data-placement="top"]::before {
  bottom: -12px;
}

.al-glossary-wrap:hover > .al-glossary-tooltip,
.al-glossary-wrap:focus-within > .al-glossary-tooltip {
  opacity: 1;
  pointer-events: auto;
  transform: translate(-50%, 0);
  transition-delay: 0s;
  visibility: visible;
}

@media (prefers-reduced-motion: reduce) {
  .al-glossary-tooltip {
    transition: none;
  }
}

@media (forced-colors: active) {
  .al-glossary-term {
    color: LinkText;
    text-decoration-style: dotted;
  }

  .al-glossary-term:focus-visible {
    outline: 2px solid Highlight;
  }

  .al-glossary-tooltip {
    border: 2px solid CanvasText;
    box-shadow: none;
    forced-color-adjust: auto;
  }
}

@media print {
  .al-glossary-term {
    color: inherit;
    text-decoration: none;
  }

  .al-glossary-tooltip,
  .al-glossary-layer {
    display: none !important;
  }
}
