html, body {
	height: 100%;
}
* {
    box-sizing: border-box;
}
body {
	background: #FFFFFF;
	color: #2b2b2f;
	margin: 0 auto;
	/* ==================== 
	Below solves the type resizing that Safari mobile does on this element. 
	==================== */
	-webkit-text-size-adjust: 100%;
	/* ==================== 
	Below solves the type resizing that Microsoft mobile does on this element. 
	==================== */
	-ms-text-size-adjust: none;
	position: relative;
}

/* ======================================== 
STYLES FOR COLUMN MANAGEMENT
======================================== */
.wpr {
	background-color: #FFFFFF;
	height: 100%;
	margin: 0 auto;
	max-height: 100%;
	padding: 0;
	overflow: hidden;
	width: 100%;
}
.ctn {
	border:none;
	height: 100%;
	margin: 0 auto;
	max-width: 1440px;
	overflow: hidden;
	padding: 0;
}
.col-full {
	max-width:100%;
	overflow: hidden;
	position: relative;
}
.col-half {
	float:left;
	width:50%; 
}
.col-half:nth-of-type(odd) {
    padding-right: 30px;
}
.col-half:nth-of-type(even) {
    padding-left: 30px;
}
.col-one-third {
	float:left;
	width:33.333333%; 
}
.col-two-third {
	float:left;
	width:66.666666%; 
}
.col-one-fourth-gutter {
	float:left;
	width: 1.587301%; 
}
.col-one-fourth {
	float:left;
	width:25%; 
}
.col-three-fourths {
	float:left;
	width:74.603174%; 
}
.col-five-sixteenths {
	float:left;
	width:31.25%; 
}
.col-three-sixteenths {
	float: left;
	width: 18.75%;
}
.col-one-ninth {
    width: 11.111111%;
}
.col-four-ninth {
    float: left;
    padding-right: 30px;
    width: 44.444444%;
}
.col-five-ninth {
    float: left;
    padding-left: 30px;
    width: 55.555555%;
}


/* ======================================== 
STANDARD SETUP STYLES
======================================== */
a, 
a:link, 
a:visited {
	color: #CC0000;
	outline: none;
	text-decoration: none;
}
a:hover, 
a:active, 
a:focus {
	text-decoration: none;
}
img {
	border: none;
	height: auto;
}
p, div, h1, h2, h3, h4, h5, h6, a, span, ul, ol, li, li strong, strong, em {
	color: inherit;
	font-family: "futura-pt", sans-serif;
	font-weight: 400;
	margin:0; 
	padding:0;
}
p, a, ul, ol, li {
	font-size: 18px;
	line-height: 28px;
	text-align: left;
}
p {
    margin-bottom: 14px;
}
ul, ol {
    margin-bottom: 14px;
	margin-left: 18px;
}
h1, h2, h3, h4, h5, h6 {
    margin: 0 auto;
	text-align: center;
}
strong, li strong {
	font-weight: 700;
}
em {
	font-style: italic;
    font-weight: inherit;
}
span {
    font-weight: inherit;
}
sup {
	font-size: 45%;
	line-height: 0; /*line heigth:0 keeps the superscript from altering the space between lines*/
	vertical-align: .3em;
}
.clr {
	clear:both;
}


/* ======================================== 
NPN360 PORTAL
======================================== */
#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;	
}

}