private function cardBodyHtml() : string
    {
        $html = '';

        foreach ($this->body_sections as $section) {
            switch ($section['type']) {
                case 'title':
                    $html .= '<' . $section['tag'] . ' class="card-title' .
                        $this->elementBodyClasses('title') . '"' .
                        $this->elementBodyAttr('title')  . '>' . $section['content'] .
                        '</' . $section['tag'] . '>';
                    break;

                case 'subtitle':
                    $html .= '<' . $section['tag'] . ' class="card-subtitle' .
                        $this->elementBodyClasses('subtitle') . '"' .
                        $this->elementBodyAttr('subtitle') . '>' .
                        $section['content'] . '</' . $section['tag'] . '>';
                    break;

                case 'text':
                    $html .= '<p class="card-text' . $this->elementBodyClasses('text') . '"' .
                        $this->elementBodyAttr('text') . '>' . $section['content'] . '</p>';
                    break;

                case 'link':
                    $html .= '<a href="' . $section['uri'] . '" class="' .
                        $this->elementBodyClasses('link') . '"' .
                        $this->elementBodyAttr('link') . '>' . $section['content'] . '</a>';
                    break;

                default:
                    // Do nothing
                    break;
            }
        }

        return $html;
    }