@keyframes pageMessageShow {
    0% {
        opacity: 0;
        transform: translateY(-20px);
    }
    100% {
        opacity: 1;
        transform: none;
    }
}

/** Base message styles */
.page-message,
.page-message--error,
.page-message--info,
.page-message--warning,
.page-message--success {
    padding: 20px;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9000;
    width: 100%;
    text-align: center;
    font: normal 17px/19px 'PT Sans', sans-serif;
    box-shadow: 0px 13px 25px rgba(0, 0, 0, 0.5);
    box-sizing: border-box;

    animation: pageMessageShow 0.5s ease;
    animation-fill-mode: backwards;
}

/** Content messages */
.content-message,
.content-message--error,
.content-message--info,
.content-message--warning,
.content-message--success,
.content-message--i,
.content-message--i-error,
.content-message--i-info,
.content-message--i-warning,
.content-message--i-success {
    padding: 20px;
    /*z-index: 9000;*/
    width: 100%;
    text-align: left;
    font: normal 17px/19px 'PT Sans', sans-serif;
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.03);
    box-sizing: border-box;
    margin-bottom: 10px;
    clear: both;
    border-radius: 4px;
    position: relative;
}

.content-message--i,
.content-message--i-error,
.content-message--i-info,
.content-message--i-warning,
.content-message--i-success {
    border-left: 2px solid #ddd;
}

/** Close button */
.page-message__close,
.content-message__close {
    position: absolute;
    right: 20px;
    top: 22px;
    width: 16px;
    height: 16px;
    border: none;
    background: transparent;
    cursor: pointer;
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 47.971 47.971"%3E%3Cpath d="M28.228,23.986L47.092,5.122c1.172-1.171,1.172-3.071,0-4.242c-1.172-1.172-3.07-1.172-4.242,0L23.986,19.744L5.121,0.88 c-1.172-1.172-3.07-1.172-4.242,0c-1.172,1.171-1.172,3.071,0,4.242l18.865,18.864L0.879,42.85c-1.172,1.171-1.172,3.071,0,4.242 C1.465,47.677,2.233,47.97,3,47.97s1.535-0.293,2.121-0.879l18.865-18.864L42.85,47.091c0.586,0.586,1.354,0.879,2.121,0.879 s1.535-0.293,2.121-0.879c1.172-1.171,1.172-3.071,0-4.242L28.228,23.986z" fill="rgba(255,255,255,0.8)" /%3E%3C/svg%3E%0A');
    background-position: center center;
    background-size: contain;
    opacity: 0.65;
    outline: none;
}
.content-message__close {
    background-image: url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 47.971 47.971"%3E%3Cpath d="M28.228,23.986L47.092,5.122c1.172-1.171,1.172-3.071,0-4.242c-1.172-1.172-3.07-1.172-4.242,0L23.986,19.744L5.121,0.88 c-1.172-1.172-3.07-1.172-4.242,0c-1.172,1.171-1.172,3.071,0,4.242l18.865,18.864L0.879,42.85c-1.172,1.171-1.172,3.071,0,4.242 C1.465,47.677,2.233,47.97,3,47.97s1.535-0.293,2.121-0.879l18.865-18.864L42.85,47.091c0.586,0.586,1.354,0.879,2.121,0.879 s1.535-0.293,2.121-0.879c1.172-1.171,1.172-3.071,0-4.242L28.228,23.986z" fill="rgba(0,0,0,0.5)" /%3E%3C/svg%3E%0A');
}

.page-message__close:hover,
.content-message__close:hover {
    opacity: 1;
}
.page-message__close:focus,
.content-message__close:focus {
    outline: none;
}

/** Type messages */
.page-message,
.content-message {
    background: #303742;
    color: #fff;
}

.page-message--error,
.content-message--error {
    background: #ce4014;
    color: #fff;
}

.page-message--info,
.content-message--info {
    background: #5755d9;
    color: #fff;
}

.page-message--warning,
.content-message--warning {
    background: #ffb700;
    color: #fff;
    text-shadow: 0 0 2px rgba(0,0,0,0.4);
}

.page-message--success,
.content-message--success {
    background: #32b643;
    color: #fff;
}

/* - i - */
.page-message--i,
.content-message--i {
    background: #edf0f5;
    color: #303742;
    border-color: #303742;
}

.page-message--i-error,
.content-message--i-error {
    background: #f8e9e9;
    color: #ad190f;
    border-color: #ad190f;
}

.page-message--i-info,
.content-message--i-info {
    background: #ededf7;
    color: #3f3dac;
    border-color: #3f3dac;
}

.page-message--i-warning,
.content-message--i-warning {
    background: #f7f4ef;
    color: #e9a700;
    border-color: #daa214;
}

.page-message--i-success,
.content-message--i-success {
    background: #ebf5ec;
    color: #1e8d2d;
    border-color: #1e8d2d;
}

/** Messages stack (page-message container) */
.page-message-stack {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 9000;
}
.page-message-stack > [class*='page-message'] {
    position: relative;
    top: auto;
    left: auto;
    right: auto;
    z-index: 0;
}