@font-face {
    font-family: 'Poppins';
    src: url('../css/fonts/Poppins-Regular.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
}

@font-face {
    font-family: 'Poppins';
    src: url('../css/fonts/Poppins-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
}

@font-face {
    font-family: 'Poppins';
    src: url('../css/fonts/Poppins-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
}

body {
    font-family: 'Lato', sans-serif !important;
    background-color: #ffffff !important;
}

body, p, label, .form-text, .page-description, .form-check-label, .dxbl-fl-cpt {
    color: #707070;
}

h1, h2, h3, h4, h5, h6, .viewTitle, .viewTitleUnderline, .form-section-title {
    color: #122538 !important;
    font-family: 'Poppins', sans-serif !important;
    text-align: left;
}

.form-control, .dxbl-text-edit, .dxbl-date-edit, .dxbl-combo-box,
select, input, textarea, option {
    color: #122538 !important;
}

::placeholder {
    color: #a0a0a0 !important;
}

.site-header {
    width: 100%;
    background-color: white;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 100;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
    height: 60px;
}

.header-container {
    width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    height: 100%;
    justify-content: flex-start;
    padding-left: 20px;
    background-color: var(--primaryMandatorColor);
}

.header-logo {
    width: 150px;
    height: 35px;
    background-image: var(--sideBarImgRef);
    background-size: contain;
    background-repeat: no-repeat;
}

.steps-container {
    position: fixed;
    top: 60px;
    left: 20%;
    width: 80%;
    background-color: white;
    border-bottom: 1px solid #e0e0e0;
    z-index: 80;
    padding: 15px 0;
}

.steps-progress {
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    align-items: center;
    padding: 0 20px;
}

.progress-container {
    display: flex;
    justify-content: space-between;
    position: relative;
    max-width: 600px;
    width: 100%;
    margin: 0 auto;
}

    .progress-container::before {
        content: "";
        background-color: #e0e0e0;
        position: absolute;
        top: 50%;
        left: 0;
        transform: translateY(-50%);
        height: 2px;
        width: 100%;
        z-index: 0;
    }

.progress {
    background-color: #122538;
    position: absolute;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    height: 2px;
    width: 0%;
    z-index: 1;
    transition: 0.4s ease;
    border-radius: 0;
}

.circle {
    background-color: #fff;
    color: #707070;
    border-radius: 50%;
    height: 40px;
    width: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid #e0e0e0;
    transition: 0.4s ease;
    z-index: 2;
    user-select: none;
    font-size: 18px;
    cursor: pointer;
}

    .circle.active {
        border-color: var(--thirdMandatorColor);
        background-color: var(--thirdMandatorColor);
        color: white;
        font-weight: bold;
    }

    .circle.completed {
        border-color: #122538;
        background-color: #122538;
        color: white;
        font-weight: bold;
    }

@media (max-width: 1200px) {
    .steps-container {
        left: 0;
        width: 100%;
    }
}

.sidebar-new {
    position: fixed !important;
    top: 60px;
    left: 0;
    width: 20%;
    height: calc(100vh - 60px);
    background-color: var(--primaryMandatorColor);
    border-right: 2px solid lightgrey;
    padding: 2% 2% 50px 2%;
    overflow-y: auto;
    z-index: 85;
}

.main {
    margin-left: 20%;
    width: 80%;
    padding-top: 120px;
}

.content.px-4 {
    padding: 0 20px !important;
}

div.center-div {
    margin-top: 20px;
    background-color: white;
    padding: 30px 50px;
    border-radius: 0;
    box-shadow: none;
    max-width: 1000px;
    margin: auto;
}

.container {
    max-width: 100%;
    text-align: left;
    padding-top: 0;
}

.customer-data-view, .address-data-view, .bank-data-view, .telephony-data-view,
.license-agreement-view, .donation-data-view, .fiber-hero-view, .bew-customer-view {
    padding: 0;
    margin-bottom: 0;
    width: 100%;
}

.viewTitle {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    font-weight: bold;
    margin-left: 0px;
}

.viewTitleMain {
    font-weight: 700;
}

.form-section-title {
    font-size: 1.25rem;
    margin-bottom: 1.5rem;
    font-weight: 500;
    border-bottom: none;
    padding-bottom: 0;
}

.page-description {
    margin-bottom: 2rem;
}

label {
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.form-section {
    margin-bottom: 0rem;
    padding-bottom: 0rem;
}

hr {
    margin: 1.5rem 0;
    border: 0;
    border-top: 1px solid #e0e0e0;
}

.form-text {
    display: block;
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: #707070 !important;
}

.form-info-text {
    margin: 15px 15px 10px 15px;
    text-align: justify;
}

.form-link {
    margin-left: 15px;
    margin-top: 5px;
    display: inline-block;
}

.form-control, .dxbl-text-edit, .dxbl-date-edit, .dxbl-combo-box {
    height: 50px;
    display: block;
    width: 100%;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    line-height: 1.5;
    background-color: #fff;
    background-clip: padding-box;
    border: 2px solid #DFE3E6;
    border-radius: 4px;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

    .form-control:focus, .dxbl-text-edit:focus, .dxbl-date-edit:focus, .dxbl-combo-box:focus {
        border-color: var(--thirdMandatorColor);
        outline: 0;
        box-shadow: 0 0 0 0.2rem rgba(0, 78, 159, 0.1);
    }

    .dxbl-text-edit input,
    .dxbl-text-edit .dxbl-edit,
    input.form-control {
        text-align: left !important;
        vertical-align: middle !important;
        padding: 0.375rem 0.75rem !important;
        line-height: 1.5 !important;
        height: auto !important;
        position: static !important;
        display: block !important;
        width: 100% !important;
    }

    .dxbl-text-edit:not(.form-control) {
        border: 2px solid #DFE3E6 !important;
        border-radius: 4px !important;
        background-color: #fff !important;
    }

    .dxbl-text-edit.form-control {
        padding: 0 !important;
    }

.dxbl-textbox-container {
    display: flex !important;
    align-items: center !important;
    width: 100% !important;
    min-height: calc(1.5em + 0.75rem + 2px) !important;
    position: static !important;
}

.number-input-container {
    width: 100%;
    display: block;
    position: relative;
}

.dxbl-spin-edit {
    width: 100% !important;
    height: calc(1.5em + 0.75rem + 2px) !important;
    border: 2px solid #DFE3E6 !important;
    border-radius: 4px !important;
    background-color: #fff !important;
    position: relative;
    display: flex !important;
    align-items: center !important;
}

    .dxbl-spin-edit:focus {
        border-color: var(--thirdMandatorColor) !important;
        outline: 0;
        box-shadow: 0 0 0 0.2rem rgba(0, 78, 159, 0.1) !important;
    }

    .dxbl-spin-edit input {
        width: 100% !important;
        border: none !important;
        padding: 0.375rem 0.75rem !important;
        background: transparent !important;
        height: auto !important;
        position: static !important;
    }

.dxbl-edit, .dxbl-dropdown, .dxbl-spin-buttons {
    border: none !important;
    box-shadow: none !important;
    position: static !important;
}

.address-data-view .dxbl-text-edit .dxbl-edit {
    transform: none !important;
    position: static !important;
    left: auto !important;
    top: auto !important;
}

.dxbl-caret {
    transform: none !important;
    position: relative !important;
    left: auto !important;
    top: auto !important;
}

.form-check {
    padding-left: 0 !important;
    margin-bottom: 0.5rem;
    display: flex !important;
    align-items: center !important;
}

.form-check-input {
    margin-left: -1.5rem;
}

.form-check-label {
    margin-bottom: 0;
    display: inline-block;
    vertical-align: middle;
    margin-left: 4px;
}

.alert {
    position: relative;
    padding: 0.75rem 1.25rem;
    margin-bottom: 1rem;
    border: 1px solid transparent;
    border-radius: 0.25rem;
}

.alert-info {
    color: #0c5460;
    background-color: #d1ecf1;
    border-color: #bee5eb;
}

.dxbl-fl-g {
    margin-bottom: 2rem;
    background-color: transparent !important;
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: -15px;
    margin-left: -15px;
}

.col-12 {
    position: relative;
    width: 100%;
    padding-right: 15px;
    padding-left: 15px;
    flex: 0 0 100%;
    max-width: 100%;
}

@media (min-width: 1200px) {
    .col-xl-6 {
        flex: 0 0 50%;
        max-width: 50%;
    }

    .col-xl-2 {
        flex: 0 0 16.666667%;
        max-width: 16.666667%;
    }
}

.mb-3 {
    margin-bottom: 1rem;
}

.mt-4 {
    margin-top: 1.5rem;
}

@media (max-width: 1200px) {
    .sidebar-new {
        display: none;
    }

    .main {
        margin-left: 0;
        width: 100%;
    }
}

.dxbl-checkbox {
    margin-right: 8px !important;
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: middle !important;
}

.dxbl-checkbox-radio, .dxbl-checkbox-switch {
    display: inline-flex !important;
    align-items: center !important;
    vertical-align: middle !important;
}

.dxbl-checkbox-check-element {
    vertical-align: middle !important;
}

.dxbl-checkbox {
    display: flex !important;
    align-items: flex-start !important;
}

.dxbl-checkbox-check-container {
    margin-right: 8px !important;
    flex-shrink: 0 !important;
    margin-top: 3px !important;
}

.survey-header {
    text-align: left;
    margin-bottom: 30px;
}

    .survey-header .viewTitle {
        font-family: 'Poppins', sans-serif !important;
        font-weight: bold;
        font-size: 2rem;
        color: #122538 !important;
        margin-bottom: 8px;
        text-align: left;
    }

.survey-subtitle {
    font-family: 'Lato', sans-serif;
    font-size: 1rem;
    color: #122538 !important;
    margin-top: 0;
    font-weight: normal;
}

.customer-data-view h4.viewTitle,
.address-data-view h4.viewTitle,
.bank-data-view h4.viewTitle,
.telephony-data-view h4.viewTitle,
.license-agreement-view h4.viewTitle,
.donation-data-view h4.viewTitle,
.fiber-hero-view h4.viewTitle,
.bew-customer-view h4.viewTitle,
h4.viewTitle {
    font-family: 'Poppins', sans-serif !important;
    font-weight: bold;
    font-size: 1.5rem;
    color: #122538 !important;
    margin-bottom: 20px;
    padding-bottom: 5px;
    border-bottom: none;
    position: relative;
    left: 0;
    width: 100%;
    text-align: left;
    border-bottom: none !important;
    padding-left: 0 !important;
}

h5 {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 500;
    font-size: 1.25rem;
    color: #122538 !important;
    margin-top: 20px;
    margin-bottom: 15px;
    padding-top: 0 !important;
    padding-left: 0 !important;
    text-align: left !important;
}

.dxbl-fl-g-caption {
    font-family: 'Poppins', sans-serif !important;
    font-weight: 500;
    font-size: 1.25rem;
    color: #122538 !important;
    margin-top: 20px;
    margin-bottom: 15px;
}

.dxbl-date-edit {
    display: flex !important;
    position: relative !important;
    width: 100% !important;
    height: calc(1.5em + 0.75rem + 2px) !important;
    background-color: #fff !important;
    border: 1px solid #ced4da !important;
    border-radius: 4px !important;
    overflow: hidden !important;
}

    .dxbl-date-edit .dxbl-dropdown-area {
        position: static !important;
        width: 100% !important;
        height: 100% !important;
        display: flex !important;
        align-items: center !important;
    }

    .dxbl-date-edit .dxbl-input {
        width: 100% !important;
        height: 100% !important;
        position: static !important;
    }

    .dxbl-date-edit input {
        padding: 0.375rem 2.5rem 0.375rem 0.75rem !important;
        border: none !important;
        background: transparent !important;
        height: 100% !important;
        position: static !important;
    }

    .dxbl-date-edit .dxbl-spin-buttons {
        position: absolute !important;
        top: 0 !important;
        right: 0 !important;
        bottom: 0 !important;
        width: 2.5rem !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        border: none !important;
        background: transparent !important;
    }

.dxbl-form-layout-container {
    width: 100% !important;
}

.dxbl-edit,
.dxbl-textbox-container,
.dxbl-dropdown,
.dxbl-dropdown-area {
    width: 100% !important;
}

dxbl-date-edit .dxbl-btn-group {
    position: absolute !important;
    top: 1px !important;
    right: 1px !important;
    bottom: 1px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: auto !important;
    background: transparent !important;
    border: none !important;
    z-index: 5 !important;
}

dxbl-date-edit .dxbl-btn {
    height: calc(1.5em + 0.5rem) !important;
    padding: 0.25rem 0.5rem !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.dxbl-spin-btns {
    position: absolute !important;
    right: 0 !important;
    top: 0 !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    border-left: 1px solid #DFE3E6 !important;
}

.dxbl-btn-group-vertical {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
}

.dxbl-spin-btn-inc, .dxbl-spin-btn-dec {
    height: 50% !important;
    padding: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 2rem !important;
}

.dxbl-text-edit-input {
    width: calc(100% - 2rem) !important;
    height: 100% !important;
    border: none !important;
    outline: none !important;
    padding: 0.375rem 0.75rem !important;
}

.dxbl-fl-item {
    margin-bottom: 1rem !important;
}

.dxbl-fl-cpt {
    display: block !important;
    margin-bottom: 0.5rem !important;
    color: #707070 !important;
}

.dxbl-fl-ctrl {
    width: 100% !important;
}



.productTreeQuantity {
    width: 40px;
    text-align: center;
    margin-right: 5px;
}

#navigation {
    display: flex;
    justify-content: flex-end;
    margin-top: 20px;
    margin-bottom: 30px;
    border-top: 1px solid #e0e0e0;
    padding-top: 20px;
}

.right-nav {
    display: flex;
    gap: 10px;
}

.navigation-button {
    transition: all 0.3s ease;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 120px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    padding: 10px 20px;
    border-radius: 25px;
}

.back-button {
    color: var(--buttonMandatorColor);
    border-color: var(--buttonMandatorColor);
    background-color: transparent;
}

    .back-button:hover {
        color: white;
        background-color: var(--buttonMandatorHoverColor);
        border-color: var(--buttonMandatorHoverColor);
        box-shadow: 0 4px 8px var(--buttonMandatorHoverColor);
        transform: translateY(-1px);
    }

.back-icon {
    margin-right: 8px;
}

.btn-primary.navigation-button,
.next-button {
    background-color: var(--buttonMandatorColor);
    border-color: var(--buttonMandatorColor);
    color: white;
    display: flex;
    align-items: center;
}

    .btn-primary.navigation-button:hover,
    .next-button:hover {
        background-color: var(--buttonMandatorHoverColor);
        border-color: var(--buttonMandatorHoverColor);
        box-shadow: 0 4px 8px var(--buttonMandatorColor);
        transform: translateY(-1px);
    }

.next-icon {
    margin-left: 8px;
}

.required-fields-note {
    margin-bottom: 15px;
    font-size: 0.85rem;
    color: #707070;
}

.back-to-start-container {
    text-align: right;
    margin-top: 30px;
}

.back-to-start-link {
    color: #707070;
    text-decoration: none;
    transition: color 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: flex-end;
}

    .back-to-start-link:hover {
        color: #f1800e;
        text-decoration: none;
    }

.up-arrow-icon {
    margin-left: 8px;
}

.btn-outline-primary {
    color: var(--buttonMandatorColor);
    border-color: var(--buttonMandatorColor);
    padding: 10px 60px;
}

    .btn-outline-primary:hover {
        color: white;
        background-color: var(--buttonMandatorHoverColor);
        border-color: var(--buttonMandatorHoverColor);
    }

.btn-primary {
    background-color: var(--buttonMandatorColor);
    border-color: var(--buttonMandatorColor);
    padding: 10px 60px;
    font-weight: bold;
}

    .btn-primary:hover {
        background-color: #d6700d;
        border-color: #d6700d;
    }

@media (max-width: 768px) {
    .btn-outline-primary,
    .btn-primary {
        padding: 10px 30px;
    }
}

.errorLabel {
    color: red !important;
}


/* Produktauswahl */

/* Erhöhter Abstand zwischen Produktabschnitten */
.product-section {
    margin-bottom: 30px;
    padding-bottom: 10px;
}

/* Style für die Erklärungstexte */
.product-explanation {
    color: #707070;
    font-size: 0.9rem;
    margin-top: 5px;
    margin-bottom: 15px;
    margin-left: 25px;
    max-width: 90%;
    line-height: 1.4;
}

.product-group-header {
    margin-bottom: 5px;
    padding-bottom: 8px;
    border-bottom: 1px solid #e0e0e0;
}


.product-option-row {
    margin-top: 8px;
    margin-bottom: 8px;
}

select.form-control {
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    background-position: right 10px center;
    background-repeat: no-repeat;
    background-size: 12px;
    padding-right: 30px !important;
    background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23707070' d='M207.029 381.476L12.686 187.132c-9.373-9.373-9.373-24.569 0-33.941l22.667-22.667c9.357-9.357 24.522-9.375 33.901-.04L224 284.505l154.745-154.021c9.379-9.335 24.544-9.317 33.901.04l22.667 22.667c9.373 9.373 9.373 24.569 0 33.941L240.971 381.476c-9.373 9.372-24.569 9.372-33.942 0z'%3E%3C/path%3E%3C/svg%3E");
}


.dxbl-dropdown-area .dxbl-caret,
.dxbl-combo-box .dxbl-caret,
.dxbl-date-edit .dxbl-caret {
    display: none !important;
}

.dxbl-dropdown-area::after,
.dxbl-combo-box::after,
.dxbl-date-edit .dxbl-btn-group::before {
    content: "\f078";
    font-family: "Font Awesome 5 Free", FontAwesome;
    font-weight: 900;
    font-style: normal;
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    color: #707070;
    font-size: 14px;
    z-index: 10;
}

/* Sicherstellen, dass das neue Icon richtig positioniert ist */
.dxbl-dropdown-area,
.dxbl-combo-box,
.dxbl-date-edit {
    position: relative !important;
}

@media (max-width: 768px) {
    div.center-div {
        padding: 20px 15px;
    }
    .card {
        border:none;
    }
    }

/*Gestattungsvertrag Hinweisbox NFB*/

.hinweisbox {
    background-color: #f9f9f9;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    padding: 18px 22px;
    font-family: Arial, sans-serif;
    margin: 20px auto;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
}

    .hinweisbox h3 {
        color: #333;
        margin-top: 0;
        margin-bottom: 12px;
        font-size: 17px;
        font-weight: bold;
    }

    .hinweisbox p {
        margin-bottom: 12px;
        line-height: 1.4;
        color: #444;
    }

    .hinweisbox ul {
        padding-left: 18px;
        margin-bottom: 12px;
    }

    .hinweisbox li {
        margin-bottom: 8px;
        color: #444;
    }

.hinweis-text {
    font-weight: 500;
    margin: 12px 0;
}

.info-link {
    display: inline-block;
    color: #0055aa;
    text-decoration: none;
    font-weight: 500;
}

    .info-link:hover {
        text-decoration: underline;
    }

    /*faserfreunde TarifTable Überschrift*/
    .tarifTable p{
        color:white!important;
    }