.stage {
    position: relative;
    width: 100%;
    margin: 0;
    margin-top: 10px;
}

.stage-picture img {
    width: 100%; height: auto;
    vertical-align: bottom;
}

.stage-caption {
    position: absolute;
    top: 0; bottom: 0;
    right: 0; left: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 1rem;
    text-align: center;
    color: white;
}

.stage-caption h1 {
    color: white;
    font-size: 60px;
    font-weight: 600;
    line-height: 90px;
}

.stage-caption h2 {
    color: white;
    margin-top: 0;
}

.stage-caption h1, .stage-caption h2 {
    background-color: rgba(0, 0, 0, 0.4);
    padding-left: 20px;
    padding-right: 20px;
}

@media (max-width: 992px) {
    .home .stage-caption h1{
        font-size: 7vw;
        line-height: 8vw;
    }
    nav .button-collapse {
        margin: 0;
    }
}

@media (min-width: 600px) {
    .home .header {
        margin-top: 10px;
    }
}

.header-text {
    position: relative;
    top: 30%;
    text-align: center;
    width:100%;
}

.home-teaser{
    padding-bottom: 40px;
    text-align: center;
    color: white;
}

.home-teaser h1 {
    margin-top: 0px;
    padding-top: 40px;
    color: white;
    margin-bottom: 40px;
}

.home-teaser h2 {
    font-weight: 500;
    color: white;
}

.teaser-icon {
    font-size: 64px;
}

.teaser-col-content {
    position: relative;
    width: 100%;
}

.home-teaser .col:not(:last-child) .teaser-col-content:after  {
    position: absolute;
    top: 0; bottom: 0;
    right: calc(-1rem - 8px); /* (padding-right of .process__item) - (half-width) */
    content: "";
    width: 16px;
    background-size: auto, cover;
}

.hb-bar {
    background-color: #5a0035;
}

@media (max-width: 600px) {
    .home-teaser .col:not(:last-child) .teaser-col-content:after {
       display: none; /* visibility: none; */
    }
}

.teaser-guide {
    margin-top: 0px;
    margin-bottom: 40px;
    padding-top: 40px;
    padding-bottom: 40px;
    background-color: #f9f7f3;
    color: #5a0035;
}

.teaser-guide h1 {
    margin-bottom: 40px;
}

.teaser-guide ul {
    margin-top: 0;
    margin-bottom: 0;
}

.teaser-guide li {
    list-style-type: disc;
    line-height: 60px;
    font-size: 18px;
}

.teaser-guide li:not(:first-child):before {
    content: "";
    display: block;
    height: 2px;
    background: linear-gradient(
        to right,
        rgba(90,0,53,0),
        rgba(90,0,53,1),
        rgba(90,0,53,0))
}

.teaser-guide li:last-child {
    border-bottom: none;
}

.btn-publishing {
    padding-top: 10px;
    height: 56px;
}

.cards {
    padding-bottom: 50px;
    margin-top: 15px;
    margin-bottom: 40px;
}

:host /deep/ .card {
    height: 280px !important;
}

.teaser-guide .icon-desc {
    font-size: 7em;
}

.cards-teaser {
    padding-top: 10px;
    padding-bottom: 20px;
    margin: 0 auto;
}

.guide-links a {
    margin-top: 10px;
}

/* ICONS */
@font-face {
    font-family: 'icomoon';
    src:
        url('../public/assets/fonts/icomoon.ttf') format('truetype'),
        url('../public/assets/fonts/icomoon.woff') format('woff');
    font-weight: normal;
    font-style: normal;
}

[class^="ico-"], [class*=" ico-"] {
    /* use !important to prevent issues with browser extensions that change fonts */
    font-family: 'icomoon' !important;
    speak: none;
    font-style: normal;
    font-weight: normal;
    font-variant: normal;
    text-transform: none;
    line-height: 1;

    /* Better Font Rendering =========== */
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.ico-telescope:before {
    content: "\e900";
}

.ico-lab:before {
    content: "\e901";
}

.ico-box:before {
    content: "\e902";
}

.ico-files:before {
    content: "\e903";
}

.ico-grid:before {
    content: "\e904";
}

.ico-equalizer:before {
    content: "\e905";
}

.ico-stats:before {
    content: "\e906";
}

.fade-text {
    -webkit-animation: fadein 2s; /* Safari, Chrome and Opera > 12.1 */
       -moz-animation: fadein 2s; /* Firefox < 16 */
        -ms-animation: fadein 2s; /* Internet Explorer */
         -o-animation: fadein 2s; /* Opera < 12.1 */
            animation: fadein 2s;
}
@keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Firefox < 16 */
@-moz-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Safari, Chrome and Opera > 12.1 */
@-webkit-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Internet Explorer */
@-ms-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}
/* Opera < 12.1 */
@-o-keyframes fadein {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/*Custom NDGIT styles (menu and breadcrumbs) */

:root {
    --primary: #0066FF; 
    --secondary: #00CC66;
    --primary-accent: #0153FF;
    --secondary-accent: #00E16C;
    --team-black: #000;
    --negative: #BE2223;
    --group-1: #343434;
    --group-1-dark: #012980;
    --group-1-medium: #0153ff;
    --group-2: #343434;
    --group-2-dark:  #007034;
    --group-2-medium: #00CC66;
    --hb-green: #41C98E;
}

body {
    font: 400 15px/22.5px Montserrat, sans-serif !important;
}

h1, h2, a.breadcrumb, table tr th, .side-nav-item a {
    font-family: Montserrat, sans-serif !important;
    font-weight: 600 !important;
}

a {
    color: var(--primary);
}
h1, h2, h3 {
    color: #5A0035;
}

.side-nav li.active {
    border-right: 2px solid var(--primary-accent) !important;
}

.side-nav li.active > div > a {
    color: var(--primary-accent) !important;
}

.side-nav li.active i {
    color: var(--primary-accent) !important;
}

.side-nav-item {
    padding-bottom: 10px;
}

.side-nav h2 {
    padding-top: 20px;
    padding-bottom: 10px;
  }

.side-nav ul li a {
    line-height: 30px;
}

.nav-wrapper .brand-logo-link .brand-logo {
    max-height: 40px;
}

a.breadcrumb, .breadcrumb::before {
    color: var(--team-black) !important;
}

.tabs-wraper ul#tabs li a:not(.active) {
    color: var(--team-black);
}

.tabs-wraper ul#tabs li a.active {
    color: var(--primary-accent);
}

.tabs-wraper ul#tabs li.indicator {
    background: var(--primary-accent);
}

.ui-paginator-bottom {
    margin-top: 15px;
}

ul li a.toc-h2, .toc-h3 {
    color: var(--team-black) !important;
}

input:focus:not([readonly]) + label {
    color: var(--team-black) !important;   
}

input:focus:not([readonly]), textarea:focus:not([readonly]) {
    border-bottom: 1px solid var(--primary) !important;
    box-shadow: none !important;
}

input[type="text"].valid {
    border-bottom: 1px solid var(--primary) !important;
    box-shadow: none !important;
}

label.active2 {
    color: var(--team-black) !important; 
}

.dropdown-content li > a, .dropdown-content li > span {
    color: var(--team-black) !important;
}

.chips.focus {
    border-bottom: 1px solid var(--primary);
    box-shadow: 0 1px 0 0 var(--primary);
}

form input[type] {
    margin-bottom: 25px;
}

form input.ng-invalid {
    border-bottom: 1px solid var(--negative);
}

[type="checkbox"]:checked + label::before {
    border-right-color: var(--primary);
    border-bottom-color: var(--primary);
}


[type="radio"]:checked + label::after {
    border-color: var(--primary);
    background-color: var(--primary);
}

.ui-datatable thead th {
    color: var(--team-black);
}

button.btn:not(.btn-flat), div.btn, a.btn-primary, .swagger-ui button.btn.authorize {
    background-color: var(--hb-green);
}

form button.btn:hover, div.btn:hover, a.btn-primary:hover,.swagger-ui button.btn.authorize:hover {
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
    background-color: var(--hb-green);
}

.switch label input[type="checkbox"]:checked + .lever::after {
    background-color: var(--primary) !important;
}
.switch label input[type="checkbox"]:checked + .lever {
    background-color: #599bff;;
}

.create-btn, .refresh-btn, .create-btn:active, .refresh-btn:active{
    background-color: var(--primary);
}

.create-btn:hover, .refresh-btn:hover {
    background-color: var(--primary);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.delete-btn, .remove-btn {
    background-color: var(--negative);
}

.delete-btn:hover, .remove-btn:hover {
    background-color: var(--negative);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.edit-btn, .show-btn, .item-add-btn, .member-add-btn, .details-btn {
    background-color: var(--team-black);
}

.details-btn:hover {
    background-color: var(--team-black);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

.edit-btn:hover, .show-btn:hover, .item-add-btn:hover, .member-add-btn:hover {
    background-color: var(--team-black);
    box-shadow: 0px 3px 5px 2px rgba(0, 0, 0, 0.5);
}

 button.btn.ladda-button:disabled {
    background-color:  var(--team-black) !important;
}

.input-field .prefix.active {
    color: var(--primary);
}

header nav ul li a, header nav .menu-link {
    text-transform: capitalize;
    font-size: 1.25rem;
    font-weight: 600;
    line-height: 63px;
}

header nav .nav-wrapper a.active {
    background: inherit;
    border-bottom: 3px solid black;
}

header nav ul li:last-child a.active {
    text-decoration: none;
    color: #000000;
}

header nav div > ul > li:nth-child(2) a {
    text-transform: none;
}

header nav .nav-wrapper i {
    height: 61px;
    line-height: 61px;
}

header nav ul.dropdown-content {
    top: 50px !important;
}

header nav ul > li > a {
    color: var(--team-black) !important;
}

header nav .nav-wrapper  .collapsible-body li a{
    text-transform: none;
    color: rgb(128, 128, 128) !important;
}

.tabs-wraper ul#tabs li a.active {
    color: #0066ff;
}

.tabs-wraper ul#tabs li.indicator {
    background: #0066ff;
}

header nav ul li .menu-link.pos1 {
    color: #2980b7;
}

header nav ul li .menu-link.pos2 {
    color: #14405c;
}

header nav ul li .menu-link.pos3 {
    color: #1f6089;
}

header nav ul li .menu-link.pos4 {
    color: #689f38;
}

header nav ul li .menu-link.pos5 {
    color: #009688;
}

header nav ul li .menu-link.pos6 {
    color: #2980b7;
}

header nav ul li .menu-link.pos7 {
    color: #14405c;
}

header nav ul li .menu-link.pos8 {
    color: #1f6089;
}

footer.page-footer.grey {
   background-color: var(--team-black) !important;
}

div.wrapper.top-wrapper .kpi1 .card-panel {
    background: var(--group-1) !important;
}

div.wrapper.top-wrapper .kpi2 .card-panel {
    background: var(--group-1-dark) !important;
}

div.wrapper.top-wrapper .kpi3 .card-panel {
    background: var(--group-1-medium) !important;
}

div.wrapper.bottom-wrapper .kpi1 .card-panel {
    background: var(--group-2) !important;
}

div.wrapper.bottom-wrapper .kpi2 .card-panel {
    background: var(--group-2-dark) !important;
}

div.wrapper.bottom-wrapper .kpi3 .card-panel {
    background: var(--group-2-medium) !important;
}

.column.guides .light-green {
    background: var(--group-2-medium) !important;
    color: white !important;
}

.column.guides .red {
    background: var(--group-1-medium) !important;
    color: white !important;
}

.card.card-owner .card-type.chip {
    background: var(--group-1-medium) !important;
}

.card.card-demo .card-type.chip {
    background: var(--group-2-medium) !important;
}

.card.card-inactive .card-type.chip {
    background: #7f7f7f !important;
}

.card.card-productive .card-type.chip {
    background: #002575 !important;
}

.card.card-productive {
    background: #DEE2F4 !important;
}
.card-bg-hb {
    background-color: #5A0035;
}