.org_wrap { position: relative; text-align: center; padding-right: 15rem; }
.org_wrap .std { display: flex; justify-content: center; align-items: center; border-radius: 0.5rem; margin: 0 auto; font-weight: 600; }

.org_wrap h2 .std { max-width:8rem; height:3rem; color:#fff; background:#215c00; font-size: 1rem; }
.org_wrap h3 { position: relative; padding-top: 2rem; }
.org_wrap h3::before { position: absolute; top: 0; left: 50%; width: 1px; height: 100%; background: #ccc; content: ""; z-index: 0; }
.org_wrap h3::after { position: absolute; top: 0; right: -0.25rem; width: calc(50% + 0.25rem); height: 1px; background: #ccc; content: ""; z-index: 0; }
.org_wrap h3 .std { position: relative; max-width:8rem; height:2.5rem; color:#215c00; background:#fff; font-size: 0.9rem; border: 1px solid #215c00; z-index: 1; }
.org_wrap h4 { position: relative; padding-top: 1.5rem; }
.org_wrap h4::before { position: absolute; top: 0; left: 50%; width: 1px; height: 100%; background: #ccc; content: ""; z-index: 0; }
.org_wrap h4::after { position: absolute; top: 0; right: -0.25rem; width: calc(50% + 0.25rem); height: 1px; background: #ccc; content: ""; z-index: 0; }
.org_wrap h4 .std { position: relative; max-width:6rem; height:2.5rem; color:#111; background:#fff; font-size: 0.9rem; border: 1px solid #111; z-index: 1; }

.org_wrap .org_dep1 h3 { padding-bottom: 2rem; padding-top: 3rem; }
.org_wrap .org_dep1 h3::after { display: none; }
.org_wrap .org_dep1 .etc { position:absolute; top: 3.2rem; left: 50%; transform: translateX(calc(-50% - 8rem)); width: 28rem; max-width: 100%; }
.org_wrap .org_dep1 .etc::before { position: absolute; top: 50%; left: 0; width: 100%; height: 1px; background: #ccc; content: ""; z-index: -1; }
.org_wrap .org_dep1 .etc ul { display: flex; justify-content: space-between; }
.org_wrap .org_dep1 .etc ul li .std { width:6rem; height:2.5rem; color:#111; background:#f4f4f4; border:1px solid #e0e0e0; }

.org_wrap .org_dep2 h3 { padding-bottom: 2rem; }
.org_wrap .org_dep2 > ul > li:nth-child(2) h3::after { width: calc(100% + 0.5rem); }
.org_wrap .org_dep2 > ul > li:nth-child(3) h3::after { right: auto; left: -0.25rem; }
.org_wrap .org_dep2 > ul > li:nth-child(1) > ul > li:nth-child(2) h4::after { right: auto; left: -0.25rem; }
.org_wrap .org_dep2 > ul > li:nth-child(2) > ul > li:nth-child(2) h4::after { right: auto; left: -0.25rem; }
.org_wrap .org_dep2 > ul > li:nth-child(3) > ul > li:nth-child(2) h4::after { width: calc(100% + 0.5rem); }
.org_wrap .org_dep2 > ul > li:nth-child(3) > ul > li:nth-child(3) h4::after { right: auto; left: -0.25rem; }
.org_wrap .org_dep2 > ul > li:nth-child(3) > ul > li:nth-child(3) h4 { padding-bottom: 0.5rem; }
.org_wrap .org_dep2 ul { display: flex; gap: 0 0.5rem; }
.org_wrap .org_dep2 ul li { flex: 1; }
.org_wrap .org_dep2 ul li .etc { position: absolute; text-align: left; border: 1px solid #ccc; border-radius: 0.5rem; padding: 1rem; font-size: 0.8rem; background: #fff; }
.org_wrap .org_dep2 ul li .etc p + p { margin-top: 0.5rem; }

.org_wrap .org_dep3 { margin-top: 6rem; }
.org_wrap .org_dep3 h4 { padding-top: 0; }
.org_wrap .org_dep3 h4::after,
.org_wrap .org_dep3 h4::before { display: none; }
.org_wrap .org_dep3 ul { display: flex; gap: 0.5rem; }
.org_wrap .org_dep3 ul li h4 .std { width: 6rem; margin: 0; }

@media (max-width:1600px){
    .org_wrap { padding-right: 11rem; }
    .org_wrap .org_dep1 .etc { transform: translateX(calc(-50% - 6rem)); }
}

@media (max-width:1480px){
    .org_wrap { padding-right: 5rem; }
    .org_wrap .org_dep1 .etc { transform: translateX(calc(-50% - 3rem)); }
}

@media (max-width:940px){
    .org_wrap { padding-right: 0; }
    .org_wrap .org_dep1 .etc { transform: translateX(-50%); }
    .org_wrap .org_dep2 h3 { padding-top: 0; padding-bottom: 1rem; }
    .org_wrap .org_dep2 h3::after { display: none; }
    .org_wrap .org_dep2 > ul { display: block; }
    .org_wrap .org_dep2 > ul > li + li { margin-top: 1.5rem; }
    .org_wrap .org_dep2 > ul > li > ul { gap: 1rem 0.5rem; flex-wrap: wrap; background: #f8f8f8; border: 3px solid #eee; border-radius: 1rem; padding: 1.5rem; }
    .org_wrap .org_dep2 ul li .etc { position: relative; }

    .org_wrap h4 { padding-top: 0; }
    .org_wrap h4::after { display: none; }
    .org_wrap h4 .std { max-width: 100%; }

    .org_wrap .org_dep3 { margin-top: 1.5rem; }
}

@media (max-width:480px){
    .org_wrap .org_dep2 > ul > li > ul { padding: 0.5rem; gap: 0.5rem; }
}