/* color definitions */
/* 16 column layout */
/* clearfix idiom */
/* common mixins */
/* page layout + top-level styles */
::selection {
  background-color: #0099cc;
  color: #fff; }
::-webkit-selection {
  background-color: #0099cc;
  color: #fff; }
::-moz-selection {
  background-color: #0099cc;
  color: #fff; }

html, body {
  height: 100%;
  margin: 0;
  padding: 0;
  background-color: #fff;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  /* prevent subpixel antialiasing, which thickens the text */
  /* text-rendering: optimizeLegibility; */
  /* turned off ligatures due to bug 5945455 */ }

body {
  color: #515151;
  color: rgba(0, 0, 0, .68);
  font: 14px/24px Roboto, sans-serif;
  font-weight: 400;
  letter-spacing:.1;
  min-width: 940px;
  padding:0 20px; }

body.responsive {
  min-width: 0;
}

@media (max-width: 719px) {
  body.responsive {
    padding: 0 10px;
  }
}

#page-container {
  width: 940px;
  margin: 0 40px; }

#page-header {
  height: 80px;
  margin-bottom: 20px;
  font-size: 48px;
  line-height: 48px;
  font-weight: 100;
  padding-left: 10px; }
  #page-header a {
    display: block;
    position: relative;
    top: 20px;
    text-decoration: none;
    color: #555555 !important; }

#main-row {
  display: inline-block; }
  #main-row:after {
    content: ".";
    display: block;
    height: 0;
    clear: both;
    visibility: hidden; }
  * html #main-row {
    height: 1px; }

#page-footer {
  margin-left: 190px;
  margin-top: 80px;
  color: #999999;
  padding-bottom: 40px;
  font-size: 12px;
  line-height: 15px; }
  #page-footer a {
    color: #777777; }
  #page-footer #copyright {
    margin-bottom: 10px; }

#nav-container {
  width: 160px;
  min-height: 10px;
  margin-right: 20px;
  float: left; }

#nav {
  margin:0;
  padding:0 0 30px;
}

#side-nav {
  min-height:5px; /* silly way to avoid doc floating left when nav goes fixed */
  margin-bottom:1px;
}
#devdoc-nav {
  outline:none;
  width:auto;
  margin: 20px 0 0; }

#devdoc-nav h2 {
  border:0;
}

#devdoc-nav.fixed {
  position: fixed;
  margin:0;
  top: 84px; /* sticky-header height + 20px gutter */
}

@media (max-width: 719px) {
  .responsive #devdoc-nav {
    /* hide it temporarily, so responsive content can be tested. */
    /* Need to implement a more future proof solution for responsive navigation */
    display: none;
  }
}

#content {
  width: 760px;
  float: left; }


/***** PREVIOUSLY style.css ******************/
/* This should be close to the top, so it is easier to override. */
[dir='rtl'] {
  direction: rtl;
}
html {
  line-height: 20px;
}
pre, table, input, textarea, code {
  font-size: 1em;
}
address, abbr, cite {
  font-style: normal;
}
[dir='rtl'] th {
  text-align: right;
}
html[lang^=ja] blockquote, html[lang^=ja] q, html[lang^=ko] blockquote, html[lang^=ko] q,
html[lang^=zh] blockquote, html[lang^=zh] q {
  font-style: normal;
}
q {
  font-style: italic;
}
fieldset, iframe, img {
  border: 0;
}
img {
  border: none;
  -ms-interpolation-mode: bicubic;
  max-width: 100%;
  vertical-align: middle;
}
video {
  max-width: 100%;
  object-fit: cover;
}
q {
  quotes: none;
}
sup, sub {
  font-size: 11px;
  line-height: 0;
}

table, fieldset {
  margin: 0;
}
/* Biggest type */
.display-1 {
  font-size: 56px;
  line-height: 68px;
}
@media (max-width: 719px) {
  .display-1 {
    font-size: 44px;
    line-height: 56px;
  }
}
h1, h2, h3 {
  color: #212121;
  color: rgba(0, 0, 0, .87);
}
h1 {
  font-size: 44px;
  line-height: 56px;
  margin: 24px 0 12px;
  font-weight: 300;
}
h1.short {
  margin-right:320px;
}
@media (max-width: 719px) {
  h1 {
    font-size: 36px;
    line-height: 48px;
  }
}
h2 {
  font-size: 28px;
  line-height: 32px;
  margin: 24px 0 16px;
  font-weight: 400;
}
h3 {
  font-size: 24px;
  line-height: 32px;
  font-weight: 400;
  margin: 16px 0;
}
h4 {
  font-size: 18px;
  line-height: 24px;
  margin: 12px 0;
  font-weight: 500;
}
h5, h6 {
  font-size: 16px;
  line-height: 24px;
  margin: 8px 0;
}
hr { /* applied to the bottom of h2 elements */
  height: 1px;
  margin: 7px 0 12px;
  border: 0;
  background: #e5e5e5;
}
p, pre, table, form {
  margin: 0 0 12px;
}
small {
  font-size: 11.5px;
  color: #000;
}
ul, ol {
  margin: 0 0 15px 20px;
  padding: 0;
}
[dir='rtl'] ul, [dir='rtl'] ol {
  margin: 10px 30px 10px 10px;
}
ul ul, ul ol, ol ul, ol ol {
  margin-bottom: 0;
  margin-top: 0;
}
li {
  margin: 0 0 12px;
}
dt {
  margin: 24px 0 12px;
}
dd {
  margin:0 0 10px 40px;
}
dd p,
dd pre,
dd ul,
dd ol,
dd dl {
  margin-top:10px;
}
li p,
li pre,
li ul,
li ol,
li dl {
  margin-top: 6px;
  margin-bottom: 6px;
}
dl dd dl:first-child {
  margin-top: 0;
}
pre strong, pre b, a strong, a b, a code {
  color: inherit;
}
pre, code {
  color: #060;
  font: 13px/18px 'Courier New', monospace;
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto;
}

legend {
  display: none;
}
a:link, a:visited, .link-color {
  color: #0ae;
  text-decoration: none;
}
a:focus, a:hover, a:active {
  color: #0ae;
  text-decoration: none;
}
a.white {
  color: #fff;
  text-decoration:underline;
}
a.white:hover, a.white:active {
  color: #ccc !important;
}
strong, b {
  font-weight: bold;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
  border:0;
  margin: .5em 1em 1em 0;
  width:100%; /* consistent table widths; within IE's quirks */
  background-color:#f7f7f7;
}
th, td {
  padding: 4px 12px;
  vertical-align: top;
  text-align: left;
}
td {
  background-color:inherit;
  border:solid 1px #DDD;
}
td *:last-child {
  margin-bottom:0;
}
th {
  background-color: #999;
  color: #fff;
  border:solid 1px #DDD;
  font-weight: normal;
}
tr:first-of-type th:first-of-type:empty {
  visibility: hidden;
}

a:hover,
acronym:hover {
  color: #7aa1b0; }

a:focus,
a:active {
  color: #33b5e5; }

a.external-link {
  background:url('../images/styles/open_new_page.png') no-repeat 100% 50%;
  padding-right:16px;
}

#jd-content img {
  margin-bottom:15px;
}

em {
  font-style: italic; }

acronym,
.tooltip-link {
  border-bottom: 1px dotted #555555;
  cursor: help; }

acronym:hover,
.tooltip-link:hover {
  color: #7aa1b0;
  border-bottom-color: #7aa1b0; }

img.with-shadow,
video.with-shadow {
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25); }

/* disclosures mixin */
/* content layout */
/* This grid is deprecated in favor of .cols and .col-X */
.layout-content-row {
  display: inline-block;
  margin-bottom: 10px; }
  * html .layout-content-row {
    height: 1px; }

.layout-content-col {
  float: left;
  margin-left: 20px; }
  .layout-content-col:first-child {
    margin-left: 0; }
  .layout-content-col h3,
  .layout-content-col h4 {
    margin-top:0; }

.layout-content-col.span-1 {
  width: 40px; }

.layout-content-col.span-2 {
  width: 100px; }

.layout-content-col.span-3 {
  width: 160px; }

.layout-content-col.span-4 {
  width: 220px; }

.layout-content-col.span-5 {
  width: 280px; }

.layout-content-col.span-6 {
  width: 340px; }

.layout-content-col.span-7 {
  width: 400px; }

.layout-content-col.span-8 {
  width: 460px; }

.layout-content-col.span-9 {
  width: 520px; }

.layout-content-col.span-10 {
  width: 580px; }

.layout-content-col.span-11 {
  width: 640px; }

.layout-content-col.span-12 {
  width: 700px; }

.layout-content-col.span-13 {
  width: 760px; }

.vspace.size-1 {
  height: 10px; }

.vspace.size-2 {
  height: 20px; }

.vspace.size-3 {
  height: 30px; }

.vspace.size-4 {
  height: 40px; }

.vspace.size-5 {
  height: 50px; }

.vspace.size-6 {
  height: 60px; }

.vspace.size-7 {
  height: 70px; }

.vspace.size-8 {
  height: 80px; }

.vspace.size-9 {
  height: 90px; }

.vspace.size-10 {
  height: 100px; }

.vspace.size-11 {
  height: 110px; }

.vspace.size-12 {
  height: 120px; }

.vspace.size-13 {
  height: 130px; }

.vspace.size-14 {
  height: 140px; }

.vspace.size-15 {
  height: 150px; }

.vspace.size-16 {
  height: 160px; }

/* nav */
#nav {
  /* section header divs */
  /* expanded section header divs */
  /* sublinks */ }
  #nav li {
    list-style-type: none;
    font-size: 12px;
    margin:0;
    padding:0;
    line-height: 18px; }
  #nav a {
    color: #505050;
    text-decoration: none;
    word-wrap:break-word; }
  #nav .nav-section-header {
    position: relative;
    margin-bottom: 1px;
    padding: 0 30px 0 0; }
  #nav li.selected a, #nav li.selected > .nav-section-header > a {
    color: #09C;
  }
  #nav li.selected ul li a {
  /* don't highlight child items */
    color: #555555; }
  #nav .nav-section .nav-section .nav-section-header {
    /* no white line between second level sections */
    margin-bottom: 0; }
    /* section header links */
    #nav > li > div > a {
      display: block;
      font-weight: 700;
      padding: 13px 0 12px 10px; }
    #nav .nav-section-header:after {
      content: '';
      background: transparent url(../images/styles/disclosure_down.png) no-repeat scroll 50% 50%;
      width: 34px;
      height: 34px;
      display: block;
      position: absolute;
      top: 6px;
      right: 0; }
    #nav .nav-section-header.empty {
      padding:0; }
    #nav .nav-section-header.empty:after {
      display: none; }
    /* nested nav headers */
    #nav .nav-section .nav-section {
      position: relative;
      padding: 0;
      margin: 0; }
    #nav .nav-section li a {
    /* first gen child (2nd level li) */
      display:block;
      font-weight: 700;
      text-transform: none;
      padding: 13px 5px 13px 10px;
       }
    #nav .nav-section li li a {
    /* second gen child (3rd level li) */
      font-weight: 400;
      padding: 7px 5px 7px 10px;
       }
  #nav li.expanded .nav-section-header {
    background: #f0f0f0; }
  #nav li.expanded .nav-section-header.empty {
    background: none; }
  #nav li.expanded li .nav-section-header {
    background: none; }
  #nav li.expanded li ul {
  /* 3rd level ul */
    padding:6px 0 1px 20px;
  }
    #nav li.expanded > .nav-section-header:after {
      content: '';
      background: transparent url(../images/styles/disclosure_up.png) no-repeat scroll 50% 50%;
      width: 34px;
      height: 34px; }
  #nav li.expanded li ul.tree-list-children {
    padding: 0;
  }
  #nav li.expanded li ul.tree-list-children .tree-list-children {
    padding:0 0 0 10px;
  }
  #nav li span.tree-list-subtitle {
    display:inline-block;
    padding:5px 0 0 10px;
    color:#555;
    text-transform:uppercase;
    font-size:12px;
  }
  #nav li span.tree-list-subtitle:before {
    content: '—';
  }
  #nav li span.tree-list-subtitle:after {
    content: '—';
  }
  #nav li span.tree-list-subtitle.package {
    padding-top:15px;
    cursor:default;
  }
  #nav li span.tree-list-subtitle.package:before {
    content: '';
  }
  #nav li span.tree-list-subtitle.package:after {
    content: '';
  }
  #nav li ul.tree-list-children.classes {
    padding-left:10px;
  }
  #nav li ul {
    display:none;
    overflow: hidden;
    margin: 0; }
    #nav li ul.animate-height-in {
      -webkit-transition: height 0.25s ease-in;
      -moz-transition: height 0.25s ease-in;
      transition: height 0.25s ease-in; }
    #nav li ul.animate-height-out {
      -webkit-transition: height 0.25s ease-out;
      -moz-transition: height 0.25s ease-out;
      transition: height 0.25s ease-out; }
    #nav li ul li {
      padding: 0; }
      #nav li li li {
        padding: 0; }
  #nav li.expanded ul {
    }
    #nav li ul > li {
      padding:0;
    }
    #nav li ul > li:last-child {
      padding-bottom:5px;
    }
    #nav li ul.tree-list-children > li:last-child {
      padding-bottom:0;
    }
    #nav li.expanded ul > li {
      background:#f7f7f7; }
    #nav li.expanded ul > li li {
      background:inherit; }
  #nav li ul.tree-list-children ul {
    display:block; }

#nav.samples-nav li li li a {
  padding-top:3px;
  padding-bottom:3px;
}
#nav.samples-nav li li ul > li:last-child {
  padding-bottom:3px;
}

.new,
.new-child {
  font-size: .78em;
  font-weight: bold;
  color: #ff3d3d;
  vertical-align:top;
  white-space:nowrap;
}

/* content header */
.content-header {
  position: relative;
}
.content-header:before,
.content-header:after {
  content: '';
  display: table;
  /* Clear heading margins, to make absolutely positioned nav a bit more predictable. */
}
.content-header.just-links {
  margin-bottom:0;
  padding-bottom:0;}

.content-footer {
  margin-top: 10px;
  padding-top:10px;
  width:100%; }

.content-footer .col-9 {
  margin-left:0;
}
.content-footer .col-4 {
  margin-right:0;
}
.content-footer.wrap {
  max-width:940px;
}
.content-footer .plus-container {
  margin:5px 0 0;
  text-align:right;
  float:right;
}

a.back-link {
    text-decoration: none;
    text-transform: uppercase;
}

.content-header .paging-links {
  position: absolute;
  right: 0;
  top: 8px;
  width: 220px;
}
.paging-links {
  position: relative;
  height:30px; }
  .paging-links a {
    position: absolute; }
  .paging-links a,
  .training-nav-top a {
    text-decoration: none; }
    .paging-links .prev-page-link:before,
    .training-nav-top .prev-page-link:before,
    a.back-link:before {
      content: '';
      background: transparent url(../images/styles/disclosure_left.png) no-repeat scroll 50% 50%;
      width: 10px;
      height: 10px;
      display: inline-block;
      margin-right: 5px; }
    .training-nav-top .next-page-link,
    .training-nav-top .start-class-link,
    .training-nav-top .start-course-link {
    right: 10px; }
    .paging-links .prev-page-link {
      left: -15px; }
    .paging-links .next-page-link {
      right: 0; }
    .next-page-link:after,
    .start-class-link:after,
    .start-course-link:after,
    .next-class-link:after,
    .go-link:after {
      content: '';
      background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
      width: 10px;
      height: 10px;
      display: inline-block;
      margin-left: 5px; }
    .prev-page-link.inline:before {
      content: none; }
    .next-page-link.inline:after {
      content: none; }

  .content-footer .paging-links .next-page-link {
    left:0;
  }

  .training-nav-top a {
    border-bottom:0;
    box-sizing: border-box;
    color: inherit;
    display:block;
    float:left;
    padding:10px 0;
    line-height:30px;
    text-align:center;
    width: 50%;
  }
  
  .training-nav-top a.prev-page-link {
    padding-left: 15px;
    text-align: left;
  }

  .training-nav-top a.next-page-link {
    padding-right: 15px;
    text-align: right;
  }

  .paging-links a.disabled,
  .training-nav-top a.disabled,
  .content-footer a.disabled {
    color:#bbb;
  }

  .paging-links a.disabled:hover,
  .training-nav-top a.disabled:hover,
  .content-footer a.disabled:hover {
    cursor:default;
    color:#bbb !important;
  }

  .training-nav-top a.start-class-link,
  .training-nav-top a.start-course-link {
    width:262px;
  }

  .paging-links a.start-class-link {
    width:100%;
  }

  /* list of classes on course landing page */
  ol.class-list {
    counter-reset: class;
    list-style: none;
    margin: 60px 0 0;
  }
  ol.class-list>li {
    box-shadow: 0px 2px 5px 0 rgba(0, 0, 0, 0.26);
    margin: 0 0 20px;
    overflow: hidden;
  }
  ol.class-list .title {
    background: #00bcd4;
    color: #fff;
    display: block;
    font-size: 20px;
    font-weight: 500;
    height: 32px;
    margin: 0;
    padding: 52px 16px 12px;
    position: relative;
  }
  ol.class-list .title:before {
    border-bottom: 1px solid white;
    box-sizing: border-box;
    /* Disable the numbers for now, since vert few classes need to be taken in order. */
    /* content: counter(class); */
    counter-increment: class;
    height: 40px;
    left: 0;
    padding: 10px 1px 0 5px;
    position: absolute;
    top: 0;
    text-align: right;
    min-width: 30px;
  }
  ol.class-list .title h2 {
    color: currentColor;
    font-size: inherit;
    font-weight: inherit;
    margin:0 0 10px;
    display:block;
    float:left;
    width:675px;
  }
  ol.class-list .title span {
    display:none;
    float:left;
    font-size:18px;
    font-weight:bold;
    background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
    width: 10px;
    height: 32px;
  }

  ol.class-list .description {
    box-sizing: border-box;
    float:left;
    display:block;
    margin:0;
    padding: 16px 10px 16px 16px;
    width: 50%;
  }
  ol.class-list .description.article {
    width: 550px;
  }
  ol.class-list ol {
    box-sizing: border-box;
    float: left;
    list-style: none;
    margin: 0;
    padding: 16px 16px 16px 10px;
    width: 50%;
  }
  ol.class-list .lessons li {
    margin: 0 0 6px;
    line-height: 16px;
  }
  
  /* Class colors */
  ol.class-list li:nth-child(10n+1) .title {
    background: #00bcd4;
  }
  ol.class-list li:nth-child(10n+2) .title {
    background: #4db6ac;
  }
  ol.class-list li:nth-child(10n+3) .title {
    background: #66bb6a;
  }
  ol.class-list li:nth-child(10n+4) .title {
    background: #7cb342;
  }
  ol.class-list li:nth-child(10n+5) .title {
    background: #afb42b;
  }
  ol.class-list li:nth-child(10n+6) .title {
    background: #ffb300;
  }
  ol.class-list li:nth-child(10n+7) .title {
    background: #ff7043;
  }
  ol.class-list li:nth-child(10n+8) .title {
    background: #ec407a;
  }
  ol.class-list li:nth-child(10n+9) .title {
    background: #ab47bc;
  }
  ol.class-list li:nth-child(10n+10) .title {
    background: #7e57c2;
  }
  
  @media (max-width: 719px) {
    .responsive ol.class-list ol,
    .responsive ol.class-list .description {
      float: none;
      margin: 16px;
      padding: 0;
      width: auto;
    }
  }


  .hide {
    display:none !important;
  }



  /* inner-doc tabs w/ title */

div#title-tabs-wrapper {
  border-bottom:1px solid #ccc;
  margin:20px 0 30px;
}
h1.with-title-tabs {
  display:inline-block;
  margin:0 0 -1px 0;
  padding:0 60px 0 0;
  border-bottom:1px solid #F9F9F9;
}
ul#title-tabs {
  list-style:none;
  padding:0;
  height:29px;
  margin:0;
  font-size:16px;
  line-height:26px;
  display:inline-block;
  vertical-align:bottom;
}
ul#title-tabs li {
  display:block;
  float:left;
  margin-right:40px;
  border-bottom: 3px solid transparent;
}
ul#title-tabs li.selected {
  border-bottom: 3px solid #93C;
}
ul#title-tabs li a {
  color:#333;
}
ul#title-tabs li a:hover,
ul#title-tabs li a:active {
  color:#93C !important;
}



/* content body */
@-webkit-keyframes glowheader {
  from {
    background-color: #33b5e5;
    color: #000;
    border-bottom-color: #000; }

  to {
    background-color: transparent;
    color: #33b5e5;
    border-bottom-color: #33b5e5; } }

@-moz-keyframes glowheader {
  from {
    background-color: #33b5e5;
    color: #000;
    border-bottom-color: #000; }

  to {
    background-color: transparent;
    color: #33b5e5;
    border-bottom-color: #33b5e5; } }

@keyframes glowheader {
  from {
    background-color: #33b5e5;
    color: #000;
    border-bottom-color: #000; }

  to {
    background-color: transparent;
    color: #33b5e5;
    border-bottom-color: #33b5e5; } }

h1:target,
h2:target,
h3:target {
    -webkit-animation-name: glowheader;
    -moz-animation-name: glowheader;
    animation-name: glowheader;
    -webkit-animation-duration: 0.7s;
    -moz-animation-duration: 0.7s;
    animation-duration: 0.7s;
    -webkit-animation-timing-function: ease-out;
    -moz-animation-timing-function: ease-out;
    animation-timing-function: ease-out; }

.design ol h4 {
  margin-bottom:0;
}
.design ol {
  counter-reset: item; }
  .design ol>li {
    font-size: 14px;
    line-height: 20px;
    list-style-type: none;
    position: relative; }
    .design ol>li:before {
      content: counter(item) ". ";
      counter-increment: item;
      position: absolute;
      left: -20px;
      top: 0; }
    .design ol li.value-1:before {
      content: "1. "; }
    .design ol li.value-2:before {
      content: "2. "; }
    .design ol li.value-3:before {
      content: "3. "; }
    .design ol li.value-4:before {
      content: "4. "; }
    .design ol li.value-5:before {
      content: "5. "; }
    .design ol li.value-6:before {
      content: "6. "; }
    .design ol li.value-7:before {
      content: "7. "; }
    .design ol li.value-8:before {
      content: "8. "; }
    .design ol li.value-9:before {
      content: "9. "; }
    .design ol li.value-10:before {
      content: "10. "; }
.design .with-callouts ol>li {
  list-style-position: inside;
  margin-left: 0; }
  .design .with-callouts ol>li:before {
    display: inline;
    left: -20px;
    float: left;
    width: 17px;
    color: #33b5e5;
    font-weight: 500; }
.design .with-callouts ul>li {
  list-style-position: outside; }

/* special list items */
li.no-bullet {
  list-style-type: none !important; }
li.no-bullet *{
  margin:0; }

.design li.with-icon {
  position: relative;
  margin-left: 20px;
  min-height: 30px; }
  .design li.with-icon p {
    margin-left: 0 !important; }
  .design li.with-icon:before {
    position: absolute;
    left: -40px;
    top: 0;
    content: '';
    width: 30px;
    height: 30px; }
  .design li.with-icon.tablet:before {
    background-image: url(../images/styles/ico_phone_tablet.png); }
  .design li.with-icon.web:before {
    background-image: url(../images/styles/ico_web.png); }
  .design li.with-icon.action:before {
    background-image: url(../images/styles/ico_action.png); }
  .design li.with-icon.use:before {
    background-image: url(../images/styles/ico_use.png); }

/* figures and callouts */
.figure {
  position: relative; }
  .figure.pad-below {
    margin-bottom: 20px; }
  .figure .figure-callout {
    position: absolute;
    color: #fff;
    font-weight: 500;
    font-size: 16px;
    line-height: 23px;
    text-align: center;
    background: transparent url(../images/styles/callout.png) no-repeat scroll 50% 50%;
    padding-right: 2px;
    width: 30px;
    height: 29px;
    z-index: 1000; }
    .figure .figure-callout.top {
      top: -9px; }
    .figure .figure-callout.right {
      right: -5px; }

.figure-caption {
  margin: 0 10px 20px 0;
  font-size: 14px;
  line-height: 20px;
  font-style: italic; }

/* rows of figures */
.figure-row {
  font-size: 0;
  line-height: 0;
  /* to prevent space between figures */ }
  .figure-row .figure {
    display: inline-block;
    vertical-align: top; }
  .figure-row .figure + .figure {
    margin-left: 10px;
    /* reintroduce space between figures */ }

/* video  containers */
.framed-galaxynexus-land-span-13 {
  background: transparent url(../images/styles/device_galaxynexus_blank_land_span13.png) no-repeat
scroll top left;
  padding: 42px 122px 62px 126px;
  overflow: hidden; }
  .framed-galaxynexus-land-span-13, .framed-galaxynexus-land-span-13 video,
.framed-galaxynexus-land-span-13 img {
    width: 512px;
    height: 286px; }


.framed-galaxynexus-land-span-8{
  background: transparent url(../images/styles/device_galaxynexus_blank_land_span8.png) no-repeat
scroll top left;
  padding: 26px 68px 38px 72px;
  overflow: hidden; }
  .framed-galaxynexus-land-span-8, .framed-galaxynexus-land-span-8 video,
.framed-galaxynexus-land-span-8 img {
    width: 320px;
    height: 180px; }

.framed-galaxynexus-port-span-9 {
  background: transparent url(../images/styles/device_galaxynexus_blank_port_span9.png) no-repeat
scroll top left;
  padding: 95px 122px 107px 124px;
  overflow: hidden; }
  .framed-galaxynexus-port-span-9, .framed-galaxynexus-port-span-9 video,
.framed-galaxynexus-port-span-9 img {
    width: 274px;
    height: 488px; }

.framed-galaxynexus-port-span-5 {
  background: transparent url(../images/styles/device_galaxynexus_blank_port_span5.png) no-repeat
scroll top left;
  padding: 75px 31px 76px 33px;
  overflow: hidden; }
  .framed-galaxynexus-port-span-5, .framed-galaxynexus-port-span-5 video,
.framed-galaxynexus-port-span-5 img {
    width: 216px;
    height: 384px; }

.framed-nexus4-port-216 {
  background: transparent url(../images/styles/device_nexus4_blank_port_432.png) no-repeat
scroll top left;
  background-size:240px 465px;
  padding: 52px 12px 52px 12px;
  overflow: hidden; }
  .framed-nexus4-port-216, .framed-nexus4-port-216 video,
  .framed-nexus4-port-216 img {
    width: 216px;
    height: 360px; }

.framed-nexus5-port-span-5 {
  background: transparent url(../images/styles/device_nexus5_blank_port_span5.png) no-repeat
  scroll top left;
  padding: 52px 33px 69px 31px;
  overflow: hidden;
}

.framed-nexus5-port-span-5,
.framed-nexus5-port-span-5 video,
.framed-nexus5-port-span-5 img {
  width: 216px;
  height: 384px;
}

.framed-nexus5-land-span-13 {
  background: transparent url(../images/styles/device_nexus5_blank_land_span13.png) no-repeat scroll top left;
  padding: 36px 119px 54px 108px;
  overflow: hidden;
}

.framed-nexus5-land-span-13,
.framed-nexus5-land-span-13 video,
.framed-nexus5-land-span-13 img {
  width: 533px;
  height: 300px;
}

.framed-nexus5-port-span-5,
.framed-nexus5-port-span-5 video,
.framed-nexus5-port-span-5 img {
  width: 216px;
  height: 384px;
}

/* wear device frames */

.framed-wear-square {
  background: transparent url(../images/styles/device_wear_square.png) no-repeat scroll top left;
  background-size: 302px 302px;
  height:222px;
  width:222px;
  padding:40px;
  overflow:hidden;
}

.framed-wear-square-small {
  background: transparent url(../images/styles/device_wear_square_small.png) no-repeat scroll top left;
  background-size: 169px 200px;
  height:147px;
  width:147px;
  padding:27px 11px;
  overflow:hidden;
}

#jd-content
.framed-wear-square img {
  height:222px;
  width: 222px;
  padding:0;
  margin:0;
}

#jd-content
.framed-wear-square-small img {
  height:147px;
  width: 147px;
  padding:0;
  margin:0;
}






/* landing page disclosures */
.landing-page-link {
  text-decoration: none;
  font-weight: 500;
  color: #333333; }
  .landing-page-link:after {
    content: '';
    background: transparent url(../images/styles/disclosure_right.png) no-repeat scroll 50% 50%;
    width: 10px;
    height: 10px;
    display: inline-block;
    margin-left: 5px; }

/* tooltips */
.tooltip-box {
  position: absolute;
  background-color: rgba(0, 0, 0, 0.9);
  border-radius: 2px;
  font-size: 14px;
  line-height: 20px;
  color: #fff;
  padding: 6px 10px;
  max-width: 250px;
  z-index: 10000; }
  .tooltip-box.below:after {
    position: absolute;
    content: '';
    line-height: 0;
    display: block;
    top: -10px;
    left: 5px;
    border: 5px solid transparent;
    border-bottom-color: rgba(0, 0, 0, 0.9); }

/* video note */
.video-instructions {
  margin-top: 10px;
  margin-bottom: 10px; }
  .video-instructions:before {
    content: '';
    background: transparent url(../images/styles/ico_movie_inline.png) no-repeat scroll top left;
    display: inline-block;
    width: 12px;
    height: 12px;
    margin-right: 8px; }
  .video-instructions:after {
    content: 'Click device screen to replay movie.'; }

/* download buttons */
.download-button {
  display: block;
  margin-bottom: 5px;
  text-decoration: none;
  background-color: #33b5e5;
  color: #fff !important;
  font-weight: 500;
  box-shadow: 0 1px 1px rgba(0, 0, 0, 0.12);
  padding: 6px 12px;
  border-radius: 2px; }
  .download-button:hover, .download-button:focus {
    background-color: #0099cc;
    color: #fff !important; }
  .download-button:active {
    background-color: #006699; }

/* UI tables and other things found in Writing style and Settings pattern */
.ui-table {
  width: 100%;
  background-color: #282828;
  color: #fff;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.25);
  border-collapse: separate; }
  .ui-table th,
  .ui-table td {
    padding: 5px 10px;
    background-color: inherit;
    border:0;}
  .ui-table thead th {
    font-weight: bold; }
  .ui-table tfoot td {
    border-top: 1px solid #494949;
    border-right: 1px solid #494949;
    text-align: center; }
    .ui-table tfoot td:last-child {
      border-right: 0; }

.layout-with-list-item-margins {
  margin-left: 30px !important; }

.emulate-content-left-padding {
  margin-left: 10px; }

.do-dont-label {
  margin-bottom: 10px;
  padding-left: 20px;
  background: transparent none no-repeat scroll 0px 3px; }
  .do-dont-label.bad {
    background-image: url(../images/styles/ico_wrong.png); }
  .do-dont-label.good {
    background-image: url(../images/styles/ico_good.png); }




/* --------------------------------------------------------------------------
Footer
*/
.line {
    clear: both;
    background: #acbc00;
    background: -moz-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0, #acbc00),
color-stop(50%, #acbc00), color-stop(50%, #bdde00), color-stop(100%, #bdde00));
    background: -webkit-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
    background: -o-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
    background: -ms-linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
    background: linear-gradient(top, #acbc00 0, #acbc00 50%, #bdde00 50%, #bdde00 100%);
    height: 2px;
    margin-top: 150px;
    position: relative;
    z-index: 11;
}
#footer {
    font-size:11px;
    clear: both;
    color: #999;
    padding: 15px 0;
    margin-top:10px;
    width:auto;
}
#footer-local ul {
  list-style: none;
  margin: 5px 0 30px 0;
}
#footer-local li {
    display: inline;
}
#footer-local li+li:before {
    content: '|';
    padding: 0 3px;
  color: #e5e5e5;
}
#footer-global {
    padding: 10px 15px;
  background: #f5f5f5;
}
#footer-global {
    border-top: 1px solid #ebebeb;
    font-size: 11.5px;
    line-height: 1.8;
    list-style: none;
}
#footer-global ul {
    margin: 0;
}
#footer-global li {
    display: inline;
    font-weight: bold;
}
#footer-global li+li:before {
    content: '¬?';
    padding: 0 3px;
}
* html #footer-global li {
    margin: 0 13px 0 0;
}
* [dir='rtl'] #footer-global li {
    margin: 0 0 0 13px;
}
*+html #footer-global li {
    margin: 0 13px 0 0;
}
*+[dir='rtl'] #footer-global li {
    margin: 0 0 0 13px;
}
#footer-global li a {
    font-weight: normal;
}
.locales {
  margin: 10px 0 0 0px;
}
[dir='rtl'] .locales {
    background-position: right center;
    float: left;
    padding: 0 24px 0 0;
}
.locales form {
    margin: 0;
}
.locales select, .sites select {
  line-height: 3.08;
  margin: 0px 0;
  border: solid 1px #EBEBEB;
  -webkit-appearance: none;
  background: white url('../images/arrows-up-down.png') right center no-repeat;
  height: 30px;
  color: #222;
  line-height: normal;
  padding: 5px;
  width: 230px;
}
}

/* =============================================================================
   Print Only
   ========================================================================== */
@media print {
  /* configure printed page */
  @page {
      margin: 0.75in 1in;
      widows: 4;
      orphans: 4;
  }

  /* reset spacing metrics */
  html, body, .wrap {
      margin: 0 !important;
      padding: 0 !important;
      width: auto !important;
  }

  /* leave enough space on the left for bullets */
  body {
      padding-left: 20px !important;
  }
  #doc-col {
      margin-left: 0;
  }

  /* hide a bunch of non-content elements */
  #header, #footer, #nav-x, #side-nav,
  .training-nav-top, .training-nav-bottom,
  #doc-col .content-footer,
  .nav-x, .nav-y,
  .paging-links {
      display: none !important;
  }

  /* remove extra space above page titles */
  #doc-col .content-header {
      margin-top: 0;
  }

  /* bump up spacing above subheadings */
  h2 {
      margin-top: 40px !important;
  }

  /* print link URLs where possible and give links default text color */
  p a:after {
      content: " (" attr(href) ")";
      font-size: 80%;
  }
  p a {
      word-wrap: break-word;
  }
  a {
      color: inherit;
  }

  /* syntax highlighting rules */
  .str { color: #060; }
  .kwd { color: #006; font-weight: bold; }
  .com { color: #600; font-style: italic; }
  .typ { color: #404; font-weight: bold; }
  .lit { color: #044; }
  .pun { color: #440; }
  .pln { color: #000; }
  .tag { color: #006; font-weight: bold; }
  .atn { color: #404; }
  .atv { color: #060; }
}

/* =============================================================================
   Layout
   ========================================================================== */
@media screen, projection, print {

/* --------------------------------------------------------------------------
Buttons
*/
.button, a.button, .button-secondary, a.button-secondary {
  border-image: initial;
    -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    border-radius: 2px;
    cursor: pointer;
}
.button, a.button {
    display:inline-block;
    background-color: #09c;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c));
    background-image: -webkit-linear-gradient(top, #2faddb, #09c);
    background-image: -moz-linear-gradient(top, #2faddb, #09c);
    background-image: -ms-linear-gradient(top, #2faddb, #09c);
    background-image: -o-linear-gradient(top, #2faddb, #09c);
    background-image: linear-gradient(top, #2faddb, #09c);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#0099cc',GradientType=0);
    border: 1px solid #3990ab;
    color: #fff;
}
.button-secondary, a.button-secondary {
    background-color: #f3f3f3;
    border: 1px solid #dcdcdc;
    color: #444;
}
a.button, a.button:visited, a.button-secondary, a.button-secondary:visited {
    margin-right: 16px;
   font-weight: 400;
    min-width: 54px;
    outline: 0;
    padding: 8px 15px;
    text-align: center;
}
.button, .button-secondary {
    margin-right: 16px;
  font-weight: 400;
    min-width: 54px;
    outline: 0;
    padding: 0 15px;
    text-align: center;
}
.button:hover, a.button:hover {
    border-color: #09c;
    background-color: #4cadcb;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#5dbcd9), to(#4cadcb));
    background-image: -webkit-linear-gradient(top, #5dbcd9, #4cadcb);
    background-image: -moz-linear-gradient(top, #5dbcd9, #4cadcb);
    background-image: -ms-linear-gradient(top, #5dbcd9, #4cadcb);
    background-image: -o-linear-gradient(top, #5dbcd9, #4cadcb);
    background-image: linear-gradient(top, #5dbcd9, #4cadcb);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9',
EndColorStr='#4cadcb',GradientType=0);
    color: #fff !important;
}
.button:active, a.button:active {
    background-color: #1e799a;
    background-image: none;
    border-color: #30b7e6;
}
a.button.big.subtitle {
  line-height:18px;
}
.button-secondary:hover, a.button-secondary:hover {
    border-color: #dbdbdb;
    background-color: #f3f3f3;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
    background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec);
    background-image: -moz-linear-gradient(top, #f9f9f9, #ececec);
    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec);
    background-image: -o-linear-gradient(top, #f9f9f9, #ececec);
    background-image: linear-gradient(top, #f9f9f9, #ececec);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
EndColorStr='#ececec');
    color: #33B5E5 !important;
}
.button-secondary:active, a.button-secondary:active {
   border-color: #dadada;
  background: #ebebeb; /* Old browsers */
  /* IE9 SVG, needs conditional override of 'filter' to 'none' */
  background:
url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/
Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0Jv
eD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+
CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIg
eDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIwJSIgc3RvcC1jb2xvcj0iI2ViZWJl
YiIgc3RvcC1vcGFjaXR5PSIxIi8+
CiAgICA8c3RvcCBvZmZzZXQ9IjEwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+
CiAgICA8c3RvcCBvZmZzZXQ9IjUwJSIgc3RvcC1jb2xvcj0iI2ZhZmFmYSIgc3RvcC1vcGFjaXR5PSIxIi8+
CiAgICA8c3RvcCBvZmZzZXQ9IjkwJSIgc3RvcC1jb2xvcj0iI2Y5ZjlmOSIgc3RvcC1vcGFjaXR5PSIxIi8+
CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiNmNmY2ZjYiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFy
R3JhZGllbnQ+
CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIg
Lz4KPC9zdmc+);
  background: -moz-linear-gradient(top,  #ebebeb 0%, #f9f9f9 5%, #fafafa 50%, #f9f9f9 90%,
#ffffff 100%); /* FF3.6+ */
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#ebebeb),
color-stop(5%,#f9f9f9), color-stop(50%,#fafafa), color-stop(90%,#f9f9f9), color-stop(100%,#ffffff));
/* Chrome,Safari4+ */
  background: -webkit-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9
90%,#ffffff 100%); /* Chrome10+,Safari5.1+ */
  background: -o-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
100%); /* Opera 11.10+ */
  background: -ms-linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
100%); /* IE10+ */
  background: linear-gradient(top,  #ebebeb 0%,#f9f9f9 5%,#fafafa 50%,#f9f9f9 90%,#ffffff
100%); /* W3C */
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ebebeb',
endColorstr='#ffffff',GradientType=0 ); /* IE6-8 */
  -webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
  -moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
  box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
  color: #0ae !important;
}
.button.big {
  font-size:20px;
  display:inline-block;
}
.button.big span.small {
  font-size:14px;
}
.button-caption {
  margin-top:10px;
  font-size:12px;
  font-style:italic;
}

.button.disabled,
.button.disabled:hover,
.button.disabled:active {
  background:#ebebeb;
  color:#999 !important;
  border-color:#999;
  cursor:default;
}

.training-nav-top a.button-secondary,
.training-nav-bottom a.button-secondary {
  display:block;
  float:left;
  margin:0;
  width:130px;
  text-transform:uppercase;
  font-weight:bold;

    background-color: #f3f3f3;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec));
    background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec);
    background-image: -moz-linear-gradient(top, #f9f9f9, #ececec);
    background-image: -ms-linear-gradient(top, #f9f9f9, #ececec);
    background-image: -o-linear-gradient(top, #f9f9f9, #ececec);
    background-image: linear-gradient(top, #f9f9f9, #ececec);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9',
EndColorStr='#ececec');
    color: #33B5E5;
}

.training-nav-top a.button-secondary:hover,
.training-nav-bottom a.button-secondary:hover {
    background-color: #09c;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#2faddb), to(#09c));
    background-image: -webkit-linear-gradient(top, #2faddb, #09c);
    background-image: -moz-linear-gradient(top, #2faddb, #09c);
    background-image: -ms-linear-gradient(top, #2faddb, #09c);
    background-image: -o-linear-gradient(top, #2faddb, #09c);
    background-image: linear-gradient(top, #2faddb, #09c);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c');
    border: 1px solid #3990ab;
    color: #fff !important;
}

.training-nav-top a.button-secondary.last,
.training-nav-bottom a.button-secondary.last {
  border-left:0;
}

.training-nav-top a.button-secondary.double-size,
.training-nav-bottom a.button-secondary.double-size {
  width:291px;
}

.training-nav-top {
  border:1px solid #e5e5e5;
  border-width: 1px 1px 0;
  bottom: -56px;
  box-sizing: border-box;
  position: absolute;
  right: 0;
  width: 280px;
}

@media (max-width: 719px) {
  .responsive .training-nav-top {
    left: 0;
    width: auto;
  }
  
  .responsive #tb-wrapper {
    clear: none;
    float: none;
    margin-left: 0;
  }
  
  .responsive #tb {
    float: none;
    width: auto;
  }
}

.training-nav-bottom {
  float:right;
  margin:0 0 0 20px;
  padding:0 0 20px;
}

#tb-wrapper,
#qv-wrapper {
  float:right;
  clear:right;
  margin:6px 0 0 30px; /* negative top-margin to counter the content-header bottom margin */
  padding:0 0 30px;
}

#tb-wrapper {
  margin:56px 0 0 20px; /* negative top-margin to counter the content-header bottom margin */
}

#tb,
#qv {
  border: 1px solid #e5e5e5;
  box-sizing: border-box;
  float: right;
  padding: 5px 0;
  width: 240px;
}

#tb {
  width:280px;
}

#tb h2,
#qv h2 {
  border-top: 1px solid #e5e5e5;
  color: inherit;
  font-size: 16px;
  line-height: 24px;
  margin: 15px 0 4px;
  padding: 10px 15px 0;
}

#tb h2:first-child,
#qv h2:first-child {
  border-top: 0;
  padding-top: 0;
  margin-top: 10px;
}

#tb .download-box,
#qv .download-box {
  padding:0 0 0 15px;
}

#tb .download-box .filename,
#qv .download-box .filename {
  font-size:11px;
  margin:4px 4px 10px;
}


/* Dev guide quicknav */

.sidebox-wrapper {
  float:right;
  clear:right;
  margin:0 0 0 20px;
  padding:0 0 20px;
}

.sidebox {
  width:226px;
  font-size:13px;
  line-height:18px;
  border-left:3px solid #a9e27d;
  float:right;
  padding:0 0 0 20px;
  margin:0 0 1em 20px;
}

.sidebox h2,
.sidebox h3,
.sidebox h4,
.sidebox h5 {
  font-weight:bold;
  margin:0 0 10px;
  line-height: 16px;
}

.sidebox * {
  font-size:inherit;
}

.sidebox > *:last-child {
  margin-bottom:0;
}

#tb ol,
#tb ul,
#qv ul {
  list-style-type: none;
  margin:0 15px 10px 15px;
}

#tb li,
#qv li {
  margin: 4px 0;
  padding: 0 0 0 16px;
  position: relative;
}

#tb p {
  margin:0 15px 10px;
}

#qv ol {
  list-style:none;
  margin:0 15px 15px;
  font-size:inherit;
  line-height:inherit;
}

#tb ol ol,
#tb ul ul,
#qv ol ol,
#qv ul ul,
.sidebox ol ol,
.sidebox ul ul {
  margin: 8px 0;
}

.sidebox p,
#qv p,
#tb p {
  margin: 0 0 10px;
}

/* related resources blocks in checklists */

/* related resources sections that have dynamic content */



h3.rel-resources {
margin:1.25em auto;
}

/* --------------------------------------------------------------------------
Form
*/
.article form {
    margin: 0 0 20px;
}
.article form .form-required {
    color: #dd4b39;
}
.article form fieldset {
    margin: 0 0 20px;
    padding: 0;
}
.article form legend {
    display: block;
    line-height: 1.5;
    margin: 0;
    padding: 0;
}
/*
.article form ol, .article form ul {
    margin: 0 0 0 1em;
    padding: 0 0 0 1em;
}
[dir='rtl'] .article form ol, [dir='rtl'] .article form ul {
    margin: 0 1em 0 0;
    padding: 0 1em 0 0;
}
.article form ol ul, .article form ul ul, [dir='rtl'] .article form ol ul, [dir='rtl'] .article form
ul ul {
    list-style: none;
    margin: 0;
    padding: 0;
}
.article form li {
    margin: 0 0 20px;
}
.article form li li {
    margin: 0 0 5px;
}
*/
.article form label {
    display: block;
    margin: 0 0 5px;
    padding: 0;
}
.article form input[type='text'], .article form select, .article form textarea, .article form
.checkbox-group, .article form .radio-group {
    margin-bottom: 15px;
}
.checkbox-group input {
  width: 13px;
  height: 13px;
  background: #fff;
  border: solid 1px #c6c6c6;
  float: left;
}
.article form .checkbox-group, .article form .radio-group {
  display: block
}
.article form select {
    border: solid 1px #ebebeb;
    border-top-color: #ddd;
    -webkit-appearance: none;
    background: #f3f3f3 url(../images/arrows-up-down.png) right center no-repeat;
    height: 30px;
    color: #222;
    line-height: normal;
    padding: 5px;
    width: 130px;
}

.article form .browse .browse-msg {
  font-size: 11.5px;
}
.article form .browse .button-secondary {
  height: auto;
  line-height: 25px;
  font-size: 11px;
  padding: 0 8px;
  margin: 0 10px 15px 0;
}
.article form input[type='text'], .article form textarea {
    border: 1px solid #ebebeb;
    border-top-color: #dcdcdc;
    color: #222;
    line-height: normal;
    padding: 6px 10px;
    width: 300px;
}
.article form textarea {
    height: 150px;
}
.article form input[type='text']:focus, .article form textarea:focus {
    border-color: #33B5E5;
    -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
    -o-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
    -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
    box-shadow: inset 0 1px 2px rgba(0, 0, 0, .2);
    outline: 0;
}
.article form input[disabled], .article form textarea[disabled], .article form label.form-disabled {
    color: #999;
}
.article form input[type='text'][disabled], .article form textarea[disabled] {
    background-color: #ebebeb;
}
form .form-error input[type='text'], form .form-error textarea {
    border-color: #dd4b39;
  margin-right: 20px;
}
.aside {
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    margin: 10px 0;
    padding: 20px;
    position: relative;
  background: #f9f9f9;
}
/*
.aside, .notification, .promo {
    -moz-border-radius: 2px;
    -webkit-border-radius: 2px;
    border-radius: 2px;
    margin: 10px 0;
    padding: 10px;
    position: relative;
}
.aside>:first-child, .notification>:first-child, .promo>:first-child {
    margin-top: 0;
}
.aside>:last-child, .notification>:last-child, .promo>:last-child {
    margin-bottom: 0;
}
.aside {
    background: #f9f9f9;
}
.notification {
    background: #fffbe4;
    border-color: #f8f6e6;
}
.promo {
    background: #f6f9ff;
    border-color: #eff2f9;
}
*/

/* SDK TOS styles */

div.sdk-terms {
  white-space: pre-wrap;
  word-wrap: break-word;
  font-family: inherit;
  font-size: inherit;
  padding: 10px;
  height: 370px;
  width: 738px;
  border: 1px solid #444;
  background: transparent;
  overflow:auto;
  margin:0 0 10px;
}

div.sdk-terms.fullsize {
  padding: 0;
  height: auto;
  width: auto;
  border:none;
}

div.sdk-terms h3,
div.sdk-terms h2 {
  margin:0;
}

div#sdk-terms-form {
  padding:0 0 0 10px;
}

div#sdk-terms-form input {
  display:inline;
  margin:4px 4px 4px 0;
}


/* --------------------------------------------------------------------------
Code Style
*/
pre {
  margin:0 0 1em 0;
  padding: 1em;
  overflow: auto;
  border: solid 1px #ddd;
  background: #f7f7f7;
}
.str { color: #800; } /* Code string */
.kwd { color: #008; }
.typ { color: #606; }
.lit { color: #066; }
.pun { color: #660; }
.pln { color: #000; }
.tag { color: #008; }
.atn { color: #828; }
.atv { color: #800; } /* XML string */
.dec { color: #606; }

/* --------------------------------------------------------------------------
Three-Pane
*/
/* Package Nav & Classes Nav */
.three-pane {
  position: relative;
  border-top: solid 1px #ebebeb;
}
#packages-nav .js-pane,
#classes-nav .js-pane {
  overflow:visible;
}
#packages-nav {
        height:270px;
  max-height: inherit;
  overflow: hidden;
  position: relative;
}
#classes-nav {
  overflow: hidden;
  position: relative;
}
#packages-nav ul, #classes-nav ul {
  list-style-type: none;
  margin: 10px 0 20px 0;
  padding: 0;
}
#classes-nav li {
  font-weight: bold;
  margin: 5px 0;
}
#packages-nav li,
#classes-nav li li {
  margin: 0;
}
#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
#classes-nav li a, #classes-nav li a:active, #classes-nav li a:visited {
  padding: 0 0 0 4px;
}
#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited,
#nav-tree li a, #nav-tree li a:active, #nav-tree li a:visited {
  color: #222;
  font-weight: normal;
}
#packages-nav li a, #packages-nav li a:active, #packages-nav li a:visited,
#classes-nav li li a, #classes-nav li li a:active, #classes-nav li li a:visited {
  display: block;
}
#packages-nav li.selected a, #packages-nav li.selected a:active, #packages-nav li.selected
a:visited,
#classes-nav li li.selected a, #classes-nav li li.selected a:active, #classes-nav li li.selected
a:visited,
#nav-tree li div.selected {
    font-weight: 500;
    color: #0099cc;
    background-color:#fff; }
  #packages-nav li.selected ul li a,
  #classes-nav li.selected ul li a {
  /* don't highlight child items */
    color: #555555; }
#nav-tree li div.selected a {
    font-weight: 500;
    color: #0099cc;
}
#nav-swap {
  height:30px;
  border-top:1px solid #ccc;
}
#nav-swap a {
  display:inline-block;
  height:100%;
  color: #222;
  font-size: 12px;
  padding: 5px 0 5px 5px;
}

#nav-swap .fullscreen {
  float: right;
  width: 24px;
  height: 24px;
  text-indent: -1000em;
  padding:0;
  margin:3px 5px 0;
  background: url(../images/fullscreen.png) no-repeat -24px 0;
}
#nav-swap .fullscreen.disabled {
  background-position: 0 0;
}
#nav-swap .fullscreen:hover,
#nav-swap .fullscreen:focus {
  cursor:pointer;
}


/* nav tree */
#side-nav, #swapper,
#nav-tree, #tree-list {
  overflow:hidden;
  margin-left:0;
}

#devdoc-nav {
  overflow:visible !important; /* To keep the "to top" button visible */
}

#nav-tree ul {
  list-style:none;
  padding:0;
  margin:10px 0;
}

#nav-tree ul li div {
  padding:0 0 0 4px;
}

#side-nav #nav-tree ul li a,
#side-nav #nav-tree ul li span.no-children {
  padding: 0;
  margin: 0;
}

#nav-tree .plus {
  margin: 0 3px 0 0;
}

#nav-tree ul ul {
  list-style: none;
  margin: 0;
  padding: 0 0 0 0;
}

#nav-tree ul li {
  margin: 0;
  padding: 0 0 0 0;
  white-space: nowrap;
}

#nav-tree .children_ul {
  padding:0;
  margin:0;
}
#nav-tree .children_ul li div {
  padding:0 0 0 10px;
}
#nav-tree .children_ul .children_ul li div {
  padding:0 0 0 20px;
}

#nav-tree a.nolink {
  color: #222;
  text-decoration: none;
}

#nav-tree span.label {
  width: 100%;
}

#nav-tree {
  overflow-x: auto;
  overflow-y: scroll;
  outline:0;
}


/* Content */
#doc-col {
  margin-right:0;
}

/* Uncomment this for preview release watermark
#doc-col {
  background: url('../images/preview.png') repeat;
}
*/

#doc-content-container {
  margin-left: 291px
}
#doc-header, #doc-content {
  padding: 1em 2em;
}
#doc-header {
  background: #f7f7f7;
}
#doc-header h1 {
  line-height: 0;
  margin-bottom: 15px;
}
#api-info-block {
  float: right;
  font-weight: bold;
}
#api-info-block a, #api-info-block a:active, #api-info-block a:visited {
  color: #222;
}
#api-info-block a:hover, #api-info-block a:focus {
  color: #33B5E5;
}
#api-nav-header {
  height:19px; /* plus 16px padding = 35; same as #nav li */
  font-size:14px;
  padding: 8px 0;
  margin: 0;
  border-bottom: 1px solid #CCC;
  background:#e9e9e9;
  background: rgba(0, 0, 0, 0.05); /* matches #nav li.expanded */
  line-height: 19px; /* Fix regression after page line-height is bumped to 24px */
}
#api-nav-title {
  padding:0 5px;
  white-space:nowrap;
}

#api-level-toggle {
  float:right;
  padding:0 5px;
}

#api-level-toggle label {
  margin:0;
  vertical-align:top;
  line-height: 19px;
  font-size:13px;
  height: 19px;
}

#api-level-toggle .select-wrapper {
  width: 35px;
  display: inline-block;
  overflow: hidden;
}
#api-level-toggle select {
  border: 0;
  appearance:none;
  -moz-appearance:none;
  -webkit-appearance: none;
  background: transparent url(../images/arrows-up-down.png) 23px 5px no-repeat;
  color: #222;
  height: 19px;
  line-height: 19px;
  padding: 0;
  margin:1px 0 0 0;
  width:150%;
  font-size:13px;
  vertical-align:top;
  outline:0;
}


/* Toggle for revision notes and stuff */
div.toggle-content.closed .toggle-content-toggleme {
  display:none;
}

#jd-content img.toggle-content-img {
  margin:0 5px 5px 0;
}

div.toggle-content-toggleme {
  padding:0 0 0 15px;
}


/* API LEVEL FILTERED MEMBERS */

.absent,
.absent a:link,
.absent a:visited,
.absent a:hover,
.absent * {
  color:#bbb !important;
  cursor:default !important;
  text-decoration:none !important;
}
#devdoc-nav li.absent.selected,
#devdoc-nav li.absent.selected *,
#devdoc-nav div.label.absent.selected,
#devdoc-nav div.label.absent.selected * {
  background-color:#eaeaea !important;
}
.absent h4.jd-details-title,
.absent h4.jd-details-title * {
  background-color:#f6f6f6 !important;
}
.absent img {
  opacity: .3;
  filter: alpha(opacity=30);
  -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)";
}









/* JQUERY RESIZABLE STYLES */
.ui-resizable { position: relative; }
.ui-resizable-handle { position: absolute; display: none; font-size: 0.1px; z-index:1; }
.ui-resizable .ui-resizable-handle { display: block; border-bottom: 1px solid #e4e4e4; }
/*body .ui-resizable-disabled .ui-resizable-handle { display: none; }
body .ui-resizable-autohide .ui-resizable-handle { display: none; }*/
.ui-resizable-s { cursor: s-resize; height: 10px; width: 100% !important; bottom: -11px; left: 0;
border-bottom: solid 1px #ededed;
  background: #f7f7f7 url("../images/resizable-s2.png") no-repeat scroll center center; }
/*
.ui-resizable-e {
cursor: e-resize; width: 10px; right: 0; top: 0; height: 100%; border-right: solid
1px #ededed;background: #f7f7f7 url("../images/resizable-e2.png") no-repeat scroll center center; }
*/

/* --------------------------------------------------------------------------
Lightbox
*/
.lightbox {
  width: 769px;
  padding: 1.5em;
  margin: 0 auto;
  border: solid 1px #dcdcdc;
  background: #fff;
  -moz-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
  -webkit-box-shadow: 1px 1px 5px rgba(0,0,0,0.1);
  box-shadow: 1px 1px 5px rgba(0,0,0,0.1)
}
.lightbox .header {
  float: left;
  width: 720px;
  margin: -10px 20px 10px 0;
}
.lightbox .close {
  float: right;
  width: 10px;
  height: 10px;
  margin: -10px -10px 10px 0;
  text-indent: -1000em;
  background: url(../images/close.png) no-repeat 0 0;
}
.lightbox .close:hover, .lightbox .close:focus {
  background-position: -10px 0;
}

/* --------------------------------------------------------------------------
Styles for samples browser
*/

#codesample-wrapper {
  width:100000px; /* super wide to contain floats, but doesn't cause scroll */
  overflow:visible;
}
pre#codesample-block {
  float:left;
  overflow:visible;
  background:transparent;
  border:none;
}
pre#codesample-block a.number {
  display:none;
}
pre#codesample-block .code-line:hover {
  background:#e7e7e7;
}
pre#codesample-line-numbers {
  float:left;
  width:2em;
  background:transparent;
  border:none;
  border-right:1px solid #ccc;
  padding-left:0;
  font-family:monospace;
  text-align:right;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: -moz-none;
  -ms-user-select: none;
  user-select: none;
}
pre#codesample-line-numbers a {
  color:#999;
}
pre#codesample-line-numbers.hidden {
  display:none;
}
pre#codesample-block span.code-line {
  width:100%;
  display:inline-block;
}

/*
Styles for displaying image or video resources in samples browser.
Resources are marked as no-display if they exceed the size limit.
*/
div#codesample-resource img, div#codesample-resource video {
  border: 1px solid #ececec;
}

div#codesample-resource.noDisplay div {
  border: 1px solid #ececec;
  width:120px;
  margin-bottom:4px;
  padding:20px;
}

div#codesample-resource .noDisplay-message:after {
  font-style:italic;
  font-size:12px;
  content: 'This resource is not available for browsing. To view it, please download the project.';
}

/*
Styles for project structure (treeview) page
*/
.structure-dir {
background-image:url(../../assets/images/folder.png);
background-repeat:no-repeat;
background-position:16px 2px;
  margin:.25em 0 0 0;
  padding:0 0 0 0;
}

.structure-toggleme {
  margin:0 0 0 3em;
  padding:0 0 0 0;
  text-decoration:none;
}

.structure-java{
background-image:url(../../assets/images/file-java.png);
background-repeat:no-repeat;
background-position:0px 2px;
  margin:.3em 0 0 0;
  padding:.3em 0 .3em 22px;
}

.structure-file {
background-image:url(../../assets/images/file-generic.png);
background-repeat:no-repeat;
background-position:0px 2px;
  margin:.3em 0 0 0;
  padding:.3em 0 .3em 22px;
}

.structure-xml {
background-image:url(../../assets/images/file-xml.png);
background-repeat:no-repeat;
background-position:0px 2px;
  margin:.3em 0 0 0;
  padding:.3em 0 .25em 22px;
}

.structure-img {
background-image:url(../../assets/images/file-image.png);
background-repeat:no-repeat;
background-position:0px 2px;
  margin:.3em 0 0 0;
  padding:.3em 0 .25em 22px;
}

.structure-manifest {
background-image:url(../../assets/images/file-manifest.png);
background-repeat:no-repeat;
  margin:.0 0 0 1.25em;
  padding:0 0 0 22px;
  text-decoration:none;
}

#jd-content .structure-toggle-img {
  margin:.5em 0 0 0;
padding-right:2.1em;
}

.dirInfo {
  margin-left:2em;
}

.structure-dir a {
  text-decoration:none;
}

.structure-manifest a {
  text-decoration: none;
}
.structure-file a {
  text-decoration: none;
}

.sampleEmbed {
  background-color:rgb(249, 249, 249);
}

.sampleEmbed ol.lineNumbers {
  list-style-type: decimal;
  padding-left:1em;
}

.sampleEmbed ol.lineNumbers li {
border-left:1px solid #ddd;
border-right:1px solid #ddd;
color:gray;
background-color:#f7f7f7;
margin:0 0 0 24px;
padding: 2px 2px 2px 6px;
}

.sampleEmbed ol.lineNumbers li:hover {
background: #efefef;
}

.samples-nav li a {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

/* --------------------------------------------------------------------------
Styles for raw formatted line numbers (not used with listformatted version)
div.sampleLine div.lineNumber {
  display: inline;
}
div.sampleLine div.lineCode {
  display: inline;
  padding-left:6px;
}
div.sampleLine {
  padding:0;
  margin:0;
}*/

/* --------------------------------------------------------------------------
Butterbar
*/
#butterbar-wrapper {
  position:absolute;
  top:0;
  left:0;
  width:100%;
}
#butterbar {
  width:100%;
  margin:0 auto;
}
#butterbar-message {
  background-color:rgba(255, 187, 51, .4);
  font-size:13px;
  padding: 5px 0;
  text-align:center;
}
a#butterbar-message {
  cursor:pointer;
  display:block;
}
a#butterbar-message:hover {
  text-decoration:underline;
}

/* --------------------------------------------------------------------------
Misc and article typography
*/


.clearfix:before, .clearfix:after {
  content: "";
  display: table
}
.clearfix:after {
  clear: both
}
.clearfix {
  *zoom: 1
}
table.blank th, table.blank td {
    border: 0;
  background: none
}
.caption {
  margin: 0.5em 0 2em 0;
  color: #000;
  font-size: 11.5px;
}

.nolist, .nolist ul, .nolist ol {
  list-style:none;
  margin-left:0;
}
#tb .nolist {
  margin-left:15px;
}

dl.xml>dt {
  text-transform:uppercase;
}
dl.xml dl.attr {
  margin-top:0;
}

pre.classic {
  background-color:transparent;
  border:none;
  padding:0;
}

p.img-caption {
  margin: -10px 0 20px;
  font-size: 13px;
}

div.figure-center {
  margin: 32px auto 24px;
  max-width: 100%;
}

div.figure,
div.figure-right {
  clear: right;
  float: right;
  margin: 10px 0 0 0;
  padding: 0 0 0 20px;
  max-width: 50%;
  /* width must be defined w/ an inline style matching the image width */
}

div.figure-left {
  clear: left;
  float: left;
  margin: 10px 0 0 0;
  padding: 0 20px 0 0;
  max-width: 50%;
  /* width must be defined w/ an inline style matching the image width */
}

@media (max-width: 719px) {
  /* Collapse on mobile. */
  .responsive div.figure,
  .responsive div.figure-right,
  .responsive div.figure-left {
    float: none;
    clear: none;
    padding: 0;
    margin: 32px auto 24px;
    max-width: 100%;
  }
}

img.frame {
  border:1px solid #DDD;
  padding:4px;
}

p.table-caption {
  margin: 0 0 4px 0;
  font-size:13px;
}

p.code-caption {
  margin-bottom: 4px;
  font: 12px/1.5 monospace;
}

p.note, div.note,
p.caution, div.caution,
p.warning, div.warning {
  padding: 0 0 0 20px;
  border-left: 3px solid;
  margin: 16px 0;
}

p.note, div.note {
  border-color: #66c2ff;
}

p.caution, div.caution {
  border-color: #f81;
}

p.warning, div.warning {
  border-color: #f55;
}

div.note.design {
  border-left: 4px solid #33B5E5;
}

div.note.develop {
  border-left: 4px solid #F80;
}

div.note.distribute {
  border-left: 4px solid #9C0;
}

.note p, .caution p, .warning p {
  margin:0 0 5px;
}

.note p:last-child, .caution p:last-child, .warning p:last-child {
  margin-bottom:0;
}

body.about blockquote {
  display:block;
  float:right;
  width:280px;
  font-size:20px;
  font-style:italic;
  line-height:24px;
  color:#33B5E5;
  margin:0 0 20px 30px;
}

div.design-announce p {
  margin:0 0 10px;
}

.expandable {
  height:34px;
  padding-left:20px;
  position:relative;
}
.expandable:before {
  content: '';
  background-image: url(../images/styles/disclosure_down.png);
  background-repeat:no-repeat;
  background-position: -12px -9px;
  width: 20px;
  height: 20px;
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0; }
}
.expandable.expanded:before {
  background-image: url(../images/styles/disclosure_up.png);
}

/* notice box for cross links between Design/Develop docs */
a.notice-developers-video,
a.notice-developers,
a.notice-designers-video,
a.notice-designers {
  float:right;
  clear:right;
  width:238px;
  min-height:50px;
  margin:0 0 20px 20px;
  border:1px solid #ddd;
}
a.notice-developers-video.wide,
a.notice-developers.wide,
a.notice-designers-video.wide,
a.notice-designers.wide {
  width:278px;
}
a.notice-developers-video div,
a.notice-developers div,
a.notice-designers-video div,
a.notice-designers div {
  min-height:40px;
  background:url('../images/styles/notice-developers@2x.png') no-repeat 10px 10px;
  background-size:40px 40px;
  padding:10px 10px 10px 60px;
}
a.notice-designers div {
  background:url('../images/styles/notice-designers@2x.png') no-repeat 10px 10px;
  background-size:40px 40px;
}
a.notice-designers-video div {
  background:url('../images/styles/notice-designers-video@2x.png') no-repeat 10px 10px;
  background-size:40px 40px;
}
a.notice-developers-video div {
  background:url('../images/styles/notice-developers-video@2x.png') no-repeat 10px 10px;
  background-size:40px 40px;
}
a.notice-developers-video:hover,
a.notice-developers:hover,
a.notice-designers-video:hover,
a.notice-designers:hover {
  background:#eee;
}
a.notice-developers-video h3,
a.notice-developers h3,
a.notice-designers-video h3,
a.notice-designers h3 {
  font-size:13px;
  line-height:18px;
  font-weight:bold;
  text-transform:uppercase;
  color:#000 !important;
  margin:0 0 1px;
}
a.notice-developers-video p,
a.notice-developers p,
a.notice-designers-video p,
a.notice-designers p {
  margin:0;
  line-height:14px;
}
a.notice-developers-video.left,
a.notice-developers.left,
a.notice-designers-video.left,
a.notice-designers.left {
  margin-left:0;
  float:left;
}


/* hide nested list items; companion to hideNestedLists() */
.hide-nested li ol,
.hide-nested li ul {
  display:none;
}

a.header-toggle {
  display:block;
  float:right;
  text-transform:uppercase;
  font-size:.8em !important;
  font-weight:normal;
  margin-top:2px;
}


/* for IDE instruction toggle (Studio/Eclipse/Other) */
select.ide {
  background: transparent;
  border: 1px solid #bbb;
  border-left: 0;
  border-right: 0;
  margin: 10px 0;
  padding: 10px 0;
  color:#666;
}
select.ide,
select.ide option {
  font-family: inherit;
  font-size:16px;
  font-weight:500;
}
/* hide all except studio by default */
.select-ide.eclipse,
.select-ide.other {
  display:none;
}
/* ... unless studio also includes one of the others */
.select-ide.studio.eclipse,
.select-ide.studio.other {
  display:none;
}


/* -----------------------------------------------
good/bad example containers
*/

div.example-block {
  background-repeat: no-repeat;
  background-position:10px 8px;
  background-color:#ccc;
  padding:4px;
  margin:.8em auto 1.5em 2em;
  width:260px;
  float:right;
}
/* red container */
.example-block.bad {
  background-image: url(/images/example-bad.png);
  background-color:#f4cccc;
}
/* green container */
.example-block.good {
  background-image: url(/images/example-good.png);
  background-color:#d9ead3;
}
/* container heading div */
#jd-content .example-block .heading {
  font-weight:bold;
  margin:6px 0 9px 36px;
  padding:6px auto;
}
/* container image (if any) */
#jd-content .example-block img {
  margin:0;
  padding:0px;
}

.example-block table {
  margin:0;
}

/* -----------------------------------------------
Dialog box for popup messages
*/

div.dialog {
  height:0;
  margin:0 auto;
}

div.dialog>div {
  z-index:99;
  position:fixed;
  margin:70px 0;
  width: 391px;
  height: 200px;
  background: #F7F7F7;
-moz-box-shadow: 0 0 15px rgba(0,0,0,0.5);
-webkit-box-shadow: 0 0 15px rgba(0,0,0,0.5);
box-shadow: 0 0 15px rgba(0,0,0,0.5);
}
/* IE6 can't position fixed */
* html div.dialog div { position:absolute; }


div#deprecatedSticker {
  display:none;
  z-index:99;
  position:fixed;
  right:15px;
  top:114px;
  margin:0;
  padding:1em;
  background:#FFF;
  border:1px solid #dddd00;
  box-shadow:-5px 5px 10px #ccc;
  -moz-box-shadow:-5px 5px 10px #ccc;
  -webkit-box-shadow:-5px 5px 10px #ccc;
}

div#langMessage,
div#naMessage {
  display:none;
  width:555px;
  height:0;
  margin:0 auto;
}


div#langMessage>div,
div#naMessage div {
  z-index:99;
  width:450px;
  position:fixed;
  margin:50px 0;
  padding:4em 4em 3em;
  background:#FFF;
  border:1px solid #999;
  box-shadow:-10px 10px 40px #888;
  -moz-box-shadow:-10px 10px 40px #888;
  -webkit-box-shadow:-10px 10px 40px #888;
}
/* IE6 can't position fixed */
* html div#langMessage>div,
* html div#naMessage div { position:absolute; }

div#naMessage strong {
  font-size:1.1em;
}

div#langMessage .lang {
  display:none;
}

/* --------------------------------------------------------------------------
Slideshow Controls & Next/Prev
*/
.slideshow-next, .slideshow-prev {
  width: 20px;
  height: 36px;
  text-indent: -1000em;
}
.slideshow-container {
  margin: 2em 0;
}
.slideshow-container:before, .slideshow-container:after {
  content: "";
  display: table;
  clear: both;
}
a.slideshow-next, a.slideshow-next:visited {

  float: right;

  background: url(../images/arrow-right.png) no-repeat 0 0

}

a.slideshow-prev, a.slideshow-prev:visited {

  float: left;

  background: url(../images/arrow-left.png) no-repeat 0 0

}

.slideshow-next:hover, .slideshow-prev:hover, .slideshow-next:focus, .slideshow-prev:focus {

  background-position: 0 -36px

}

.slideshow-next:active, .slideshow-prev:active {

  background-position: 0 -72px

}
.slideshow-nav {
  width: 74px;
  margin: 0 auto;
}
.slideshow-nav a, .slideshow-nav a:visited {
  display: inline-block;
  width: 12px;
  height: 12px;
  margin: 0 2px 20px 2px;
  background: #ccc;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
}
.slideshow-nav a:hover, .slideshow-nav a:focus {

  background: #33B5E5
}

.slideshow-nav a:active {

  background: #1e799a;
  background: #ebebeb;
  -webkit-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
  -moz-box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
  box-shadow: inset 0px 0px 5px 2px rgba(0, 0, 0, .05);
}
.slideshow-nav a.active, .slideshow-nav a.active:active, .slideshow-nav a.active:visited {
  background: #33B5E5
}
/* --------------------------------------------------------------------------
Tabs
*/
ul.tabs {
  padding: 0;
  margin: 2em 0 0 0;
}
ul.tabs:before, ul.tabs:after {
  content: "";
  display: table;
  clear: both;
}
ul.tabs li {
  list-style-type: none;
  float: left;
}
ul.tabs li a, ul.tabs li a:active, ul.tabs li a:visited {
  display: block;
  height: 36px;
  line-height: 36px;
  padding: 0 15px;
  margin-right: 2px;
  color: #222;
  -moz-border-radius-topleft: 2px;
  -moz-border-radius-topright: 2px;
  -moz-border-radius-bottomright: px;
  -moz-border-radius-bottomleft: px;
  -webkit-border-radius: 2px 2px px px;
  border-radius: 2px 2px px px;
  border-top: solid 1px #ebebeb;
  border-left: solid 1px #ebebeb;
  border-right: solid 1px #ebebeb;
  background-color: #fff;
    background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#fafafa));
    background-image: -webkit-linear-gradient(top, #ffffff, #fafafa);
    background-image: -moz-linear-gradient(top, #ffffff, #fafafa);
    background-image: -ms-linear-gradient(top, #ffffff, #fafafa);
    background-image: -o-linear-gradient(top, #ffffff, #fafafa);
    background-image: linear-gradient(top, #ffffff, #fafafa);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#ffffff',
EndColorStr='#fafafa');
}
ul.tabs li a:hover {
  color: #33B5E5;
}
ul.tabs li a.selected {
  height: 37px;
  color: #33B5E5;
  background-color: #f7f7f7;
  background-image: none;
  border-color: #ddd;
}
.tab-content {
  padding: 1.2em;
  margin: -1px 0 2em 0;
  -webkit-border-radius: 2px;
    -moz-border-radius: 2px;
    border-radius: 2px;
  border: solid 1px #ddd;
  background: #f7f7f7;
}
/* --------------------------------------------------------------------------
Feature Boxes
*/
.feature-box {
  width: 291px;
  height: 200px;
  position: relative;
  background: #F7F7F7;
}
.box-border .top, .box-border .bottom, .box-border .left, .box-border .right {
  z-index: 100;
  position: absolute;
  background-color: #aaa;
}
.box-border .top, .box-border .bottom {
  width: 291px;
  height: 1px;
}
.dialog .box-border .top,
.dialog .box-border .bottom { width:391px; }

.box-border .left, .box-border .right {
  width: 1px;
  height: 8px;
}
.box-border .top { top: 0; left: 0 }
.box-border .top .left { top: 1px; left: 0 }
.box-border .top .right { top: 1px; right: 0 }
.box-border .bottom .left { top: -8px; left: 0 }
.box-border .bottom { top: 200px; left: 0 }
.box-border .bottom .right { top: -8px; right: 0 }

.feature-box h4,
.dialog h4 {
    margin: 15px 18px 10px;
    padding:0;
}

.feature-box p,
.dialog p {
    margin: 10px 18px;
    padding:0;
}
.feature-box .link,
.dialog .link {
    border-top: 1px solid #dedede;
    bottom: 0;
    position: absolute;
    width: inherit;
}
.feature-box a, .feature-box h4,
.dialog a, .dialog h4 {
    -webkit-transition: color .4s ease;
    -moz-transition: color .4s ease;
    -o-transition: color .4s ease;
    transition: color .4s ease;
}
.feature-box:hover {
  cursor: pointer;
}
.feature-box:hover .box-border .top, .feature-box:hover .box-border .bottom, .feature-box:hover
.left, .feature-box:hover .right {
  background-color: #33B5E5;
}
.feature-box:hover h4, .feature-box:hover a {
  color: #33B5E5;
}
/* --------------------------------------------------------------------------
Page-Specific Styles
*/
.colors {
  position: relative;
  float: left;
  width: 92px;
  margin: 40px 0 20px;
}
.colors div {
  color: #fff;
  font-size: 11.5px;
  width: 82px;
  height: 82px;
  margin-top:-30px;
  line-height: 82px;
  text-align: center;
  border: solid 5px #fff;
  -webkit-border-radius: 50%;
  -moz-border-radius: 50%;
  border-radius: 50%;
}














/* ########### REFERENCE DOCS ################## */

#packages-nav h2,
#classes-nav h2 {
  font-size:18px;
  margin:0;
  padding:0 0 0 4px;
}

#jd-header {
  padding: 0 0 12px;
  margin: 20px 0 12px;
  font-size:12px;
  padding-bottom:12px;
  border-bottom:solid 1px #ccc;
}

#jd-header h1 {
  margin:0;
  padding:0 0 6px 0;
}

/* not sure if this is needed in the ref docs, disabling for now
.jd-descr h2 {
  margin:16px 0;
}
*/

/* First paragraph of a content pages is a bit larger
   - note the very specific selector. */
.jd-descr > p:first-child,
.jd-descr > #tb-wrapper + p,
.jd-descr > #qv-wrapper + p {
  font-size: 16px;
  margin-bottom: 16px;
}

/* page-top-right container for reference pages (holds
links to summary tables) */
#api-info-block {
  font-size:12px;
  margin:20px 0 0;
  padding:0 10px 6px;
  font-weight:normal;
  float:right;
  text-align:right;
  color:#999;
  max-width:80%;
  font-size: 12px;
  line-height:14px;
}

#api-info-block div.api-level {
  font-weight:bold;
  font-size:inherit;
  float:none;
  color:#222;
  padding:0;
  margin:0;
}

/* inheritance table */
.jd-inheritance-table {
  border-spacing:0;
  margin:0;
  padding:0;
  font-size:12px;
  line-height:14px;
  background-color:transparent;
}
.jd-inheritance-table tr td {
  border: none;
  margin: 0;
  padding: 0;
  background-color:transparent;
}
.jd-inheritance-table .jd-inheritance-space {
  font-weight:bold;
  width:1em;
}
.jd-inheritance-table .jd-inheritance-interface-cell {
  padding-left: 17px;
}



.jd-sumtable a {
  text-decoration:none;
}

.jd-sumtable a:hover {
  text-decoration:underline;
}

/* the link inside a sumtable for "Show All/Hide All" */
.toggle-all {
  display:block;
  float:right;
  font-weight:normal;
  font-size:0.9em;
}

/* adjustments for in/direct subclasses tables */
.jd-sumtable.jd-sumtable-subclasses {
  margin: 1em 0 0 0;
  max-width:968px;
  background-color:transparent;
  font-size:13px;
}

/* extra space between end of method name and open-paren */
.sympad {
  margin-right: 2px;
}

/* right alignment for the return type in sumtable */
.jd-sumtable .jd-typecol {
  text-align:right;
}

/* adjustments for the expando table-in-table */
.jd-sumtable-expando {
  margin:.5em 0;
  padding:0;
}

/* a div that holds a short description */
.jd-descrdiv {
  padding:3px 1em 0 1em;
  margin:0;
  border:0;
}

#jd-content img.jd-expando-trigger-img {
  padding:0 4px 4px 0;
  margin:0;
}

.jd-sumtable-subclasses div#subclasses-direct,
.jd-sumtable-subclasses div#subclasses-indirect {
  margin:0 0 0 13px;
}



/********* MEMBER REF *************/


.jd-details {
/*  border:1px solid #669999;
  padding:4px; */
  margin:0 0 1em;
}

/* API reference: a container for the
.tagdata blocks that make up the detailed
description */
.jd-details-descr {
  padding:0;
  margin:.5em .25em;
}

/* API reference: a block containing
a detailed description, a params table,
seealso list, etc */
.jd-tagdata {
  margin:.5em 1em;
}

.jd-tagdata p {
  margin:0 0 1em 1em;
}

/* API reference: adjustments to
the detailed description block */
.jd-tagdescr {
  margin:.25em 0 .75em 0;
}

.jd-tagdescr ol,
.jd-tagdescr ul {
  margin:0 2.5em;
  padding:0;
}

.jd-tagdescr table,
.jd-tagdescr img {
  margin:.25em 1em;
}

.jd-tagdescr li {
margin:0 0 .25em 0;
padding:0;
}

/* API reference: heading marking
the details section for constants,
attrs, methods, etc. */
h4.jd-details-title {
  font-size:1.15em;
  background-color: #E2E2E2;
  margin:1.5em 0 .6em;
  padding:3px 95px 3px 3px; /* room for api-level */
}
body.google h4.jd-details-title {
  background-color: #FFF;
  padding-top:5px;
  border-top: 1px solid #ccc;
}
body.google table.jd-sumtable th {
  background-color: #FFF;
  color:#000;
}

h4.jd-tagtitle {
  margin:0;
}

h4 .normal {
  font-weight:normal;
}

/* API reference: heading for "Parameters", "See Also", etc.,
in details sections */
h5.jd-tagtitle {
  margin:0 0 .25em 0;
  font-size:1em;
}

.jd-tagtable {
  margin:0;
  background-color:transparent;
  width:auto;
}

.jd-tagtable td,
.jd-tagtable th {
  border:none;
  background-color:#fff;
  vertical-align:top;
  font-weight:normal;
  padding:2px 10px;
}

.jd-tagtable th {
  font-style:italic;
}


/* Inline api level indicator for methods */
div.api-level {
  font-size:.8em;
  font-weight:normal;
  color:#999;
  float:right;
  padding:0 8px 0;
  margin-top:-30px;
}

table.jd-tagtable td,
table.jd-tagtable th {
  background-color:transparent;
}

table.jd-tagtable th {
  color:inherit;
}


/* SEARCH FILTER */

.menu-container {
  position:relative;
}
#search_autocomplete {
  font-weight:normal;
}

.search_filtered_wrapper {
  position: absolute;
  right: 18px;
  top: 64px;
}
.suggest-card {
  float:right;
  position:relative;
  width:170px;
  min-height:90px;
  padding:5px;
  border: solid 1px #C5C5C5;
  background: white;
  margin-right:-5px;
  -moz-box-shadow: 0 0 10px rgba(0,0,0,0.2);
  -webkit-box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
  box-shadow: 0 0 10px rgba(0, 0, 0, 0.2);
}
.suggest-card.reference {
  z-index: 998;
  width: auto;
}
.suggest-card.develop {
  z-index:997;
  border-top: solid 4px #F80;
}
.suggest-card.design {
  z-index:996;
  border-top: solid 4px #33b5e5;
}
.suggest-card.distribute {
  z-index:995;
  border-top: solid 4px #9C0;
}
.child-card {
  width:100%;
}
.suggest-card.dummy {
  width:172px;
  float:right;
  border:0;
  background:transparent;
  -moz-box-shadow: none;
  -webkit-box-shadow: none;
  box-shadow: none;
}

ul.search_filtered {
  min-width:100%;
  list-style: none;
  margin: 0 0 5px;
  padding: 0;
}
.search_filtered .jd-selected {
  background:#efefef;
  cursor:pointer;
}
.search_filtered .jd-selected,
.search_filtered .jd-selected a {
    color:#09C !important;
}

.no-display {
  display: none;
}

.search_filtered li.jd-autocomplete {
  font-size: 0.81em;
  border: none;
  margin: 0 0 2px;
  padding: 0;
  line-height:1.5em;
}

.search_filtered li a {
  padding:0 5px;
  color:#222 !important;
  display:inline-block;
  line-height:12px;
}

.search_filtered li.header {
  font-weight:bold;
  color:#444;
  border: none;
  margin: 8px 0 2px;
  padding:1px 5px;
  line-height:1.5em;
}
.search_filtered li.header.small {
  font-size:0.85em;
}

.suggest-card.reference
.search_filtered li.header {
  color:#aaa;
  font-size: 0.81em;
}

.search_filtered li.header:first-child {
  margin: 0 0 2px;
}

.show-item {
  display: table-row;
}
.hide-item {
  display: hidden;
}



/* SEARCH RESULTS */


#leftSearchControl .gsc-twiddle {
  background-image : none;
}

#leftSearchControl td, #searchForm td {
  border: 0px solid #000;
  padding:0;
}

#leftSearchControl .gsc-resultsHeader .gsc-title {
  padding-left : 0px;
  font-weight : bold;
  font-size : 13px;
  color:#006699;
  display : none;
}

#leftSearchControl .gsc-resultsHeader div.gsc-results-selector {
  display : none;
}

#leftSearchControl .gsc-resultsRoot {
  padding-top : 6px;
}

#leftSearchControl div.gs-visibleUrl-long {
  display : block;
  color:#006699;
}

#leftSearchControl .gsc-webResult {
  padding:0 0 20px 0;
}

.gsc-webResult div.gs-visibleUrl-short,
table.gsc-branding,
.gsc-clear-button {
  display : none;
}

.gsc-cursor-box .gsc-cursor div.gsc-cursor-page,
.gsc-cursor-box .gsc-trailing-more-results a.gsc-trailing-more-results,
#leftSearchControl a,
#leftSearchControl a b {
  color:#006699;
}

.gsc-resultsHeader {
  display: none;
}

/* Disable built in search forms */
.gsc-control form.gsc-search-box {
  display : none;
}
table.gsc-search-box {
  margin:6px 0 0 0;
  border-collapse:collapse;
}

td.gsc-input {
  padding:0 2px;
  width:100%;
  vertical-align:middle;
}

input.gsc-input {
  border:1px solid #BCCDF0;
  width:99%;
  padding-left:2px;
  font-size:.95em;
}

td.gsc-search-button {
  text-align: right;
  padding:0;
  vertical-align:top;
}


#searchResults {
  overflow:hidden; /* because the repositioned page links makes the section think it needs to scroll
(it doesn't) */
  height:auto;
}

#searchResults .gsc-control {
  position:relative;
  width:auto;
  padding:0 0 10px;
}

#searchResults .gsc-tabsArea {
  position:relative;
  white-space:nowrap;
  float:left;
  width:200px;
}

#searchResults .gsc-above-wrapper-area {
  display:none;
}

#searchResults .gsc-resultsbox-visible {
  float:left;
  width:720px;
  margin-left:20px;
}

#searchResults .gsc-tabHeader {
  padding: 3px 6px;
  position:relative;
  width:auto;
  display:block;
}

#searchResults h2#searchTitle {
  padding:0;
  margin:30px 0 5px;
  border:none;
}

#searchResults h2#searchTitle em {
  font-style:normal;
  color:#33B5E5;
}

#searchResults .gsc-table-result {
  margin:5px 0 10px 0;
  background-color:transparent;
}
#searchResults .gs-web-image-box, .gs-promotion-image-box {
  width:120px;
}
#searchResults .gs-web-image-box img.gs-image, .gs-promotion-image-box img.gs-promotion-image {
  max-width:120px;
}

#searchResults .gsc-table-result .gsc-thumbnail {
  padding:0 20px 0 0;
}

#searchResults td {
  background-color:transparent;
}

#searchResults .gsc-expansionArea {
  position:relative;
}
#searchResults .gsc-tabsArea .gsc-cursor-box {
  width:200px;
  padding:20px 0 0 1px;
}
#searchResults .gsc-cursor-page {
  display:inline-block;
  float:left;
  margin:-1px 0 0 -1px;
  padding:0;
  height:27px;
  width:27px;
  text-align:center;
  line-height:2;
}

#searchResults .gsc-tabHeader.gsc-tabhInactive,
#searchResults .gsc-cursor-page {
  text-decoration:none;
  color:#0ae;
  border: solid 1px #DADADA;
}

#searchResults .gsc-tabHeader.gsc-tabhInactive:hover,
#searchResults .gsc-cursor-page:hover {
  border-color: #DBDBDB;
  background-color: #F3F3F3;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#F9F9F9), to(#ECECEC));
  background-image: -webkit-linear-gradient(top, #F9F9F9, #ECECEC);
  background-image: -moz-linear-gradient(top, #F9F9F9, #ECECEC);
  background-image: -ms-linear-gradient(top, #F9F9F9, #ECECEC);
  background-image: -o-linear-gradient(top, #F9F9F9, #ECECEC);
  background-image: linear-gradient(top, #F9F9F9, #ECECEC);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#f9f9f9', 
EndColorStr='#ececec');
  color: #33B5E5;
}

#searchResults .gsc-tabHeader.gsc-tabhActive,
#searchResults .gsc-tabHeader.gsc-tabhActive:hover,
#searchResults .gsc-cursor-page.gsc-cursor-current-page,
#searchResults .gsc-cursor-page.gsc-cursor-current-page:hover {
  color:#fff;
  background-color: #09C;
  background-image: -webkit-gradient(linear, left top, left bottom, from(#2FADDB), to(#09C));
  background-image: -webkit-linear-gradient(top, #2FADDB, #09C);
  background-image: -moz-linear-gradient(top, #2FADDB, #09C);
  background-image: -ms-linear-gradient(top, #2FADDB, #09C);
  background-image: -o-linear-gradient(top, #2FADDB, #09C);
  background-image: linear-gradient(top, #2FADDB, #09C);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#2faddb', EndColorStr='#09c');
  border: 1px solid #3990AB;
  z-index:100;
}




/************ STICKY NAV BAR ******************/

#context {
  clear: both;
  padding-top: 14px;
}
#context .breadcrumb {
  float: left;
  margin-bottom: 10px;
}
#context .util {
  float: right;
  margin-right: 20px;
}

.breadcrumb {
  list-style: none;
  margin: 0;
  padding: 0;
  position: relative;
}
.breadcrumb li {
  float: left;
  padding: 0 20px 0 0;
  color: #000;
  white-space: nowrap;
}
.breadcrumb li a {
  color: #000;
}
.breadcrumb li:after {
  content: url(../images/breadcrumb.png);
  position: relative;
  top: 1px;
  left: 10px;
  width: 5px;
  height: 10px;
}
.breadcrumb li.current {
  font-weight: 700;
}
.breadcrumb li.current:after {
  display: none;
}

/* offset the <a name=""> tags to account for sticky nav */
body.reference a[name] {
  visibility: hidden;
  display: block;
  position: relative;
  top: -56px;
}


/* Quicknav */
.btn-quicknav {
  width:20px;
  height:28px;
  float:left;
  margin-left:6px;
  padding-right:10px;
  position:relative;
  cursor:pointer;
  border-right:1px solid #CCC;
}

.btn-quicknav a {
  zoom:1;
  position:absolute;
  top:13px;
  left:5px;
  display:block;
  text-indent:-9999em;
  width:10px;
  height:5px;
  background:url(../images/quicknav_arrow.png) no-repeat;
}

.btn-quicknav a.arrow-active {
  background-position: 0 -5px;
  display:none;
}

#header-wrap.quicknav a.arrow-inactive {
  display:none;
}

.btn-quicknav.active a.arrow-active {
  display:block;
}

#header-wrap.quicknav .nav-x li {
  min-width:160px;
  margin-right:20px;
}

#header-wrap.quicknav li.last {
  margin-right:0px;
}

#quicknav {
 float:none;
 clear:both;
 margin-left:0;
 margin-top:-30px;
 display:none;
 overflow:hidden;
}

#header-wrap.quicknav #quicknav {

}

#quicknav ul {
  margin:10px 0;
  padding:0;
}

#quicknav ul li.about {
  border-top:1px solid #9933CC;
}

#quicknav ul li.design {
  border-top:1px solid #33b5e5;
}

#quicknav ul li.develop {
  border-top:1px solid #FF8800;
}

#quicknav ul li.distribute {
  border-top:1px solid #99cc00;
}

#quicknav ul li {
  display:block;
  float:left;
  margin:0 20px 0 0;
  min-width:140px;
}

#quicknav ul li.last {
  margin-right:0px;
}

#quicknav ul li ul li {
  float:none;
}

#quicknav ul li ul li a {
  color:#222;
}

#quicknav ul li li ul,
#quicknav ul li li ul li {
  margin:0;
}

#quicknav ul li li ul li:before {
  content:"\21B3";
}

#header-wrap {
   -webkit-transition: all 0.25s ease-out;
      -moz-transition: all 0.25s ease-out;
       -ms-transition: all 0.25s ease-out;
        -o-transition: all 0.25s ease-out;
           transition: all 0.25s ease-out;

}

#header-wrap.quicknav {
  height:216px;

}

.moremenu {
  float: right;
  position: relative;
  width: 50px;
  height:28px;
  display: block;
  margin-top:-3px;
  margin-bottom:7px;
  overflow:hidden;
  -webkit-transition: width 0.25s ease;
     -moz-transition: width 0.25s ease;
       -o-transition: width 0.25s ease;
          transition: width 0.25s ease;
}

.moremenu #more-btn {
  width:40px;
  height:28px;
  background:url(../images/icon_more.png) no-repeat;
  border-left:1px solid #CCC;
  float:left;
  cursor:pointer;
}

.moremenu:hover #more-btn {
  background-position:0 -28px;
}

.morehover {
  position:absolute;
  right:6px;
  top:-9px;
  width:40px;
  height:35px;
  z-index:99;
  overflow:hidden;

  -webkit-opacity:0;
     -moz-opacity:0;
       -o-opacity:0;
          opacity:0;

  -webkit-transform-origin:100% 0%;
     -moz-transform-origin:100% 0%;
       -o-transform-origin:100% 0%;
          transform-origin:100% 0%;

  -webkit-transition-property: -webkit-opacity;
  -webkit-transition-duration: .25s;
  -webkit-transition-timing-function:ease;

  -moz-transition-property: -moz-opacity;
  -moz-transition-duration: .25s;
  -moz-transition-timing-function:ease;

  -o-transition-property: -o-opacity;
  -o-transition-duration: .25s;
  -o-transition-timing-function:ease;

  transition-property: opacity;
  transition-duration: .25s;
  transition-timing-function:ease;
}

.morehover:hover,
.morehover.hover {
  opacity:1;
  height:385px;
  width:268px;
  -webkit-transition-property:height,  -webkit-opacity;
}

.morehover .top {
  width:268px;
  height:39px;
  background:url(../images/more_top.png) no-repeat;
}

.morehover .mid {
  width:228px;
  background:url(../images/more_mid.png) repeat-y;
  padding:10px 20px 0 20px;
}

.morehover .mid .header {
  border-bottom:1px solid #ccc;
  font-weight:bold;
}

.morehover .bottom {
  width:268px;
  height:6px;
  background:url(../images/more_bottom.png) no-repeat;
}

.morehover ul {
  margin:10px 10px 20px 0;
}

.morehover ul li {
  list-style:none;
}

.morehover ul li.active a,
.morehover ul li.active a:hover {
  color:#222 !important;
}

.morehover ul li.active img {
  margin-right:4px;
}




/* MARQUEE */
.slideshow-container {
  width:100%;
  overflow:hidden;
  position:relative;
}
.slideshow-container .slideshow-prev {
  position:absolute;
  top:50%;
  left:0px;
  margin-top:-36px;
  z-index:99;
}
.slideshow-container .slideshow-next {
  position:absolute;
  top:50%;
  margin-top:-36px;
  z-index:99;
  right:0px;
}

.slideshow-container .pagination {
  position:absolute;
  bottom:20px;
  width:100%;
  text-align:center;
  z-index:99;
}
.slideshow-container .pagination ul {
  margin:0;
}
.slideshow-container .pagination ul li{
  display: inline-block;
  width:12px;
  height:12px;
  text-indent:-8000px;
  list-style:none;
  margin: 0 3px;
  border-radius:6px;
  background-color:#ddd;
  cursor:pointer;
        -webkit-transition:color .5s ease-in;
        -moz-transition:color .5s ease-in;
        -o-transition:color .5s ease-in;
        transition:color .5s ease-in;
}
.slideshow-container .pagination ul li:hover {
  background-color:#bbb;
}
.slideshow-container .pagination ul li.active {
  background-color:#6ab344;
}
.slideshow-container .pagination ul li.active:hover {
  background-color:#6ab344;
}
.slideshow-container ul li {
  display:inline;
  list-style:none;
}


#landing h1 {
  margin:17px 0 20px 0 !important;
}

a.download-sdk {
    float:right;
    margin:-10px 0;
    height:30px;
    padding-top:4px;
    padding-bottom:0px;
}

#searchResults.wrap {
    max-width:940px;
    border-bottom:1px solid #e5e5e5;
}

#searchResults.wrap #leftSearchControl {
  min-height:700px
}










/*
 * CSS Styles that are needed by jScrollPane for it to operate correctly.
 */

.jspContainer {
  overflow: hidden;
  position: relative;
}

.jspPane {
  position: absolute;
  width:100% !important; /* to avoid cut-off api names in reference in horiz scroll */
}

.jspVerticalBar {
  position: absolute;
  top: 0;
  right: 0;
  width: 4px;
  height: 100%;
  background: #f5f5f5;
}

.jspHorizontalBar {
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 4px;
  background: #f5f5f5;
}

.jspVerticalBar *,
.jspHorizontalBar * {
  margin: 0;
  padding: 0;
}
.jspCap {
  display: block;
}

.jspVerticalBar .jspCap {
  height: 4px;
}

.jspHorizontalBar .jspCap {
  width: 0;
  height: 100%;
}

.jspHorizontalBar .jspCap {
  float: left;
}

.jspTrack {
  position: relative;
}

.jspDrag {
  background: #ccc;
  position: relative;
  top: 0;
  left: 0;
  cursor: pointer;
}

.jspDrag:hover,
.jspDrag:active {
  border-color: #09c;
  background-color: #4cadcb;
  background-image: -webkit-gradient(linear, left top, right top, from(#5dbcd9), to(#4cadcb));
  background-image: -webkit-linear-gradient(left, #5dbcd9, #4cadcb);
  background-image: -moz-linear-gradient(left, #5dbcd9, #4cadcb);
  background-image: -ms-linear-gradient(left, #5dbcd9, #4cadcb);
  background-image: -o-linear-gradient(left, #5dbcd9, #4cadcb);
  background-image: linear-gradient(left, #5dbcd9, #4cadcb);
  filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#5dbcd9', EndColorStr='#4cadcb');
}

.jspHorizontalBar .jspTrack,
.jspHorizontalBar .jspDrag {
  float: left;
  height: 100%;
}

.jspArrow {
  background: #999;
  text-indent: -20000px;
  display: block;
  cursor: pointer;
}

.jspArrow.jspDisabled {
  cursor: default;
  background: #ccc;
}

.jspVerticalBar .jspArrow {
  height: 16px;
}

.jspHorizontalBar .jspArrow {
  width: 16px;
  float: left;
  height: 100%;
}

.jspVerticalBar .jspArrow:focus {
  outline: none;
}

.jspCorner {
  float: left;
  height: 100%;
}

/* Yuk! CSS Hack for IE6 3 pixel bug :( */
* html .jspCorner {
  margin: 0 -3px 0 0;
}
/******* end of jscrollpane *********/





/************ DEVELOP HOMEPAGE ******************/

/* Slideshow */
.slideshow-develop {
  height: 316px;
  width: 940px;
  position: relative;
  overflow:hidden;
}
.slideshow-develop .frame {
  width: 940px;
  height: 316px;
}
.slideshow-develop img.play {
  max-width:350px;
  max-height:240px;
  margin:20px 0 0 90px;
  -webkit-transform: perspective(800px ) rotateY( 35deg );
  box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
  -moz-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: -16px 20px 40px rgba(0, 0, 0, 0.3);
}
.slideshow-develop img.play.no-shadow {
    box-shadow: none;
    -moz-box-shadow: none;
    -webkit-box-shadow: none;
}
.slideshow-develop img.play.no-transform {
  -webkit-transform: none;
}
.slideshow-develop a.slideshow-next {
  background: url(../images/arrow-right-develop.png);
}
.slideshow-develop a.slideshow-prev {
  background: url(../images/arrow-left-develop.png);
}
.slideshow-develop .content-right {
  float: left;
}
.slideshow-develop .content-right h2 {
  padding:0;
  margin-bottom:10px;
  border:none;
  font-size:24px;
}
.slideshow-develop .item {
  height: 300px;
  width: 940px;
}
.slideshow-develop .pagination ul li.active {
  background-color: #F80;
}
.slideshow-develop .pagination ul li.active:hover {
  background-color: #F80;
}
.slideshow-develop .item hr {
  margin:5px 0 10px;
}
.slideshow-develop .item p {
  margin:10px 0;
}
.slideshow-develop .item p.title-intro {
  position:absolute;
  margin:0;
}

/* Feeds */
.feed ul {
  margin: 0;
}
.feed .feed-nav {
  height: 25px;
  border-bottom: 1px solid #CCC;
}
.feed .feed-nav li {
  list-style: none;
  float: left;
  height: 21px; /* +4px bottom border = 25px; same as .feed-nav */
  margin-right: 25px;
  cursor: pointer;
}
.feed .feed-nav li.active {
  color: #000;
  border-bottom: 4px solid #F80;
}
.feed .feed-container {
  overflow: hidden;
  width: 460px;
}
.feed .feed-container .feed-frame {
  width: 1000px;
}
.feed .feed-container .feed-frame ul {
  float: left;
  width:460px;
}
.feed .feed-container .feed-frame ul ul {
  float: none;
  margin:10px 0 0 30px;
}
.feed .feed-container .feed-frame li {
  list-style: none;
  margin: 20px 0 20px 0;
  width: 460px;
  height:93px;
}
.feed .feed-container .feed-frame li.playlist {
  height:auto;
}
.feed .feed-container .feed-frame li.playlist a {
  height:93px;
  display:block;
}
.feed .feed-container .feed-frame li.more {
  height:20px;
  margin:10px 0 5px 5px;
}
.feed .feed-container .feed-frame li.more a {
  height:inherit;
}
.feed .feed-container .feed-frame li.playlist-video {
  list-style: none;
  margin: 0;
  width: 460px;
  height:55px;
  font-size:12px;
}
.feed .feed-container .feed-frame li.playlist-video a {
  height:45px;
  padding:5px;
}
.feed .feed-container .feed-frame li.playlist-video h5 {
  font-size:12px;
  line-height:13px;
  margin:0;
}
.feed .feed-container .feed-frame li.playlist-video p {
  margin:5px 0 0;
  line-height:15px;
}
.feed-container .feed-frame div.feed-image {
  float: left;
  border: 1px solid #999;
  margin:0 20px 0 0;
  width:122px;
  height:92px;
  background:url('../images/blog-default.png') no-repeat 0 0;
  background-size:180px;
}
#jd-content .feed .feed-container .feed-frame li img {
  float: left;
  border: 1px solid #999;
  margin:0 20px 0 0;
  width:122px;
  height:92px;
}
#jd-content .feed .feed-container .feed-frame li.playlist-video img {
  width:inherit;
  height:inherit;
}

.feed .feed-container .feed-frame li a,
.feed .feed-container .feed-frame li a:active {
  color:#555 !important;
}

.feed .feed-container .feed-frame li a:hover,
.feed .feed-container .feed-frame li a:hover * {
  color:#7AA1B0 !important;
}

/* Video player */
#player-wrapper {
  display:none;
  margin: -1px auto 0;
  position: relative;
  max-width: 940px;
  height: 0px;
}
#player-frame {
  background: #EFEFEF;
  border: 1px solid #CCC;
  padding: 0px 207px;
  z-index: 10; /* stay above marque, but below search suggestions */
  width: 525px;
  height: 330px;
  position: relative;
}
#player-frame .close {
  position: absolute;
  right: 8px;
  bottom: 4px;
  width: 16px;
  height: 16px;
  margin: 0;
  text-indent: -1000em;
  top: 6px;
  background: url(../images/close.png) no-repeat 0 0;
  z-index:9999;
}
#player-frame .close:hover, #player-frame .close:focus {
  background-position: -16px 0;
  cursor:pointer;
}



/************ DEVELOP TOPIC CONTAINERS ************/

.landing-banner,
.landing-docs {
  margin:20px 0;
}
.landing-banner > div:first-child,
.landing-docs > div:first-child,
.landing-docs > .col-12 {
  margin-left:0;
  min-height:280px;
}
.landing-banner.short > div {
  min-height:50px;
}
.landing-banner > div:last-child,
.landing-docs > div:last-child,
.landing-docs > .col-12 {
  margin-right:0;
}

.landing-banner > div > *:last-child {
  margin-bottom:0;
}
.landing-banner h1 {
  margin-top:16px;
  padding-bottom:24px;
}
.landing-docs,
.landing-banner {
  clear:both;
  overflow:hidden;
}
.landing-docs h3 {
  font-size:14px;
  line-height:21px;
  color:#555;
  text-transform:uppercase;
  border-bottom:1px solid #CCC;
  margin:0 0 20px;
}
.landing-docs a {
  color:#333 !important;
}

.landing-docs a:hover,
.landing-docs a:hover * {
  color:#7AA1B0 !important
}

.landing-docs .normal-links a {
  color:#0ae !important;
}

.plusone {
  float:right;
}



.next-docs {
  border-top:1px solid #ccc;
  margin:40px 0 0;
  padding:5px 0 0;
  clear:left;
  overflow:hidden;
}
.next-docs div:first-child {
  margin-left:0;
}
.next-docs div:last-child {
  margin-right:0;
}

.next-docs h2 {
  font-size:14px;
  line-height:21px;
  color:#555;
  text-transform:uppercase;
  border-bottom:none;
  margin:0 0 1em;
  padding:5px 0 0;
}



/************* HOME/LANDING PAGE *****************/

.slideshow-home {
  height: 500px;
  width: 940px;
  border-bottom: 1px solid #CCC;
  position: relative;
  margin: 0;
}
.slideshow-home .frame {
  width: 940px;
  height: 500px;
}
.slideshow-home .content-left {
  float: left;
  text-align: center;
  vertical-align: center;
  margin: 0 0 0 35px;
}
.slideshow-home .content-right {
  margin: 80px 0 0 0;
}
.slideshow-home .content-right p {
  margin-bottom: 10px;
}
.slideshow-home .content-right p:last-child {
  margin-top: 15px;
}
.slideshow-home .content-right h1 {
  padding:0;
}
.slideshow-home .item {
  height: 500px;
  width: 940px;
}
.home-sections {
  padding: 30px 20px 20px;
  margin: 20px 0;
  background: -webkit-linear-gradient(top, #F6F6F6,#F9F9F9);
}
.home-sections ul {
  margin: 0;
}
.home-sections ul li {
  float: left;
  display: block;
  list-style: none;
  width: 170px;
  height: 35px;
  border: 1px solid #ccc;
  background: white;
  margin-right: 10px;
  border-radius: 1px;
  -webkit-border-radius: 1px;
  -moz-border-radius: 1px;
  box-shadow: 1px 1px 5px #EEE;
  -webkit-box-shadow: 1px 1px 5px #EEE;
  -moz-box-shadow: 1px 1px 5px #EEE;
  background: white;
}
.home-sections ul li:hover {
  background: #F9F9F9;
  border: 1px solid #CCC;
}
.home-sections ul li a,
.home-sections ul li a:hover {
  font-weight: bold;
  margin-top: 8px;
  line-height: 18px;
  float: left;
  width: 100%;
  text-align: center;
  color: #09c !important;
}
.home-sections ul li a {
  font-weight: bold;
  margin-top: 8px;
  line-height: 18px;
  float: left;
  width:100%;
  text-align:center;
}
.home-sections ul li img {
  float: left;
  margin: -8px 0 0 10px;
}
.home-sections ul li.last {
  margin-right: 0px;
}

/************ DISTRIBUTE PAGES ******************/

.article-detail #body-content {
  padding-top: 10px;
}

/* A container for grid sets with uppercase h3 and rule */
.dynamic-grid h3 {
  font-size:14px;
  line-height:21px;
  color:#555;
  text-transform:uppercase;
  border-bottom:1px solid #CCC;
  padding:8px 0 0 1px;
  margin-bottom:14px;
  clear:both;
}

.top-right-float {
  float: right;
}

.clearfloat {
  float: none;
  clear: both;
}

.border-img {
  border: 1px solid #CCC;
}

.center-img {
  margin: auto;
  text-align: center;
}
.center-img img {
  margin-bottom: 15px;
}

.figure img, .border-img {
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.37);
  margin-bottom: 15px;
}


/**
 * UTILITIES
 */


.border-box {
  box-sizing: border-box;
}

.vertical-center-outer {
  display: table;
  height: 100%;
  width: 100%;
}

.vertical-center-inner {
  display: table-cell;
  vertical-align: middle;
}

/**
 * TYPE STYLES
 */

.landing-h1 {
  color: #44555d;
  font-weight: 300;
  font-size: 56px;
  line-height: 80px;
  text-align: center;
  letter-spacing: -1px;
  margin-bottom: 6px;
}

.landing-pre-h1 {
  font-weight: 400;
  font-size: 28px;
  color: #93B73F;
  line-height: 36px;
  text-align: center;
  letter-spacing: -1px;
  text-transform: uppercase;
}

.landing-h1.hero {
  text-align: left;
  color: #fff;
}

.landing-h2 {
  font-weight: 300;
  font-size: 42px;
  line-height: 64px;
  text-align: center;
}

.landing-subhead {
  color: #78868d;
  font-size: 20px;
  font-weight: 300;
  line-height: 32px;
  text-align: center;
}
.landing-subhead.hero {
  text-align: left;
  color: white;
}

.landing-hero-description {
  text-align: left;
  margin: 1em 0;
}

.landing-hero-description p {
  font-weight: 300;
  margin: 0;
  font-size: 18px;
  line-height: 24px;
}

.landing-body .landing-small {
  font-size: 14px;
  line-height: 19px;
}

.landing-body.landing-align-center {
  text-align: center;
}

.landing-align-left {
  text-align: left;
}

/**
 * LAYOUT
 */

.landing-section {
  background: #eceff1;
  clear: both;
  padding: 80px 20px 80px;
  margin: 0 -20px;
  text-rendering: optimizeLegibility;
}

@media (max-width: 719px) {
  .responsive .landing-section {
    margin-left: -10px;
    margin-right: -10px;
    padding-left: 10px;
    padding-right: 10px;
  }
}

.landing-short-section {
  padding: 40px 10px 28px;
}

.landing-gray-background {
  background-color: #b0bec5;
}

.landing-white-background {
  background-color: white;
}

.landing-red-background {
  color: white;
  background-color: hsl(8, 70%, 54%);
}

.landing-red-background .landing-h1 {
  color: white;
}

.landing-red-background .landing-subhead {
  color: hsl(8, 71%, 84%);
  text-align: left;
}


.preview-hero {
  height: calc(100vh - 128px);
  min-height: 504px;
  padding-top: 0;
  padding-bottom: 0;
  background-image: url(../../preview/images/hero.jpg);
  background-size: cover;
  background-position: right center;
  color: white;
  position: relative;
  overflow: hidden;
}

.wear-hero {
  height: calc(100vh - 128px);
  min-height: 504px;
  padding-top: 0;
  padding-bottom: 0;
  background-image: url(../../wear/images/hero.jpg);
  background-size: cover;
  background-position: top center;
  color: white;
  position: relative;
  overflow: hidden;
}

.tv-hero {
  height: calc(100vh - 128px);
  min-height: 504px;
  padding-top: 0;
  padding-bottom: 0;
  background-image: url(../../tv/images/hero.jpg);
  background-size: cover;
  background-position: right center;
  color: white;
  position: relative;
  overflow: hidden;
}

.auto-hero {
  height: calc(100vh - 128px);
  min-height: 504px;
  padding-top: 0;
  padding-bottom: 0;
  background-image: url(../../auto/images/hero.jpg);
  background-size: cover;
  background-position: right center;
  color: white;
  position: relative;
  overflow: hidden;
}

.landing-hero-scrim {
  background: black;
  height: 100%;
  left: 0;
  position: absolute;
  opacity: .2;
  width: 100%;
}

.landing-hero-wrap {
  margin: 0 auto;
  max-width: 940px;
  clear: both;
  height: 100%;
  position: relative;
}

.landing-section-header {
  margin-bottom: 40px;
}

.landing-hero-wrap .landing-section-header {
  margin-bottom: 16px;
}

.landing-body {
  font-size: 18px;
  line-height: 24px;
}

.landing-button {
  white-space: nowrap;
  display: inline-block;
  padding: 16px 32px;
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  cursor: pointer;
  color: white;
  -webkit-user-select: none;
     -moz-user-select: none;
       -o-user-select: none;
  user-select: none;
  -webkit-transition: .2s background-color ease-in-out;
     -moz-transition: .2s background-color ease-in-out;
       -o-transition: .2s background-color ease-in-out;
  transition: .2s background-color ease-in-out;
}

.landing-primary {
  background-color: hsl(8, 70%, 44%);
  color: #f8f8f8;
}

.landing-button.landing-primary:hover {
  background-color: hsl(8, 70%, 36%);
}

.landing-button.landing-primary:active {
  background-color: hsl(8, 70%, 30%);
}

.landing-button.landing-secondary {
  background-color: #2faddb;
}

.landing-button.landing-secondary:hover {
  background-color: #09c;
}

.landing-button.landing-secondary:active {
  background-color: #3990ab;
}

a.landing-button,
a.landing-button:hover,
a.landing-button:visited {
  color: white !important;
}

.landing-video-link {
  white-space: nowrap;
  display: inline-block;
  padding: 16px 32px 16px 82px;
  font-size: 18px;
  font-weight: 400;
  line-height: 24px;
  cursor: pointer;
  color: hsla(0, 0%, 100%, .8);
  -webkit-user-select: none;
     -moz-user-select: none;
       -o-user-select: none;
  user-select: none;
  -webkit-transition: .2s color ease-in-out;
     -moz-transition: .2s color ease-in-out;
       -o-transition: .2s color ease-in-out;
  transition: .2s color ease-in-out;
}

.landing-video-link:before {
  height: 64px;
  width: 64px;
  display: inline-block;
  background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAFuklEQVR42u2dXWgcVRSAV9LWtBBTTZVWUhNqEQtq1QeroDRKFRFsROqTYPuo+JCiIoJKFC0USqlUfCiowRcfrBgVUUElefAPkW5T8aeaGn9aRbFsjP0x2cx8PuRMvFxmdjeb2Z17Z8+B85DsZPbO+eaec3/OPSkABdXsVI2gABSAqgJQAKoKQAGoKgAFoKoAFICqAlAAqgpAAai6DqDRAiwDeoFtwB7gPaAInABKwKToCWAMeB/YDdwJrAWWNLh9+QMAXABsBQ4A3wFTwAxQBmaBAAhjNJDPy3L938BXwAvArUCHAkh+kCXAVcA+YBw4bRg7MngtkgTlDPA98CywHmhTAP8/xCbgVeAvMZZpwDQllN7xB/AysKGlAQAXAvuBkzW85UVgCBgENlfQQbmuWAXELPAnsAvoaikAQBtwh/j3coLhS2LIfqCzzu/plL8fkvvFgZiR4L2lHrfkHQBgpQTFUwmGnwC212v0KjC2y/3jQPwDPA+05xYAcBHwubx1YZzhC02QBBBRbxgBzssdAOBy4JgRZE0ZTPuNr7FHDCbEhqNAd24AAN0yUbID7QSwsZChABut3hANXY8Bq70HIMb/Ocb4w81+66v0hmGrN0QQ1ngLQJYRvpWHMWWo4KDIaMnuCcVKgdlZAGL8t2J8vpPGrwChDLyWBMFlAA8D0z4ZvwKEs8D93gCQEc9Jy/jFgkdizaRDGUSs8wXAu1bQLQE9ngHosWbPAXDQeQAypT9rBd3+gociyxi2K9riLABZUj5iuZ6RgsciM2OzFxw2A7JrAO6VwGtKTwpG+Anoy9AVmb3gDHCPcwCAFcChRox6jPu9CazMeFQUAKNRL3AJwE2yopjq228BQPZ/d2bcCyaBTa4BeNGa8Q6naIA4GQWubiKEYWvBbp8zAGQt5VfL/fQ3GEAkTzXDLVkjokA2k5a7AuA2GaLNj/tTfvhq0pQgbcwLQtlQusYVALtlzSR191MjADNI9zbJDZWBR10BMGr5/4GMADQ0SAMDlht62xUAxy0AmzMEEMnhtIO0ZF2YAH5wITd0hQw/5wE04M1bjDyXZpC2hqMlYGnWAHqBf40APOEYgChI35VSWyasWfGqrAH0WVkOIw4CSC1IG2tDoSy7XJE1gPs8ArDoIG0BmJGk30wBDHgGYFFBOgbAtqwB7GxxAHerC8rOBU0Dt2gQzjYIb8gawDor+6HVhqFdrkzEwhabiAVOTMSkUb+06FLEUVfWgj5q0cW4g64AeNo66ZLlcnTDNmesBN4y8KArAG6QU42ttCEzBVzpCoAO4EfLDeV5SzIEvgHaXdqUP2BlQud1Ux55zj2uZUX02cPRnKalRLmu17qYmPWF5YbymJgVAh8Ay5wCII3ZEZOYm6fURGT2u9X43Mnk3CDHybmfmRVYXExPv9nKEcpLejqSC3SjdY2TBzTesHqB7wc0onTEV2KucxLApXKkJy9HlAI5anuJFwCkYQ/EuCJfD+mdBnYkXOssgHY53un7MdVZ4CVgqVcADAhjMafkfTioHc14P04yvvMApIEXy5F/+7S8y6UKolPyR4BVVf7Wi2IdawwIPhTrmAW+rmZ8bwBIQ7vloXwoVzNWS6UUrwAYy9YfOlqwKZDkgneA5Qu4l3cly84F9sqGhislywLmaozuYoGFXr0DII1ukxP1hxJ6QzR7HqLxRfumZaRzXZ3f4XXZyi7gCeB3kqsnzs+kSb9s5XHgMeD8RTxDLgq3rmeuYuFvNYCoR8wqujNi+L3UWBcu9wAMt3QZ8LiMlk5RuU50teq6kcEDgTolveIRYHUQBOek1O5cFu/ukLz7/ZJgNSm+OirebWpgaPS7slxfAr4EngGuX8jopqUBxGzyrAVuB54EXgc+lV4yLhO8cfn5E+ZqUD8kBu9sQvv0Hzj4rmoEBaAAVBWAAlBVAApAVQEoAFUFoABUFYACUFUACkC1CfofXVRJocowZVYAAAAASUVORK5CYII=);
  background-size: contain;
  position: absolute;
  content: "";
  opacity: .7;
  margin-top: -19px;
  margin-left: -64px;
  -webkit-transition: .2s opacity ease-in-out;
     -moz-transition: .2s opacity ease-in-out;
       -o-transition: .2s opacity ease-in-out;
  transition: .2s opacity ease-in-out;
}

.landing-video-link:hover {
  color: hsla(0, 0%, 100%, 1);
}

.landing-video-link:hover:before {
  opacity: 1;
}

.landing-social-image {
  float: left;
  margin-right: 14px;
  height: 64px;
  width: 64px;
}

.landing-social-copy {
  padding-left: 78px;
}

.landing-scroll-down-affordance {
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  z-index: 10;
}

.landing-down-arrow {
  padding: 24px;
  display: inline-block;
  opacity: .5;
  -webkit-transition: .2s opacity ease-in-out;
     -moz-transition: .2s opacity ease-in-out;
       -o-transition: .2s opacity ease-in-out;
  transition: .2s opacity ease-in-out;

  -webkit-animation-name: pulse-opacity;
  -webkit-animation-duration: 4s;
}

.landing-down-arrow:hover {
  opacity: 1;
}

.landing-down-arrow img {
  height: 28px;
  width: 28px;
  margin: 0 auto;
  display: block;
}

.landing-divider {
  display: inline-block;
  height: 2px;
  background-color: white;
  position: relative;
  margin: 10px 0;
}

/* 3 CLOLUMN LAYOUT */

.landing-breakout {
  margin-top: 40px;
  margin-bottom: 40px;
}

.landing-breakout img {
  margin-bottom: 20px;
}

.landing-partners img {
  margin-bottom: 20px;
}

.landing-breakout p {
  padding: 0 23px;
}

.landing-breakout.landing-partners img {
  margin-bottom: 20px;
}

/**
 * ANIMATION
 */

@-webkit-keyframes pulse-opacity {
  0% {
    opacity: .5;
  }
  20% {
    opacity: .5;
  }
  40% {
    opacity: 1;
  }
  60% {
    opacity: .5;
  }
  80% {
    opacity: 1;
  }
  100% {
    opacity: .5;
  }
}



/**
 * VIDEO
 */

#video-container {
  display:none;
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100%;
  background-color:rgba(0,0,0,0.8);
  z-index:9999;
}

#video-frame {
  max-width:940px;
  height:100%;
  margin:72px auto;
  display:none;
  position:relative;
}

.video-close {
  cursor: pointer;
  position: absolute;
  right: -49px;
  top: -49px;
  pointer-events: all;
}

#icon-video-close {
  background-image: url("../images/close-white.png");
  background-image: -webkit-image-set(url(../images/close-white.png) 1x, url(../images/close-white_2x.png) 2x);
  background-repeat: no-repeat;
  background-position: 0 0;
  background-size: 36px 36px;
  height: 36px;
  width: 36px;
  display:block;
}

#icon-video-close:hover {
  background-image: url("../images/close-grey.png");
  background-image: -webkit-image-set(url(../images/close-grey.png) 1x, url(../images/close-grey_2x.png) 2x);
}

/* Preload the hover images */
a.video-shadowbox-button.white:after {
  display:none;
  content:url("../images/close-grey.png") url("../images/close-grey_2x.png");
}

a.video-shadowbox-button.white {
  background-image: url("../images/play-circle-white.png");
  background-image: -webkit-image-set(url(../images/play-circle-white.png) 1x, url(../images/play-circle-white_2x.png) 2x);
  background-size: 36px 36px;
  background-repeat: no-repeat;
  background-position: right;
  padding: 16px 42px 16px 8px;
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  color: #fff;
  text-decoration:none;
}

a.video-shadowbox-button.white:hover {
  color:#bababa !important;
  background-image: url("../images/play-circle-grey.png");
  background-image: -webkit-image-set(url(../images/play-circle-grey.png) 1x, url(../images/play-circle-grey_2x.png) 2x);
}

/* Preload the hover images */
a.video-shadowbox-button.white:after {
  display:none;
  content:url("../images/play-circle-grey.png") url("../images/play-circle-grey_2x.png");
}

/******************
Styles for d.a.c/index:
*******************/



/* Generic full screen carousel styling to be used across pages. */
.fullscreen-carousel {
  margin: 0 -20px;
  overflow: hidden;
  position: relative;
}

.fullscreen-carousel-content {
  width: 100%;
  height: 100%;
  position: relative;
  display: table; /* For vertical centering */
}

.fullscreen-carousel .vcenter {
  display: table-cell;
  vertical-align: middle;
  position: relative;
}

.fullscreen-carousel .vcenter > div {
  margin: 10px auto;
}

/* Styles for the full-bleed hero image type. */
.fullscreen-carousel .hero, .fullscreen-carousel .hero h1 {
  color: #fff;
}

.fullscreen-carousel .hero h1 {
  font-weight: 300;
  font-size: 60px;
  line-height: 68px;
  letter-spacing: -1px;
  margin-top: 0;
}

.fullscreen-carousel .hero p {
  font-weight: 300;
  font-size: 18px;
  line-height: 24px;
}

.fullscreen-carousel .hero .hero-bg {
  background-size: cover;
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0px;
  top: 0px;
}


/* Full screen carousel styling for the resource flow layout type of content */
.fullscreen-carousel .resource-flow-layout:after {
  height: 0; /* Dont know why this is set at 10 in default.css */
}

.fullscreen-carousel .resource-flow-layout {
  margin-bottom: 20px;
}



/* Generic Tab carousel styling to be used across multiple pages. */

.tab-carousel .tab-nav {
  list-style: none;
  position: relative;
  text-align: center;
}

.tab-carousel .tab-nav li {
  display: inline-block;
  font-size: 22px;
  font-weight: 400;
  line-height: 50px;
  list-style: none;
  margin: 0;
  padding: 0 25px;
  position: relative;
}

.tab-carousel .tab-nav li a,
.tab-carousel .tab-nav li a:hover {
  color: #333 !important;
  padding: 10px 10px 13px 10px;
  position: relative;
  z-index: 1000;
}

.tab-carousel .tab-nav li:after {
  background: #ddd;
  bottom: 0;
  content: '';
  height: 4px;
  left: 0;
  position: absolute;
  width: 100%;
  z-index: 0;
}

.tab-carousel .tab-nav .highlight {
  position: absolute;
  height: 4px;
  width: 100px;
  bottom: 0;
  background: #33b5e5;
}

.tab-carousel .tab-carousel-content {
  position: relative;
  overflow: hidden;
  white-space: nowrap;
}

.tab-carousel .tab-carousel-content [data-tab] {
  display: inline-block;
  white-space: normal;
}



/*
  Resource styling for the tab carousel. The tab carousel contains either
  a 3 column layout of resources or a single full-width resource. The
  latter has the 18x12 class applied to it and can be styled differently
  that way.
*/

.tab-carousel .resource .image {
  width: 100%;
  height: 250px;
  background-repeat: no-repeat;
  background-size: contain;
  background-position: 50% 50%;
}

.tab-carousel .resource .info .title {
  font-size: 18px;
  line-height: 24px;
}

.tab-carousel .resource .info .summary,
.tab-carousel .resource .info .cta {
  line-height: 24px;
  font-size: 16px;
}

.tab-carousel .resource-card-18x12 {
  position: relative;
  padding-left: 450px;
  box-sizing: border-box;
  display: table-cell;
  vertical-align: middle;
}

.tab-carousel .resource-card-18x12 .image {
  position: absolute;
  width: 420px;
  height: 100%;
  left: 0;
  top: 0;
}

.tab-carousel .resource-card-18x12 .info {
  display: inline-block;
}

.tab-carousel .resource-card-18x12 .info .title {
  margin-bottom: 26px;
}


/*
  Styles for the actions bar.
*/
.actions-bar {
  background: #b0bec5;
  text-align: center;
}

.actions-bar .actions {
  padding: 24px 0;
  text-align: justify;
  font-size: 0.1px;
  line-height: 0.1px;
}

.actions-bar .actions:after {
  content: '';
  width: 100%;
  display: inline-block;
}

.actions-bar .actions > div {
  display: inline-block;
}

.actions-bar a {
  font-size: 24px;
  line-height: 50px;
  color: #fff;
  font-weight: 300;
}

.actions-bar .dac-sprite {
  margin: 0 -6px 0 -12px;
  -webkit-transition: all 190ms ease-out;
  transition: all 190ms ease-out;
}

.actions-bar a:hover .dac-sprite {

  transform: translateX(5px);
}

@media (max-width: 719px) {
  .responsive .actions-bar .actions > div {
    display: block;
  }
}



/*
  Specific styles for new home page layout of the carousels.
*/

/* Big blue button */
a.home-new-cta-btn,
.home-new-carousel-1 .resource-card-18x6 .cta {
  white-space: nowrap;
  display: inline-block;
  padding: 14px 32px;
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  cursor: pointer;
  background: #33b5e6;
  border-radius: 4px;
  margin-top: 20px;
  color: #fff;
  transition: 0.2s background-color ease-in-out;
}

.home-new-carousel-1 .resource-card-18x6 .cta:after {
  display: none; /* Hide the entity for this button */
}

a.home-new-cta-btn:hover,
.home-new-carousel-1 .resource-card-18x6 .cta:hover {
  color: #fff !important;
  background: #2d9fca;
}

.home-new-carousel-1 .resource-card-18x6 .cta {
  position: absolute;
  bottom: 20px;
  left: 16px;
}

/* Fullscreen carousel. */
.home-new-carousel-1 {
  max-height: 700px; /* Set max height so doesn't get too long */
}

.home-new-carousel-1 .fullscreen-carousel-content {
  min-height: 450px;  /* Set min height for all content */
}

.home-new-carousel-1 .hero {
  background: #000;
}

.home-new-carousel-1 .hero-bg {
  background-image: url(/home-new/images/hero.jpg);
  background-position: right center;
  opacity: 0.85;
}

/*
  Styling for special top card of full screen layout resource layout.
  We need to specifically style the 18x6 card to adjust its size and layout,
  since it's not a standard card, not sure if this is unique to the home page
  layout or should be namespaced within the fullscreen-carousel container.
*/
.home-new-carousel-1 .resource-flow-layout.col-16 .resource-card-18x6 {
  height: 320px;
  background-color:#F9F9F9;
  border-radius: 0px;
  box-shadow: 0px 0px 0px rgba(0, 0, 0, 0);

}

.home-new-carousel-1 .resource-card-18x6 .card-bg {
  width: 636px;
  height: 100%;
}

.home-new-carousel-1 .resource-card-18x6 .card-info {
  right: 0px;
  left: 636px;
  height: 100%;
  top: 0px;
  padding: 15px 22px;
}

.home-new-carousel-1 .resource-card-18x6 .card-info .util {
  display: none;
}

.home-new-carousel-1 .resource-card-18x6 .card-info .title {
  font-size: 20px;
  font-weight: 500;
  margin-top: 15px;
  margin-bottom: 15px;
}

.home-new-carousel-1 .resource-card-18x6 .card-info .text {
  font-size: 15px;
  line-height: 21px;
}


/* Tabbed carousel. */
.home-new-carousel-2 {
  margin: 35px auto 100px auto;
}

.home-new-carousel-2 h1 {
  font-size: 47px;
  font-weight: 100;
  line-height: 54px;
  text-align: center;
}

.annotation-message {
    display: block;
    font-style: italic;
    color: #F80;
}



/* Helpouts widget */
.resource-card-6x2.helpouts-card {
  width: 255px;
  height: 40px;
  position:absolute;
  z-index:999;
  top:-8px;
  right:1px;
}

.resource-card-6x2.helpouts-card > .card-info {
  left:35px;
  height:35px;
  padding:4px 8px 4px 0;
}

.resource-card-6x2.helpouts-card > .card-info .helpouts-description {
  display:block;
  overflow:visible;
  font-size:12px;
  line-height:12px;
  text-align:right;
  color:#666;
}

.helpouts-description .link-color {
  text-transform: uppercase;
}

.resource-card-6x2 > .card-bg.helpouts-card-bg {
  width:35px;
  height:35px;
  margin:2px 0 0 0;
  background-image: url(../images/styles/helpouts-logo-35_2x.png);
  background-image: -webkit-image-set(url(../images/styles/helpouts-logo-35.png) 1x, url(../images/styles/helpouts-logo-35_2x.png) 2x);
}

.resource-card-6x2 > .card-bg.helpouts-card-bg:after {
  display:none;
}

.dac-visible-mobile-block, .dac-mobile-only, .dac-visible-mobile-inline, .dac-visible-mobile-inline-block, .dac-visible-tablet-block, .dac-visible-tablet-inline, .dac-visible-tablet-inline-block, .dac-visible-desktop-block, .dac-visible-desktop-inline, .dac-visible-desktop-inline-block {
  display: none !important;
}

@media (max-width: 719px) {
  .responsive .dac-hidden-mobile {
    display: none !important;
  }

  .responsive .dac-visible-mobile-block, .responsive .dac-mobile-only {
    display: block !important;
  }

  .responsive .dac-visible-mobile-inline {
    display: inline !important;
  }

  .responsive .dac-visible-mobile-inline-block {
    display: inline-block !important;
  }
}

@media (min-width: 720px) and (max-width: 979px) {
  .responsive .dac-hidden-tablet {
    display: none !important;
  }

  .responsive .dac-visible-tablet-block {
    display: block !important;
  }

  .responsive .dac-visible-tablet-inline {
    display: inline !important;
  }

  .responsive .dac-visible-tablet-inline-block {
    display: inline-block !important;
  }
}

@media (min-width: 980px) {
  .responsive .dac-hidden-desktop {
    display: none !important;
  }

  .responsive .dac-visible-desktop-block {
    display: block !important;
  }

  .responsive .dac-visible-desktop-inline {
    display: inline !important;
  }

  .responsive .dac-visible-desktop-inline-block {
    display: inline-block !important;
  }
}

/* New CSS */
/************ RESOURCE CARDS ******************/
/* Basic card-styling with shadow */
.resource-card {
  background: #fff;
  box-shadow: 0px 1px 3px 0px rgba(0, 0, 0, 0.21);
  display: block;
  position: relative;
}

/* Styling for background image including tinting and section icons in stacks */
.card-bg {
  bottom: 131px;
  display: block;
  position: absolute;
  vertical-align: top;
  width: 100%;
  left: 0;
  top: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  background-image: url(../images/resource-card-default-android.jpg);
}

.card-bg:after {
  content: "";
  display: block;
  height: 100%;
  width: 100%;
  opacity: 1;
  background: rgba(0, 0, 0, 0.05);
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}

.static .card-bg:after {
  display: none;
}

.card-bg .card-section-icon {
  position: absolute;
  top: 50%;
  width: 100%;
  margin-top: -35px;
  text-align: center;
  padding-top: 65px;
  z-index: 100;
}

.card-bg .card-section-icon .icon {
  position: absolute;
  left: 50%;
  margin-left: -28px;
  top: 0px;
  width: 56px;
  height: 56px;
  background-repeat: no-repeat;
  background-position: 50% 50%;
  background-image: url(../images/stack-icon.png);
}

.card-bg .card-section-icon .section {
  text-transform: uppercase;
  color: white;
  font-size: 14px;
}

.card-info {
  position: absolute;
  box-sizing: border-box;
  height: 131px;
  right: 0;
  bottom: 0;
  left: 0;
  overflow: hidden;
  background: #fefefe;
  padding: 6px 12px;
}

.card-info .section {
  color: #898989;
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.77px;
  line-height: 20px;
  text-transform: uppercase;
}

.card-info .title {
  color: #333;
  font-size: 18px;
  font-weight: 500;
  line-height: 24px;
  margin-bottom: 2px;
  max-height: 48px;
  overflow: hidden;
  padding-bottom: 5px;
  text-overflow: ellipsis;
  white-space: normal;
}

.card-info .description {
  overflow: hidden;
}

.card-info .description .text {
  color: #666;
  font-size: 14px;
  height: 60px;
  line-height: 20px;
  overflow: hidden;
  width: 100%;
}

.card-info .description .util {
  position: absolute;
  right: 5px;
  bottom: 70px;
  opacity: 0;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}

.card-info.empty-desc .title {
  white-space: normal;
  overflow: visible;
}

.card-info.empty-desc .description {
  display: none;
}

/* Truncate card summaries at bounding box and
 * and apply ellipsis at lower right */
.ellipsis {
  overflow: hidden;
  float: right;
  line-height: 15px;
  width: 100%;
}

.ellipsis:before {
  content: "";
  float: left;
  width: 5px;
  height: 100%;
}

.ellipsis > *:first-child.text {
  float: right;
  width: 100% !important;
  margin-left: -5px;
}

.ellipsis:after {
  content: "\02026";
  height: 17px;
  padding-bottom: 4px;
  box-sizing: content-box;
  float: right;
  position: relative;
  top: -16px;
  left: 100%;
  width: 4em;
  margin-left: -4em;
  padding-right: 5px;
  background: -webkit-gradient(linear, left top, right top, from(rgba(255, 255, 255, 0)), to(white), color-stop(65%, white));
  background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0), white 65%, white);
  background: linear-gradient(to right, rgba(255, 255, 255, 0), white 65%, white);
}

.ellipsis:after {
  font-style: normal;
  color: #aaa;
  font-size: 13px;
  text-align: right;
}

.resource-card:hover {
  cursor: pointer;
}

.static .resource-card:hover {
  cursor: auto;
}

.resource-card:hover .card-bg:after {
  opacity: 0;
}

.resource-card:hover .card-info .description .util {
  opacity: 1;
}

/* Carousel Layout */
/* Carousel styles for landing page */
.resource-carousel-layout {
  height: 531px;
  margin: 20px 0 20px 0;
  padding: 0 !important;
  position: relative;
  overflow: hidden;
}

.resource-carousel-layout .slideshow-prev, .resource-carousel-layout .slideshow-next {
  display: none;
}

.resource-carousel-layout .pagination {
  bottom: 97px;
  left: auto;
  padding-right: 10px;
  right: 0;
  text-align: right;
  width: 16.66666667%;
}

.resource-carousel-layout .pagination ul li {
  text-indent: 8000px;
}

.resource-carousel-layout .frame li {
  position: relative;
}

.resource-carousel-layout .frame li .card-bg {
  bottom: 131px;
}

.resource-carousel-layout .frame li .card-info {
  height: 131px;
  padding: 6px 12px;
  top: auto;
}

.resource-carousel-layout .frame li .card-info .title {
  font-size: 28px;
  font-weight: 400;
  line-height: 32px;
}

.resource-carousel-layout .frame li .card-info .description .text {
  height: 40px;
}

.resource-carousel-layout .frame li .card-info .description .util {
  bottom: 97px;
  right: 4px;
}

/* Stack Layout */
.resource-stack-layout {
  display: inline-block;
  padding: 0;
}

.resource-stack-layout .section-card-menu > .card-info .section, .resource-stack-layout .section-card > .card-info .title {
    /*text-transform: uppercase;*/
  color: #898989;
  font-size: 17px;
  line-height: 24px;
  margin-bottom: 6px;
}

.resource-stack-layout .section-card {
  height: 284px;
}

.resource-stack-layout .section-card > .card-bg {
  height: 192px;
}

.resource-stack-layout .section-card > .card-info {
  padding: 4px 12px 6px 12px;
  top: 192px;
}

.resource-stack-layout .section-card > .card-info .section {
  display: none;
}

.resource-stack-layout .section-card > .card-info .title {
  font-size: 17px;
  border-bottom: 1px solid #959595;
  padding-bottom: 0px;
}

.resource-stack-layout .section-card > .card-info .description {
  font-size: 13px;
  line-height: 15px;
}

.resource-stack-layout .section-card > .card-info .description .text {
  height: 30px;
}

.resource-stack-layout .related-card {
  height: 90px;
}

.resource-stack-layout .related-card > .card-bg {
  left: 0;
  top: 0;
  width: 90px;
  height: 100%;
  position: absolute;
  display: block;
}

.resource-stack-layout .related-card > .card-info {
  left: 90px;
  padding: 4px 12px 4px 12px;
}

.resource-stack-layout .related-card > .card-info .section {
  font-size: 12px;
  margin-bottom: 1px;
  display: none;
}

.resource-stack-layout .related-card > .card-info .title {
  font-size: 16px;
  margin-bottom: -2px;
  white-space: normal;
  overflow: visible;
  text-overflow: ellipsis;
}

.resource-stack-layout .related-card > .card-info .title:after {
  content: url(../images/link-out.png);
  display: block;
}

.resource-stack-layout .related-card > .card-info .description {
  display: none;
}

.resource-stack-layout .section-card-menu {
    /* Flexible height */
  display: block;
  height: auto;
  width: auto;
}

.resource-stack-layout .section-card-menu .card-bg {
  height: 155px;
      /* Flexible height */
  position: relative;
  display: inline-block;
  vertical-align: top;
}

.resource-stack-layout .section-card-menu .card-info {
  padding: 4px 12px 0px 12px;
      /* Flexible height */
  position: relative;
  left: auto;
  top: auto;
  right: auto;
  bottom: auto;
}

.resource-stack-layout .section-card-menu .card-info ul {
  list-style: none;
  margin: 0;
}

.resource-stack-layout .section-card-menu .card-info ul li {
  list-style: none;
  margin: 0;
  padding: 15px 0;
  border-top-width: 1px;
  border-top-style: solid;
  border-top-color: #959595;
}

.resource-stack-layout .section-card-menu .card-info ul li a, .resource-stack-layout .section-card-menu .card-info ul li a:focus, .resource-stack-layout .section-card-menu .card-info ul li a:link, .resource-stack-layout .section-card-menu .card-info ul li a:visited, .resource-stack-layout .section-card-menu .card-info ul li a:active, .resource-stack-layout .section-card-menu .card-info ul li a:hover {
  color: #333 !important;
}

.resource-stack-layout .section-card-menu .card-info ul li:first-child {
  border-top: none;
}

.resource-stack-layout .section-card-menu .card-info ul li:hover .title:after {
  opacity: 1;
  -webkit-transition: opacity 0.5s;
  transition: opacity 0.5s;
}

.resource-stack-layout .section-card-menu .card-info ul li:hover .description {
  max-height: 30px;
  opacity: 1;
  -webkit-transition: max-height 0.5s, opacity 1s;
  transition: max-height 0.5s, opacity 1s;
}

.resource-stack-layout .section-card-menu .card-info .title {
  font-size: 16px;
  margin-bottom: -2px;
  position: relative;
}

.resource-stack-layout .section-card-menu .card-info .title:after {
  background: url(../images/stack-arrow-right.png);
  content: '';
  opacity: 0;
  -webkit-transition: opacity 0.25s;
  transition: opacity 0.25s;
  position: absolute;
  right: 0px;
  top: 3px;
  width: 10px;
  height: 15px;
}

.resource-stack-layout .section-card-menu .card-info .title.more {
  text-transform: uppercase;
  color: #898989;
  display: inline-block;
}

.resource-stack-layout .section-card-menu .card-info .title.more:after {
  background: url(../images/stack-arrow-right.png);
  content: '';
  display: block;
  position: absolute;
  right: -20px;
  top: 3px;
  width: 10px;
  height: 15px;
}

.resource-stack-layout .section-card-menu .card-info .description {
  max-height: 0px;
  opacity: 0;
  overflow: hidden;
  font-size: 13px;
  line-height: 15px;
        /* Hover off */
  -webkit-transition: max-height 0.5s, opacity 0.5s;
  transition: max-height 0.5s, opacity 0.5s;
}

.resource-stack-layout .section-card-menu .card-info .description .text {
  height: 30px;
}

.resource-stack-layout:after {
  content: ".";
  display: block;
  height: 0;
  clear: both;
  visibility: hidden;
}

.resource-card, .resource-card-stack {
  margin-bottom: 20px;
}

.resource-card-row-stack-last {
  margin-bottom: 0px !important;
}

.resource-card-col-stack-last {
  margin-bottom: 0px !important;
}

.resource-card-3x6 {
  height: 300px;
}

.resource-card-3x12 {
  height: 620px;
}

.resource-card-3x18 {
  height: 940px;
}

.resource-card-6x6 {
  height: 300px;
}

.resource-card-6x12 {
  height: 620px;
}

.resource-card-6x18 {
  height: 940px;
}

.resource-card-9x6 {
  height: 300px;
}

.resource-card-9x12 {
  height: 620px;
}

.resource-card-9x18 {
  height: 940px;
}

.resource-card-12x6 {
  height: 300px;
}

.resource-card-12x12 {
  height: 620px;
}

.resource-card-12x18 {
  height: 940px;
}

.resource-card-15x6 {
  height: 300px;
}

.resource-card-15x12 {
  height: 620px;
}

.resource-card-15x18 {
  height: 940px;
}

.resource-card-18x6 {
  height: 300px;
}

.resource-card-18x12 {
  height: 620px;
}

.resource-card-18x18 {
  height: 940px;
}

.resource-card-3x2 {
  height: 100px;
}

.resource-card-3x2x3 {
  height: 90px;
  margin-bottom: 15px;
}

.resource-card-3x3 {
  height: 150px;
}

.resource-card-3x3x2 {
  height: 142px;
  margin-bottom: 16px;
}

.resource-card-6x2 {
  height: 100px;
}

.resource-card-6x2x3 {
  height: 90px;
  margin-bottom: 15px;
}

.resource-card-6x3 {
  height: 150px;
}

.resource-card-6x3x2 {
  height: 142px;
  margin-bottom: 16px;
}

.resource-card-9x2 {
  height: 100px;
}

.resource-card-9x2x3 {
  height: 90px;
  margin-bottom: 15px;
}

.resource-card-9x3 {
  height: 150px;
}

.resource-card-9x3x2 {
  height: 142px;
  margin-bottom: 16px;
}

.resource-card-12x2 {
  height: 100px;
}

.resource-card-12x2x3 {
  height: 90px;
  margin-bottom: 15px;
}

.resource-card-12x3 {
  height: 150px;
}

.resource-card-12x3x2 {
  height: 142px;
  margin-bottom: 16px;
}

.resource-card-15x2 {
  height: 100px;
}

.resource-card-15x2x3 {
  height: 90px;
  margin-bottom: 15px;
}

.resource-card-15x3 {
  height: 150px;
}

.resource-card-15x3x2 {
  height: 142px;
  margin-bottom: 16px;
}

.resource-card-18x2 {
  height: 100px;
}

.resource-card-18x2x3 {
  height: 90px;
  margin-bottom: 15px;
}

.resource-card-18x3 {
  height: 150px;
}

.resource-card-18x3x2 {
  height: 142px;
  margin-bottom: 16px;
}

/*
  The following are styles for cards in the flowlayout above, styled by the number of rows they span
*/
/* Single row, 2 column items. */
.resource-card-9x6 {
  height: 390px;
}

/* Double row, 1 column items. Eg full width video thumbnails. */
.resource-card-18x12 {
  height: 558px;
}

/* 1/3 row items */
.resource-card-3x2 > .card-bg, .resource-card-6x2 > .card-bg, .resource-card-9x2 > .card-bg, .resource-card-12x2 > .card-bg, .resource-card-15x2 > .card-bg, .resource-card-18x2 > .card-bg {
  left: 0;
  top: 0;
  width: 90px;
  height: 100%;
  position: absolute;
  display: block;
}

.resource-card-3x2 > .card-info, .resource-card-6x2 > .card-info, .resource-card-9x2 > .card-info, .resource-card-12x2 > .card-info, .resource-card-15x2 > .card-info, .resource-card-18x2 > .card-info {
  height: 100%;
  left: 90px;
  padding: 6px 12px;
  overflow: hidden;
}

.resource-card-3x2 > .card-info .title, .resource-card-6x2 > .card-info .title, .resource-card-9x2 > .card-info .title, .resource-card-12x2 > .card-info .title, .resource-card-15x2 > .card-info .title, .resource-card-18x2 > .card-info .title {
  max-height: 48px;
  white-space: normal;
}

.resource-card-3x2 > .card-info .description, .resource-card-6x2 > .card-info .description, .resource-card-9x2 > .card-info .description, .resource-card-12x2 > .card-info .description, .resource-card-15x2 > .card-info .description, .resource-card-18x2 > .card-info .description {
  display: none;
}

.resource-card-3x2 > .card-info .text, .resource-card-6x2 > .card-info .text, .resource-card-9x2 > .card-info .text, .resource-card-12x2 > .card-info .text, .resource-card-15x2 > .card-info .text, .resource-card-18x2 > .card-info .text {
  height: auto;
}

/* Override to show the description instead of the content section */
.no-section .resource-card-3x2 > .card-info .section, .no-section .resource-card-6x2 > .card-info .section {
  display: none;
}

.no-section .resource-card-3x2 > .card-info .description, .no-section .resource-card-6x2 > .card-info .description {
  display: block;
}

/* 1/2 row items */
.resource-card-3x3, .resource-card-6x3, .resource-card-9x3, .resource-card-12x3, .resource-card-15x3, .resource-card-18x3 {
  height: 160px;
}

.resource-card-3x3 > .card-bg, .resource-card-6x3 > .card-bg, .resource-card-9x3 > .card-bg, .resource-card-12x3 > .card-bg, .resource-card-15x3 > .card-bg, .resource-card-18x3 > .card-bg {
  left: 0;
  top: 0;
  width: 90px;
  height: 100%;
  position: absolute;
  display: block;
}

.resource-card-3x3 > .card-info, .resource-card-6x3 > .card-info, .resource-card-9x3 > .card-info, .resource-card-12x3 > .card-info, .resource-card-15x3 > .card-info, .resource-card-18x3 > .card-info {
  height: 100%;
  left: 90px;
  padding: 6px 12px;
}

.resource-card-3x3 > .card-info .section, .resource-card-6x3 > .card-info .section, .resource-card-9x3 > .card-info .section, .resource-card-12x3 > .card-info .section, .resource-card-15x3 > .card-info .section, .resource-card-18x3 > .card-info .section {
  display: none;
}

.resource-card-3x3 > .card-info .title, .resource-card-6x3 > .card-info .title, .resource-card-9x3 > .card-info .title, .resource-card-12x3 > .card-info .title, .resource-card-15x3 > .card-info .title, .resource-card-18x3 > .card-info .title {
  max-height: 96px;
  white-space: normal;
}

.resource-card-3x3 > .card-info .text, .resource-card-6x3 > .card-info .text, .resource-card-9x3 > .card-info .text, .resource-card-12x3 > .card-info .text, .resource-card-15x3 > .card-info .text, .resource-card-18x3 > .card-info .text {
  height: auto;
}

.resource-card-3x3 > .card-info .util, .resource-card-6x3 > .card-info .util, .resource-card-9x3 > .card-info .util, .resource-card-12x3 > .card-info .util, .resource-card-15x3 > .card-info .util, .resource-card-18x3 > .card-info .util {
  display: none;
}

/* placement of plusone */
.resource-card-6x12 > .card-info .description .util, .resource-card-9x12 > .card-info .description .util, .resource-card-12x12 > .card-info .description .util, .resource-card-15x12 > .card-info .description .util {
  bottom: 2px;
}

.resource-card-18x12 > .card-info .description .util {
  bottom: 2px;
}

/* Overrides for col-16 6x6 cards linking to local content on landing pages.
   Suppresses "section". */
.landing .card-info .section {
  display: none;
}

/*
  Generate a resource stack layout for a 3 column widget spanning 16 grid cols
*/
.resource-stack-layout.col-16 {
  margin: 0 -14px 0 0;
  width: 954px;
}

.resource-stack-layout.col-16 .resource-card-stack {
  margin: 0 14px 0 0;
  width: 304px;
}

/* Example of card menu tinting */
.resource-widget[data-section=distribute\/tools] .section-card-menu .card-bg:after {
  background: rgba(126, 55, 148, 0.4) !important;
}

.resource-widget[data-section=distribute\/tools] .section-card-menu .card-section-icon .icon {
  background-color: #7e3794 !important;
}

.resource-widget[data-section=distribute\/tools] .section-card-menu .card-info ul li {
  border-top-color: #7e3794 !important;
}

/* tinting for stacks */
div.jd-descr > .resource-widget[data-section=distribute\/tools] .section-card-menu .card-info ul li {
  border-top-color: #7e3794 !important;
}

.dac-fab {
  background: #fff;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.21);
  box-sizing: border-box;
  border-radius: 50%;
  border: none;
  cursor: pointer;
  display: inline-block;
  font-size: 0;
  height: 36px;
  line-height: 36px;
  outline: 0;
  padding: 0;
  text-align: center;
  -webkit-transition: box-shadow .3s;
  transition: box-shadow .3s;
  vertical-align: middle;
  width: 36px;
}

.dac-fab:hover, a:hover > .dac-fab {
  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.21);
}

.dac-fab.dac-primary {
  background: #00c7a0;
}

.dac-fab.dac-large {
  height: 54px;
  line-height: 54px;
  width: 54px;
}

/* Footer component */
.dac-footer {
  border-top: 1px solid #f9f9f9;
  color: #999;
  font-size: 12px;
  padding-bottom: 20px;
}

.dac-footer a {
  color: #999;
}

.dac-footer p {
  margin: 7px 0 0;
}

.dac-footer-main {
  padding: 30px 0;
}

.dac-footer-reachout {
  text-align: right;
}

.dac-footer-contact, .dac-footer-social {
  display: inline;
}

.dac-footer-social-link + .dac-footer-social-link {
  margin-left: 8px;
}

.dac-footer a.dac-footer-getnews, .dac-footer a.dac-footer-contact-link {
  color: #000;
  cursor: pointer;
  font-size: 20px;
  font-weight: 300;
  margin-right: 24px;
  vertical-align: middle;
}

.dac-footer-getnews > .dac-fab {
  margin-left: 4px;
}

.dac-footer-separator {
  background: #f9f9f9;
  margin: 0 0 12px;
}

.dac-footer-links a + a:before {
  content: '|';
  cursor: default;
  margin: 0 10px 0 8px;
}

.dac-footer .locales {
  float: right;
  margin: 0;
}

.dac-footer .locales select {
  background-color: #f9f9f9;
  border: none;
  border-radius: 0;
  color: #999;
  font-size: 12px;
  height: auto;
  margin-top: -2px;
  padding: 8px 12px;
}

@media (max-width: 719px) {
  .responsive .dac-footer-reachout {
    text-align: left;
  }

  .responsive .dac-footer-social {
    display: block;
  }

  .responsive .dac-footer-social-link, .responsive .dac-footer-contact-link {
    display: inline-block;
    margin-top: 20px;
  }

  .responsive .dac-footer .locales {
    display: block;
    float: none;
    margin-top: 15px;
  }
}

/* =============================================================================
   Columns
   ========================================================================== */
.wrap {
  margin: 0 auto;
  max-width: 940px;
  clear: both;
}

.cols {
  margin-left: -10px;
  margin-right: -10px;
  /**
   * For modern browsers
   * 1. The space content is one way to avoid an Opera bug when the
   *    contenteditable attribute is included anywhere else in the document.
   *    Otherwise it causes space to appear at the top and bottom of elements
   *    that are clearfixed.
   * 2. The use of `table` rather than `block` is only necessary if using
   *    `:before` to contain the top-margins of child elements.
   */
}

.cols:before, .cols:after {
  content: ' ';
    /* 1 */
  display: table;
    /* 2 */
}

.cols:after {
  clear: both;
}

[class*=col-] {
  box-sizing: border-box;
  float: left;
  min-height: 1px;
  padding-left: 10px;
  padding-right: 10px;
  position: relative;
}

.col-1 {
  width: 6.25%;
}

.col-2 {
  width: 12.5%;
}

.col-3 {
  width: 18.75%;
}

.col-4 {
  width: 25%;
}

.col-5 {
  width: 31.25%;
}

.col-6 {
  width: 37.5%;
}

.col-7 {
  width: 43.75%;
}

.col-8 {
  width: 50%;
}

.col-9 {
  width: 56.25%;
}

.col-10 {
  width: 62.5%;
}

.col-11 {
  width: 68.75%;
}

.col-12 {
  width: 75%;
}

.col-13 {
  width: 81.25%;
}

.col-14 {
  width: 87.5%;
}

.col-15 {
  width: 93.75%;
}

.col-16 {
  width: 100%;
}

.col-13 .col-1 {
  width: 7.69230769%;
}

.col-13 .col-2 {
  width: 15.38461538%;
}

.col-13 .col-3 {
  width: 23.07692308%;
}

.col-13 .col-4 {
  width: 30.76923077%;
}

.col-13 .col-5 {
  width: 38.46153846%;
}

.col-13 .col-6 {
  width: 46.15384615%;
}

.col-13 .col-7 {
  width: 53.84615385%;
}

.col-13 .col-8 {
  width: 61.53846154%;
}

.col-13 .col-9 {
  width: 69.23076923%;
}

.col-13 .col-10 {
  width: 76.92307692%;
}

.col-13 .col-11 {
  width: 84.61538462%;
}

.col-13 .col-12 {
  width: 92.30769231%;
}

.col-13 .col-13 {
  width: 100%;
}

.col-12 .col-1 {
  width: 8.33333333%;
}

.col-12 .col-2 {
  width: 16.66666667%;
}

.col-12 .col-3 {
  width: 25%;
}

.col-12 .col-4 {
  width: 33.33333333%;
}

.col-12 .col-5 {
  width: 41.66666667%;
}

.col-12 .col-6 {
  width: 50%;
}

.col-12 .col-7 {
  width: 58.33333333%;
}

.col-12 .col-8 {
  width: 66.66666667%;
}

.col-12 .col-9 {
  width: 75%;
}

.col-12 .col-10 {
  width: 83.33333333%;
}

.col-12 .col-11 {
  width: 91.66666667%;
}

.col-12 .col-12 {
  width: 100%;
}

.col-1of1, .col-2of2, .col-3of3, .col-4of4, .col-5of5, .col-6of6, .col-8of8, .col-10of10, .col-12of12, .col-16of16 {
  width: 100%;
}

.col-1of2, .col-2of4, .col-3of6, .col-4of8, .col-5of10, .col-6of12, .col-8of16 {
  width: 50%;
}

.col-1of3, .col-2of6, .col-4of12 {
  width: 33.33333333%;
}

.col-2of3, .col-4of6, .col-8of12 {
  width: 66.66666667%;
}

.col-1of4, .col-2of8, .col-3of12, .col-4of16 {
  width: 25%;
}

.col-3of4, .col-6of8, .col-9of12, .col-12of16 {
  width: 75%;
}

.col-1of5, .col-2of10 {
  width: 20%;
}

.col-2of5, .col-4of10 {
  width: 40%;
}

.col-3of5, .col-6of10 {
  width: 60%;
}

.col-4of5, .col-8of10 {
  width: 80%;
}

.col-1of6, .col-2of12 {
  width: 16.66666667%;
}

.col-5of6, .col-10of12 {
  width: 83.33333333%;
}

.col-1of8, .col-2of16 {
  width: 12.5%;
}

.col-3of8, .col-6of16 {
  width: 37.5%;
}

.col-5of8, .col-10of16 {
  width: 62.5%;
}

.col-7of8, .col-14of16 {
  width: 87.5%;
}

.col-1of10 {
  width: 10%;
}

.col-3of10 {
  width: 30%;
}

.col-7of10 {
  width: 70%;
}

.col-9of10 {
  width: 90%;
}

.col-1of12 {
  width: 8.33333333%;
}

.col-5of12 {
  width: 41.66666667%;
}

.col-7of12 {
  width: 58.33333333%;
}

.col-11of12 {
  width: 91.66666667%;
}

.col-1of16 {
  width: 6.25%;
}

.col-3of16 {
  width: 18.75%;
}

.col-5of16 {
  width: 31.25%;
}

.col-7of16 {
  width: 43.75%;
}

.col-9of16 {
  width: 56.25%;
}

.col-11of16 {
  width: 68.75%;
}

.col-13of16 {
  width: 81.25%;
}

.col-15of16 {
  width: 93.75%;
}

.col-pull-1of1, .col-pull-2of2, .col-pull-3of3, .col-pull-4of4, .col-pull-5of5, .col-pull-6of6, .col-pull-8of8, .col-pull-10of10, .col-pull-12of12, .col-pull-16of16 {
  left: -100%;
}

.col-pull-1of2, .col-pull-2of4, .col-pull-3of6, .col-pull-4of8, .col-pull-5of10, .col-pull-6of12, .col-pull-8of16 {
  left: -50%;
}

.col-pull-1of3, .col-pull-2of6, .col-pull-4of12 {
  left: -33.33333333%;
}

.col-pull-2of3, .col-pull-4of6, .col-pull-8of12 {
  left: -66.66666667%;
}

.col-pull-1of4, .col-pull-2of8, .col-pull-3of12, .col-pull-4of16 {
  left: -25%;
}

.col-pull-3of4, .col-pull-6of8, .col-pull-9of12, .col-pull-12of16 {
  left: -75%;
}

.col-pull-1of5, .col-pull-2of10 {
  left: -20%;
}

.col-pull-2of5, .col-pull-4of10 {
  left: -40%;
}

.col-pull-3of5, .col-pull-6of10 {
  left: -60%;
}

.col-pull-4of5, .col-pull-8of10 {
  left: -80%;
}

.col-pull-1of6, .col-pull-2of12 {
  left: -16.66666667%;
}

.col-pull-5of6, .col-pull-10of12 {
  left: -83.33333333%;
}

.col-pull-1of8, .col-pull-2of16 {
  left: -12.5%;
}

.col-pull-3of8, .col-pull-6of16 {
  left: -37.5%;
}

.col-pull-5of8, .col-pull-10of16 {
  left: -62.5%;
}

.col-pull-7of8, .col-pull-14of16 {
  left: -87.5%;
}

.col-pull-1of10 {
  left: -10%;
}

.col-pull-3of10 {
  left: -30%;
}

.col-pull-7of10 {
  left: -70%;
}

.col-pull-9of10 {
  left: -90%;
}

.col-pull-1of12 {
  left: -8.33333333%;
}

.col-pull-5of12 {
  left: -41.66666667%;
}

.col-pull-7of12 {
  left: -58.33333333%;
}

.col-pull-11of12 {
  left: -91.66666667%;
}

.col-pull-1of16 {
  left: -6.25%;
}

.col-pull-3of16 {
  left: -18.75%;
}

.col-pull-5of16 {
  left: -31.25%;
}

.col-pull-7of16 {
  left: -43.75%;
}

.col-pull-9of16 {
  left: -56.25%;
}

.col-pull-11of16 {
  left: -68.75%;
}

.col-pull-13of16 {
  left: -81.25%;
}

.col-pull-15of16 {
  left: -93.75%;
}

.col-push-1of1, .col-push-2of2, .col-push-3of3, .col-push-4of4, .col-push-5of5, .col-push-6of6, .col-push-8of8, .col-push-10of10, .col-push-12of12, .col-push-16of16 {
  left: 100%;
}

.col-push-1of2, .col-push-2of4, .col-push-3of6, .col-push-4of8, .col-push-5of10, .col-push-6of12, .col-push-8of16 {
  left: 50%;
}

.col-push-1of3, .col-push-2of6, .col-push-4of12 {
  left: 33.33333333%;
}

.col-push-2of3, .col-push-4of6, .col-push-8of12 {
  left: 66.66666667%;
}

.col-push-1of4, .col-push-2of8, .col-push-3of12, .col-push-4of16 {
  left: 25%;
}

.col-push-3of4, .col-push-6of8, .col-push-9of12, .col-push-12of16 {
  left: 75%;
}

.col-push-1of5, .col-push-2of10 {
  left: 20%;
}

.col-push-2of5, .col-push-4of10 {
  left: 40%;
}

.col-push-3of5, .col-push-6of10 {
  left: 60%;
}

.col-push-4of5, .col-push-8of10 {
  left: 80%;
}

.col-push-1of6, .col-push-2of12 {
  left: 16.66666667%;
}

.col-push-5of6, .col-push-10of12 {
  left: 83.33333333%;
}

.col-push-1of8, .col-push-2of16 {
  left: 12.5%;
}

.col-push-3of8, .col-push-6of16 {
  left: 37.5%;
}

.col-push-5of8, .col-push-10of16 {
  left: 62.5%;
}

.col-push-7of8, .col-push-14of16 {
  left: 87.5%;
}

.col-push-1of10 {
  left: 10%;
}

.col-push-3of10 {
  left: 30%;
}

.col-push-7of10 {
  left: 70%;
}

.col-push-9of10 {
  left: 90%;
}

.col-push-1of12 {
  left: 8.33333333%;
}

.col-push-5of12 {
  left: 41.66666667%;
}

.col-push-7of12 {
  left: 58.33333333%;
}

.col-push-11of12 {
  left: 91.66666667%;
}

.col-push-1of16 {
  left: 6.25%;
}

.col-push-3of16 {
  left: 18.75%;
}

.col-push-5of16 {
  left: 31.25%;
}

.col-push-7of16 {
  left: 43.75%;
}

.col-push-9of16 {
  left: 56.25%;
}

.col-push-11of16 {
  left: 68.75%;
}

.col-push-13of16 {
  left: 81.25%;
}

.col-push-15of16 {
  left: 93.75%;
}

@media (max-width: 960px) and (min-width: 720px) {
  .responsive .col-tablet-1of1, .responsive .col-tablet-2of2, .responsive .col-tablet-3of3, .responsive .col-tablet-4of4, .responsive .col-tablet-5of5, .responsive .col-tablet-6of6, .responsive .col-tablet-8of8, .responsive .col-tablet-10of10, .responsive .col-tablet-12of12, .responsive .col-tablet-16of16 {
    width: 100%;
  }

  .responsive .col-tablet-1of2, .responsive .col-tablet-2of4, .responsive .col-tablet-3of6, .responsive .col-tablet-4of8, .responsive .col-tablet-5of10, .responsive .col-tablet-6of12, .responsive .col-tablet-8of16 {
    width: 50%;
  }

  .responsive .col-tablet-1of3, .responsive .col-tablet-2of6, .responsive .col-tablet-4of12 {
    width: 33.33333333%;
  }

  .responsive .col-tablet-2of3, .responsive .col-tablet-4of6, .responsive .col-tablet-8of12 {
    width: 66.66666667%;
  }

  .responsive .col-tablet-1of4, .responsive .col-tablet-2of8, .responsive .col-tablet-3of12, .responsive .col-tablet-4of16 {
    width: 25%;
  }

  .responsive .col-tablet-3of4, .responsive .col-tablet-6of8, .responsive .col-tablet-9of12, .responsive .col-tablet-12of16 {
    width: 75%;
  }

  .responsive .col-tablet-1of5, .responsive .col-tablet-2of10 {
    width: 20%;
  }

  .responsive .col-tablet-2of5, .responsive .col-tablet-4of10 {
    width: 40%;
  }

  .responsive .col-tablet-3of5, .responsive .col-tablet-6of10 {
    width: 60%;
  }

  .responsive .col-tablet-4of5, .responsive .col-tablet-8of10 {
    width: 80%;
  }

  .responsive .col-tablet-1of6, .responsive .col-tablet-2of12 {
    width: 16.66666667%;
  }

  .responsive .col-tablet-5of6, .responsive .col-tablet-10of12 {
    width: 83.33333333%;
  }

  .responsive .col-tablet-1of8, .responsive .col-tablet-2of16 {
    width: 12.5%;
  }

  .responsive .col-tablet-3of8, .responsive .col-tablet-6of16 {
    width: 37.5%;
  }

  .responsive .col-tablet-5of8, .responsive .col-tablet-10of16 {
    width: 62.5%;
  }

  .responsive .col-tablet-7of8, .responsive .col-tablet-14of16 {
    width: 87.5%;
  }

  .responsive .col-tablet-1of10 {
    width: 10%;
  }

  .responsive .col-tablet-3of10 {
    width: 30%;
  }

  .responsive .col-tablet-7of10 {
    width: 70%;
  }

  .responsive .col-tablet-9of10 {
    width: 90%;
  }

  .responsive .col-tablet-1of12 {
    width: 8.33333333%;
  }

  .responsive .col-tablet-5of12 {
    width: 41.66666667%;
  }

  .responsive .col-tablet-7of12 {
    width: 58.33333333%;
  }

  .responsive .col-tablet-11of12 {
    width: 91.66666667%;
  }

  .responsive .col-tablet-1of16 {
    width: 6.25%;
  }

  .responsive .col-tablet-3of16 {
    width: 18.75%;
  }

  .responsive .col-tablet-5of16 {
    width: 31.25%;
  }

  .responsive .col-tablet-7of16 {
    width: 43.75%;
  }

  .responsive .col-tablet-9of16 {
    width: 56.25%;
  }

  .responsive .col-tablet-11of16 {
    width: 68.75%;
  }

  .responsive .col-tablet-13of16 {
    width: 81.25%;
  }

  .responsive .col-tablet-15of16 {
    width: 93.75%;
  }
}

.col-3-wide {
  width: 33.33333333%;
}

@media (max-width: 719px) {
  .responsive [class*=col-] {
    float: none;
    left: 0;
    width: auto;
  }
}

/* Header component */
.dac-header {
  background: #fff;
  height: 64px;
  margin: 0 -20px;
}

.about .dac-header, .distribute .dac-header, .develop .dac-header {
  height: 128px;
}

.dac-header-inner {
  background: #fff;
  box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.07);
  box-sizing: border-box;
  height: 64px;
}

.dac-header.dac-sub .dac-header-inner {
  border-bottom: 1px solid #e5e5e5;
  box-shadow: none;
}

.dac-header.is-sticky .dac-header-inner {
  left: 0;
  position: fixed;
  top: 0;
  right: 0;
  -webkit-animation: .3s dac-header-show;
  animation: .3s dac-header-show;
  z-index: 52;
}

.dac-header-logo {
  border-right: 1px solid #e5e5e5;
  display: block;
  font-size: 20px;
  font-weight: 300;
  float: left;
  letter-spacing: .3px;
  line-height: 36px;
  margin-right: 16px;
  padding: 14px 24px 14px;
}

.dac-header-logo:link, .dac-header-logo:visited, .dac-header-logo:hover, .dac-header-logo:active {
  color: #444;
}

.dac-header-logo-image {
  margin-right: 5px;
  vertical-align: top;
}

.dac-header-consoleBtn {
  border: 1px solid #c5c5c5;
  border-radius: 4px;
  box-shadow: 0 1px 1px 0 rgba(0, 0, 0, 0.11);
  background: #fff;
  float: right;
  font-size: 14px;
  line-height: 28px;
  margin: 17px 30px 17px 10px;
  padding: 0 10px;
  position: relative;
  z-index: 52;
}

.dac-header-consoleBtn > .dac-sprite {
  margin-right: 5px;
}

.dac-header-consoleBtn:link, .dac-header-consoleBtn:visited, .dac-header-consoleBtn:hover, .dac-header-consoleBtn:active {
  color: #666;
}

.dac-header-consoleBtn:focus {
  background: rgba(63, 81, 181, 0.1);
  outline: 0;
}

@media (max-width: 719px) {
  .responsive .dac-header {
    height: 64px;
    text-align: center;
  }

  .responsive .dac-header-logo {
    border-right: 0;
    display: inline-block;
    margin-right: 0;
    float: none;
  }

  .responsive .dac-header.dac-sub {
    display: none;
  }

  .responsive .dac-header-consoleBtn {
    display: none;
  }
}

@-webkit-keyframes dac-header-show {
  0% {
    -webkit-transform: translateY(-64px);
    transform: translateY(-64px);
  }

  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

@keyframes dac-header-show {
  0% {
    -webkit-transform: translateY(-64px);
    transform: translateY(-64px);
  }

  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

/* Header Breadcrumbs component */
.dac-header-crumbs {
  display: none;
  list-style-type: none;
  margin: 0;
}

.is-sticky .dac-header-crumbs {
  display: block;
}

.dac-header-crumbs-item {
  float: left;
  position: relative;
  margin: 0;
  padding-left: 10px;
}

.dac-header-crumbs-item:before {
  color: #444;
  content: '>';
  font-weight: 300;
  font-size: 20px;
  left: 0;
  line-height: 28px;
  padding: 16px 0;
  position: absolute;
}

.dac-header-crumbs-item:first-child:before {
  content: none;
}

.dac-header-crumbs-link {
  display: block;
  font-size: 16px;
  font-weight: 300;
  line-height: 32px;
  padding: 16px 16px;
  -webkit-transition: background-color 0.35s cubic-bezier(0.35, 0, 0.25, 1);
  transition: background-color 0.35s cubic-bezier(0.35, 0, 0.25, 1);
}

.dac-header-crumbs-link:link, .dac-header-crumbs-link:visited, .dac-header-crumbs-link:hover, .dac-header-crumbs-link:active {
  color: #444;
}

.dac-header-crumbs-link:focus {
  background: rgba(63, 81, 181, 0.1);
  outline: 0;
}

.dac-header-crumbs-link.current {
  color: #6ab344;
  font-weight: 400;
}

@media (max-width: 719px) {
  .responsive .dac-header-crumbs {
    display: none;
  }
}

/* Header site search component */
.dac-header-search {
  background: #fff;
  border-left: 1px solid #e5e5e5;
  display: block;
  float: right;
  height: 28px;
  padding: 18px 0;
  position: relative;
  overflow: hidden;
  -webkit-transition: width 0.4s ease, left 0.4s ease;
  transition: width 0.4s ease, left 0.4s ease;
  width: 64px;
  z-index: 52;
}

.dac-header-search:hover, .dac-header-search.active {
  width: 228px;
}

.dac-header-search-inner {
  width: 228px;
}

.dac-header-search-btn {
  background: url(../images/icon_search.png) 50% 0 no-repeat;
  height: 28px;
  position: absolute;
  width: 64px;
}

.dac-header-search:hover .dac-header-search-btn {
  background-position: 50% -28px;
}

.dac-header-search-form {
  left: 54px;
  opacity: 0;
  position: absolute;
  right: 24px;
  top: 20px;
  -webkit-transition: opacity .4s;
  transition: opacity .4s;
}

.dac-header-search:hover .dac-header-search-form, .dac-header-search.active .dac-header-search-form {
  opacity: 1;
}

.dac-header-search-input {
  background-color: transparent;
  border: none;
  border-bottom: 1px solid #CCC;
  box-sizing: border-box;
  color: #2f2f2f;
  font-size: 14px;
  height: 24px;
  outline: none;
  padding: 4px 20px 4px 0;
  width: 100%;
  z-index: 1500;
}

.dac-header-search:hover .dac-header-search-input {
  border-bottom: 1px solid #33b5e5;
}

.dac-header-search-input:focus {
  color: #222;
  font-weight: bold;
  outline: 0;
}

.dac-header-search-close {
  position: absolute;
  right: 4px;
  bottom: 4px;
  width: 16px;
  height: 16px;
  margin: 0;
  text-indent: -1000em;
  background: url(../images/close.png) no-repeat 0 0;
  z-index: 9999;
}

.dac-header-search-close:hover, .dac-header-search-close:focus {
  background-position: -16px 0;
  cursor: pointer;
}

@media (max-width: 719px) {
  .responsive .dac-header-search {
    position: absolute;
    left: calc(100% - 64px);
    right: 0;
    top: 0;
    width: auto;
  }

  .responsive .dac-header-search:hover, .responsive .dac-header-search.active {
    left: 64px;
    width: auto;
  }
}

/* Main navigation component */
.is-sticky .dac-nav, .dac-nav-head, .dac-nav-toggle {
  display: none;
}

.dac-nav-list {
  list-style-type: none;
  left: 192px;
  margin: 0;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 51;
}

.dac-nav-item {
  float: left;
  margin: 0;
}

.dac-nav-head {
  margin-bottom: 10px;
}

.dac-nav-dimmer {
  background: #000;
  display: none;
  height: 100%;
  left: 0;
  opacity: 0;
  position: fixed;
  top: 0;
  -webkit-transition: visibility 0s linear .3s, opacity .3s linear;
  transition: visibility 0s linear .3s, opacity .3s linear;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  visibility: hidden;
  width: 100%;
  z-index: 52;
}

.dac-nav-hamburger {
  display: inline-block;
  height: 15px;
  width: 16px;
}

.dac-nav-hamburger-top, .dac-nav-hamburger-mid, .dac-nav-hamburger-bot {
  background: #999;
  display: block;
  height: 3px;
  margin: 3px 0 0;
  width: 100%;
}

.dac-nav-link {
  display: block;
  font-size: 16px;
  font-weight: 300;
  letter-spacing: .24px;
  line-height: 32px;
  padding: 18px 16px 14px;
  -webkit-transition: background-color 0.35s cubic-bezier(0.35, 0, 0.25, 1);
  transition: background-color 0.35s cubic-bezier(0.35, 0, 0.25, 1);
}

.dac-nav-link:link, .dac-nav-link:visited, .dac-nav-link:hover, .dac-nav-link:active {
  color: #444;
}

.dac-nav-link:focus {
  background: rgba(63, 81, 181, 0.1);
  outline: 0;
}

.dac-nav-link.has-subnav, .dac-nav-link.selected {
  border-bottom: 3px solid #6ab344;
  font-weight: 500;
  padding-bottom: 11px;
}

.dac-nav-secondary {
  border-bottom: 1px solid #e5e5e5;
  display: none;
  left: -192px;
  list-style-type: none;
  margin: 0;
  position: absolute;
  top: 64px;
  right: 0;
}

.dac-nav-link.has-subnav + .dac-nav-secondary, .dac-nav-link.selected + .dac-nav-secondary {
  display: block;
}

.dac-nav-secondary .dac-nav-link {
  padding: 17px 16px 15px;
}

.dac-nav-secondary .dac-nav-link:link, .dac-nav-secondary .dac-nav-link:visited, .dac-nav-secondary .dac-nav-link:hover, .dac-nav-secondary .dac-nav-link:active {
  color: #666;
}

@media (min-width: 720px) and (max-width: 979px) {
  .responsive .dac-nav-secondary .dac-nav-link {
    padding-left: 8px;
    padding-right: 8px;
  }
}

.dac-nav-secondary .dac-nav-item:first-child .dac-nav-link {
  padding-left: 20px;
}

.dac-nav-secondary .dac-nav-link.selected {
  border: none;
  font-weight: 700;
}

@media (max-width: 719px) {
  .responsive.dac-nav-open {
    overflow: hidden;
  }

  .responsive .dac-nav-toggle {
    border-right: 1px solid #e5e5e5;
    display: inline-block;
    position: absolute;
    left: 0;
    line-height: 64px;
    text-align: center;
    width: 64px;
  }

  .responsive .dac-nav-head, .responsive .dac-nav-secondary, .responsive .dac-nav-dimmer {
    display: block;
  }

  .responsive .dac-nav-dimmer.dac-nav-open {
    opacity: .8;
    -webkit-transition-delay: 0s;
    transition-delay: 0s;
    visibility: visible;
  }

  .responsive .dac-nav-list {
    background: #fff;
    left: auto;
    padding: 0 0 20px 0;
    position: static;
  }

  .responsive .dac-nav-list {
    bottom: 0;
    max-width: 280px;
    overflow-y: auto;
    position: fixed;
    right: 100%;
    top: 0;
    -webkit-transition: -webkit-transform .3s ease;
    transition: transform .3s ease;
    width: 85%;
    z-index: 52;
  }

  .responsive .dac-nav-list.dac-nav-open {
    -webkit-transform: translate3d(100%, 0, 0);
    transform: translate3d(100%, 0, 0);
  }

  .responsive .dac-nav-secondary {
    border: none;
    position: static;
    width: 100%;
  }

  .responsive .dac-nav-item {
    float: none;
  }

  .responsive .dac-nav-link {
    display: block;
    font-size: 12px;
    font-weight: 600;
    color: #333;
    padding: 0 20px;
  }

  .responsive .dac-nav-link.selected {
    color: #09f;
  }

  .responsive .dac-nav-secondary .dac-nav-link {
    font-weight: 400;
    margin-left: 20px;
    margin-right: 20px;
  }

  .responsive .dac-nav-link.has-subnav, .responsive .dac-nav-link.selected {
    border: none;
  }

  .responsive .dac-logo-image {
    margin-right: 5px;
    vertical-align: top;
  }

  .responsive .dac-nav-logo {
    box-shadow: 0 2px 2px rgba(0, 0, 0, 0.04);
    font-size: 20px;
    font-weight: 300;
    letter-spacing: .3px;
    line-height: 36px;
    padding: 14px 24px;
  }

  .responsive .dac-nav-logo:link, .responsive .dac-nav-logo:visited, .responsive .dac-nav-logo:hover, .responsive .dac-nav-logo:active {
    color: #444;
  }
}

.dac-light.dac-hero, .dac-light.dac-section {
  background-color: #eceff1;
}

.dac-gray.dac-hero, .dac-gray.dac-section {
  background-color: #b0bec5;
}

.dac-dark.dac-hero, .dac-dark.dac-section {
  background-color: #37474f;
}

.dac-red.dac-hero, .dac-red.dac-section {
  background-color: #dc4d38;
}

.dac-hero-cta:link, .dac-hero-cta:visited, .dac-section-title, .dac-section-links {
  color: #212121;
  color: rgba(0, 0, 0, 0.87);
}

.dac-invert .dac-hero-cta:link, .dac-invert .dac-hero-cta:visited, .dac-invert .dac-section-title, .dac-invert .dac-section-links {
  color: white;
}

.dac-hero-tag, .dac-hero-description, .dac-section-subtitle {
  color: #757575;
  color: rgba(0, 0, 0, 0.54);
}

.dac-invert .dac-hero-tag, .dac-invert .dac-hero-description, .dac-invert .dac-section-subtitle {
  color: #b2b2b2;
  color: rgba(255, 255, 255, 0.7);
}

/* Hero carousel */
.dac-hero {
  background-color: #fff;
  background-position: 50% 30%;
  background-size: cover;
  box-sizing: border-box;
  font-size: 16px;
  min-height: 550px;
  padding-top: 120px;
}

.dac-hero.dac-darken:before {
  background: rgba(0, 0, 0, 0.3);
  bottom: 0;
  content: '';
  display: block;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.dac-hero.dac-darken .dac-hero-content {
  position: relative;
}

@media (max-width: 719px) {
  .responsive .dac-hero {
    padding-bottom: 20px;
    padding-top: 20px;
  }
}

.dac-hero-tag {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .07em;
  margin-bottom: 2px;
  text-transform: uppercase;
}

.dac-hero-title {
  margin: 0 0 14px;
}

.dac-hero-description {
  margin-bottom: 16px;
}

.dac-hero-cta {
  display: inline-block;
  line-height: 40px;
  margin-right: 20px;
}

.dac-hero-cta:hover {
  color: currentColor;
}

.dac-hero-cta .dac-sprite {
  margin-left: -8px;
}

.dac-hero-figure {
  text-align: center;
}

.dac-hero-carousel {
  height: 550px;
  position: relative;
}

.dac-hero-carousel > .dac-hero {
  bottom: 0;
  left: 0;
  position: absolute;
  right: 0;
  top: 0;
}

.dac-hero-carousel > .dac-hero, .dac-hero-carousel > .dac-hero .wrap {
  opacity: 0;
}

.dac-hero-carousel > .dac-hero.active {
  opacity: 1;
  -webkit-transition: opacity .5s;
  transition: opacity .5s;
  z-index: 1;
}

.dac-hero-carousel > .dac-hero.active .wrap {
  opacity: 1;
  -webkit-transition: opacity .5s .5s;
  transition: opacity .5s .5s;
}

.dac-hero-carousel > .dac-hero.out, .dac-hero-carousel > .dac-hero.out .wrap {
  -webkit-transition: opacity 0s .5s;
  transition: opacity 0s .5s;
  opacity: 0;
}

.dac-hero-carousel-pagination {
  bottom: 33px;
  left: 0;
  position: absolute;
  right: 0;
  z-index: 51;
}

@media (max-width: 719px) {
  .responsive .dac-hero-carousel-pagination {
    text-align: right;
    bottom: 20px;
  }
}

.dac-pagination {
  list-style: none;
  margin: 0 -3px;
}

.dac-pagination-item {
  background-color: rgba(153, 153, 153, 0.4);
  border-radius: 50%;
  cursor: pointer;
  display: inline-block;
  height: 14px;
  margin: 0 3px;
  overflow: hidden;
  text-indent: 100%;
  -webkit-transition: background-color .1s ease-in;
  transition: background-color .1s ease-in;
  white-space: nowrap;
  width: 14px;
}

.dac-pagination-item:hover {
  background-color: rgba(153, 153, 153, 0.6);
}

.dac-pagination-item.active, .dac-pagination-item.active:hover {
  background-color: #6ab344;
}

.dac-invert .dac-pagination-item {
  background-color: rgba(204, 204, 204, 0.2);
}

.dac-invert .dac-pagination-item:hover {
  background-color: rgba(153, 153, 153, 0.4);
}

/* Form component */
.dac-form {
  font-size: 16px;
  /* Modal Responsive */
}

.dac-form a {
  color: #000;
}

.dac-form-aside {
  display: inline-block;
  font-size: 12px;
  margin-top: 0;
}

.dac-form-required {
  color: #ef4300;
}

.dac-form-fieldset {
  padding: 0;
}

.dac-form-legend {
  display: block;
  font-weight: 500;
  margin: 20px 0;
  padding: 0;
  width: 100%;
}

.dac-form-legend > .dac-form-required {
  float: right;
  margin-top: 3px;
}

.dac-form-input {
  border: 0 solid #e3e3e3;
  border-bottom-width: 1px;
  display: block;
  outline: 0;
  padding: 8px 0;
  -webkit-transition: border-color .2s;
  transition: border-color .2s;
  width: 100%;
}

.dac-form-input-group {
  position: relative;
}

.dac-form-input-group > .dac-form-required {
  display: block;
  bottom: 3px;
  position: absolute;
  right: 0;
}

.dac-form-input:focus {
  border-bottom-color: #09f;
}

.dac-form-floatlabel {
  display: block;
  margin-top: 5px;
  -webkit-transform-origin: 0 100%;
  -ms-transform-origin: 0 100%;
  transform-origin: 0 100%;
  -webkit-transform: translate3d(0, 30px, 0) scale(1);
  transform: translate3d(0, 30px, 0) scale(1);
  -webkit-transition: -webkit-transform .2s;
  transition: transform .2s;
}

.dac-focused > .dac-form-floatlabel, .dac-has-value > .dac-form-floatlabel {
  -webkit-transform: translate3d(0, 0, 0) scale(.75);
  transform: translate3d(0, 0, 0) scale(.75);
}

.dac-form-radio, .dac-form-checkbox {
  display: none;
}

.dac-form-radio-group, .dac-form-checkbox-group {
  display: table;
  margin-top: 10px;
}

.dac-form-radio-button, .dac-form-checkbox-button {
  box-sizing: border-box;
  cursor: pointer;
  display: table-cell;
  float: left;
  height: 18px;
  margin: 2px 10px 0 0;
  position: relative;
  width: 18px;
}

.dac-form-radio-button::after, .dac-form-radio-button::before, .dac-form-checkbox-button::after, .dac-form-checkbox-button::before {
  box-sizing: border-box;
  content: '';
  border-radius: 50%;
  display: block;
  height: 100%;
  position: absolute;
  width: 100%;
}

.dac-form-radio-button::before, .dac-form-checkbox-button::before {
  background: rgba(0, 0, 0, 0.7);
  -webkit-transform: translateZ(0) scale(0);
  transform: translateZ(0) scale(0);
  -webkit-transition: -webkit-transform .3s;
  transition: transform .3s;
}

.dac-form-radio:checked + .dac-form-radio-button::before, .dac-form-checkbox:checked + .dac-form-checkbox-button::before {
  -webkit-transform: translateZ(0) scale(.5);
  transform: translateZ(0) scale(.5);
}

.dac-form-radio-button::after, .dac-form-checkbox-button::after {
  border: 2px solid rgba(0, 0, 0, 0.7);
}

.dac-form-checkbox-button::after, .dac-form-checkbox-button::before {
  border-radius: 0;
}

@media (max-width: 719px) {
  .responsive .dac-form-legend {
    margin-bottom: 0;
  }
}

/* Media component */
.dac-media {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-flex-flow: row wrap;
  -ms-flex-flow: row wrap;
  flex-flow: row wrap;
}

.dac-media-figure {
  margin: 0;
}

.dac-media-body {
  -webkit-box-flex: 1;
  -webkit-flex: 1;
  -ms-flex: 1;
  flex: 1;
}

.no-flexbox .dac-media {
  display: table;
  width: 100%;
}

.no-flexbox .dac-media-body, .no-flexbox .dac-media-figure {
  display: table-cell;
}

.no-flexbox .dac-media-figure {
  padding: 0;
}

.no-flexbox .dac-media-body {
  width: 100%;
}

/* Modal component */
.dac-modal {
  /* Modal dimmer */
  /* Modal Header */
  /* Modal window */
  /* Modal Action button */
  /* Modal Footer */
  /* Modal Responsive */
}

.dac-modal-open {
  overflow: hidden;
}

.dac-modal-dimmer {
  background: #000;
  height: 100%;
  left: 0;
  opacity: 0;
  position: fixed;
  top: 0;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  -webkit-transition: visibility 0s linear .3s, opacity .3s linear;
  transition: visibility 0s linear .3s, opacity .3s linear;
  visibility: hidden;
  width: 100%;
  z-index: 51;
}

.dac-modal-dimmer.dac-active {
  opacity: .8;
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
  visibility: visible;
}

.dac-modal-header {
  background: #00695c;
  margin: -35px -35px 0;
  padding: 35px 35px 30px;
  position: relative;
}

.dac-modal-header-close {
  background: none;
  border: none;
  cursor: pointer;
  line-height: 0;
  outline: 0;
  opacity: .7;
  padding: 8px;
  position: absolute;
  right: 5px;
  -webkit-transition: background-color .3s;
  transition: background-color .3s;
  top: 5px;
}

.dac-modal-header-close:active {
  background: rgba(255, 255, 255, 0.2);
}

.dac-modal-header-title {
  color: #fff;
  font-size: 24px;
  font-weight: 300;
  line-height: 32px;
  margin: 0;
  padding-right: 150px;
}

.dac-modal-header-subtitle {
  bottom: 23px;
  color: #fff;
  display: inline-block;
  font: inherit;
  font-size: 14px;
  opacity: .8;
  position: absolute;
  right: 35px;
}

.dac-modal-header hr {
  display: none;
}

.dac-modal-window {
  background: #fff;
  border-top-left-radius: 6px;
  border-top-right-radius: 6px;
  box-sizing: border-box;
  left: 50%;
  margin-left: -480px;
  max-width: 960px;
  opacity: 0;
  padding: 35px 35px 17.5px;
  position: fixed;
  top: 50%;
  -webkit-transition: visibility 0s linear .3s, opacity .3s linear;
  transition: visibility 0s linear .3s, opacity .3s linear;
  -webkit-transform: translate(0, -50%);
  -ms-transform: translate(0, -50%);
  transform: translate(0, -50%);
  visibility: hidden;
  width: 100%;
  z-index: 51;
}

.dac-modal-window.dac-active {
  opacity: 1;
  -webkit-transition-delay: 0s;
  transition-delay: 0s;
  visibility: visible;
}

.dac-modal-action {
  bottom: 0;
  position: absolute;
  right: 0;
}

.dac-modal-iframe {
  display: none;
}

.dac-modal-footer {
  margin-top: 35px;
  position: relative;
}

@media (max-width: 1010px) {
  .responsive .dac-modal-window {
    bottom: auto;
    left: 10px;
    margin: 10px;
    right: 10px;
    top: 50%;
    -webkit-transform: translate3d(0, -50%, 0);
    transform: translate3d(0, -50%, 0);
    width: auto;
  }
}

@media (max-width: 719px) {
  .responsive .dac-modal-header {
    margin: -10px -10px 10px;
    padding-bottom: 10px;
    padding-left: 10px;
    padding-right: 10px;
  }

  .responsive .dac-modal-header-title {
    font-size: 16px;
    line-height: 26px;
    padding: 0;
  }

  .responsive .dac-modal-header-subtitle {
    display: inline-block;
    margin: 0;
    position: static;
    text-align: right;
    width: 100%;
  }

  .responsive .dac-modal-window {
    border-radius: 0;
    bottom: auto;
    margin: 10px;
    left: 0;
    padding: 10px;
    top: 0;
    -webkit-transform: none;
    -ms-transform: none;
    transform: none;
    width: auto;
  }

  .responsive .dac-modal-footer {
    border-top: 1px solid #e3e3e3;
    margin: 20px -10px 0;
    padding: 30px 10px;
  }

  .responsive .dac-modal-action {
    display: block;
    margin: 40px auto 0;
    position: static;
  }
}

.newsletter-checkboxes {
  padding-top: 10px;
}

.dac-expand, .dac-section {
  margin-left: -20px;
  margin-right: -20px;
  padding-left: 20px;
  padding-right: 20px;
}

@media (max-width: 719px) {
  .responsive .dac-expand, .responsive .dac-section {
    margin-left: -10px;
    margin-right: -10px;
    padding-left: 10px;
    padding-right: 10px;
  }
}

.dac-invert {
  color: #b2b2b2;
  color: rgba(255, 255, 255, 0.7);
}

.dac-invert h1, .dac-invert h2, .dac-invert h3 {
  color: #fff;
}

.dac-light.dac-hero, .dac-light.dac-section {
  background-color: #eceff1;
}

.dac-gray.dac-hero, .dac-gray.dac-section {
  background-color: #b0bec5;
}

.dac-dark.dac-hero, .dac-dark.dac-section {
  background-color: #37474f;
}

.dac-red.dac-hero, .dac-red.dac-section {
  background-color: #dc4d38;
}

.dac-hero-cta:link, .dac-hero-cta:visited, .dac-section-title, .dac-section-links {
  color: #212121;
  color: rgba(0, 0, 0, 0.87);
}

.dac-invert .dac-hero-cta:link, .dac-invert .dac-hero-cta:visited, .dac-invert .dac-section-title, .dac-invert .dac-section-links {
  color: white;
}

.dac-hero-tag, .dac-hero-description, .dac-section-subtitle {
  color: #757575;
  color: rgba(0, 0, 0, 0.54);
}

.dac-invert .dac-hero-tag, .dac-invert .dac-hero-description, .dac-invert .dac-section-subtitle {
  color: #b2b2b2;
  color: rgba(255, 255, 255, 0.7);
}

.dac-section {
  background-position: 50% 50%;
  background-size: cover;
  padding-bottom: 84px;
  padding-top: 84px;
  position: relative;
}

.dac-section.dac-small {
  padding-bottom: 32px;
  padding-top: 32px;
}

.dac-section-title {
  text-align: center;
  margin-bottom: 40px;
  margin-top: 0;
}

.dac-section-subtitle {
  font-size: 16px;
  margin-bottom: 40px;
  margin-top: -24px;
  text-align: center;
}

.dac-section-links {
  font-size: 16px;
  list-style: none;
  line-height: 40px;
  margin: 16px 0 0;
  text-align: center;
}

@media (max-width: 719px) {
  .responsive .dac-section-links {
    margin-left: -8px;
    text-align: left;
  }
}

.dac-section-link {
  display: inline-block;
  margin: 0 32px;
}

@media (max-width: 719px) {
  .responsive .dac-section-link {
    display: block;
    margin: 0;
  }
}

.dac-section-link a:link, .dac-section-link a:visited {
  color: inherit;
}

/*
SCSS variables are information about icon's compiled state, stored under its original file name

.icon-home {
  width: $icon-home-width;
}

The large array-like variables contain all information about a single icon
$icon-home: x y offset_x offset_y width height total_width total_height image_path;

At the bottom of this section, we provide information about the spritesheet itself
$spritesheet: width height image $spritesheet-sprites;
*/
.dac-sprite, #tb li:before, #qv li:before {
  background-image: url(/assets/images/sprite.png);
  display: inline-block;
  vertical-align: middle; }
  @media screen and (min-device-pixel-ratio: 1.5) {
    .dac-sprite, #tb li:before, #qv li:before {
      background-image: url(/assets/images/sprite-2x.png);
      background-size: 50% 50%; } }

.dac-sprite.dac-auto-chevron {
  background-position: 0px -38px;
  height: 24px;
  width: 24px;
  vertical-align: -6px; }
  .dac-invert .dac-sprite.dac-auto-chevron {
    background-position: -26px -38px;
    height: 24px;
    width: 24px; }
.dac-sprite.dac-auto-chevron-large {
  background-position: -38px 0px;
  height: 36px;
  width: 36px;
  vertical-align: -10px; }
  .dac-invert .dac-sprite.dac-auto-chevron-large {
    background-position: 0px 0px;
    height: 36px;
    width: 36px; }

.dac-sprite.dac-arrow-right {
  background-position: -76px -35px;
  height: 18px;
  width: 11px; }

.dac-sprite.dac-chevron-large-right-black {
  background-position: -38px 0px;
  height: 36px;
  width: 36px; }

.dac-sprite.dac-chevron-large-right-white {
  background-position: 0px 0px;
  height: 36px;
  width: 36px; }

.dac-sprite.dac-chevron-right-black {
  background-position: 0px -38px;
  height: 24px;
  width: 24px; }

.dac-sprite.dac-chevron-right-white {
  background-position: -26px -38px;
  height: 24px;
  width: 24px; }

.dac-sprite.dac-close {
  background-position: -54px -64px;
  height: 12px;
  width: 12px; }

.dac-sprite.dac-google-play {
  background-position: -52px -38px;
  height: 18px;
  width: 16px; }

.dac-sprite.dac-gplus {
  background-position: -76px 0px;
  height: 17px;
  width: 16px; }

.dac-sprite.dac-mail {
  background-position: -36px -64px;
  height: 12px;
  width: 16px; }

.dac-sprite.dac-rss {
  background-position: -20px -64px;
  height: 14px;
  width: 14px; }

.dac-sprite.dac-twitter {
  background-position: -76px -19px;
  height: 14px;
  width: 16px; }

.dac-sprite.dac-youtube {
  background-position: 0px -64px;
  height: 14px;
  width: 18px; }

.dac-visible-mobile-block, .dac-mobile-only, .dac-visible-mobile-inline, .dac-visible-mobile-inline-block, .dac-visible-tablet-block, .dac-visible-tablet-inline, .dac-visible-tablet-inline-block, .dac-visible-desktop-block, .dac-visible-desktop-inline, .dac-visible-desktop-inline-block {
  display: none !important; }

@media (max-width: 719px) {
  .responsive .dac-hidden-mobile {
    display: none !important; }
  .responsive .dac-visible-mobile-block, .responsive .dac-mobile-only {
    display: block !important; }
  .responsive .dac-visible-mobile-inline {
    display: inline !important; }
  .responsive .dac-visible-mobile-inline-block {
    display: inline-block !important; } }

@media (min-width: 720px) and (max-width: 979px) {
  .responsive .dac-hidden-tablet {
    display: none !important; }
  .responsive .dac-visible-tablet-block {
    display: block !important; }
  .responsive .dac-visible-tablet-inline {
    display: inline !important; }
  .responsive .dac-visible-tablet-inline-block {
    display: inline-block !important; } }

@media (min-width: 980px) {
  .responsive .dac-hidden-desktop {
    display: none !important; }
  .responsive .dac-visible-desktop-block {
    display: block !important; }
  .responsive .dac-visible-desktop-inline {
    display: inline !important; }
  .responsive .dac-visible-desktop-inline-block {
    display: inline-block !important; } }

#tb li:before, #qv li:before {
  background-position: 0px -38px;
  height: 24px;
  width: 24px;
  content: '';
  left: -8px;
  opacity: .7;
  position: absolute; }
