/* Rows and Cols */
.tippevent-booking-form .row {
    display      : flex;
    flex-wrap    : wrap;
    gap          : 0px 20px;
    margin-bottom: 20px;
    align-items  : flex-start;
    width        : 100%;
}

.tippevent-booking-form .row.justify-between {
    justify-content: space-between;
}

.tippevent-booking-form .row .col-3 {
    width: calc(100% / 4 - 10px);
}

.tippevent-booking-form .row .col-4 {
    width: calc(100% / 3 - 10px);
}

.tippevent-booking-form .row .col-6 {
    width: calc(100% / 2 - 10px);
}

.tippevent-booking-form .row .col-8 {
    width: calc(100% / 3 * 2 - 10px);
}

.tippevent-booking-form .row .col-9 {
    width: calc(100% / 4 * 3 - 10px);
}

.tippevent-booking-form .row .col-12 {
    width: 100%;
}

/* Hidden Class */
.hidden,
.tippevent-booking-form .hidden {
    display: none;
}

.tippevent-booking-form .row:has(.hidden) {
    margin-bottom: 0;
}

/* Label */
.tippevent-booking-form p.label {
    width        : 100%;
    display      : block;
    margin-bottom: 0;
}

/* Inputs */
.tippevent-booking-form input:not([type="button"]):not([type="submit"]),
.tippevent-booking-form textarea,
.tippevent-booking-form .elementor-field-textual {
    padding: 5px 0 5px;
}

.tippevent-booking-form .input:not([type="button"]):not([type="submit"]):focus,
.tippevent-booking-form textarea:focus,
.tippevent-booking-form .elementor-field-textual:focus {
    padding: 5px 5px 5px;
}

.tippevent-booking-form .elementor-form input:not([type="button"]):not([type="submit"]):focus,
.tippevent-booking-form .elementor-form textarea:focus,
.tippevent-booking-form .elementor-form .elementor-field-textual:focus {
    padding: 12px 0 5px;
}

.tippevent-booking-form .elementor-field-type-textarea label.elementor-field-label {
    transform: translateY(0px) !important;
}

.tippevent-booking-form .elementor-field-type-textarea textarea {
    padding-top: 16px;
}

.tippevent-booking-form .elementor-field-type-textarea textarea:focus {
    padding-top: 0;
}

.tippevent-booking-form .elementor-field-type-textarea textarea::placeholder {
    position  : relative;
    top       : 20px;
    transition: all 0.1s ease-in;
}

.tippevent-booking-form .elementor-field-type-textarea textarea:focus::placeholder {
    top: 1px;
}

/* Tooltip */
.tippevent-booking-form label:has(.tooltip-wrapper) {
    display    : flex;
    align-items: center;
    gap        : 4px;
}

.tippevent-booking-form .tooltip-wrapper {
    position   : relative;
    display    : inline-flex;
    align-items: center;
    margin-left: 6px;
}

.tippevent-booking-form .tooltip-wrapper .tooltip-icon {
    cursor         : help;
    width          : 26px;
    height         : 26px;
    display        : inline-flex;
    align-items    : center;
    justify-content: center;
}

.tippevent-booking-form .tooltip-wrapper .tooltip-icon svg {
    width  : 100%;
    display: block;
}

.tippevent-booking-form .tooltip-wrapper .tooltip-text {
    position      : absolute;
    bottom        : 125%;
    left          : 50%;
    transform     : translateX(-50%);
    background    : var(--e-global-color-8a8521c);
    color         : #fff;
    padding       : 6px 8px;
    font-size     : 12px;
    border-radius : 4px;
    white-space   : nowrap;
    opacity       : 0;
    pointer-events: none;
    transition    : opacity 0.15s ease;
    z-index       : 10;
}

.tippevent-booking-form .tooltip-wrapper:hover .tooltip-text {
    opacity: 1;
}

.tippevent-booking-form .tooltip-wrapper .tooltip-icon:focus+.tooltip-text {
    opacity: 1;
}

/* Hidden */
.te-hidden {
    display: none;
}

/* SEPA */
.tippevent-booking-form .row.sepaFields input {
    margin-bottom: 20px;
}

.tippevent-booking-form .row.sepaFields input#sepa_bic {
    margin-bottom: 0;
}

/* Legend */
.tippevent-booking-form fieldset legend {
    display    : none;
    font-family: var(--e-global-typography-06f51cb-font-family);
    font-weight: var(--e-global-typography-06f51cb-font-weight);
    font-size  : 24px;
}

/* Discount */
.tippevent-booking-form div.getDisc {
    display    : flex;
    flex-wrap  : wrap;
    align-items: flex-end;
    gap        : 10px 20px;
}

.tippevent-booking-form button.getDisc {
    display      : flex;
    gap          : 8px;
    padding-right: 30px !important;
}

.tippevent-booking-form button.getDisc:after {
    display: none;
}

.tippevent-booking-form button.getDisc .te-loader {
    width     : 16px;
    height    : 16px;
    padding   : 2px;
    background: #fff;
}

.tippevent-booking-form div.getDisc label {
    width: 100%;
}

.tippevent-booking-form .getDisc input[type="text"].getDisc {
    width: calc(100% - 138px - 20px);
}

.tippevent-booking-form .getDisc button.getDisc {
    padding  : 10px 30px;
    max-width: 138px;
}

.tippevent-booking-form .info-msg {
    color        : var(--e-global-color-text);
    font-weight  : bold;
    padding      : 8px;
    margin       : 0;
    border-radius: 3px;
}

.tippevent-booking-form #succsMsg {
    background-color: var(--e-global-color-secondary);
}

.tippevent-booking-form #failMsg {
    background-color: var(--e-global-color-primary);
    color           : #fff;
}

#formMsg:has(h2) {
    background: #fff;
    box-shadow: 0px 5px 20px -10px rgba(0, 0, 0, 0.21);
    padding   : 25px;
    width     : 100%;
}

#formMsg h2 {
    font-family: var(--e-global-typography-secondary-font-family), Sans-serif;
    font-size  : var(--e-global-typography-secondary-font-size);
    font-weight: var(--e-global-typography-secondary-font-weight);
    font-style : var(--e-global-typography-secondary-font-style);
    color      : var(--e-global-color-text);
}

#formMsg h3.paymentInfo {
    font-family: var(--e-global-typography-06f51cb-font-family);
    font-weight: var(--e-global-typography-06f51cb-font-weight);
    font-size  : 28px;
    font-weight: 600;
    color      : var(--e-global-color-text);
}

#formMsg.teSuccessMsg {
    border-bottom: 6px solid var(--e-global-color-secondary);
}

#formMsg.teErrorMsg {
    margin-top   : 40px;
    border-bottom: 6px solid var(--e-global-color-primary);
}

/* Readonly */
.tippevent-booking-form .shows-results {
    background-color: #fafafa;
    padding         : 12px;
    border-radius   : 4px;
    display         : flex;
    flex-direction  : column;
    text-align      : right;
    align-items     : flex-end;
    gap             : 6px;
}

.tippevent-booking-form .shows-results input.readonly[readonly] {
    border            : none;
    padding           : 0;
    -webkit-appearance: textfield;
    appearance        : textfield;
    padding-inline-end: 0;
    background-color  : transparent;
    font-family       : var(--e-global-typography-06f51cb-font-family);
    font-weight       : var(--e-global-typography-06f51cb-font-weight);
    line-height       : 1;
    font-size         : 24px;
    width             : fit-content;
    text-align        : right;
}

.tippevent-booking-form .shows-results input[type="number"]::-webkit-outer-spin-button,
.tippevent-booking-form .shows-results input[type="number"]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin            : 0;
}

.tippevent-booking-form .shows-results input.readonly[readonly]:focus {
    outline: none;
    padding: 0;
}

.tippevent-booking-form .shows-results input.readonly[readonly].wiggle {
    animation: wiggle .5s ease;
}

@keyframes wiggle {

    0% {
        transform: translateX(0);
    }

    15% {
        transform: translateX(-3px);
    }

    30% {
        transform: translateX(3px);
    }

    45% {
        transform: translateX(-3px);
    }

    60% {
        transform: translateX(3px);
    }

    75% {
        transform: translateX(-2px);
    }

    100% {
        transform: translateX(0);
    }
}

/* Select */
.tippevent-booking-form select {
    min-height: 45px;
}

/* Checkboxes */
.tippevent-booking-form .row .checkboxes {
    display  : flex;
    flex-wrap: wrap;
    gap      : 10px 20px;
}

.tippevent-booking-form .row .checkboxes label,
.tippevent-booking-form .elementor-field-type-checkbox .elementor-field-option label,
.tippevent-booking-form .elementor-field-type-radio .elementor-field-option label {
    display      : flex;
    align-items  : center;
    cursor       : pointer;
    margin-bottom: 20px;
    user-select  : none;
    position     : relative;
    padding-left : 26px;
}

.tippevent-booking-form .elementor-field-type-checkbox .elementor-field-option label,
.tippevent-booking-form .elementor-field-type-radio .elementor-field-option label {
    margin-bottom: 10px;
}

.tippevent-booking-form .row .checkboxes input[type="checkbox"],
.tippevent-booking-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"],
.tippevent-booking-form .elementor-field-type-radio .elementor-field-option input[type="radio"] {
    position      : absolute;
    opacity       : 0;
    width         : 0;
    height        : 0;
    margin        : 0;
    pointer-events: none;
}

.tippevent-booking-form .row .checkboxes label::before,
.tippevent-booking-form .elementor-field-type-checkbox .elementor-field-option label::before,
.tippevent-booking-form .elementor-field-type-radio .elementor-field-option label::before {
    content         : "";
    display         : inline-block;
    width           : 18px;
    height          : 18px;
    border          : 2px solid var(--e-global-color-text);
    border-radius   : 4px;
    background-color: #fff;
    box-sizing      : border-box;
    transition      : all 0.2s ease;
    flex-shrink     : 0;
    position        : absolute;
    top             : -2px;
    left            : 0;
}


.tippevent-booking-form .elementor-field-type-radio .elementor-field-option label::before {
    border-radius: 50%;
}

.tippevent-booking-form .row .checkboxes input:disabled+label::before,
.tippevent-booking-form .elementor-field-type-checkbox .elementor-field-option input:disabled+label::before,
.tippevent-booking-form .elementor-field-type-radio .elementor-field-option input:disabled+label::before {
    border          : 2px solid var(--e-global-color-9d8abc3);
    background-color: var(--e-global-color-9d8abc3);
    cursor          : not-allowed;
}

.tippevent-booking-form .row .checkboxes input[type="checkbox"]:checked+label::before,
.tippevent-booking-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"]:checked+label::before,
.tippevent-booking-form .elementor-field-type-radio .elementor-field-option input[type="radio"]:checked+label::before {
    background-color: var(--e-global-color-primary);
    border-color    : var(--e-global-color-primary);
}

.tippevent-booking-form .row .checkboxes label::after,
.tippevent-booking-form .elementor-field-type-checkbox .elementor-field-option label::after,
.tippevent-booking-form .elementor-field-type-radio .elementor-field-option label::after {
    content     : "";
    position    : absolute;
    left        : 6px;
    top         : 1px;
    width       : 6px;
    height      : 10px;
    border      : solid white;
    border-width: 0 2px 2px 0;
    transform   : rotate(45deg);
    opacity     : 0;
    transition  : opacity 0.15s ease;
}

.tippevent-booking-form .row .checkboxes input[type="checkbox"]:checked+label::after,
.tippevent-booking-form .elementor-field-type-checkbox .elementor-field-option input[type="checkbox"]:checked+label::after,
.tippevent-booking-form .elementor-field-type-radio .elementor-field-option input[type="radio"]:checked+label::after {
    opacity: 1;
}

.tippevent-booking-form .row .checkboxes label:hover::before,
.tippevent-booking-form .elementor-field-type-checkbox label:hover::before,
.tippevent-booking-form .elementor-field-type-radio label:hover::before {
    border-color: var(--e-global-color-primary);
}

.tippevent-booking-form input[type="checkbox"]:focus+label::before,
.tippevent-booking-form input[type="radio"]:focus+label::before {
    outline       : 1px solid var(--e-global-color-primary);
    outline-offset: 2px;
}

.tippevent-booking-form .row .checkboxes .wpcf7-form-control-wrap {
    width: calc(50% - 10px);
}

.tippevent-booking-form .row .checkbox-wrapper {
    display    : flex;
    gap        : 5px;
    align-items: flex-start;
}

/* Star-Rating */

.tippevent-booking-form .elementor-field-type-radio[class*="elementor-field-group-rating"] .elementor-field-option {
    position: relative; /* Wichtig, weil ::before absolut positioniert ist */
}

.tippevent-booking-form .elementor-field-type-radio[class*="elementor-field-group-rating"] .elementor-field-option label {
    font-size    : 0;
    height       : 28px;
    width        : 34px;
    margin-bottom: 0;
    cursor       : pointer;
}

.tippevent-booking-form .elementor-field-type-radio[class*="elementor-field-group-rating"] .elementor-field-option label::before {
    content      : "\f005";
    font-family  : 'Font Awesome 5 Free';
    font-weight  : 900; /* Für volle Sterne bei FA5 Free */
    position     : absolute;
    top          : 0;
    left         : 0;
    color        : var(--e-global-color-9d8abc3); /* inaktive Sternfarbe */
    border       : none;
    height       : 28px;
    width        : 34px;
    border-radius: 0;
    font-size    : 28px;
}

/* Aktivierte Sterne (Hover + Auswahl) */
.tippevent-booking-form .elementor-field-type-radio[class*="elementor-field-group-rating"] .elementor-field-option.is-hover label::before,
.tippevent-booking-form .elementor-field-type-radio[class*="elementor-field-group-rating"] .elementor-field-option.is-selected label::before {
    color: var(--e-global-color-primary);
    background-color: transparent !important;
    border: none;
    outline: 0;
}

.tippevent-booking-form .elementor-field-type-radio[class*="elementor-field-group-rating"] .elementor-field-option label::after {
    display: none;
}


/* Screen-reader only */
.tippevent-booking-form .sr-only {
    position   : absolute;
    width      : 1px;
    height     : 1px;
    overflow   : hidden;
    clip       : rect(0 0 0 0);
    white-space: nowrap;
}

/* Progress */
.tippevent-booking-form .ms-progress {
    display        : flex;
    width          : 100%;
    gap            : 10px;
    justify-content: space-between;
    margin-bottom  : 20px;
}

.tippevent-booking-form .ms-progress div {
    display        : flex;
    flex-wrap      : wrap;
    align-items    : center;
    justify-content: center;
    gap            : 10px;
    width          : 100%;
    cursor         : not-allowed;
}

.tippevent-booking-form .ms-progress div[aria-current="step"],
.tippevent-booking-form .ms-progress [data-status="complete"],
.tippevent-booking-form .e-form__indicators__indicator.e-form__indicators__indicator--state-active {
    cursor: pointer;
}

.tippevent-booking-form .ms-progress span.number,
.tippevent-booking-form .e-form__indicators__indicator--shape-circle {
    display        : flex;
    align-items    : center;
    justify-content: center;
    width          : 38px;
    height         : 38px;
    border-radius  : 50%;
    border         : 2px solid var(--e-global-color-9d8abc3);
    text-align     : center;
    font-size      : 24px;
    line-height    : 24px;
    font-family    : var(--e-global-typography-secondary-font-family);
    font-weight    : 500;
}

.tippevent-booking-form .ms-progress div[aria-current="step"] span.number,
.tippevent-booking-form .e-form__indicators__indicator.e-form__indicators__indicator--state-active .e-form__indicators__indicator--shape-circle {
    background-color: var(--e-global-color-accent);
    border-color    : var(--e-global-color-8a8521c);
    color           : #fff;
    font-weight     : 600;
}

.tippevent-booking-form .ms-progress div[aria-current="step"] span.label,
.tippevent-booking-form .e-form__indicators__indicator__label {
    font-weight: bold;
}

.tippevent-booking-form .e-form__indicators__indicator.e-form__indicators__indicator--state-completed .e-form__indicators__indicator__label {
    color: var(--e-global-color-text);
}

.tippevent-booking-form .e-form__indicators__indicator.e-form__indicators__indicator--state-active .e-form__indicators__indicator--shape-circle,
.tippevent-booking-form .e-form__indicators__indicator.e-form__indicators__indicator--state-completed .e-form__indicators__indicator--shape-circle {
    border-color: var(--e-global-color-text);
}

/* Completed steps */
.tippevent-booking-form .ms-progress [data-status="complete"] span.number {
    background  : var(--e-global-color-secondary);
    border-color: var(--e-global-color-8a8521c);
    font-weight : 600;
}

/* Progressbar */
.tippevent-booking-form .ms-progressbar {
    width        : 100%;
    height       : 6px;
    background   : var(--e-global-color-9d8abc3);
    border-radius: 3px;
    margin       : 12px 0 24px;
    overflow     : hidden;
}

.tippevent-booking-form .ms-progressbar-fill {
    height    : 100%;
    width     : 0%;
    background: #000;
    transition: width 0.3s ease;
}

.tippevent-booking-form .ms-step {
    border           : 0;
    padding          : 0;
    scroll-margin-top: 240px;
    padding-top      : 20px;
}

/* Buttons */
.tippevent-booking-form .btn-wrapper,
.tippevent-booking-form .e-form__buttons {
    display        : flex;
    width          : 100%;
    margin-top     : 2rem;
    flex-wrap      : wrap;
    justify-content: space-between !important;
    gap            : 10px;
}

.tippevent-booking-form .btn-wrapper:not(:has(.ms-prev)) .ms-next,
.tippevent-booking-form .e-form__buttons:not(:has(.e-form__buttons__wrapper__button-previous)) .e-form__buttons__wrapper:has(.e-form__buttons__wrapper__button-next) {
    margin-left: auto;
}

.tippevent-booking-form .btn-wrapper .ms-prev,
.tippevent-booking-form .e-form__buttons .e-form__buttons__wrapper__button-previous {
    background-color: #FFFFFF;
    fill            : var(--e-global-color-text);
    color           : var(--e-global-color-text);
    border-style    : solid;
    border-width    : 2px 2px 2px 2px;
    border-color    : #0c0d0e;
}

.tippevent-booking-form .btn-wrapper .ms-prev::after,
.tippevent-booking-form .e-form__buttons .e-form__buttons__wrapper__button-previous::after {
    left     : 20px;
    right    : unset;
    transform: translateY(-50%) translateX(50px) rotate(-540deg);
}

.tippevent-booking-form .btn-wrapper .ms-prev:hover,
.tippevent-booking-form .e-form__buttons .e-form__buttons__wrapper__button-previous:hover {
    padding-right   : 30px !important;
    padding-left    : 50px;
    background-color: #fff !important;
}

.tippevent-booking-form .btn-wrapper .ms-prev:hover::after,
.tippevent-booking-form .e-form__buttons .e-form__buttons__wrapper__button-previous:hover::after {
    transform: translateY(-50%) translateX(-15px) rotate(-180deg);
}

/* Number Wrapper */
.tippevent-booking-form .number-wrapper {
    display    : flex;
    flex-wrap  : wrap;
    align-items: flex-start;
    gap        : 14px;
}

.tippevent-booking-form .number-wrapper .field-wrapper {
    display       : flex;
    flex-direction: column;
    flex-grow     : 1;
}

.tippevent-booking-form .number-wrapper .button-wrapper {
    display: flex;
    gap    : 8px;
}

.tippevent-booking-form .number-wrapper .button-wrapper button {
    line-height    : 1;
    width          : 40px;
    height         : 40px;
    padding        : 0 !important;
    display        : flex;
    justify-content: center;
    align-items    : center;
    font-size      : 26px;
    border-color   : var(--e-global-color-text);
}

.tippevent-booking-form .number-wrapper .button-wrapper button:hover {
    background-color: #fafafa !important;
}

/* Price Calc */
.tippevent-booking-form .row .col-3:has(.te-price-calc) {
    display        : flex;
    flex-direction : column;
    justify-content: flex-end;
}

.tippevent-booking-form .row:has(.te-price-calc) {
    align-items: flex-end;
}

.tippevent-booking-form .te-price-calc {
    padding        : 25px;
    justify-content: flex-end;
    text-align     : right;
}

.tippevent-booking-form hr {
    margin-top   : 0.5rem;
    margin-bottom: 0.3rem;
    border-color : var(--e-global-color-9d8abc3);
    box-shadow   : none;
    border-style : solid;
}

.tippevent-booking-form .te-price-calc .netPriceClone {
    font-family  : var(--e-global-typography-06f51cb-font-family);
    font-weight  : var(--e-global-typography-06f51cb-font-weight);
    font-size    : 24px;
    margin-top   : 0;
    margin-bottom: 0;
}

.tippevent-booking-form .te-price-calc .grossPriceClone {
    font-family  : var(--e-global-typography-06f51cb-font-family);
    font-weight  : var(--e-global-typography-06f51cb-font-weight);
    font-size    : 28px;
    font-weight  : 900;
    color        : var(--e-global-color-primary);
    margin-bottom: 0;
}

/* Summary */
.tippevent-booking-form .row.summary {
    box-shadow: 0px 5px 20px -10px rgba(0, 0, 0, 0.21);
    padding   : 25px;
    width     : 100% !important;
    float     : unset !important;
}

.tippevent-booking-form .row.summary p.summary-label {
    font-weight: bold;
}

.tippevent-booking-form .row.summary p.summary-pre-msg {
    margin-bottom: 0;
}

.tippevent-booking-form .row.summary ul:has(li) {
    padding-left: 20px;
    margin      : 20px 0;
}

.tippevent-booking-form .row.summary .te-price-calc {
    box-shadow: unset;
    padding   : 0;
}


/* Mobile */
@media only screen and (max-width:768px) {

    /* Rows and Cols */
    .tippevent-booking-form .row {
        margin-bottom: 0;
    }

    .tippevent-booking-form .row .col-3,
    .tippevent-booking-form .row .col-4,
    .tippevent-booking-form .row .col-6,
    .tippevent-booking-form .row .col-8,
    .tippevent-booking-form .row .col-9,
    .tippevent-booking-form .row .col-12 {
        width        : 100%;
        margin-bottom: 20px;
    }

    /* Fieldset */
    .tippevent-booking-form .ms-step {
        scroll-margin-top: 140px;
    }

    /* Legend */
    .tippevent-booking-form fieldset legend {
        display: block;
    }

    /* Progress List */
    .tippevent-booking-form .ms-progress span.number {
        margin: auto;
    }

    .tippevent-booking-form .ms-progress span.label {
        display: none;
    }

    /* Tooltip */
    .tippevent-booking-form label:has(.tooltip-wrapper) {
        align-items: flex-start;
    }

    /* Checkboxes */
    .tippevent-booking-form .row .checkboxes label::before {
        top: -4px;
    }

    /* Read only */
    .tippevent-booking-form .shows-results {
        text-align : left;
        align-items: flex-start;
    }

    .tippevent-booking-form .shows-results input.readonly[readonly] {
        text-align: left;
    }

    .tippevent-booking-form .number-wrapper {
        display    : flex;
        flex-wrap  : wrap;
        align-items: flex-start;
        gap        : 14px;
    }

    /* Number Wrapper */
    .tippevent-booking-form .number-wrapper {
        margin-top: 10px;
    }

    .tippevent-booking-form .number-wrapper .button-wrapper button {
        width : 32px;
        height: 32px;
    }

    /* Submit */
    .tippevent-booking-form button[type="submit"] {
        display: block;
        width  : 100%;
    }
}