// Global reset rules.
// For more specific resets, use the reset mixins provided below
@mixin blueprint-global-reset {
  html { @extend %bp-reset-box-model; }
  body { @extend %bp-reset-element; }
  @include blueprint-nested-reset;
}

// Reset all elements within some selector scope.To reset the selector itself,
// mixin the appropriate reset mixin for that element type as well. This could be
// useful if you want to style a part of your page in a dramatically different way.
@mixin blueprint-nested-reset {
  div, span, object, iframe, p,
  pre, a, abbr, acronym, address,
  code, del, dfn, em, img,
  dl, dt, dd, ol, ul, li, fieldset,
  form, label, legend,
  caption, tbody, tfoot, thead, tr { @extend %bp-reset-element;       }
  #{headers(all)}                  { @extend %bp-reset-element;       }
  #{elements-of-type(html5-block)} { @extend %bp-reset-html5-element; }
  blockquote, q                    { @extend %bp-reset-quotation;     }
  th, td, caption                  { @extend %bp-reset-table-cell;    }
  table                            { @extend %bp-reset-table;         }
  a img                            { @extend %bp-reset-linked-image;  }
}

@mixin blueprint-reset-html5-element {
  @extend %bp-reset-element;
  display: block;
}

@mixin blueprint-reset-box-model {
  margin: 0;
  padding: 0;
  border: 0;
}

@mixin blueprint-basic-reset {
  @include blueprint-reset-box-model;
  @include blueprint-reset-typography;
}

@mixin blueprint-reset-typography {
  font: {
    weight: inherit;
    style: inherit;
    size: 100%;
    family: inherit;
  }
  vertical-align: baseline;
}

@mixin blueprint-reset-quotation {
  @extend %bp-reset-element;
  quotes: "" "";
  &:before, &:after { content: ""; }
}

@mixin blueprint-reset-table-cell {
  @extend %bp-reset-element;
  float: none !important;
  text-align: left;
  font-weight: normal;
  vertical-align: middle;
}

@mixin blueprint-reset-table {
  @extend %bp-reset-element;
  border-collapse: separate;
  border-spacing: 0;
  vertical-align: middle;
}

%bp-reset-box-model     { @include blueprint-reset-box-model;     }
%bp-reset-element       { @include blueprint-basic-reset;         }
%bp-reset-html5-element { @include blueprint-reset-html5-element; }
%bp-reset-quotation     { @include blueprint-reset-quotation;     }
%bp-reset-table-cell    { @include blueprint-reset-table-cell;    }
%bp-reset-table         { @include blueprint-reset-table;         }
%bp-reset-linked-image  { border: none;                           }
