/* ===== assets/css/frontend/calculator.css ===== */
:root {
    --ca_hintergrund_farbe: #fff;
    --ca_text_family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    --ca_text_size: 14;
    --ca_text_color: #333;
    --ca_text_weight: bold;
    --ca_text_family2: Arial;
    --ca_text_size2: 12;
    --ca_text_color2: #333;
    --ca_text_weight2: normal;
    --ca_zeile_farbe: #fff;
    --ca_zeile_farbe2: #fff;
    --ca_text_color3: #47a447;
    --ca_text_weight3: bold;
    --ca_rahmen_hintergrund: #f5f5f5;
    --ca_rahmen_textcolor: #999999;
    --ca_rahmen_textfamily: Arial;
    --ca_rahmen_textsize: 12;
    --ca_button_background: #ff7620;
    --ca_button_background_hover: #e85f0c;
    --ca_button_fontcolor: #fff;
    --ca_button_fontcolor_hover: #fff;
    --ca_link_color: #ffffff;
    --ca_link_color_hover: #ffffff;
    --ca_link_color_background: #ff7620;
    --ca_link_color_background_hover: #e85f0c;
    --ca_link_color_background_use: 1;
    --ca_link_fontfamily: Arial, Tahoma;
    --ca_link_fontsize: 12;
    --ca_anmerkung_color: #999;
    --ca_anmerkung_size: 10;
    --ca_fussnote_color: #444;
    --ca_fussnote_size: 10;
    --ca_headline_show_h1: 1;
}

img.ca_device-img {
    max-width: 200px !important;
    width: 100% !important;
    max-height: 100% !important;
}

/*=========== 1. General Settings ===========*/
:is(#ca_calc, .ca-calc-root) {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    background-color: var(--ca_hintergrund_farbe);
    max-width: 1210px;
    min-width: 60%;
    padding-left: 18px;
    padding-right: 18px;
    padding-bottom: 15px;
}

.ca-elementor-widget [hidden] {
    display: none;
}

.ca-elementor-widget,
.ca-elementor-widget * {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

.ca-elementor-widget *::before,
.ca-elementor-widget *::after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
}

/*=========== 2. Calculator Form Settings ===========*/
/*
 * Layout/structure only.
 * Visual chrome for Elementor widgets: assets/css/frontend/widgets/calculator-widget.css
 */

.ca_form-abstand {
    margin-bottom: 10px;
}

.ca_label {
    display: block;
    margin: 0 0 7px;
}

.ca_label-text-form {
    padding-left: 17px;
    padding-top: 6px;
    margin-right: 7px;
}


/* --- Form Select --- */

.ca_filter {
    flex-wrap: wrap;
    gap: 12px;
    margin-right: -12px;
}

.ca_filter-checkbox-label {
    padding-left: 22px;
    padding-top: 6px
}

/* Footnotes Visibility Control */
.ca-elementor-widget[data-show-footnotes="no"] .ca_footnotes {
    display: none !important;
}

.ca_filter>div,
.ca_filter>label,
.ca_filter_checkbox {
    width: 100%;
}

.ca_addressinfo {
    width: 100% !important;
}

:is(#ca_calc, .ca-calc-root) select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    text-indent: 0.01px !important;
    text-overflow: '';
}

.ca_select_subtext {
    font-size: 12px;
    margin-top: 4px;
}

.ca_select-group select {
    display: block;
    width: 100%;
    margin: 0;
    padding-right: 30px;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");
    background-position: center right 0;
    background-repeat: no-repeat;
}

.ca_filter>div.ca_mobile-half {
    width: 100%;
}

@media (min-width: 400px) {
    .ca_filter>div.ca_mobile-half {
        width: 48%
    }
}

@media (min-width: 900px) {
    .ca_filter>div.ca_mobile-half {
        width: 100%
    }
}

@media (min-width: 900px) {
    .ca_show_compare_active_mobile {
        display: none;
    }
}

/* --- Form Input --- */

.ca_input-group input[type="text"] {
    display: block;
    width: 100%;
    margin: 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* --- Form Submit Button --- */

.ca_optgroup {
    font-weight: bold;
}

/*
 * Provider / company network tags — layout helpers only.
 * Visual chrome for Elementor widgets: calculator-widget.css
 */
.ca_provider_tag_wrapper,
.ca_company_tag_wrapper {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    width: 100%;
}

.ca_provider_tag,
.ca_company_tag {
    position: relative;
    cursor: pointer;
}

.ca_provider_tag label,
.ca_company_tag label {
    display: block;
    width: 100%;
    height: 100%;
    margin: 0;
}

.ca_provider_tag label input,
.ca_company_tag label input {
    position: absolute;
    display: none;
}

.ca_provider_tag label span,
.ca_company_tag label span {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    cursor: pointer;
}

.ca_provider_tag_logo,
.ca_company_tag_logo {
    display: block;
    width: auto;
    max-width: 100%;
    height: 28px;
    margin: auto;
    object-fit: contain;
}

.ca_provider_tag.vodafone .ca_provider_tag_logo {
    height: 18px;
}

.ca_provider_tag.o2 .ca_provider_tag_logo,
.ca_extended_filter .ca_provider_tag.o2 .ca_provider_tag_logo {
    height: 18px;
}

.ca_button-submit {
    display: block;
    width: 100%;
    cursor: pointer;
    text-align: center;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* --- Form Weitere Leistungen Button --- */
/* Visual styles: calculator-widget.css */
.ca_button-weitere-optionen {
    cursor: pointer;
    text-align: center;
    text-decoration: none;
}

.ca_button-weitere-optionen i {
    padding-left: 5px;
}

.ca_filter_more-options-wrapper {
    margin-top: 12px;
    align-items: baseline;
}

.ca_filter_more-options {
    width: 100%;
}

.ca_filter_more-options-extended {
    padding: 24px 0;

}

.ca_extended_moreOption {
    margin-top: 64px;
    border-top: 1px solid lightgray;
    border-bottom: 1px solid lightgray;
    padding: 24px 0;
}

.ca_filter_submit {
    position: relative;
}

@media(max-width: 900px) {
    .ca_filter .ca_filter_submit {
        width: 100%;
        padding: 6px 0;
    }
}

.ca_filter-options {
    justify-content: center;
    margin-top: 14px;
    gap: 14px
}

.ca-more-options-panel,
#caFormMoreOptions {
    width: 100%;
}

.ca-more-options-panel[style],
#caFormMoreOptions[style] {
    height: auto !important;
}

.ca_formMoreOptions-wrapper {
    gap: 12px;
    flex-wrap: wrap;
}

.ca_formMoreOptions-extended.ca_formMoreOptions-wrapper {
    gap: 8px;
}


@media(min-width: 576px) {

    .ca_filter {
        margin-right: -12px;
    }

    .ca_filter>div,
    .ca_filter>label,
    .ca_filter_checkbox {
        width: calc(50% - 24px);
    }

    .ca_filter .ca_filter_more-options {
        width: 100%;
    }
}


@media(min-width: 900px) {

    .ca_formMoreOptions-extended.ca_formMoreOptions-wrapper>div,
    .ca_formMoreOptions-extended.ca_formMoreOptions-wrapper>label {
        width: calc(20% - 12px);
    }

    .ca_extended_moreOption.ca_formMoreOptions-wrapper>div,
    .ca_extended_moreOption.ca_formMoreOptions-wrapper>label {
        width: calc(20% - 12px);
    }

    .ca_filter>div,
    .ca_filter>label,
    .ca_filter_checkbox,
    .ca_formMoreOptions-wrapper>div,
    .ca_formMoreOptions-wrapper>label {
        width: calc(25% - 12px);
    }

    .ca_filter .ca_filter_more-options {
        width: calc(75% - 12px);
    }

    .ca_extended_filter.ca_filter>div,
    .ca_extended_filter.ca_filter>label,
    .ca_extended_filter.ca_filter div.ca_filter_more-options {
        width: calc(50% - 24px);
    }
}

@media(min-width: 900px) {

    .ca_extended_filter.ca_filter div.ca_filter_more-options {
        width: calc(80% - 12px);
    }

    .ca_extended_filter.ca_filter>div,
    .ca_extended_filter.ca_filter>label {
        width: calc(20% - 12px);
    }
}

/* --- Checkbox und Radio Button --- */

.ca_control {
    display: inline-block;
    position: relative;
    padding-left: 5px;
    cursor: pointer;
    font-size: 14px;
}

.ca_control input {
    position: absolute;
    z-index: -1;
    opacity: 0;
    display: none;
}

.ca_vergleich {
    display: none;
}

.ca_control_indicator {
    position: absolute;
    border-radius: 50%;
    top: 3px;
    left: 0;
    height: 18px;
    width: 18px;
    background: #ffffff;
    border: 1px solid #156fbc;
}

.ca_control:hover input~.ca_control_indicator,
.ca_control input:focus~.ca_control_indicator {
    background: #ffffff;
}

.ca_control input:checked~.ca_control_indicator {
    background: #156fbc;
}

.ca_control:hover input:not([disabled]):checked~.ca_control_indicator,
.ca_control input:checked:focus~.ca_control_indicator {
    background: #156fbc;
}

.ca_control input:disabled~.ca_control_indicator {
    background: #156fbc;
    pointer-events: none;
    opacity: .75;
}

.ca_control_indicator:after {
    content: '';
    position: absolute;
    display: none;
}

.ca_control input:checked~.ca_control_indicator:after {
    display: block;
}

.ca_control-checkbox .ca_control_indicator:after {
    left: 4px;
    top: 1px;
    width: 8px;
    height: 11px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
}

.ca_control-checkbox input:disabled~.ca_control_indicator:after {
    border-color: #FFFFFF;
}

.ca_checkbox-radio-abstand label {
    display: inline-block;
    margin-top: 5px;
}

.ca_checkbox-label {
    font-size: 13px;
    padding-top: 6px;
    padding-left: 20px;
}

.ca_icon-text {
    font-size: 11px;
    text-align: center;
}

/*=========== 3. Calculator Header Settings ===========*/

.ca_headzeile {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    color: var(--ca_rahmen_text_color) !important;
    background: var(--ca_rahmen_hintergrund) !important;
    border-top: 1px solid #ccc !important;
    line-height: 14px !important;
}

/*=========== 4. Calculator Row Settings ===========*/


.ca_zeile {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    font-weight: normal;
    padding: 20px;
    border: 1px solid #cccccc;
    color: var(--ca_text_color);
    margin-top: 10px;
    position: relative;
}

.ca_zeile-wrapper {
    flex-wrap: wrap;
}

@media (min-width: 900px) {
    .ca_product-device div {
        min-width: 100px;
    }
}

.ca_product-general-info {
    flex: 1 0 25%;
    flex-shrink: 1;
    order: 2;
}

.ca_product-general-info a {
    margin-bottom: 24px;
}


.ca_product-general-info.ca_bundle {
    flex-direction: column;
}

@media (min-width: 438px) {
    .ca_product-general-info {
        order: 1;
    }
}

@media (min-width: 900px) {
    .ca_product-general-info {
        flex-direction: column;

    }
}

@media(max-width: 900px) {
    .ca_product-general-info.ca_flex-space-between {
        justify-content: space-between;
        gap: 12px;
        align-items: center;
    }
}

@media(max-width: 438px) {
    .ca_bundle.ca_product-general-info>a {
        flex: none !important;
    }
}

.ca_product-device {
    order: 1;
}

.ca_product-higlights {
    flex: 1 0 100%;
    order: 3;
}

.ca_product-price {
    flex: 1 0 100%;
    order: 4;
}

.ca_product-info {
    line-height: 18px !important;
    margin: 12px 0;
    flex: 1;
    order: 2;
}

.ca_bundle .ca_img-testsiegel-wrapper {
    order: 3;
}


@media (max-width: 900px) {
    .ca_device-info {
        display: flex;
        flex-direction: column;
        justify-content: center;
    }
}


@media (min-width: 438px) and (max-width: 900px) {
    .ca_product-device {
        max-width: 60%;
    }
}

@media (min-width: 900px) {
    .ca_product-general-info {
        order: inherit;
        flex: 1;
    }

    .ca_product-device {
        order: inherit;
        max-width: none;
        flex: 1;
    }

    .ca_product-higlights {
        flex: 2;
        order: inherit;

    }

    .ca_product-price {
        flex: 1;
        order: inherit;
    }

    .ca_product-info {
        flex: 1;
        order: inherit;
    }

    .ca_product-general-info.ca_bundle .ca_product-info {
        flex: none !important;
    }
}

/* --- ECO --- */

.eco-wrapper {
    border: 1px solid #00854a;
    border-radius: 4px;
    padding: 4px;
    width: 62px;
    margin-top: 12px;
    height: fit-content;
}

@media (max-width: 900px) {
    .eco-wrapper {
        margin-left: 12px;
    }
}

span.eco-text {
    font-weight: bold;
    color: #00854a;
}

.eco-wrapper img {
    width: 16px;
    margin-bottom: -2px;
}

/* --- Logo Settings --- */

.ca_product-logoimg {
    width: 170px;
    height: 70px;
    max-width: 170px !important;
    max-height: 70px;
    aspect-ratio: 170 / 70;
    border: none !important;
    outline: none !important;
    object-fit: contain;
}

.ca_provider-img {
    width: 80px;
    height: 20px;
    max-height: 20px;
    aspect-ratio: 4 / 1;
    object-fit: contain;
}

/* Address-first UX: keep DSL filters reachable; disclose example energy PLZ. */
.ca-elementor-widget[data-calc="dsl"] .ca_form,
.ca_calc[data-calc="dsl"] .ca_form {
    position: sticky;
    top: 0;
    z-index: 5;
    background: #fff;
    padding-top: 8px;
    padding-bottom: 8px;
}

.ca_example_plz_notice {
    margin: 0 0 12px;
    padding: 10px 14px;
    border: 1px solid #f0c36d;
    border-radius: 10px;
    background: #fff8e8;
    color: #5c4813;
    font-size: 13px;
    line-height: 1.45;
}

.ca_example_plz_notice p {
    margin: 0;
}

.ca_address_gate .ca_nodata-title {
    font-weight: 700;
}

/* --- Typography Settings --- */

:is(#ca_calc, .ca-calc-root) {
    font-size: 13px;
}

.ca_product-info p {
    margin: 2px 0;
}

.ca_product-company {
    font-size: 13px;
    font-weight: bold;
}

.ca_product {
    font-size: 12px;
    font-weight: normal;
}

.ca_gebuehren {
    font-size: 18px;
    font-weight: bold;
    color: var(--ca_text_color) !important;
}

.ca_text-gruen {
    font-weight: var(--ca_text_weight);
    color: var(--ca_text_color2);
}

.ca_gebuehren-gruen {
    font-size: 22px;
    font-weight: var(--ca_text_weight);
    color: var(--ca_text_color3);
    white-space: nowrap;
}

@media(min-width: 900px) and (max-width: 1160px) {
    .ca_gebuehren-gruen {
        font-size: 15px !important;
        margin-left: 12px;
    }
}

.ca_gebuehren-klein {
    color: var(--ca_text_color) !important;
    font-size: 12px !important;
    text-decoration: none !important;
    line-height: 1.5;
}

.ca_provider-text {
    font-size: 12px;
    font-weight: normal;
    margin-top: -26px;
    margin-left: 23px;
}

.ca_monatlich-einmalig {
    line-height: 18px !important;
}

.ca_bold {
    font-size: 13px !important;
    font-weight: bold;
}

/* --- List Settings ---*/
ul.ca_besonderheiten,
ul.ca_pv_overview {
    list-style: none;
    padding-left: 0 !important;
    font-size: 13px !important;
    margin: 0 !important;
}

ul.ca_besonderheiten li,
ul.ca_pv_overview li {
    padding: 0 0 4px 24px;
    display: block;
    position: relative;
    line-height: 1.4;
    margin-bottom: 4px;
}

ul.ca_besonderheiten li::before,
ul.ca_pv_overview li::before {
    content: "";
    position: absolute;
    left: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2310b981' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    display: block;
}

/* Hide ::before when explicit SVG is present */
ul.ca_besonderheiten li:has(> svg)::before,
ul.ca_pv_overview li:has(> svg)::before {
    display: none !important;
}

/* Styling for the explicit SVG check icon */
ul.ca_besonderheiten li>svg.ca-icon-check,
ul.ca_pv_overview li>svg.ca-icon-check,
ul.ca_besonderheiten li>svg.ca-highlight-icon,
ul.ca_besonderheiten li>svg.ca-icon {
    position: absolute;
    left: 0;
    top: 2px;
    width: 16px;
    height: 16px;
    color: #10b981;
}

/* Specific styling for benefit lists that might need columns */
.ca_benefits.ca_besonderheiten {
    display: block;
    columns: auto;
    column-gap: 20px;
}


ul.ca_pv_overview li {
    padding: 0 0 0px 12px;

}

.ca_zeile li {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    font-weight: normal;
}


/* SVG Icon Styles for Calculator Lists */
:is(#ca_calc, .ca-calc-root) li {
    position: relative;
}

:is(#ca_calc, .ca-calc-root) li svg {
    color: inherit;
    vertical-align: middle;
    flex-shrink: 0;
    width: 16px;
    height: 16px;
}

/* SVG Icon List Item Styles */
:is(#ca_calc, .ca-calc-root) li[style*="list-style: none"] {
    display: flex;
    align-items: flex-start;
    padding-left: 0;
    margin-bottom: 4px;
}

:is(#ca_calc, .ca-calc-root) li[style*="list-style: none"] svg {
    margin-right: 8px;
    margin-top: 2px;
    min-width: 16px;
}

/* Specific SVG Icon Colors */
.ca_icon-phone svg,
.ca_icon-mobile svg,
.ca_icon-comments svg,
.ca_icon-signal svg,
.ca_icon-wifi svg,
.ca_icon-clock svg,
.ca_icon-gift svg,
.ca_icon-plug svg {
    color: #555;
}

.ca_icon-info svg {
    color: #3b82f6;
}

.ca_icon-warning svg {
    color: #f59e0b;
}

.ca_icon-success svg {
    color: #22c55e;
}

.ca_icon-error svg {
    color: #ef4444;
}

.ca_icon-pdf svg {
    color: #dc2626;
}

/* Dynamic LTE/5G Signal Icons */
.ca_details-lte svg,
.ca_psst-5g svg {
    transition: color 0.2s ease;
}

.ca_details-lte svg {
    color: #3b82f6;
}

.ca_psst-5g svg {
    color: #22c55e;
}

/*Border Settings*/

.ca_border-top {
    border-top: 1px dashed #ccc;
    margin-top: 7px;
    padding-top: 7px;
}

.ca_border-bottom {
    border-bottom: 1px dashed #ccc;
    margin-bottom: 7px;
    padding-bottom: 7px;
}


/* --- Popover Settings --- */

.ca_popover-border-bottom-bold {
    border-bottom: 2px solid #ccc;
    padding-bottom: 7px;
    margin-bottom: 7px;
}

.ca_popover-border-bottom {
    border-bottom: 1px solid #ccc;
    padding-bottom: 7px;
    margin-bottom: 7px;
}

.ca_popover .popover {
    border-radius: 0px !important;
    border: 1px solid #ccc !important;
    width: 300px !important;
}

.ca_popover .popover-header {
    background-color: #fff !important;
    border-radius: 0px !important;
}

.ca_popover .popover-content {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    font-size: 1rem;
    padding: 12px !important;
    font-size: 13px !important;
}

.ca_popover a {
    outline: none !important;
    text-decoration: none !important;
    color: var(--ca_text_color) !important;
}

.ca_close-icon a {
    color: var(--ca_button_background) !important;
    padding: 0px 5px 0px 10px !important;
    font-size: 24px;
    font-weight: 800;
    text-decoration: none !important;
    transition: all 250ms;
}

.ca_popover ul {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    margin-left: 0px !important;
}

.ca_close-icon a:hover {
    color: #316d31 !important;
}

.ca_popover-text-bold {
    font-size: 13px;
    font-weight: bold;
}

.ca_popover-text-bold-greun,
.ca_product-effektivpreis .ca_popover-text-bold-greun span {
    font-weight: bold !important;
    color: #47a447 !important;
}

.ca_popover-text-klein {
    font-size: 11px;
    color: #999999;
}

.ca_product-effektivpreis,
.ca_product-effektivpreis span {
    color: #0D0000 !important;
}

.ca_product-effektivpreis span.ca_popover-text-bold-greun {
    color: #47a447 !important;
}

p.ca_tarifdetails-text-klein {
    margin: 0;
}

.ca_tarifdetails-clip-text {
    display: inline-block;
    width: 80%;
    max-width: 290px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
}

/* Button Settings */
.ca_button {
    display: block;
    font-size: 13px;
    border-radius: 4px !important;
    color: var(--ca_link_color) !important;
    text-align: center !important;
    text-decoration: none !important;
    -webkit-transition: all .1s ease-in-out;
    transition: all .1s ease-in-out;
    font-weight: bold !important;
    outline: none !important;
    cursor: pointer;
    padding: 10px 15px;
    white-space: nowrap;
}

@media (min-width: 900px) {
    .ca_button {
        width: 100%;
    }
}

.ca_button:hover,
.ca_button:focus,
.ca_button:active,
.ca_button.active,
.open .dropdown-toggle.ca_button {
    color: var(--ca_link_color_hover) !important;
    background-color: var(--ca_link_color_background_hover) !important;
    outline: none !important;
}

.ca_button-produktdetails {
    font-size: 13px;
    color: var(--ca_text_color) !important;
    text-decoration: none !important;
    -webkit-transition: all .1s ease-in-out;
    transition: all .1s ease-in-out;
    font-weight: bold !important;
    outline: none !important;
    cursor: pointer;
    /* margin-top: 10px; */
    display: block;
    border: 1px solid #47a447;
    padding: 10px 15px;
    border-radius: 4px;
    white-space: nowrap;
}


/* Tarif Details */

.ca_tarif-details {
    color: var(--ca_link_color_background);
    margin: 12px 0;
    cursor: pointer;
    transition: all 250ms;
    margin-top: 32px;
}

.ca_tarif-details a[aria-expanded="true"] i,
.ca_tarif-details a[aria-expanded="true"] svg,
.ca_button-produktdetails[aria-expanded="true"] svg {
    transform: scaleY(-1);
}

.ca_tarif-details a svg,
.ca_button-produktdetails svg {
    transition: transform 250ms ease;
}

.ca_tarif-details:hover,
.ca_tarif-details:hover i {
    opacity: 0.8;
}

.ca_tarif-details a {
    text-decoration: none;
    color: var(--ca_link_color_background);
    font-weight: bold;
}

.ca_flex-tarifdetails span {
    width: 33%;
}

.ca_flex-tarifdetails span:not(:first-of-type) {
    text-align: right;
}

.ca_button-produktdetails-separate {
    margin-top: 0px;
}

.ca_button-produktdetails:hover {
    color: var(--ca_text_color) !important;
    background-color: #47a4472f !important;
    transition: all 250ms;
    outline: none !important;
}

@media (max-width: 992px) {
    .ca_call-to-action-wrapper {
        padding-top: 12px;
        border-top: 1px solid #dfdfdf;
        gap: 5px;
    }
}

.ca_effektivpreis-button {
    text-decoration: none;
    color: #0D0000;
}

.ca_effektivpreis-button .fa {
    color: var(--ca_text_color2);
    transition: all 250ms;
}

.ca_effektivpreis-button .fa:hover {
    opacity: 0.8;
}


.ca_tarifdetails {
    padding-left: 0px !important;
    padding-right: 0px !important;
    position: relative;
}

/* Keep expanded Tarifdetails above the next offer card */
.ca_product_window.ca_tarifdetails-open {
    position: relative;
    z-index: 5;
}

.ca_product_window.ca_tarifdetails-open .ca_zeile {
    z-index: 2;
}

.ca_tarifdetails-border {
    border: 1px solid #e5e7eb;
    padding: 20px !important;
    margin-top: 15px;
    background: #ffffff;
    border-radius: 12px;
    display: flex;
    flex-direction: column !important;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

/* 3-column tarifdetails on desktop (Preisaufstellung | Vertragsdetails | Sonstiges) */
@media (min-width: 900px) {
    .ca_tarifdetails-border.ca_flex-lg {
        flex-direction: row !important;
        flex-wrap: nowrap;
        align-items: flex-start;
    }
}

.ca_tarifdetails-left,
.ca_tarifdetails-center,
.ca_tarifdetails-right {
    flex: 1 1 100%;
}

@media (min-width: 900px) {
    .ca_tarifdetails-border.ca_flex-lg .ca_tarifdetails-left,
    .ca_tarifdetails-border.ca_flex-lg .ca_tarifdetails-center,
    .ca_tarifdetails-border.ca_flex-lg .ca_tarifdetails-right {
        flex: 1 1 0;
        min-width: 0;
    }
}

/* Modern energy step slider (Gas Wohnungsgröße / Strom Personen) */
.ca-energy-step {
    --ca-step-track: #e2e8f0;
    --ca-step-fill: var(--ca_primary_color, #e86c22);
    --ca-step-handle: #ffffff;
    --ca-step-label: var(--ca_text_secondary, #64748b);
    --ca-step-label-active: var(--ca_text_color, #1e293b);
    width: 100%;
    padding: 4px 0 0;
}

.ca-energy-step__input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.ca-energy-step__track {
    position: relative;
    height: 28px;
    display: flex;
    align-items: center;
}

.ca-energy-step__track::before {
    content: '';
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 6px;
    border-radius: 999px;
    background: var(--ca-step-track);
}

.ca-energy-step__track::after {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 6px;
    width: var(--ca-step-progress, 0%);
    border-radius: 999px;
    background: var(--ca-step-fill);
    pointer-events: none;
    transition: width 0.15s ease;
}

.ca-energy-step__range {
    -webkit-appearance: none;
    appearance: none;
    position: relative;
    z-index: 2;
    width: 100%;
    height: 28px;
    margin: 0;
    background: transparent;
    cursor: pointer;
}

.ca-energy-step__range:focus {
    outline: none;
}

.ca-energy-step__range:focus-visible::-webkit-slider-thumb {
    box-shadow: 0 0 0 3px rgba(232, 108, 34, 0.35);
}

.ca-energy-step__range:focus-visible::-moz-range-thumb {
    box-shadow: 0 0 0 3px rgba(232, 108, 34, 0.35);
}

.ca-energy-step__range::-webkit-slider-runnable-track {
    height: 6px;
    background: transparent;
}

.ca-energy-step__range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 22px;
    height: 22px;
    margin-top: -8px;
    border-radius: 50%;
    border: 2px solid var(--ca-step-fill);
    background: var(--ca-step-handle);
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18);
    transition: transform 0.15s ease;
}

.ca-energy-step__range:active::-webkit-slider-thumb {
    transform: scale(1.08);
}

.ca-energy-step__range::-moz-range-track {
    height: 6px;
    background: transparent;
    border: 0;
}

.ca-energy-step__range::-moz-range-thumb {
    width: 22px;
    height: 22px;
    border-radius: 50%;
    border: 2px solid var(--ca-step-fill);
    background: var(--ca-step-handle);
    box-shadow: 0 2px 6px rgba(15, 23, 42, 0.18);
}

.ca-energy-step__labels {
    display: flex;
    justify-content: space-between;
    gap: 4px;
    margin-top: 8px;
}

.ca-energy-step__label {
    flex: 1 1 0;
    min-width: 0;
    border: 0;
    background: transparent;
    padding: 4px 2px;
    font-size: 11px;
    line-height: 1.2;
    color: var(--ca-step-label);
    text-align: center;
    cursor: pointer;
    border-radius: 6px;
    transition: color 0.15s ease, background-color 0.15s ease;
}

.ca-energy-step__label:hover {
    color: var(--ca-step-label-active);
    background: rgba(148, 163, 184, 0.12);
}

.ca-energy-step__label.is-active {
    color: var(--ca-step-fill);
    font-weight: 600;
}

.ca_gas_slider .ca-energy-step,
.ca_select-group.ca_gas_slider .ca-energy-step {
    min-width: 180px;
}

/* Gas Wohnungsgröße — house icons + m² labels */
.ca-energy-step--gas {
    --ca-step-fill: var(--ca_primary_color, #e86c22);
    --ca-gas-handle: #2f7de3;
    padding-top: 2px;
}

.ca-energy-step--gas .ca-energy-step__track {
    height: 36px;
}

.ca-energy-step--gas .ca-energy-step__ticks {
    position: absolute;
    left: 0;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0 2px;
    pointer-events: none;
    z-index: 1;
}

.ca-energy-step--gas .ca-energy-step__tick {
    pointer-events: auto;
    position: relative;
    width: 20px;
    height: 20px;
    border: 0;
    border-radius: 50%;
    padding: 0;
    cursor: pointer;
    background: linear-gradient(to bottom, #f9f9f9 0%, #f5f5f5 100%);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    flex: 0 0 20px;
}

.ca-energy-step--gas .ca-energy-step__tick::before {
    content: "";
    display: block;
    width: 10px;
    height: 10px;
    margin: 5px auto 0;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="black"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>');
    background-size: 10px 10px;
    background-repeat: no-repeat;
    background-position: center;
}

.ca-energy-step--gas .ca-energy-step__tick.in-selection {
    background: var(--ca-gas-handle);
    opacity: 1;
}

.ca-energy-step--gas .ca-energy-step__tick.in-selection::before,
.ca-energy-step--gas .ca-energy-step__tick.is-selection::before {
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>');
}

.ca-energy-step--gas .ca-energy-step__range {
    height: 36px;
}

.ca-energy-step--gas .ca-energy-step__range::-webkit-slider-thumb {
    width: 20px;
    height: 20px;
    margin-top: -7px;
    border: 0;
    background: var(--ca-gas-handle);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>');
    background-size: 10px 10px;
    background-repeat: no-repeat;
    background-position: center;
}

.ca-energy-step--gas .ca-energy-step__range::-moz-range-thumb {
    width: 20px;
    height: 20px;
    border: 0;
    background: var(--ca-gas-handle);
    box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>');
    background-size: 10px 10px;
    background-repeat: no-repeat;
    background-position: center;
}

.ca-energy-step--gas .ca-energy-step__label-container {
    margin-top: 20px;
}

.ca-energy-step--gas .ca-energy-step__label {
    flex: 0 0 63px;
    max-width: 63px;
    font-size: 12px;
    line-height: 1.3;
    padding: 0;
    border-radius: 0;
}

.ca-energy-step--gas .ca-energy-step__label:first-of-type {
    padding-left: 10px;
}

.ca-energy-step--gas .ca-energy-step__label:last-of-type {
    margin-left: -10px;
}

.ca-energy-step--gas .ca-energy-step__label.label-in-selection {
    color: var(--ca-step-label-active);
}

.ca-energy-step--gas .ca-energy-step__label.label-is-selection {
    color: var(--ca-step-fill);
    font-weight: 600;
}

.ca-energy-step--gas .ca-energy-step__label sup {
    font-size: 0.75em;
    line-height: 0;
}

@media (max-width: 767px) {
    .ca-energy-step__label {
        font-size: 10px;
        padding: 4px 0;
    }
}

.ca_tarifdetails-title {
    font-size: 13px;
    font-weight: bold;
}

.ca_tarifdetails-text {
    font-size: 12px;
    color: var(--ca_text_color);
    line-height: 1.4em;
}

.ca_tarifdetails-text small {
    line-height: 1em;
}

.ca_tarifdetails-text-gruen {
    font-size: 13px;
    font-weight: bold;
    color: #47a447;
}

.ca_tarifdetails-border-bottom-title {
    border-bottom: 1px solid #dfdfdf;
    padding-bottom: 6px;
    margin-bottom: 10px;
}

.ca_tarifdetails-border-bottom-text {
    border-bottom: 1px solid #dfdfdf;
    padding-bottom: 6px;
    margin-bottom: 8px;
}

.ca_tarifdetails-row-abstand {
    margin-top: 24px;
}

.ca_tarifdetails-effektivpreis {
    font-size: 16px;
    font-weight: bold;
}

.ca_tarifdetails-effektivpreis-cost {
    font-size: 14px;
    font-weight: bold;
    color: var(--ca_text_color2);
}

.ca_tarifdetails-text-klein {
    font-size: 11px;
    color: #999;
}

.ca_produktinformationblatt {
    text-decoration: none;
    font-size: 13px;
    color: var(--ca_text_color);
    cursor: pointer;
    transition: all 250ms;
}

.ca_produktinformationblatt:hover {
    color: #47a447;
}

.ca_produktinformationblatt svg {
    width: 18px;
    height: 18px;
    margin-right: 6px;
    vertical-align: middle;
}

.ca_tarifdetails-text small {
    color: #999;
}

.ca_tarifdetails-text .small-warning {
    color: #ff0000;
}

.ca_product_special img {
    max-width: 150px;
}


.ca_product-average-price span.ca_warning,
.ca_warning {
    color: #ff0000 !important;
    margin-top: 8px;
}

/* --- Smartphone Weitere Farben --- */

.ca_device-color {
    font-size: 11px;
    margin-top: 7px;
    padding: 0 !important;
}

.ca_button_color {
    border-radius: 0px !important;
    width: 8px;
    height: 8px;
    padding: 8px;
    margin-right: 3px;
    cursor: pointer !important;
    outline: none !important;
    -webkit-appearance: none;
    appearance: none;
    box-shadow: inset 0 0 0 1px white;
    display: inline-block;
    list-style: none;
}

/*TarifTipp Einstellungen (Ribbon Settings)*/
.ca_zeile-tipp {
    background-color: #e4eef2 !important;
}

.ca_ribbon {
    color: #fff;
    position: relative;
    background: #2f7de3 !important;
    border: 1px solid #2f7de3;
    box-shadow: 0px 1px 3px rgba(0, 0, 0, .2);
    padding: 5px 10px;
    clear: both;
    min-width: 200px;
    text-align: center;
}

/*Right Ribbon*/
div.ca_right-ribbon {
    margin-top: -11px;
    left: 7px;
    float: right !important;
    margin-bottom: 10px;
}

div.ca_right-ribbon::before {
    display: block;
    width: 10px;
    height: 0px;
    position: absolute;
    bottom: -8px;
    right: -4px;
    content: "";
    border-bottom: 7px solid transparent;
    border-left: 7px solid #456a7c;
}

/*=========== 5. Calculator Footer Settings ===========*/

.ca_footnotes {
    border: 1px solid #ddd;
    background-color: #f5f5f5;
    /* HINTERGRUNDFARBE FOOTER */
    font-size: 11px;
    /* SCHRIFTGRÖSSE FOOTER */
    color: #999999;
    /* SCHRIFTFARBE FOOTER */
    padding: 7px 10px;
    margin-top: 10px;
    margin-bottom: 20px;
}

.ca_incentive {
    font-size: 11px;
    color: #47a447;
    cursor: default;
    border-bottom: 1px dotted #47a447;
    display: table;
    display: inline;
}


/* Bundle Styles */

.ca_control {
    margin-top: 5px;
    margin-bottom: 8px;
}

.ca_produt-image-wrapper {
    margin-top: 12px;
}

.ca_device-img {
    height: auto;
    display: block;
    object-fit: contain;
    max-width: 160px;
}

.ca_device-name {
    margin-bottom: 10px;
    font-size: 12px;
    font-weight: bold;
    padding: 0 !important;
}

.ca_color_dot {
    height: 16px;
    width: 16px;
    border-radius: 50%;
    display: inline-block;
    border: 1px solid #99999956;
    margin-right: 4px;
}

.ca_color_dot:hover {
    opacity: 0.6;
    transition: opacity 250ms;
}

.ca_product-highlight {
    padding: 12px;
    border-radius: 4px;
    background-color: #eeeeef;
    font-size: 12px;
}

.ca_br-visible {
    display: none;
}

.ca_product-highlight .ca_br-space {
    padding: 0;
}

@media (min-width: 900px) and (max-width: 1200px) {
    .ca_br-visible {
        display: block;
    }

    .ca_product-highlight .ca_br-space {
        padding: 19px;
    }
}

.ca_produt-performance {
    flex-direction: row;
}

.ca_product-highlight.ca_product-benefits {
    margin: auto;
    margin-top: 12px;
}

.ca_product-beneftits-headline {
    font-weight: bold;
    text-align: center;
    margin-bottom: 12px;
}

.ca_benefits {
    -moz-column-count: 2;
    -webkit-column-count: 2;
    column-count: 2;
    gap: 20px;
}


.ca_mobileVolume span,
.ca_productVolume span:first-of-type {
    font-size: 16px;
    font-weight: bold;
    display: block;
    margin-bottom: 2px;
}

.ca_mobileVolume .ca_network {
    padding: 0 3px;
    line-height: 16px;
    border-radius: 2px;
    color: #575757;
    font-size: 11px;
    border: 1px solid #575757;
    display: inline-block;
    vertical-align: middle;
    font-weight: bolder;
    margin-left: 6px;
}

.ca_tarifdetails-right {
    padding-left: 0px;
    padding-right: 0px;
}

.ca_gebuehren-klein-wrapper {
    margin-top: 12px;
}

@media (min-width: 820px) {
    .ca_gebuehren-klein-wrapper {
        margin-top: 0;
    }
}

.ca_popover-headline {
    font-size: 13px;
    font-weight: bold;
}

.ca_product-average-price {
    margin: 24px 0 12px 0;
}

.ca_product-average-price span {
    color: var(--ca_text_color2);
    text-align: left;
    font-size: 12px;
    margin-right: 20px;
}

#loadmore {
    margin: 10px;
    border: 1px solid #cccccc;
    padding: 10px;
    background-color: white;
    color: black;
    font-weight: bold;
    cursor: pointer;
}

.loader {
    margin: 10px;
    height: 37px;
}

.ca_white-spacer {
    min-height: 70px;
}

.ca_eu_energy_class {
    margin-top: 10px;
    text-align: right;
}

.ca_eu_energy_class img {
    height: 30px !important;
    cursor: pointer;
}

/* --- Icon Settings --- */
.ca_details-Ja:before {
    content: "";
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2353AD50"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>');
    background-size: 18px 18px;
    background-repeat: no-repeat;
    background-position: center;
    width: 18px;
    height: 18px;
    display: inline-block;
    margin-top: 1px;
}

.ca_details-Nein:before {
    content: "";
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23cb0000"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>');
    background-size: 18px 18px;
    background-repeat: no-repeat;
    background-position: center;
    width: 18px;
    height: 18px;
    display: inline-block;
    margin-top: 1px;
}

.ca_details-1:before {
    content: "";
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2353AD50"><path d="M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z"/></svg>');
    background-size: 18px 18px;
    background-repeat: no-repeat;
    background-position: center;
    width: 18px;
    height: 18px;
    display: inline-block;
    margin-top: 1px;
}

.ca_details-0:before {
    content: "";
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23cb0000"><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/></svg>');
    background-size: 18px 18px;
    background-repeat: no-repeat;
    background-position: center;
    width: 18px;
    height: 18px;
    display: inline-block;
    margin-top: 1px;
}


/*=========== 6. Calculator Media Queries Settings ===========*/

@media (max-width:480px) {
    .ca_tarifdetails-border {
        display: block !important;
    }

    .ca_headline h1 {
        font-size: 26px !important;
    }

    .ca_leistungen-xs-abstand {
        margin-top: 3px;
    }

    .ca_effektivpreis-align {
        margin-top: -2px;
    }

}

@media (min-width: 481px) and (max-width:767px) {
    .ca_tarifdetails-border {
        display: block !important;
    }

    .ca_headline h1 {
        font-size: 28px !important;
    }

    .ca_form-checkbox-radio-height {
        height: 34px !important;
    }

    .ca_monatlich-einmalig {
        text-align: right;
        margin-bottom: 7px;
    }

    .ca_effektivpreis-align {
        margin-top: -2px;
    }

    .ca_button-submit-abstand {
        margin-top: 5px;
    }
}

@media (min-width: 768px) and (max-width:991px) {

    .ca_form-checkbox-radio-height {
        height: 34px !important;
    }

    .ca_effektivpreis-align {
        margin-top: -2px;
    }

    .ca_button-submit-abstand {
        margin-top: 5px;
    }

}

@media (min-width: 900px) {

    .ca_effektivpreis-align {
        margin-top: -2px;
    }

    .ca_junge-abstand {
        margin-top: 30px;
    }

    .ca_button-submit-abstand {
        margin-top: 35px;
    }
}

.ca_xs .ca_tarifdetails-center,
.ca_sm .ca_tarifdetails-center,
.ca_xs .ca_tarifdetails-right,
.ca_sm .ca_tarifdetails-right {
    margin-top: 20px;
}

@media (min-width: 481px) {
    .ca_container {
        width: 100%;
    }
}

@media (min-width: 900px) {
    .ca_container {
        width: 100%;
    }
}

@media (min-width: 900px) {
    .ca_container {
        width: 100%;
        max-width: 1170px !important;
    }
}

.ca_container {
    margin-right: auto;
    margin-left: auto;
}

.ca_container:before,
.ca_container:after,
.ca_container-fluid:before,
.ca_container-fluid:after,
.ca_row:before,
.ca_row:after {
    display: table;
    content: " ";
}

.ca_container:after,
.ca_container-fluid:after,
.ca_row:after {
    clear: both;
}

.ca_input-group {
    position: relative;
    display: table;
    border-collapse: separate;
}



.ca_input-group .form-control {
    position: relative;
    z-index: 2;
    float: left;
    width: 100%;
    margin-bottom: 0;
}

:is(#ca_calc, .ca-calc-root) .input-group-addon {
    font-size: 12px !important;
    margin: 5px 0 10px !important;
    padding: 8px !important;
    border: 1px solid #CCCCCC;
    border-radius: 0px !important;
    color: #333333 !important;
    background-color: #f5f5f5 !important;
    line-height: 18px !important;
}

:is(#ca_calc, .ca-calc-root) .input-group .form-control:focus {
    z-index: 3;
}

:is(#ca_calc, .ca-calc-root) .input-group-lg>.form-control,
:is(#ca_calc, .ca-calc-root) .input-group-lg>.input-group-addon,
:is(#ca_calc, .ca-calc-root) .input-group-lg>.input-group-btn>.btn {
    height: 46px;
    padding: 10px 16px;
    font-size: 18px;
    line-height: 1.3333333;
    border-radius: 6px;
}

:is(#ca_calc, .ca-calc-root) .input-group-addon,
:is(#ca_calc, .ca-calc-root) .input-group-btn,
:is(#ca_calc, .ca-calc-root) .input-group .form-control {
    display: table-cell;
}

:is(#ca_calc, .ca-calc-root) .input-group-addon,
:is(#ca_calc, .ca-calc-root) .input-group-btn {
    width: 1%;
    white-space: nowrap;
    vertical-align: middle;
}

:is(#ca_calc, .ca-calc-root) .input-group-addon.input-sm {
    padding: 5px 10px;
    font-size: 12px;
    border-radius: 3px;
}

:is(#ca_calc, .ca-calc-root) .input-group-addon.input-lg {
    padding: 10px 16px;
    font-size: 18px;
    border-radius: 6px;
}

:is(#ca_calc, .ca-calc-root) .input-group .form-control:first-child,
:is(#ca_calc, .ca-calc-root) .input-group-addon:first-child,
:is(#ca_calc, .ca-calc-root) .input-group-btn:first-child>.btn,
:is(#ca_calc, .ca-calc-root) .input-group-btn:first-child>.btn-group>.btn,
:is(#ca_calc, .ca-calc-root) .input-group-btn:first-child>.dropdown-toggle,
:is(#ca_calc, .ca-calc-root) .input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),
:is(#ca_calc, .ca-calc-root) .input-group-btn:last-child>.btn-group:not(:last-child)>.btn {
    border-bottom-right-radius: 0;
    border-top-right-radius: 0;
}

:is(#ca_calc, .ca-calc-root) .input-group-addon:first-child {
    border-right: 0;
}

:is(#ca_calc, .ca-calc-root) .input-group .form-control:last-child,
:is(#ca_calc, .ca-calc-root) .input-group-addon:last-child,
:is(#ca_calc, .ca-calc-root) .input-group-btn:last-child>.btn,
:is(#ca_calc, .ca-calc-root) .input-group-btn:last-child>.btn-group>.btn,
:is(#ca_calc, .ca-calc-root) .input-group-btn:last-child>.dropdown-toggle,
:is(#ca_calc, .ca-calc-root) .input-group-btn:first-child>.btn:not(:first-child),
:is(#ca_calc, .ca-calc-root) .input-group-btn:first-child>.btn-group:not(:first-child)>.btn {
    border-bottom-left-radius: 0;
    border-top-left-radius: 0;
}

:is(#ca_calc, .ca-calc-root) .input-group-addon:last-child {
    border-left: 0;
}

:is(#ca_calc, .ca-calc-root) .text-left {
    text-align: left !important;
}

:is(#ca_calc, .ca-calc-root) .text-right {
    text-align: right !important;
}

:is(#ca_calc, .ca-calc-root) .text-center {
    text-align: center !important;
}

:is(#ca_calc, .ca-calc-root) .pull-right {
    float: right !important;
}

:is(#ca_calc, .ca-calc-root) .pull-left {
    float: left !important;
}

:is(#ca_calc, .ca-calc-root) .center-block {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

:is(#ca_calc, .ca-calc-root) .text-nowrap {
    white-space: nowrap !important;
}

:is(#ca_calc, .ca-calc-root) .d-none {
    display: none;
}

@media (min-width: 576px) {
    :is(#ca_calc, .ca-calc-root) .d-sm-block {
        display: block !important;
    }
}

@media (min-width: 900px) {
    :is(#ca_calc, .ca-calc-root) .d-md-block {
        display: block !important;
    }
}

@media (min-width: 900px) {
    :is(#ca_calc, .ca-calc-root) .d-lg-block {
        display: block !important;
    }
}

@media (min-width: 1200px) {
    :is(#ca_calc, .ca-calc-root) .d-xl-block {
        display: block !important;
    }
}

@media (min-width: 1400px) {
    :is(#ca_calc, .ca-calc-root) .d-xxl-block {
        display: block !important;
    }
}


:is(#ca_calc, .ca-calc-root) .d-block {
    display: block !important;
}

@media (min-width: 576px) {
    :is(#ca_calc, .ca-calc-root) .d-sm-none {
        display: none !important;
    }
}

@media (min-width: 900px) {
    :is(#ca_calc, .ca-calc-root) .d-md-none {
        display: none !important;
    }
}

@media (min-width: 900px) {
    :is(#ca_calc, .ca-calc-root) .d-lg-none {
        display: none !important;
    }
}

@media (min-width: 1200px) {
    :is(#ca_calc, .ca-calc-root) .d-xl-none {
        display: none !important;
    }
}

@media (min-width: 1400px) {
    :is(#ca_calc, .ca-calc-root) .d-xxl-none {
        display: none !important;
    }
}

:is(#ca_calc, .ca-calc-root) .hide {
    display: none !important;
}

:is(#ca_calc, .ca-calc-root) .show {
    display: block !important;
}

:is(#ca_calc, .ca-calc-root) .hidden {
    display: none !important;
}

.ca_visible-xs,
.ca_visible-sm,
.ca_visible-md,
.ca_visible-lg {
    display: none !important;
}

.ca_visible-xs-block,
.ca_visible-xs-inline,
.ca_visible-xs-inline-block,
.ca_visible-sm-block,
.ca_visible-sm-inline,
.ca_visible-sm-inline-block,
.ca_visible-md-block,
.ca_visible-md-inline,
.ca_visible-md-inline-block,
.ca_visible-lg-block,
.ca_visible-lg-inline,
.ca_visible-lg-inline-block {
    display: none !important;
}

@media (max-width: 480px) {
    .ca_visible-xs {
        display: block !important;
    }

    .ca_hidden-xs {
        display: none !important;
    }
}

@media (min-width: 481px) and (max-width: 767px) {
    .ca_device-img {
        width: auto !important;
    }
}

@media (max-width: 480px) {
    .ca_device-img {
        width: auto;
    }
}

@media (min-width: 481px) and (max-width: 767px) {
    .ca_visible-sm {
        display: block !important;
    }

    .ca_hidden-sm {
        display: none !important;
    }
}

@media (min-width: 768px) and (max-width: 991px) {
    .ca_visible-md {
        display: block !important;
    }

    .ca_hidden-md {
        display: none !important;
    }
}

@media (min-width: 900px) {
    .ca_visible-lg {
        display: block !important;
    }

    .ca_hidden-lg {
        display: none !important;
    }
}

.w-full {
    width: 100%;
}

.ca_flex {
    display: flex;
    gap: 10px;
}

.ca_flex-wrap {
    flex-wrap: wrap;
}

.ca_width_80 {
    width: 79% !important;
}

.ca_width_fullwidth {
    width: 100% !important;
}

.ca_flex-fullwidth {
    flex: 1 1 100%;
}

.ca_flex-1-5,
.ca_flex-2-5 {
    flex: 1 1 100%;
}

.ca_select-group.ca_vergleich {
    flex-grow: 1;
    margin-right: 12px;
}

@media (min-width: 579px) {
    .ca_flex-sm {
        display: flex;
    }
}

@media (min-width: 900px) {
    .ca_flex-md {
        display: flex;
    }

    .ca_flex-1-5 {
        flex: 1 5;
    }

    .ca_flex-2-5 {
        flex: 2 5;
    }
}

@media (min-width: 900px) {
    .ca_flex-lg {
        display: flex;
    }
}

@media (min-width: 1200px) {
    .ca_flex-xl {
        display: flex;
    }
}

@media (min-width: 1400px) {
    .ca_flex-xxl {
        display: flex;
    }
}

.ca_flex-row {
    flex-direction: row;
}

.ca_flex-col {
    flex-direction: column;
}

.ca_flex-gap-0 {
    gap: 0;
}

.ca_flex-gap-1 {
    gap: 1px;
}

.ca_flex-gap-2 {
    gap: 4px;
}

.ca_flex-gap-3 {
    gap: 6px;
}

.ca_flex-gap-4 {
    gap: 8px;
}

.ca_flex-gap-5 {
    gap: 10px;
}

.ca_flex-gap-6 {
    gap: 12px;
}

.ca_flex-gap-12 {
    gap: 24px;
}

.ca_flex-justify-center {
    justify-content: center;
}

.ca_flex-space-between {
    justify-content: space-between;
}

.ca_flex-space-end {
    justify-content: flex-end;
}

.ca_flex-basis {
    flex: 1 1 0px;
}

.ca_flex-align-start {
    align-self: flex-start;
}

.ca_flex-align-end {
    align-self: flex-end;
}

:is(#ca_calc, .ca-calc-root) .fade {
    opacity: 0;
    -webkit-transition: opacity .15s linear;
    -o-transition: opacity .15s linear;
    transition: opacity .15s linear;
}

:is(#ca_calc, .ca-calc-root) .fade.in {
    opacity: 1;
}

.ca-elementor-widget .collapse,
:is(#ca_calc, .ca-calc-root) .collapse {
    display: none;
}

.ca-elementor-widget .collapse.in,
.ca-elementor-widget .collapse.show,
:is(#ca_calc, .ca-calc-root) .collapse.in,
:is(#ca_calc, .ca-calc-root) .collapse.show {
    display: block;
}

.ca-elementor-widget tr.collapse.in,
.ca-elementor-widget tr.collapse.show,
:is(#ca_calc, .ca-calc-root) tr.collapse.in,
:is(#ca_calc, .ca-calc-root) tr.collapse.show {
    display: table-row;
}

.ca-elementor-widget tbody.collapse.in,
.ca-elementor-widget tbody.collapse.show,
:is(#ca_calc, .ca-calc-root) tbody.collapse.in,
:is(#ca_calc, .ca-calc-root) tbody.collapse.show {
    display: table-row-group;
}

:is(#ca_calc, .ca-calc-root) .collapsing {
    position: relative;
    height: 0;
    overflow: hidden;
    -webkit-transition-timing-function: ease;
    -o-transition-timing-function: ease;
    transition-timing-function: ease;
    -webkit-transition: none !important;
    transition: none !important;
    -o-transition-duration: .35s;
    transition-duration: .35s;
    -webkit-transition-property: height, visibility;
    -o-transition-property: height, visibility;
    transition-property: height, visibility;
}

:is(#ca_calc, .ca-calc-root) .popover {
    position: absolute;
    top: 0;
    left: 0;
    z-index: 1060;
    display: none;
    max-width: 292px;
    padding: 1px;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-style: normal;
    font-weight: normal;
    letter-spacing: normal;
    line-break: auto;
    line-height: 1.42857143;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    white-space: normal;
    word-break: normal;
    word-spacing: normal;
    word-wrap: normal;
    font-size: 12px;
    background-color: #ffffff;
    -webkit-background-clip: padding-box;
    background-clip: padding-box;
    -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
    border-color: transparent !important;
    border: 1px #47a447 solid !important;
    border-radius: 19px !important;

}

:is(#ca_calc, .ca-calc-root) .popover.top {
    margin-top: -10px;
}

:is(#ca_calc, .ca-calc-root) .popover.right {
    margin-left: 10px;
}

:is(#ca_calc, .ca-calc-root) .popover.bottom {
    margin-top: 10px;
}

:is(#ca_calc, .ca-calc-root) .popover.left {
    margin-left: -10px;
}

:is(#ca_calc, .ca-calc-root) .popover-title {
    margin: 0;
    padding: 8px 14px;
    font-size: 14px;
    background-color: #f7f7f7;
    border-bottom: 1px solid #ebebeb;
    border-radius: 5px 5px 0 0;
}

:is(#ca_calc, .ca-calc-root) .popover-content {
    padding: 9px 14px;
}

:is(#ca_calc, .ca-calc-root) .popover>.arrow,
:is(#ca_calc, .ca-calc-root) .popover>.arrow:after {
    position: absolute;
    display: block;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
}

:is(#ca_calc, .ca-calc-root) .popover>.arrow {
    border-width: 11px;
}

:is(#ca_calc, .ca-calc-root) .popover>.arrow:after {
    border-width: 10px;
    content: "";
}

:is(#ca_calc, .ca-calc-root) .popover.top>.arrow {
    left: 50%;
    margin-left: -11px;
    border-bottom-width: 0;
    border-top-color: #999999;
    border-top-color: rgba(0, 0, 0, 0.25);
    bottom: -11px;
}

:is(#ca_calc, .ca-calc-root) .popover.top>.arrow:after {
    content: " ";
    bottom: 1px;
    margin-left: -10px;
    border-bottom-width: 0;
    border-top-color: #ffffff;
}

:is(#ca_calc, .ca-calc-root) .popover.right>.arrow {
    top: 50%;
    left: -11px;
    margin-top: -10px;
    border-left-width: 0;
    border-right-color: #999999;
    border-right-color: rgba(0, 0, 0, 0.25);
}

:is(#ca_calc, .ca-calc-root) .popover.right>.arrow:after {
    content: " ";
    left: 1px;
    bottom: -10px;
    border-left-width: 0;
    border-right-color: #ffffff;
}

:is(#ca_calc, .ca-calc-root) .popover.bottom>.arrow {
    left: 50%;
    margin-left: -11px;
    border-top-width: 0;
    border-bottom-color: #47a447;
    border-bottom-color: #47a447;
    top: -11px;
}

:is(#ca_calc, .ca-calc-root) .popover.bottom>.arrow:after {
    content: " ";
    top: 1px;
    margin-left: -10px;
    border-top-width: 0;
    border-bottom-color: #ffffff;
}

:is(#ca_calc, .ca-calc-root) .popover.left>.arrow {
    top: 50%;
    right: -11px;
    margin-top: -11px;
    border-right-width: 0;
    border-left-color: #999999;
    border-left-color: rgba(0, 0, 0, 0.25);
}

:is(#ca_calc, .ca-calc-root) .popover.left>.arrow:after {
    content: " ";
    right: 1px;
    border-right-width: 0;
    border-left-color: #ffffff;
    bottom: -10px;
}

:is(#ca_calc, .ca-calc-root) table {
    background-color: transparent;
}

:is(#ca_calc, .ca-calc-root) caption {
    padding-top: 8px;
    padding-bottom: 8px;
    color: #777;
    text-align: left;
}

:is(#ca_calc, .ca-calc-root) .tooltip {
    position: absolute;
    z-index: 1070;
    display: block;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-style: normal;
    font-weight: normal;
    letter-spacing: normal;
    line-break: auto;
    line-height: 1.42857143;
    text-align: left;
    text-align: start;
    text-decoration: none;
    text-shadow: none;
    text-transform: none;
    white-space: normal;
    word-break: normal;
    word-spacing: normal;
    word-wrap: normal;
    font-size: 12px;
    opacity: 0;
    filter: alpha(opacity=0);
}

:is(#ca_calc, .ca-calc-root) .tooltip.in {
    opacity: 0.9;
    filter: alpha(opacity=90);
}

:is(#ca_calc, .ca-calc-root) .tooltip.top {
    margin-top: -3px;
    padding: 5px 0;
}

:is(#ca_calc, .ca-calc-root) .tooltip.right {
    margin-left: 3px;
    padding: 0 5px;
}

:is(#ca_calc, .ca-calc-root) .tooltip.bottom {
    margin-top: 3px;
    padding: 5px 0;
}

:is(#ca_calc, .ca-calc-root) .tooltip.left {
    margin-left: -3px;
    padding: 0 5px;
}

:is(#ca_calc, .ca-calc-root) .tooltip-inner {
    max-width: 200px;
    padding: 3px 8px;
    color: #ffffff;
    text-align: center;
    background-color: #000000;
    border-radius: 4px;
}

:is(#ca_calc, .ca-calc-root) .tooltip-arrow {
    position: absolute;
    width: 0;
    height: 0;
    border-color: transparent;
    border-style: solid;
}

:is(#ca_calc, .ca-calc-root) .tooltip.top .tooltip-arrow {
    bottom: 0;
    left: 50%;
    margin-left: -5px;
    border-width: 5px 5px 0;
    border-top-color: #000000;
}

:is(#ca_calc, .ca-calc-root) .tooltip.top-left .tooltip-arrow {
    bottom: 0;
    right: 5px;
    margin-bottom: -5px;
    border-width: 5px 5px 0;
    border-top-color: #000000;
}

:is(#ca_calc, .ca-calc-root) .tooltip.top-right .tooltip-arrow {
    bottom: 0;
    left: 5px;
    margin-bottom: -5px;
    border-width: 5px 5px 0;
    border-top-color: #000000;
}

:is(#ca_calc, .ca-calc-root) .tooltip.right .tooltip-arrow {
    top: 50%;
    left: 0;
    margin-top: -5px;
    border-width: 5px 5px 5px 0;
    border-right-color: #000000;
}

:is(#ca_calc, .ca-calc-root) .tooltip.left .tooltip-arrow {
    top: 50%;
    right: 0;
    margin-top: -5px;
    border-width: 5px 0 5px 5px;
    border-left-color: #000000;
}

:is(#ca_calc, .ca-calc-root) .tooltip.bottom .tooltip-arrow {
    top: 0;
    left: 50%;
    margin-left: -5px;
    border-width: 0 5px 5px;
    border-bottom-color: #000000;
}

:is(#ca_calc, .ca-calc-root) .tooltip.bottom-left .tooltip-arrow {
    top: 0;
    right: 5px;
    margin-top: -5px;
    border-width: 0 5px 5px;
    border-bottom-color: #000000;
}

:is(#ca_calc, .ca-calc-root) .tooltip.bottom-right .tooltip-arrow {
    top: 0;
    left: 5px;
    margin-top: -5px;
    border-width: 0 5px 5px;
    border-bottom-color: #000000;
}

:is(#ca_calc, .ca-calc-root) .is-floating-label {
    position: relative;
    margin-bottom: 30px;
}

:is(#ca_calc, .ca-calc-root) .is-floating-label input {
    position: absolute;
    left: 0;
    background-color: transparent !important;
}

:is(#ca_calc, .ca-calc-root) .is-floating-label label {
    opacity: 0.5;
    pointer-events: none;
    position: absolute;
    transform: translate3d(0, 0, 0) scale(1);
    transform-origin: right;
    transition: 100ms;
    margin-top: 10px;
    margin-left: 10px;
}

:is(#ca_calc, .ca-calc-root) .is-floating-label.is-focused label {
    transform: translateX(200%) scale(1);
}

/*=========== Animation settings ===========*/
@keyframes blink {
    0% {
        opacity: .2;
    }

    20% {
        opacity: 1;
    }

    100% {
        opacity: .2;
    }
}

.submit-loader {
    position: absolute;
    top: 12px;
    display: flex;
    width: 95%;
    flex-direction: row;
    justify-content: center;
}

.submit-loader div {
    animation-name: blink;
    animation-duration: 1.4s;
    animation-iteration-count: infinite;
    animation-fill-mode: both;
    float: left;
    width: 10px;
    height: 10px;
    margin-right: 20px;
    border-radius: 50%;
}

.submit-loader div:nth-child(2) {
    animation-delay: .2s;
}

.submit-loader div:nth-child(3) {
    animation-delay: .4s;
}

.submit-loader div:nth-child(4) {
    animation-delay: .6s;
}

.submit-loader div:nth-child(5) {
    animation-delay: .8s;
}

@keyframes slideIn {
    0% {
        transform: scaleY(0);
    }

    100% {
        transform: scaleY(1);
    }
}

.ca_zeile {
    transform-origin: top;
    animation: slideIn 1s forwards;
    animation-fill-mode: none;
}


/* Specials — visual chrome for Elementor widgets: calculator-widget.css */
.ca_eyecatcher {
    position: relative;
}

.ca_img-testsiegel {
    width: 100%;
    max-width: 75px;
    margin-top: 12px;
}

.ca_product-info-wrapper {
    flex: 0 0 70%;
}


.ca_zeile-wrapper .pull-left {
    flex-basis: 100%;
    padding: 0 !important;
}

@media(max-width: 438px) {
    .ca_zeile-wrapper .pull-left {
        padding: 12px 0 !important;

    }
}

/* Modern SVG Icon Utilities */
.ca_svg-icon {
    display: inline-block;
    vertical-align: middle;
    width: 16px;
    height: 16px;
    color: currentColor;
}

.ca_svg-icon-sm {
    width: 14px;
    height: 14px;
}

.ca_svg-icon-lg {
    width: 20px;
    height: 20px;
}

.ca_svg-icon-xl {
    width: 24px;
    height: 24px;
}

/* SVG Icon States */
.ca_svg-hover:hover svg {
    transform: scale(1.1);
    transition: transform 0.2s ease;
}

.ca_svg-disabled svg {
    opacity: 0.5;
    pointer-events: none;
}

/* List Item SVG Improvements */
:is(#ca_calc, .ca-calc-root) .ca_benefits li {
    line-height: 1.4;
    margin-bottom: 6px;
}

:is(#ca_calc, .ca-calc-root) .ca_benefits li svg {
    margin-top: 1px;
}

/* SVG in Buttons */
.ca_button svg,
.ca_button-produktdetails svg {
    margin-left: 4px;
    vertical-align: middle;
}

/* Popover SVG Icons */
.ca_popover svg {
    margin-left: 4px;
    opacity: 0.7;
    transition: opacity 0.2s ease;
    width: 16px;
    height: 16px;
}

.ca_popover:hover svg {
    opacity: 1;
}

/* Mobile Responsive SVG */
@media (max-width: 768px) {
    :is(#ca_calc, .ca-calc-root) li[style*="list-style: none"] {
        font-size: 14px;
    }

    :is(#ca_calc, .ca-calc-root) li[style*="list-style: none"] svg {
        width: 14px;
        height: 14px;
        margin-right: 6px;
    }

    .ca_produktinformationblatt svg {
        width: 16px;
        height: 16px;
    }
}

/* Dark Mode SVG Support */
@media (prefers-color-scheme: dark) {
    :is(#ca_calc, .ca-calc-root) li svg {
        filter: brightness(1.2);
    }
}

/* High Contrast SVG Support */
@media (prefers-contrast: high) {
    :is(#ca_calc, .ca-calc-root) li svg {
        stroke-width: 2.5;
        filter: contrast(1.5);
    }
}

/* Reduced Motion Support */
@media (prefers-reduced-motion: reduce) {
    .ca_loader .ca-spinner {
        animation: none;
    }

    .ca_svg-hover:hover svg {
        transform: none;
    }
}

/* SVG Print Styles */
@media print {
    :is(#ca_calc, .ca-calc-root) li svg {
        filter: grayscale(1);
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}

/* SVG Utility Classes for Editor */
.elementor-editor .ca_svg-icon {
    pointer-events: none;
}

.elementor-editor :is(#ca_calc, .ca-calc-root) li svg {
    display: inline-block !important;
}

/* Cross-browser SVG Support */
svg {
    max-width: 19px;
    height: auto;
}

svg:not(:root) {
    overflow: hidden;
}

.close_button_new {
    font-size: 12px !important;
}

.ca-flex-me {
    display: flex;
}

.ca_effektivpreis-align-old {
    display: flex;
    align-items: center;
    justify-content: center;
}

@media (max-width:480px) {
    .ca_thg_label {
        font-size: 11px;
    }
}

/* DSL */
.ca_dsl_font_small {
    font-size: 11px;
}

span.ca_dsl_download {
    font-size: 12px !important;
}

.ca_dsl-productVolume i {
    margin-right: 6px;
    color: var(--ca_text_color3);
}

.ca_calc_customer_changer_oldcontract {
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !important;
    display: block !important;
    width: 100% !important;
    height: 34px !important;
    margin: 0px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
    padding-left: 5px !important;
    font-size: 13px !important;
    font-weight: normal !important;
    color: #0D0000 !important;
    background-color: #ffffff !important;
    background-position: center right 0 !important;
    background-repeat: no-repeat !important;
    outline: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    appearance: none !important;
    border: 1px solid #cccccc !important;
    border-radius: 0px !important;
    outline: none !important;
    background: none !important;
    padding-right: 0px !important;
}

.ca_calc_home_areacode,
.ca_input-group {
    width: 100%;
}

.ca_dsl-more-option>div {
    width: 100%;
}

@media(min-width: 576px) {
    .ca_dsl-more-option>div {
        width: calc(50% - 12px);
    }
}

@media(min-width: 900px) {
    .ca_dsl-more-option>div {
        width: calc(25% - 12px);
    }
}


.ca_dsl-more-option {
    margin-top: 24px;
}

/* Load More */
.ca_loadmore_area,
#ca_loadmore {
    margin-top: 10px;
}

.ca_loader {
    display: none;
    text-align: center;
    padding: 12px 0;
}

.ca_loader .ca-spinner {
    width: 32px;
    height: 32px;
    color: var(--ca_button_background, #2A6FC9);
    animation: ca-spin 0.8s linear infinite;
    display: inline-block;
}

@keyframes ca-spin {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

.ca_no_more_results {
    display: none;
    padding: 24px 16px;
}

.ca_no_more_results__inner {
    max-width: 520px;
    margin: 0 auto;
    padding: 24px 28px;
    text-align: center;
    background: var(--ca-bg-card, #f8fafc);
    border: 1px solid var(--ca-border-color, #e2e8f0);
    border-radius: 12px;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.06);
}

.ca_no_more_results__title {
    margin: 0 0 8px;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--ca-text-primary, #1e293b);
    line-height: 1.4;
}

.ca_no_more_results__text {
    margin: 0 0 18px;
    font-size: 0.9375rem;
    font-weight: 400;
    color: var(--ca-text-secondary, #64748b);
    line-height: 1.55;
}

.ca_no_more_results .ca_scroll_to_filter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 180px;
    margin: 0 auto;
    cursor: pointer;
}

/* End-of-results message: visible when all offers are loaded */
.ca_no_more_results.ca-is-visible,
.ca_loadmore_area.ca_all_loaded .ca_no_more_results,
#ca_loadmore.ca_all_loaded .ca_no_more_results {
    display: block;
}

.ca_loadmore_area.ca_all_loaded .ca_calc_loadmore,
#ca_loadmore.ca_all_loaded .ca_calc_loadmore {
    display: none !important;
}

/* pos0 banner — shipped in plugin CSS so API bare-CSS fragments never leak as text */
.ca_pos0_banner_responsive {
    width: 100%;
}

@media (max-width: 500px) {
    #ca_pos0_banner_mobile {
        display: block !important;
        width: 100%;
    }

    #ca_pos0_banner_desktop {
        display: none;
    }
}

/* Strom Rechner */

.ca_strom .ca_control {
    font-size: 13px;
}

/* PV Rechner */
.ca_score-button i {
    color: black;
}

.close_button_new.close {
    cursor: pointer;
}

span.ca_popover-bold-headline {
    padding-left: 24px;
}

.panel-title .accordion-toggle:before {
    content: "";
    display: inline-block;
    width: 0.5rem;
    height: 0.5rem;
    border: solid 1px black;
    border-left-color: transparent;
    border-bottom-color: transparent;
    transform: rotate(135deg);
    position: absolute;
}

.panel-title .accordion-toggle[aria-expanded="false"]:before {
    transform: rotate(135deg);
}

.panel-title .accordion-toggle[aria-expanded="true"]:before {
    transform: rotate(316deg);
    top: 6px;
}

.popover-content .collapsing {
    -webkit-transition: none;
    transition: none;
    display: none;
}


.ca_popover-bold-headline {
    font-weight: bold;
    text-decoration: none;
    position: relative;
}

a.accordion-toggle {
    position: relative;
}

.popover-content a,
.popover-content strong {
    text-decoration: none;
    color: #000;
}

.progress-container {
    position: relative;
}


.progress-bar:before {
    content: "0";
    position: absolute;
    left: 2px;
    bottom: 60px;
    font-size: 12px;
    color: rgba(98, 107, 114, 1);
}

.progress-bar:after {
    content: "600";
    position: absolute;
    right: -6px;
    bottom: 60px;
    font-size: 12px;
    color: rgba(98, 107, 114, 1);
}



.points {
    position: absolute;
    margin: 0 auto;
    left: 0;
    right: 0;
    bottom: 60px;
    text-align: center;
    text-transform: uppercase;
    color: rgba(98, 107, 114, 1);
    font-size: 12px;
}

.wrapper {
    overflow: hidden;
}

.circle {
    width: 140px;
    height: 70px;
    background-color: white;
    border-top-left-radius: 190px;
    border-top-right-radius: 190px;
    border: 15px solid #ff2407;
    border-bottom: 0;
    transition: all 1s ease;
    transform-origin: bottom;
    position: absolute;
    z-index: 1;
    transform: rotate(-180deg);
    bottom: 0;
    left: -15px;
}

.circle-out {
    width: 140px;
    height: 70px;
    background-color: white;
    border-top-left-radius: 190px;
    border-top-right-radius: 190px;
    border: 15px solid #ededed;
    border-bottom: 0;
    position: relative;
}


.circle[data-score="4"],
.circle[data-score="4.0"],
.circle[data-score="4.1"],
.circle[data-score="4.2"],
.circle[data-score="4.3"],
.circle[data-score="4.4"],
.circle[data-score="4.5"],
.circle[data-score="4.6"],
.circle[data-score="4.7"],
.circle[data-score="4.8"],
.circle[data-score="4.9"],
.circle[data-score="5"],
.circle[data-score="5.0"],
.circle[data-score="5.1"],
.circle[data-score="5.2"],
.circle[data-score="5.3"],
.circle[data-score="5.4"],
.circle[data-score="5.5"],
.circle[data-score="5.6"],
.circle[data-score="5.7"],
.circle[data-score="5.8"],
.circle[data-score="5.9"] {
    border-color: #ff9007;
}

.circle[data-score="6"],
.circle[data-score="6.0"],
.circle[data-score="6.1"],
.circle[data-score="6.2"],
.circle[data-score="6.3"],
.circle[data-score="6.4"],
.circle[data-score="6.5"],
.circle[data-score="6.6"],
.circle[data-score="6.7"],
.circle[data-score="6.8"],
.circle[data-score="6.9"],
.circle[data-score="7"],
.circle[data-score="7.0"],
.circle[data-score="7.1"],
.circle[data-score="7.2"],
.circle[data-score="7.3"],
.circle[data-score="7.4"],
.circle[data-score="7.5"],
.circle[data-score="7.6"],
.circle[data-score="7.7"],
.circle[data-score="7.8"],
.circle[data-score="7.9"] {
    border-color: #ffd207;
}

.circle[data-score="8"],
.circle[data-score="8.0"],
.circle[data-score="8.1"],
.circle[data-score="8.2"],
.circle[data-score="8.3"],
.circle[data-score="8.4"],
.circle[data-score="8.5"],
.circle[data-score="8.6"],
.circle[data-score="8.7"],
.circle[data-score="8.8"],
.circle[data-score="8.9"],
.circle[data-score="9"],
.circle[data-score="9.0"],
.circle[data-score="9.1"],
.circle[data-score="9.2"],
.circle[data-score="9.3"],
.circle[data-score="9.4"],
.circle[data-score="9.5"],
.circle[data-score="9.6"],
.circle[data-score="9.7"],
.circle[data-score="9.8"],
.circle[data-score="9.9"],
.circle[data-score="10.0"],
.circle[data-score="10"] {
    border-color: #40d107;
}

.text {
    font-size: 22px;
    position: absolute;
    left: 50%;
    top: 50%;
    z-index: 1;
    transform: translate(-50%, -50%);
}

.ca_score {
    width: 140px;
}

.ca_pv_overview {
    width: 200px;
}

.ca_score-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

ul.ca_pv_overview.ca_advantges li::before {
    content: "";
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%2347a447"><path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/></svg>');
    background-size: 14px 14px;
    background-repeat: no-repeat;
    background-position: center;
    width: 14px;
    height: 14px;
    position: absolute;
    left: -3px;
    top: 2px;
}

ul.ca_pv_overview.ca_disadvantges li::before {
    content: "";
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="%23cb0000"><path d="M19 13H5v-2h14v2z"/></svg>');
    background-size: 14px 14px;
    background-repeat: no-repeat;
    background-position: center;
    width: 14px;
    height: 14px;
    position: absolute;
    left: -3px;
    top: 2px;
}

.ca_pv_highlights {
    max-width: 100%;
}


@media(max-width: 900px) {
    .ca_product-device.ca_flex.ca_pv_extras {
        order: 3;
    }

    .ca_score-wrapper_mobile {
        order: 2;
        flex: 1 0 50%;
    }

    .ca_score-wrapper-desktop {
        display: none;
    }
}

@media(min-width: 900px) {
    .ca_score-wrapper_mobile {
        display: none;
    }
}

.ca_legend {
    padding: 12px 0;
    font-size: 12px;
    line-height: 1.5em;
    display: flex;
    align-items: center;
    gap: 24px;
}

.ca_legend img {
    width: 100px;
}

.ca_legend_highlight {
    color: #47a447;
}

.ca_pv-results-wrapper {
    display: flex;
    gap: 24px;
    justify-content: center;
    align-items: center;
    width: 100% !important;
    margin-top: 24px;
    flex-wrap: wrap;
}

.ca_pv-result {
    width: calc(50% - 12px);
    background-color: #eeeeef;
    padding: 12px;
    border-radius: 4px;
    background-color: #eeeeef;
    text-align: center;
    min-height: 105px;
    align-content: center;
}

@media (min-width: 768px) {

    .ca_pv-results-wrapper {
        flex-wrap: nowrap;
    }

    .ca_pv-result {
        width: 100%;
        max-width: 200px;
    }

}

.ca_pv-result input {
    border: 0px solid;
    background-color: transparent;
    font-size: 20px;
    color: black;
    text-align: center;
    width: 100%;
}

.ca_pv-result p {
    font-size: 14px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.ca_pv-result i {
    font-size: 20px;
}

/* =========== AJAX Filter Transitions =========== */

/* Smooth fade in for new products */
.ca_product_window {
    animation: ca_fadeIn 0.3s ease-in-out;
}

@keyframes ca_fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Loading overlay for results section */
.ca_ajax_loading {
    position: relative;
    pointer-events: none;
}

.ca_ajax_loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: rgba(255, 255, 255, 0.7);
    z-index: 100;
}

/* Error message styling */
.ca_ajax_error {
    animation: ca_fadeIn 0.3s ease-in-out;
}

.ca_ajax_error .ca_zeile {
    border-left: 4px solid #d9534f;
    background-color: #fdf2f2;
}

/* Disabled state for form during AJAX */
.ca_form.ca_ajax_loading {
    pointer-events: none;
    opacity: 0.7;
}

/* Enhanced submit button loading state */
.ca_button-submit.ca_loading {
    position: relative;
    color: transparent !important;
}

.ca_button-submit.ca_loading::after {
    content: '';
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin: -10px 0 0 -10px;
    border: 2px solid transparent;
    border-top-color: #fff;
    border-radius: 50%;
    animation: ca_spin 0.8s linear infinite;
}

@keyframes ca_spin {
    to {
        transform: rotate(360deg);
    }
}

/* Smooth transition for load more results */
.ca_loadmore_transition {
    animation: ca_slideDown 0.4s ease-out;
}

@keyframes ca_slideDown {
    from {
        opacity: 0;
        max-height: 0;
        overflow: hidden;
    }

    to {
        opacity: 1;
        max-height: 2000px;
    }
}

/*=========== No Data / No Results Section ===========*/
.ca_nodata {
    background-color: #fafbfc !important;
    border: 1px dashed #d0d7de !important;
    border-radius: 8px !important;
}

.ca_nodata-wrapper {
    text-align: center;
    padding: 40px 20px;
}

.ca_nodata-icon {
    color: #6c757d;
    margin-bottom: 16px;
}

.ca_nodata-icon svg {
    opacity: 0.6;
}

.ca_nodata-title {
    font-size: 18px;
    font-weight: 600;
    color: #333;
    margin-bottom: 12px;
}

.ca_nodata-text {
    font-size: 14px;
    color: #6c757d;
    line-height: 1.6;
    margin-bottom: 24px;
    max-width: 400px;
    margin-left: auto;
    margin-right: auto;
}

.ca_nodata-actions {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
}

.ca_button-reset-filters {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 10px 20px;
    font-size: 14px;
    font-weight: 500;
    color: #fff;
    background-color: var(--ca_button_background, #2A6FC9);
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s ease;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.ca_button-reset-filters:hover {
    background-color: var(--ca_button_background_hover, #2f7de3);
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.ca_button-reset-filters:active {
    transform: translateY(0);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.ca_button-reset-filters svg {
    flex-shrink: 0;
}

/*=========== 5. Tab Settings (Modernized) ===========*/
.ca_tarifdetails .tab {
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    white-space: nowrap;
    border-bottom: 2px solid #f3f4f6;
    margin-bottom: 20px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    gap: 12px;
}

.ca_tarifdetails .tab::-webkit-scrollbar {
    display: none;
}

.ca_tarifdetails .tab button {
    background-color: transparent;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 12px 16px;
    transition: all 0.2s ease;
    font-size: 14px;
    font-weight: 600;
    color: #6b7280;
    position: relative;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
    text-transform: uppercase;
    letter-spacing: 0.025em;
}

.ca_tarifdetails .tab button:hover {
    color: var(--ca_button_background);
}

.ca_tarifdetails .tab button.active {
    color: var(--ca_button_background);
    border-bottom: 3px solid var(--ca_button_background);
}

.ca_tarifdetails .tabcontent {
    display: none;
    padding: 10px 0;
    animation: caFadeIn 0.3s ease-out;
}

@keyframes caFadeIn {
    from {
        opacity: 0;
        transform: translateY(4px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.ca_tarifdetails .tabcontent.active {
    display: block;
}

/* Tarifdetails — ca_flex-lg three-column layout (left / center / right) */

/* --- SVG Icon Support --- */
.ca-icon {
    display: inline-block;
    width: 1em !important;
    height: 1em !important;
    vertical-align: -0.125em !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.ca-icon-question,
.ca-icon-info {
    margin-left: 4px;
    width: 14px;
    height: 14px;
    opacity: 0.7;
    cursor: help;
}

.ca-icon-chevron {
    width: 14px;
    height: 14px;
    margin-left: 6px;
    vertical-align: middle;
}

.ca_button-weitere-optionen .ca-icon-chevron {
    width: 20px;
    height: 20px;
    margin-left: 8px;
    pointer-events: none;
    transition: transform 0.3s ease;
}

.ca-more-options-close .ca-icon-chevron,
#ca_weitere-leistungen-off .ca-icon-chevron {
    transform: rotate(180deg);
}

/* Mobile adjustments for tabs */
@media (max-width: 600px) {
    .ca_tarifdetails .tab button {
        padding: 10px 12px;
        font-size: 13px;
    }

    .ca_tarifdetails-border {
        padding: 15px !important;
    }
}

/* 2.12.0 fallback: legacy template X stays compact if the disclosure adapter
   has not run yet. This prevents site/theme anchor styles from leaking in. */
.ca_close-icon > a.close_button_new {
  display: inline-grid !important;
  width: 26px !important;
  min-width: 26px !important;
  height: 26px !important;
  min-height: 26px !important;
  margin: 0 !important;
  padding: 0 !important;
  color: #64748b !important;
  font-family: ui-sans-serif, system-ui, sans-serif !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-align: center !important;
  text-decoration: none !important;
  text-transform: none !important;
  background: #f1f5f9 !important;
  border: 0 !important;
  border-radius: 7px !important;
  box-shadow: none !important;
  place-items: center !important;
}

/* ===== assets/css/frontend/widgets/calculator-widget.css ===== */
/**
 * CommunicationAds Calculator Widget Styles — SINGLE SOURCE for form/result chrome.
 *
 * Owns: filter form look, Ja/Nein, more-options, submit row, result cards polish.
 * Does not own: template layout grids (calculator.css), tip popups (disclosures.css),
 *
 * Elementor Style tab: {{WRAPPER}} .ca-elementor-widget .ca_form
 *
 * @package CommunicationAds_Elementor
 * @since 2.0.0
 */

/* Widget Container */
.ca-elementor-widget {
	--ca-widget-gap: 16px;
	--ca-ui-accent: var(--ca-primary, #ff7620);
	--ca-ui-accent-hover: var(--ca-primary-hover, #e85f0c);
	--ca-ui-ink: var(--ca-secondary, #162033);
	--ca-ui-muted: #64748b;
	--ca-ui-border: #e2e8f0;
	--ca-ui-surface: #fff;
	--ca-ui-soft: #f8fafc;
	--ca-ui-focus: rgb(255 118 32 / 30%);
	width: 100%;
	max-width: 100%;
	color: var(--ca-ui-ink);
	font-family: var(--ca-font-family, "Helvetica Neue", Helvetica, Arial, sans-serif);
	line-height: 1.5;
	isolation: isolate;
}

.ca-elementor-widget :where(button, input, select, textarea) {
	font: inherit;
}

.ca-elementor-widget :where(a, button, input, select, textarea):focus-visible {
	outline: 3px solid var(--ca-ui-focus) !important;
	outline-offset: 2px;
}

/* Preview Box (Editor) */
.ca-elementor-widget-preview {
	padding: 2rem;
	text-align: center;
}

.ca-preview-box {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: 200px;
	padding: 2rem;
	background: #f8f9fa;
	border: 2px dashed #d1d5db;
	border-radius: 12px;
}

.ca-preview-box .ca-svg-icon {
	width: 48px;
	height: 48px;
	margin-bottom: 1rem;
	color: #6b7280;
}

.ca-preview-box h3 {
	margin: 0 0 0.5rem;
	color: #374151;
	font-size: 1.25rem;
	font-weight: 600;
}

.ca-preview-box p {
	margin: 0;
	color: #6b7280;
	font-size: 0.875rem;
}

/* =========================================================
   Professional filter form (first paint — all calculator widgets)
   Overrides legacy calculator.css !important rules.
   ========================================================= */
.ca-elementor-widget .ca_form {
	margin-block-end: 20px !important;
	padding: clamp(16px, 2.4vw, 28px) !important;
	color: var(--ca-ui-ink) !important;
	font-family: inherit !important;
	line-height: 1.5 !important;
	background:
		linear-gradient(135deg, rgb(255 118 32 / 7%), transparent 42%),
		var(--ca-ui-surface) !important;
	border: 1px solid var(--ca-ui-border) !important;
	border-radius: 20px !important;
	box-shadow: 0 14px 36px rgb(15 23 42 / 7%) !important;
}

.ca-elementor-widget .ca_filter {
	display: flex;
	flex-wrap: wrap;
	align-items: end;
	gap: 16px 14px;
	margin-right: 0;
}

.ca-elementor-widget .ca_filter > :where(div, label),
.ca-elementor-widget .ca_addressinfo > :where(div, label) {
	flex: 1 1 190px;
	min-width: 0;
}

.ca-elementor-widget .ca_label {
	display: block !important;
	margin: 0 0 7px !important;
	color: var(--ca-ui-ink) !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
	letter-spacing: 0.01em;
}

.ca-elementor-widget .ca_label a {
	color: inherit;
	text-decoration: none;
}

.ca-elementor-widget :where(
	.ca_select-group select,
	.ca_input-group input[type="text"],
	.ca_input-group input[type="number"],
	.ca_input-group input[type="search"],
	input[type="text"],
	input[type="number"],
	input[type="email"],
	input[type="tel"],
	select,
	.select2-container .select2-selection
) {
	min-height: 46px !important;
	height: auto !important;
	color: var(--ca-ui-ink) !important;
	background-color: var(--ca-ui-surface) !important;
	border: 1px solid #cbd5e1 !important;
	border-radius: 11px !important;
	box-shadow: 0 1px 2px rgb(15 23 42 / 3%);
	transition:
		border-color 0.16s ease,
		box-shadow 0.16s ease,
		background-color 0.16s ease;
}

.ca-elementor-widget .ca_select-group select {
	padding-top: 10px !important;
	padding-bottom: 10px !important;
	padding-left: 12px !important;
	font-size: 14px !important;
}

.ca-elementor-widget :where(
	.ca_select-group select,
	.ca_input-group input[type="text"],
	.ca_input-group input[type="number"],
	.ca_input-group input[type="search"],
	input[type="text"],
	input[type="number"],
	input[type="email"],
	input[type="tel"],
	select
):hover,
.ca-elementor-widget .select2-container .select2-selection:hover {
	border-color: #94a3b8 !important;
}

.ca-elementor-widget :where(
	.ca_select-group select,
	.ca_input-group input[type="text"],
	.ca_input-group input[type="number"],
	.ca_input-group input[type="search"],
	input[type="text"],
	input[type="number"],
	input[type="email"],
	input[type="tel"],
	select
):focus,
.ca-elementor-widget .select2-container--focus .select2-selection,
.ca-elementor-widget .select2-container--open .select2-selection {
	border-color: var(--ca-ui-accent) !important;
	outline: 0 !important;
	box-shadow: 0 0 0 4px var(--ca-ui-focus) !important;
}

.ca-elementor-widget input[type="checkbox"],
.ca-elementor-widget input[type="radio"] {
	accent-color: var(--ca-ui-accent);
}

.ca-elementor-widget .ca_control_indicator {
	border-color: #cbd5e1;
	border-radius: 6px;
}

.ca-elementor-widget .ca_control input:checked ~ .ca_control_indicator {
	background-color: var(--ca-ui-accent);
	border-color: var(--ca-ui-accent);
}

/* Mobilfunknetze / Anbieter — full-width row, one style source */
.ca-elementor-widget .ca_filter > div:has(.ca_provider_tag_wrapper),
.ca-elementor-widget .ca_filter > div:has(.ca_company_tag_wrapper) {
	flex: 1 1 100% !important;
	width: 100% !important;
	max-width: 100% !important;
}

.ca-elementor-widget .ca_provider_tag_wrapper,
.ca-elementor-widget .ca_company_tag_wrapper {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 10px;
	width: 100% !important;
	max-width: 100%;
}

.ca-elementor-widget .ca_provider_tag,
.ca-elementor-widget .ca_company_tag {
	flex: none !important;
	width: auto !important;
	min-width: 0;
	min-height: 0;
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	transform: none !important;
}

.ca-elementor-widget .ca_provider_tag label,
.ca-elementor-widget .ca_company_tag label {
	margin: 0 !important;
	border-radius: 12px;
}

.ca-elementor-widget .ca_provider_tag label span,
.ca-elementor-widget .ca_company_tag label span {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 56px;
	padding: 10px 12px !important;
	color: var(--ca-ui-ink) !important;
	background: var(--ca-ui-surface, #fff) !important;
	border: 1px solid var(--ca-ui-border, #e2e8f0) !important;
	border-radius: 12px !important;
	box-shadow: 0 1px 2px rgb(15 23 42 / 4%);
	transition:
		border-color 0.16s ease,
		box-shadow 0.16s ease,
		background-color 0.16s ease,
		transform 0.16s ease;
}

.ca-elementor-widget .ca_provider_tag label span:hover,
.ca-elementor-widget .ca_company_tag label span:hover,
.ca-elementor-widget .ca_provider_tag input:not(:checked) + span:hover,
.ca-elementor-widget .ca_company_tag input:not(:checked) + span:hover {
	border-color: #fdba8c !important;
	background: #fff !important;
	box-shadow: 0 6px 16px rgb(15 23 42 / 8%);
	transform: translateY(-1px);
}

.ca-elementor-widget .ca_provider_tag input:checked + span,
.ca-elementor-widget .ca_company_tag input:checked + span {
	color: var(--ca-ui-ink) !important;
	background: #fff7ed !important;
	border-color: var(--ca-ui-accent, #ff7620) !important;
	box-shadow: 0 0 0 3px rgb(255 118 32 / 14%);
	transform: none;
}

.ca-elementor-widget .ca_provider_tag_logo,
.ca-elementor-widget .ca_company_tag_logo {
	width: auto !important;
	max-width: 72px;
	height: 28px !important;
	margin: 0 auto;
	object-fit: contain;
}

.ca-elementor-widget .ca_provider_tag.vodafone .ca_provider_tag_logo {
	height: 20px !important;
}

.ca-elementor-widget .ca_provider_tag.o2 .ca_provider_tag_logo {
	height: 22px !important;
}

@media (max-width: 575px) {
	.ca-elementor-widget .ca_provider_tag_wrapper,
	.ca-elementor-widget .ca_company_tag_wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

/* =========================================================
   Ja / Nein segmented control (Rufnummernmitnahme etc.)
   ========================================================= */
.ca-elementor-widget .ca_select-group:has(.ca-yn-toggle) {
	position: relative;
}

.ca-elementor-widget .ca-yn-toggle__native {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	border: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

.ca-elementor-widget .ca-yn-toggle {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	min-height: 46px;
	padding: 4px;
	background: var(--ca-ui-soft, #f8fafc);
	border: 1px solid var(--ca-ui-border, #e2e8f0);
	border-radius: 12px;
	box-shadow: inset 0 1px 2px rgb(15 23 42 / 4%);
}

.ca-elementor-widget .ca-yn-toggle__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 38px;
	padding: 0 14px;
	color: var(--ca-ui-muted, #64748b);
	font-size: 14px;
	font-weight: 700;
	letter-spacing: 0.01em;
	cursor: pointer;
	background: transparent;
	border: 1px solid transparent;
	border-radius: 9px;
	transition:
		background-color 0.16s ease,
		color 0.16s ease,
		border-color 0.16s ease,
		box-shadow 0.16s ease;
}

.ca-elementor-widget .ca-yn-toggle__btn:hover {
	color: var(--ca-ui-ink, #162033);
	background: rgb(255 255 255 / 70%);
}

.ca-elementor-widget .ca-yn-toggle__btn.is-active {
	color: #fff;
	background: var(--ca-ui-accent, #ff7620);
	border-color: var(--ca-ui-accent, #ff7620);
	box-shadow: 0 6px 14px rgb(255 118 32 / 22%);
}

.ca-elementor-widget .ca-yn-toggle__btn:focus-visible {
	outline: 3px solid var(--ca-ui-focus, rgb(255 118 32 / 30%));
	outline-offset: 2px;
}

/* =========================================================
   Actions row: Mehr Optionen + Tarife vergleichen (one row)
   Advanced filter panel stays full width above/around it.
   ========================================================= */
.ca-elementor-widget .ca_filter > .ca-more-options-panel,
.ca-elementor-widget .ca_filter > #caFormMoreOptions,
.ca-elementor-widget .ca_filter > .collapse#caFormMoreOptions {
	flex: 1 1 100% !important;
	width: 100% !important;
	max-width: 100% !important;
}

/* Keep action controls on one row (Mehr Optionen | Tarife vergleichen). */
.ca-elementor-widget .ca_filter > .ca_filter_more-options,
.ca-elementor-widget .ca_extended_filter.ca_filter > .ca_filter_more-options,
.ca-elementor-widget .ca_filter.ca_extended_filter > div.ca_filter_more-options,
.ca-elementor-widget .ca_filter .ca_filter_more-options {
	display: flex !important;
	flex: 0 0 auto !important;
	align-items: center;
	justify-content: flex-start;
	width: auto !important;
	max-width: none !important;
	min-width: 0 !important;
	margin: 8px 0 0 !important;
	padding: 0 !important;
	text-align: left !important;
}

.ca-elementor-widget .ca_filter > .ca_filter_submit,
.ca-elementor-widget .ca_extended_filter.ca_filter > .ca_filter_submit,
.ca-elementor-widget .ca_filter.ca_extended_filter > div.ca_filter_submit,
.ca-elementor-widget .ca_filter .ca_filter_submit {
	display: flex !important;
	flex: 1 1 280px !important;
	align-items: center;
	width: auto !important;
	max-width: none !important;
	min-width: 200px !important;
	margin: 8px 0 0 !important;
	padding: 0 !important;
}

@media (max-width: 575px) {
	.ca-elementor-widget .ca_filter > .ca_filter_more-options,
	.ca-elementor-widget .ca_filter .ca_filter_more-options,
	.ca-elementor-widget .ca_filter > .ca_filter_submit,
	.ca-elementor-widget .ca_filter .ca_filter_submit {
		flex: 1 1 100% !important;
		width: 100% !important;
		min-width: 0 !important;
	}

	.ca-elementor-widget .ca_button-weitere-optionen,
	.ca-elementor-widget .ca-more-options-btn {
		width: 100%;
	}
}

.ca-elementor-widget .ca_filter > .ca_filter_submit .ca_button-submit,
.ca-elementor-widget .ca_filter_submit .ca_button-submit {
	width: 100% !important;
	min-height: 48px !important;
	margin: 0 !important;
}

.ca-elementor-widget .ca_button-weitere-optionen,
.ca-elementor-widget .ca-more-options-btn,
.ca-elementor-widget button.ca_button-weitere-optionen {
	/* No display:!important — inactive toggle must stay hideable. */
	appearance: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	width: auto;
	min-width: 0;
	min-height: 48px;
	margin: 0;
	padding: 10px 18px !important;
	color: var(--ca-ui-ink, #162033) !important;
	font: inherit;
	font-size: 14px !important;
	font-weight: 700 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	cursor: pointer;
	background: #fff !important;
	border: 1px solid var(--ca-ui-border, #e2e8f0) !important;
	border-radius: 12px !important;
	box-shadow: 0 4px 14px rgb(15 23 42 / 6%);
	transition:
		background-color 0.16s ease,
		border-color 0.16s ease,
		box-shadow 0.16s ease,
		color 0.16s ease;
	white-space: nowrap;
}

.ca-elementor-widget .ca_button-weitere-optionen[hidden],
.ca-elementor-widget .ca-more-options-btn[hidden],
.ca-elementor-widget .ca_button-weitere-optionen.is-hidden,
.ca-elementor-widget .ca-more-options-btn.is-hidden {
	display: none !important;
}

.ca-elementor-widget .ca_filter_more-options[hidden],
.ca-elementor-widget .ca-mobile-secondary-options[hidden] {
	display: none !important;
}

.ca-elementor-widget .ca_button-weitere-optionen:hover,
.ca-elementor-widget .ca-more-options-btn:hover {
	color: var(--ca-ui-accent, #ff7620) !important;
	background: #fff7ed !important;
	border-color: #fdba8c !important;
	box-shadow: 0 8px 20px rgb(255 118 32 / 12%);
}

.ca-elementor-widget .ca_button-weitere-optionen .ca-icon-chevron,
.ca-elementor-widget .ca-more-options-btn .ca-icon-chevron {
	flex: 0 0 auto;
	transition: transform 0.18s ease;
}

.ca-elementor-widget .ca_button-weitere-optionen:hover .ca-icon-chevron,
.ca-elementor-widget .ca-more-options-btn:hover .ca-icon-chevron {
	transform: translateY(1px);
}

.ca-elementor-widget .ca-more-options-panel,
.ca-elementor-widget #caFormMoreOptions {
	width: 100% !important;
	margin-top: 4px;
}


.ca-elementor-widget .ca_formMoreOptions-wrapper > .ca_control,
.ca-elementor-widget .ca_formMoreOptions-wrapper > label.ca_control {
	display: flex !important;
	align-items: flex-start;
	gap: 10px;
	width: auto !important;
	min-width: 0 !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 12px 12px 12px 38px !important;
	color: var(--ca-ui-ink, #162033);
	font-size: 13px;
	font-weight: 650;
	line-height: 1.35;
	cursor: pointer;
	background: #fff;
	border: 1px solid var(--ca-ui-border, #e2e8f0);
	border-radius: 12px;
	box-sizing: border-box;
	transition:
		border-color 0.16s ease,
		box-shadow 0.16s ease,
		background-color 0.16s ease;
}

.ca-elementor-widget .ca_formMoreOptions-wrapper > .ca_control:hover,
.ca-elementor-widget .ca_formMoreOptions-wrapper > label.ca_control:hover {
	border-color: #fdba8c;
	box-shadow: 0 6px 16px rgb(15 23 42 / 6%);
}

.ca-elementor-widget .ca_formMoreOptions-wrapper .ca_control_indicator {
	top: 14px;
	left: 12px;
	z-index: 2;
	width: 18px;
	height: 18px;
	border-radius: 6px !important;
	border-color: #cbd5e1;
	background: #fff;
	pointer-events: auto;
	cursor: pointer;
}

.ca-elementor-widget .ca_formMoreOptions-wrapper .ca_control input:checked ~ .ca_control_indicator {
	background: var(--ca-ui-accent, #ff7620) !important;
	border-color: var(--ca-ui-accent, #ff7620) !important;
}

.ca-elementor-widget .ca_formMoreOptions-wrapper > .ca_control:has(input:checked),
.ca-elementor-widget .ca_formMoreOptions-wrapper > label.ca_control:has(input:checked) {
	background: #fff7ed;
	border-color: #fdba8c;
}

.ca-elementor-widget .ca_formMoreOptions-wrapper .ca_label-text-form {
	flex: 1 1 auto;
	width: auto !important;
	max-width: 100%;
	margin-right: 0 !important;
	padding-left: 0 !important;
	padding-top: 0 !important;
	color: inherit !important;
	font-size: 13px !important;
	font-weight: 650 !important;
	line-height: 1.35 !important;
	white-space: normal;
	hyphens: auto;
}

.ca-elementor-widget .ca_formMoreOptions-wrapper .ca_label-text-form .ca-tip,
.ca-elementor-widget .ca_formMoreOptions-wrapper .ca_label-text-form [data-toggle="popover"],
.ca-elementor-widget .ca_formMoreOptions-wrapper .ca_label-text-form [data-bs-toggle="popover"] {
	display: inline-flex;
	flex: 0 0 auto;
	margin-left: 4px;
	vertical-align: middle;
	cursor: help;
}

.ca-elementor-widget :where(
	.ca_button-submit,
	.ca_button,
	.ca-btn-primary,
	.ca_call-to-action,
	.ca_calc_loadmore
) {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 48px !important;
	padding: 11px 20px !important;
	color: #fff !important;
	font-weight: 750 !important;
	text-decoration: none !important;
	cursor: pointer;
	background: var(--ca-ui-accent) !important;
	border: 1px solid transparent !important;
	border-radius: 11px !important;
	box-shadow: 0 8px 18px rgb(255 118 32 / 22%);
	transition:
		background-color 0.16s ease,
		box-shadow 0.16s ease,
		transform 0.16s ease;
}

.ca-elementor-widget :where(
	.ca_button-submit,
	.ca_button,
	.ca-btn-primary,
	.ca_call-to-action,
	.ca_calc_loadmore
):hover {
	color: #fff !important;
	background: var(--ca-ui-accent-hover) !important;
	border-color: transparent !important;
	box-shadow: 0 11px 24px rgb(255 118 32 / 28%);
	transform: translateY(-1px);
}

.ca-elementor-widget .ca_button-produktdetails {
	display: inline-flex;
	align-items: center;
	gap: 0.25rem;
	min-height: 42px;
	padding: 8px 12px;
	color: #c64a00;
	font-weight: 700;
	background: #fff7ed;
	border: 1px solid #fed7aa;
	border-radius: 9px;
	transition: all 0.2s ease;
}

.ca-elementor-widget .ca_button-produktdetails:hover {
	color: #9a3412;
	background: #ffedd5;
}

.ca-elementor-widget .ca_button-weitere-optionen:hover svg {
	transform: translateY(2px);
}

/* Result rows */
.ca-elementor-widget .ca_product_window {
	display: grid;
	gap: 16px;
	margin-bottom: var(--ca-widget-gap);
}

.ca-elementor-widget .ca_zeile {
	--ca-zeile-pad-x: clamp(15px, 2vw, 22px);
	--ca-zeile-pad-y: clamp(15px, 2vw, 22px);
	position: relative;
	margin: 0 !important;
	padding: var(--ca-zeile-pad-y) var(--ca-zeile-pad-x) !important;
	overflow: clip;
	background: var(--ca-ui-surface);
	border: 1px solid var(--ca-ui-border) !important;
	border-radius: 18px !important;
	box-shadow: 0 8px 28px rgb(15 23 42 / 7%);
	/* Kill legacy scaleY(0) slideIn — it can stick and hide Tarifdetails */
	animation: none !important;
	transform: none;
	transition:
		border-color 0.18s ease,
		box-shadow 0.18s ease,
		transform 0.18s ease;
}

.ca-elementor-widget .ca_zeile:hover {
	border-color: #fdba8c !important;
	box-shadow: 0 16px 38px rgb(15 23 42 / 11%);
	transform: translateY(-2px);
}

.ca-elementor-widget .ca_product_window.ca_tarifdetails-open .ca_zeile {
	overflow: visible;
	transform: none;
}

/* Eyecatcher: full-bleed ribbon integrated into the offer card */
.ca-elementor-widget .ca_zeile:has(.ca_eyecatcher) {
	padding-top: 0 !important;
}

.ca-elementor-widget .ca_zeile:has(.ca_eyecatcher) .ca_zeile-wrapper {
	padding-top: 2px !important;
}

.ca-elementor-widget .ca_eyecatcher {
	position: relative !important;
	top: auto !important;
	right: auto !important;
	left: auto !important;
	z-index: 2;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	width: auto;
	min-height: 42px;
	margin: 0 calc(-1 * var(--ca-zeile-pad-x, 22px)) 16px;
	padding: 12px 18px !important;
	color: #fff;
	font-family: inherit;
	font-size: 13px;
	font-weight: 700;
	font-style: normal;
	line-height: 1.35;
	letter-spacing: 0.015em;
	text-align: center;
	text-wrap: balance;
	border-width: 0 !important;
	border-style: none !important;
	border-radius: 17px 17px 0 0 !important;
	background-image: linear-gradient(
		180deg,
		rgb(255 255 255 / 14%) 0%,
		rgb(255 255 255 / 0%) 55%
	);
	box-shadow:
		inset 0 1px 0 rgb(255 255 255 / 22%),
		inset 0 -1px 0 rgb(15 23 42 / 12%);
}

.ca-elementor-widget .ca_eyecatcher::before {
	content: "";
	flex: 0 0 auto;
	width: 3px;
	height: 1.05em;
	background: currentColor;
	border-radius: 999px;
	opacity: 0.85;
	box-shadow: 0 0 0 1px rgb(255 255 255 / 18%);
}

@media (max-width: 575px) {
	.ca-elementor-widget .ca_eyecatcher {
		justify-content: flex-start;
		gap: 8px;
		min-height: 40px;
		padding: 11px 14px !important;
		font-size: 12.5px;
		letter-spacing: 0.01em;
		text-align: left;
	}
}

.ca-elementor-widget :where(.ca_product-company, .ca_device-name, .ca_bold) {
	color: var(--ca-ui-ink);
	font-weight: 800;
	line-height: 1.3;
}

.ca-elementor-widget :where(.ca_product-name, .ca_product-period, .ca_select_subtext) {
	color: var(--ca-ui-muted);
}

.ca-elementor-widget .ca_product-price {
	padding: 14px;
	background: var(--ca-ui-soft);
	border: 1px solid var(--ca-ui-border);
	border-radius: 14px;
}

.ca-elementor-widget :where(.ca_gebuehren-gruen, .ca_text-gruen) {
	color: #08783e !important;
}

.ca-elementor-widget .ca_tarifdetails {
	background: #fff;
	border-radius: 0 0 14px 14px;
}

.ca-elementor-widget .ca_tarifdetails .tab button.active {
	color: var(--ca-ui-accent);
	border-bottom-color: var(--ca-ui-accent);
}

/* Loading */
.ca-elementor-widget .ca_loading {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 2rem;
}

.ca-elementor-widget .ca_loading::after {
	content: "";
	width: 24px;
	height: 24px;
	margin-left: 0.5rem;
	border: 2px solid #e5e7eb;
	border-top-color: var(--ca-ui-accent);
	border-radius: 50%;
	animation: ca-spin 0.8s linear infinite;
}

@keyframes ca-spin {
	to {
		transform: rotate(360deg);
	}
}

/* =========================================================
   Mobile: first 3 filters + Alle Filter + Tarife vergleichen
   ========================================================= */
.ca-mobile-filter-toggle {
	display: none;
}

/* Legacy React sheet / mobile bar — retired */
.ca-ssr-mobile-filter,
.ca-react-widget-tools,
.ca-react-mobile-bar,
.ca-react-filter-button,
.ca-react-filter-backdrop,
.ca-react-filter-close,
.ca-react-filter-title,
.ca-react-result-count {
	display: none !important;
}

@media (max-width: 767px) {
	.ca-elementor-widget {
		--ca-widget-gap: 12px;
	}

	.ca-elementor-widget .ca_form {
		display: block !important;
		visibility: visible !important;
		height: auto !important;
		margin: 0 0 12px !important;
		overflow: visible !important;
		border-radius: 16px !important;
		padding: 14px !important;
	}

	.ca-elementor-widget .ca_filter:not(.is-mobile-expanded) > .ca-mobile-filter-extra {
		display: none !important;
	}

	.ca-elementor-widget .ca-mobile-filter-toggle {
		display: inline-flex !important;
		align-items: center;
		justify-content: center;
		gap: 8px;
		flex: 1 1 100% !important;
		order: 98;
		width: 100% !important;
		min-height: 44px;
		margin: 2px 0 0;
		padding: 10px 14px;
		color: var(--ca-ui-ink, #0f172a);
		font: inherit;
		font-size: 14px;
		font-weight: 700;
		cursor: pointer;
		appearance: none;
		background: #fff;
		border: 1px solid var(--ca-ui-border, #e2e8f0);
		border-radius: 12px;
		box-shadow: 0 4px 14px rgb(15 23 42 / 6%);
	}

	.ca-elementor-widget .ca-mobile-filter-toggle:hover,
	.ca-elementor-widget .ca-mobile-filter-toggle:focus-visible {
		color: var(--ca-ui-accent, #ff7620);
		background: #fff7ed;
		border-color: #fdba8c;
		outline: none;
	}

	.ca-elementor-widget .ca-mobile-filter-toggle .ca-icon-chevron {
		flex: 0 0 auto;
		transition: transform 0.18s ease;
	}

	.ca-elementor-widget .ca-mobile-filter-toggle .ca-icon-chevron.ca-icon-rotate {
		transform: rotate(180deg);
	}

	.ca-elementor-widget .ca_filter_submit {
		display: flex !important;
		flex: 1 1 100% !important;
		order: 99;
		width: 100% !important;
	}

	.ca-elementor-widget .ca_filter > :where(div, label, button.ca-mobile-filter-toggle) {
		flex-basis: 100%;
		width: 100% !important;
	}

	.ca-elementor-widget .ca_provider_tag_wrapper,
	.ca-elementor-widget .ca_company_tag_wrapper {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.ca-elementor-widget .ca_zeile {
		--ca-zeile-pad-x: 14px;
		--ca-zeile-pad-y: 14px;
		padding: var(--ca-zeile-pad-y) var(--ca-zeile-pad-x) !important;
		border-radius: 16px !important;
	}

	.ca-elementor-widget .ca_zeile:has(.ca_eyecatcher) {
		padding-top: 0 !important;
	}

	.ca-elementor-widget .ca_eyecatcher {
		margin-bottom: 12px;
		border-radius: 15px 15px 0 0 !important;
	}

	.ca-elementor-widget .ca_button,
	.ca-elementor-widget .ca_button-submit {
		width: 100%;
		min-height: 48px;
	}
}

/* Density / surface modifiers (Elementor design system) */
.ca-density-compact .ca-elementor-widget {
	--ca-widget-gap: 10px;
}

.ca-density-compact .ca-elementor-widget .ca_form {
	padding: 12px !important;
}

.ca-density-compact .ca-elementor-widget :where(input[type="text"], input[type="number"], select, .select2-container .select2-selection) {
	min-height: 40px !important;
}

.ca-surface-flat .ca-elementor-widget .ca_form,
.ca-surface-flat .ca-elementor-widget .ca_zeile {
	box-shadow: none !important;
}

.ca-surface-elevated .ca-elementor-widget .ca_form {
	box-shadow: 0 10px 30px rgb(15 23 42 / 8%) !important;
}

.ca-surface-elevated .ca-elementor-widget .ca_zeile {
	box-shadow: 0 8px 24px rgb(15 23 42 / 8%);
}

/* High contrast */
@media (prefers-contrast: high) {
	.ca-elementor-widget .ca_button,
	.ca-elementor-widget .ca_button-submit {
		border: 2px solid currentColor;
	}
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.ca-elementor-widget .ca_button,
	.ca-elementor-widget .ca_button-submit,
	.ca-elementor-widget .ca_zeile,
	.ca-elementor-widget .ca_button-weitere-optionen,
	.ca-elementor-widget .ca_button-weitere-optionen svg,
	.ca-elementor-widget .ca_provider_tag,
	.ca-elementor-widget .ca_company_tag {
		transition: none;
	}

	.ca-elementor-widget .ca_loading::after {
		animation: none;
	}
}

/* 2.12.0: on mobile, Mehr Optionen is a child action of the expanded
   Alle Filter area. The generic .ca-mobile-filter-extra rule hides both the
   action and its advanced panel until Alle Filter anzeigen is opened. */
@media (max-width: 767px) {
  .ca-elementor-widget .ca_filter.ca-mobile-has-integrated-more > .ca_filter_more-options.ca-mobile-filter-extra {
    width: 100% !important;
    margin-top: 4px !important;
  }

  .ca-elementor-widget .ca_filter.ca-mobile-has-integrated-more > .ca-more-options-panel.ca-mobile-integrated-more-panel,
  .ca-elementor-widget .ca_filter.ca-mobile-has-integrated-more > #caFormMoreOptions.ca-mobile-integrated-more-panel {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* 2.18.3: mobile disclosure hierarchy.
   When the primary filter has an "Alle Filter anzeigen" disclosure, the
   legacy "Mehr Optionen" action is a second-level action and must never be
   visible before the primary disclosure is expanded. This selector is scoped
   to filters that actually received the mobile disclosure, so calculators
   with three or fewer primary fields keep their normal More Options control. */
@media (max-width: 767px) {
  .ca-elementor-widget .ca_filter.ca-mobile-filter-collapsible:not(.is-mobile-expanded) > .ca_filter_more-options,
  .ca-elementor-widget .ca_filter.ca-mobile-filter-collapsible:not(.is-mobile-expanded) .ca-mobile-secondary-options {
    display: none !important;
  }

  .ca-elementor-widget .ca_filter.ca-mobile-filter-collapsible.is-mobile-expanded > .ca_filter_more-options,
  .ca-elementor-widget .ca_filter.ca-mobile-filter-collapsible.is-mobile-expanded .ca-mobile-secondary-options {
    width: 100% !important;
    flex: 1 1 100% !important;
    order: 97;
    margin-top: 4px !important;
  }

  .ca-elementor-widget .ca_filter.ca-mobile-filter-collapsible > .ca-mobile-filter-toggle {
    order: 98;
  }
}

/* ===== assets/css/frontend/core.css ===== */
/**
 * CommunicationAds Elementor Frontend Styles
 */

/* =============================================
   Screen Reader / Accessibility Styles
   ============================================= */

/* Visually hidden but accessible to screen readers */
.screen-reader-text {
    border: 0;
    clip: rect(1px, 1px, 1px, 1px);
    clip-path: inset(50%);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: #f1f1f1;
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
    clip: auto !important;
    clip-path: none;
    color: #21759b;
    display: block;
    font-size: 14px;
    font-weight: bold;
    height: auto;
    left: 5px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

/* =============================================
   Focus States for Accessibility
   ============================================= */



/* Focus rings for CTA/submit: calculator-widget.css (:focus-visible). */

/* Skip link for keyboard navigation */
.ca-skip-link {
    background: #21759b;
    color: #fff;
    font-weight: 700;
    left: 50%;
    padding: 15px 23px 14px;
    position: fixed;
    text-decoration: none;
    top: -100px;
    transform: translateX(-50%);
    z-index: 100000;
}

.ca-skip-link:focus {
    top: 10px;
}

/* =============================================
   Semantic Element Styles
   ============================================= */

/* Calculator section wrapper */
.ca-calculator-section {
    display: block;
    width: 100%;
}

/* Article wrapper for products */
.ca-elementor-widget article.ca_product_window {
    display: block;
}

/* Footer semantic styles */
.ca-calculator-footer {
    margin-top: 20px;
}

.ca-calculator-footer aside {
    font-size: 12px;
    color: #666;
    line-height: 1.5;
}

.ca-calculator-footer small {
    display: block;
    margin-bottom: 5px;
}

/* =============================================
   Loading States with ARIA Support
   ============================================= */

.ca_loader[role="status"] {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}

.ca_loader[aria-busy="true"] {
    opacity: 0.7;
}

/* Live region for dynamic content */
[aria-live="polite"] {
    position: relative;
}

/* =============================================
   High Contrast Mode Support
   ============================================= */

@media (prefers-contrast: high) {

    .ca-elementor-widget .ca_button,
    .ca-elementor-widget .ca_button-submit {
        border: 2px solid currentColor;
    }

    .ca-elementor-widget .ca_zeile {
        border: 2px solid #000;
    }

    .ca-elementor-widget a {
        text-decoration: underline;
    }
}

/* =============================================
   Reduced Motion Support
   ============================================= */

@media (prefers-reduced-motion: reduce) {

    .ca-elementor-widget *,
    .ca-elementor-widget *::before,
    .ca-elementor-widget *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }

    .ca_loader svg {
        animation: none !important;
    }
}

/* =============================================
   Print Styles
   ============================================= */

@media print {
    .ca-elementor-widget {
        background: #fff !important;
        color: #000 !important;
    }

    .ca-elementor-widget .ca_button,
    .ca-elementor-widget .ca_button-submit,
    .ca-elementor-widget .ca_button-weitere-optionen,
    .ca-elementor-widget .ca_filter_submit,
    .ca-elementor-widget .ca_loadmore_area,
    .ca-elementor-widget #ca_loadmore,
    .ca-elementor-widget .ca_loader {
        display: none !important;
    }

    .ca-elementor-widget a[href]::after {
        content: " (" attr(href) ")";
        font-size: 10px;
        color: #666;
    }

    .ca-elementor-widget a[rel="nofollow"]::after {
        content: "";
    }

    .ca-elementor-widget .ca_zeile {
        page-break-inside: avoid;
        border: 1px solid #ccc !important;
    }

    .ca-elementor-widget .ca_product-logoimg,
    .ca-elementor-widget .ca_device-img {
        max-width: 100px !important;
    }
}

/* =============================================
   Image Optimization
   ============================================= */

.ca-elementor-widget img {
    max-width: 100%;
    height: auto;
}


/* Placeholder for lazy-loaded images */
.ca-elementor-widget img:not([src]),
.ca-elementor-widget img[src=""] {
    visibility: hidden;
}

/* =============================================
   Semantic Heading Styles
   ============================================= */

.ca-elementor-widget h2,
.ca-elementor-widget h3,
.ca-elementor-widget h4 {
    margin: 0;
    padding: 0;
    font-weight: inherit;
    font-size: inherit;
    line-height: inherit;
}

.ca-elementor-widget .ca_product-company,
.ca-elementor-widget .ca_nodata-title {
    font-weight: 600;
}

/* =============================================
   Link Styles
   ============================================= */

.ca-elementor-widget a[rel*="nofollow"] {
    /* Ensure nofollow links are styled consistently */
}

.ca-elementor-widget a[target="_blank"]::after {
    /* External link indicator - optional */
    content: "";
}

/* =============================================
   Form Accessibility
   ============================================= */

.ca-elementor-widget form[role="search"] {
    position: relative;
}

.ca-elementor-widget label {
    cursor: pointer;
}

.ca-elementor-widget input[type="checkbox"],
.ca-elementor-widget input[type="radio"] {
    cursor: pointer;
}

/* Error states */
.ca-elementor-widget input:invalid,
.ca-elementor-widget select:invalid {
    border-color: #dc2626;
}

.ca-elementor-widget input:invalid:focus,
.ca-elementor-widget select:invalid:focus {
    outline-color: #dc2626;
}
