@import url(http://fonts.googleapis.com/css?family=Montserrat:700,400);
@import url(http://fonts.googleapis.com/css?family=Open+Sans:400italic,400);

html, body {height:100%; margin:0; }

body {
font-family: 'Open Sans', sans-serif;
}

*, *:before, *:after {
  -moz-box-sizing: border-box; -webkit-box-sizing: border-box; box-sizing: border-box;
 }

/*--- Fullscreen setup ----*/
.ezpagebuilder-page-wrapper, .ezpagebuilder-page-wrapper > table, .ezpagebuilder-page-main {
width:100%; height:100%;
position:relative;
-webkit-transition: right .3s;
transition: right .3s;

}
.ezpagebuilder-page-offset {display:none;}

.maxwidth {  max-width:57em; padding:.5em; margin:auto; }

.fullwidth {padding:0 1em; }

/*::::::::::::::::::::::::: General Formatting :::::::::::::::::::::::*/

h1, h2, h3, h4, h5, h6 {
color:#061e4e;
font-family: 'Montserrat', sans-serif;
}

h1 {
font-size:3em;
margin:.35em auto;
line-height:1.1;
}

h2 {
font-size:2em;
margin:.35em auto;
}

a {color:#064EbE;}

p { 
line-height:1.5;
margin:.5em auto;
}

ul {
margin:.2em 0;
}

li {
line-height:1.4;
margin:.35em auto;
}

img[align=left] {
margin-right:.5em;
}


/*------------------ Header ----------------------*/

.header {
/*background:linear-gradient(to bottom, #fff 30%, #e2f8ff 60%);
background-color:#e2f8ff;*/
padding:.25em;
background:linear-gradient(to bottom, #1D7AD6 20%, #1066BE 60%);
background-color:#1066BE;
vertical-align:bottom;
color:white;
box-shadow: inset 0 0 1px 2px rgba(255,255,255,.25), 0 1px 2px 1px rgba(0,0,0,.7);
}

#logo {float:left; padding:.25em; }

#logo img {
height:50px;
border:none;
filter: drop-shadow(0 0 3px rgba(255,255,255,.45) )
}

#phone {
float:right;
font-size:.9em;
font-weight:bold;
padding:1em ;
}

#phone a { color:#ffc; text-decoration:none; }


/*------------------ Top Nav ------------------------*/

nav ul {
display:inline-block;
list-style:none;
margin:0; padding:0;
}

nav li {
display:inline;
line-height:1;
}

nav li a {
display:inline-block;
color:#061e4e;
color:#fff;
font-size:.9em;
font-weight:bold;
padding:1.2em ;
text-decoration:none;
border-radius: 2px;
}

.header a:hover {
background:rgba(255,255,255,.08);
box-shadow:inset 0 0 1px 1px rgba(255,255,255,.1);
}

nav li a.current, .university a.university {
background:rgba(255,255,255,.12) !important;
box-shadow:0 1px 1px 1px rgba(0,0,0,.3), inset 0 0 1px 1px rgba(255,255,255,.25) !important;
}



/*---------- mobile nav -------------*/

#menu-btn {
display:none;
border:solid 1px #abc;
background:#054484;
color:white;
padding:1em; 
cursor:pointer;
text-align:center;
border-radius:3px;
box-shadow:inset 0 0 2px 2px rgba(200,220,240,.2);
}

#menu-btn:after {
content:" ";
display:inline-block;
border:solid 5px transparent;
border-top:solid 6px currentColor;
border-bottom:solid 2px transparent;
margin-left:4px;
}

.open #menu-btn {background:#054484;}


/*======================= Homepage ==========================*/

#banner {
background:#064C45;
position:relative;
width:100%;
overflow:hidden;
border-bottom:solid 5px #ff9023;
}

#banner-photo {
width:100%;
}

#banner-text p a {
color:#bef;
}

#banner-text {
position:absolute;
top:16.5%;
left:4%;
color:#eee;
width:27em;
z-index:99;
zoom:1;
}

#banner-text h1{
color:white;
font-size:3em;
text-shadow:2px 2px 2px #000;
}

#banner-text p {
font-size:1.15em;
text-shadow:2px 2px 2px #000;
margin:.6em auto;
}

.go-btn a{
display:inline-block;
background:gold;
color:#111 !important;
text-decoration:none;
padding:.5em;
font-size:1.15em;
border-radius:.3em;
box-shadow: 2px 2px #000;
}

@media (min-width:1200px) {
 #banner-text {font-size:115%;} 
}
@media (min-width:1400px) {
 #banner-text {font-size:130%;} 
}
@media (min-width:1600px) {
 #banner-text {font-size:150%;} 
}

@media (max-width:1080px) {
 #banner-text {font-size:1.7vw; left:1%; top:10%; }
}

@media (max-width:630px) {
 #banner-text {font-size:70%; width:26em; left:2%; top:10%; }
 .go-btn a { font-size:1.75em;}
 #banner-text p { font-size:1.75em;}
 #banner-text p br { display:none; }
 #banner-photo {width:122%; margin-right:-22%; }
}
@media (max-width:500px) {
 #banner-text {font-size:70%;}
}
@media (max-width:420px) {
 #banner-text {font-size:55%;}
 #banner-photo {width:128%; margin-right:-28%; }
}

/*======================= Products ===========================*/

#shack-options, #shavers {margin:0; padding:0; text-align:center;}

#shack-options li {
display: inline-block;
width: 32.5%;
height: 28em;
margin:.25%;
text-align:center;
vertical-align:top;
border:solid 2px #c3e4FF;
}

//#shavers {
display: inline-flex; 
display: -webkit-inline-flex;
}

#shavers li {
display: inline-block;
width: 24%;
margin:.25%;
text-align:center;
vertical-align:top;
font-size:1em;
transition: .1s;
}

#shavers li:hover {
transform:scale(1.05);
}

#shavers li img {
max-width:100%;
width:90%;
}

@media (max-width:800px) {
 #shavers li { width:48%; font-size:90%; }
 
}

/*==================== Success Stories =====================*/

.testimonials blockquote {
 font-size:1.4em;
 font-style:italic;
 font-family: Georgia, serif;
 color:#345;
 font-weight:normal;
 line-height:1.45;
 margin-left:3em;
 position:relative;
 border-bottom: dotted 3px #abc;
 padding-bottom:.7em;
}

.testimonials blockquote:before {
content:"\201c";
font-size:6.6em;
position:absolute;
line-height:1;
left:-.54em; top:-.08em;
color:#ace;
}



/*======================== Sno Shack University =======================*/

.snoshack-u {
position:relative;
}

.snoshack-u .maxwidth {
margin-left:325px;
padding:0 3.2% 2em;
max-width:100%;
position:relative;
background:white;
border-left:solid 1px #aaa;
min-height:55em;
z-index:9;
box-shadow: -2px 1px 2px rgba(0,0,0,.75);
font-family: 'Open Sans', sans-serif;
}

.snoshack-u .maxwidth > table {
max-width:46em;
}


/*------------ text & general formatting --------------*/

.snoshack-u h1 {
border-bottom:solid 6px #061E4E;
font-size:2.2em;
padding-bottom:.15em;
margin-bottom:.15em;
}

.snoshack-u h2 {
font-size:1.65em;
//border-bottom:solid 3px orange;
padding-bottom:.1em;
margin-bottom:.1em;
}


.snoshack-u h3 {
//border-bottom:solid 2px #ccc;
padding-bottom:.1em;
margin-bottom:.1em;
}

h4 { font-size: 1.125em; } /* 18px */
h3 { font-size: 1.3125em; } /* 21px */
h2 { font-size: 1.5em; } /* 24px */


.columns{
font-size:90%;
-moz-columns:15em;
-webkit-columns:15em;
}

aside.left {
float:left;
margin-right:1em;
}

.maxwidth img {
max-width: 100%;
}

/*---------- left navigation ------------*/
.leftnav {
padding:.5em 1em .5em .1em;
background:#E2F8FF;
width:325px;
position:absolute;
height:100%;
overflow:auto;
}

.leftnav.fixed {
position: fixed;
top:0px; bottom:0;
height:100%;
overflow:auto;
}

.leftnav h1 {
font-size:1.5em;
margin-left:15px;
}

.leftnav h1 a{
display:inline-block;
text-decoration:none;
}

.leftnav ol {padding-left:15px;}

.leftnav li {
margin:1px 0;
list-style:none;
}

.leftnav li a {
display:block;
text-decoration:none;
padding:.75em;
line-height:1.25;
border-radius:6px;
background:#061E4E;
color:white;
border:solid 1px currentColor;
}

.leftnav li a.current {
background:#FDF4B0;
color:#061E4E;
font-weight:bold;
}

.leftnav ol ol li {
 font-size:90%;
 list-style:none;
 opacity:.94;
}

@media (min-width:1600px) {
  .snoshack-u .maxwidth { padding-right:9%; }
}

@media (max-width:900px) {
  .snoshack-u .maxwidth { margin-left:240px; }
  .leftnav { width:240px; }
}

/*----- mobile left menu button -----*/

#L-menu-btn {
display:none;
position:absolute;
top:0; left:0;
background:#ED1C24;
color:white;
padding:.7em;
margin:.75em;
font-size:1em;
cursor:pointer;
border-radius:4px;
white-space:nowrap;
}
#L-menu-btn:before {
content:" ";
display:inline-block;
border:solid 6px transparent;
border-right: solid 6px currentColor;
margin-right:5px;
}

.open #L-menu-btn {  margin:.1em; padding:1.1em .8em;  background:#F7941E; }

@media (max-width:640px) {
 #L-menu-btn { display:inline-block; }
 .leftnav {  width:75%; overflow:auto; transition:.25s;}
 .snoshack-u .maxwidth { margin-left:0; left:0; padding-top:3em; position:relative;
   -webkit-transition:.25s ease-out; transition:.25s ease-out; box-shadow:-1px 0 3px #000;}
 .snoshack-u .maxwidth.open { left:75%; overflow:hidden;  }
}




/*---------------------- footer -----------------------*/
.footer {
position:relative;
background:#1066be;
color:white;
border-top:solid 5px #4299f2;
padding-top:25px;
z-index:20;
}

.footer a { 
color:#ffd; 
display:block;
font-size:1.05em;
padding:3px 5px;
text-decoration:none;
border-radius:3px;
max-width:9.5em;
text-shadow:1px 1px 0px rgba(70,0,0,.4);
}
.footer a:hover {
background:#07427C;
}

.footer-cup {
margin-top:-65px;
margin-bottom:-8px;
overflow:hidden;
text-align:right;
}

.footer-cup img {
margin-bottom:-180px;
}

.footer h3{
color:#ffc35a;
margin:0;
}

.footer ul {
margin:0; padding:0;
list-style:none;
}
.footer li {margin:.15em 0;}

.ezpagebuilder-page-footer {
background:#1066be;
font-family:sans-serif;
height:0px;
overflow:hidden;
}

.ezpagebuilder-page-footer p {margin:0;}
.ezpagebuilder-page-footer a {color:#fff;}


/*------- pagebuilder fix --------*/

.ezpagebuilder-block-buttons {
position:relative;
z-index:99999;
}


/*================================ Catalog ====================================*/

/*--- General Stuff ---*/
#content-wrapper { width:100%; }

#content-wrapper a {color:inherit;}

.ezcatalog  a:link, .ezcatalog  a:visited,.ezcheckout a:link, .ezcheckout a:visited {color:inherit;}
body, table {color:inherit; }

#content h1 {
margin:0;
margin-bottom:8px;
font-size: 2.25em;
border-bottom: solid 2px;
padding-bottom: 8px;
}

.category-gutter { display:none; }

#content {
 padding-top:2px;
}

.ezcatalog-header {
padding:0 1em;
}

/*---- catalog nav ------*/
#category-navigation li a {
display:block;
padding:.7em;
background:#E2F8FF;
margin:1px;
color:#061E4E;
text-decoration:none;
border:solid 1px #B5D2E0;
}

#category-navigation li a:hover {
background:#C1F0FF;
}

#category-navigation li.selected {
padding:5px;
background:#1066BE;
color:white;
border:solid 1px #cde;
text-indent:10px;
}

/*--------- breadcrumbs and search ------------*/

#bread-crumb-and-search {
padding:.25em .7em;
}
#shopping-cart-status {
padding-right:.7em;
margin-left:.7em;
}




/*--- paging wrapper ----*/
.paging-wrapper {
display:block;
height:auto;
}

.category-sort, .category-paging {
position:relative;
width:auto;
}

/*----- catalog header ---------*/

.category-sort {float:left;}
.category-item-count {float:right;}

/*---- catalog footer ----*/
.ezcatalog-global-footer {
background:#1066BE;
border-top: solid 5px #4299F2;
color:white;
}
.ezcatalog-global-footer a{ color:white; }


/*--- catalog items ----*/

.item {
display:inline-block;
border:solid 1px #def;
text-align:center;
background:#1066BE;
color:white;
box-shadow: 1px 1px 2px rgba(0,0,0,.5);
vertical-align:top;
}
.item img {
max-width:100%; height:auto;
}

.product-amount {text-align:center;}


//.item .quantity {display:none;}

.product-options { clear:both; }

.quantity { 
display:inline-block;
width:10em;
padding:.6em; 
border:solid 1px rgba(200,200,200,.25); 
}

.quantity > span { font-size:75%; display:block; width:10em;}
.quantity input {width:4em; margin-left:4px;}

.product-options input[type="submit"] {
display:block;
background:#FFD700;
padding:.5em;
line-height:1;
font-size:1.15em;
border-radius:4px;
border-color:gold;
}




/*---- product details ----*/

/*#product-options td {display:flex; flex-wrap:wrap; }
#product-options td label {flex-grow:1; display:inline-flex; }
#product-options td label input {flex-grow:1; }*/

#product-details {
 margin-left:0px;
 padding:5px;
 overflow:auto;
}




.product-name-description {max-width:20em; margin:auto;}

.product-name {
font-size:120%;
font-weight:bold;
text-align:center;
}



@media (max-width:1000px) {
  .ezcatalog {}
  .catalog-item { width:30%;}
  .catalog-item-image img {width:100%; height:auto;}
}

@media (max-width:520px) {
  #product-images { float:none; }

  #search-main, #shopping-cart-status {float:none; text-align:left; }
  #search-main form {display:flex;}
  #search-main form input[type="text"]{flex-grow:1; }

}

@media (max-width:450px) {
  .quantity { display:block; }
}

/*----------- shopping cart -------------*/

.error {display:none;}

.coupon-redemption {
margin:2em 0;
padding:.8em;
border:dashed 1px #777;
box-shadow: 0px 2px 3px rgba(0,0,0,.25);
}



/*================== Checkout =======================*/

.ezcheckout-wrapper h1 { font-size:1.6em; margin: .1em auto; }


/*::::::::::::::::::::::::: Media Queries :::::::::::::::::::::::::::*/

@media (min-width:1600px) { /*--- bigger screens ---*/
  body { font-size:115%; }
}


@media (min-width:1200px) { /*--- big screens ---*/

}
@media (max-width:1000px) { /*--- tablet ---*/

  #logo {float:none; display:inline-block;}
  #phone {padding:1em;}

  nav li a { padding:.75em;}
  nav { text-align:justify;}
  nav li.invisible { display:inline-block; width:70%;}

  .footer a { 
   padding:.5em; margin:.4em .2em;
   background:#166FC9;
   border:solid thin rgba(255,255,255,.5);
   box-shadow:1px 1px 1px rgba(0,0,0,.5);
   }

}

@media (max-width:780px) { 
   nav li a { font-size: 0.86em; }
}


@media (max-width:680px) {

  body { font-size:90%; }
  #menu-btn {display:block;}
  nav ul { max-height:0; overflow:hidden; -webkit-transition:.35s ease-out; transition:.35s ease-out; }
  nav.open ul { max-height:400px;}
  nav li a { font-size:1.3em; padding:1em; width:100%;
   border-bottom:solid 1px #8ab; border-top:solid 1px #fff;
  }  

}


@media (max-width:580px) {

  body { font-size:85%; }

  .footer table, .footer tbody, .footer tr, .footer td { display:block; width:100%; }

  .footer-cup {position:absolute; top:28px; right:0; margin:0;  }
  .footer-cup img {margin:0; margin-right:-31%; width:100%; transition:.15s;}

  img[align=left] { width:100%;}

   h2 { clear:both;}
}

@media (max-width:350px) {

   body { font-size:80%; }

  #logo img { height:40px; }

  .footer-cup { width:75%; }
  .footer-cup img {margin:0; margin-right:-24%; width:73%;}


  

}

