/* The company family is a reading diagram, with no interactive elements. */
.corporate-family { border-top: 1px solid #d7e5e9; background: #fff; color: #062d3d; }
.family-heading { max-width: 900px; margin: 0 auto 56px; text-align: center; }
.family-heading .eyebrow { color: #075e70; margin-bottom: 18px; }
.family-heading h2 { margin: 0; font-size: clamp(36px, 4.6vw, 56px); line-height: 1.15; letter-spacing: -.04em; }
.family-ownership { max-width: 880px; margin: 0 auto; text-align: center; }
.family-holding { position: relative; margin: 0; color: #075e70; font-family: var(--display); font-size: 24px; font-weight: 650; line-height: 1.45; letter-spacing: -.025em; }
.family-holding::after { content: ''; position: absolute; left: 50%; bottom: -28px; width: 1px; height: 28px; background: #7ac6d2; }
.family-ownership-branches { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px; margin-top: 28px; padding-top: 28px; }
.family-ownership-branches::before { content: ''; position: absolute; top: 0; left: calc(25% - 12px); right: calc(25% - 12px); height: 1px; background: #7ac6d2; }
.family-ownership-branches > p { position: relative; min-width: 0; margin: 0; font-family: var(--display); font-size: 22px; line-height: 1.45; letter-spacing: -.025em; font-weight: 600; overflow-wrap: anywhere; }
.family-ownership-branches > p::before { content: ''; position: absolute; top: -28px; left: 50%; width: 1px; height: 28px; background: #7ac6d2; }
.family-ownership--partial .family-holding::after,
.family-ownership--partial .family-ownership-branches::before,
.family-ownership--partial .family-ownership-branches > p::before { display: none; }
.family-ownership--partial .family-ownership-branches { margin-top: 20px; padding-top: 0; }
.family-network { margin-top: 64px; }
.family-network-label { margin: 0; color: #4c6b77; font-size: 16px; line-height: 1.65; text-align: center; }
.family-orbit { position: relative; width: min(1000px, 100%); aspect-ratio: 1000 / 680; margin: 12px auto 36px; }
.family-orbit-lines { position: absolute; inset: 0; display: block; width: 100%; height: 100%; overflow: visible; color: #abd9e1; }
.family-orbit-lines circle { stroke: #c9e5e9; stroke-width: 1; }
.family-orbit-lines path { stroke: currentColor; stroke-width: 1.25; }
.family-orbit-center { position: absolute; left: 50%; top: 50%; display: flex; align-items: center; justify-content: center; width: 22%; aspect-ratio: 1; padding: 24px; transform: translate(-50%, -50%); border: 1px solid #a7d8e1; border-radius: 50%; background: #eff9fa; color: #062d3d; font-family: var(--display); font-size: clamp(20px, 2.3vw, 28px); font-weight: 700; line-height: 1.35; letter-spacing: -.035em; text-align: center; overflow-wrap: anywhere; }
.family-orbit-node { position: absolute; display: grid; justify-items: center; align-content: center; gap: 7px; width: 190px; min-height: 88px; padding: 12px 8px; transform: translate(-50%, -50%); background: #fff; color: #062d3d; font-family: var(--display); font-size: 20px; font-weight: 600; line-height: 1.4; letter-spacing: -.025em; text-align: center; overflow-wrap: anywhere; }
.family-orbit-node--1 { left: 50%; top: 11.7647%; }
.family-orbit-node--2 { left: 74.7275%; top: 38.1847%; }
.family-orbit-node--3 { left: 65.2824%; top: 80.9329%; }
.family-orbit-node--4 { left: 34.7176%; top: 80.9329%; }
.family-orbit-node--5 { left: 25.2725%; top: 38.1847%; }
.family-number { display: block; color: #075e70; font-family: var(--body); font-size: 14px; font-weight: 600; line-height: 1.6; letter-spacing: .03em; font-variant-numeric: tabular-nums; }
.family-groups { columns: 3; column-gap: 48px; margin: 0; padding: 0; list-style: none; }
.family-group { display: flow-root; break-inside: avoid; margin: 0 0 40px; padding-top: 24px; border-top: 1px solid #cde0e6; }
.family-group-heading { display: grid; grid-template-columns: 26px minmax(0, 1fr); align-items: start; gap: 12px; margin-bottom: 20px; }
.family-group-heading .family-number { padding-top: 4px; }
.family-group h3 { margin: 0; color: #062d3d; font-family: var(--display); font-size: 22px; font-weight: 650; line-height: 1.4; letter-spacing: -.025em; overflow-wrap: anywhere; }
.family-company-list,
.family-company-children { list-style: none; margin: 0; padding: 0; }
.family-company-list { padding-left: 38px; }
.family-company-list li { min-width: 0; margin: 0; color: #355966; font-size: 16px; line-height: 1.65; overflow-wrap: anywhere; }
.family-company-list li + li { margin-top: 13px; }
.family-company-children { margin: 12px 0 4px 2px; padding-left: 16px; border-left: 1px solid #acd9e2; }
.family-company-children > li { position: relative; }
.family-company-children > li::before { content: ''; position: absolute; left: -16px; top: .8em; width: 9px; height: 1px; background: #acd9e2; }

@media (max-width: 1099px) {
  .family-groups { columns: 2; column-gap: 40px; }
  .family-orbit-node { width: 170px; font-size: 18px; }
}
@media (max-width: 959px) {
  .family-heading { margin-bottom: 42px; }
  .family-orbit { width: min(620px, 100%); margin: 24px auto 36px; }
  .family-orbit-center { width: 30%; padding: 8px; font-size: clamp(15px, 3vw, 22px); overflow-wrap: normal; }
  .family-orbit-node { width: 48px; min-height: 36px; padding: 4px; gap: 0; }
  .family-orbit-node > span:last-child { display: none; }
  .family-network { margin-top: 52px; }
  .family-network-label { margin-bottom: 0; }
}
@media (max-width: 699px) {
  .family-holding { font-size: 22px; }
  .family-ownership-branches { gap: 28px; }
  .family-ownership-branches::before { left: calc(25% - 7px); right: calc(25% - 7px); }
  .family-ownership-branches > p { font-size: 18px; }
  .family-groups { columns: 1; }
  .family-group { margin-bottom: 34px; padding-top: 22px; }
  .family-group h3 { font-size: 22px; }
  .family-company-list li { font-size: 17px; }
}
@media (max-width: 399px) {
  .family-holding { font-size: 20px; }
  .family-ownership-branches > p { font-size: 16px; }
  .family-group-heading { grid-template-columns: 24px minmax(0, 1fr); gap: 10px; }
  .family-group h3 { font-size: 21px; }
  .family-company-list { padding-left: 0; }
}
