*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}
*::-webkit-scrollbar {
  display: none;
}
ol,
ul,
li {
  list-style: none;
}
table {
  border-collapse: collapse;
  border-spacing: 0;
}
caption,
th,
td {
  text-align: left;
}
body {
  font-size: 14px;
}
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
input[type="number"] {
  appearance: textfield;
  -moz-appearance: textfield;
}
/***************************** 容器 ***********************************/
.f-full {
  width: 100%;
  height: 100%;
}
/***************************** 文本对齐 ***********************************/
.f-text-left {
  text-align: left;
}
.f-text-center {
  text-align: center;
}
.f-text-right {
  text-align: right;
}
.f-text-vam {
  vertical-align: middle;
}
/***************************** 省略文本 ***********************************/
.f-text-line {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.f-text-lines-5 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 5;
  line-clamp: 5;
  -webkit-box-orient: vertical;
}
.f-text-lines-4 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 4;
  line-clamp: 4;
  -webkit-box-orient: vertical;
}
.f-text-lines-3 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  line-clamp: 3;
  -webkit-box-orient: vertical;
}
.f-text-lines-2 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  line-clamp: 2;
  -webkit-box-orient: vertical;
}
.f-text-lines-1 {
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 1;
  line-clamp: 1;
  -webkit-box-orient: vertical;
}
.f-hidden {
  visibility: hidden;
}
/***************************** 背景 ***********************************/
.f-icon {
  display: inline-flex;
  width: 16px;
  height: 16px;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}
.f-bg {
  background-repeat: no-repeat;
  background-position: center center;
  background-size: 100% 100%;
}
.f-img-contain {
  object-fit: cover;
}
.f-img-cover {
  object-fit: cover;
}
.f-bg-1 {
  background-color: #d2691e;
}
.f-bg-2 {
  background-color: #bc8f8f;
}
.f-bg-3 {
  background-color: #fa8072;
}
.f-bg-4 {
  background-color: #ff4500;
}
.f-bg-5 {
  background-color: #ff7f50;
}
.f-bg-6 {
  background-color: #f4a460;
}
.f-bg-7 {
  background-color: #d2b48c;
}
.f-bg-8 {
  background-color: #cd5c5c;
}
.f-bg-9 {
  background-color: #f08080;
}
.f-bg-10 {
  background-color: #ffa07a;
}
/***************************** 箭头 ***********************************/
.f-arrow-20 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 20px solid transparent;
  border-top: 20px solid #000;
  transform: translateY(25%);
}
.f-arrow-19 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 19px solid transparent;
  border-top: 19px solid #000;
  transform: translateY(25%);
}
.f-arrow-18 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 18px solid transparent;
  border-top: 18px solid #000;
  transform: translateY(25%);
}
.f-arrow-17 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 17px solid transparent;
  border-top: 17px solid #000;
  transform: translateY(25%);
}
.f-arrow-16 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 16px solid transparent;
  border-top: 16px solid #000;
  transform: translateY(25%);
}
.f-arrow-15 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 15px solid transparent;
  border-top: 15px solid #000;
  transform: translateY(25%);
}
.f-arrow-14 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 14px solid transparent;
  border-top: 14px solid #000;
  transform: translateY(25%);
}
.f-arrow-13 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 13px solid transparent;
  border-top: 13px solid #000;
  transform: translateY(25%);
}
.f-arrow-12 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 12px solid transparent;
  border-top: 12px solid #000;
  transform: translateY(25%);
}
.f-arrow-11 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 11px solid transparent;
  border-top: 11px solid #000;
  transform: translateY(25%);
}
.f-arrow-10 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 10px solid transparent;
  border-top: 10px solid #000;
  transform: translateY(25%);
}
.f-arrow-9 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 9px solid transparent;
  border-top: 9px solid #000;
  transform: translateY(25%);
}
.f-arrow-8 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 8px solid transparent;
  border-top: 8px solid #000;
  transform: translateY(25%);
}
.f-arrow-7 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 7px solid transparent;
  border-top: 7px solid #000;
  transform: translateY(25%);
}
.f-arrow-6 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 6px solid transparent;
  border-top: 6px solid #000;
  transform: translateY(25%);
}
.f-arrow-5 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 5px solid transparent;
  border-top: 5px solid #000;
  transform: translateY(25%);
}
.f-arrow-4 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 4px solid transparent;
  border-top: 4px solid #000;
  transform: translateY(25%);
}
.f-arrow-3 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 3px solid transparent;
  border-top: 3px solid #000;
  transform: translateY(25%);
}
.f-arrow-2 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 2px solid transparent;
  border-top: 2px solid #000;
  transform: translateY(25%);
}
.f-arrow-1 {
  display: inline-block;
  width: 0;
  height: 0;
  border: 1px solid transparent;
  border-top: 1px solid #000;
  transform: translateY(25%);
}
.f-rotate-90 {
  transform: rotate(90deg);
}
.f-rotate-180 {
  transform: rotate(180deg) translateY(25%);
}
.f-rotate-270 {
  transform: rotate(270deg);
}
/***************************** 边距 ***********************************/
/***************************** 布局 ***********************************/
.f-block {
  display: block;
}
.f-inlineblock {
  display: inline-block;
}
.f-inlineflex {
  display: inline-flex;
}
.f-flex {
  display: flex;
}
.f-flex-direction-column {
  flex-direction: column;
}
.f-flex-wrap {
  flex-wrap: wrap;
}
.f-flex-justify-start {
  justify-content: flex-start;
}
.f-flex-justify-end {
  justify-content: flex-end;
}
.f-flex-justify-between {
  justify-content: space-between;
}
.f-flex-justify-around {
  justify-content: space-around;
}
.f-flex-justify-center {
  justify-content: center;
}
.f-flex-aligm-start {
  align-items: flex-start;
}
.f-flex-aligm-center {
  align-items: center;
}
.f-flex-aligm-end {
  align-items: flex-end;
}
.f-flex-item-grow-on {
  flex-grow: 1;
}
.f-flex-item-grow-off {
  flex-grow: 0;
}
.f-flex-item-shrink-on {
  flex-shrink: 1;
}
.f-flex-item-shrink-off {
  flex-shrink: 0;
}
.f-center {
  display: flex;
  justify-content: center;
  align-items: center;
}
.f-between {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.f-around {
  display: flex;
  justify-content: space-around;
  align-items: center;
}
.f-flex-1 {
  flex: 1;
}
.f-margin-center {
  margin: 0 auto;
}
.f-pos-center {
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
.f-pos-hcenter {
  left: 50%;
  transform: translateX(-50%);
}
.f-pos-vcenter {
  top: 50%;
  transform: translateY(-50%);
}
.f-pos-topleft {
  left: 0;
  top: 0;
  transform: translate(-50%, -50%);
}
.f-pos-close {
  right: 0;
  top: 0;
  transform: translate(50%, -50%);
}
.f-pos-check {
  right: 0;
  bottom: 0;
}
/***************************** 浮动 ***********************************/
.f-float-left {
  float: left;
}
.f-clear::after {
  display: block;
  content: '';
  clear: both;
}
/***************************** 定位 ***********************************/
.f-relative {
  position: relative;
}
.f-absolute {
  display: block;
  width: 100%;
  position: absolute;
}
.f-absolute-flex {
  display: flex;
  width: 100%;
  position: absolute;
}
.f-absolute-inlineflex {
  display: inline-flex;
  position: absolute;
}
.f-fixed {
  display: block;
  width: 100%;
  position: fixed;
}
.f-fixed-flex {
  display: flex;
  width: 100%;
  position: fixed;
}
.f-fixed-inlineflex {
  display: inline-flex;
  position: fixed;
}
.f-sticky {
  display: block;
  position: sticky;
}
.f-sticky-flex {
  display: flex;
  position: sticky;
}
.f-sticky-inlineflex {
  display: inline-flex;
  position: sticky;
}
.f-cover {
  display: block;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.f-cover-flex {
  display: flex;
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.f-z-10 {
  z-index: 10;
}
.f-z-9 {
  z-index: 9;
}
.f-z-8 {
  z-index: 8;
}
.f-z-7 {
  z-index: 7;
}
.f-z-6 {
  z-index: 6;
}
.f-z-5 {
  z-index: 5;
}
.f-z-4 {
  z-index: 4;
}
.f-z-3 {
  z-index: 3;
}
.f-z-2 {
  z-index: 2;
}
.f-z-1 {
  z-index: 1;
}
/***************************** 动画 ****************************************/
.a-bounce-in {
  animation: bounceIn 0.5s;
}
@keyframes bounceIn {
  0% {
    opacity: 0;
    transform: scale3d(0.3, 0.3, 0.3);
  }
  20% {
    transform: scale3d(1.05, 1.05, 1.05);
  }
  40% {
    transform: scale3d(0.95, 0.95, 0.95);
  }
  60% {
    opacity: 1;
    transform: scale3d(1.01, 1.01, 1.01);
  }
  80% {
    transform: scale3d(0.99, 0.99, 0.99);
  }
  to {
    opacity: 1;
    transform: scale3d(1, 1, 1);
  }
}
.a-fade-in {
  animation: fadeIn 0.1s;
}
@keyframes fadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
/***************************** 其他 ***********************************/
.f-hasevent {
  pointer-events: auto;
}
.f-noevent {
  pointer-events: none;
}
.f-disable {
  pointer-events: none;
  filter: grayscale(1);
  /* W3C */
}
.f-pointer {
  cursor: pointer;
}
.f-none {
  display: none;
}
/***************************** 过渡 ***********************************/
