diff --git a/core/pathmap.mk b/core/pathmap.mk
index badf8bc..a32f4e7 100644
--- a/core/pathmap.mk
+++ b/core/pathmap.mk
@@ -115,7 +115,8 @@
         v8/renderscript \
         v13 \
         v17/leanback \
-        design
+        design \
+        percent
 
 #
 # A list of all source roots under frameworks/multidex.
diff --git a/target/product/embedded.mk b/target/product/embedded.mk
index f0d74df..c40de4f 100644
--- a/target/product/embedded.mk
+++ b/target/product/embedded.mk
@@ -70,6 +70,7 @@
     surfaceflinger \
     toolbox \
     toybox \
+    tzdatacheck \
 
 # SELinux packages
 PRODUCT_PACKAGES += \
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..8ec034f 100644
--- a/tools/droiddoc/templates-sdk/sdkpage.cs
+++ b/tools/droiddoc/templates-sdk/sdkpage.cs
@@ -116,6 +116,7 @@
     <td><?cs var:ndk.win64.legacy_bytes ?></td>
     <td><?cs var:ndk.win64.legacy_checksum ?></td>
   </tr> -->
+<!--   (this item is deprecated)
   <tr>
     <td>Mac OS X 32-bit</td>
     <td>
@@ -124,8 +125,9 @@
     </td>
     <td><?cs var:ndk.mac32_bytes ?></td>
     <td><?cs var:ndk.mac32_checksum ?></td>
-  </tr>
- <!--  <tr>
+  </tr> -->
+ <!-- (this item is deprecated)
+  <tr>
     <td>
   <a onClick="return onDownload(this)"
      href="http://dl.google.com/android/ndk/<?cs var:ndk.mac32.legacy_download ?>"><?cs var:ndk.mac32.legacy_download ?></a>
@@ -399,9 +401,6 @@
 
 
 
-</div><!-- end col-13 for lower-half content -->
-
-
 
 
 <script>
