/* Custom CSS */

.card-title {
    font-family: Montserrat, sans-serif;
}


/* Standard CSS */
.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: 10%; 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: linear-gradient(
        rgba(0, 0, 0, 1),
        rgba(0, 0, 0, 0),
        rgba(0, 0, 0, 1)),
        url('../public/assets/img/process-separator.svg') center center no-repeat;
    background-size: auto, cover;
}

@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: #e9e9e9;
    color: rgb(0, 0, 0);
}

.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(0, 0, 0, 0),
        rgba(0, 0, 0, 1),
        rgba(0, 0, 0, 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: #F47321; 
    --secondary: #00CC66;
    --primary-accent: #F47321;
    --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;
}

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: var(--team-black);
}

.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(--team-black);
}

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(--team-black);
}

.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: #F47321;
}

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

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

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

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

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

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

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

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

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

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;
}