//
// Scaffolding
// --------------------------------------------------

// Reset the box-sizing
//
// Heads up! This reset may cause conflicts with some third-party widgets.
// For recommendations on resolving such conflicts, see
// http://getbootstrap.com/getting-started/#third-box-sizing
* {
  .box-sizing(border-box);
}
*:before,
*:after {
  .box-sizing(border-box);
}

// Body reset

html {
  //font-size: 62.5%;
  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
  height: 100%;
}

// Prevent potential for layout shifts on a page with fixed 100% height. This
// can happen, for example, with the Grammarly extension in Firefox.
html.fixed-size-document {
  position: fixed;
  width: 100%;
}

body {
  font-family: @font-family-base;
  font-size: @font-size-base;
  line-height: @line-height-base;
  color: @text-color;
  background-color: @body-bg;
  min-height: 100%;
  position: relative;
  & > .content {
    min-height: 100vh;
    padding-top: @header-height + @content-margin-vertical;
  }

  .thin-footer {
    padding-bottom: @footer-height;
  }
}

// Reset fonts for relevant elements
input,
button,
select,
textarea {
  font-family: inherit;
  font-size: inherit;
  line-height: inherit;
}

// Keep textarea within horizontal container when resizing
textarea {
  resize: vertical;
}

// Links

a {
  color: @link-color;
  text-decoration: none;

  &:hover,
  &:focus {
    color: @link-hover-color;
    text-decoration: underline;
  }

  &:focus {
    .tab-focus();
  }
}

// Figures
//
// We reset this here because previously Normalize had no `figure` margins. This
// ensures we don't break anyone's use of the element.

figure {
  margin: 0;
}

// Images

img {
  vertical-align: middle;
}

// Responsive images (ensure images don't scale beyond their parents)
.img-responsive {
  .img-responsive();
}

// Rounded corners
.img-rounded {
  border-radius: @border-radius-large;
}

// Image thumbnails
//
// Heads up! This is mixin-ed into thumbnails.less for `.thumbnail`.
.img-thumbnail {
  padding: @thumbnail-padding;
  line-height: @line-height-base;
  background-color: @thumbnail-bg;
  border: 1px solid @thumbnail-border;
  border-radius: @thumbnail-border-radius;
  .transition(all 0.2s ease-in-out);

  // Keep them at most 100% wide
  .img-responsive(inline-block);
}

// Perfect circle
.img-circle {
  border-radius: 50%; // set radius in percents
}

// Horizontal rules

hr {
  margin-top: @line-height-computed;
  margin-bottom: @line-height-computed;
  border: 0;
  border-top: 1px solid @hr-border;
  &.thin {
    margin-top: @line-height-computed / 2;
    margin-bottom: @line-height-computed / 2;
  }
}

// Only display content to screen readers
//
// See: http://a11yproject.com/posts/how-to-hide-content/
@sr-only: {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
};

.sr-only {
  @sr-only();
}

@media (max-width: @screen-xs-max) {
  .sr-only-xs {
    @sr-only();
  }
}

.content {
  padding-top: @content-margin-vertical;
  padding-bottom: @content-margin-vertical;
}

.content-alt {
  background-color: @content-alt-bg-color;
}

.row-spaced {
  margin-top: @line-height-computed;
}

.row-spaced-small {
  margin-top: @line-height-computed / 2;
}

.row-spaced-large {
  margin-top: @line-height-computed * 2;
}
