// Normalize.css is intended to be used as an alternative to CSS resets.
//
// This file is a slight fork of these original sources:
// - normalize.css v3.0.2 | MIT License | git.io/normalize
// - normalize.scss v3.0.2 | MIT/GPLv2 License | bit.ly/normalize-scss
//
// It's suggested that you read the normalize.scss file and customise it to meet
// your needs, rather then including the file in your project and overriding the
// defaults later in your CSS.
// @see http://nicolasgallagher.com/about-normalize-css/
//
// Also: @see http://meiert.com/en/blog/20080419/reset-style-sheets-are-bad/
//       @see http://snook.ca/archives/html_and_css/no_css_reset/
// ==========================================================================

// To achieve a pleasant vertical rhythm, we use Compass' Vertical Rhythm mixins
// so that the line height of our base font becomes the basic unit of vertical
// measurement. We use multiples of that unit to set the top and bottom margins
// for our block level elements and to set the line heights of any fonts. For
// more information, see http://24ways.org/2006/compose-to-a-vertical-rhythm
//
// Establish a vertical rhythm unit using $base-font-size, $base-line-height,
// and $rhythm-unit variables. Also, correct text resizing oddly in IE 6/7 when
// body `font-size` is set using `em` units.
@include establish-baseline();

html {
  // scss-lint:disable VendorPrefix
  // Show a background image that can be used to debug your alignments.
  // @include debug-vertical-alignment();
  font-family: $font-body;
  color: color(text);
  // Prevent iOS text size adjust after orientation change, without disabling
  // user zoom.
  -ms-text-size-adjust: 100%;
  -webkit-text-size-adjust: 100%;
  // On short pages, we want any background gradients to fill the entire height
  // of the browser.
  min-height: 100%;
}

body {
  // Remove default margin and padding.
  margin: 0;
  padding: 0;
}

// Use the saner border-box model for all elements.
* {
  @include box-sizing(border-box);
}

// HTML5 display definitions
// ==========================================================================

// Correct `block` display not defined for any HTML5 element in IE 8/9.
// Correct `block` display not defined for `details` or `summary` in IE 10/11
// and Firefox.
// Correct `block` display not defined for `main` in IE 11.
article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
menu,
nav,
section,
summary {
  display: block;
}

audio,
canvas,
progress,
video {
  @if support-legacy-browser(ie, '9') {
    // Correct `inline-block` display not defined in IE 8/9.
    display: inline-block;
    @if support-legacy-browser(ie, '7') {
      *display: inline;
      *zoom: 1;
    }
  }
  // Normalize vertical alignment of `progress` in Chrome, Firefox, and Opera.
  vertical-align: baseline;
}

// Prevent modern browsers from displaying `audio` without controls.
audio:not([controls]) {
  display: none;
  // Remove excess height in iOS 5 devices.
  height: 0;
}

@if support-legacy-browser(ie, '10') {
  // Address `[hidden]` styling not present in IE 8/9/10.
  [hidden] {
    display: none;
  }
}

// Hide the `template` element in IE 8/9/11, Safari, and Firefox < 22.
template {
  display: none;
}
