/* Kalavali tree — shared styles. Page apne hisaab se --kv-* variables override karta hai. */
.kv-tree {
  --kv-line: #c39434;
  --kv-maroon: #6e1423;
  --kv-muted: #6b5a4e;
  --kv-gap: 10px;        /* columns ke beech */
  --kv-stub: 14px;       /* connector lines ki lambai */
  --kv-fs: 13px;         /* naam ka font size */
  --kv-col-min: 150px;
  position: relative; font-size: var(--kv-fs);
}
.kv-root { display: flex; justify-content: center; padding-bottom: var(--kv-stub); position: relative; }
.kv-root::after { content: ""; position: absolute; bottom: 0; left: 50%; height: var(--kv-stub); border-left: 1.5px solid var(--kv-line); }

.kv-row { display: grid; grid-template-columns: repeat(var(--kv-cols), minmax(var(--kv-col-min), 1fr)); gap: 0; }
.kv-col { position: relative; padding: var(--kv-stub) calc(var(--kv-gap) / 2) 0; }
/* horizontal bar + stub down to each sibling */
.kv-col::before { content: ""; position: absolute; top: 0; left: 0; right: 0; border-top: 1.5px solid var(--kv-line); }
.kv-col:first-child::before { left: 50%; }
.kv-col:last-child::before { right: 50%; }
.kv-col:only-child::before { display: none; }
.kv-col::after { content: ""; position: absolute; top: 0; left: 50%; height: var(--kv-stub); border-left: 1.5px solid var(--kv-line); }

.kv-card {
  background: #fff; border: 1px solid #ecd59c; border-top: 3px solid var(--kv-maroon); border-radius: 8px;
  padding: .55em .65em; font-size: var(--kv-fs); line-height: 1.3; position: relative;
}
.kv-card.root { border-top-color: var(--kv-line); text-align: center; font-weight: 600; color: var(--kv-maroon); padding: .5em 1.4em; }
.kv-card.is-self { background: #fdf3df; border-color: var(--kv-line); box-shadow: 0 0 0 1.5px var(--kv-line); }
.kv-rel { display: block; font-size: .68em; letter-spacing: .12em; text-transform: uppercase; color: var(--kv-line); font-weight: 500; }
.kv-p b { display: block; color: var(--kv-maroon); font-weight: 600; }
.kv-p b.kv-long { font-size: .88em; letter-spacing: -.01em; }
.kv-p small { display: block; color: var(--kv-muted); font-size: .82em; font-weight: 300; }
.kv-sp { margin-top: .4em; padding-top: .4em; border-top: 1px dashed #ecd59c; }
.kv-sp b { color: #2b1d16; font-weight: 500; }
.kv-gkids { margin-top: .35em; font-size: .8em; color: var(--kv-muted); }
.kv-gkids::before { content: "Children: "; color: var(--kv-line); }

/* children: vertical line down the left, small tick into each child card */
.kv-kids { position: relative; margin-left: .9em; padding-left: .9em; padding-top: var(--kv-gap); }
.kv-kids > .kv-card { margin-bottom: var(--kv-gap); }
.kv-kids > .kv-card:last-child { margin-bottom: 0; }
/* tick into card + vertical segment (last child ki line tick pe ruk jaati hai) */
.kv-kids > .kv-card::before { content: ""; position: absolute; left: calc(-.9em - 3px); top: 1.4em; width: .9em; border-top: 1.5px solid var(--kv-line); }
.kv-kids > .kv-card::after { content: ""; position: absolute; left: calc(-.9em - 3px); top: calc(-1 * var(--kv-gap) - 1px); bottom: calc(-1 * var(--kv-gap)); border-left: 1.5px solid var(--kv-line); }
.kv-kids > .kv-card:last-child::after { bottom: auto; height: calc(var(--kv-gap) + 1.4em + 1px); }
.kv-card.kid { border-top-width: 1px; border-left: 3px solid var(--kv-maroon); }
.kv-card.kid.is-self { border-left-color: var(--kv-line); }

.kv-empty { text-align: center; color: var(--kv-muted); font-style: italic; margin-top: 8px; font-size: var(--kv-fs); }
