/**
 * Basic alignment styling for icons
 * generated through the Icon view helper.
 */

.icon--font {
    display: inline-block;
    width: 1.25em;
    text-align: center;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.icon--img {
    display: inline-block;
    max-width: 1.25em;
    margin-top: -0.25em;
    text-align: center;
    vertical-align: middle;
}

.icon--svg {
    width: 1.1em;
    height: 1.1em;
    fill: currentColor;
    vertical-align: sub;
}

.show--closed,
.collapsed .show--open {
    display: none;
}
.collapsed .show--closed {
    display: inline;
}

/**
 * Animations and Effects
 *
 * Borrowed from Tailwind CSS (https://tailwindcss.com/docs/animation)
 */

/* Rotate 360 degrees */
.icon--spin   {
    animation: spin 1s linear infinite;
}
@keyframes spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}

/* Fade opacity in and out */
.icon--pulse  {
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}
@keyframes pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: .5;
  }
}

/* Slow, gentle bounce */
.icon--bounce {
    animation: bounce 1s infinite;
}
@keyframes bounce {
  0%, 100% {
    transform: translateY(-25%);
    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);
  }
  50% {
    transform: translateY(0);
    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);
  }
}
