/**
 * Copyright 2016 Leif Olsen. All Rights Reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Use of this module requires the user to include variables from material-design-lite
//@import "../../node_modules/material-design-lite/src/variables";
//@import "../../node_modules/material-design-lite/src/mixins";
@import "../variables";

.mdlext-layout__sticky-header {
  position: absolute;
  overflow: visible;
  background: $mdlext-sticky-header-background;
  transition: 0.1s ease-in-out;

  &.mdlext-is-scroll {
    background: $mdlext-sticky-header-background-scroll;
  }
}

*:not(.is-small-screen) .mdlext-layout__sticky-header {
  .mdl-layout__drawer-button {
    visibility: hidden;
  }
  .mdl-layout__header-row {
    padding-left: $padding;
  }
}

*:not(.mdl-layout--fixed-drawer).has-drawer .mdlext-layout__sticky-header,
.is-small-screen.has-drawer .mdlext-layout__sticky-header {
  display: flex;

  .mdl-layout__drawer-button {
    visibility: visible;
  }
  .mdl-layout__header-row {
    padding-left: $padding + $layout-drawer-button-desktop-size;
  }
}
