.family-tree{background:#fff}
.tree-heading{margin-bottom:2.5rem}
.tree-head{display:flex;align-items:center;gap:2rem;padding:2.2rem;background:#0b0c0e;color:#fff;border-bottom:6px solid var(--red);margin-bottom:1.5rem}
.tree-head img{width:110px;height:120px;object-fit:contain;background:#fff;padding:.35rem}
.tree-head small{color:var(--red);font-weight:800;text-transform:uppercase;letter-spacing:.1em}
.tree-head h3{font-size:2.7rem;margin:.45rem 0}
.tree-head p{margin:0;font-weight:600}.tree-head p span{color:#aeb1b7;font-size:.82rem}
.dan-groups{display:grid;gap:1rem}
.rank-group{display:grid;grid-template-columns:170px 1fr;border:1px solid #dedfe2;background:#fff}
.rank-title{padding:1.5rem;background:#15171a;color:#fff;display:flex;flex-direction:column;justify-content:center}
.rank-title strong{font:800 1.9rem var(--display);text-transform:uppercase}
.rank-title span{color:var(--red);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800}
.member-grid{display:grid;grid-template-columns:repeat(3,1fr)}
.member{padding:1.2rem 1.35rem;border-right:1px solid #e4e5e7;border-bottom:1px solid #e4e5e7;min-height:92px}
.member strong,.member span,.member small{display:block}
.member strong{font:700 1.15rem var(--display);text-transform:uppercase}
.member span{color:#676b72;font-size:.78rem;margin-top:.2rem}
.member small{color:var(--red);font-size:.68rem;font-weight:800;text-transform:uppercase;margin-top:.25rem}
.black-belts{margin-top:1rem}.black-belts .rank-title{background:var(--red)}.black-belts .rank-title span{color:#fff}
.empty-rank{display:flex;align-items:center;padding:1.5rem;color:#8a8e95;font-size:.82rem;font-style:italic;background:linear-gradient(90deg,#f7f7f8,#fff)}
@media(max-width:900px){.member-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.tree-head{align-items:flex-start;gap:1.2rem;padding:1.4rem}.tree-head img{width:78px;height:88px}.tree-head h3{font-size:2rem}.rank-group{grid-template-columns:1fr}.rank-title{padding:1rem 1.2rem}.rank-title strong{font-size:1.55rem}.member-grid{grid-template-columns:1fr}.member{min-height:auto}.tree-heading{margin-bottom:1.8rem}}
