/*
 * Local server font downloads.
 */
@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat/montserrat-bold-webfont.woff2') format('woff2'),
         url('../fonts/montserrat/montserrat-bold-webfont.woff') format('woff');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat/montserrat-medium-webfont.woff2') format('woff2'),
         url('../fonts/montserrat/montserrat-medium-webfont.woff') format('woff');
    font-weight: 500;
    font-style: normal;
}

@font-face {
    font-family: 'Montserrat';
    src: url('../fonts/montserrat/montserrat-regular-webfont.woff2') format('woff2'),
         url('../fonts/montserrat/montserrat-regular-webfont.woff') format('woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Raleway';
    src: url('../fonts/raleway/raleway-regular-webfont.woff2') format('woff2'),
         url('../fonts/raleway/raleway-regular-webfont.woff') format('woff');
    font-weight: 400;
    font-style: normal;
}

@font-face {
    font-family: 'Raleway';
    src: url('../fonts/raleway/raleway-italic-webfont.woff2') format('woff2'),
         url('../fonts/raleway/raleway-italic-webfont.woff') format('woff');
    font-weight: 400;
    font-style: italic;
}

@font-face {
    font-family: 'Raleway';
    src: url('../fonts/raleway/raleway-bold-webfont.woff2') format('woff2'),
         url('../fonts/raleway/raleway-bold-webfont.woff') format('woff');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Raleway';
    src: url('../fonts/raleway/raleway-bolditalic-webfont.woff2') format('woff2'),
         url('../fonts/raleway/raleway-bolditalic-webfont.woff') format('woff');
    font-weight: 700;
    font-style: italic;
}
/*
 * Initialization
 */
:root {
  --h1-size: 1.602rem;
  --h2-size: 1.424rem;
  --h3-size: 1.266rem;
  --h4-size: 1.125rem;
  --h5-size: 1.000rem;
  --h6-size: 0.889rem;
  --line-spacing: 1.5rem;
  --base-rem-px: 16;
}
@media screen and (min-width: 900px) {
  :root {
    --h1-size: 1.667rem;
    --h2-size: 1.563rem;
    --h3-size: 1.333rem;
    --h4-size: 1.250rem;
    --h5-size: 1.000rem;
    --h6-size: 0.853rem;
  }
}
@media screen and (min-width: 1200px) {
  :root {
    --h1-size: 1.777rem;
    --h2-size: 1.579rem;
    --h3-size: 1.333rem;
    --h4-size: 1.185rem;
    --h5-size: 1.000rem;
    --h6-size: 0.889rem;
  }
}
@media screen and (min-width: 1400px) {
  :root {
    --h1-size: 2.000rem;
    --h2-size: 1.600rem;
    --h3-size: 1.414rem;
    --h4-size: 1.200rem;
    --h5-size: 1.000rem;
    --h6-size: 0.800rem;
  }
}
@media (min-width: 768px) {
  :root { --bootstrap-container-width: 750px; }
}
@media (min-width: 992px) {
  :root { --bootstrap-container-width: 970px;}
}
@media (min-width: 1200px) {
  :root { --bootstrap-container-width: 1170px; }
}
@media (min-width: 1500px) {
  :root { --bootstrap-container-width: 1370px; }
}

/*
 * Site defaults corrections
 */
html { font-size: 16px; }
body {
  font-size: 1rem;
  letter-spacing: initial;
  word-spacing: initial;
  line-height: 1.5;
  font-weight: 400;
  color: #333;
  font-variant-numeric: oldstyle-nums;
  font-variant-ligatures: common-ligatures discretionary-ligatures contextual historical-ligatures;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  hanging-punctuation: first last allow-end;
}
h1,
h2,
.h1,
.h2,
h3,
h4,
h5,
h6,
.h3,
.h4,
.h5,
.h6,
.loading-span,
.tooltip-inner{
	font-weight:500;
	letter-spacing:normal;
	text-rendering: optimizeLegibility;
}
p,
li,
dd,
span{
	line-height:unset;
}
h1, h2, .h1, .h2 { margin: 0.625rem 0 1.25rem; }
h3, h4, h5, h6, .h3, .h4, .h5, .h6 { margin: 0.625rem 0 1rem; }
.page-header { margin: 0.625rem 0 2rem; }
p {margin-bottom: 1.5rem; }
.thin { font-weight: 100; }
strong, .strong { font-weight: 700; }
small.strong { font-weight: 500; }

em,
.em,
blockquote p,
.testimonials-style1 .cbp-l-grid-testimonials-body,
.testimonials-style2 .quote {
	font-weight:500;
	font-style:italic;
}
sup {
  vertical-align: super;
  font-size: 60%;
  position: static;
}

/*
h1, .h1 {
  font-size: 2.488rem;
  font-size: var(--h1-size)
}
h1, .h1 {
  margin-top:    calc((2 * 1.5rem - 1.5em) * 0.667);
  margin-bottom: calc((2 * 1.5rem - 1.5em) * 0.333);
  text-rendering: optimizeLegibility;
}

@media screen and (min-width: 900px) {
  h1, .h1 {
    margin-top:    calc((3 * 1.5rem - 1.5em) * 0.667);
    margin-bottom: calc((3 * 1.5rem - 1.5em) * 0.333);
  }
}
@media screen and (min-width: 1200px) {
  h1, .h1 {
    margin-top:    calc((3 * 1.5rem - 1.5em) * 0.667);
    margin-bottom: calc((3 * 1.5rem - 1.5em) * 0.333);
  }
}
@media screen and (min-width: 1400px) {
  h1, .h1 {
    margin-top:    calc((4 * 1.5rem - 1.5em) * 0.667);
    margin-bottom: calc((4 * 1.5rem - 1.5em) * 0.333);
  }
}
*/
h4 {
  font-size: 1.25rem;
  font-size: var(--h4-size)
}
h5 {
  font-size: 1rem;
}
h6 {
  font-size: 0.85rem;
  font-size: var(--h6-size);
}
h4, h5, h6 {
  margin-top:    calc(((2 * (1.4rem + (100vw - 480px)/3360)) - (1em * 1.25)) * 0.667);
  margin-bottom: calc(((2 * (1.4rem + (100vw - 480px)/3360)) - (1em * 1.25)) * 0.333);
  text-rendering: optimizeLegibility;
}
/*
 * Font Utility Classes
 */
/*
 *     Utility OpenType v0.1.4
 *         Simple, CSS utility classes for advanced typographic features.
 *             http://utility-opentype.kennethormandy.com
 *             */


.liga {
  -ms-font-feature-settings: "liga";
  -webkit-font-variant-ligatures: common-ligatures;
          font-variant-ligatures: common-ligatures;
}

@supports not ((-webkit-font-variant-ligatures: common-ligatures) or (font-variant-ligatures: common-ligatures)) {

  .liga {
    -webkit-font-feature-settings: "liga", "liga", "clig";
    font-feature-settings: "liga", "liga", "clig";
  }
}

.dlig {
  -ms-font-feature-settings: "dlig";
  -webkit-font-variant-ligatures: discretionary-ligatures;
          font-variant-ligatures: discretionary-ligatures;
}

@supports not ((-webkit-font-variant-ligatures: discretionary-ligatures) or (font-variant-ligatures: discretionary-ligatures)) {

  .dlig {
    -webkit-font-feature-settings: "dlig", "dlig";
    font-feature-settings: "dlig", "dlig";
  }
}

.smcp {
  text-transform: uppercase;
  -ms-font-feature-settings: "lnum", "smcp", "c2sc" 0;
}

@supports not (font-variant-caps: small-caps) {

  .smcp {
    text-transform: inherit;
    -webkit-font-feature-settings: "onum", "smcp", "c2sc" 0;
    font-feature-settings: "onum", "smcp", "c2sc" 0;
  }
}

@supports (font-variant-caps: small-caps) {

  .smcp {
    text-transform: inherit;
    -webkit-font-feature-settings: "c2sc";
    font-feature-settings: "c2sc";
    font-variant-caps: small-caps;
  }
}

.c2sc {
  text-transform: uppercase;
  font-variant-caps: all-small-caps;
  -ms-font-feature-settings: "smcp" 0, "c2sc";
}

@supports (font-variant-caps: all-small-caps) or (font-feature-settings: "c2sc") {

  .c2sc {
    text-transform: lowercase;
  }
}

@supports not (font-variant-caps: all-small-caps) {

  .c2sc {
    -webkit-font-feature-settings: "onum", "smcp" 0, "c2sc", "smcp", "c2sc";
    font-feature-settings: "onum", "smcp" 0, "c2sc", "smcp", "c2sc";
  }
}

.c2sc.smcp,
.caps {
  text-transform: uppercase;
  -ms-font-feature-settings: "smcp", "c2sc";
  font-variant-caps: all-small-caps;
}

@supports ((-webkit-font-feature-settings: "smcp", "c2sc") or (font-feature-settings: "smcp", "c2sc")) {

  @supports not (font-variant-caps: all-small-caps) {

    .c2sc.smcp,
.caps {
      text-transform: inherit;
      -webkit-font-feature-settings: "smcp", "c2sc", "smcp", "c2sc";
      font-feature-settings: "smcp", "c2sc", "smcp", "c2sc";
    }
  }
}

@supports not (font-variant-caps: small-caps) {

  @supports not (font-variant-numeric: oldstyle-nums) {

    .smcp.onum {
      -webkit-font-feature-settings: "onum", "smcp" 1;
      font-feature-settings: "onum", "smcp" 1;
    }
  }
}

@supports not (font-variant-caps: all-small-caps) {

  @supports not (font-variant-numeric: oldstyle-nums) {

    .c2sc.onum,
.caps.onum {
      text-transform: lowercase;
      -webkit-font-feature-settings: "onum", "smcp" 1;
      font-feature-settings: "onum", "smcp" 1;
    }
  }
}

.case {
  -webkit-font-feature-settings: "case";
          font-feature-settings: "case";
}

.titl {
  -ms-font-feature-settings: "titl";
  font-variant-caps: titling-caps;
}

@supports not (font-variant-caps: titling-caps) {

  .titl {
    -webkit-font-feature-settings: "titl", "titl";
    font-feature-settings: "titl", "titl";
  }
}

.calt {
  -ms-font-feature-settings: "calt";
  -webkit-font-variant-ligatures: contextual;
          font-variant-ligatures: contextual;
}

@supports not ((-webkit-font-variant-ligatures: contextual) or (font-variant-ligatures: contextual)) {

  .calt {
    -webkit-font-feature-settings: "calt", "calt";
    font-feature-settings: "calt", "calt";
  }
}

.hist {
  -ms-font-feature-settings: "hist";
  font-variant-alternates: historical-forms;
}

@supports not (font-variant-alternates: historical-forms) {

  .hist {
    -webkit-font-feature-settings: "hist";
    font-feature-settings: "hist";
  }
}

.swsh,
.swsh-1 { -webkit-font-feature-settings: "swsh"; font-feature-settings: "swsh" }
.swsh-2 { -webkit-font-feature-settings: "swsh" 2; font-feature-settings: "swsh" 2 }
.swsh-3 { -webkit-font-feature-settings: "swsh" 3; font-feature-settings: "swsh" 3 }

.salt,
.salt-1 { -webkit-font-feature-settings: "salt"; font-feature-settings: "salt" }
.salt-2 { -webkit-font-feature-settings: "salt" 2; font-feature-settings: "salt" 2 }
.salt-3 { -webkit-font-feature-settings: "salt" 3; font-feature-settings: "salt" 3 }

.ss01 { -webkit-font-feature-settings: "ss01"; font-feature-settings: "ss01" }
.ss02 { -webkit-font-feature-settings: "ss02"; font-feature-settings: "ss02" }
.ss03 { -webkit-font-feature-settings: "ss03"; font-feature-settings: "ss03" }
.ss04 { -webkit-font-feature-settings: "ss04"; font-feature-settings: "ss04" }
.ss05 { -webkit-font-feature-settings: "ss05"; font-feature-settings: "ss05" }
.ss06 { -webkit-font-feature-settings: "ss06"; font-feature-settings: "ss06" }
.ss07 { -webkit-font-feature-settings: "ss07"; font-feature-settings: "ss07" }
.ss08 { -webkit-font-feature-settings: "ss08"; font-feature-settings: "ss08" }
.ss09 { -webkit-font-feature-settings: "ss09"; font-feature-settings: "ss09" }
.ss10 { -webkit-font-feature-settings: "ss10"; font-feature-settings: "ss10" }
.ss11 { -webkit-font-feature-settings: "ss11"; font-feature-settings: "ss11" }
.ss12 { -webkit-font-feature-settings: "ss12"; font-feature-settings: "ss12" }
.ss13 { -webkit-font-feature-settings: "ss13"; font-feature-settings: "ss13" }
.ss14 { -webkit-font-feature-settings: "ss14"; font-feature-settings: "ss14" }
.ss15 { -webkit-font-feature-settings: "ss15"; font-feature-settings: "ss15" }
.ss16 { -webkit-font-feature-settings: "ss16"; font-feature-settings: "ss16" }
.ss17 { -webkit-font-feature-settings: "ss17"; font-feature-settings: "ss17" }
.ss18 { -webkit-font-feature-settings: "ss18"; font-feature-settings: "ss18" }
.ss19 { -webkit-font-feature-settings: "ss19"; font-feature-settings: "ss19" }
.ss20 { -webkit-font-feature-settings: "ss20"; font-feature-settings: "ss20" }

.frac {
  -ms-font-feature-settings: "frac";
  font-variant-numeric: diagonal-fractions;
}

@supports not (font-variant-numeric: diagonal-fractions) {

  .frac {
    -webkit-font-feature-settings: "frac", "frac";
    font-feature-settings: "frac", "frac";
  }
}

.afrc {
  -ms-font-feature-settings: "afrc";
  font-variant-numeric: stacked-fractions;
}

@supports not (font-variant-numeric: stacked-fractions) {

  .afrc {
    -webkit-font-feature-settings: "afrc", "afrc";
    font-feature-settings: "afrc", "afrc";
  }
}

.ordn {
  -ms-font-feature-settings: "ordn";
  font-variant-numeric: ordinal;
}

@supports not (font-variant-numeric: ordinal) {

  .ordn {
    -webkit-font-feature-settings: "ordn", "ordn";
    font-feature-settings: "ordn", "ordn";
  }
}

.sups {
  font-variant-position: super;
}

@supports not (font-variant-position: sup) {

  .sups {
    -webkit-font-feature-settings: "sups", "sups";
    font-feature-settings: "sups", "sups";
  }

  @supports ((-webkit-font-feature-settings: "sups") or (font-feature-settings: "sups")) {

    .sups {
      font-size: 1em;
      vertical-align: baseline;
    }
  }

  @supports (overflow: -webkit-marquee) and (justify-content: inherit) {

    .sups {
      vertical-align: super;
    }
  }
}

.subs,
.sinf {
  font-size: inherit;
  font-variant-position: sub;
}

@supports not (font-variant-position: sub) {

  .subs,
.sinf {
    -webkit-font-feature-settings: "subs", "subs";
    font-feature-settings: "subs", "subs";
  }

  @supports ((-webkit-font-feature-settings: "subs") or (font-feature-settings: "subs")) {

    .subs,
.sinf {
      font-size: 1em;
      vertical-align: baseline;
    }
  }

  @supports (overflow: -webkit-marquee) and (justify-content: inherit) {

    .subs,
.sinf {
      vertical-align: sub;
      font-size: smaller;
    }
  }
}

@supports ((-webkit-font-feature-settings: "sinf") or (font-feature-settings: "sinf")) {

  .sinf {
    font-variant-position: normal;
    -webkit-font-feature-settings: "sinf", "subs" off, "sups" off;
    font-feature-settings: "sinf", "subs" off, "sups" off;
    vertical-align: baseline;
  }
}

@supports (overflow: -webkit-marquee) and (justify-content: inherit) {

  .sinf {
    vertical-align: sub;
    font-size: smaller;
  }
}

.lnum {
  font-variant-numeric: lining-nums;
}

@supports not (font-variant-numeric: lining-nums) {

  .lnum {
    -webkit-font-feature-settings: "lnum", "onum" 0, "lnum";
    font-feature-settings: "lnum", "onum" 0, "lnum";
  }
}

.onum {
  font-variant-numeric: oldstyle-nums;
}

@supports not (font-variant-numeric: oldstyle-nums) {

  .onum {
    -webkit-font-feature-settings: "lnum" 0, "onum", "onum";
    font-feature-settings: "lnum" 0, "onum", "onum";
  }
}

.pnum {
  font-variant-numeric: proportional-nums;
}

@supports not (font-variant-numeric: proportional-nums) {

  .pnum {
    -webkit-font-feature-settings: "pnum", "tnum" 0, "pnum";
    font-feature-settings: "pnum", "tnum" 0, "pnum";
  }
}

.tnum {
  font-variant-numeric: tabular-nums;
}

@supports not (font-variant-numeric: tabular-nums) {

  .tnum {
    -webkit-font-feature-settings: "pnum" 0, "tnum", "tnum";
    font-feature-settings: "pnum" 0, "tnum", "tnum";
  }
}

.lnum.pnum {
  -ms-font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.pnum {
    -webkit-font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
    font-feature-settings: "lnum", "onum" 0, "pnum", "tnum" 0;
  }
}

.lnum.tnum {
  -ms-font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.tnum {
    -webkit-font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
    font-feature-settings: "lnum", "onum" 0, "pnum" 0, "tnum";
  }
}

.onum.pnum {
  -ms-font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.pnum {
    -webkit-font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
    font-feature-settings: "lnum" 0, "onum", "pnum", "tnum" 0;
  }
}

.onum.tnum {
  -ms-font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.tnum {
    -webkit-font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
    font-feature-settings: "lnum" 0, "onum", "pnum" 0, "tnum";
  }
}

.onum.zero {
  -ms-font-feature-settings: "onum", "zero";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.zero {
    -webkit-font-feature-settings: "onum", "zero";
    font-feature-settings: "onum", "zero";
  }
}

.onum.tnum.zero {
  -ms-font-feature-settings: "onum", "zero", "tnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.tnum.zero {
    -webkit-font-feature-settings: "onum", "zero", "tnum";
    font-feature-settings: "onum", "zero", "tnum";
  }
}

.onum.pnum.zero {
  -ms-font-feature-settings: "onum", "zero", "pnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .onum.pnum.zero {
    -webkit-font-feature-settings: "onum", "zero", "pnum";
    font-feature-settings: "onum", "zero", "pnum";
  }
}

.lnum.zero {
  -ms-font-feature-settings: "lnum", "zero";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.zero {
    -webkit-font-feature-settings: "lnum", "zero";
    font-feature-settings: "lnum", "zero";
  }
}

.lnum.tnum.zero {
  -ms-font-feature-settings: "lnum", "zero", "tnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.tnum.zero {
    -webkit-font-feature-settings: "lnum", "zero", "tnum";
    font-feature-settings: "lnum", "zero", "tnum";
  }
}

.lnum.pnum.zero {
  -ms-font-feature-settings: "lnum", "zero", "pnum";
}

@supports not ((-webkit-font-feature-settings: "onum" inherit) or (font-feature-settings: "onum" inherit)) {

  .lnum.pnum.zero {
    -webkit-font-feature-settings: "lnum", "zero", "pnum";
    font-feature-settings: "lnum", "zero", "pnum";
  }
}

.zero {
  font-variant-numeric: slashed-zero;
}

@supports not (font-variant-numeric: slashed-zero) {

  .zero {
    -webkit-font-feature-settings: "zero", "zero";
    font-feature-settings: "zero", "zero";
  }
}

@media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {

  .smcp {
    text-transform: lowercase;
  }

  .c2sc {
    text-transform: lowercase;
  }

  .c2sc.smcp,
.caps {
    text-transform: lowercase;
  }
}
/*
 * Classes for testing
 */
.indent-test p {
  margin-top: 0;
  margin-bottom: 0;
  line-height: 1.3;
}
.indent-test p + p {
  text-indent: 1.5rem;
}
/*
 * Fixes for template crapola
 */
.blurb,
section.blurb {
  padding-top: 1.1875rem;
  padding-bottom: 1.1875rem;
}
.blurb .tagline {
  font-weight: 400;
  font-size: 1.5rem;
  color: #222;
  line-height: 1.5;
  margin-bottom: 0;
}
section { padding-top: 5em; }
.accordion aside h5 {
  margin: 0.625rem 0 2rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  font-weight: 700;
  font-variant-caps: petite-caps;
}
/*
 * Speacial lists
 */
.starred-list li:before {
    color: #3498DB;
    content: "\f005";
    display: inline-block;
    font: normal normal normal 14px/1 FontAwesome;
    font-size: inherit;
    text-rendering: auto;
    -webkit-font-smoothing: antialiased;
    padding-right: 0.5em;
}

ul.starred-list {
    list-style: none;
}
/*
 * Security Advisory Tab
 */
#ahem {
  display: none;
  position: fixed;
  top: 0;
  left: 16px;
  max-width: 350px;
  line-height: 1.5;
  z-index: 1050;
  color: white;
}
.frontpage #ahem { top: 69px; }
@media (max-width: 768px) {
  .frontpage #ahem{ top: 64px;}
}
.ie9 #ahem, .ie10 #ahem { display: block; }
.ahem-body {
  display: none;
  font-size: 80%;
  border: 1px solid white;
  color: black;
  background-color: #FEE;
  padding: 0 0.5em;
}
.ahem-tab {
  border: 1px solid white;
  border-top: none;
  padding: 0 1em 5px;
  background-color: #c30;
  border-radius: 0 0 15px 15px;
}
.ahem-tab p {
  margin: 0;
}

.mega-menu .menu-box { padding: 10px 16px; }
.mega-menu .dropdown.mega-element .dropdown-menu.menu-box {
	left: auto;
	right: auto;
}
.menu-box .menu-col { float: left; }
.menu-box .menu-col-1 { margin-right: 30px; }
.navbar a { white-space: nowrap; }

.menu-indent-1 { margin-left:10px; }

.items-row { margin-bottom: 80px; }
.store { padding: 30px 0; }
.store-page { width: 80%; max-width: 1200px; }

.dropdown-menu .divider {
  height: inherit;
  margin: 9px;
  overflow: auto;
  background-color: inherit;
}

span.separator {
  padding-left:7px;
  font-size: 12px;
}

ul.category.nav { margin-top: 40px; }

.alert-error {
  color: #a94442;
  background-color: #f2dede;
  border-color: #ebccd1;
}

input.invalid {
  background-color: #f2dede;
  border-color: #ebccd1;
}

.switch {
  display: block;
  box-sizing: border-box;
  width: 60px;
  height: 20px;
  border-radius: 999px;
  background-color: #d8d9db;
  margin-bottom: 10px;
  margin-top: 0.75em;
  -webkit-transition: background-color cubic-bezier(.25, .46, .45, .94) .2s;
  -moz-transition: background-color cubic-bezier(.25, .46, .45, .94) .2s;
  transition: background-color cubic-bezier(.25, .46, .45, .94) .2s
}
.switch .helper {
  margin-top: 1px;
  margin-left: 1px;
  border-radius: 50%;
  width: 18px;
  height: 18px;
  display: inline-block;
  background-color: #fff;
  -webkit-transition-property: -webkit-transform;
  -moz-transition-property: -moz-transform;
  transition-property: transform;
  -webkit-transition-duration: .2s;
  -moz-transition-duration: .2s;
  transition-duration: .2s;
  -webkit-transition-timing-function: cubic-bezier(.25, .46, .45, .94);
  -moz-transition-timing-function: cubic-bezier(.25, .46, .45, .94);
  transition-timing-function: cubic-bezier(.25, .46, .45, .94)
}
.switch.ui-checked {
  border-color: #4cd864;
  background-color: #4cd864
}
.switch.ui-checked .helper {
  -webkit-transform: translateX(40px);
  -moz-transform: translateX(40px);
  -ms-transform: translateX(40px);
  -o-transform: translateX(40px);
  transform: translateX(40px)
}
.check-group { margin-top: 1em; }
/*
 * Marketo social form fill code
 */
form div.cf_widget_socialsignon div.cf_sign_on { width: auto; }
form div.cf_sign_on div.cf_sign_on_button { width: 40%; }

/*
 * The Image Grid
 */
ul.image-grid,
ul.features-grid {
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    list-style-type: none;
}

.image-grid li {
    padding: 0;
    margin: 1% 0;
    width: 98%;
    position: relative;
}

ul[class*="-grid"] p.caption { padding: 1.5em 0.5em; }

.image-grid li a img {
    width: 100%;
    transition: all 0.2s ease-in;
    transform: scale(1);
    position: relative;
    border: 1px solid #ccc;
}

.image-grid li a img:hover {
    transition: all 0.2s ease-in;
    transform: scale(1.1);
}

@media screen and (min-width: 530px) {
  .image-grid li {
    width: 49%;
  }
}

@media screen and (min-width: 992px) {
  .image-grid li {
    width: 32%;
  }
}

@media screen and (min-width: 1200px) {
  .image-grid li {
    width: 24%;
  }
}

/*
 * The Features grid
 *	(uses the same grid as image-grid, but changes the content styles)
 */
.features-grid li {
    padding: 1em;
    margin: 1% 0;
    width: 32%;
    min-width: 240px;
    background-color: #f6f6f6;
}

@media (max-width: 768px) {
  .features-grid li {
    width: 90%;
    margin: 1% auto;
  }
}

/*
 * The Features list
 */
dl.features-list {
	padding: 0;
	margin: 0;
}

dl.features-list dt {
    padding: 1em 1em 0 1em;
    margin: 1em 0 0 0;
    border-radius: 10px 10px 0 0;
    font-size: 1.2em;
    font-weight: 500;
}

dl.features-list dd {
    padding: 1em;
    margin: 0;
    border-radius: 0 0 10px 10px;
}

dl.features-list dt:nth-child(6n+1),
dl.features-list dd:nth-child(6n+2) {
	background-color: #DEF;
	color: #336;
}

dl.features-list dt:nth-child(6n+3),
dl.features-list dd:nth-child(6n+4) {
	background-color: #CFF;
	color: #353;
}

dl.features-list dt:nth-child(6n-1),
dl.features-list dd:nth-child(6n) {
	background-color: #FFC;
	color: #553;
}

/*
 *	And Feature boxes
 */
.feature-boxes {
  display: flex;
  flex-wrap: wrap;
}

.feature-box {
  margin: 10px 1%;
  padding: 1em;
  width: 98%;
  min-width: 210px;
  border-radius: 2px;
  border: none;
  background-color: #f6f6f6;
  line-height: 1.4;
  transition: all 0.5s ease-out;
  display: flex;
  flex-flow: column;
  justify-content: start;
}
@media screen and (min-width: 768px) {
  .box-2 { width: 47%; }
  .box-3 { width: 30%; }
}

.feature-box.blank-box { background-color: transparent; }
.feature-box.bordered-box {
  background-color: transparent;
  border-radius: 10px;
  border: 1px solid #f6f6f6;
}

/*
 * Make the title links invisible until hovered over
 */
h1[itemprop="headline"] a { text-decoration: none; }
h1[itemprop="headline"] a:hover { text-decoration: underline; }
h2[itemprop="headline"] a { text-decoration: none; }
h2[itemprop="headline"] a:hover { text-decoration: underline; }

h1[itemprop="name"] a { text-decoration: none; }
h1[itemprop="name"] a:hover { text-decoration: underline; }
h2[itemprop="name"] a { text-decoration: none; }
h2[itemprop="name"] a:hover { text-decoration: underline; }

/*
 * Event Cards - creates a flex grid of cards for events
*/
.event-cards {
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.event-cards .card {
    padding: 0;
    margin: 10px 0;
    width: 98%;
}

.event-cards .card .thumbnail {
    height: 100%;
}

.event-cards .card .thumbnail .caption {
    height:  100%;
    display:  flex;
    flex-flow: column nowrap;
}

.event-cards .card .caption a.btn {
    display:  block;
    margin-top:  auto;
}

@media screen and (min-width: 1200px) {
  .event-cards .card {
    width: 49%;
  }
}

/*
 *	News Boxes - Blurbs for the in-the-news page
 */
.news-section-header {
    text-align:  center;
    width: 66.6667%;
    margin:  40px auto;
}

.news-section-header:first-of-type {
    margin: 0 auto;
}

.news-boxes {
    margin-top: 10px;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
}

.news-boxes .news-box {
    width: 31%;
    padding: 20px;
    border: 1px solid #EEE;
    margin-top: 1em;
    text-align: center;
    display: flex;
    justify-content: start;
    flex-flow: column nowrap;
}

@media screen and (min-width: 530px) {
  .news-boxes .news-box {
    width: 49%;
  }
}

@media screen and (min-width: 992px) {
  .news-boxes .news-box {
    width: 32%;
  }
}

.news-box a {
    margin-top:auto;
}

/*
 * Resource Panel markup
 */
ul.resource-panels {
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  list-style-type: none;
}

ul.resource-panels li {
  width: 98%;
  padding: 30px;
  border: 1px solid #EEE;
  border-radius: 10px;
  margin-top: 30px;
  display: flex;
  justify-content: start;
  flex-flow: column nowrap;
}

ul.resource-panels li img {
    display: block;
    padding-bottom: 20px;
    border-bottom: 1px solid #EEE;
    margin-bottom: 20px;
}

ul.resource-panels li img.icon {
    margin-left: auto;
    margin-right: auto;
}

ul.resource-panels li a.btn {
  display:block;
  margin-top: auto;
}

ul.resource-panels li h4 {
    font-weight: 600;
    text-align: center;
    letter-spacing: 0.06em;
    display: block;
}

ul.resource-panels li h4 a {
    text-decoration:none;
}

@media screen and (min-width: 530px) {
  ul.resource-panels li {
    width: 49%;
  }
  ul.resource-panels.narrow li {
    width: 98%;
  }
}

@media screen and (min-width: 992px) {
  ul.resource-panels li {
    width: 32%;
  }
  ul.resource-panels.narrow li {
    width: 49%;
  }
}

@media screen and (min-width: 1200px) {
  ul.resource-panels li {
    width: 24%;
  }
  ul.resource-panels.narrow li {
    width: 49%;
  }
}

.scroll-target + .scroll-target { padding-top: 90px; }

/*
 * Press Release Styles
 */
span[itemprop="dateline"] {
    font-weight: 600;
    font-variant: small-caps;
    font-size: 95%;
    position: relative;
    top: -2px;
}

section.top-section {
  padding-top: 40px;
  padding-bottom: 40px;
}

/*
 * Maybe not-so-ugly scrollable menu hack
 */
@media screen and (min-width: 992px) {
  .mega-menu ul.dropdown-menu {
    max-height: 100vh;
    overflow-x: scroll;
  }
}
/*
 *	Add a stackable-section type that collapses margins
 */
.stackable-section {
  margin-top: 80px;
  margin-bottom: 80px;
}
.upper-section { margin-bottom: 0; }
.lower-section { margin-top: 0; }
/*
 *	Fix centering of the image in the title box. (Assumes "natural" title image size of 394px)
 */
img.title-image {
  display: block;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
  max-width: 394px;
}
/*
 * 	Fix spacing after a respnsive video in an article body
 */
.responsive-video { margin-bottom: 2em; }
/*
 *	Set a full-bleed enclosure to break out of limited margins
 */
.full-bleed {
  width: 100vw;
  position: relative;
  left: 50%;
  right: 50%;
  margin-left: -50vw;
  margin-right: -50vw;
}
/*
 * 	Correct spacing on call-outs
 */
.call-out {
    margin-top: 20px;
}
/*
 * Add ability to remove border
 */
.borderless .single-post {
    border: none;
    padding: 0;
}
/*
 * Panel Grids
 */
.panel-grid {
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  list-style-type: none;
}
.panel-grid li {
  width: 98%;
  min-width: 250px;
  padding: 20px;
  border: 1px solid #CCC;
  border-radius: 10px;
  margin-top: 1em;
  display: flex;
  justify-content: start;
  flex-flow: column nowrap;
}
.panel-grid li img {
  display: block;
  padding-bottom: 20px;
  max-width: 100%;
}
.panel-grid li img.icon {
  margin-left: auto;
  margin-right: auto;
}
.panel-grid li h2 { font-size: 1.75em; }
.panel-grid li h2 a { text-decoration: none; }
.panel-grid li a.btn { margin-top: auto; }
@media screen and (min-width: 530px ) {
  .max-3 li { width: 49%; }
  .max-4 li { width: 49%; }
  .max-5 li { width: 32%; }
}
@media screen and (min-width: 992px) {
  .max-3 li { width: 32%; }
  .max-4 li { width: 32%; }
  .max-2 li { width: 49%; }
  .max-5 li { width: 24%; }
}
@media screen and (min-width: 1200px) {
  .max-4 li { width: 24%; }
  .max-5 li { width: 19%; }
}
/*
 * Blockquotes
 */
blockquote.quoted:before {
  color: #ccc;
  content: open-quote;
  font-size: 4em;
  line-height: 0.1em;
  margin-right: 0.25em;
  vertical-align: -0.4em;
}
blockquote p { display: inline; }
blockquote.colored {
  background: linear-gradient(135deg, #9ab  0%, #7ab 25%, #346 100%);
  color: white;
}
blockquote.colored p { color: white; }
blockquote.rounded { border-radius: 20px; }
blockquote a.btn {
  margin-top: 1em;
  margin-bottom: 0.5em;
}
/*
 * Front page gradient image
 */
.sky-background {
  background-image: linear-gradient(255deg, #9ab 0%, #7ab 25%, #346 100%);
}
.sky-background img { display: none; }
/*
 * Footer module styles
 */
.footer-modules h1 {
  font-size: 1.11111rem;
  margin-bottom: 1rem;
}
/*
 * Figures
 */
figure {
  border: 1px solid;
  border-radius: 5px;
  padding: 0.5em;
  margin: 0.5em;
  width: 37%;
}
figure.right {
  float: right;
  margin-left: 1em;
}
figure.left {
  float: left;
  margin-right: 1em;
}
figcaption {
  font-size: 0.85rem;
  font-weight: bold;
  font-variant: small-caps;
  text-align: center;
  letter-spacing: 2px;
}
/*
 * Paired elements
 */
@media screen and (min-width:767px) {
  .paired-set {
    display: flex;
  }
}
/*
 * Weblinks subcategory defaults
 */
details.weblink-group { margin-top: 1em; }
details[open].weblink-group { margin-bottom: 2em; }
.weblink-title {
  font-size: 200%;
  font-weight: 600;
  font-family: 'Raleway', Helvetica, sans-serif;
  color: #222;
}

ul.weblinks.resource-panels { border-top: 1px solid #ddd; }
h1.weblink-title {
    font-size: 36px;
    font-weight: 400;
    text-align: center;
}

.weblink-group .weblink-title {
    font-size: 28px;
    font-weight: 400;
    text-align: center;
}
.weblinks + h1.weblink-title { margin-top: 1.5em;}

details.weblink-group,
.weblinks details {
    border: 1px solid #ddd;
    margin: 1em 0;
    color: #333;
    padding: 1em;
}

.weblink-group summary,
.weblinks summary {
    padding: 1em 2em;
    position: relative;
    margin: -1em;
    font-weight: 500;
    font-size: 16px;
}

.weblinks summary {
    border-bottom: 1px solid #ddd;
}

.weblink-group summary::-webkit-details-marker,
.weblinks summary::-webkit-details-marker {
    display: none;
}

details[open].weblink-group summary,
.weblinks details[open] summary{
    margin-bottom: 0;
}

.weblinks details summary::after {
    content: "\f107";
    color: #999;
    font-family: FontAwesome;
    float: right;
}

details.weblink-group summary::after {
    content: "\f107";
    color: #999;
    font-size: 1.5em;
    font-family: FontAwesome;
    float: right;
}

details[open].weblink-group summary::after,
.weblinks details[open] summary::after {
    content: "\f106";
}
/*
 * Events Bar
 */
.event-bar {
  color: white;
  padding-left: 1em;
  padding-right: 1em;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  background: url(/images/bg/home-events-bg-tiny.jpg) no-repeat center/cover;
  position: relative;
}
.event-bar > div {
  display: flex;
  flex-flow: column;
  justify-content: space-between;
  width: 90%;
  border: none;
  margin-bottom: 3em;
  text-align: center;
  z-index: 1;
}
.event-bar > div > a {
  margin: 0 auto;
  width: 290px;
}
.event-bar h1, .event-bar h2 { color: white; }
@media screen and (min-width: 900px) {
  .event-bar { flex-wrap: nowrap; }
  .event-bar.max-3 > div { width: 30%; }
  .event-bar > div { margin-bottom: 0; }
  .event-bar > div + div {
    padding-left: 1em;
    margin-left: 1em;
    border-left: 1px solid #e0e0e0;
  }
}
/*
 * Background Image Dimmer
 * (when this class is used, remember to raise all the items by a z-index that should
 * not be dimmed. that will get them above the dimmer.)
 */
.dim-background:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.5);
}
/*
 * Font page hero section
 */
.front-page-hero {
  width: 100%;
  height: 630px;
  height: calc(0.525 * 100vw);
  max-height: 630px;
  padding: 0;
  margin-left: 0;
  overflow: hidden;
  background: linear-gradient(215deg, #9ab  0%, #7ab 25%, #346 100%);
  color: white;
  position: relative;
  font-family: Montserrat, Helvetica, sans-serif;
}
.front-page-hero h1 {
  width: 100%;
  max-width: 1200px;
  position: absolute;
  top: calc(100vw/1200 * 170);
  left: 0;
  font-size: calc(100vw/1200 * 3.75 * var(--base-rem-px));
  font-weight: bold;
  letter-spacing: 0.4em;
  text-transform: uppercase;
  color: white;
}
.front-page-hero p.slogan {
  width: calc(100vw / 1200 * 900);
  max-width: 900px;
  position: absolute;
  top: calc(100vw/1200 * 360);
  left: calc((100vw - 1200px) / 8 + 150px);
  font-size: calc(1.125 * var(--base-rem-px) * 100vw / 1200);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.6em;
}
.front-page-hero p.buttons {
  width: 100%;
  max-width: 1200px;
  position: absolute;
  top: calc(100vw/1200 * 470);
  left: 0;
  font-size: calc(1.125 * var(--base-rem-px) * 100vw / 1200);
}
.front-page-hero a.btn {
  font-size: calc(0.625rem + 4 * (100vw - 700px) / 500);
  padding: 1em 1.5em;
  color: white;
}
@media screen and (min-width: 1200px) {
  .front-page-hero h1 {
    top: 170px;
    left: calc((100vw - 1200px) / 2);
    font-size: 3.75rem;
  }
  .front-page-hero p.slogan {
    top: 360px;
    font-size: 1.125rem;
    left: calc((100vw - 1200px) / 2 + 150px);
  }
  .front-page-hero p.buttons {
    top: 500px;
    left: calc((100vw - 1200px) / 2);
    font-size: 1.125rem;
  }
  .front-page-hero a.btn { font-size: 0.875rem; }
}
/* Set minimum font size for smooth progression. */
@media screen and (max-width: 699px) {
  .front-page-hero a.btn { font-size: .625rem; }
}
/*
 * Animation setup
 */
@supports (animation-fill-mode: forwards) {
  .front-page-hero h1 {
    animation: 1.5s ease-out 0.9s 1 slide-up forwards;
    opacity: 0;
  }
  .front-page-hero p.slogan {
    animation: 1.5s ease-out 1.2s 1 slogan-slide-up forwards;
    opacity: 0;
  }
  .front-page-hero p.buttons {
    animation: 1.5s ease-out 1.4s 1 fpbutton-slide-up forwards;
    opacity: 0;
  }
  @keyframes slide-up {
    from {
      top: calc(100vw/1200 * 170 + 500px);
      opacity: 0;
      transform: scaleY(0);
    }
    to {
      top: calc(100vw/1200 * 170);
      opacity: 1;
      transform: scaleY(1);
    }
  }
  @keyframes slogan-slide-up {
    from {
      top: calc(100vw/1200 * 360 + 500px);
      opacity: 0;
      transform: scale(0);
    }
    to {
      top: calc(100vw/1200 * 360);
      opacity: 1;
      transform: scale(1);
    }
  }
  @keyframes fpbutton-slide-up {
    from {
      top: calc(100vw/1200 * 470 + 500px);
      opacity: 0;
      transform: scale(0);
    }
    to {
      top: calc(100vw/1200 * 470);
      opacity: 1;
      transform: scale(1);
    }
  }
  @media screen and (min-width: 1200px) {
    @keyframes slide-up {
      from {
        top: 670px;
        opacity: 0;
        transform: scale(0);
      }
      to {
        top: 170px;
        opacity: 1;
        transform: scale(1);
      }
    }
    @keyframes slogan-slide-up {
      from {
        top: 910px;
        opacity: 0;
        transform: scale(0);
      }
      to {
        top: 360px;
        opacity: 1;
        transform: scale(1);
      }
    }
    @keyframes fpbutton-slide-up {
      from {
        top: 970px;
        opacity: 0;
        transform: scale(0);
      }
      to {
        top: 470px;
        opacity: 1;
        transform: scale(1);
      }
    }
  }
}
/*
 * Rewrite the sticky news styles so the document structure can actually be correct, for a change.
 */
.news-sticky h2.sticky-title {
    display: block;
    float: left;
    padding: 5px 12px;
    border-radius: 2px;
    color: #fff;
    font-weight: 400;
    font-size: 12px;
    line-height: 1;
    text-transform: uppercase;
    margin-right: 20px;
    margin-bottom: 0;
    margin-top: 0;
}
/*
 * Optionally remove the page title overlay
 */
.no-overlay .page-title:before {
  background-color: unset;
}
/*
 * Allow jumping around on a page without hiding under the top nav.
 */
*:target::before {
  display: block;
  content: " ";
  margin-top: -65px;
  height: 65px;
  visibility: hidden;
  pointer-events: none;
}
/*
 * Clip the tall blog post images
 */
div[itemprop="blogPost"] .thumb-wrapper.item-image {
  max-height: 580px;
  overflow-y: hidden;
}
/*
 * Create a sticky form
 */
.page-with-sticky-form {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row-reverse;
}
@media screen and (min-width:992px) {
  .page-with-sticky-form { flex-wrap: nowrap; }
  .long-text { max-width: 62%; }
}

.moving-form {
    min-width: 350px;
    margin: 2em auto;
    width: 80%;
}
@media screen and (min-width:992px) {
  .moving-form {
    width: auto;
    flex-grow: 1;
  }
}

.moving-form .this-one {
  position: -webkit-sticky;
  position: sticky;
  top: 150px;
}

.moving-form fieldset {
    float:  none;
}
/*
 * The related products box
 */
.related-product-box {
    display: flex;
    justify-content: space-between;
}

.related-product {
    display:  block;
    width: 23%;
    position: relative;
}
.related-product img {
    width: 100%;
    display: block;
}
.related-product .detail-img:hover {
    opacity: 1;
    transition: opacity 2s ease 0.5s
}
.related-product .detail-img {
    position: absolute;
    top : 0;
    opacity: 0;
}
/*
 * Ligature twisting
 */
h2 strong { font-variant-ligatures: common-ligatures contextual historical-ligatures; }

