/*
	KFH - Tools
*/
.display-none {
    display: none;
}
.invisible {
    visibility: hidden;
}
.full-w {
    width: 100%;
}
.no-wrap {
    white-space: nowrap;
}
.cursor-p {
    cursor: pointer;
}
.no-border {
    border: none;
}
.border-shadow {
    box-shadow: 0 3px 7px rgba(86, 96, 117, 0.7);
}
.text-error {
    color: red;
    font-weight: 500;
}
input.input-error {
    border: 1px solid red;
}
.text-warning {
    color: #F39C11;
    font-weight: 600;
}
.italic {
    font-style: italic;
}
.ellipsis {
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/*** Interactive mechanisms ***/

/* display designated descendants only on hover of a designated ancestor */
/* descendants have class 'visible-on-designated-ancestor-hover', and the ancestor has class 'designated-hover-ancestor' */
.designated-hover-ancestor .visible-on-designated-ancestor-hover {
    visibility: hidden;
}
.designated-hover-ancestor:hover .visible-on-designated-ancestor-hover  {
    visibility: visible;
}

/*** BUTTONS ***/
.button-default {
    display: inline-block;
    padding: 6px 12px;
    margin-bottom: 0;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.42857143;
    text-align: center;
    white-space: nowrap;
    vertical-align: middle;
    cursor: pointer;
    border-radius: 4px;
}
.btn-primary-reverse {
    background-color: #FFFFFF;
    border: 1px solid #1AB394;
    color: #1AB394;
    transition: 0.3s;
}
.btn-primary-reverse:hover {
    background-color: #1AB394;
    color: #FFFFFF;
}
.btn-edit-equipment{
    display: flex;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    width: 3rem;
    height: 3rem;
    border-radius: 5px;
    background-color: #FFFFFF;
    border: 1px solid #dddddd;
    color: #808080;
    transition: 0.3s;
}
.btn-edit-equipment:hover {
    background-color: #808080;
    color: #FFFFFF;
}

/*** FONTS ***/
.font-xs {
    font-size: 12px;
}
.font-s {
    font-size: 14px;
}
.font-md {
    font-size: 16px;
}
.font-l {
    font-size: 20px;
}
.font-xl {
    font-size: 24px;
}
.font-xxl {
    font-size: 40px;
}

/*** COLORS ***/
.alert-color {
    color: #ed5565;
}
.light-grey {
    color: #A1A4A6;
}
.dark-grey {
    color: #676a6c;
}
.kfh-color {
    color: #1AB394;
}
.wh-color {
    color: #fff;
}
.red-title {
    background-color: #ed5565;
    color: #FFFFFF;
}

/*** POSITIONS ***/
.relative {
    position: relative;
}
.i-block {
    display: inline-block;
}
.inline-simple {
    display: inline;
}
.fl-right {
    float: right;
}
.fl-left {
    float: left;
}
.va-middle {
    vertical-align: middle !important;
}
.flex {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
}
.flex-wrap {
    -webkit-flex-wrap: wrap;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
}
.flex-wrap-reverse {
    -webkit-flex-wrap: wrap-reverse;
    -ms-flex-wrap: wrap-reverse;
    flex-wrap: wrap-reverse;
}
.flex-space-between {
    -webkit-box-pack: justify;
    -webkit-justify-content: space-between;
    -moz-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
}
.flex-space-around {
    -webkit-justify-content: space-around;
    -ms-flex-pack: distribute;
    justify-content: space-around;
}
.flex-align-center {
    -webkit-box-align: center;
    -webkit-align-items: center;
    -moz-box-align: center;
    -ms-flex-align: center;
    align-items: center;
}
.flex-column {
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -moz-box-orient: vertical;
    -moz-box-direction: normal;
    -ms-flex-direction: column;
    flex-direction: column;
}
.flex-grow {
    -webkit-box-flex: 1; /* grow */
    -webkit-flex: 1 0 auto;
    -moz-box-flex: 1;
    -ms-flex: 1 0 auto;
    flex: 1 0 auto;
}
.flex-child-fit { /* Not the same default values on IE compared to other browsers */
    -webkit-box-flex: 1; /* grow */
    -webkit-flex: 1 1 auto; /* grow shrink basis */
    -moz-box-flex: 1;
    -ms-flex: 1 1 auto; /* grow shrink basis */
    flex: 1 1 auto; /* grow shrink basis */
}

.parent-height {
    height: 100%;
}
.maximize-and-center-in-absrel-ancestor {
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
}
.as-large-as-container {
    min-height: 100%;
    min-width: 100%;
}
.as-large-as-content {
    display: inline-block;
    vertical-align: top; /* the inline-block element generates a line-break equal to line-height, so push it below the top, at the risk of having a shadow margin under the element */
}

.center-icon {
    display: flex;
    display: -ms-flexbox;
    flex-direction: column;
    -ms-flex-direction: row;
    align-content: center;
    -ms-flex-align: center;
    justify-content: center;
    -ms-flex-pack: center;
    width: 100%;
    height: 100%;
}
.image-filled {
    /* Position child element relatively to this one */
    position: relative;
    /* Hide cropped parts of child */
    overflow: hidden;
}
.image-filled > img {
    /* Scale element to a percent of its actual size, which will be the smallest possible size for it */
    /* After that, it will stop shrinking and we will crop a part in its center */
    /* This results in the visual element becoming a smaller box in the middle of its actual box */
    -webkit-transform: scale(.01);
       -moz-transform: scale(.01);
        -ms-transform: scale(.01);
            transform: scale(.01);

    /* Make the element at least as wide as its container, and at least as high as it */
    /* Apply the scaling factor from above to make the visuals in the element fit; its actual size hasn't changed */
    /* Add an extra thousandth to avoid blank gaps on rounding errors */
    min-width:  10010%; /* Broken when printing on IE10 */
    min-height: 10010%;

    /* Element is put in a wide virtual container, centered thanks to automatic margins */
    /* The sum of lateral positions is kept within values accepted by web browsers, 20000000px max. each as a reference */
    /* The sum of both values equals the supported parent element width multiplied by the scaling factor above, 200000px here */
    position: absolute;
    top:    0;
    bottom: 0;
    left:   -10000000px;
    right:  -10000000px;
    margin: auto;
}