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


/** BEGIN valign **/

.valign {
    font-size: 0;
}

.valign-item {
    font-size: 1rem;
    display: inline-block;
    vertical-align: middle;
}
.valign-item::before {

}

/** END valign **/

/** BEGIN flex **/

.flex-fill {
    flex-grow: 1;       /* Take up remaining space */
    flex-shrink: 1;     /* Allow shrinking if needed */
    flex-basis: auto;   /* Base size from content */
    align-items: center;
    display: flex;
}

/** END flex **/

/** BEGIN grid **/

.grid {
    font-size: 0;
}

.grid-item:nth-child(3n) {
    padding-right: 0;
}

.grid-item {
    display: inline-block;
    font-size: 1rem;
    /* 12px */
    width: 312.666px;
    vertical-align: top;
    padding-right: 1.75em;
    padding-bottom: 1.75em;
    /* margin-bottom: 1.25em; */
}

.grid-item-full {
    width: 100%;
}

/** END grid **/

.vertical-align-flex {
    display: flex;
    align-items: center;
}

.horizontal-align-flex {
    display: flex;
    justify-content: center;
}