@charset "UTF-8";
*, *::before, *::after {
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }

body, h1, h2, h3, h4, p, li, figure, figcaption, blockquote, dl, dd {
  margin: 0; }

ul[class] {
  margin: 0;
  padding: 0;
  list-style: none; }

a {
  text-decoration-skip-ink: auto;
  -webkit-transition: all .2s ease-in-out;
  -o-transition: all .2s ease-in-out;
  transition: all .2s ease-in-out;
  cursor: pointer; }

img {
  max-width: 100%;
  display: block;
  -ms-flex-item-align: baseline;
  align-self: baseline; }

input, button, textarea, select {
  font: inherit; }

.container {
  margin: 0 auto;
  background: white;
  -webkit-box-sizing: border-box;
  box-sizing: border-box; }
  @media only screen and (min-width: 1440px) {
    .container {
      max-width: 1300px; } }

body {
  background: url("../images/backgrounds/bg.jpg") repeat;
  background-attachment: fixed;
  font-family: 'Open Sans'; }

.top_bar, .aside_title {
  background: #d00;
  color: white; }

.top_bar {
  border-bottom: 1px solid #000; }

.page_title_container {
  background: black;
  padding: 20px;
  color: #d00; }
  .page_title_container ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap;
    margin-top: 10px;
    font-size: 13px; }
    .page_title_container ul li span {
      display: inline;
      margin: 0 5px; }
    .page_title_container ul li a {
      color: white;
      text-decoration: none;
      font-weight: normal;
      cursor: pointer; }
      .page_title_container ul li a:hover {
        color: #d00; }

.page_title {
  background: black;
  color: white;
  width: 100%; }

h1, h2, h3, h4, h5, h5 {
  font-family: 'Montserrat';
  font-weight: 600; }
  
.category_title {margin: 20px 0;}

p {
  line-height: 1.6em;
  margin: 10px 0; }

.top_bar {
  padding: 15px;
  text-align: center;
  width: 100%;
  font-size: 15px; }
  @media only screen and (min-width: 1024px) {
    .top_bar {
      text-align: left; } }
  .top_bar span {
    padding: 5px; }
  .top_bar a, .top_bar a:visited {
    color: white;
    font-weight: normal;
    cursor: pointer; }
    .top_bar a:hover, .top_bar a:visited:hover {
      color: white; }

header {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  position: relative;
  padding: 10px; }

nav {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
  height: 75px; }

.menu {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  display: none;
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  justify-content: flex-end;
  -webkit-transition: all .3s ease-in-out;
  -o-transition: all .3s ease-in-out;
  transition: all .3s ease-in-out;
  height: 75px;
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1; }
  @media only screen and (min-width: 640px) {
    .menu {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex; } }
  .menu li {
    height: 75px; }
    .menu li a {
      color: #000;
      height: 100%;
      display: block;
      line-height: 75px;
      margin-left: 20px;
      padding: 0 20px;
      color: #000;
      text-decoration: none;
      font-weight: bold;
      cursor: pointer; }
      .menu li a:hover {
        color: #d00; }

input[type="checkbox"] {
  display: none; }

.menu-icon {
  width: 32px;
  height: 32px;
  background: url("../images/icons/menu.jpg");
  background-position: top center;
  position: absolute; }
  @media only screen and (min-width: 640px) {
    .menu-icon {
      display: none; } }

input[type="checkbox"]:checked ~ .menu {
  background: #000;
  display: block;
  position: absolute;
  top: 95px;
  right: 0;
  left: 0;
  height: 100vh; }
  input[type="checkbox"]:checked ~ .menu li {
    border-bottom: 1px solid #333; }
    input[type="checkbox"]:checked ~ .menu li:hover {
      background: #d00; }
    input[type="checkbox"]:checked ~ .menu li a {
      color: white;
      text-align: center;
      margin-left: 0;
      padding: 0;
      font-size: 20px; }

input[type="checkbox"]:checked ~ .menu-icon {
  background-position: bottom center; }

.hero {
  max-height: 400px;
  width: auto;
  overflow-y: hidden;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex; }
  .hero img {
    -ms-flex-item-align: center;
    -ms-grid-row-align: center;
    align-self: center; }

.row {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap; }

.third {
  width: 100%;
  padding: 10px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column nowrap;
  flex-flow: column nowrap; }
  @media only screen and (min-width: 640px) {
    .third {
      width: 50%; } }
  @media only screen and (min-width: 1248px) {
    .third {
      width: 33.3333%; } }

.content_container {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  width: 100%;
  padding: 0 20px; }
  .content_container .sidebar {
    -webkit-box-ordinal-group: 3;
    -ms-flex-order: 2;
    order: 2;
    width: 100%; }
    @media only screen and (min-width: 1024px) {
      .content_container .sidebar {
        width: 25%;
        -webkit-box-flex: 0;
        -ms-flex: none;
        flex: none;
        -webkit-box-ordinal-group: 2;
        -ms-flex-order: 1;
        order: 1; } }
  .content_container .contact_sidebar {
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
    width: 100%; }
    @media only screen and (min-width: 1024px) {
      .content_container .contact_sidebar {
        width: 40%;
        -webkit-box-flex: 0;
        -ms-flex: none;
        flex: none;
        -webkit-box-ordinal-group: 3;
        -ms-flex-order: 2;
        order: 2; } }
    .content_container .contact_sidebar aside {
      display: -webkit-box;
      display: -ms-flexbox;
      display: flex;
      -webkit-box-orient: vertical;
      -webkit-box-direction: normal;
      -ms-flex-flow: column nowrap;
      flex-flow: column nowrap; }
  .content_container .content_area {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -ms-flex-flow: column nowrap;
    flex-flow: column nowrap;
    -webkit-box-ordinal-group: 2;
    -ms-flex-order: 1;
    order: 1;
    -webkit-box-flex: 2;
    -ms-flex: 2;
    flex: 2;
    margin: 0 0 50px 0; }
    @media only screen and (min-width: 1024px) {
      .content_container .content_area {
        padding: 0 25px; } }

footer {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap; }

.product_landing .sidebar {
  -webkit-box-ordinal-group: 2;
  -ms-flex-order: 1;
  order: 1;
  margin-bottom: 50px; }

.product_landing .content_area {
  -webkit-box-ordinal-group: 3;
  -ms-flex-order: 2;
  order: 2; }

.contact_form {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column nowrap;
  flex-flow: column nowrap;
  width: 100%; }

.form_field {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column nowrap;
  flex-flow: column nowrap; }
  .form_field label {
    font-weight: 700;
    padding: 10px 0;
    color: #000; }
  .form_field input, .form_field textarea {
    border: 1px solid #000;
    padding: 10px;
    font-family: Open Sans;
    font-weight: bold;
    -webkit-transition: all .2s ease-in-out;
    -o-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out; }
    .form_field input:focus, .form_field textarea:focus {
      background: lightyellow;
      font-weight: bold; }
  .form_field #submit {
    background: #000;
    color: white;
    margin-top: 20px;
    -ms-flex-item-align: end;
    align-self: flex-end;
    -webkit-transition: all .3s ease-in-out;
    -o-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out; }
    .form_field #submit:hover {
      cursor: pointer;
      background: #d00; }

.google-maps iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100% !important;
  height: 100% !important;
  border-bottom: 3px solid #ddd; }

.google-maps {
  position: relative;
  padding-bottom: 30%;
  height: 0;
  overflow: hidden; }

body {
  font-size: .9em; }
  @media only screen and (min-width: 1024px) {
    body {
      font-size: 1em; } }

h1 {
  font-size: 1.5em; }
  @media only screen and (min-width: 768px) {
    h1 {
      font-size: 2em; } }

h2 {
  font-size: 1.25em; }
  @media only screen and (min-width: 560px) {
    h2 {
      font-size: 1.5em; } }

.content_container {
  margin: 50px 0; }

.featured_product img {
  margin-bottom: 20px;
  margin: 0 auto;
  max-width: 300px; }

.featured_product .featured_product_title_link {
  font-family: 'Montserrat';
  font-weight: 600;
  color: #000;
  text-decoration: none;
  font-weight: bold;
  cursor: pointer;
  font-weight: 600;
  text-align: center; }
  .featured_product .featured_product_title_link:hover {
    color: #d00; }
  @media only screen and (min-width: 1024px) {
    .featured_product .featured_product_title_link {
      text-align: left; } }

.featured_product .featured_product_category_link {
  color: #000;
  font-size: 13px;
  margin: 5px 0;
  text-align: center;
  color: #000;
  text-decoration: none;
  font-weight: normal;
  cursor: pointer; }
  .featured_product .featured_product_category_link:hover {
    color: #d00; }
  @media only screen and (min-width: 1024px) {
    .featured_product .featured_product_category_link {
      text-align: left; } }

.product_page_image_wrap {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: vertical;
  -webkit-box-direction: normal;
  -ms-flex-flow: column nowrap;
  flex-flow: column nowrap; }
  .product_page_image_wrap .product_page_image {
    max-width: 100%; }
  .product_page_image_wrap .resize_btn {
    -ms-flex-item-align: end;
    align-self: flex-end; }

.product_content {
  -webkit-box-flex: 1;
  -ms-flex: 1;
  flex: 1;
  padding: 20px; }
  .product_content .product_content_list {
    list-style: disc;
    list-style-position: inside;
    line-height: 1.5em; }
  .product_content hr {
    border-top: 1px solid #ddd;
    border-radius: 5px; }
  .product_content .product_content_list {
    padding: 20px; }

.price {
  color: #d00;
  font-family: 'Montserrat';
  font-weight: 600;
  font-size: 20px;
  padding: 10px 0;
  display: block; }

.description_wrap {
  width: 100%;
  margin-top: 50px; }
  .description_wrap .description_btn {
    background: #d00;
    color: white;
    border: 0;
    padding: 15px 20px;
    margin-right: 2px; }
  .description_wrap .description {
    padding: 50px;
    border: 1px solid #ddd;
    width: 100%; }
    .description_wrap .description h3 {
      margin-bottom: 20px; }

.related_products_container {
  margin-top: 50px; }
  .related_products_container h3 {
    padding-bottom: 15px;
    border-bottom: 1px solid #ddd; }

.sidebar aside {
  margin: 0 0 20px 0; }

.sidebar .sidebar_category_links li {
  border-bottom: 1px solid lightgrey; }
  .sidebar .sidebar_category_links li:last-of-type {
    border: 0; }
  .sidebar .sidebar_category_links li a {
    display: block;
    padding: 10px;
    color: #000;
    text-decoration: none; }
    .sidebar .sidebar_category_links li a:hover, .sidebar .sidebar_category_links li a a:visited {
      color: #d00; }

.aside_title {
  margin-bottom: 10px;
  padding: 10px; }

.contact_sidebar span {
  font-weight: bold;
  line-height: 1.6rem; }

.contact_sidebar a {
  color: #d00; }

.product_tags {
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap; }
  .product_tags li {
    margin: 2px;
    background: black;
    border: 1px solid #444; }
    .product_tags li a {
      display: inline-block;
      padding: 4px 8px;
      font-size: 14px;
      color: white;
      text-decoration: none;
      font-weight: normal;
      cursor: pointer; }
      .product_tags li a:hover {
        color: white;
        background: #d00; }

.purchase_sidebar {
  background: #000; }
  .purchase_sidebar h4 {
    margin-bottom: 0; }
  .purchase_sidebar span {
    font-family: 'Montserrat';
    font-weight: 600;
    color: white;
    padding: 10px 10px 20px 10px;
    display: block;
    font-size: inherit;
    line-height: 1.5em;
    font-size: 15px; }

footer {
  background: #000;
  padding: 20px;
  display: -webkit-box;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-orient: horizontal;
  -webkit-box-direction: normal;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
  color: #ddd;
  border-top: 20px solid #d00; }
  footer span {
    line-height: 2; }
  footer h4 {
    text-transform: uppercase;
    font-size: 15px;
    margin-bottom: 25px;
    color: white; }
  footer a {
    color: white;
    text-decoration: none;
    font-weight: normal;
    cursor: pointer;
    color: white; }
    footer a:hover {
      color: #d00; }
    footer a:hover {
      color: #d00; }
  footer aside {
    margin: 0 0 50px 0; }
  footer .third {
    padding: 20px; }
    footer .third:nth-child(even) {
      border-top: 2px solid #333;
      border-bottom: 2px solid #333; }
    @media only screen and (min-width: 1024px) {
      footer .third:nth-child(even) {
        border-right: 2px solid #333;
        border-left: 2px solid #333;
        border-top: 0;
        border-bottom: 0; } }
  footer .footer_information_block h4:last-of-type {
    margin-top: 50px; }
  footer .footer_information_block .social_links {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: horizontal;
    -webkit-box-direction: normal;
    -ms-flex-flow: row wrap;
    flex-flow: row wrap; }
    footer .footer_information_block .social_links .social_link {
      width: 48px;
      height: 48px;
      display: block;
      cursor: pointer;
      background: white; }
      footer .footer_information_block .social_links .social_link:hover {
        background: #000; }
    footer .footer_information_block .social_links li {
      margin: 20px 10px 0 0; }
  footer .footer_logo {
    margin-bottom: 50px;
    border: 2px solid #d00; }
  footer .footer_product_links a:hover {
    color: white; }
  footer .footer_category_links li a {
    display: block;
    padding: 10px 0;
    color: white;
    text-decoration: none;
    border-bottom: 1px solid #333; }
    footer .footer_category_links li a:hover, footer .footer_category_links li a a:visited {
      color: #d00; }
  footer .footer_recently_viewed_products img {
    max-width: 175px; }
  footer .footer_recently_viewed_products a {
    font-family: 'Montserrat';
    font-weight: 600;
    display: block;
    padding: 10px 0; }

.copyright {
  background: #d00;
  color: white;
  padding: 20px 0;
  text-align: center;
  font-size: 13px; }
  .copyright a, .copyright a:visited {
    color: white; }

/**
 * Featherlight – ultra slim jQuery lightbox
 * Version 1.7.13 - http://noelboss.github.io/featherlight/
 *
 * Copyright 2018, Noël Raoul Bossart (http://www.noelboss.com)
 * MIT Licensed.
**/
.featherlight {
  display: none;
  /* dimensions: spanning the background from edge to edge */
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 2147483647;
  /* z-index needs to be >= elements on the site. */
  /* position: centering content */
  text-align: center;
  /* insures that the ::before pseudo element doesn't force wrap with fixed width content; */
  white-space: nowrap;
  /* styling */
  cursor: pointer;
  background: #333;
  /* IE8 "hack" for nested featherlights */
  background: rgba(0, 0, 0, 0); }

/* support for nested featherlights. Does not work in IE8 (use JS to fix) */
.featherlight:last-of-type {
  background: rgba(0, 0, 0, 0.8); }

.featherlight:before {
  /* position: trick to center content vertically */
  content: '';
  display: inline-block;
  height: 100%;
  vertical-align: middle; }

.featherlight .featherlight-content {
  /* make content container for positioned elements (close button) */
  position: relative;
  /* position: centering vertical and horizontal */
  text-align: left;
  vertical-align: middle;
  display: inline-block;
  /* dimensions: cut off images */
  overflow: auto;
  padding: 25px 25px 0;
  border-bottom: 25px solid transparent;
  /* dimensions: handling large content */
  margin-left: 5%;
  margin-right: 5%;
  max-height: 95%;
  /* styling */
  background: #000;
  cursor: auto;
  /* reset white-space wrapping */
  white-space: normal; }

/* contains the content */
.featherlight .featherlight-inner {
  /* make sure its visible */
  display: block; }

/* don't show these though */
.featherlight script.featherlight-inner,
.featherlight link.featherlight-inner,
.featherlight style.featherlight-inner {
  display: none; }

.featherlight .featherlight-close-icon {
  /* position: centering vertical and horizontal */
  position: absolute;
  z-index: 9999;
  top: 0;
  right: 0;
  /* dimensions: 25px x 25px */
  line-height: 25px;
  width: 25px;
  /* styling */
  cursor: pointer;
  text-align: center;
  font-family: Arial, sans-serif;
  background: #fff;
  /* Set the background in case it overlaps the content */
  background: rgba(255, 255, 255, 0.3);
  color: #000;
  border: none;
  padding: 0; }

/* See http://stackoverflow.com/questions/16077341/how-to-reset-all-default-styles-of-the-html5-button-element */
.featherlight .featherlight-close-icon::-moz-focus-inner {
  border: 0;
  padding: 0; }

.featherlight .featherlight-image {
  /* styling */
  width: 100%; }

.featherlight-iframe .featherlight-content {
  /* removed the border for image croping since iframe is edge to edge */
  border-bottom: 0;
  padding: 0;
  -webkit-overflow-scrolling: touch; }

.featherlight iframe {
  /* styling */
  border: none; }

.featherlight * {
  /* See https://github.com/noelboss/featherlight/issues/42 */
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

/* handling phones and small screens */
@media only screen and (max-width: 1024px) {
  .featherlight .featherlight-content {
    /* dimensions: maximize lightbox with for small screens */
    margin-left: 0;
    margin-right: 0;
    max-height: 98%;
    padding: 10px 10px 0;
    border-bottom: 10px solid transparent; } }

/* hide non featherlight items when printing */
@media print {
  html.with-featherlight > * > :not(.featherlight) {
    display: none; } }
    
.error{background: #d00; color: white; font-size: 13px; padding: 2px; align-self: flex-end;}
span.error + input, span.error + textarea {border-color: #d00;}
.scrollToTop {width: 80px; background: black; height: 30px; cursor: pointer; position: fixed; bottom: 0; right: 5px; border-radius: 15px 15px 0 0; transition: all .2s ease-in-out;}
.scrollToTop img {margin: 2px auto 0 auto; display: block;}
@media only screen and (max-width: 1024px) {
    .scrollToTop {width: 40px; border-radius: 0 0 0 0; right: 0;}
}
.underlined {border-bottom: 2px solid #d00; padding: 10px 0; margin-bottom: 25px;}