/* Bootstrap lg breakpoint = 992px */

:root {
    --cvs-red:#c40000;
    --cvs-dark:#111;
    --cvs-border:#e5e5e5;
}

html,
body{
    min-height:100%;
}

body{
    min-height:100vh;
    display:flex;
    flex-direction:column;
    color:var(--cvs-dark);
    background:#fff;
    font-family:Arial, Helvetica, sans-serif;
    font-size:14px;
}

main{
    flex:1 0 auto;
}

footer{
    flex-shrink:0;
}



a {
    color:inherit;
    text-decoration:none;
}

.extra-small {
    font-size: 0.750em;
}

/* HEADER */

.site-logo {
    display:block;
    width:320px;
    max-width:100%;
    height:auto;
}

.mobile-top-menu a {
    display:block;
    padding:.35rem 0;
}

.top-menu a {
    color:var(--bs-secondary-color);
}
.top-menu a:hover {
    color:var(--cvs-dark);
}

.search-submit:hover i {
    color:#000;
}


/* ELEMENTI GENERICI */

.section-title {
    margin:0 0 12px;
    font-size:14px;
    font-weight:800;
    text-transform:uppercase;
}

.placeholder-img {
    position:relative;
    overflow:hidden;
    background:
        linear-gradient(140deg, rgba(0,0,0,.05), rgba(0,0,0,.22)),
        linear-gradient(35deg,#d3d3d3 0 35%,#ececec 35% 60%,#c7c7c7 60%);
}


/* PUBBLICITÀ */

.ad-slot {
    display:flex;
    align-items:center;
    justify-content:center;
}

.ad-320x100 {

}

.ad-970x150 {
    
}

.ad-350x350 {
    
}

.ad-350x250 {
    
}

.ad-728x90{
    
}

/* CAROUSEL */

.carousel-hero {
    min-height:365px;
}


/* FOOTER */

footer {

    background:#161b20;
    color:#fff;
    font-size:12px;
}


/* ARTICOLO */

.article-body {
    font-size:17px;
    line-height:1.68;
}

.article-body p {
    margin-bottom:1.25rem;
}

.article-body h2 {
    margin:2rem 0 .8rem;
    font-size:26px;
    line-height:1.2;
    font-weight:800;
}

.article-body h3 {
    margin:1.6rem 0 .6rem;
    font-size:21px;
    font-weight:800;
}

.article-featured-image {
    display:block;
    max-height:520px;
    object-fit:cover;
    background:#f3f3f3;
}

/* PLAYER */

.polly-slim-player .form-range::-webkit-slider-thumb {
    background-color: #dc3545;
}

.polly-slim-player .form-range::-moz-range-thumb {
    background-color: #dc3545;
}

.polly-slim-player .form-range::-webkit-slider-runnable-track {
    background-color: #dee2e6;
}

.polly-slim-player .form-range::-moz-range-track {
    background-color: #dee2e6;
}

.polly-slim-player .slim-play-btn:focus {
    box-shadow: none;
}

/* BANNER */

.tpl-banner-item {
    display:none;
}

.tpl-banner-item.active {
    display:block;
}

.tpl-floating-banner {
    position:fixed;
    left:50%;
    bottom:25px;
    transform:translateX(-50%);
    z-index:9990;
    width:728px;
    max-width:calc(100vw - 32px);
    isolation:isolate;
}

.tpl-floating-banner[hidden] {
    display:none!important;
}

.tpl-floating-banner::before {
    content:"";
    position:absolute;
    inset:-35px -55px;
    z-index:-1;
    pointer-events:none;
    background:radial-gradient(
        ellipse,
        rgba(0,0,0,.65) 0%,
        transparent 72%
    );
}

.tpl-floating-image {
    display:block;
    width:100%;
    height:auto;
    border-radius:4px;
    box-shadow:0 8px 25px rgba(0,0,0,.35);
}

.tpl-floating-close {
    position:absolute;
    top:-12px;
    right:-12px;
    z-index:2;
    width:28px;
    height:28px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(0,0,0,.85);
    color:#fff;
    font-size:21px;
    line-height:28px;
    text-align:center;
    cursor:pointer;
}

.tpl-floating-close:hover {
    background:#000;
}

.pagination .page-link {
    width:38px;
    height:38px;
    padding:0;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%!important;
}

.categories-scroll {
    scroll-snap-type:x mandatory;
    -webkit-overflow-scrolling:touch;
}

.categories-scroll-item {
    width:78%;
    scroll-snap-align:start;
}

.mega-menu {
    width:min(900px, calc(100vw - 2rem));
}


@media (min-width:576px) {
    .categories-scroll-item {
        width:42%;
    }
}

@media (min-width:992px) {
    .categories-scroll {
        overflow:visible!important;
        scroll-snap-type:none;
    }

    .categories-scroll-item {
        width:auto;
        flex:1 1 0;
    }
}

/* RESPONSIVE */

@media (max-width:991.98px) {
    
    .mega-menu {
        width:100%;
        max-width:none;
        position:static!important;
        transform:none!important;
        margin-top:.5rem;
    }

    .site-logo {
        width:275px;
    }

    .carousel-hero {
        min-height:320px;
    }
}

@media (max-width:767.98px) {

    .site-logo {
        width:220px;
    }

    .ad-slot {
        min-height:54px;
    }

    .carousel-hero {
        min-height:360px;
    }

    .article-body {
        font-size:16px;
    }
}