.post-widget {
    position: relative;
}

.post-widget .wrapper {
    position: relative;
    display: block;
    overflow: hidden;
}

@media (max-width: 779px) {
    /* A configurable aspect ratio is applied using an inline style, but
       we need to override it for some cells in low resolutions. */

    .post-widget.cell-163x150:not(.show-image) .wrapper {
        /* stylelint-disable-next-line declaration-no-important */
        padding-bottom: 100px !important;
    }

    .post-widget.cell-712x150 .wrapper,
    .post-widget.cell-1078x150 .wrapper {
        /* stylelint-disable-next-line declaration-no-important */
        padding-bottom: 150px !important;
    }
}

.post-widget .back {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    -webkit-transition: -webkit-filter .4s ease-in-out;
    -o-transition: filter .4s ease-in-out;
    transition: -webkit-filter .4s ease-in-out;
    transition: filter .4s ease-in-out;
    transition: filter .4s ease-in-out, -webkit-filter .4s ease-in-out;
}

.post-widget .wrapper:focus .back img,
.post-widget .wrapper:hover .back img,
.post-widget .wrapper:focus .back video,
.post-widget .wrapper:hover .back video {
    opacity: 1;
}

@media not all and (pointer: coarse) {
    .post-widget:not(.no-hover) .wrapper:focus .back,
    .post-widget:not(.no-hover) .wrapper:hover .back {
        -webkit-filter: brightness(80%);
        filter: brightness(80%);
    }

    .post-widget:not(.no-hover).dark-text .wrapper:focus .back,
    .post-widget:not(.no-hover).dark-text .wrapper:hover .back {
        -webkit-filter: brightness(115%);
        filter: brightness(115%);
    }
}

.post-widget:not(.show-image):not(.light-back):not(.dark-back):not(.darker-back):not(.red-back) .back {
    background: white;
}

.post-widget.plain-light-back .back {
    background: hsl(0, 0%, 95%);
}

.post-widget.light-back .back {
    background: hsl(0, 0%, 95%) url('imgs/back-light.jpg') 100% 100% no-repeat;
}

.post-widget.light-back.image-right .back {
    background: hsl(0, 0%, 95%) url('imgs/back-light-f.jpg') 100% 100% no-repeat;
}

.post-widget.plain-dark-back .back {
    background: hsl(0, 0%, 65%);
}

.post-widget.dark-back .back {
    background: hsl(0, 0%, 65%) url('imgs/back-dark.jpg') 100% 100% no-repeat;
}

.post-widget.dark-back.image-right .back {
    background: hsl(0, 0%, 65%) url('imgs/back-dark-f.jpg') 100% 100% no-repeat;
}

.post-widget.plain-darker-back .back {
    background: hsl(0, 0%, 44%);
}

.post-widget.darker-back .back {
    background: hsl(0, 0%, 44%) url('imgs/back-darker.jpg') 100% 100% no-repeat;
}

.post-widget.darker-back.image-right .back {
    background: hsl(0, 0%, 44%) url('imgs/back-darker-f.jpg') 100% 100% no-repeat;
}

.post-widget.plain-red-back .back {
    background: hsl(358, 85%, 52%);
}

.post-widget.red-back .back {
    background: hsl(358, 85%, 52%) url('imgs/back-red.jpg') 100% 100% no-repeat;
}

.post-widget.red-back.image-right .back {
    background: hsl(358, 85%, 52%) url('imgs/back-red-f.jpg') 100% 100% no-repeat;
}

.post-widget.image-left .wrapper .back {
    background-position: right;
    background-size: 50% 100%;
}

.post-widget.image-right .wrapper .back {
    background-position: left;
    background-size: 50% 100%;
}

.post-widget.cell-529x150 .wrapper .back,
.post-widget.cell-712x150 .wrapper .back,
.post-widget.cell-1078x150 .wrapper .back {
    background-size: auto;
}

@media (max-width: 779px) {
    .post-widget.cell-712x150 .back,
    .post-widget.cell-1078x150 .back {
        display: none;
    }
}

.post-widget .image {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    overflow: hidden;
    text-align: center;
}

.post-widget.image-left .image {
    right: auto;
    width: 50%;
}

.post-widget.image-right .image {
    left: auto;
    width: 50%;
}

.post-widget.cell-712x150 .image {
    width: 48.5955056%;
}

.post-widget.cell-1078x150 .image {
    width: 32.096475%;
}

.post-widget .image img {
    height: 100%;
    width: 100%;
}

.post-widget.show-image:not(.image-left):not(.image-right).no-collapse .overlay,
.post-widget.show-image:not(.image-left):not(.image-right):not(.no-collapse) .title,
.post-widget.show-image:not(.image-left):not(.image-right):not(.no-collapse) .extra {
    background: transparent -o-linear-gradient(bottom, black, hsla(0, 0%, 0%, .5) 70%, transparent);
    background: transparent -webkit-gradient(linear, left bottom, left top, from(black), color-stop(70%, hsla(0, 0%, 0%, .5)), to(transparent));
    background: transparent linear-gradient(to top, black, hsla(0, 0%, 0%, .5) 70%, transparent);
}

.post-widget.stronger-overlay.show-image:not(.image-left):not(.image-right).no-collapse .overlay,
.post-widget.stronger-overlay.show-image:not(.image-left):not(.image-right):not(.no-collapse) .title,
.post-widget.stronger-overlay.show-image:not(.image-left):not(.image-right):not(.no-collapse) .extra {
    background: transparent -o-linear-gradient(bottom, black, hsla(0, 0%, 0%, .75) 70%, transparent);
    background: transparent -webkit-gradient(linear, left bottom, left top, from(black), color-stop(70%, hsla(0, 0%, 0%, .75)), to(transparent));
    background: transparent linear-gradient(to top, black, hsla(0, 0%, 0%, .75) 70%, transparent);
}

.post-widget.stronger-overlay.dark-text.show-image:not(.image-left):not(.image-right).no-collapse .overlay,
.post-widget.stronger-overlay.dark-text.show-image:not(.image-left):not(.image-right):not(.no-collapse) .title,
.post-widget.stronger-overlay.dark-text.show-image:not(.image-left):not(.image-right):not(.no-collapse) .extra {
    background: transparent -o-linear-gradient(bottom, white, hsla(0, 0%, 100%, .75) 70%, transparent);
    background: transparent -webkit-gradient(linear, left bottom, left top, from(white), color-stop(70%, hsla(0, 0%, 100%, .75)), to(transparent));
    background: transparent linear-gradient(to top, white, hsla(0, 0%, 100%, .75) 70%, transparent);
}

.post-widget .overlay {
    position: absolute;
    bottom: 0;
    max-height: 100%;
    width: 100%;
}

.post-widget.vcenter .overlay {
    top: 50%;
    bottom: auto;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

.post-widget.vtop .overlay {
    top: 0;
    bottom: auto;
}

.post-widget.image-left .overlay {
    left: auto;
    right: 0;
    width: 50%;
}

.post-widget.image-right .overlay {
    width: 50%;
}

.post-widget.cell-712x150 .overlay {
    width: 47.6939193%;
    width: -webkit-calc(51.4044944% - 40px);
    width: calc(51.4044944% - 40px);
}

.post-widget.cell-1078x150 .overlay {
    width: 64.1929499%;
    width: -webkit-calc(67.903525% - 40px);
    width: calc(67.903525% - 40px);
}

.post-widget.cell-712x150.image-left .overlay,
.post-widget.cell-1078x150.image-left .overlay {
    right: 20px;
}

.post-widget.cell-712x150.image-right .overlay,
.post-widget.cell-1078x150.image-right .overlay {
    left: 20px;
}

@media (max-width: 779px) {
    .post-widget.cell-712x150 .overlay,
    .post-widget.cell-1078x150 .overlay {
        left: 0;
        right: 0;
        width: 100%;
    }
}

.post-widget:not(.no-collapse).vcenter .overlay {
    height: 100%;
}

.post-widget .title,
.post-widget .extra {
    padding: 10px;
    width: 100%;
    line-height: 1.5;
}

.post-widget.featured-wide .title,
.post-widget.featured-wide .extra {
    padding: 15px;
}

.post-widget.cell-346x150:not(.image-left):not(.image-right):not(.center) .title,
.post-widget.cell-346x150:not(.image-left):not(.image-right):not(.center) .extra {
    padding-right: 30px;
}

.post-widget.center .title,
.post-widget.center .author,
.post-widget.center .subtitle {
    text-align: center;
}

.post-widget .title {
    font-size: 15px;
    color: white;
}

@media (max-width: 1127px) {
    .post-widget .title {
        font-size: 13.5px;
    }
}

@media (min-width: 768px) and (max-width: 940px) {
    .post-widget .title {
        font-size: 12px;
    }
}

.post-widget .overlay:not(.has-extra) .title {
    margin-bottom: 10px;
}

@media not all and (pointer: coarse) {
    .post-widget:not(.show-image):not(.light-back):not(.dark-back):not(.darker-back):not(.red-back) .wrapper:focus .title,
    .post-widget:not(.show-image):not(.light-back):not(.dark-back):not(.darker-back):not(.red-back) .wrapper:hover .title {
        color: hsl(358, 85%, 52%);
    }
}

.post-widget.vtop .title {
    padding-top: 0;
}

.post-widget.dark-text .title {
    color: black;
}

.post-widget.title-alt .title {
    font-family: TitleAlt, sans-serif;
    font-weight: bold;
    font-size: 19px;
    line-height: 1.15;
    -webkit-transition: color .4s ease-in-out;
    -o-transition: color .4s ease-in-out;
    transition: color .4s ease-in-out;
}

@media (max-width: 1127px) {
    .post-widget.title-alt .title {
        font-size: 18px;
    }
}

@media (min-width: 780px) and (max-width: 940px) {
    .post-widget.title-alt .title {
        font-size: 16px;
    }
}

.post-widget.featured-tall .title {
    font-size: 25px;
    text-transform: uppercase;
}

@media (max-width: 940px) {
    .post-widget.featured-tall .title {
        font-size: 22px;
    }
}

@media (max-width: 800px) {
    .post-widget.featured-tall .title {
        font-size: 18px;
    }
}

.post-widget.featured-wide .title {
    font-size: 56px;
    line-height: 1.3;
}

@media (max-width: 1127px) {
    .post-widget.featured-wide .title {
        font-size: 44px;
    }
}

@media (max-width: 939px) {
    .post-widget.featured-wide .title {
        font-size: 34px;
    }
}

@media (max-width: 799px) {
    .post-widget.featured-wide .title {
        font-size: 26px;
    }
}

@media (max-width: 629px) {
    .post-widget.featured-wide .title {
        font-size: 21px;
    }
}

@media (max-width: 579px) {
    .post-widget.featured-wide .title {
        font-size: 18px;
    }
}

@media (max-width: 529px) {
    .post-widget.featured-wide .title {
        font-size: 16px;
    }
}

@media (max-width: 359px) {
    .post-widget.featured-wide .title {
        font-size: 14px;
    }
}

.post-widget.no-collapse .title {
    padding-bottom: 0;
}

@media not all and (pointer: coarse) {
    .post-widget:not(.no-collapse) .title {
        -webkit-transition: opacity .25s ease-in-out .15s;
        -o-transition: opacity .25s ease-in-out .15s;
        transition: opacity .25s ease-in-out .15s;
    }

    .post-widget:not(.no-collapse) .wrapper:focus .title,
    .post-widget:not(.no-collapse) .wrapper:hover .title {
        opacity: 0;
        -webkit-transition-delay: 0s;
        -o-transition-delay: 0s;
        transition-delay: 0s;
    }
}

.post-widget:not(.no-collapse).vcenter .title {
    position: absolute;
    top: 50%;
    margin: 0;
    -webkit-transform: translateY(-50%);
    -ms-transform: translateY(-50%);
    transform: translateY(-50%);
}

.post-widget.no-collapse .extra {
    padding-top: 0;
}

.post-widget:not(.no-collapse) .extra {
    position: absolute;
    top: 100%;
    left: 0;
    overflow: hidden;
}

@media not all and (pointer: coarse) {
    .post-widget:not(.no-collapse) .extra {
        -webkit-transition: -webkit-transform .25s ease-in-out;
        -o-transition: transform .25s ease-in-out;
        transition: -webkit-transform .25s ease-in-out;
        transition: transform .25s ease-in-out;
        transition: transform .25s ease-in-out, -webkit-transform .25s ease-in-out;
    }

    .post-widget:not(.no-collapse) .wrapper:focus .extra,
    .post-widget:not(.no-collapse) .wrapper:hover .extra {
        -webkit-transform: translateY(-100%);
        -ms-transform: translateY(-100%);
        transform: translateY(-100%);
        -webkit-transition-delay: .15s;
        -o-transition-delay: .15s;
        transition-delay: .15s;
    }

    .post-widget:not(.no-collapse).vcenter .wrapper .extra {
        top: 50%;
        max-height: 110%;
        -webkit-transform: translateY(-50%);
        -ms-transform: translateY(-50%);
        transform: translateY(-50%);
        opacity: 0;
        -webkit-transition: opacity .25s ease-in-out;
        -o-transition: opacity .25s ease-in-out;
        transition: opacity .25s ease-in-out;
    }

    .post-widget:not(.no-collapse).vcenter .wrapper:focus .extra,
    .post-widget:not(.no-collapse).vcenter .wrapper:hover .extra {
        opacity: 1;
    }
}

.post-widget .author {
    margin-top: 5px;
    font-size: 12px;
    line-height: 1.3;
    color: hsl(0, 0%, 90%);
}

.post-widget.author-below .author {
    margin-top: 10px;
}

.post-widget.author-below.vcenter .author {
    margin-bottom: 10px;
}

.post-widget.dark-text .author {
    color: hsl(0, 0%, 30%);
}

.post-widget.featured-wide .author {
    margin-top: 20px;
    font-size: 14px;
}

@media (max-width: 799px) {
    .post-widget.featured-wide .author {
        margin-top: 12px;
        font-size: 13px;
    }
}

@media (max-width: 599px) {
    .post-widget.featured-wide .author {
        margin-top: 8px;
    }
}

@media (max-width: 549px) {
    .post-widget.featured-wide .author {
        font-size: 12px;
    }
}

@media (min-width: 800px) and (max-width: 1023px) {
    .post-widget.cell-163x150.no-collapse .author,
    .post-widget.cell-346x150.image-left.no-collapse .author,
    .post-widget.cell-346x150.image-right.no-collapse .author {
        display: none;
    }
}

.post-widget .subtitle {
    margin-top: 10px;
    font-size: 13px;
    color: hsl(0, 0%, 95%);
}

.post-widget.has-video .subtitle {
    padding-left: 37px;
    padding-right: 37px;
}

.post-widget.dark-text .subtitle {
    color: hsl(0, 0%, 5%);
}

.post-widget.featured-tall .subtitle {
    font-size: 14px;
}

.post-widget.featured-wide .subtitle {
    margin-top: 50px;
    font-weight: bold;
    font-size: 18px;
}

@media (max-width: 1127px) {
    .post-widget.featured-wide .subtitle {
        margin-top: 35px;
    }
}

@media (max-width: 799px) {
    .post-widget.featured-wide .subtitle {
        margin-top: 25px;
        font-size: 17px;
    }
}

@media (max-width: 649px) {
    .post-widget.featured-wide .subtitle {
        margin-top: 15px;
    }
}

@media (max-width: 629px) {
    .post-widget.featured-wide .subtitle {
        font-size: 16px;
    }
}

@media (max-width: 579px) {
    .post-widget.featured-wide .subtitle {
        font-size: 15px;
    }
}

@media (max-width: 529px) {
    .post-widget.featured-wide .subtitle {
        font-size: 14px;
    }
}

@media (max-width: 499px) {
    .post-widget.featured-wide .subtitle {
        margin-top: 8px;
    }

    .post-widget.cell-529x150 .subtitle {
        display: none;
    }
}

@media (max-width: 449px) {
    .post-widget.featured-wide .subtitle {
        display: none;
    }

    .post-widget.cell-712x320 .subtitle {
        display: none;
    }
}

.post-widget .comments {
    position: absolute;
    top: 0;
    right: 0;
    height: 20px;
    width: 25px;
    background: hsl(358, 60%, 49%);
    line-height: 20px;
    text-align: center;
    color: white;
}

.post-widget .comments:focus,
.post-widget .comments:hover {
    background: hsl(358, 60%, 38%);
}

.post-widget .play {
    position: absolute;
    bottom: 10px;
    right: 10px;
    border: 1px solid white;
    -webkit-border-radius: 18px;
    border-radius: 18px;
    height: 36px;
    width: 36px;
    opacity: .5;
    font-size: 16px;
    line-height: 35px;
    text-align: center;
    color: white;
    -webkit-transition: opacity .25s ease-in-out;
    -o-transition: opacity .25s ease-in-out;
    transition: opacity .25s ease-in-out;
}

.post-widget .play:focus,
.post-widget .play:hover {
    opacity: .8;
}

.post-widget .play .play-icon,
.post-widget .play .read-icon {
    position: absolute;
    top: 50%;
    left: 50%;
    -webkit-transition: opacity .25s ease-in-out;
    -o-transition: opacity .25s ease-in-out;
    transition: opacity .25s ease-in-out;
}

.post-widget .play .play-icon {
    -webkit-transform: translate(-35%, -50%);
    -ms-transform: translate(-35%, -50%);
    transform: translate(-35%, -50%);
}

.post-widget .play .read-icon {
    -webkit-transform: translate(-45%, -50%);
    -ms-transform: translate(-45%, -50%);
    transform: translate(-45%, -50%);
    opacity: 0;
}
