/* =============================================================================
  BOX SIZING & CLEARFIX
============================================================================= */
*,
*::before,
*::after {
  box-sizing: border-box;
}

.clearfix::after {
  content: "";
  display: table;
  clear: both;
}

/* =============================================================================
  COMPONENT
============================================================================= */
.component {
  text-align: center;
}

.component__title {
  margin-bottom: 12px;
  color: #fff;
  font-size: 22px;
  font-weight: 700;
}

/* =============================================================================
  ICONS - COMMON
============================================================================= */
/**
 * Icon common styles.
 *
 * Set it to block or inline block, whichever suits your needs. Overflow set to
 * hidden for precautions, and make sure to set the font size to 0 and the text
 * indent to -9999px. This allows us to actually include text in the markup
 * which will be good for screen readers and accessibility purposes.
 */
.icon {
  display: inline-block;
  vertical-align: top;
  overflow: hidden;
  margin: 4px;
  width: 50px;
  height: 50px;
  font-size: 0;
  text-indent: -9999px;
}

/* =============================================================================
  ICONS
============================================================================= */
.icon-cube {
  position: relative;
  -webkit-perspective: 800px;
          perspective: 800px;
  overflow: visible;
}

.icon-cube::before,
.icon-cube::after {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: url("https://www.kylemooney.me/wp-content/uploads/2018/01/social-icons.png");
  content: "";
  -webkit-transition: all 0.3s;
          transition: all 0.3s;
}

.icon-cube::before {
  z-index: 2;
  background-color: #d2d2d2;
}

.icon-cube::after {
  z-index: 1;
  opacity: 0;
  -webkit-transform: translateY(48px) rotateX(-90deg);
          transform: translateY(48px) rotateX(-90deg);
}

.icon-cube:hover::before {
  opacity: 0;
  -webkit-transform: translateY(-48px) rotateX(90deg);
          transform: translateY(-48px) rotateX(90deg);
}

.icon-cube:hover::after {
  opacity: 1;
  -webkit-transform: rotateX(0);
          transform: rotateX(0);
}
/* facebook */
.icon-cube.facebook::before,
.icon-cube.facebook::after {
  background-position: 0px 0px;
}

.icon-cube.facebook::after {
  background-color: #ce2600;
}

/* twitter */
.icon-cube.twitter::before,
.icon-cube.twitter::after {
  background-position: -50px 0px;
}

.icon-cube.twitter::after {
  background-color: #ce2600;
}

/* Instagram */
.icon-cube.instagram::before,
.icon-cube.instagram::after {
  background-position: -100px 0px;
}

.icon-cube.instagram::after {
  background-color: #ce2600;
}

/* Youtube */
.icon-cube.youtube::before,
.icon-cube.youtube::after {
  background-position: -150px 0px;
}

.icon-cube.youtube::after {
  background-color: #ce2600;
}

/* rss */
.icon-cube.rss::before,
.icon-cube.rss::after {
  background-position: 0px 0px;
}

.icon-cube.rss::after {
  background-color: #ce2600;
}
