/* ─── Base flex divider (rule-based) ─── */
.divider {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 1.5rem 0;
}

/* ─── Pure-typography variant (no rule, needs more air) ─── */
.divider--loose {
  display: block;
  text-align: center;
  margin: 2.4rem 0;
}

/* ─── Single fading rule ─── */
.divider-line {
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--border-gold), transparent);
}

/* ─── Mid-tone fading rule (warmer, for bookend dividers) ─── */
.divider-line--mid {
  background: linear-gradient(90deg, transparent, var(--border-mid), transparent);
}

/* ─── Double fading rule (thick over thin) ─── */
.divider-line--double {
  height: 5px;
  background-image:
    linear-gradient(90deg, transparent, var(--border-gold), transparent),
    linear-gradient(90deg, transparent, var(--border-gold), transparent);
  background-size: 100% 2px, 100% 1px;
  background-position: top, bottom;
  background-repeat: no-repeat;
}

/* ─── Symbol base ─── */
.divider-sym {
  font-family: var(--font-display);
  line-height: 1;
  display: inline-block;
  user-select: none;
}

/* ─── CSS dot (replaces unreliable · character) ─── */
.divider-dot {
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: var(--border-gold);
  opacity: 0.55;
  flex: 0 0 auto;
}


/* asterism-large */
.divider--asterism-large .divider-sym { font-family: var(--font-body); color: var(--border-gold); font-size: 1.6em; }

/* asterism-normal */
.divider--asterism-normal .divider-sym { color: var(--border-gold); font-size: 1.1rem; }

/* compass */
.divider--compass .divider-sym {
      width: 2.2em;
      height: 2.2em;
      flex: 0 0 auto;
      transform: translateY(-0.5px);
    }
    .divider--compass .divider-sym svg { width: 100%; height: 100%; display: block; }

/* cross */
.divider--cross .divider-sym { color: var(--border-gold); font-size: 1.1em; transform: translateY(3px); }

/* crux */
.divider--crux .divider-sym { color: var(--text-muted); font-size: 0.95rem; transform: translateY(1.5px); }

/* dagger */
.divider--dagger .divider-sym { font-family: var(--font-body); color: var(--text-muted); font-size: 1.05rem; opacity: 0.65; transform: translateY(1px); }

/* diamonds */
.divider--diamonds .divider-sym { font-family: var(--font-body); color: var(--border-gold); font-size: 0.75em; letter-spacing: 0.6em; }

/* dinkus */
.divider--dinkus .divider-sym { font-family: var(--font-body); color: var(--border-gold); font-size: 1.1em; letter-spacing: 0.5em; }

/* double-frame */
.divider--double { gap: 0.5rem; }
    .divider--double .divider-rule {
      flex: 1;
      height: 5px;
      background-image:
        linear-gradient(to right, transparent 0%, var(--border-gold) 18%, var(--border-gold) 82%, transparent 100%),
        linear-gradient(to right, transparent 0%, var(--border-gold) 18%, var(--border-gold) 82%, transparent 100%);
      background-size: 100% 1px, 100% 1px;
      background-position: top, bottom;
      background-repeat: no-repeat;
    }
    .divider--double .divider-sym { color: var(--border-gold); font-size: 0.5rem; opacity: 0.85; }

/* em-dash */
.divider--emdash .divider-sym { font-family: var(--font-body); color: var(--text-muted); font-size: 1.4rem; opacity: 0.4; letter-spacing: 0.5em; }

/* envelope */
.divider--envelope .divider-sym { color: var(--accent); font-size: 1.15rem; opacity: 0.75; transform: translateY(2px); }

/* fleuron */
.divider--fleuron .divider-sym { color: var(--accent); font-size: 1.15rem; opacity: 0.75; transform: translateY(3px); }

/* fleuron-oxford */
/* Oxford rule: solid gold, no fade */
    .divider--fleuron-oxford .divider-line {
      height: 5px;
      background-image:
        linear-gradient(90deg, var(--border-gold), var(--border-gold)),
        linear-gradient(90deg, var(--border-gold), var(--border-gold));
      background-size: 100% 2px, 100% 1px;
      background-position: top, bottom;
      background-repeat: no-repeat;
    }
    .divider--fleuron-oxford .divider-sym { color: var(--accent); font-size: 1.3em; transform: translateY(3px); }

/* florette */
.divider--florette .divider-sym { color: var(--accent); font-size: 1.15rem; opacity: 0.75; transform: translateY(1.5px); }

/* flourish-scrollwork */
.divider--flourish { gap: 0.6rem; justify-content: center; }
    .divider--flourish .divider-arm {
      flex: 1;
      max-width: 240px;
      height: 14px;
      display: block;
      opacity: 0.65;
    }
    .divider--flourish .divider-arm svg { width: 100%; height: 100%; display: block; overflow: visible; }
    .divider--flourish .divider-arm.right { transform: scaleX(-1); }
    .divider--flourish .divider-sym { color: var(--accent); font-size: 1.05rem; opacity: 0.75; transform: translateY(3px); }

/* hedera */
.divider--hedera .divider-sym { color: var(--accent); font-size: 1.1rem; opacity: 0.7; transform: translateY(3px); }

/* hedera-bookends */
.divider--hedera-bookends { gap: 0.5rem; }
    .divider--hedera-bookends .divider-sym { color: var(--accent); font-size: 1.15em; transform: translateY(3px); }

/* hedera-fleuron */
.divider--hedera-fleuron { gap: 0.5rem; }
    .divider--hedera-fleuron .divider-sym { color: var(--accent); font-size: 1.15em; transform: translateY(3px); }
    .divider--hedera-fleuron .divider-sym--center { font-size: 1.3em; opacity: 0.75; }

/* linea */
.divider--linea {
      display: block;
      height: 1px;
      background: linear-gradient(to right, transparent 0%, var(--border-gold) 18%, var(--border-gold) 82%, transparent 100%);
    }

/* linea-fade-right */
.divider--linea-fade-right {
      display: block;
      height: 1px;
      background: linear-gradient(to right, var(--border-gold) 60%, transparent 100%);
    }

/* lozenge */
.divider--lozenge .divider-sym { color: var(--accent); font-size: 0.85rem; opacity: 0.7; transform: translateY(1.5px); }

/* lunula */
.divider--lunula { gap: 0.55rem; justify-content: center; }
    .divider--lunula .divider-sym { color: var(--text-muted); font-size: 0.85rem; opacity: 0.6; transform: translateY(1px); }
    .divider--lunula .divider-dot { background: var(--text-muted); opacity: 0.5; }

/* manicule */
.divider--manicule { gap: 0.5rem; }
    .divider--manicule .divider-sym { color: var(--accent); font-size: 1.15em; transform: translateY(2px); }

/* ornate-band */
.divider--band .divider-sym { color: var(--border-gold); font-size: 0.55rem; opacity: 0.5; letter-spacing: 0.3em; }

/* oxford-full */
.divider--oxford-full {
      display: block;
      height: 7px;
      background-image:
        linear-gradient(to right, var(--border-gold) 65%, transparent),
        linear-gradient(to right, var(--border-gold) 65%, transparent);
      background-size: 100% 2px, 100% 1px;
      background-position: top, bottom;
      background-repeat: no-repeat;
    }

/* oxford-ornament */
.divider--oxford { gap: 0.6rem; }
    .divider--oxford .divider-rule {
      flex: 1;
      height: 7px;
      background-image:
        linear-gradient(to right, transparent 0%, var(--border-gold) 22%, var(--border-gold) 78%, transparent 100%),
        linear-gradient(to right, transparent 0%, var(--border-gold) 22%, var(--border-gold) 78%, transparent 100%);
      background-size: 100% 2px, 100% 1px;
      background-position: top, bottom;
      background-repeat: no-repeat;
    }
    .divider--oxford .divider-sym { color: var(--accent); font-size: 1.05rem; opacity: 0.75; transform: translateY(1px); }

/* pearl */
.divider--pearl {
      display: block;
      height: 0.6em;
      background-image: radial-gradient(circle, var(--border-gold) 1px, transparent 1.5px);
      background-size: 1.4em 100%;
      background-position: center;
      background-repeat: repeat-x;
      width: 14em;
      max-width: 60%;
      margin: 2rem auto;
    }

/* pen-flourish */
.divider--pen-flourish {
      display: block;
      margin: 2rem auto;
    }
    .divider--pen-flourish svg {
      display: block;
      width: 60%;
      margin: 0 auto;
    }

/* pilcrow */
.divider--pilcrow .divider-sym { font-family: var(--font-body); font-style: italic; color: var(--accent); font-size: 1.05rem; opacity: 0.55; transform: translateY(-1px); }

/* rosette */
.divider--rosette .divider-sym {
      width: 2em;
      height: 2em;
      flex: 0 0 auto;
    }
    .divider--rosette .divider-sym svg { width: 100%; height: 100%; display: block; }

/* section */
.divider--section .divider-sym { font-family: var(--font-body); font-style: italic; color: var(--accent); font-size: 1.15rem; opacity: 0.55; transform: translateY(-1px); }

/* solar */
.divider--solar .divider-sym { color: var(--border-gold); font-size: 1rem; opacity: 0.7; transform: translateY(1.5px); }

/* sun */
.divider--sun .divider-sym { color: var(--border-gold); font-size: 1.25em; transform: translateY(2.5px); }

/* three-diamond */
.divider--three-diamond { gap: 1.2rem; justify-content: center; }
    .divider--three-diamond .divider-sym { color: var(--border-gold); font-size: 0.4rem; opacity: 0.6; }

/* three-star */
.divider--three-star { gap: 0.55rem; justify-content: center; }
    .divider--three-star .divider-sym { color: var(--border-gold); font-size: 0.7rem; opacity: 0.6; transform: translateY(1px); }