/* -- Allgemein -- */
:root {
    --fehler: #EB0047;
    --hellgrau: #f4f4f4;
}

body {
    color: black;
}

.container {
    padding-right: 15px !important;
    padding-left: 15px !important;
}

.content {
    border-width: 1px;
    border-style: solid;
    border-radius: 0.3em;
    background-color: white;
    padding: 10px;
    margin-top: 1.2em;
}

.col-align-center {
    text-align: center;
}

h1 {
    font-size: 1.6em;
    text-align: center;
    margin-bottom: 1.0rem;
    line-height: 1.2;
}

h2 {
    font-size: 1.3em !important;
    color: black;
}

body .ui-dialog {
    padding: 0;
    border-width: 5px !important;
    border-style: solid !important;
    border-radius: initial !important;
}

body .ui-dialog .ui-dialog-titlebar {
    background: var(--hellgrau);
    color: black;
    font-weight: 700;
    font-size: 1.1em;
    padding: 1rem;
}

body .ui-dialog .ui-dialog-content {
    background: white;
    color: black;
    padding: 1rem;
}

body .ui-dialog .ui-dialog-footer {
    background: white;
    color: black;
    padding: 0.571rem 1rem;
    margin: 0;
    text-align: right;
}

.modal-header {
    border-bottom: none !important;
}

.modal-footer {
    border-top: none !important;
}

.modal-content {
    border-width: 5px !important;
    border-style: solid !important;
    border-radius: initial !important;
}

.confirm-dialog {
    max-width: inherit;
}

.ao-warnung {
    border-style: solid;
    padding: 15px;
    margin-left: 10px;
    margin-right: 10px;
}

.ao-modal-row {
    width: 100% !important;
    margin: 0;
}

.ao-modal-col {
    padding-left: 5px !important;
    padding-right: 5px !important;
}

.ao-text-zentrieren {
    text-align: center;
}

.ao-flex-grid {
    display: flex;
}

.ao-maximale-breite {
    width: 100%;
}

.ao-schrift-gross {
    font-size: 1.4em;
    font-weight: 500;
    color: white;
}

.ao-icon-button {
    width: 1.4em;
    cursor: pointer;
}

.space {
    margin: 2px 0;
}

/* -- Header -- */
.ao-header {
    padding: 0 !important;
}

.ao-header .navbar-brand {
    padding: 0;
}

.navbar-brand > img {
    height: 60px;
}

.ao-header .navbar-brand, .ao-header .navbar-text {
    color: rgba(255, 255, 255, .8);
}

.ao-header .navbar-nav .nav-link {
    color: rgba(255, 255, 255, .9);
}

.ao-header .nav-item.active .nav-link, .ao-header .nav-item:hover .nav-link {
    color: white;
}

.header-menu {
    padding-top: 40px;
}

/* -- Footer -- */

footer {
    margin-top: 20px;
    text-align: center;
    margin-bottom: 40px
}

footer .col-sm-6 {
    padding-left: 0;
}

footer a {
    padding-left: 20px;
    text-decoration: none;
}

@media (min-width: 992px) {

    .ao-header .navbar-collapse {
        height: 60px;
    }

    .ao-header .navbar-nav {
        height: 100%;
    }

    .nav .nav-item {
        border-right-style: solid;
        border-right-width: 1px;
    }

    .nav .nav-item:first-child {
        border-left-style: solid;
        border-left-width: 1px;
    }

    .ao-header .nav-item {
        display: flex;
    }

    .ao-header .nav-link {
        justify-content: center;
        align-items: center;
        display: flex;
        padding-left: 25px !important;
        padding-right: 25px !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    footer a {
        padding-left: 10px;
    }
}

@media (min-width: 768px) {
    .ao-zeilen-padding {
        padding-left: 90px;
        padding-right: 90px;
    }

    .ao-box {
        padding-left: 0.5em;
        padding-right: 0.5em;
        margin-left: -10px;
        margin-right: -10px;
    }
}

@media (max-width: 767px) {
    .ao-box {
        padding-left: 0.5em;
        padding-right: 0.5em;
        margin-left: -5px;
        margin-right: -5px;
    }
}

footer a:visited,
footer a.iavisited,
footer a:focus,
footer a:active {
    text-decoration: none
}

footer a:hover {
    text-decoration: none
}

/* -- Inhaltsbereich -- */

.ao-info-box {
    border-width: 1px;
    border-style: dotted;
    padding: 10px;
    margin-bottom: 1em;
}

.tarif-angebot-box {
    border: 3px solid;
    margin: 0 10px;
    border-radius: 0.5em;
    padding: 10px;
}

.tarif-angebot-trennlinie {
    border-style: dashed;
    border-width: 1.5px;
}

.tarif-angebot-rz-la-trennlinie {
    border-width: 2px;
}

.frage {
    margin-bottom: 1em;
}

.ao-abstand {
    margin-bottom: 1.5em;
}

.ao-abstand-oben {
    margin-top: 0.5em;
}

.zeilen-abstand-klein {
    line-height: 120%;
}

.steuerelement-zeile {
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
    -ms-flex-pack: center;
    justify-content: center;
}

.ao-label-info-button-inline {
    display: inline !important;
}

.ao-label-info-button-abstand {
    margin-bottom: 0.5em;
}

/* -- Icon für Tooltip -- */
.info-icon {
    height: 15px;
    width: 15px;
    cursor: pointer;
}

.button-grafik {
    height: 1.4em;
    width: 1.4em;
    padding: 0.1em;
    cursor: pointer;
}

.radio-inline label {
    margin-left: 1em;
    margin-right: 3em;
}

.checkbox-title {
    font-weight: bold;
    cursor: pointer;
}

.checkbox-label {
    cursor: pointer;
}

.error-msg {
    font-size: small;
    color: var(--fehler);
}

.error-msg ul {
    list-style-type: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.empfehlung-text {
    font-size: 0.8em;
}

/* Tarifdetails */

.ao-tarif-anzeige {
    border-width: 1px;
    border-style: solid;
    padding: 10px;
    height: 95%;
}

.ao-tarif-info-box {
    border: 0;
    margin-left: 5px;
    margin-right: 5px;
}

.ao-tarif-info-box-content {
    padding: 5px;
}

.ao-tarif-info-box li {
    list-style-type: disclosure-closed;
}

.gesamtbeitrag {
    color: black;
    text-align: center;
    margin: 30px 0;
}

/* -- Buttons -- */
.ao-btn {
    color: white;
    width: 100%;
    padding: 0.375rem 0;
}

.ao-btn:hover {
    color: white;
}

.ao-details-button:hover {
    color: black;
    text-decoration: none;
}

.ao-details-button {
    display: block;
    text-align: center;
    padding: 5px;
    border-width: 1px;
    border-style: solid;
    background-color: white;
    font-weight: bold;
    width: 100%;
    color: black;
}

.ao-btn-details a {
    color: black;
}

.ao-only-small-devices {
    display: none;
}

.ao-only-large-devices {
    display: none;
}

@media (max-width: 576px) {
    .ao-only-small-devices {
        display: flex;
    }
}

@media (min-width: 577px) {
    .ao-only-large-devices {
        display: flex;
    }
}

hr.rule {
    text-align: center;
    border-top-width: 2px;
    border-top-style: solid;
    margin-left: 20px;
    margin-right: 20px;
}

.tarif-leistung-nicht-vorhanden {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: center;
    align-items: center;
    align-content: center;
}

.tarif-leistung-nicht-vorhanden div {
    height: 2px;
    width: 30px;
    border: 0;
}

/* Floting-Labels */

.form-label-group {
    position: relative;
    margin-bottom: 1rem;
}

.form-label-group input,
.form-label-group label,
.form-label-group select {
    height: 3.125rem;
    padding: .75rem;
}

.form-label-group label {
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    margin-bottom: 0; /* Override default `<label>` margin */
    line-height: 1.5;
    color: black;
    pointer-events: none;
    cursor: text; /* Match the input under the label */
    border: 1px solid transparent;
    border-radius: .25rem;
    transition: all .1s ease-in-out;
}

.form-label-group input::-webkit-input-placeholder {
    color: transparent;
}

.form-label-group input::-moz-placeholder {
    color: transparent;
}

.form-label-group input:-ms-input-placeholder {
    color: transparent;
}

.form-label-group input::-ms-input-placeholder {
    color: transparent;
}

.form-label-group input::placeholder {
    color: transparent;
}

.form-label-group input:not(:-moz-placeholder-shown),
.form-label-group select:not(:-moz-placeholder-shown) {
    padding-top: 1.25rem;
    padding-bottom: .25rem;
}

.form-label-group input:not(:-ms-input-placeholder),
.form-label-group select:not(:-ms-input-placeholder) {
    padding-top: 1.25rem;
    padding-bottom: .25rem;
}

.form-label-group input:not(:placeholder-shown),
.form-label-group select:not(:placeholder-shown) {
    padding-top: 1.25rem;
    padding-bottom: .25rem;
}

.ao-zentriert-form-label-group input:not(:-moz-placeholder-shown),
.ao-zentriert-form-label-group select:not(:-moz-placeholder-shown) {
    padding-top: .25rem;
    padding-bottom: .25rem;
}

.ao-zentriert-form-label-group input:not(:-ms-input-placeholder),
.ao-zentriert-form-label-group select:not(:-ms-input-placeholder) {
    padding-top: .25rem;
    padding-bottom: .25rem;
}

.ao-zentriert-form-label-group input:not(:placeholder-shown),
.ao-zentriert-form-label-group select:not(:placeholder-shown) {
    padding-top: .25rem;
    padding-bottom: .25rem;
}

.form-label-group input:not(:-moz-placeholder-shown) ~ label {
    padding-top: .25rem;
    padding-bottom: .25rem;
    font-size: 12px;
}

.form-label-group input:not(:-ms-input-placeholder) ~ label {
    padding-top: .25rem;
    padding-bottom: .25rem;
    font-size: 12px;
}

.form-label-group input:not(:placeholder-shown) ~ label,
.form-label-group-select-not-default select:not(:placeholder-shown) ~ label {
    padding-top: .25rem;
    padding-bottom: .25rem;
    font-size: 12px;
}

.form-label-group input:-webkit-autofill ~ label {
    padding-top: .25rem;
    padding-bottom: .25rem;
    font-size: 12px;
}

/* Fallback for Edge
-------------------------------------------------- */
@supports (-ms-ime-align: auto) {
    .form-label-group {
        display: -ms-flexbox;
        display: flex;
        -ms-flex-direction: column-reverse;
        flex-direction: column-reverse;
    }

    .form-label-group label {
        position: static;
    }
}

/* Tarifauswahl-Styling */

input[type=checkbox] ~ label.ao-angebot {
    color: white;
    padding: 10px;
    cursor: pointer;
}

input[type=checkbox]:checked ~ label.ao-angebot {
    color: white;
}

label.ao-angebot {
    display: flex;
    flex-direction: row;
}

div.bezeichner {
    display: flex;
    flex-direction: row;
    justify-content: flex-start;
    font-size: 1.4em;
    font-weight: 500;
    padding: 20px 0 10px;
}

.fortschritt {
    display: flex;
    flex-wrap: wrap;
    margin: 10px -15px 0;
}

.fortschrittsbalken {
    display: flex;
    flex-wrap: wrap;
}

.fortschrittsbalken-schritt {
    background-color: white;
    border-style: solid;
    border-width: thin;
    padding: 3px;
    margin: 20px 1px 0;
    border-radius: 0.1em;
}

.fortschrittsbalken-punkt {
    color: white;
    border-radius: 0.1em;
    height: 40px;
    width: 40px;
    display: inline-block;
    font-weight: bold;
    font-size: 1.5em;
    text-align: center;
}

.fortschrittsbalken-text {
    font-size: 1.5em;
}

.erledigt {
    cursor: pointer;
}

.versteckt {
    visibility: hidden;
}

/* Modaldialog Styling */

.ao-modal {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 100;
}

.ao-dialog {
    background-color: white;
    border-width: 5px;
    border-style: solid;
    margin: 1em;
    padding: 1em;
    width: 600px;
    font-size: 1.1rem;
}

.ausschluss {
    border-width: 3px;
    border-style: solid;
}

ol.decimal {
    list-style-type: none;
    counter-reset: item;
    padding-left: 17px;
    text-indent: -17px;
}

ol.decimal li {
    display: block;
}

ol.decimal li::before {
    content: counters(item, "") ". ";
    counter-increment: item;
}

ol.decimal ol {
    list-style-type: none;
    padding-left: 26px;
    text-indent: -26px;
}

ol.decimal li ol li::before {
    content: counters(item, ".") " ";
    counter-increment: item;
}

/* Tabelle Antragsfragen Styling */
.ao-tabelle, .frage-spalte, .antwort-spalte {
    border-width: 1px;
    border-style: solid;
}

.frage-spalte {
    width: 90%;
}

.antwort-spalte {
    width: 10%;
}

/* Einwilligungen ausgrauen */
.inaktiv {
    color: lightgrey;
}

/* bootstrap overrides */

.custom-select option:first-child {
    display: none;
}

.ao-leere-select-option option:first-child {
    display: unset;
}

.ao-btn-secondary {
    background-color: white !important;
    border-color: white !important;
}

.form-label-group img {
    width: 32px;
    height: 32px;
}

.form-label-group a {
    display: flex;
    justify-content: center;
    align-items: center;
    margin-left: 4px;
}

.ao-einzel-auswahl {
    display: flex;
}

/* box-grid fuer Boxen mit gleicher hoehe */
.ao-box-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-column-gap: 10px;
    margin-bottom: 10px;
    margin-top: 10px;
}

.ao-box-grid-element-1 {
    grid-column: 1;
    grid-row: 1;
}

.ao-box-grid-element-2 {
    grid-column: 2;
    grid-row: 1;
}

@media (max-width: 767px) {
    .ao-box-grid {
        grid-template-columns: repeat(1, 1fr);
        grid-row-gap: 10px;
    }

    .ao-box-grid-element-1 {
        grid-column: 1;
        grid-row: 1;
    }

    .ao-box-grid-element-2 {
        grid-column: 1;
        grid-row: 2;
    }
}

.form-group {
    margin-bottom: 2em;
}

/* Entferne Standard-Radio-Styles */
input[type=checkbox],
input[type=radio] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    border: none;
    border-radius: 0;
    font-size: 1em;
    width: 100%
}

/* graceful degradation for ie8 */
input[type=checkbox],
input[type=radio] {
    width: auto;
    float: left;
    margin-right: .75em;
    background: transparent;
    border: none;
}

input[type=checkbox]:checked,
input[type=checkbox]:not(:checked),
input[type=radio]:checked,
input[type=radio]:not(:checked) {
    background: transparent;
    position: relative;
    margin: 0;
    padding: 0;
}

input[type=checkbox] + label,
input[type=radio] + label {
    cursor: pointer;
}

/* AO-Radio-Style */
input[type=checkbox]:checked::before,
input[type=checkbox]:not(:checked)::before,
input[type=radio]:checked::before,
input[type=radio]:not(:checked)::before {
    content: ' ';
    display: inline-block;
    width: 20px;
    height: 20px;
    position: relative;
    border-width: 2px;
    border-style: solid;
    background: white;
    margin-right: 0.5em;
    vertical-align: middle;
}

input[type=radio]:checked::before,
input[type=radio]:not(:checked)::before {
    border-radius: 30px;
}

input[type=radio]:hover::before {
    box-shadow: inset 0 0 0 2px white;
}

input[type=checkbox]:checked::before {
    content: url("/aokni-zahn/javax.faces.resource/img/icon_check.svg.xhtml");
    box-shadow: inset 0 0 0 2px white;
}

input[type=radio]:checked::before {
    box-shadow: inset 0 0 0 2px white;
}

input[type=checkbox]:disabled::before {
    border-color: lightgray;
}

#cookie-bar {
    height: auto;
    line-height: 30px;
    text-align: center;
    padding: 10px;
}

#cookie-bar.fixed {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 999999;
}

#cookie-bar.fixed.bottom {
    bottom: 0;
    top: auto;
}

#cookie-bar p {
    margin: 0;
    padding: 0;
}

.cookie-bar-button {
    display: inline-block;
    border-radius: 3px;
    text-decoration: none;
    padding: 0 6px;
    margin-left: 8px;
    font-size: 12px;
}

body .ui-accordion .ui-accordion-content {
    color: black;
}

body .ui-accordion .ui-accordion-header {
    color: black;
    transition: none;
}

body .ui-accordion .ui-accordion-header.ui-state-hover {
    color: black;
}

body .ui-accordion .ui-accordion-header.ui-state-active {
    color: black;
}

body .ui-accordion .ui-accordion-header.ui-state-active:hover {
    color: black;
}

body .ui-toggleswitch.ui-toggleswitch-checked .ui-toggleswitch-slider {
    border-color: darkslategray;
}

body .ui-dialog.ui-confirm-dialog .ui-dialog-content {
    padding: 1rem;
}

body .ui-dialog.ui-confirm-dialog .ui-dialog-content > span {
    line-height: inherit;
    margin: 0;
}

.ui-dialog .ui-dialog-title {
    margin: .3em 16px .1em 0;
    float: left;
}

.umbruch-bei-shy {
    -webkit-hyphens: auto;
    -ms-hyphens: auto;
    hyphens: auto;
}

.kein-padding-links {
    padding-left: 0;
}
