.calendar {
    margin: 0 0 1em 0;
}

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

.calendar__item {
    position: relative;
    -webkit-transition: .5s all;
    transition: .5s all;
    margin: 1em 0;
    border: 1px solid #eee;
    /*
      ===============================================================
      Grid inside columns
      ===============================================================
    */
}

.calendar__item:hover {
    background-color: #eee;
}

@media (min-width: 400px) {
    .calendar__item {
        width: 350px;
        margin: 1em auto;
    }
}

@media (min-width: 768px) {
    .calendar__item {
        background-color: transparent;
        float: left;
        width: 49%;
        margin: 1em 2% 1em 0;
    }

    .calendar__item:nth-child(2n+2) {
        margin: 1em 0;
    }
}

@media (min-width: 992px) {
    .calendar__item {
        width: 32%;
    }

    .calendar__item:nth-child(2n+2) {
        margin: 1em 2% 1em 0;
    }

    .calendar__item:nth-child(3n+3) {
        margin: 1em 0;
    }
}

@media (min-width: 768px) {
    .col-sm-4 .calendar__item,
    .col-sm-2 .calendar__item {
        width: 100%;
        margin: .5em 0;
    }

    .col-sm-6 .calendar__item {
        width: 100%;
    }
}

@media (min-width: 992px) {
    .col-sm-6 .calendar__item, .col-sm-8 .calendar__item {
        width: 49%;
    }

    .col-sm-6 .calendar__item:nth-child(3n+3), .col-sm-8 .calendar__item:nth-child(3n+3) {
        margin: 1em 2% 1em 0;
    }

    .col-sm-6 .calendar__item:nth-child(2n+2), .col-sm-8 .calendar__item:nth-child(2n+2) {
        margin: 1em 0;
    }
}

.calendar__media {
    height: 164px;
    overflow: hidden;
    /*
      ===============================================================
      Image sizes inside columns
      ===============================================================
    */
}

.calendar__media .csc-textpic-imagewrap {
    position: relative;
    top: 50%;
    -webkit-transform: translateY(-50%);
    transform: translateY(-50%);
}

@media (min-width: 1200px) {
    .calendar__media {
        height: 185px;
    }
}

.col-sm-10 .calendar__media {
    height: 112px;
}

@media (min-width: 400px) {
    .col-sm-6 .calendar__media {
        height: 135px;
    }

    .col-sm-10 .calendar__media {
        height: 135px;
    }
}

@media (min-width: 768px) {
    .col-sm-6 .calendar__media {
        height: 130px;
    }

    .col-sm-8 .calendar__media {
        height: 130px;
    }

    .col-sm-10 .calendar__media {
        height: 115px;
    }
}

@media (min-width: 992px) {
    .col-sm-6 .calendar__media {
        height: 88px;
    }

    .col-sm-10 .calendar__media {
        height: 95px;
    }
}

@media (min-width: 1200px) {
    .col-sm-6 .calendar__media {
        height: 105px;
    }

    .col-sm-10 .calendar__media {
        height: 115px;
    }
}

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

.calendar__text {
    float: left;
    padding: 0 0 0 .5em;
    width: 75%;
    height: 140px;
    overflow: hidden;
    /*
      ===============================================================
      Text inside columns
      ===============================================================
    */
}

@media (min-width: 992px) {
    .col-sm-2 .calendar__text {
        padding: 1em 0 0 .5em;
        width: 100%;
        height: inherit;
    }
}

@media (min-width: 768px) {
    .col-sm-4 .calendar__text {
        padding: 1em 0 0 .5em;
        width: 100%;
        height: inherit;
    }
}

@media (min-width: 992px) {
    .col-sm-4 .calendar__text {
        padding: 0 0 0 .5em;
        width: 75%;
        height: 140px;
    }
}

@media (min-width: 992px) {
    .col-sm-6 .calendar__text {
        padding: 1em 0 0 .5em;
        width: 100%;
    }
}

@media (min-width: 1200px) {
    .col-sm-6 .calendar__text {
        padding: 0 0 0 .5em;
        width: 75%;
    }
}

@media (min-width: 768px) {
    .col-sm-8 .calendar__text {
        padding: 1em 0 0 .5em;
        width: 100%;
    }
}

@media (min-width: 992px) {
    .col-sm-8 .calendar__text {
        padding: 0 0 0 .5em;
        width: 75%;
    }
}

.calendar__link {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
    display: block;
    -webkit-transition: all .5s ease-in-out;
    transition: all .5s ease-in-out;
    z-index: 10;
}

.calendar__description {
    font-size: .8rem;
    position: relative;
}

.calendar__description .bodytext {
    line-height: 1rem;
}

.calendar__header {
    font-size: 1rem;
    font-weight: bold;
    color: #000;
    margin: .4em 0;
    word-wrap: break-word;
}

.calendar__date-wrapper {
    width: 60px;
    height: 80px;
    float: left;
}

.calendar__date {
    color: #fff;
}

.calendar__date .event-time, .calendar__date .month, .calendar__date .date {
    display: block;
    text-align: center;
}

.calendar__date .date {
    font-size: 1.75rem;
    line-height: 1.75rem;
    padding: .4em 0 0;
}

.calendar__date .month {
    font-size: 1rem;
    line-height: 1rem;
}

.calendar__date .event-time {
    font-size: .75rem;
    line-height: .75rem;
    padding: .45em 0 0;
}

.tx-cal-controller-browsebox {
    clear: both;
    padding-top: 2em;
}

.tx-cal-controller {
    max-width: 1024px;
    margin: 0 auto;
}

.basecolor {
    background-color: #15385E;
}

.basecolor_inverted {
    background-color: #005091;
}

@media (max-width: 500px) {
    .col-sm-8.event-desc > * {
        padding: 10px;
    }
}