.top-content {
    margin:0;
    padding:0;
}

.top-component {
    padding: 0!important;
}

.ribbon-elements {
    /*background-color: #efefef7a;*/
    padding: 15px 15px;
}

.ribbon-elements .ribbon-item {
    position: relative;
    min-height: 250px;
    height: auto!important;
}

.ribbon-elements .ribbon-item .ribbon-item-title {
    /*position: absolute;
    display: block;
    left: 0;
    bottom: 0;
    top: auto;
    right: 0;*/

    background-color: rgba(0,0,0,.4);
    color: #fff;
    padding: 10px;
    font-size: 18px;
    line-height: 22px;
    text-align: left;
}
.ribbon-elements .ribbon-item .ribbon-item-description {
    /*position: absolute;
    display: none;
    left: 0;
    bottom: 0;
    top: auto;
    right: 0;*/

    background-color: rgba(0,0,0,.4);
    color: #fff;
    padding: 10px;
    font-size: 14px;
    line-height: 18px;
    text-align: left;
}

.ribbon-elements .ribbon-item a{
    display: block;
}

.ribbon-elements .ribbon-item.ribbon-image {
    background-size: cover;
    background-position:center;
    position: relative;
    overflow: hidden;
}

.ribbon-elements .ribbon-item.ribbon-image a {
    position: relative;
    width: 100%;
    height: 100%;
    display: flex!important;
    flex-direction: column;
    outline: none;
    text-decoration: none!important;
}

.ribbon-elements .ribbon-item.ribbon-image a .ribbon-item-title {
    margin-top: auto;
    text-decoration: none!important;
}
.ribbon-elements .ribbon-item.ribbon-image a:hover .ribbon-item-title {
    text-decoration: underline!important;
}


.ribbon-elements .ribbon-item.ribbon-image a .ribbon-item-description {
    margin: 0;
    height: 0;
    opacity: 0;
    padding: 0 10px!important;
    visibility: hidden;
    -webkit-transition: opacity 600ms, visibility 600ms, padding 600ms, height 1500ms;
    transition: opacity 600ms, visibility 600ms, padding 600ms, height 1500ms;
    text-decoration: none!important;
}

.ribbon-elements .ribbon-item.ribbon-image a:hover .ribbon-item-description {
    padding: 0 10px 15px 10px!important;
    height: auto;
    visibility: visible;
    opacity: 1;
    text-decoration: none;
}


.ribbon-elements .ribbon-item img{
    width: 100%;
}

.ribbon-elements .ribbon-item a {
    text-shadow: 1px 1px 1px rgba(0,0,0,0.2) ;
    font-size: 18px;
    line-height: 20px;
    text-align: center;
}



.ribbon-elements .ribbon-item.swiper-slide.ribbon-noimage,
.ribbon-elements .ribbon-item.swiper-slide.ribbon-noimage a
{
    background-color: #efefef!important;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
}

.ribbon-elements .ribbon-item.swiper-slide.ribbon-noimage a .ribbon-item-title{
    position: relative;
    align-self: center;
    left: auto;
    bottom: auto;
    top: auto;
    right: auto;

    background-color: transparent;
    color: #333;
    padding: 10px;
    font-size: 18px;
    line-height: 22px;
    text-align: center;
}

/* Overwrite default styles */
.swiper-button-prev, .swiper-button-next {
    background-color: rgba(255, 255, 255, .3);
    background-size: 14px 22px;
    background-position: center;
    background-repeat: no-repeat;
    position: absolute;
    top: 0;
    width: 0;
    /*padding: 0 7px;*/
    height: 100%;
    margin-top: 0;
    z-index: 10;
    cursor: pointer;
    visibility: hidden;

    -webkit-transition: visibility 600ms, width 600ms;
    transition: visibility 600ms, width 600ms;
}
.swiper-button-prev {
    left: 0;
}
.swiper-button-next {
    right: 0;
}

.swiper-container:hover .swiper-button-prev,
.swiper-container:hover .swiper-button-next
{
    width: 28px;
    visibility: visible;
}


@media screen and (max-width: 677px) {
    .top-content {
        margin:15px 0;
    }
    .ribbon-elements {
        padding: 15px 0;
    }

}
