@import url('https://fonts.googleapis.com/css2?family=Didact+Gothic&family=Montserrat&display=swap');

::-webkit-scrollbar {
   width: 10px;          
}
 
::-webkit-scrollbar-thumb {   
  border-radius: 30px;
  background: -webkit-gradient(linear,left top,left bottom,from(#e4002b),to(#c8102e));
  box-shadow: inset 2px 2px 2px rgba(255,255,255,.25), inset -2px -2px 2px rgba(0,0,0,.25);}
 
::-webkit-scrollbar-track {     
  background-color: #fff;
  background: linear-gradient(to right,#201c29,#201c29 1px,#100e17 1px,#100e17);
}

*{
  font-family: 'Montserrat', sans-serif;
  font-weight: 500; }

h1, h2, h3, h4, h5, h6 {
  font-family: 'Didact Gothic', sans-serif;
  font-weight: 400;
  color: black; }

@media screen and (max-width: 768px) {
        .homepage__overlay h1 {
        color: black;
        font-size: 6vw;
       text-align: center;
font-family: 'Didact Gothic', sans-serif;
padding-left: 35px;
padding-right: 35px;
}
        .homepage__overlay h2 {
        color: black;
        font-size: 4.5vw;
       text-align: center;
font-family: 'Didact Gothic', sans-serif;
padding-left: 35px;
padding-right: 35px;
}
.homepage__overlay h3 {
        color: black;
        font-size: 3vw;
       text-align: center;
font-family: 'Didact Gothic', sans-serif;
padding-left: 35px;
padding-right: 35px;
}
}

@media screen and (min-width: 769px) {
    .homepage__overlay h1 {
        color: white;
        font-size: 3vw;
       text-shadow: 3px 3px black;
font-family: 'Didact Gothic', sans-serif;
}
    .homepage__overlay h2 {
        color: white;
        font-size: 2.5vw;
       text-shadow: 2px 2px black;
font-family: 'Didact Gothic', sans-serif;
}
.homepage__overlay h3 {
        color: white;
        font-size: 1.5vw;
       text-shadow: 2px 2px black;
font-family: 'Didact Gothic', sans-serif;
}
}

  header.header--site {
    --header-grid: auto / auto 1fr 1fr;
    justify-items: var(--header-justify-items, start);
    grid-template: var(--header-grid-template, var(--header-grid));
    grid-template-areas: var(--header-grid-template-areas, "logo nav search" "content content content" );
  }

header.header--site .logo-space {
  grid-area: logo;
  display: grid;
  justify-content: center;
  align-content: center;
 padding-right: 60px;
}
header.header--site .search-box {
  grid-area: search;
  display: flex;
  flex-direction: row;
  justify-content: flex-end;
  align-content: flex-end;
}

.search-box.form {
  justify-content: flex-end;
  align-content: flex-end;
}

  header.header--site .nav--site .nav-list {
    display: inline-block !important;
  justify-content: left;
  align-items: left;
  }


.has-children ul {
border: none;
}

.has-children ul a:hover {
  background: var(--color-red, #e4002b) !important;
font-weight: bolder;
}

.header-wrapper {
	background: white;
}

header.header--site a {
	color: #e4002b;
}

header.header--site a:link {
	color: #e4002b;
}

header.header--site a:visited {
	color: #e4002b;
}

header.header--site a:hover {
	color: #53565a;
}

header.header--site a:active {
	color: #e4002b;
}

header.header--site p {
	color: #e4002b;
}

header.header--site {
	padding-left: 50px;
	padding-right: 50px;
}

.fa.fa-search {
	color: #e4002b;
}

.slider {
	margin-top: 0px;
	gutter-left: 0px;
	gutter-right: 0px;
	border: hidden;
	width: 100%;
	position: relative;
}

.slide img {
	border: none;
	background: white;
	box-shadow: none;
}

.footer-wrapper {
	background: white;
	color: #e4002b;
}

footer.footer--site {
	color: #53565a;
}

footer.footer--site a {
	color: #e4002b;
}

footer.footer--site a:link {
	color: #e4002b;
}

footer.footer--site a:visited {
	color: #e4002b;
}

footer.footer--site a:hover {
	color: #53565a;
}

footer.footer--site a:active {
	color: #e4002b;
}

footer.footer--site p {
	color: #53565a;
}

.flash--information {
	color: black;
	background: white;
   box-shadow: none;
}

a.button.button--theme--primary,
button.button.button--theme--primary,
input[type=submit].button.button--theme--primary {
	background: #e4002b;
	color: white;
}

a.button.button--theme--primary:link,
button.button.button--theme--primary:link,
input[type=submit].button.button--theme--primary:link {
	color: white;
	background: #e4002b;
}

a.button.button--theme--primary:visited,
button.button.button--theme--primary:visited,
input[type=submit].button.button--theme--primary:visited {
	color: white;
	background: #e4002b;
}

a.button.button--theme--primary:hover,
button.button.button--theme--primary:hover,
input[type=submit].button.button--theme--primary:hover {
	color: white;
	background: #53565a;
	border-color: #53565a;
}

a.button.button--theme--primary:active,
button.button.button--theme--primary:active,
input[type=submit].button.button--theme--primary:active {
	color: white;
	background: #e4002b;
}

a {
	color: #e4002b;
	text-decoration: none;
	cursor: pointer;
	transition: all 300ms ease;
}

a:link {
	color: #e4002b;
}

a:visited {
	color: #e4002b;
}

a:hover {
	color: #53565a;
}

a:active {
	color: #e4002b;
}

:root {
	--container-max-width: 100%;
	--container-padding: 1rem;
    --text-copy-font-family: 'Montserrat', sans-serif;
    --categories-per-row-xlarge: 5;
}

.container {
	width: 100%;
}

.product-landing .product__description {
  border-bottom: none;
}

.product__pricing .table--pricing {
border: 1px solid !important; 
border-color: #636466; 
}

.homepage__secondary-callouts h2 {
  margin-bottom: var(--gutter);
  text-align: var(--homepage-callout-title-text-alignment, center);
  font-size: var(--homepage-section-title-font-size, 1.4rem);
  color: #53565a;
font-weight: bold;
}

.login__box .form-area {
  padding-bottom: 200px;
}


/** Customizations per request on 2/18/22 **/

.slider.owl-carousel {
	position: relative;
}

.owl-theme .owl-nav {
	position: absolute;
	top: 50%;
	transform: translatey(-50%);
	display: flex;
	width: 100%;
	justify-content: space-between;
	padding: 0 1em;
}

.owl-carousel .owl-nav button.owl-prev,
.owl-carousel .owl-nav button.owl-next {
	font-size: 6em;
	font-weight: bolder;
	color: white;
}

.slide.style-b {
	justify-items: start;
	align-items: center;
}

@media screen and (min-width: 768px) {
	#bodyContainer {
		position: relative;
		min-height: 500px;
	}

	.login {
		width: 100%;
	}

	.owl-carousel .owl-stage {
		margin-left: 2px;
	}

	/** Magic number **/
	.slide.style-b {
		background: black;
	}
	.slide.style-b .slide__image img {
		opacity: 1;
	}
	.slide.style-b .slide__image {
		width: 100% !important;
	}
.slide.style-b .slide__image img {
  width: 100% !important;
  height: 100% !important;
}
	.slide.style-b .slide__contents {
		grid-row: unset;
		grid-column: unset;
		color: white;
		background: none;
		position: absolute;
		top: 53%;
		left: 15%;
		width: 40%;
		transform: translatey(-50%);
	}
	.slide.style-b .slide__message {
		padding: 0;
		margin: 0;
		font-size: 3em;
		font-weight: bolder;
		line-height: 1;
	}
}


@media screen and (min-width: 1024px){
   .products.products--grid {
    grid-template: auto/repeat(var(--category-products-per-row-small, 5), 1fr);
  }
  .categories {
    grid-template: auto/repeat(var(--categories-per-row-xlarge, 5), 1fr);
  }
  .categories .subcategories {
    grid-template: auto/repeat(var(--categories-per-row-xlarge, 5), 1fr);
  }
}

@media screen and (min-width: 768px){
  .categories {
    grid-template: auto/repeat(var(--categories-per-row-xlarge, 5), 1fr);
  }
  .categories .subcategories {
    grid-template: auto/repeat(var(--categories-per-row-xlarge, 5), 1fr);
  }
 }

.category__cta {
  display: none;
}

.contact {
  margin-top: var(--gutter);
}
.contact__title h1 {
  font-size: var(--font-size-xl);
}

  .product-landing {
    padding-left: 4rem;
   padding-right: 4rem;
  }

.product-landing .product__info {
  padding-left: 10px;
padding-right: 30px;
}

  .configuration-wrapper {
    padding-left: 5rem;
   padding-right: 5rem;
  }

#portal-wpr {
    position: relative;
	overflow: hidden;
	background-color: #102030;
	max-height: 980px;
}
.portal-bg-ctn {
	background-color: #102030;
	position: absolute;
	overflow: hidden;
    opacity: 1;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 100%;
}
.portal-bg {
	position: absolute;
    margin-left: auto;
    margin-right: auto;
    opacity: 0;
	transition: opacity .3s, width 1.2s;
	transition-delay: .2s;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
	width: 150%;
}
#portal-bg-bm {
    background: url("/images/images/npn360-Hero-BrandedMerch.jpg") center top no-repeat;
    opacity: 1;
    background-size: cover;
}
#portal-bg-ts {
    background: url("/images/images/npn360-Hero-TradeShow.jpg") center top no-repeat;
    background-size: cover;
}
#portal-bg-pp {
    background: url("/images/images/npn360-Hero-Print.jpg") center top no-repeat;
    background-size: cover;
}
#portal-bg-dk {
    background: url("/images/images/npn360-Hero-DemoKit.jpg") center top no-repeat;
    background-size: cover;
}
.portal-bg-ctn.show,
.portal-bg.show {
	opacity: 1;
}
.portal-bg.show {
	width: 100%;
}
#portal-ctn {
    overflow: visible;
    position: relative;
    display: block;
    width: 100%;
    text-align: center;
    float: left;
}
.portal-col-outside {
	display: block;
	float: left;
	height: 100%;
	--widthA: 100%;
	--widthB: calc(var(--widthA) - 1440px);
	--widthC: calc(var(--widthB) / 2);
	width: var(--widthC);
	overflow: visible;
	min-width: 60px;
	position: relative;
}
.portal-col-outside-left {
	display: inline-block;
	position: relative;
	left: 0;
	top: 0;
	height: 100%;
	width: initial;
	overflow: visible;
}
#portal-cta {
	margin: 0 auto;
	position: absolute;
	text-align: center;
	top: 45%;
	width: 100%;
	z-index: 10000;
	overflow: hidden;
}
.portal-cta-slide {
	overflow: hidden;
	margin-bottom: 90px;
}
h1 {
	color: #fff;
	font-family: futura-pt-bold;
	font-size: 77px;
	line-height: 77px;
}
h2 {
	color: #fff;
	font-size: 50px;
	line-height: 60px;
}
.portal-cta-slide-bm-h1,
.portal-cta-slide-ts-h1,
.portal-cta-slide-pp-h1,
.portal-cta-slide-dk-h1 {
  	transform: translate(0px, 0px);
	animation-name: portalctaslideh1;
	animation-duration: 1s;
	animation-iteration-count: 1;
	animation-delay: .2s;
}
.portal-cta-slide-bm-h2,
.portal-cta-slide-ts-h2,
.portal-cta-slide-pp-h2,
.portal-cta-slide-dk-h2 {
  	transform: translate(0px, 0px);
	animation-name: portalctaslideh2;
	animation-duration: 1s;
	animation-iteration-count: 1;
	animation-delay: .2s;
}
@keyframes portalctaslideh1 {
  0%   {
  	transform: translate(0px, -100%);
  }
  100% {
  	transform: translate(0px, 0);
  }
}
@keyframes portalctaslideh2 {
  0%   {
  	transform: translate(0px, 100%);
  }
  100% {
  	transform: translate(0px, 0);
  }
}

#portal-cta a,
#portal-cta a:link,
#portal-cta a:visited {
	background: #ed1b30;
	color: #fff;
	display: block;
	font-size: 17px;
	font-family: futura-pt-bold;
	height: 56px;
	letter-spacing: .9px;
	line-height: 56px;
	margin: 0 auto;
	max-width: 280px;
	text-align: center;
	text-transform: uppercase;
}
#portal-cta a:hover,
#portal-cta a:active {
	background: #fff;
	color: #1a2a3a;
	}
.portal-col {
	height: 100%;
	position: relative;
	text-align: center;
    border-right: 1px solid rgba(255, 255, 255, 0.20);
    border-left: 1px solid rgba(255, 255, 255, 0.20);
    z-index: 2000;
}
.portal-col a,
.portal-col a:link,
.portal-col a:visited {
	padding-bottom: 20px;
	position: absolute;
	bottom: 0;
	border-bottom: 10px solid transparent;
	display: block;
	overflow: hidden;
	text-align: center;
	width: 100%;
	z-index: 2001;
}
.portal-col a:hover,
.portal-col a:active {
	border-bottom: 10px solid #ed1b30;
	transition: border-bottom 1.2s;
}
.portal-col a img {
	opacity: .4;
	width: 50%;
	display: block;
	margin: 0 auto;
}
.portal-col-slide {
	height: 100%;
	width: 100%;
	opacity: 0;
	position: absolute;
	top: 0;
	z-index: 1999;
}
.portal-col-show {
	opacity: 1;
	transition-delay: .2s;
}

.stage1-slide {
	top: 0%;
	opacity: 1;
	z-index: 1998;
	animation-name: stage1slide;
	animation-duration: .4s;
	animation-delay: 0.3s;
	animation-fill-mode: forwards;
	animation-timing-function: ease-in;
	animation-iteration-count: 1;
}
.bm-bg-slide {
    background: url("/images/images/npn360-Hero-BrandedMerch.jpg") center top no-repeat;
    background-attachment: fixed;
}
.stage2-slide {
	top: 0;
	opacity: 1;
	z-index: 1998;
	animation-name: stage1slide;
	animation-duration: .35s;
	animation-delay: .45s;
	animation-fill-mode: forwards;
	animation-timing-function: ease-in;
	animation-iteration-count: 1;
}
.ts-bg-slide {
    background: url("/images/images/npn360-Hero-TradeShow.jpg") center top no-repeat;
    background-attachment: fixed;
}
.stage3-slide {
	top: 0;
	opacity: 1;
	z-index: 1998;
	animation-name: stage1slide;
	animation-duration: .325s;
	animation-delay: .55s;
	animation-fill-mode: forwards;
	animation-timing-function: ease-in;
	animation-iteration-count: 1;
}
.pp-bg-slide {
    background: url("/images/images/npn360-Hero-Print.jpg") center top no-repeat;
    background-attachment: fixed;
}
.stage4-slide {
	top: 0;
	opacity: 1;
	z-index: 1998;
	animation-name: stage1slide;
	animation-duration: .300s;
	animation-delay: .6s;
	animation-fill-mode: forwards;
	animation-timing-function: ease-in;
	animation-iteration-count: 1;
}
.dk-bg-slide {
    background: url("/images/images/npn360-Hero-DemoKit.jpg") center top no-repeat;
    background-attachment: fixed;
}
.stage5-slide {
	top: 0;
	opacity: 1;
	z-index: 1998;
	animation-name: stage1slide;
	animation-duration: .25s;
	animation-delay: .65s;
	animation-fill-mode: forwards;
	animation-timing-function: ease-in;
	animation-iteration-count: 1;
}
@keyframes stage1slide {
  0%   {
  	opacity: 1;
  	top:0;
  }
  1%   {
  	opacity: 1
  }
  99.99% {
  	opacity: 1;
  	top: 100%;
  }
  100% {
  	opacity: 0;
  	top: 0;
  }
}



/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH BELOW 1560 PIXELS
======================================== */
@media only screen and (max-width: 1560px) {

	.portal-col-outside {
		min-width: 60px;
	}
	#portal-ctn {
		--widthA: 100%;
		--widthB: calc(var(--widthA) - 120px);
		width: var(--widthB);
	}

}



/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH BELOW 1120 PIXELS
======================================== */

@media only screen and (max-width: 1120px) {
    .col-two {
        column-gap: 30px;
    }
}

/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH BELOW 1020 PIXELS
======================================== */

@media only screen and (max-width: 1020px) {
	.clr-mq1023 {
		clear: both;
		float: none;
	}
}



/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH BELOW 960 PIXELS
======================================== */
@media only screen and (max-width: 960px) {
    .col-four-ninth,
    .col-five-ninth {
        width: 50%;
    }
	h1 {
		font-size: 57px;
		line-height: 57px;
	}
	h2 {
		font-size: 40px;
		line-height: 50px;
	}
}

/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH BELOW 840 PIXELS
======================================== */
@media only screen and (max-width: 840px) {
	.col-half {
		clear: both;
		float:none;
		width:100%;
	}
    .col-two {
        column-gap: 20px;
    }
    .col-half:nth-of-type(n) {
        padding-left: 0; 
        padding-right: 0;
    }
	.clr-mq679 {
		clear: both;
		float: none;
	}
	.display-mq840 {
		display: inline;
	}
	.portal-col-outside {
		min-width: 30px;
	}
	#portal-ctn {
		--widthA: 100%;
		--widthB: calc(var(--widthA) - 60px);
		width: var(--widthB);
	}
}

/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH BELOW 767 PIXELS
======================================== */

@media only screen and (max-width: 767px) {
	.portal-col a img {
		width: 80%;
		left: 10%;
	}

}


/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH BELOW 680 PIXELS
======================================== */

@media only screen and (max-width: 680px) {
.col-one-third, 
.col-two-third {
		clear: both;
		float:none;
		width:100%;
	}
	.col-two {
        column-count: 1;
        column-gap: 0;
    }
    #portal-cta {
    	top: 35%;
    }
	h1 {
		font-size: 77px;
		line-height: 77px;
	}
	h2 {
		font-size: 34px;
		line-height: 44px;
	}
	.clr-mq679 {
		clear: both;
		float: none;
	}
	.display-mq679 {
		display: inline;
	}
	.display-none-mq679 {
		display: none;
	}
}

/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH BELOW 540 PIXELS
======================================== */
@media only screen and (max-width: 540px) {
	.col-one-fourth,
	.col-one-fourth-gutter {
		width:50%;
	}
	.portal-col {
		height: 20%;
		border: none;
	}
	.portal-col-outside {
		min-width: 0;
	}
	#portal-ctn {
		width: 100%;
		display: flex;
		align-items: flex-end;
	}
	.portal-col a img {
		width: 90%;
		left: 5%;
	}
	h1 {
		font-size: 54px;
		line-height: 54px;
		margin-bottom: 10px;
	}
	h2 {
		font-size: 22px;
		line-height: 32px;
	}
	.display-mq519 {
		display: inline;
	}

}



/* ======================================== 
MEDIA QUERY FOR SCREEN HEIGHT BELOW 980 PIXELS
======================================== */
@media only screen and (max-height: 980px) {

	.bm-bg-slide {
		background-size: cover;	
	}
	.ts-bg-slide {
		background-size: cover;	
	}
	.pp-bg-slide {
		background-size: cover;	
	}
	.dk-bg-slide {
		background-size: cover;	
	}
	.portal-cta-slide {
		margin-bottom: 20px;
	}

}
/* ======================================== 
MEDIA QUERY FOR SCREEN HEIGHT BELOW 767 PIXELS
======================================== */
@media only screen and (max-height: 767px) {

	h1 {
		font-size: 54px;
		line-height: 54px;
	}
	h2 {
		font-size: 22px;
		line-height: 32px;
	}

}


/* ======================================== 
MEDIA QUERY FOR SCREEN HEIGHT BELOW 480 PIXELS
======================================== */
@media only screen and (max-height: 480px) {

	.portal-col a img {
		width: 50%;
		left: 25%;
	}
	#portal-cta {
		top: 25%;
	}
	h1 {
		font-size: 47px;
		line-height: 47px;
	}
	#portal-cta a,
	#portal-cta a:link,
	#portal-cta a:visited {
		height: 46px;
		line-height: 46px;
	}

}




/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH OVER 1920 PIXELS AND HEIGHT OVER 980
======================================== */

@media only screen and (min-width: 1920px) and (min-height: 980px) {

#portal-bg-bm {
	background-size: 100%;	
}
#portal-bg-ts {
	background-size: 100%;	
}
#portal-bg-pp {
	background-size: 100%;	
}
#portal-bg-dk {
	background-size: 100%;	
}
.portal-bg-ctn.show,
.portal-bg.show {
	opacity: 1;
}
.portal-bg.show {
	width: 100%;
}

.bm-bg-slide {
	background-size: 100%;	
}
.ts-bg-slide {
	background-size: 100%;	
}
.pp-bg-slide {
	background-size: 100%;	
}
.dk-bg-slide {
	background-size: 100%;	
}

}

/* ======================================== 
MEDIA QUERY FOR SCREEN WIDTH UNDER 1920 PIXELS AND HEIGHT OVER 980
======================================== */

@media only screen and (max-width: 1920px) and (min-height: 980px) {

#portal-bg-bm {
	background-size: cover;	
}
#portal-bg-ts {
	background-size: cover;	
}
#portal-bg-pp {
	background-size: cover;	
}
#portal-bg-dk {
	background-size: cover;	
}

}