.speech-bubble {
  overflow: hidden;
  margin: 10px 0; }
  .speech-bubble p {
    margin: 0; }
  .speech-bubble:after {
    clear: both;
    content: "";
    display: table; }
  .speech-bubble:before {
    content: "";
    display: table; }

.sb-bubble {
  position: relative;
  max-width: 70%; }
  .sb-bubble:after, .sb-bubble:before {
    content: " ";
    height: 0;
    pointer-events: none;
    position: absolute;
    top: 1.2em;
    width: 0; }

.sb-bubble-left,
.sb-icon-left {
  float: left; }

.sb-bubble-right,
.sb-icon-right {
  float: right; }

.sb-bubble-type-std {
  background: #ffffff;
  border: 2px solid #999999;
  border-radius: .4em;
  padding: .4em 1em; }
  .sb-bubble-type-std.sb-bubble-left:after {
    border-color: #ffffff00;
    border-right-color: #ffffff;
    border-width: 10px 20px;
    margin: -10px -4.5px 0 0;
    right: 100%; }
  .sb-bubble-type-std.sb-bubble-left:before {
    border-color: #ffffff00;
    border-right-color: #999999;
    border-width: 10px 20px;
    margin-top: -10px;
    right: 100%; }
  .sb-bubble-type-std.sb-bubble-right:after {
    border-color: #ffffff00;
    border-left-color: #ffffff;
    border-width: 10px 20px;
    left: 100%;
    margin: -10px 0 0 -4.5px; }
  .sb-bubble-type-std.sb-bubble-right:before {
    border-color: #ffffff00;
    border-left-color: #999999;
    border-width: 10px 20px;
    left: 100%;
    margin-top: -10px; }
  .sb-bubble-type-std:after, .sb-bubble-type-std:before {
    border: solid transparent; }

.sb-bubble-type-flat {
  border: solid 2px #c5d0e4;
  border-radius: .5em;
  margin-top: 15px;
  padding: .2em 1em; }
  .sb-bubble-type-flat.sb-bubble-left {
    background: #ffffff;
    border-top-left-radius: 0; }
    .sb-bubble-type-flat.sb-bubble-left:after {
      height: 1em;
      width: 1em;
      right: 100%;
      top: -2px;
      background: #ffffff;
      border-color: #c5d0e4;
      border-style: solid;
      border-radius: 0 1em 0 0;
      border-width: 2px 2px 0 0; }
    .sb-bubble-type-flat.sb-bubble-left:before {
      height: 1em;
      width: 1em;
      right: 100%;
      top: -2px;
      background: #ffffff;
      border-top: solid 2px #c5d0e4; }
  .sb-bubble-type-flat.sb-bubble-right {
    background: #d5e0f4;
    border-top-right-radius: 0; }
    .sb-bubble-type-flat.sb-bubble-right:after {
      height: 1em;
      width: 1em;
      left: 100%;
      top: -2px;
      background: #ffffff;
      border-width: 2px 0 0 2px;
      border-style: solid;
      border-color: #c5d0e4;
      border-radius: 1em 0 0 0; }
    .sb-bubble-type-flat.sb-bubble-right:before {
      height: 1em;
      width: 1em;
      left: 100%;
      top: -2px;
      background: #d5e0f4;
      border-top: solid 2px #c5d0e4; }

.sb-bubble-type-pop {
  border: solid 1px #f7ffff;
  border-radius: 1em;
  margin-top: 15px;
  padding: .2em 1em; }
  .sb-bubble-type-pop.sb-bubble-left {
    background: linear-gradient(to bottom, #f7ffff 0%, #f4f5f7 20%, #f4f5f7 80%, #d5d8dd 100%); }
    .sb-bubble-type-pop.sb-bubble-left:after {
      height: 1.6em;
      width: 0.8em;
      right: 100%;
      border: solid #f7ffff;
      border-width: 0 0 1px 1px;
      border-radius: 1.6em 0 0 1.6em;
      background: #ffffff;
      margin: -2.3em 0 0 -2px; }
    .sb-bubble-type-pop.sb-bubble-left:before {
      height: 1.6em;
      width: 0.8em;
      right: 100%;
      border: solid #f7ffff;
      border-width: 0 0 1px 1px;
      border-radius: 1.6em 0 0 1.6em;
      background: #f4f5f7;
      margin: -1.8em 0 0 -1px; }
  .sb-bubble-type-pop.sb-bubble-right {
    background: linear-gradient(to bottom, #daf0a9 0%, #afe64a 20%, #afe64a 80%, #8cc159 100%); }
    .sb-bubble-type-pop.sb-bubble-right:after {
      height: 1.6em;
      width: 0.8em;
      left: 100%;
      border: solid #f7ffff;
      border-width: 0 1px 1px 0;
      border-radius: 0 1.6em 1.6em 0;
      background: #ffffff;
      margin: -2.3em 0 0 -1px; }
    .sb-bubble-type-pop.sb-bubble-right:before {
      height: 1.6em;
      width: 0.8em;
      left: 100%;
      border: solid #f7ffff;
      border-width: 0 1px 1px 0;
      border-radius: 0 1.6em 1.6em 0;
      background: #afe64a;
      margin: -1.8em 0 0 -1px; }

.sb-bubble-type-think {
  background: #ffebb3;
  border-radius: 2em;
  margin: 0 40px;
  padding: 1em; }
  .sb-bubble-type-think.sb-bubble-left:after {
    background: #ffebb3;
    border-radius: 50%;
    bottom: 3px;
    content: "";
    height: 18px;
    left: -24px;
    position: absolute;
    width: 20px; }
  .sb-bubble-type-think.sb-bubble-left:before {
    background: #ffebb3;
    border-radius: 50%;
    bottom: 0;
    content: "";
    height: 12px;
    left: -38px;
    position: absolute;
    width: 13px; }
  .sb-bubble-type-think.sb-bubble-right:after {
    background: #ffebb3;
    border-radius: 50%;
    bottom: 3px;
    content: "";
    height: 18px;
    position: absolute;
    right: -24px;
    width: 20px; }
  .sb-bubble-type-think.sb-bubble-right:before {
    background: #ffebb3;
    border-radius: 50%;
    bottom: 0;
    content: "";
    height: 12px;
    position: absolute;
    right: -38px;
    width: 13px; }

.sb-icon figcaption {
  font-size: .8em;
  font-weight: bold;
  text-align: center;
  width: 94px; }

.sb-icon .sb-icon-type-circle,
.sb-icon .sb-icon-type-hidden,
.sb-icon .sb-icon-type-square {
  height: 50px;
  margin: 5px 22px;
  vertical-align: middle;
  width: 50px; }

.sb-icon .sb-icon-type-circle img {
  border-radius: 50%;
  object-fit: cover; }

.sb-icon .sb-icon-type-hidden {
  visibility: hidden; }

.sb-icon .sb-icon-type-square {
  object-fit: cover; }
