@media print {
    .noprint {
        display: none;
    }
}

/* 对应 CKEditor 中的 块引用*/
.blockquote {
    font-style: italic;
    font-family: Georgia, Times, "Times New Roman", serif;
    padding: 2px 8px 2px 20px;
    border: 0 solid #ccc;
    border-left-width: 5px;
}

.bgimage {
    background-size: cover;
    background-position: center;
}

/* 限制行数, 并在末尾显示省略号. IE 需配合容器高度 */
.ellipsis {
    display: -webkit-box !important;
    overflow: hidden;
    text-overflow: ellipsis;
    -webkit-box-orient: vertical;
}

.ellipsis-1 {
    -webkit-line-clamp: 1;
}

.ellipsis-2 {
    -webkit-line-clamp: 2;
}

.ellipsis-3 {
    -webkit-line-clamp: 3;
}

.ellipsis-4 {
    -webkit-line-clamp: 4;
}

.ellipsis-5 {
    -webkit-line-clamp: 5;
}

.ellipsis-6 {
    -webkit-line-clamp: 6;
}

.ellipsis-7 {
    -webkit-line-clamp: 7;
}

.ellipsis-8 {
    -webkit-line-clamp: 8;
}


/* 单项: 水平居左, 垂直居上(left-top) */
.flex-lt {
    display: flex;
}

/* 单项: 水平居中, 垂直居上(center-top) */
.flex-ct {
    display: flex;
    justify-content: center;
}

/* 单项: 水平居右, 垂直居上(right-top) */
.flex-rt {
    display: flex;
    justify-content: flex-end;
}

/* 单项: 水平居左, 垂直居中(left-center) */
.flex-lc {
    display: flex;
    align-items: center;
}

/* 单项: 水平居中, 垂直居中(center-center) */
.flex-cc {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* 单项: 水平居右, 垂直居中(right-center) */
.flex-rc {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/* 单项: 水平居左, 垂直居下(left-bottom) */
.flex-lb {
    display: flex;
    align-items: flex-end;
}

/* 单项: 水平居中, 垂直居下(center-bottom) */
.flex-cb {
    display: flex;
    justify-content: center;
    align-items: flex-end;
}

/* 单项: 水平居右, 垂直居下(right-bottom) */
.flex-rb {
    display: flex;
    justify-content: flex-end;
    align-items: flex-end;
}

/* 水平排列, 不自动换行 */
.flex-h {
    display: flex;
    flex-direction: row;
}

/* 水平排列, 自动换行 */
.flex-h-wrap {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
}

/* 垂直排列, 不自动换行 */
.flex-v {
    display: flex;
    flex-direction: column;
}

/* 垂直排列, 自动换行 */
.flex-v-wrap {
    display: flex;
    flex-direction: column;
    flex-wrap: wrap;
}

.flex1 {
    flex: 1
}

.flex2 {
    flex: 2
}

.flex3 {
    flex: 3
}

.flex4 {
    flex: 4
}

.flex5 {
    flex: 5
}

.flex6 {
    flex: 6
}

.flex7 {
    flex: 7
}

.flex8 {
    flex: 8
}

.flex9 {
    flex: 9
}

.flex10 {
    flex: 10
}

/* 日期类型输入框实现 placeholder
   如果在选择日期后不再显示 placeholder,
   onchange="this.className = this.className.replace(' has-value', '') + (this.value != '' ? ' has-value' : '')" */
input[type="date"]:not(.has-value):before {
    color: lightgray;
    content: attr(placeholder);
}

/* 毛玻璃效果 */
/* 没有背景图时使用此类: 内容层半透明 */
.glass-container {
    overflow: hidden;
    background: hsla(0, 0%, 100%, .25) border-box;
    box-shadow: 0 0 0 1px hsla(0, 0%, 100%, .3) inset, 0 .5em 1em rgba(0, 0, 0, 0.6);
}

/* 有背景图时使用此类: 应用毛玻璃效果的容器最开头放置一张背景图(或不使用背景图), 并模糊化处理 */
.glass-container::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: -99; /* 模糊层在最下面 */
    filter: blur(3px) brightness(75%); /* 值越大越模糊 */
    background-image: url("images/bg.jpg");
    background-position: center bottom;
    background-size: cover;
    background-attachment: fixed;
}


/* formvalidation 分步验证 */
.fv-step {
    display: none;
}

.fv-step-active {
    display: block;
}
