// ------------------------------------
// %clearfix
// ------------------------------------
%clearfix {
  &::after {
    content: "";
    display: table;
    clear: both;
  }
}

// ------------------------------------
// %visually-hidden
// ------------------------------------
%visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

// ------------------------------------
// %center-abs (absolute center)
// ------------------------------------
%center-abs {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

// ------------------------------------
// %text-truncate (single-line ellipsis)
// ------------------------------------
%text-truncate {
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

// ------------------------------------
// %sr-only (screen-reader only)
// ------------------------------------
%sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

// ------------------------------------
// %full-size
// ------------------------------------
%full-size {
  width: 100%;
  height: 100%;
}

// ------------------------------------
// %no-select
// ------------------------------------
%no-select {
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}

// ------------------------------------
// %hover-effect (soft hover)
// ------------------------------------
%hover-effect {
  transition: all 0.3s ease-in-out;

  &:hover {
    opacity: 0.85;
    transform: scale(1.02);
  }
}
// ------------------------------------
// Placeholder Mixin (input placeholder)
// ------------------------------------

@mixin placeholder($color: #999, $opacity: 1) {
  &::-webkit-input-placeholder {
    color: $color;
    opacity: $opacity;
  }
  &::-moz-placeholder {
    color: $color;
    opacity: $opacity;
  }
  &:-ms-input-placeholder {
    color: $color;
    opacity: $opacity;
  }
  &::-ms-input-placeholder {
    color: $color;
    opacity: $opacity;
  }
  &::placeholder {
    color: $color;
    opacity: $opacity;
  }
}
