@charset "UTF-8";
/**
 * KV Divi Modules — front-end & builder styles for the Definition List pair.
 *
 * Token-bound to the Knöll & Vogel design system: every colour/size/font is a
 * var(--gcid-kv-*) / var(--gvid-kv-*) global. Works on light (offwhite /
 * parchment) surfaces by default; add the Surface = Dark option (which prints
 * the `kv-dl-wrap--dark` modifier) for navy sections. Design-tab typography on
 * each element (Term / Title / Meta / Label) overrides these defaults because
 * Divi prints those rules with higher, per-instance specificity.
 */

/* Wrapper -------------------------------------------------------------- */
.kv-dl-wrap {
  display: block;
}

.kv-dl__label {
  margin: 0 0 var(--gvid-kv-space-sm);
  font-family: var(--gvid-kv-font-sans);
  font-size: var(--gvid-kv-text-xs);
  font-weight: 600;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: var(--gcid-kv-gold-deep);
}

/* List ----------------------------------------------------------------- */
.kv-dl {
  display: flex;
  flex-direction: column;
  margin: 0;
  padding: 0;
}

/* Row (child module) --------------------------------------------------- */
.kv-dl__group {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: var(--gvid-kv-space-md);
  padding: var(--gvid-kv-space-sm) 0;
  border-top: 1px solid var(--gcid-kv-line);
}

.kv-dl__group:first-child {
  border-top: none;
}

/* Term (date) ---------------------------------------------------------- */
.kv-dl__term {
  flex: 0 0 168px;
  margin: 0;
  font-family: var(--gvid-kv-font-serif);
  font-size: var(--gvid-kv-text-lg);
  line-height: 1.2;
  color: var(--gcid-kv-gold-deep);
  letter-spacing: 0.02em;
  font-variant: small-caps;
}

/* Description column ---------------------------------------------------- */
.kv-dl__desc {
  flex: 1 1 360px;
  margin: 0;
  display: block;
}

.kv-dl__title {
  display: block;
  font-family: var(--gvid-kv-font-serif);
  font-size: var(--gvid-kv-text-md);
  line-height: 1.25;
  color: var(--gcid-kv-navy);
  font-variant: small-caps;
  letter-spacing: 0.01em;
}

.kv-dl__meta {
  display: block;
  margin-top: 4px;
  font-family: var(--gvid-kv-font-sans);
  font-size: var(--gvid-kv-text-sm);
  line-height: 1.55em;
  color: var(--gcid-kv-muted);
}

.kv-dl__link,
.kv-dl__meta .kv-dl__link {
  color: inherit;
  text-decoration: underline;
}

/* Dark-surface modifier (navy sections) -------------------------------- */
.kv-dl-wrap--dark .kv-dl__label {
  color: var(--gcid-kv-gold-bright);
}

.kv-dl-wrap--dark .kv-dl__group {
  border-top-color: rgba(255, 255, 255, 0.14);
}

.kv-dl-wrap--dark .kv-dl__term {
  color: var(--gcid-kv-gold-bright);
}

.kv-dl-wrap--dark .kv-dl__title {
  color: #fff;
}

.kv-dl-wrap--dark .kv-dl__meta {
  color: rgba(255, 255, 255, 0.68);
}

/* Responsive ----------------------------------------------------------- */
@media (max-width: 767px) {
  .kv-dl__term {
    flex-basis: 100%;
  }
}

/* Schwarm (murmuration canvas host) ------------------------------------ */
/* The module wrapper fills its (position:relative) section as a background
 * layer, out of the section's flex flow. The inner .kv-schwarm-canvas is the
 * host the boot script tags with .kv-schwarm-host (position:relative +
 * overflow:hidden) and fills with an absolutely-positioned <canvas>.
 * The selector is deliberately specific (.et_pb_module + section context) to
 * beat Divi core's `.et_pb_section .et_pb_module { position: relative }`. */
.et_pb_section .kv-schwarm-module.et_pb_module {
  position: absolute;
  inset: 0;
  z-index: 0;
  margin: 0;
  padding: 0;
}

.kv-schwarm-module.et_pb_module .kv-schwarm-canvas {
  width: 100%;
  height: 100%;
}
