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

@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: #E8ECEF;
    color: #14405C;
}

.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(198,86,44,1),
            rgba(198,86,44,1),
            rgba(198,86,44,1))
}

.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: #E9773E;
    --secondary: #00CC66;
    --primary-accent: #C6562C;
    --secondary-accent: #00E16C;
    --team-black: #515151;
    --negative: #BE2223;
    --group-1: #515151;
    --group-1-dark: #C6562C;
    --group-1-medium: #E9773E;
    --group-2: #343434;
    --group-2-dark: #007034;
    --group-2-medium: #00CC66;
}

body {
    font: 400 15px/22.5px Meta Pro, Verdana, Arial, sans-serif !important;
}

h1, h2, a.breadcrumb, table tr th, .side-nav-item a {
    font-family: Meta Pro, Verdana, Arial, sans-serif !important;
    font-weight: 500;
}

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: 500;
    line-height: 63px;
}

header nav .nav-wrapper a.active {
    background: inherit;
    border-bottom-width: 3px;
    border-bottom-style: solid;
    border-bottom-color: var(--team-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;
}

/*berenberg overrides*/

/*override for berenberg 4.1.1*/


.home-teaser {
    color: white !important;
    padding-bottom: 5px;
}

.home-teaser h1 {
    color: var(--team-black) !important;
    padding-top: 20px;
}

.home-teaser h2 {
    padding-bottom: 0;
    margin: 0;
}

.teaser-guide {
    background-color: var(--primary-accent);
}

.teaser-guide h1, .teaser-guide p {
    color: white !important;
}

.teaser-col-content p {
    font-size: 13px;
    padding-bottom: 3px;
}

.teaser-col-content {
    background-color: var(--primary-accent);
    padding: 0 20px;
}

header nav {
    border-bottom-width: 3px;
    border-bottom-style: solid;
    border-bottom-color: var(--primary-accent);
}

.cards {
    padding-bottom: 0;
    margin-bottom: 0;
}

.card-bg-bego {
    background-color: #C6562C;
}

h1 {
    margin: 10px 0 10px;
}

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