@import "../mixins/_forms.less";
@import "../mixins/_image.less";
@import "../mixins/_tab-focus.less";
@import "../mixins/_vendor-prefixes.less";

/**
 * Scaffolding - Base HTML element styles
 *
 * Note: All spacing values use proper design tokens.
 *
 * Intentionally hardcoded values:
 * - font-size: 10px (root font size for rem calculations)
 * - margin: -1px (accessibility trick for .sr-only)
 * - width/height: 1px (accessibility trick for .sr-only)
 * - border-radius: 50% (circle shape, semantically correct)
 * - 1px borders: Standard border widths
 */

// 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);
  outline-color: @component-color-focus;
}

*:before,
*:after {
  .box-sizing(border-box);
}

// Body reset
html {
  font-size: 10px;

  -webkit-tap-highlight-color: rgba(0, 0, 0, 0);
}

body {
  overflow-x: hidden;
  background-color: @body-background-color;
  color: @text-color;
  font-size: @font-size-base;
  font-family: @font-family-base;
  line-height: @line-height-base;
}

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

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

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

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

  &.no-decoration {
    &:hover,
    &:focus {
      outline: none;
      text-decoration: none;
    }

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

  &.text-muted {
    &:hover,
    &:focus {
      color: @link-color;
      text-decoration: none;
    }
  }
}

// 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();
}

.img-square {
  width: 100%;
  aspect-ratio: 1;
  object-fit: scale-down;
}

// Removed unused Bootstrap 3 image utility classes - verified 0 usages
// .img-rounded, .img-thumbnail, .img-circle

hr {
  margin-top: @line-height-computed;
  margin-bottom: @line-height-computed;
  border: 0;
  border-top: 1px solid @hr-border;
}

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

// Use in conjunction with .sr-only to only display content when it's focused.
// Useful for "Skip to main content" links, see http://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
.sr-only-focusable {
  &:active,
  &:focus {
    z-index: 10;
    overflow: visible;
    clip: auto;
    margin: 0;
    width: auto;
    height: auto;
  }
}

// iOS "clickable elements" fix for role="button"
// Fixes "clickability" issue (and more generally, the firing of events such as focus as well)
// for traditionally non-focusable elements with role="button"
// see https://developer.mozilla.org/en-US/docs/Web/Events/click#Safari_Mobile
[role='button'] {
  cursor: pointer;
}
