/* ========================================
   Separator / Divider Block
   Prefix: bkbg-div-
   ======================================== */

/* ── CSS Custom Properties ─────────────────────────────────────────────────── */
.bkbg-div-wrap {
  --bkbg-div-color:       #d1d5db;
  --bkbg-div-thickness:   1px;
  --bkbg-div-svgh:        24px;
  --bkbg-div-dot-spacing: 14px;
  --bkbg-div-gap:         16px;
  --bkbg-div-width:       100%;
  --bkbg-div-mt:          24px;
  --bkbg-div-mb:          24px;
  --bkbg-div-text-size:   14px;
  --bkbg-div-text-weight: 400;
  --bkbg-div-text-color:  #9ca3af;
  --bkbg-div-text-bg:     transparent;
  --bkbg-div-text-ph:     12px;
  --bkbg-div-text-pv:     4px;
  --bkbg-div-text-radius: 4px;
}

/* ── Outer margin wrapper ──────────────────────────────────────────────────── */
.bkbg-div-outer {
  display: block;
}

/* ── Divider row ───────────────────────────────────────────────────────────── */
.bkbg-div-wrap {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: var(--bkbg-div-gap);
  width: var(--bkbg-div-width);
  margin-inline: auto;
}

/* ── Line segment (base) ───────────────────────────────────────────────────── */
.bkbg-div-seg {
  display: block;
  flex-shrink: 1;
  /* flex: value comes from inline style */
}

/* ── Line: solid ───────────────────────────────────────────────────────────── */
.bkbg-div-wrap[data-type="line"] .bkbg-div-seg {
  border-top: var(--bkbg-div-thickness) solid var(--bkbg-div-color);
  height: 0;
}

/* ── Line: dashed ──────────────────────────────────────────────────────────── */
.bkbg-div-wrap[data-type="dashed"] .bkbg-div-seg {
  border-top: var(--bkbg-div-thickness) dashed var(--bkbg-div-color);
  height: 0;
}

/* ── Line: dotted ──────────────────────────────────────────────────────────── */
.bkbg-div-wrap[data-type="dotted"] .bkbg-div-seg {
  border-top: var(--bkbg-div-thickness) dotted var(--bkbg-div-color);
  height: 0;
}

/* ── Line: double ──────────────────────────────────────────────────────────── */
.bkbg-div-wrap[data-type="double"] .bkbg-div-seg {
  border-top: var(--bkbg-div-thickness) solid var(--bkbg-div-color);
  border-bottom: var(--bkbg-div-thickness) solid var(--bkbg-div-color);
  height: calc(var(--bkbg-div-thickness) * 2 + 4px);
}
/* ── Line: triple (three lines via background-image) ───────────────────────── */
.bkbg-div-wrap[data-type="triple"] .bkbg-div-seg {
  border: none;
  height: calc(var(--bkbg-div-thickness) * 3 + 8px);
  background-image:
    linear-gradient(var(--bkbg-div-color), var(--bkbg-div-color)),
    linear-gradient(var(--bkbg-div-color), var(--bkbg-div-color)),
    linear-gradient(var(--bkbg-div-color), var(--bkbg-div-color));
  background-size: 100% var(--bkbg-div-thickness);
  background-repeat: no-repeat;
  background-position: 0 0, 0 50%, 0 100%;
}

/* ── Line: gradient (fades in from both ends) ────────────────────────────── */
.bkbg-div-wrap[data-type="gradient"] .bkbg-div-seg {
  border: none;
  height: var(--bkbg-div-thickness);
  background: linear-gradient(
    to right,
    transparent 0%,
    var(--bkbg-div-color) 20%,
    var(--bkbg-div-color) 80%,
    transparent 100%
  );
}
/* ── Dots: repeating radial gradient ───────────────────────────────────────── */
.bkbg-div-wrap[data-type="dots"] .bkbg-div-seg {
  height: var(--bkbg-div-svgh);
  background-image: radial-gradient(
    circle,
    var(--bkbg-div-color) var(--bkbg-div-thickness),
    transparent calc(var(--bkbg-div-thickness) + 1px)
  );
  background-size: var(--bkbg-div-dot-spacing) var(--bkbg-div-svgh);
  background-repeat: repeat-x;
  background-position: 0 center;
  border: none;
}

/* ── Wave / Zigzag / Scallop / Arrows / Brush / Heartbeat: SVG segments ──────── */
.bkbg-div-wrap[data-type="wave"] .bkbg-div-seg,
.bkbg-div-wrap[data-type="zigzag"] .bkbg-div-seg,
.bkbg-div-wrap[data-type="scallop"] .bkbg-div-seg,
.bkbg-div-wrap[data-type="arrows"] .bkbg-div-seg,
.bkbg-div-wrap[data-type="brush"] .bkbg-div-seg,
.bkbg-div-wrap[data-type="heartbeat"] .bkbg-div-seg {
  overflow: hidden;
}

.bkbg-div-wrap[data-type="wave"] .bkbg-div-seg svg,
.bkbg-div-wrap[data-type="zigzag"] .bkbg-div-seg svg,
.bkbg-div-wrap[data-type="scallop"] .bkbg-div-seg svg,
.bkbg-div-wrap[data-type="arrows"] .bkbg-div-seg svg,
.bkbg-div-wrap[data-type="brush"] .bkbg-div-seg svg,
.bkbg-div-wrap[data-type="heartbeat"] .bkbg-div-seg svg {
  display: block;
  width: 100%;
}

/* ── Middle container ──────────────────────────────────────────────────────── */
.bkbg-div-middle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  line-height: 1;
}

/* ── Middle: icon ──────────────────────────────────────────────────────────── */
.bkbg-div-mid-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* ── Middle: text ──────────────────────────────────────────────────────────── */
.bkbg-div-mid-text {
  font-size: var(--bkbg-div-text-size);
  font-weight: var(--bkbg-div-text-weight);
  color: var(--bkbg-div-text-color);
  background: var(--bkbg-div-text-bg);
  padding: var(--bkbg-div-text-pv) var(--bkbg-div-text-ph);
  border-radius: var(--bkbg-div-text-radius);
  white-space: nowrap;
  line-height: 1.2;
  display: inline-block;
}

/* ── "No middle" shorthand: hide right segment when flex 0 ─────────────────── */
.bkbg-div-seg[style*="flex: 0 0 0px"] {
  display: none;
}

/* ── Editor: make wrap display flex correctly in the block editor ───────────── */
.editor-styles-wrapper .bkbg-div-wrap {
  display: flex !important;
}

/* RichText span inside middle text needs inline-block for padding */
.editor-styles-wrapper .bkbg-div-mid-text {
  display: inline-block;
  min-width: 4px;
}
