Style and template updates to support responsive layout, mobile nav, email signup, updated styles (sync2).

Change-Id: I6e33dd10e1c9e8b378080464b4b70ac6b10df8b7
diff --git a/tools/droiddoc/templates-sdk/assets/css/default.css b/tools/droiddoc/templates-sdk/assets/css/default.css
index a105834..71d15df 100644
--- a/tools/droiddoc/templates-sdk/assets/css/default.css
+++ b/tools/droiddoc/templates-sdk/assets/css/default.css
@@ -30,15 +30,16 @@
   font: 14px/24px Roboto, sans-serif;
   font-weight: 400;
   letter-spacing:.1;
-  min-width: 940px;
-  padding:0 20px; }
-
-body.responsive {
-  min-width: 0;
+  padding:0 20px;
 }
 
 @media (max-width: 719px) {
-  body.responsive {
+  html {
+    /* Disable accidental horizontal overflow. */
+    overflow-x: hidden;
+  }
+
+  body {
     padding: 0 10px;
   }
 }
@@ -96,13 +97,8 @@
 }
 
 #side-nav {
-  min-height:5px; /* silly way to avoid doc floating left when nav goes fixed */
-  margin-bottom:1px;
+  padding-top: 20px;
 }
-#devdoc-nav {
-  outline:none;
-  width:auto;
-  margin: 20px 0 0; }
 
 #devdoc-nav h2 {
   border:0;
@@ -114,12 +110,14 @@
   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;
-  }
+.dac-devdoc-toggle {
+  cursor: pointer;
+  padding: 8px 0;
+}
+
+.scroll-pane {
+  /* Match height of fixed parent. */
+  height: 100%;
 }
 
 #content {
@@ -284,20 +282,23 @@
 }
 pre, code {
   color: #060;
-  font: 13px/18px 'Courier New', monospace;
+  font: 13px/18px Consolas, "Liberation Mono", Menlo, Courier, monospace;
   -webkit-font-smoothing: subpixel-antialiased;
   -moz-osx-font-smoothing: auto;
 }
+code {
+  background-color: #f7f7f7;
+  padding: 3px 5px;
+}
 
 legend {
   display: none;
 }
-a:link, a:visited, .link-color {
-  color: #0ae;
+a, .link-color {
+  color: #039BE5;
   text-decoration: none;
 }
 a:focus, a:hover, a:active {
-  color: #0ae;
   text-decoration: none;
 }
 a.white {
@@ -340,14 +341,6 @@
   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;
@@ -498,12 +491,12 @@
     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 a {
+    color: #039BE5;
   }
   #nav li.selected ul li a {
   /* don't highlight child items */
-    color: #555555; }
+    color: #505050; }
   #nav .nav-section .nav-section .nav-section-header {
     /* no white line between second level sections */
     margin-bottom: 0; }
@@ -702,10 +695,6 @@
       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 {
@@ -766,10 +755,7 @@
   }
 
   .training-nav-top a.start-class-link,
-  .training-nav-top a.start-course-link {
-    width:262px;
-  }
-
+  .training-nav-top a.start-course-link,
   .paging-links a.start-class-link {
     width:100%;
   }
@@ -886,8 +872,8 @@
   }
   
   @media (max-width: 719px) {
-    .responsive ol.class-list ol,
-    .responsive ol.class-list .description {
+    ol.class-list ol,
+    ol.class-list .description {
       float: none;
       margin: 16px;
       padding: 0;
@@ -938,7 +924,7 @@
 }
 ul#title-tabs li a:hover,
 ul#title-tabs li a:active {
-  color:#93C !important;
+  color:#039BE5 !important;
 }
 
 
@@ -1514,189 +1500,6 @@
    ========================================================================== */
 @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;
@@ -1707,24 +1510,6 @@
   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;
@@ -1748,6 +1533,7 @@
   border: 1px solid #e5e5e5;
   box-sizing: border-box;
   float: right;
+  line-height: 16px;
   padding: 5px 0;
   width: 240px;
 }
@@ -1784,6 +1570,28 @@
   margin:4px 4px 10px;
 }
 
+@media (max-width: 719px) {
+  .training-nav-top {
+    left: 0;
+    width: auto;
+  }
+
+  #tb-wrapper {
+    clear: none;
+    float: none;
+    margin-left: 0;
+  }
+
+  #tb {
+    float: none;
+    width: auto;
+  }
+
+  #qv-wrapper {
+    display: none;
+  }
+}
+
 
 /* Dev guide quicknav */
 
@@ -1830,7 +1638,7 @@
 
 #tb li,
 #qv li {
-  margin: 4px 0;
+  margin: 8px 0;
   padding: 0 0 0 16px;
   position: relative;
 }
@@ -2174,16 +1982,11 @@
 
 
 /* nav tree */
-#side-nav, #swapper,
-#nav-tree, #tree-list {
+#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;
@@ -2713,9 +2516,9 @@
 
 @media (max-width: 719px) {
   /* Collapse on mobile. */
-  .responsive div.figure,
-  .responsive div.figure-right,
-  .responsive div.figure-left {
+  div.figure,
+  div.figure-right,
+  div.figure-left {
     float: none;
     clear: none;
     padding: 0;
@@ -3617,7 +3420,7 @@
 }
 .search_filtered .jd-selected,
 .search_filtered .jd-selected a {
-    color:#09C !important;
+    color:#039BE5 !important;
 }
 
 .no-display {
@@ -3840,7 +3643,7 @@
 #searchResults .gsc-tabHeader.gsc-tabhInactive,
 #searchResults .gsc-cursor-page {
   text-decoration:none;
-  color:#0ae;
+  color:#039BE5;
   border: solid 1px #DADADA;
 }
 
@@ -4645,7 +4448,7 @@
 }
 
 .landing-docs .normal-links a {
-  color:#0ae !important;
+  color:#039BE5 !important;
 }
 
 .plusone {
@@ -4752,7 +4555,7 @@
   float: left;
   width: 100%;
   text-align: center;
-  color: #09c !important;
+  color: #039BE5 !important;
 }
 .home-sections ul li a {
   font-weight: bold;
@@ -4921,7 +4724,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .landing-section {
+  .landing-section {
     margin-left: -10px;
     margin-right: -10px;
     padding-left: 10px;
@@ -5038,56 +4841,6 @@
   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;
@@ -5517,26 +5270,26 @@
   display: inline-block;
 }
 
-.actions-bar a {
+.actions-bar .actions a {
   font-size: 24px;
   line-height: 50px;
   color: #fff;
   font-weight: 300;
 }
 
-.actions-bar .dac-sprite {
+.actions-bar .actions .dac-sprite {
   margin: 0 -6px 0 -12px;
   -webkit-transition: all 190ms ease-out;
   transition: all 190ms ease-out;
 }
 
-.actions-bar a:hover .dac-sprite {
+.actions-bar .actions a:hover .dac-sprite {
 
   transform: translateX(5px);
 }
 
 @media (max-width: 719px) {
-  .responsive .actions-bar .actions > div {
+  .actions-bar .actions > div {
     display: block;
   }
 }
@@ -5709,59 +5462,63 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-hidden-mobile {
+  .dac-hidden-mobile {
     display: none !important;
   }
 
-  .responsive .dac-visible-mobile-block, .responsive .dac-mobile-only {
+  .dac-visible-mobile-block, .dac-mobile-only {
     display: block !important;
   }
 
-  .responsive .dac-visible-mobile-inline {
+  .dac-visible-mobile-inline {
     display: inline !important;
   }
 
-  .responsive .dac-visible-mobile-inline-block {
+  .dac-visible-mobile-inline-block {
     display: inline-block !important;
   }
 }
 
 @media (min-width: 720px) and (max-width: 979px) {
-  .responsive .dac-hidden-tablet {
+  .dac-hidden-tablet {
     display: none !important;
   }
 
-  .responsive .dac-visible-tablet-block {
+  .dac-visible-tablet-block {
     display: block !important;
   }
 
-  .responsive .dac-visible-tablet-inline {
+  .dac-visible-tablet-inline {
     display: inline !important;
   }
 
-  .responsive .dac-visible-tablet-inline-block {
+  .dac-visible-tablet-inline-block {
     display: inline-block !important;
   }
 }
 
 @media (min-width: 980px) {
-  .responsive .dac-hidden-desktop {
+  .dac-hidden-desktop {
     display: none !important;
   }
 
-  .responsive .dac-visible-desktop-block {
+  .dac-visible-desktop-block {
     display: block !important;
   }
 
-  .responsive .dac-visible-desktop-inline {
+  .dac-visible-desktop-inline {
     display: inline !important;
   }
 
-  .responsive .dac-visible-desktop-inline-block {
+  .dac-visible-desktop-inline-block {
     display: inline-block !important;
   }
 }
 
+.dac-offset-parent {
+  position: relative !important;
+}
+
 /* New CSS */
 /************ RESOURCE CARDS ******************/
 /* Basic card-styling with shadow */
@@ -5846,7 +5603,7 @@
   color: #898989;
   font-size: 11px;
   font-weight: 700;
-  letter-spacing: 0.77px;
+  letter-spacing: .3px;
   line-height: 20px;
   text-transform: uppercase;
 }
@@ -6546,28 +6303,94 @@
   border-top-color: #7e3794 !important;
 }
 
-.dac-fab {
-  background: #fff;
-  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.21);
+.dac-fab, .button, .landing-button, .dac-button {
+  background: transparent;
+  border: 0;
   box-sizing: border-box;
-  border-radius: 50%;
-  border: none;
+  color: currentColor;
   cursor: pointer;
   display: inline-block;
+  font-weight: 500;
+  font-size: 14px;
+  font-style: inherit;
+  font-variant: inherit;
+  font-family: inherit;
+  letter-spacing: .5px;
+  line-height: 24px;
+  margin: 6px 16px 6px 0;
+  min-width: 88px;
+  outline: 0;
+  padding: 6px 12px;
+  position: relative;
+  text-align: center;
+  text-decoration: none;
+  text-transform: uppercase;
+  -webkit-transition: box-shadow 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+  transition: box-shadow 0.4s cubic-bezier(0.25, 0.8, 0.25, 1), background-color 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
+  -webkit-user-select: none;
+  -moz-user-select: none;
+  -ms-user-select: none;
+  user-select: none;
+  white-space: nowrap;
+}
+
+.button, .landing-button, .dac-button.dac-raised {
+  background-color: #FAFAFA;
+  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.26);
+}
+
+.dac-button.dac-raised.dac-primary, .landing-secondary, .button {
+  background-color: #039bef;
+}
+
+.dac-button.dac-raised.dac-primary:hover, .landing-secondary:hover, .button:hover {
+  background-color: #0288d1;
+}
+
+.dac-button.dac-raised.dac-primary:active, .landing-secondary:active, .button:active {
+  background-color: #0277bd;
+}
+
+.dac-button.dac-raised.dac-red, .landing-primary {
+  background-color: #bf3722;
+}
+
+.dac-button.dac-raised.dac-red:hover, .landing-primary:hover {
+  background-color: #9c2d1c;
+}
+
+.dac-button.dac-raised.dac-red:active, .landing-primary:active {
+  background-color: #822517;
+}
+
+.dac-button.dac-raised.dac-green, .landing-button.green {
+  background-color: #90C653;
+}
+
+.dac-button.dac-raised.dac-primary, .landing-secondary, .button, .dac-button.dac-raised.dac-red, .landing-primary, .dac-button.dac-raised.dac-green, .landing-button.green {
+  color: #fff;
+}
+
+.dac-button.dac-large, .landing-button {
+  padding: 12px 24px;
+}
+
+.dac-fab {
+  background: #fff;
+  box-shadow: 0 2px 5px rgba(0, 0, 0, 0.26);
+  border-radius: 50%;
   font-size: 0;
   height: 36px;
   line-height: 36px;
-  outline: 0;
+  min-width: 0;
+  overflow: hidden;
   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);
+  box-shadow: 0 3px 8px rgba(0, 0, 0, 0.26);
 }
 
 .dac-fab.dac-primary {
@@ -6580,12 +6403,33 @@
   width: 54px;
 }
 
+.dac-scroll-button {
+  height: 54px;
+  line-height: 54px;
+  margin: 0;
+  position: absolute;
+  right: 0;
+  top: -27px;
+  width: 54px;
+  z-index: 1;
+}
+
+@media (max-width: 719px) {
+  .dac-scroll-button {
+    display: none;
+  }
+}
+
 /* Footer component */
 .dac-footer {
+  background-color: #fff;
   border-top: 1px solid #f9f9f9;
+  clear: both;
   color: #999;
   font-size: 12px;
+  margin-top: 40px;
   padding-bottom: 20px;
+  position: relative;
 }
 
 .dac-footer a {
@@ -6605,11 +6449,7 @@
 }
 
 .dac-footer-contact, .dac-footer-social {
-  display: inline;
-}
-
-.dac-footer-social-link + .dac-footer-social-link {
-  margin-left: 8px;
+  display: inline-block;
 }
 
 .dac-footer a.dac-footer-getnews, .dac-footer a.dac-footer-contact-link {
@@ -6617,7 +6457,7 @@
   cursor: pointer;
   font-size: 20px;
   font-weight: 300;
-  margin-right: 24px;
+  margin: 0 8px;
   vertical-align: middle;
 }
 
@@ -6643,9 +6483,7 @@
 
 .dac-footer .locales select {
   background-color: #f9f9f9;
-  border: none;
   border-radius: 0;
-  color: #999;
   font-size: 12px;
   height: auto;
   margin-top: -2px;
@@ -6653,20 +6491,20 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-footer-reachout {
+  .dac-footer-reachout {
     text-align: left;
   }
 
-  .responsive .dac-footer-social {
+  .dac-footer-social {
     display: block;
   }
 
-  .responsive .dac-footer-social-link, .responsive .dac-footer-contact-link {
+  .dac-footer-social-link, .dac-footer-contact-link {
     display: inline-block;
     margin-top: 20px;
   }
 
-  .responsive .dac-footer .locales {
+  .dac-footer .locales {
     display: block;
     float: none;
     margin-top: 15px;
@@ -7265,131 +7103,131 @@
 }
 
 @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 {
+  .col-tablet-1of1, .col-tablet-2of2, .col-tablet-3of3, .col-tablet-4of4, .col-tablet-5of5, .col-tablet-6of6, .col-tablet-8of8, .col-tablet-10of10, .col-tablet-12of12, .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 {
+  .col-tablet-1of2, .col-tablet-2of4, .col-tablet-3of6, .col-tablet-4of8, .col-tablet-5of10, .col-tablet-6of12, .col-tablet-8of16 {
     width: 50%;
   }
 
-  .responsive .col-tablet-1of3, .responsive .col-tablet-2of6, .responsive .col-tablet-4of12 {
+  .col-tablet-1of3, .col-tablet-2of6, .col-tablet-4of12 {
     width: 33.33333333%;
   }
 
-  .responsive .col-tablet-2of3, .responsive .col-tablet-4of6, .responsive .col-tablet-8of12 {
+  .col-tablet-2of3, .col-tablet-4of6, .col-tablet-8of12 {
     width: 66.66666667%;
   }
 
-  .responsive .col-tablet-1of4, .responsive .col-tablet-2of8, .responsive .col-tablet-3of12, .responsive .col-tablet-4of16 {
+  .col-tablet-1of4, .col-tablet-2of8, .col-tablet-3of12, .col-tablet-4of16 {
     width: 25%;
   }
 
-  .responsive .col-tablet-3of4, .responsive .col-tablet-6of8, .responsive .col-tablet-9of12, .responsive .col-tablet-12of16 {
+  .col-tablet-3of4, .col-tablet-6of8, .col-tablet-9of12, .col-tablet-12of16 {
     width: 75%;
   }
 
-  .responsive .col-tablet-1of5, .responsive .col-tablet-2of10 {
+  .col-tablet-1of5, .col-tablet-2of10 {
     width: 20%;
   }
 
-  .responsive .col-tablet-2of5, .responsive .col-tablet-4of10 {
+  .col-tablet-2of5, .col-tablet-4of10 {
     width: 40%;
   }
 
-  .responsive .col-tablet-3of5, .responsive .col-tablet-6of10 {
+  .col-tablet-3of5, .col-tablet-6of10 {
     width: 60%;
   }
 
-  .responsive .col-tablet-4of5, .responsive .col-tablet-8of10 {
+  .col-tablet-4of5, .col-tablet-8of10 {
     width: 80%;
   }
 
-  .responsive .col-tablet-1of6, .responsive .col-tablet-2of12 {
+  .col-tablet-1of6, .col-tablet-2of12 {
     width: 16.66666667%;
   }
 
-  .responsive .col-tablet-5of6, .responsive .col-tablet-10of12 {
+  .col-tablet-5of6, .col-tablet-10of12 {
     width: 83.33333333%;
   }
 
-  .responsive .col-tablet-1of8, .responsive .col-tablet-2of16 {
+  .col-tablet-1of8, .col-tablet-2of16 {
     width: 12.5%;
   }
 
-  .responsive .col-tablet-3of8, .responsive .col-tablet-6of16 {
+  .col-tablet-3of8, .col-tablet-6of16 {
     width: 37.5%;
   }
 
-  .responsive .col-tablet-5of8, .responsive .col-tablet-10of16 {
+  .col-tablet-5of8, .col-tablet-10of16 {
     width: 62.5%;
   }
 
-  .responsive .col-tablet-7of8, .responsive .col-tablet-14of16 {
+  .col-tablet-7of8, .col-tablet-14of16 {
     width: 87.5%;
   }
 
-  .responsive .col-tablet-1of10 {
+  .col-tablet-1of10 {
     width: 10%;
   }
 
-  .responsive .col-tablet-3of10 {
+  .col-tablet-3of10 {
     width: 30%;
   }
 
-  .responsive .col-tablet-7of10 {
+  .col-tablet-7of10 {
     width: 70%;
   }
 
-  .responsive .col-tablet-9of10 {
+  .col-tablet-9of10 {
     width: 90%;
   }
 
-  .responsive .col-tablet-1of12 {
+  .col-tablet-1of12 {
     width: 8.33333333%;
   }
 
-  .responsive .col-tablet-5of12 {
+  .col-tablet-5of12 {
     width: 41.66666667%;
   }
 
-  .responsive .col-tablet-7of12 {
+  .col-tablet-7of12 {
     width: 58.33333333%;
   }
 
-  .responsive .col-tablet-11of12 {
+  .col-tablet-11of12 {
     width: 91.66666667%;
   }
 
-  .responsive .col-tablet-1of16 {
+  .col-tablet-1of16 {
     width: 6.25%;
   }
 
-  .responsive .col-tablet-3of16 {
+  .col-tablet-3of16 {
     width: 18.75%;
   }
 
-  .responsive .col-tablet-5of16 {
+  .col-tablet-5of16 {
     width: 31.25%;
   }
 
-  .responsive .col-tablet-7of16 {
+  .col-tablet-7of16 {
     width: 43.75%;
   }
 
-  .responsive .col-tablet-9of16 {
+  .col-tablet-9of16 {
     width: 56.25%;
   }
 
-  .responsive .col-tablet-11of16 {
+  .col-tablet-11of16 {
     width: 68.75%;
   }
 
-  .responsive .col-tablet-13of16 {
+  .col-tablet-13of16 {
     width: 81.25%;
   }
 
-  .responsive .col-tablet-15of16 {
+  .col-tablet-15of16 {
     width: 93.75%;
   }
 }
@@ -7399,7 +7237,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive [class*=col-] {
+  [class*=col-] {
     float: none;
     left: 0;
     width: auto;
@@ -7413,6 +7251,12 @@
   margin: 0 -20px;
 }
 
+@media (max-width: 719px) {
+  .dac-header {
+    margin: 0 -10px;
+  }
+}
+
 .about .dac-header, .distribute .dac-header, .develop .dac-header {
   height: 128px;
 }
@@ -7422,6 +7266,10 @@
   box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.07);
   box-sizing: border-box;
   height: 64px;
+  left: 0;
+  right: 0;
+  top: 0;
+  z-index: 52;
 }
 
 .dac-header.dac-sub .dac-header-inner {
@@ -7430,13 +7278,9 @@
 }
 
 .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 {
@@ -7488,23 +7332,27 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-header {
-    height: 64px;
+  .dac-header {
+    height: 64px !important;
     text-align: center;
   }
 
-  .responsive .dac-header-logo {
+  .dac-header-inner {
+    position: fixed;
+  }
+
+  .dac-header-logo {
     border-right: 0;
     display: inline-block;
     margin-right: 0;
     float: none;
   }
 
-  .responsive .dac-header.dac-sub {
+  .dac-header.dac-sub {
     display: none;
   }
 
-  .responsive .dac-header-consoleBtn {
+  .dac-header-consoleBtn {
     display: none;
   }
 }
@@ -7591,7 +7439,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-header-crumbs {
+  .dac-header-crumbs {
     display: none;
   }
 }
@@ -7687,7 +7535,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-header-search {
+  .dac-header-search {
     position: absolute;
     left: calc(100% - 64px);
     right: 0;
@@ -7695,7 +7543,7 @@
     width: auto;
   }
 
-  .responsive .dac-header-search:hover, .responsive .dac-header-search.active {
+  .dac-header-search:hover, .dac-header-search.active {
     left: 64px;
     width: auto;
   }
@@ -7806,7 +7654,7 @@
 }
 
 @media (min-width: 720px) and (max-width: 979px) {
-  .responsive .dac-nav-secondary .dac-nav-link {
+  .dac-nav-secondary .dac-nav-link {
     padding-left: 8px;
     padding-right: 8px;
   }
@@ -7822,11 +7670,11 @@
 }
 
 @media (max-width: 719px) {
-  .responsive.dac-nav-open {
+  .dac-nav-open {
     overflow: hidden;
   }
 
-  .responsive .dac-nav-toggle {
+  .dac-nav-toggle {
     border-right: 1px solid #e5e5e5;
     display: inline-block;
     position: absolute;
@@ -7836,28 +7684,24 @@
     width: 64px;
   }
 
-  .responsive .dac-nav-head, .responsive .dac-nav-secondary, .responsive .dac-nav-dimmer {
+  .dac-nav-head, .dac-nav-secondary, .dac-nav-dimmer {
     display: block;
   }
 
-  .responsive .dac-nav-dimmer.dac-nav-open {
+  .dac-nav-dimmer.dac-nav-open {
     opacity: .8;
     -webkit-transition-delay: 0s;
     transition-delay: 0s;
     visibility: visible;
   }
 
-  .responsive .dac-nav-list {
+  .dac-nav-list {
     background: #fff;
-    left: auto;
-    padding: 0 0 20px 0;
-    position: static;
-  }
-
-  .responsive .dac-nav-list {
     bottom: 0;
+    left: auto;
     max-width: 280px;
     overflow-y: auto;
+    padding: 0 0 20px 0;
     position: fixed;
     right: 100%;
     top: 0;
@@ -7867,22 +7711,22 @@
     z-index: 52;
   }
 
-  .responsive .dac-nav-list.dac-nav-open {
+  .dac-nav-list.dac-nav-open {
     -webkit-transform: translate3d(100%, 0, 0);
     transform: translate3d(100%, 0, 0);
   }
 
-  .responsive .dac-nav-secondary {
+  .dac-nav-secondary {
     border: none;
     position: static;
     width: 100%;
   }
 
-  .responsive .dac-nav-item {
+  .dac-nav-item {
     float: none;
   }
 
-  .responsive .dac-nav-link {
+  .dac-nav-link {
     display: block;
     font-size: 12px;
     font-weight: 600;
@@ -7890,26 +7734,28 @@
     padding: 0 20px;
   }
 
-  .responsive .dac-nav-link.selected {
+  .dac-nav-link.selected {
     color: #09f;
   }
 
-  .responsive .dac-nav-secondary .dac-nav-link {
+  .dac-nav-secondary .dac-nav-link {
     font-weight: 400;
     margin-left: 20px;
     margin-right: 20px;
+    padding: 0 20px;
   }
 
-  .responsive .dac-nav-link.has-subnav, .responsive .dac-nav-link.selected {
+  .dac-nav-link.has-subnav, .dac-nav-link.selected {
     border: none;
+    padding: 0 20px;
   }
 
-  .responsive .dac-logo-image {
+  .dac-logo-image {
     margin-right: 5px;
     vertical-align: top;
   }
 
-  .responsive .dac-nav-logo {
+  .dac-nav-logo {
     box-shadow: 0 2px 2px rgba(0, 0, 0, 0.04);
     font-size: 20px;
     font-weight: 300;
@@ -7918,7 +7764,7 @@
     padding: 14px 24px;
   }
 
-  .responsive .dac-nav-logo:link, .responsive .dac-nav-logo:visited, .responsive .dac-nav-logo:hover, .responsive .dac-nav-logo:active {
+  .dac-nav-logo:link, .dac-nav-logo:visited, .dac-nav-logo:hover, .dac-nav-logo:active {
     color: #444;
   }
 }
@@ -7966,7 +7812,7 @@
   box-sizing: border-box;
   font-size: 16px;
   min-height: 550px;
-  padding-top: 120px;
+  padding-top: 88px;
 }
 
 .dac-hero.dac-darken:before {
@@ -7985,7 +7831,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-hero {
+  .dac-hero {
     padding-bottom: 20px;
     padding-top: 20px;
   }
@@ -8011,10 +7857,13 @@
   display: inline-block;
   line-height: 40px;
   margin-right: 20px;
+  -webkit-transition: opacity .3s;
+  transition: opacity .3s;
 }
 
 .dac-hero-cta:hover {
   color: currentColor;
+  opacity: .54;
 }
 
 .dac-hero-cta .dac-sprite {
@@ -8070,7 +7919,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-hero-carousel-pagination {
+  .dac-hero-carousel-pagination {
     text-align: right;
     bottom: 20px;
   }
@@ -8114,6 +7963,7 @@
 
 /* Form component */
 .dac-form {
+  color: #505050;
   font-size: 16px;
   /* Modal Responsive */
 }
@@ -8138,8 +7988,9 @@
 
 .dac-form-legend {
   display: block;
+  color: #333;
   font-weight: 500;
-  margin: 20px 0;
+  margin: 20px 0 12px;
   padding: 0;
   width: 100%;
 }
@@ -8154,7 +8005,7 @@
   border-bottom-width: 1px;
   display: block;
   outline: 0;
-  padding: 8px 0;
+  padding: 1px 0 8px;
   -webkit-transition: border-color .2s;
   transition: border-color .2s;
   width: 100%;
@@ -8177,23 +8028,27 @@
 
 .dac-form-floatlabel {
   display: block;
+  cursor: text;
   margin-top: 5px;
+  pointer-events: none;
   -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-transform: translate3d(0, 22px, 0) scale(1);
+  transform: translate3d(0, 22px, 0) scale(1);
   -webkit-transition: -webkit-transform .2s;
   transition: transform .2s;
 }
 
 .dac-focused > .dac-form-floatlabel, .dac-has-value > .dac-form-floatlabel {
+  cursor: default;
   -webkit-transform: translate3d(0, 0, 0) scale(.75);
   transform: translate3d(0, 0, 0) scale(.75);
 }
 
 .dac-form-radio, .dac-form-checkbox {
-  display: none;
+  opacity: 0;
+  position: absolute;
 }
 
 .dac-form-radio-group, .dac-form-checkbox-group {
@@ -8230,13 +8085,17 @@
   transition: transform .3s;
 }
 
+.dac-form-radio-button::after, .dac-form-checkbox-button::after {
+  border: 2px solid rgba(0, 0, 0, 0.7);
+}
+
 .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-radio:focus + .dac-form-radio-button::after, .dac-form-checkbox:focus + .dac-form-checkbox-button::after {
+  border: 2px solid #09f;
 }
 
 .dac-form-checkbox-button::after, .dac-form-checkbox-button::before {
@@ -8244,7 +8103,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-form-legend {
+  .dac-form-legend {
     margin-bottom: 0;
   }
 }
@@ -8290,44 +8149,76 @@
 
 /* Modal component */
 .dac-modal {
-  /* Modal dimmer */
-  /* Modal Header */
-  /* Modal window */
-  /* Modal Action button */
-  /* Modal Footer */
-  /* Modal Responsive */
+  background: rgba(0, 0, 0, 0.8);
+  bottom: 0;
+  left: 0;
+  opacity: 0;
+  overflow-x: hidden;
+  overflow-y: auto;
+  position: fixed;
+  right: 0;
+  top: 0;
+  -webkit-transition: visibility 0s linear .3s, opacity .3s linear;
+  transition: visibility 0s linear .3s, opacity .3s linear;
+  visibility: hidden;
+  z-index: 52;
+}
+
+.dac-modal.dac-active {
+  opacity: 1;
+  -webkit-transition-delay: 0s;
+  transition-delay: 0s;
+  visibility: visible;
 }
 
 .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;
+.dac-modal-container {
+  -webkit-box-align: center;
+  -webkit-align-items: center;
+  -ms-flex-align: center;
+  align-items: center;
+  display: -webkit-box;
+  display: -webkit-flex;
+  display: -ms-flexbox;
+  display: flex;
+  -webkit-filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.4));
+  filter: drop-shadow(0 5px 15px rgba(0, 0, 0, 0.4));
+  -webkit-box-pack: center;
+  -webkit-justify-content: center;
+  -ms-flex-pack: center;
+  justify-content: center;
+  min-height: 100%;
   width: 100%;
-  z-index: 51;
 }
 
-.dac-modal-dimmer.dac-active {
-  opacity: .8;
-  -webkit-transition-delay: 0s;
-  transition-delay: 0s;
-  visibility: visible;
+.dac-modal-window {
+  background: #fff;
+  border-top-left-radius: 5px;
+  border-top-right-radius: 5px;
+  box-sizing: border-box;
+  margin: 20px;
+  -webkit-transition: -webkit-transform .3s;
+  transition: transform .3s;
+  -webkit-transform: translate(0, -30px);
+  -ms-transform: translate(0, -30px);
+  transform: translate(0, -30px);
+  -webkit-transform: translate3d(0, -30px, 0);
+  transform: translate3d(0, -30px, 0);
+  width: 960px;
+}
+
+.dac-modal.dac-active .dac-modal-window {
+  -webkit-transform: translateZ(0);
+  transform: translateZ(0);
 }
 
 .dac-modal-header {
   background: #00695c;
-  margin: -35px -35px 0;
+  border-top-left-radius: 5px;
+  border-top-right-radius: 5px;
   padding: 35px 35px 30px;
   position: relative;
 }
@@ -8361,7 +8252,7 @@
 }
 
 .dac-modal-header-subtitle {
-  bottom: 23px;
+  bottom: 31px;
   color: #fff;
   display: inline-block;
   font: inherit;
@@ -8371,117 +8262,86 @@
   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-content {
+  padding: 12px 35px;
 }
 
 .dac-modal-footer {
-  margin-top: 35px;
-  position: relative;
+  padding: 24px 35px;
 }
 
-@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);
+@media (max-width: 1000px) {
+  .dac-modal-window {
+    margin: 20px;
     width: auto;
   }
+
+  .dac-modal-container {
+    z-index: auto;
+  }
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-modal-header {
-    margin: -10px -10px 10px;
-    padding-bottom: 10px;
-    padding-left: 10px;
-    padding-right: 10px;
+  .dac-modal-window {
+    margin: 10px;
   }
 
-  .responsive .dac-modal-header-title {
+  .dac-modal-header {
+    padding: 35px 10px 10px;
+  }
+
+  .dac-modal-header-title {
     font-size: 16px;
-    line-height: 26px;
+    line-height: 24px;
     padding: 0;
   }
 
-  .responsive .dac-modal-header-subtitle {
-    display: inline-block;
+  .dac-modal-header-subtitle {
+    display: block;
     margin: 0;
     position: static;
     text-align: right;
-    width: 100%;
   }
 
-  .responsive .dac-modal-window {
-    border-radius: 0;
-    bottom: auto;
-    margin: 10px;
-    left: 0;
+  .dac-modal-content {
     padding: 10px;
-    top: 0;
-    -webkit-transform: none;
-    -ms-transform: none;
-    transform: none;
-    width: auto;
   }
 
-  .responsive .dac-modal-footer {
+  .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;
+    padding: 35px 10px;
   }
 }
 
+.newsletter .dac-modal-footer {
+  padding-top: 0;
+  text-align: right;
+}
+
 .newsletter-checkboxes {
-  padding-top: 10px;
+  padding-top: 20px;
+}
+
+@media (min-width: 720px) {
+  .newsletter-checkboxes {
+    padding-top: 46px;
+  }
+
+  .newsletter-leftCol {
+    padding-right: 40px;
+  }
+
+  .newsletter-rightCol {
+    padding-left: 40px;
+  }
+}
+
+@media (max-width: 719px) {
+  .newsletter .dac-modal-footer {
+    margin-top: 30px;
+    padding: 30px 10px;
+    text-align: center;
+  }
 }
 
 .dac-expand, .dac-section {
@@ -8492,7 +8352,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-expand, .responsive .dac-section {
+  .dac-expand, .dac-section {
     margin-left: -10px;
     margin-right: -10px;
     padding-left: 10px;
@@ -8552,6 +8412,13 @@
   position: relative;
 }
 
+@media (max-width: 719px) {
+  .dac-section {
+    padding-bottom: 52px;
+    padding-top: 52px;
+  }
+}
+
 .dac-section.dac-small {
   padding-bottom: 32px;
   padding-top: 32px;
@@ -8579,7 +8446,7 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-section-links {
+  .dac-section-links {
     margin-left: -8px;
     text-align: left;
   }
@@ -8591,16 +8458,25 @@
 }
 
 @media (max-width: 719px) {
-  .responsive .dac-section-link {
+  .dac-section-link {
     display: block;
     margin: 0;
   }
 }
 
+.dac-section-link a {
+  -webkit-transition: opacity .3s;
+  transition: opacity .3s;
+}
+
 .dac-section-link a:link, .dac-section-link a:visited {
   color: inherit;
 }
 
+.dac-section-link a:hover {
+  opacity: .54;
+}
+
 /*
 SCSS variables are information about icon's compiled state, stored under its original file name
 
@@ -8624,122 +8500,166 @@
       background-size: 50% 50%; } }
 
 .dac-sprite.dac-auto-chevron {
-  background-position: 0px -38px;
+  background-position: -26px -38px;
   height: 24px;
   width: 24px;
   vertical-align: -6px; }
   .dac-invert .dac-sprite.dac-auto-chevron {
-    background-position: -26px -38px;
+    background-position: -76px 0px;
     height: 24px;
     width: 24px; }
 .dac-sprite.dac-auto-chevron-large {
-  background-position: -38px 0px;
+  background-position: 0px 0px;
   height: 36px;
   width: 36px;
   vertical-align: -10px; }
   .dac-invert .dac-sprite.dac-auto-chevron-large {
-    background-position: 0px 0px;
+    background-position: -38px 0px;
     height: 36px;
     width: 36px; }
 
+.dac-sprite.dac-arrow-down-gray {
+  background-position: -56px -64px;
+  height: 11px;
+  width: 19px; }
+
 .dac-sprite.dac-arrow-right {
-  background-position: -76px -35px;
+  background-position: -102px 0px;
   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-large-right-white {
+  background-position: -38px 0px;
+  height: 36px;
+  width: 36px; }
 
-.dac-sprite.dac-chevron-right-white {
+.dac-sprite.dac-chevron-right-black {
   background-position: -26px -38px;
   height: 24px;
   width: 24px; }
 
+.dac-sprite.dac-chevron-right-white {
+  background-position: -76px 0px;
+  height: 24px;
+  width: 24px; }
+
 .dac-sprite.dac-close {
-  background-position: -54px -64px;
+  background-position: -34px -83px;
   height: 12px;
   width: 12px; }
 
+.dac-sprite.dac-expand-less-black {
+  background-position: 0px -38px;
+  height: 24px;
+  width: 24px; }
+
+.dac-sprite.dac-expand-more-black {
+  background-position: -76px -26px;
+  height: 24px;
+  width: 24px; }
+
 .dac-sprite.dac-google-play {
   background-position: -52px -38px;
   height: 18px;
   width: 16px; }
 
 .dac-sprite.dac-gplus {
-  background-position: -76px 0px;
+  background-position: 0px -64px;
   height: 17px;
   width: 16px; }
 
 .dac-sprite.dac-mail {
-  background-position: -36px -64px;
+  background-position: -16px -83px;
   height: 12px;
   width: 16px; }
 
 .dac-sprite.dac-rss {
-  background-position: -20px -64px;
+  background-position: 0px -83px;
   height: 14px;
   width: 14px; }
 
 .dac-sprite.dac-twitter {
-  background-position: -76px -19px;
+  background-position: -38px -64px;
   height: 14px;
   width: 16px; }
 
 .dac-sprite.dac-youtube {
-  background-position: 0px -64px;
+  background-position: -18px -64px;
   height: 14px;
   width: 18px; }
 
+.dac-toggle-expand {
+  cursor: pointer;
+  display: inline-block; }
+.dac-toggle-collapse {
+  cursor: pointer;
+  display: none; }
+.dac-toggle.is-expanded .dac-toggle-expand {
+  display: none; }
+.dac-toggle.is-expanded .dac-toggle-collapse {
+  display: inline-block; }
+.dac-toggle-content {
+  overflow: hidden;
+  max-height: 0;
+  -webkit-transition: .3s max-height;
+          transition: .3s max-height; }
+.dac-toggle.is-expanded .dac-toggle-content {
+  max-height: none; }
+.dac-toggle.dac-mobile .dac-toggle-content {
+  max-height: none; }
+@media (max-width: 719px) {
+  .dac-toggle.dac-mobile .dac-toggle-content {
+    max-height: 0; }
+  .dac-toggle.is-expanded .dac-toggle-content {
+    max-height: 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 {
+  .dac-hidden-mobile {
     display: none !important; }
-  .responsive .dac-visible-mobile-block, .responsive .dac-mobile-only {
+  .dac-visible-mobile-block, .dac-mobile-only {
     display: block !important; }
-  .responsive .dac-visible-mobile-inline {
+  .dac-visible-mobile-inline {
     display: inline !important; }
-  .responsive .dac-visible-mobile-inline-block {
+  .dac-visible-mobile-inline-block {
     display: inline-block !important; } }
 
 @media (min-width: 720px) and (max-width: 979px) {
-  .responsive .dac-hidden-tablet {
+  .dac-hidden-tablet {
     display: none !important; }
-  .responsive .dac-visible-tablet-block {
+  .dac-visible-tablet-block {
     display: block !important; }
-  .responsive .dac-visible-tablet-inline {
+  .dac-visible-tablet-inline {
     display: inline !important; }
-  .responsive .dac-visible-tablet-inline-block {
+  .dac-visible-tablet-inline-block {
     display: inline-block !important; } }
 
 @media (min-width: 980px) {
-  .responsive .dac-hidden-desktop {
+  .dac-hidden-desktop {
     display: none !important; }
-  .responsive .dac-visible-desktop-block {
+  .dac-visible-desktop-block {
     display: block !important; }
-  .responsive .dac-visible-desktop-inline {
+  .dac-visible-desktop-inline {
     display: inline !important; }
-  .responsive .dac-visible-desktop-inline-block {
+  .dac-visible-desktop-inline-block {
     display: inline-block !important; } }
 
+.dac-offset-parent {
+  position: relative !important; }
+
 #tb li:before, #qv li:before {
-  background-position: 0px -38px;
+  background-position: -26px -38px;
   height: 24px;
   width: 24px;
   content: '';
   left: -8px;
   opacity: .7;
-  position: absolute; }
+  position: absolute;
+  top: -4px; }
diff --git a/tools/droiddoc/templates-sdk/assets/images/sprite-2x.png b/tools/droiddoc/templates-sdk/assets/images/sprite-2x.png
index 4d842d1..a1f0683 100644
--- a/tools/droiddoc/templates-sdk/assets/images/sprite-2x.png
+++ b/tools/droiddoc/templates-sdk/assets/images/sprite-2x.png
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/images/sprite.png b/tools/droiddoc/templates-sdk/assets/images/sprite.png
index f824569..3ee611c 100644
--- a/tools/droiddoc/templates-sdk/assets/images/sprite.png
+++ b/tools/droiddoc/templates-sdk/assets/images/sprite.png
Binary files differ
diff --git a/tools/droiddoc/templates-sdk/assets/js/docs.js b/tools/droiddoc/templates-sdk/assets/js/docs.js
index 8baf3f4..60bbaf9 100644
--- a/tools/droiddoc/templates-sdk/assets/js/docs.js
+++ b/tools/droiddoc/templates-sdk/assets/js/docs.js
@@ -56,7 +56,7 @@
 
   // setup keyboard listener for search shortcut
   $('body').keyup(function(event) {
-    if (event.which == 191) {
+    if (event.which == 191 && $(event.target).is(':not(:input)')) {
       $('#search_autocomplete').focus();
     }
   });
@@ -71,15 +71,9 @@
   });
 
   // initialize the divs with custom scrollbars
-  $('.scroll-pane').jScrollPane( {verticalGutter:0} );
-
-  // add HRs below all H2s (except for a few other h2 variants)
-  $('h2').not('#qv h2')
-         .not('#tb h2')
-         .not('.sidebox h2')
-         .not('#devdoc-nav h2')
-         .not('h2.norule').css({marginBottom:0})
-         .after('<hr/>');
+  if (window.innerWidth >= 720) {
+    $('.scroll-pane').jScrollPane({verticalGutter: 0});
+  }
 
   // set up the search close button
   $('#search-close').click(function() {
@@ -192,8 +186,6 @@
       subNavEl.find("li.google > a").addClass("selected");
     } else if ($("body").hasClass("samples")) {
       subNavEl.find("li.samples > a").addClass("selected");
-    } else if ($("body").hasClass("preview")) {
-      subNavEl.find("li.preview > a").addClass("selected");
     } else {
       parentNavEl.removeClass('has-subnav').addClass("selected");
     }
@@ -372,7 +364,7 @@
     var $liLesson;
     $classLinks.each(function(index) {
       $liClass  = $('<li class="clearfix"></li>');
-      $h2Title  = $('<a class="title" href="'+$(this).attr('href')+'"><h2>' + $(this).html()+'</h2><span></span></a>');
+      $h2Title  = $('<a class="title" href="'+$(this).attr('href')+'"><h2 class="norule">' + $(this).html()+'</h2><span></span></a>');
       $pSummary = $('<p class="description">' + $classDescriptions[index] + '</p>');
 
       $olLessons  = $('<ol class="lesson-list"></ol>');
@@ -405,23 +397,15 @@
   /* Resize nav height when window height changes */
   $(window).resize(function() {
     if ($('#side-nav').length == 0) return;
-    var stylesheet = $('link[rel="stylesheet"][class="fullscreen"]');
-    setNavBarLeftPos(); // do this even if sidenav isn't fixed because it could become fixed
+    setNavBarDimensions(); // do this even if sidenav isn't fixed because it could become fixed
     // make sidenav behave when resizing the window and side-scolling is a concern
-    if (sticky) {
-      if ((stylesheet.attr("disabled") == "disabled") || stylesheet.length == 0) {
-        updateSideNavPosition();
-      } else {
-        updateSidenavFullscreenWidth();
-      }
-    }
-    resizeNav();
+    updateSideNavDimensions();
+    checkSticky();
+    resizeNav(250);
   });
 
-
-  var navBarLeftPos;
   if ($('#devdoc-nav').length) {
-    setNavBarLeftPos();
+    setNavBarDimensions();
   }
 
 
@@ -464,7 +448,12 @@
   $('h2').click(function() {
     var id = $(this).attr('id');
     if (id) {
-      document.location.hash = id;
+      if (history && history.replaceState) {
+        // Change url without scrolling.
+        history.replaceState({}, '', '#' + id);
+      } else {
+        document.location.hash = id;
+      }
     }
   });
 
@@ -546,15 +535,6 @@
       });
     });
   }
-
-  // Responsive testing
-  var responsiveParam = location.href.match(/[?&]responsive=?(|true|false)/);
-  if (responsiveParam) {
-    localStorage['test-responsive'] = ['', 'true'].indexOf(responsiveParam) > -1;
-  }
-  if (localStorage['test-responsive']) {
-    $(document.body).addClass('responsive');
-  }
 });
 // END of the onload event
 
@@ -785,21 +765,24 @@
     enabled = false;
   }
   writeCookie("fullscreen", enabled, null);
-  setNavBarLeftPos();
+  setNavBarDimensions();
   resizeNav(delay);
-  updateSideNavPosition();
+  updateSideNavDimensions();
   setTimeout(initSidenavHeightResize,delay);
 }
 
-
-function setNavBarLeftPos() {
+// TODO: Refactor into a closure.
+var navBarLeftPos;
+var navBarWidth;
+function setNavBarDimensions() {
   navBarLeftPos = $('#body-content').offset().left;
+  navBarWidth = $('#side-nav').width();
 }
 
 
-function updateSideNavPosition() {
+function updateSideNavDimensions() {
   var newLeft = $(window).scrollLeft() - navBarLeftPos;
-  $('#devdoc-nav').css({left: -newLeft});
+  $('#devdoc-nav').css({left: -newLeft, width: navBarWidth});
   $('#devdoc-nav .totop').css({left: -(newLeft - parseInt($('#side-nav').css('padding-left')))});
 }
 
@@ -834,7 +817,7 @@
 
 
 
-/* ######### RESIZE THE SIDENAV HEIGHT ########## */
+/* ######### RESIZE THE SIDENAV ########## */
 
 function resizeNav(delay) {
   var $nav = $("#devdoc-nav");
@@ -850,7 +833,7 @@
 
   // get the height of space between nav and top of window.
   // Could be either margin or top position, depending on whether the nav is fixed.
-  var topMargin = (parseInt($nav.css('margin-top')) || parseInt($nav.css('top'))) + 1;
+  var topMargin = (parseInt($nav.css('top')) || 20) + 1;
   // add 1 for the #side-nav bottom margin
 
   // Depending on whether the header is visible, set the side nav's height.
@@ -865,7 +848,9 @@
 
 
   $scrollPanes = $(".scroll-pane");
-  if ($scrollPanes.length > 1) {
+  if ($window.width() < 720) {
+    $nav.css('height', '');
+  } else if ($scrollPanes.length > 1) {
     // subtract the height of the api level widget and nav swapper from the available nav height
     navHeight -= ($('#api-nav-header').outerHeight(true) + $('#nav-swap').outerHeight(true));
 
@@ -933,7 +918,7 @@
 function reInitScrollbars() {
   var pane = $(".scroll-pane").each(function(){
     var api = $(this).data('jsp');
-    if (!api) { setTimeout(reInitScrollbars,300); return;}
+    if (!api) {return;}
     api.reinitialise( {verticalGutter:0} );
   });
   $(".scroll-pane").removeAttr("tabindex"); // get rid of tabindex added by jscroller
@@ -969,6 +954,7 @@
 /** Scroll the jScrollPane to make the currently selected item visible
     This is called when the page finished loading. */
 function scrollIntoView(nav) {
+  return;
   var $nav = $("#"+nav);
   var element = $nav.jScrollPane({/* ...settings... */});
   var api = element.data('jsp');
@@ -1051,18 +1037,21 @@
  * Displays sticky nav bar on pages when dac header scrolls out of view
  */
 $(window).scroll(function(event) {
-
-  setStickyTop();
-  var hiding = false;
-  var $headerEl = $('#header');
-  // Exit if there's no sidenav
-  if ($('#side-nav').length == 0) return;
   // Exit if the mouse target is a DIV, because that means the event is coming
   // from a scrollable div and so there's no need to make adjustments to our layout
   if ($(event.target).nodeName == "DIV") {
     return;
   }
 
+  checkSticky();
+});
+
+function checkSticky() {
+  setStickyTop();
+  var $headerEl = $('#header');
+  // Exit if there's no sidenav
+  if ($('#side-nav').length == 0) return;
+
   var top = $(window).scrollTop();
   // we set the navbar fixed when the scroll position is beyond the height of the site header...
   var shouldBeSticky = top >= stickyTop;
@@ -1071,11 +1060,15 @@
   if ($("#doc-col").height() < $("#side-nav").height()) {
     shouldBeSticky = false;
   }
+  // Nor on mobile
+  if (window.innerWidth < 720) {
+    shouldBeSticky = false;
+  }
   // Account for horizontal scroll
   var scrollLeft = $(window).scrollLeft();
   // When the sidenav is fixed and user scrolls horizontally, reposition the sidenav to match
   if (sticky && (scrollLeft != prevScrollLeft)) {
-    updateSideNavPosition();
+    updateSideNavDimensions();
     prevScrollLeft = scrollLeft;
   }
 
@@ -1088,38 +1081,29 @@
   // If sticky header visible and position is now near top, hide sticky
   if (sticky && !shouldBeSticky) {
     sticky = false;
-    hiding = true;
     // make the sidenav static again
     $('#devdoc-nav')
-        .removeClass('fixed')
-        .css({'width':'auto','margin':''})
-        .prependTo('#side-nav');
+      .removeClass('fixed')
+      .css({'width':'auto','margin':''});
     // delay hide the sticky
     $headerEl.removeClass('is-sticky');
-    hiding = false;
 
     // update the sidenaav position for side scrolling
-    updateSideNavPosition();
+    updateSideNavDimensions();
   } else if (!sticky && shouldBeSticky) {
     sticky = true;
     $headerEl.addClass('is-sticky');
 
     // make the sidenav fixed
-    var width = $('#devdoc-nav').width();
     $('#devdoc-nav')
-        .addClass('fixed')
-        .css({'width':width+'px'})
-        .prependTo('#body-content');
+      .addClass('fixed');
 
     // update the sidenaav position for side scrolling
-    updateSideNavPosition();
+    updateSideNavDimensions();
 
-  } else if (hiding && top < 15) {
-    $headerEl.removeClass('is-sticky');
-    hiding = false;
   }
   resizeNav(250); // pass true in order to delay the scrollbar re-initialization for performance
-});
+}
 
 /*
  * Manages secion card states and nav resize to conclude loading
@@ -1324,13 +1308,13 @@
 
 
 function changeNavLang(lang) {
-  var $links = $("#devdoc-nav,#header,#nav-x,.training-nav-top,.content-footer").find("a["+lang+"-lang]");
-  $links.each(function(i){ // for each link with a translation
+  if (lang === 'en') { return; }
+
+  var $links = $('a[' + lang + '-lang]');
+  $links.each(function(){ // for each link with a translation
     var $link = $(this);
-    if (lang != "en") { // No need to worry about English, because a language change invokes new request
-      // put the desired language from the attribute as the text
-      $link.text($link.attr(lang+"-lang"))
-    }
+    // put the desired language from the attribute as the text
+    $link.text($link.attr(lang + '-lang'))
   });
 }
 
@@ -3147,6 +3131,10 @@
   me.node = new Object();
 
   me.node.li = document.getElementById(navtree_id);
+  if (!me.node.li) {
+    return;
+  }
+
   me.node.children_data = root_nodes;
   me.node.children = new Array();
   me.node.children_ul = document.createElement("ul");
@@ -3740,7 +3728,7 @@
 
     return $el;
   }
-
+  
   function createResponsiveFlowColumn(cardSize) {
     var cardWidth = parseInt(cardSize.match(/(\d+)/)[1], 10);
     var column = $('<div>').addClass('col-' + (cardWidth / 3) + 'of6');
@@ -3765,7 +3753,7 @@
     while (i < resources.length) {
       var cardSize = cardSizes[j++ % cardSizes.length];
       cardSize = cardSize.replace(/^\s+|\s+$/,'');
-
+      
       var column = createResponsiveFlowColumn(cardSize).appendTo($widget);
 
       // A stack has a third dimension which is the number of stacked items
@@ -4374,6 +4362,88 @@
   }
 })();
 
+/**
+ * Auto TOC
+ *
+ * Upgrades h2s on the page to have a rule and be toggle-able on mobile.
+ */
+(function($) {
+  var upgraded = false;
+  var h2Titles;
+
+  function initWidget() {
+    // add HRs below all H2s (except for a few other h2 variants)
+    // Consider doing this with css instead.
+    h2Titles = $('h2').not('#qv h2, #tb h2, .sidebox h2, #devdoc-nav h2, h2.norule');
+    h2Titles.css({marginBottom:0}).after('<hr/>');
+
+    // Exit early if on older browser.
+    if (!window.matchMedia) {
+      return;
+    }
+
+    // Only run logic in mobile layout.
+    var query = window.matchMedia('(max-width: 719px)');
+    if (query.matches) {
+      makeTogglable();
+    } else {
+      query.addListener(makeTogglable);
+    }
+  }
+
+  function makeTogglable() {
+    // Only run this logic once.
+    if (upgraded) { return; }
+    upgraded = true;
+
+    // Only make content h2s togglable.
+    var contentTitles = h2Titles.filter('#jd-content *');
+
+    // If there are more than 1
+    if (contentTitles.size() < 2) {
+      return;
+    }
+
+    contentTitles.each(function() {
+      // Find all the relevant nodes.
+      var $title = $(this);
+      var $hr = $title.next();
+      var $contents = $hr.nextUntil('h2, .next-docs');
+      var $section = $($title)
+        .add($hr)
+        .add($title.prev('a[name]'))
+        .add($contents);
+      var $anchor = $section.first().prev();
+      var anchorMethod = 'after';
+      if ($anchor.length === 0) {
+        $anchor = $title.parent();
+        anchorMethod = 'prepend';
+      }
+
+      // Remove from DOM before messing with it. DOM is slow!
+      $section.detach();
+
+      // Add mobile-only expand arrows.
+      $title.prepend('<span class="dac-visible-mobile-inline-block">' +
+          '<i class="dac-toggle-expand dac-sprite dac-expand-more-black"></i>' +
+          '<i class="dac-toggle-collapse dac-sprite dac-expand-less-black"></i>' +
+          '</span>')
+        .attr('data-toggle', 'section');
+
+      // Wrap in magic markup.
+      $section = $section.wrapAll('<div class="dac-toggle dac-mobile">').parent();
+      $contents.wrapAll('<div class="dac-toggle-content"><div>'); // extra div used for max-height calculation.
+
+      // Add it back to the dom.
+      $anchor[anchorMethod].call($anchor, $section);
+    });
+  }
+
+  $(function() {
+    initWidget();
+  });
+})(jQuery);
+
 (function($) {
   'use strict';
 
@@ -4642,27 +4712,26 @@
     this.frames.eq(next).removeClass('out');
 
     // Recalculate styles before starting slide transition.
-    var that = this;
-    resolveStyles(this.el[0], function() {
-      // Update pagination
-      that.pagination.removeClass('active').eq(next).addClass('active');
+    this.el.resolveStyles();
+    // Update pagination
+    this.pagination.removeClass('active').eq(next).addClass('active');
 
-      // Transition out current frame
-      that.frames.eq(that.current).toggleClass('active out');
+    // Transition out current frame
+    this.frames.eq(this.current).toggleClass('active out');
 
-      // Transition in a new frame
-      that.frames.eq(next).toggleClass('active');
+    // Transition in a new frame
+    this.frames.eq(next).toggleClass('active');
 
-      that.current = next;
-    });
+    this.current = next;
   };
 
-  // Helper
-  function resolveStyles(el, callback) {
+  // Helper which resolves new styles for an element, so it can start transitioning
+  // from the new values.
+  $.fn.resolveStyles = function() {
     /*jshint expr:true*/
-    el.offsetTop;
-    callback();
-  }
+    this[0] && this[0].offsetTop;
+    return this;
+  };
 
   // jQuery plugin
   $.fn.dacCarousel = function() {
@@ -4682,39 +4751,66 @@
 (function($) {
   'use strict';
 
-  /**
-   * Toggle the visabilty of the mobile navigation.
-   * @param {HTMLElement} el - The DOM element.
-   * @param options
-   * @constructor
-   */
+  function Modal(el, options) {
+    this.el = $(el);
+    this.options = $.extend({}, ToggleModal.DEFAULTS_, options);
+    this.isOpen = false;
+
+    this.el.on('click', function(event) {
+      if (!$.contains($('.dac-modal-window')[0], event.target)) {
+        return this.close_();
+      }
+    }.bind(this));
+
+    this.el.on('open', this.open_.bind(this));
+    this.el.on('close', this.close_.bind(this));
+    this.el.on('toggle', this.toggle_.bind(this));
+  }
+
+  Modal.prototype.toggle_ = function() {
+    if (this.isOpen) {
+      this.close_();
+    } else {
+      this.open_();
+    }
+  };
+
+  Modal.prototype.close_ = function() {
+    this.el.removeClass('dac-active');
+    $('body').removeClass('dac-modal-open');
+    this.isOpen = false;
+  };
+
+  Modal.prototype.open_ = function() {
+    this.el.addClass('dac-active');
+    $('body').addClass('dac-modal-open');
+    this.isOpen = true;
+  };
+
   function ToggleModal(el, options) {
     this.el = $(el);
     this.options = $.extend({}, ToggleModal.DEFAULTS_, options);
+    this.modal = this.options.modalToggle ? $('[data-modal="' + this.options.modalToggle + '"]') :
+      this.el.closest('[data-modal]');
+
     this.el.on('click', this.clickHandler_.bind(this));
   }
 
-  ToggleModal.DEFAULTS_ = {
-    toggleClass: 'dac-modal-open'
-  };
-
-  /**
-   * The actual toggle logic.
-   * @param event
-   * @private
-   */
   ToggleModal.prototype.clickHandler_ = function(event) {
     event.preventDefault();
-    //TODO: Toggle a class on the modal itself
-    $('body').toggleClass(this.options.toggleClass);
-    $('.dac-modal-dimmer').toggleClass('dac-active');
-    $('.dac-modal-window').toggleClass('dac-active');
+    this.modal.trigger('toggle');
   };
 
   /**
    * jQuery plugin
    * @param  {object} options - Override default options.
    */
+  $.fn.dacModal = function(options) {
+    return this.each(function() {
+      new Modal(this, options);
+    });
+  };
+
   $.fn.dacToggleModal = function(options) {
     return this.each(function() {
       new ToggleModal(this, options);
@@ -4725,7 +4821,11 @@
    * Data Attribute API
    */
   $(document).on('ready.aranja', function() {
-    $('[data-modal-toogle]').each(function() {
+    $('[data-modal]').each(function() {
+      $(this).dacModal($(this).data());
+    });
+
+    $('[data-modal-toggle]').each(function() {
       $(this).dacToggleModal($(this).data());
     });
   });
@@ -4803,8 +4903,12 @@
    */
   function NewsletterForm(el) {
     this.el = $(el);
-    this.url = this.el.attr('action');
-    this.el.on('submit', this.submitHandler_.bind(this));
+    this.form = this.el.find('form');
+    $('<iframe/>').hide()
+      .attr('name', 'dac-newsletter-iframe')
+      .attr('src', '')
+      .insertBefore(this.form);
+    this.form.on('submit', this.submitHandler_.bind(this));
   }
 
   /**
@@ -4812,10 +4916,8 @@
    * @private
    */
   NewsletterForm.prototype.submitHandler_ = function() {
-    //TODO: Close the modal with an event and let modal.js handle this
-    $('body').removeClass('dac-modal-open');
-    $('.dac-modal-dimmer').removeClass('dac-active');
-    $('.dac-modal-window').removeClass('dac-active');
+    this.form.trigger('reset');
+    this.el.trigger('close');
   };
 
   /**
@@ -4832,8 +4934,156 @@
    * Data Attribute API
    */
   $(document).on('ready.aranja', function() {
-    $('[data-newsletter-form]').each(function() {
+    $('[data-newsletter]').each(function() {
       $(this).dacNewsletterForm();
     });
   });
 })(jQuery);
+
+(function($) {
+  'use strict';
+
+  /**
+   * Smoothly scroll to location on current page.
+   * @param el
+   * @param options
+   * @constructor
+   */
+  function ScrollButton(el, options) {
+    this.el = $(el);
+    this.target = $(this.el.attr('href'));
+    this.options = $.extend({}, ScrollButton.DEFAULTS_, options);
+
+    if (typeof this.options.offset === 'string') {
+      this.options.offset = $(this.options.offset).height();
+    }
+
+    this.el.on('click', this.clickHandler_.bind(this));
+  }
+
+  /**
+   * Default options
+   * @type {{duration: number, easing: string, offset: number, scrollContainer: string}}
+   * @private
+   */
+  ScrollButton.DEFAULTS_ = {
+    duration: 300,
+    easing: 'swing',
+    offset: 0,
+    scrollContainer: 'html, body'
+  };
+
+  /**
+   * Scroll logic
+   * @param event
+   * @private
+   */
+  ScrollButton.prototype.clickHandler_ = function(event) {
+    if (event.altKey || event.ctrlKey || event.metaKey || event.shiftKey) {
+      return;
+    }
+
+    event.preventDefault();
+
+    $(this.options.scrollContainer).animate({
+      scrollTop: this.target.offset().top - this.options.offset
+    }, this.options);
+  };
+
+  /**
+   * jQuery plugin
+   * @param  {object} options - Override default options.
+   */
+  $.fn.dacScrollButton = function(options) {
+    return this.each(function() {
+      new ScrollButton(this, options);
+    });
+  };
+
+  /**
+   * Data Attribute API
+   */
+  $(document).on('ready.aranja', function() {
+    $('[data-scroll-button]').each(function() {
+      $(this).dacScrollButton($(this).data());
+    });
+  });
+})(jQuery);
+
+(function($) {
+  function Toggle(el) {
+    $(el).on('click.dac.togglesection', this.toggle);
+  }
+
+  Toggle.prototype.toggle = function() {
+    var $this = $(this);
+
+    var $parent = getParent($this);
+    var isExpanded = $parent.hasClass('is-expanded');
+
+    transitionMaxHeight($parent.find('.dac-toggle-content'), !isExpanded);
+    $parent.toggleClass('is-expanded');
+
+    return false;
+  };
+
+  function getParent($this) {
+    var selector = $this.attr('data-target');
+
+    if (!selector) {
+      selector = $this.attr('href');
+      selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '');
+    }
+
+    var $parent = selector && $(selector);
+
+    return $parent && $parent.length ? $parent : $this.parent();
+  }
+
+  /**
+   * Runs a transition of max-height along with responsive styles which hide or expand the element.
+   * @param $el
+   * @param visible
+   */
+  function transitionMaxHeight($el, visible) {
+    // Only supports 1 child
+    var contentHeight = $el.children().outerHeight();
+    var targetHeight = visible ? contentHeight : 0;
+    var duration = $el.transitionDuration();
+
+    // If we're hiding, first set the maxHeight we're transitioning from.
+    if (!visible) {
+      $el.css('maxHeight', contentHeight + 'px')
+        .resolveStyles();
+    }
+
+    // Transition to new state
+    $el.css('maxHeight', targetHeight);
+
+    // Reset maxHeight to css value after transition.
+    setTimeout(function() {
+      $el.css('maxHeight', '');
+    }, duration);
+  }
+
+  // Utility to get the transition duration for the element.
+  $.fn.transitionDuration = function() {
+    var d = $(this).css('transitionDuration') || '0s';
+
+    return +(parseFloat(d) * (/ms/.test(d) ? 1 : 1000)).toFixed(0);
+  };
+
+  // jQuery plugin
+  $.fn.toggleSection = function(option) {
+    return this.each(function() {
+      var $this = $(this);
+      var data = $this.data('dac.togglesection');
+      if (!data) {$this.data('dac.togglesection', (data = new Toggle(this)));}
+      if (typeof option === 'string') {data[option].call($this);}
+    });
+  };
+
+  // Data api
+  $(document)
+    .on('click.toggle', '[data-toggle="section"]', Toggle.prototype.toggle);
+})(jQuery);
diff --git a/tools/droiddoc/templates-sdk/class.cs b/tools/droiddoc/templates-sdk/class.cs
index 7aa99f9..44eae97 100644
--- a/tools/droiddoc/templates-sdk/class.cs
+++ b/tools/droiddoc/templates-sdk/class.cs
@@ -667,10 +667,9 @@
 <?cs # the next two lines must be exactly like this to be parsed by eclipse ?>
 <!-- ========= END OF CLASS DATA ========= -->
 <A NAME="navbar_top"></A>
-
-<?cs include:"footer.cs" ?>
 </div> <!-- jd-content -->
 
+<?cs include:"footer.cs" ?>
 </div><!-- end doc-content -->
 
 <?cs include:"trailer.cs" ?>
diff --git a/tools/droiddoc/templates-sdk/classes.cs b/tools/droiddoc/templates-sdk/classes.cs
index 405892d..32966a0 100644
--- a/tools/droiddoc/templates-sdk/classes.cs
+++ b/tools/droiddoc/templates-sdk/classes.cs
@@ -43,11 +43,12 @@
 </table>
 <?cs /each ?>
 
-<?cs include:"footer.cs" ?>
 </div><!-- end jd-content -->
+
+<?cs include:"footer.cs" ?>
 </div><!-- end doc-content -->
 
 <?cs include:"trailer.cs" ?>
 
 </body>
-</html>
\ No newline at end of file
+</html>
diff --git a/tools/droiddoc/templates-sdk/customizations.cs b/tools/droiddoc/templates-sdk/customizations.cs
index 7c92adb..276dd0d 100644
--- a/tools/droiddoc/templates-sdk/customizations.cs
+++ b/tools/droiddoc/templates-sdk/customizations.cs
@@ -1,18 +1,24 @@
 <?cs
+def:mobile_nav_toggle() ?>
+  <div class="dac-visible-mobile-block" data-toggle="section">
+    <span class="dac-toggle-expand dac-devdoc-toggle"><i class="dac-sprite dac-expand-more-black"></i> Show navigation</span>
+    <span class="dac-toggle-collapse dac-devdoc-toggle" data-toggle-section><i class="dac-sprite dac-expand-less-black"></i> Hide navigation</span>
+  </div>
+<?cs /def ?><?cs
+
 def:fullpage() ?>
   <div id="body-content">
     <div>
 <?cs /def ?>
-<?cs
+<?cs 
 def:sdk_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
-
-
+    <div class="col-4 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/sdk/sdk_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
 <?cs /def ?><?cs
@@ -24,12 +30,12 @@
 
 def:tools_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-<?cs
-        include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
-
-
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/tools/tools_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -41,14 +47,12 @@
 <?cs
 def:training_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
-
-
+    <div class="col-4 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/training/training_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -60,9 +64,12 @@
 
 def:googleplay_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/distribute/googleplay/googleplay_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -73,10 +80,13 @@
 <?cs /def ?><?cs
 
 def:preview_nav() ?>
-  <div class="wrap clearfix" id="body-content">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+  <div class="wrap clearfix" id="body-content"><div class="cols">
+    <div class="col-4 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/preview/preview_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -88,9 +98,12 @@
 
 def:essentials_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/distribute/essentials/essentials_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -102,9 +115,12 @@
 
 def:users_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/distribute/users/users_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -116,9 +132,12 @@
 
 def:engage_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/distribute/engage/engage_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -130,9 +149,12 @@
 
 def:analyze_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/distribute/analyze/analyze_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -144,9 +166,12 @@
 
 def:monetize_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/distribute/monetize/monetize_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -158,9 +183,12 @@
 
 def:disttools_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/distribute/tools/disttools_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -172,9 +200,12 @@
 
 def:stories_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
 <?cs include:"../../../../frameworks/base/docs/html/distribute/stories/stories_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -186,13 +217,12 @@
 
 def:guide_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
-
-
+    <div class="col-4 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/guide/guide_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -204,14 +234,12 @@
 <?cs
 def:design_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
-
-
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/design/design_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -223,13 +251,12 @@
 <?cs
 def:distribute_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
-
-
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/distribute/distribute_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -242,12 +269,12 @@
 <?cs
 def:samples_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
-
+    <div class="col-4 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/samples/samples_toc.cs" ?>
+        </div>
       </div>
 
     </div> <!-- end side-nav -->
@@ -261,17 +288,16 @@
 <?cs
 def:google_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
-
-
+    <div class="col-4 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/google/google_toc.cs" ?>
+        </div>
       </div>
       <script type="text/javascript">
        showGoogleRefTree();
-
+    
       </script>
     </div> <!-- end side-nav -->
     <script>
@@ -284,13 +310,12 @@
 <?cs
 def:about_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-3" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
-
-
+    <div class="col-3 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/about/about_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -304,13 +329,12 @@
 <?cs
 def:wear_nav() ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
-      <div id="devdoc-nav" class="scroll-pane">
-
-<?cs
-        include:"../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
-
-
+    <div class="col-4 dac-toggle dac-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+      <?cs call:mobile_nav_toggle() ?>
+      <div class="dac-toggle-content" id="devdoc-nav">
+        <div class="scroll-pane">
+<?cs include:"../../../../frameworks/base/docs/html/wear/wear_toc.cs" ?>
+        </div>
       </div>
     </div> <!-- end side-nav -->
     <script>
@@ -320,13 +344,14 @@
     </script>
 <?cs /def ?>
 
+
 <?cs # The default side navigation for the reference docs ?><?cs
 def:default_left_nav() ?>
 <?cs if:reference.gcm || reference.gms ?>
   <?cs call:google_nav() ?>
 <?cs else ?>
   <div class="wrap clearfix" id="body-content"><div class="cols">
-    <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+    <div class="col-4 dac-hidden-mobile" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
       <div id="devdoc-nav">
       <div id="api-nav-header">
         <div id="api-level-toggle">
diff --git a/tools/droiddoc/templates-sdk/docpage.cs b/tools/droiddoc/templates-sdk/docpage.cs
index c0b0174..3af7049 100644
--- a/tools/droiddoc/templates-sdk/docpage.cs
+++ b/tools/droiddoc/templates-sdk/docpage.cs
@@ -6,7 +6,7 @@
 
 <?cs # add document classes for navigation header selection (and other stuff) ?>
 <?cs
-if:(google || reference.gms || reference.gcm) ?>google<?cs
+if:(google || reference.gms || reference.gcm) ?>google <?cs
 /if ?><?cs
 if:(guide||develop||training||reference||tools||sdk||google||samples||preview) ?>develop<?cs
   if:guide ?> guide<?cs /if ?><?cs
diff --git a/tools/droiddoc/templates-sdk/footer.cs b/tools/droiddoc/templates-sdk/footer.cs
index 2309306..005a620 100644
--- a/tools/droiddoc/templates-sdk/footer.cs
+++ b/tools/droiddoc/templates-sdk/footer.cs
@@ -1,19 +1,75 @@
-<div class="dac-modal">
-  <div class="dac-modal-dimmer" data-modal-toogle></div>
+<div class="dac-footer dac-expand">
+  <div class="wrap">
+    <div class="cols dac-footer-main">
+      <div class="col-1of2">
+        <a class="dac-footer-getnews" data-modal-toggle="newsletter" href="javascript:;">Get news &amp; tips <span
+          class="dac-fab dac-primary"><i class="dac-sprite dac-mail"></i></span></a>
+      </div>
+      <div class="col-1of2 dac-footer-reachout">
+        <div class="dac-footer-contact">
+          <a class="dac-footer-contact-link" href="http://android-developers.blogspot.com/">Blog</a>
+          <a class="dac-footer-contact-link" href="/support.html">Support</a>
+        </div>
+        <div class="dac-footer-social">
+          <a class="dac-fab dac-footer-social-link" href="https://www.youtube.com/user/androiddevelopers"><i class="dac-sprite dac-youtube"></i></a>
+          <a class="dac-fab dac-footer-social-link" href="https://plus.google.com/+AndroidDevelopers"><i class="dac-sprite dac-gplus"></i></a>
+          <a class="dac-fab dac-footer-social-link" href="https://twitter.com/AndroidDev"><i class="dac-sprite dac-twitter"></i></a>
+        </div>
+      </div>
+    </div>
 
+    <hr class="dac-footer-separator"/>
+
+    <?cs if:reference ?>
+      <p class="dac-footer-copyright">
+        <?cs call:custom_copyright() ?>
+      </p>
+      <p class="dac-footer-build">
+        <?cs call:custom_buildinfo() ?>
+      </p>
+    <?cs elif:!hide_license_footer ?>
+      <p class="dac-footer-copyright">
+        <?cs call:custom_cc_copyright() ?>
+      </p>
+    <?cs /if ?>
+
+    <p class="dac-footer-links">
+      <a href="/about/index.html">About Android</a>
+      <a href="/auto/index.html">Auto</a>
+      <a href="/tv/index.html">TV</a>
+      <a href="/wear/index.html">Wear</a>
+      <a href="/legal.html">Legal</a>
+
+      <span id="language" class="locales">
+        <select name="language" onchange="changeLangPref(this.value, true)">
+          <option value="en" selected="selected">English</option>
+          <option value="es">Español</option>
+          <option value="ja">日本語</option>
+          <option value="ko">한국어</option>
+          <option value="ru">Русский</option>
+          <option value="zh-cn">中文(简体)</option>
+          <option value="zh-tw">中文(繁體)</option>
+        </select>
+      </span>
+    </p>
+  </div>
+</div> <!-- end footer -->
+
+<div data-modal="newsletter" data-newsletter class="dac-modal newsletter">
   <div class="dac-modal-container">
     <div class="dac-modal-window">
       <header class="dac-modal-header">
-        <button class="dac-modal-header-close" data-modal-toogle><i class="dac-sprite dac-close"></i></button>
-        <h2 class="dac-modal-header-title">Sign-up for the newsletter to get the latest Android developer news and tips that will help you find success on Google Play.</h2>
+        <button class="dac-modal-header-close" data-modal-toggle><i class="dac-sprite dac-close"></i></button>
+        <h2 class="norule dac-modal-header-title">
+          Get the latest Android developer news and tips that will help you find success on Google Play.
+        </h2>
         <p class="dac-modal-header-subtitle">&#42; Required Fields</p>
       </header>
-      <iframe src="" class="dac-modal-iframe" name="dac-modal-iframe"></iframe>
-      <form action="https://docs.google.com/forms/d/1QgnkzbEJIDu9lMEea0mxqWrXUJu0oBCLD7ar23V0Yys/formResponse" class="dac-form" method="post" target="dac-modal-iframe" data-newsletter-form>
+      <form action="https://docs.google.com/forms/d/1QgnkzbEJIDu9lMEea0mxqWrXUJu0oBCLD7ar23V0Yys/formResponse" class="dac-form" method="post" target="dac-newsletter-iframe">
         <section class="dac-modal-content">
           <fieldset class="dac-form-fieldset">
             <div class="cols">
-              <div class="col-4of8">
+              <div class="col-1of2 newsletter-leftCol">
                 <div class="dac-form-input-group">
                   <label for="newsletter-full-name" class="dac-form-floatlabel">Full name</label>
                   <input type="text" class="dac-form-input" name="entry.1357890476" id="newsletter-full-name" required>
@@ -25,7 +81,7 @@
                   <span class="dac-form-required">*</span>
                 </div>
               </div>
-              <div class="col-4of8">
+              <div class="col-1of2 newsletter-rightCol">
                 <div class="dac-form-input-group">
                   <label for="newsletter-company" class="dac-form-floatlabel">Company / developer name</label>
                   <input type="text" class="dac-form-input" name="entry.1664780309" id="newsletter-company">
@@ -40,7 +96,7 @@
           </fieldset>
           <fieldset class="dac-form-fieldset">
             <div class="cols">
-              <div class="col-4of8">
+              <div class="col-1of2 newsletter-leftCol">
                 <legend class="dac-form-legend">Which best describes your business:<span class="dac-form-required">*</span>
                 </legend>
                 <div class="dac-form-radio-group">
@@ -59,7 +115,7 @@
                   <label for="newsletter-business-type-appsgames" class="dac-form-label">Apps &amp; Games</label>
                 </div>
               </div>
-              <div class="col-4of8 newsletter-checkboxes">
+              <div class="col-1of2 newsletter-rightCol newsletter-checkboxes">
                 <div class="dac-form-radio-group">
                   <div class="dac-media">
                     <div class="dac-media-figure">
@@ -96,57 +152,4 @@
       </form>
     </div>
   </div>
-</div>
-<div class="dac-footer wrap">
-  <div class="cols dac-footer-main">
-    <div class="col-1of2">
-      <a class="dac-footer-getnews" data-modal-toogle href="javascript:;">Get news &amp; tips <span class="dac-fab dac-primary"><i class="dac-sprite dac-mail"></i></span></a>
-    </div>
-    <div class="col-1of2 dac-footer-reachout">
-      <div class="dac-footer-contact">
-        <a class="dac-footer-contact-link" href="http://android-developers.blogspot.com/">Blog</a>
-        <a class="dac-footer-contact-link" href="/support.html">Support</a>
-      </div>
-      <div class="dac-footer-social">
-        <a class="dac-fab dac-footer-social-link" href="https://www.youtube.com/user/androiddevelopers"><i class="dac-sprite dac-youtube"></i></a>
-        <a class="dac-fab dac-footer-social-link" href="https://plus.google.com/+AndroidDevelopers"><i class="dac-sprite dac-gplus"></i></a>
-        <a class="dac-fab dac-footer-social-link" href="https://twitter.com/AndroidDev"><i class="dac-sprite dac-twitter"></i></a>
-      </div>
-    </div>
-  </div>
-
-  <hr class="dac-footer-separator"/>
-
-  <?cs if:reference ?>
-    <p class="dac-footer-copyright">
-      <?cs call:custom_copyright() ?>
-    </p>
-    <p class="dac-footer-build">
-      <?cs call:custom_buildinfo() ?>
-    </p>
-  <?cs elif:!hide_license_footer ?>
-    <p class="dac-footer-copyright">
-      <?cs call:custom_cc_copyright() ?>
-    </p>
-  <?cs /if ?>
-
-  <p class="dac-footer-links">
-    <a href="/about/index.html">About Android</a>
-    <a href="/auto/index.html">Auto</a>
-    <a href="/tv/index.html">TV</a>
-    <a href="/wear/index.html">Wear</a>
-    <a href="/legal.html">Legal</a>
-
-    <span id="language" class="locales">
-      <select name="language" onchange="changeLangPref(this.value, true)">
-        <option value="en" selected="selected">English</option>
-        <option value="es">Español</option>
-        <option value="ja">日本語</option>
-        <option value="ko">한국어</option>
-        <option value="ru">Русский</option>
-        <option value="zh-cn">中文(简体)</option>
-        <option value="zh-tw">中文(繁體)</option>
-      </select>
-    </span>
-  </p>
 </div> <!-- end footer -->
diff --git a/tools/droiddoc/templates-sdk/head_tag.cs b/tools/droiddoc/templates-sdk/head_tag.cs
index b3239b5..cfc8b17 100644
--- a/tools/droiddoc/templates-sdk/head_tag.cs
+++ b/tools/droiddoc/templates-sdk/head_tag.cs
@@ -15,7 +15,8 @@
 ?><?cs
   # END if/else devsite ?>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<meta name="viewport" content="width=device-width" />
+<meta name="viewport" content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no" />
+<meta content="IE=edge" http-equiv="X-UA-Compatible">
 <?cs
   if:page.metaDescription ?>
 <meta name="Description" content="<?cs var:page.metaDescription ?>"><?cs
diff --git a/tools/droiddoc/templates-sdk/package.cs b/tools/droiddoc/templates-sdk/package.cs
index 2225565..72d5538 100644
--- a/tools/droiddoc/templates-sdk/package.cs
+++ b/tools/droiddoc/templates-sdk/package.cs
@@ -55,8 +55,9 @@
 <?cs call:class_table("Exceptions", package.exceptions) ?>
 <?cs call:class_table("Errors", package.errors) ?>
 
-<?cs include:"footer.cs" ?>
 </div><!-- end jd-content -->
+
+<?cs include:"footer.cs" ?>
 </div><!-- doc-content -->
 
 <?cs include:"trailer.cs" ?>
diff --git a/tools/droiddoc/templates-sdk/packages.cs b/tools/droiddoc/templates-sdk/packages.cs
index 5056d3a..fe6a5aa 100644
--- a/tools/droiddoc/templates-sdk/packages.cs
+++ b/tools/droiddoc/templates-sdk/packages.cs
@@ -35,8 +35,9 @@
 <?cs /each ?>
 </table>
 
-<?cs include:"footer.cs" ?>
 </div><!-- end jd-content -->
+
+<?cs include:"footer.cs" ?>
 </div> <!-- end doc-content -->
 
 <?cs include:"trailer.cs" ?>
diff --git a/tools/droiddoc/templates-sdk/sdkpage.cs b/tools/droiddoc/templates-sdk/sdkpage.cs
index 817ac47..fde2ae9 100644
--- a/tools/droiddoc/templates-sdk/sdkpage.cs
+++ b/tools/droiddoc/templates-sdk/sdkpage.cs
@@ -399,9 +399,6 @@
 
 
 
-</div><!-- end col-13 for lower-half content -->
-
-
 
 
 <script>