/******************************
RESPONSIVE STYLES 
******************************/
@media screen and (max-width: 1400px) {
    .project-slider .empty-space{
        width: calc(50vw - 460px);
        flex-shrink: 0;
    }
    
    .nav-menu > li.has-child:last-of-type > .sub-menu {
	    right: -25px;
	    left: auto;
    }
}

@media screen and (max-width: 1200px) {
    .move-down{
        right: 100px;
    }
    .banner .slick-arrow.slick-next{
        right: 80px;
    }
    .quick-links-wrapper .ql-box.slider{
        max-width: 450px;
    }
    .top-content .flexbox > div:first-child {
        padding-left: 20px;
        flex-grow: 1;
    }
    .top-content .flexbox > div:last-child{
        width: 100%;
        max-width: 440px;
        padding-right: 55px;
    }
    .side-menu{
        width: 50px;
    }
    .side-menu a{
        font-size: 0;
        height: 50px;
    }
    .side-menu a i{
        margin-bottom: 0;
    }
   .quick-links-wrapper .ql-box.slider {
        max-width: 350px;
    }
    .ql-slider .ql-content{
        max-width: 350px;
        padding: 60px 35px 50px;
    }
    .ql-box.slider .ql-category{
        left: 35px;
    }
    .large-text{
        font-size: 48px;
    }
    .main-content .sidebar{
        padding-left: 40px;
        width: 340px;
    }
    .top-content .flexbox{
        flex-direction: column-reverse;
    }
    .top-content .flexbox > div{
        width: 100%;
    }
    .top-content .flexbox > div:first-child{
        padding-left: 0;
    }
    .top-content .flexbox > div:last-child{
        max-width: 100%;
        text-align: left;
        padding-right: 0;
    }
    .top-content{
        padding-top: 40px;
    }
    .top-content .flexbox > div:first-child{
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    .top-content .back-link{
        flex: 0 0 180px;
        padding-left: 20px;
    }
    .top-content .breadcrumbs {
        margin: 0;
        padding: 25px 0;
    }
    .listing-top label > span:not(.select2){
        display: none;
    }
    #main .inner-box > * {
	    padding-left: 20px;
    }
    #main .inner-box > *:empty {
	    display: none;
    }
    #main .top-product-content .inner-box {
	    padding-bottom: 40px;
    }
    
    #main .top-product-content .inner-box p {
	    margin-bottom: 0px !important;
    }
}

@media screen and (max-width: 1128px) {
	.cats-container {
	    justify-content: center;
    }
}

@media screen and (max-width: 1100px) {
	#header{
    	height: 110px;
	}
	#header .header-wrapper{
	    -webkit-box-shadow: 0 2px 10px -3px rgba(0,0,0,0.2);
	    -moz-box-shadow: 0 2px 10px -3px rgba(0,0,0,0.2);
	    box-shadow: 0 2px 10px -3px rgba(0,0,0,0.2);
	}
	#header .header-menu {
	    height: 72px;
	    background-color: #fff;
	    padding: 0 20px;
	}
	#header .header-menu > .flexbox {
	    padding-top: 0;
	}
	#header .logo-wrapper {
	    width: 99px;
	}
	#header .logo-wrapper .logo img {
	    display: none;
	}
	#header .logo-wrapper .logo img + img {
	    display: block;
	}
	#header .nav-menu > li > a {
	    color: #0a0a0a;
	}
	
	#header .nav-menu > li.active > a,
	#header .nav-menu > li:hover > a{
	    color: #ed1c24;
	}
	#header .side-menu {
		top:auto;
		bottom: 15px;
		-webkit-transform: inherit;
		-moz-transform:inherit;
		transform: inherit;
	}
}

@media screen and (max-width: 950px) {
	.listing-top {
		position: relative;
	}
	
	.listing-top > div {
		position: absolute;
		top: -30px;
		left: 21px;
		width: calc(100% - 40px);
	}
	
	.listing-top > div span {
		float: right;
	}
	
	.listing-top .select2-container {
		margin-left: 0;
	}
	
	#listing-display [name="sort-by"] + .select2 {
		width: 50% !important;
	}
	
	#listing-display .listing-top > section {
		width: 100%;
		text-align: left !important;
		display: flex;
	}
	
	#listing-display .listing-top > section > label {
		flex-grow: 1;
	}
	
	#listing-display [name="sort-by"] + .select2 {
    	width: 100% !important;
	}
}
@media screen and (max-width: 900px) {
    h1, h2{
        font-size: 32px;
    }
    #dashboard.table .main-content .col-right.sidebar {
		width: 100%;
		max-width: 100%;
	}
    #header .nav-menu > li > a {
	    font-size: 14px;
	    padding: 33px 0 24px 0;
    }
    .quick-links-wrapper{
        height: auto;
        margin-top: 0;
        padding: 20px 15px;
    }
    .quick-links-wrapper .flexbox{
        flex-wrap: wrap;
    }
    .quick-links-wrapper .ql-box.featured, 
    .quick-links-wrapper .ql-box.news{
        width: 50%;
        height: 340px;
        top: 0;
        margin: 20px auto 0;
    }
    .quick-links-wrapper .ql-box.slider{
        height: 340px;
        width: 100%;
        max-width: 100%;
        order: -1;
    }
    .event-slider-arrows{
        right: 0;
    }
    .about-text{
        max-width: 100%;
    }
    .event-content{
        padding: 35px 15px 0;
    }
    .move-down{
        display: none;
    }
    .main-content .container > .table,
    .main-content .container > .table > .cell{
        display: block;
    }
    .main-content .container > .table > .col-left{
        min-height: 350px;
    }
    .main-content .sidebar{
        width: 300px;
        margin: 40px auto 0;
        padding: 0;
    }
    .bar-callout .flexbox{
        padding: 60px 30px 50px 30px;
        max-width: 590px;
        flex-direction: column;
    }
    .bar-callout .flexbox > div{
        margin-bottom: 20px;
    }
    .main-product-wrapper > .flexbox{
        flex-direction: column;
    }
    .main-product-wrapper > .flexbox > div{
        width: 100%;
    }
    .product-images-wrapper{
        max-width: 440px;
        margin: 0 auto 30px;
    }
    .main-product-wrapper > .flexbox > div:first-child{
        padding-right: 0;
    }
    .product-details .container{
        padding-bottom: 40px;
    }
    .slider-arrows.product-slider-arrows {
        margin: 0 auto 30px;
    }
    #filters-btn {
	    display: inline-flex;
	    flex-direction: row-reverse;
	    align-items: center;
	    justify-content: center;
    }
    #filters-close-btn{
        display: inline-block;
    }
    #filters-btn:after {
	    content: "Filter Results:";
	    font-size: 10px;
	    font-family: 'Metropolis';
	    font-weight: 300px;
	    text-transform: uppercase;
	    width: 50px;
	    margin-right: 6px;
    }
    .filter-side-wrapper{
        position: fixed;
        left: -100%;
        top: 0;
        background: #ebebeb;
        border-radius: 0;
        z-index: 999;
        padding: 60px 0 0 20px;
        border-left: 0;
        overflow-y: auto;
        width: 100%;
        max-width: 330px;
        height:100%;
    }
    .filter-side-wrapper h3{
        padding: 0 50px 0 15px;
        white-space: pre-wrap;
        font-size: 20px;
    }
    .filter-side-wrapper .fa-times{
        font-size: 22px;
        font-weight: bold;
        color: #212121;
        position: absolute;
        top: 18px;
        right: 25px;
    }
    .filters-open.filter-side-wrapper{
        left: 0;
    }
    .listing-top{
        padding: 10px 0;
    }
    .listing-top .fa-sliders-h{
        color: #0a0a0a;
        font-size: 24px;
        font-weight: bold;
        vertical-align: middle;
        margin-right: 15px;
        position: relative;
        top: -1px;
    }
    .listing-wrapper{
        padding-left: 0;
    }
    .main-product-wrapper .container{
        padding-bottom: 40px;
    }
    .about-wrapper {
	    background: none !important;
    }
    #main .inner-box > *  {
	    padding-left: 0 !important;
    }
}   

@media screen and (max-width: 770px) { /* Tablet View */
    body{
        cursor: pointer; /* iOS Clicking Fix */
    }
    h1, h2{
        font-size: 30px;
    }
    h1 br{
        display: none;
    }
    .large-text {
        font-size: 42px;
    }
    .banner-text{
        padding: 60px 45px 30px 15px;
    }
    .main-product-wrapper h1:after,
    .banner .large-text:before{
        height: 5px;
    }
    .banner{
        min-height: 470px;
    }
    .about-wrapper{
        padding: 40px 0;
        background-size: cover;
    }
    .event-content .flexbox{
        flex-direction: column;
    }
    .event-box:first-child{
        margin-bottom: 20px;
    }
    .event-category{
        margin-bottom: 15px;
    }
    .event-header{
        padding-right: 40px;
    }
    .sub-banner {
        height: 270px;
    }
    .breadcrumbs{
        padding-top: 15px;
    }
    #header .side-menu {
	    height: auto;
	    width: 100%;
	    bottom: 0px;
    }
    #header .side-menu ul {
	    display: flex;
	    flex-direction: row-reverse;
	    width: 100%;
	    height: 50px;
    }
    #header .side-menu li {
	    flex-grow: 1;
    } 
    #header .side-menu ,
    #header .side-menu li,
    #header .side-menu a {
	    border-radius: 0;
	    border: none;
    }
    #header .side-menu a {
	    font-size: 12px;
	    flex-direction: row-reverse;
	    align-items: center;
	    justify-content: center;
	    align-content: center;
	    border-right: 1px solid #a90d13;
    }
    #header .side-menu a i {
	    margin-left: 8px;
    }
    .sub-menu {
	    left: -55px;
    }
    #footer.cell {
	    padding-bottom: 50px;
    }
    .project-controls span::before, .project-controls span::after {
	    visibility: hidden;
    }
    .project-controls .ico-mouse {
	    background: none;
    }
    .project-controls .ico-mouse:before {
		content: "\f0a4";
		font-family: Font Awesome\ 5 Pro;
		font-size: 28px;
		display: block;
		font-weight: 300;
	}
	#header .nav-menu > li {
		margin: 0 18px;
	}
	#form-map-search > p > span.flexbox {
		flex-wrap: wrap;
		height: auto;
	}
	#form-map-search span.flexbox > label {
		width: 100%;
		padding: 0 0 16px; 0;
	}
	#form-map-search span.nowrap {
		width: auto !important;
		display: inline-block;
	}
	
	#form-map-search span.nowrap + span.nowrap {
		padding-left: 10px;
	}
	#dashboard .inner-box a.btn{
		display: block;
		margin: 12px 0px 0px 0px;
	}
	
	#account h3 {
		font-size: 18px;
	}
	
	#dashboard #account section {
		padding: 14px 0 0 0;
	}
}

@media screen and (max-width: 670px) { /* Phone View */
    .btn-lg{
        padding: 10px 25px 9px;
    }
    #header nav {
	    display: none;
    }
    #header .side-menu li:first-child {
	    position: fixed;
	    top: 51px;
		right: 8px;
    }
    #header .side-menu li:first-child a {
	    color: #1a1b1d;
	    border: none;
	    background-color: transparent;
	    padding: 10px 24px;
    }
    .line-after:after{
        content: none;
    }
    #nav-close-btn{
        top: 30px;
        right: 30px;
    }
    .open .main-nav{
        width: 350px;
    }
    .main-nav nav{
        min-width: 350px;
        padding: 80px 30px 30px;
    }
    .quick-links-wrapper .ql-box.featured, 
    .quick-links-wrapper .ql-box.news{
        width: 100%;
        height: 260px;
    }
    .project-wrapper{
        padding-top: 40px;
    }
    .project-controls{
        padding-top: 50px;
        text-align: center;
    }
    .project-slider .mCustomScrollBox+.mCSB_scrollTools.mCSB_scrollTools_horizontal{
        left: 50%;
        bottom: -35px;
    }
    .events-wrapper{
        margin-top: 40px;
    }
    .event-control:after {
        width: 45px;
        height: 45px;
        line-height: 45px;
        top: -12px;
    }
    .event-header{
        padding-right: 0;
    }
    .event-slider-arrows{
        top: 70px;
        top: 50px;
        left: 50%;
        -webkit-transform: translateX(-50%);
        -moz-transform: translateX(-50%);
        transform: translateX(-50%);
    }
    .event-content{
        padding-top: 50px;
    }
    .footer-wrapper{
        text-align: center;
    }
    .footer-wrapper .flexbox{
        flex-direction: column;
        align-items: center;
    }
    .footer-wrapper .flexbox > div:first-child{
        margin-bottom: 20px;
        padding-right: 0;
    }
    .top-content{
        height: auto;
        background-size: cover;
    }
    .main-product-wrapper .container{
        padding-bottom: 40px;
    }
    .product-description .toggle-content{
        padding-bottom: 30px;
    }
    .listing-items .product-box{
        width: 50%;
        padding: 0 10px;
        margin-bottom: 30px;
    }
    .listing-items.th-list .product-content-box {
        padding: 0 0 0 15px;
    }
    .listing-items.th-list .product-box .img-box{
        width: 190px;
    }
    /* #cats-main .project-box {} */
    
    #dashboard .main-content .container > .table > .col-left {
	    min-height: 0;
    }
    #dashboard .docs-table thead {
	    display: none;
    }
    
    #dashboard .docs-table tbody td {
	    display: block;
    }
    
    #dashboard .docs-table tbody td:nth-child(2) {
	    border-top: 1px solid #d9d9d9;
		border-bottom: 1px solid #d9d9d9;
    }
    
    #dashboard .docs-table td:before {
	    content: attr(data-title);
	    font: 14px 'Metropolis', sans-serif;
	    font-weight: 900;
    }
}

@media screen and (max-width: 530px) {
	.top-bar .rep-link {
		display: none;
	}
}
@media screen and (max-width: 480px) {
    h1, h2 {
        font-size: 28px;
        line-height: 1.15;
    }
    .banner-text {
	    padding: 20px 45px 30px 15px;
    }
	.top-bar a {
		margin-right: 8px;
	}
    .top-bar a[href^=tel] i{
        font-size: 20px;
    }
    .top-bar .search-btn{
        margin-left: 0px !important;
    }
    .listing-top > div {
	    left: 0;
		width: 100%;
    }
    .top-bar .flexbox .search-box {
        top: 50px;
        left: 0;
        right: 0;
        background: #fff;
        height: 50px;
        padding: 6px 15px;
    }
    .large-text {
        font-size: 36px;
        line-height: 1.2;
    }
    .banner .large-text:before{
        content: none;
    }
    .ql-slider .slick-dots{
        padding-left: 0;
        text-align: center;
    }
    .about-wrapper{
        text-align: center;
    }
    .about-wrapper h1 br{
        display: none;
    }
    .event-control{
        padding-right: 65px;
    }
    .event-control:after{
        top: -3px;
    }
    .event-slider-arrows{
        top: 78px;
    }
    .project-wrapper h2 + p{
        padding: 0 15px;
    }
    .bar-callout .flexbox{
        text-align: center;
    }
    .bar-callout .btn{
        margin: 0 auto;
    }
    .top-content{
        padding: 30px 0;
    }
    .top-content .flexbox > div:first-child{
        display: block;
    }
    .top-content .back-link{
        padding-left: 0;
    }
    .product-prime-photo{
        margin-top: 0;
    }
    .main-product-wrapper .container{
        padding-top: 30px;
    }
    .product-video{
        padding: 20px 15px;
    }
    .product-description .toggle-head{
        line-height: 1.2;
    }
    .product-description .toggle-head{
        padding: 20px 60px 16px 15px;
    }
    .product-description .toggle-content{
        padding: 0 60px 30px 15px;
    }
    .top-product-content{
        margin-bottom: 30px;
    }
    .listing-top{
        flex-direction: column;
        align-items: flex-start;
    }
    .listing-top .fa-sliders-h{
        margin-left: 5px;
    }
    .filter-views{
        margin-right: 0;
    }
    .listing-top .select2-container{
        margin-left: 0;
    }
    .listing-top > div:last-child{
        margin-top: 10px;
    }
    .listing-items.th-list .product-box a{
        display: block;
    }
    .listing-items .product-box{
        width: 100%;
        border-bottom: 1px solid #dddcdc;
        padding-bottom: 20px;
    }
    .listing-items .product-box a{
        display: block;
    }
    .listing-items .product-box .product-label-ship{
        max-width: 230px;
        left: 50%;
        transform: translateX(-50%);
    }
    .listing-items .product-box .line-after-sm:after{
        margin-left: 0;
    }
    .product-label-ship{
        font-size: 16px;
    }
    .listing-items  .product-box .img-box{
        padding-bottom: 30px;
        min-height: 100px;
        height: auto;
    }
    .listing-items.th-list .product-box{
        display: block;
        text-align: center;
        padding-bottom: 20px;
        margin-bottom: 30px;
    }
    .listing-items.th-list .product-box .img-box{
        width: auto;
        height: auto;
        margin-bottom: 15px;
    }
    .listing-items.th-list .product-box h5{
        display: inline-block;
    }
    .listing-items .product-content-box,
    .listing-items.th-list .product-content-box{
        padding: 0;
    }
    .listing-items .product-box:last-child{
        margin-bottom: 0;
        border-bottom: none;
    }
    #listing-display .listing-top > section {
	    flex-direction: column-reverse;
    }
    
    #listing-display .listing-top > section .listing-pagingation {
	    margin: 0 0 12px 0;
    }
    #listing-display #pg + .select2 {
	    width: calc(100% - 136px) !important;
    }
    
    .modal-close {
	    top: 15px !important;
		right: 20px !important;
    }
    #staff .display-tbl tbody > tr > td {
	    display: block;
	    width: 100% !important;
    }
    #staff .display-tbl tbody > tr > td:first-child {
	    padding-bottom: 0;
	    text-decoration: underline;
    }
    #staff .display-tbl tbody > tr > td:first-child:after {
	    content: ":";
	    display: inline;
    }
    #staff .display-tbl tbody > tr > td:last-child br {
	    display: none !important;
    }
    #staff .display-tbl tbody > tr > td:last-child strong {
	    display: block;
	    padding-bottom: 4px;
    }
    .rep-list a[href*="mailto"] {
	    word-break: break-word;
	    word-wrap: break-word;
    }
    .rep-list tr > * {
	    display: block;
	    width: 100% !important;
	    text-align: left !important;
    }
}

@media screen and (max-width: 360px) {
    h1, h2{
        font-size: 26px;
    }
    h3{
        font-size: 22px;
    }
    .top-content .medium-title{
        font-size: 20px;
    }
    #nav-close-btn{
        top: 20px;
        right: 20px;
    }
    .open .main-nav{
        width: 320px;
    }
    .main-nav nav{
        min-width: 320px;
        padding: 60px 20px 25px;
    }
    .nav-menu > li > a{
        padding: 16px 30px 13px 15px;
    }
    .sub-menu li a{
        font-size: 16px;
    }
    .sub-ctrl{
        height: 47px;
        top: 2px;
    }
    .sub-ctrl:after{
        line-height: 48px;
        font-size: 20px;
    }
    .large-text{
        font-size: 34px;
    }
    .project-box{
        max-width: 300px;
        min-width: 300px;
        margin: 0 10px;
    }
    .event-header h3{
        font-size: 22px;
    }
    .breadcrumbs{
        padding: 5px 0;
    }
    .sub-banner {
        height: 250px;
    }
    .product-gallery > a{
        margin-right: 7px;
    }
    .btn-play{
        width: 50px;
        height: 50px;
        line-height: 50px;
    }
    .product-video .btn-play{
        margin-right: 15px;
    }
    .product-video h3{
        font-size: 20px;
    }
    .main-product-wrapper .container,
    .product-related-wrapper{
        padding-bottom: 30px;
    }
    .bar-callout .flexbox{
        padding: 40px 15px;
    }
    #staff .display-tbl tbody > tr > td:last-child span i {
	    font-size: 0;
	    display: block;
	    width: 100%;
	    height: 3px;
    }
}