/*
 * Optiontics 1.0.2.22 - EDIP storefront / WPCafe popup redesign
 * UI/UX only. Pricing, option values, validation and cart data remain handled
 * by the existing Optiontics/WooCommerce code.
 */

html.optiontics-wpcafe-popup-open,
body.optiontics-wpcafe-popup-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
}

#popup_wrapper.wpc-product-popup-content {
    --ot-orange: #e99a0c;
    --ot-orange-dark: #c97800;
    --ot-orange-soft: #fff6e6;
    --ot-text: #20242a;
    --ot-muted: #74706a;
    --ot-green: #62a154;
    --ot-border: #e7e0d7;
    --ot-border-strong: #d9d1c6;
    --ot-soft: #faf8f4;
    --ot-white: #fff;

    position: fixed !important;
    inset: 0 !important;

    /* Keep the modal, including its close button, above sticky site headers. */
    z-index: 2147482000 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    overflow: hidden !important;
    overscroll-behavior: none !important;
    background: rgba(22, 23, 24, .62) !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
}

#product_popup.wpc-popup-wrap {
    width: min(1040px, calc(100vw - 48px)) !important;
    max-width: 1040px !important;
    height: min(780px, calc(100dvh - 48px)) !important;
    max-height: calc(100dvh - 48px) !important;
    margin: 24px auto !important;
    overflow: hidden !important;
    background: #fff !important;
    border: 1px solid rgba(233, 154, 12, .18) !important;
    border-radius: 22px !important;
    box-shadow: 0 24px 64px rgba(0, 0, 0, .23) !important;
    transform-origin: 50% 48% !important;
    animation: optionticsEdipPopupIn .18s cubic-bezier(.2, .72, .2, 1) both !important;
}

@keyframes optionticsEdipPopupIn {
    from { opacity: 0; transform: translateY(6px) scale(.993); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}

#product_popup .wpc-popup-wrap-inner,
#product_popup .wpc_variation_popup_content {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #fff !important;
}

#product_popup .wpc_variation_popup_content > .product.wpc-row {
    display: grid !important;
    grid-template-columns: minmax(310px, 40%) minmax(0, 60%) !important;
    align-items: stretch !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    overflow: hidden !important;
}

/* Close */
#product_popup .wpc-close.wpc-btn {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    z-index: 100 !important;
    display: grid !important;
    place-items: center !important;
    width: 40px !important;
    min-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #262626 !important;
    background: rgba(255, 255, 255, .98) !important;
    border: 1px solid #e8e0d6 !important;
    border-radius: 999px !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, .08) !important;
    transition: transform .14s ease, background-color .14s ease, box-shadow .14s ease !important;
}

#product_popup .wpc-close.wpc-btn:hover {
    background: #fff !important;
    transform: scale(1.04) !important;
    box-shadow: 0 8px 22px rgba(0, 0, 0, .12) !important;
}

#product_popup .wpc-close.wpc-btn svg {
    width: 18px !important;
    height: 18px !important;
}

/* Left image pane */
#product_popup .variation_product_image {
    align-self: stretch !important;
    width: auto !important;
    max-width: none !important;
    height: 100% !important;
    min-width: 0 !important;
    padding: 20px !important;
    overflow: hidden !important;
    background: #fbf8f2 !important;
    border-right: 1px solid var(--ot-border) !important;
    touch-action: none !important;
}

#product_popup .variation_product_image .woocommerce-product-gallery,
#product_popup .variation_product_image .woocommerce-product-gallery__wrapper {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

#product_popup .variation_product_image .woocommerce-product-gallery__wrapper {
    gap: 0 !important;
}

#product_popup .variation_product_image .woocommerce-product-gallery__image {
    width: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    background: #f0eee9 !important;
    border-radius: 16px !important;
    box-shadow: 0 9px 24px rgba(38, 25, 10, .07) !important;
}

#product_popup .variation_product_image .woocommerce-product-gallery__image > a {
    display: block !important;
    width: 100% !important;
    aspect-ratio: 1 / 1 !important;
    pointer-events: none !important;
    cursor: default !important;
}

#product_popup .variation_product_image img.wp-post-image {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    margin: 0 !important;
    object-fit: cover !important;
    border-radius: 16px !important;
}

#product_popup .woocommerce-product-gallery__trigger,
#product_popup .zoomImg {
    display: none !important;
    pointer-events: none !important;
}

/* Desktop: only the right pane scrolls. The modal itself never moves. */
#product_popup .wpc_variation_popup_content > .product > .wpc-col-lg-6:last-child {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    height: 100% !important;
    max-height: none !important;
    padding: 26px 28px 32px !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    background: #fff !important;
    scrollbar-width: thin !important;
    scrollbar-color: #d6cec4 transparent !important;
    scroll-behavior: auto !important;
}

#product_popup .wpc_variation_popup_content > .product > .wpc-col-lg-6:last-child::-webkit-scrollbar {
    width: 6px !important;
}

#product_popup .wpc_variation_popup_content > .product > .wpc-col-lg-6:last-child::-webkit-scrollbar-thumb {
    background: #d6cec4 !important;
    border-radius: 999px !important;
}

#product_popup .wpc-single-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#product_popup .product_title.entry-title {
    margin: 0 52px 5px 0 !important;
    color: #191816 !important;
    font-size: 27px !important;
    font-weight: 700 !important;
    line-height: 1.13 !important;
    letter-spacing: -.025em !important;
}

#product_popup .wpc-single-content > p.price {
    margin: 0 0 3px !important;
    color: var(--ot-green) !important;
    font-size: 18px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
}

#product_popup .woocommerce-product-details__short-description {
    margin: 0 0 18px !important;
}

#product_popup .woocommerce-product-details__short-description p {
    margin: 0 !important;
    color: #777169 !important;
    font-size: 12.5px !important;
    line-height: 1.42 !important;
}

/* Optiontics groups */
#product_popup .addon-form {
    width: 100% !important;
    max-width: none !important;
    padding: 0 !important;
}

#product_popup .addon-group {
    margin: 0 0 15px !important;
}

#product_popup .addon-group .optiontics-block-label,
#product_popup .addon-group > h4 {
    margin: 0 0 7px !important;
    color: #333b49 !important;
    font-size: 13.5px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
}

#product_popup .optiontics-required-indicator {
    color: #d94a4a !important;
}

/*
 * The builder's 1/2/3-column choice is intentionally ignored inside the
 * WPCafe popup. Desktop is always two columns; mobile is always one column.
 */
#product_popup .addon-options,
#product_popup .addon-options.addon-options-columns-2,
#product_popup .addon-options.addon-options-columns-3,
#product_popup .optiontics-block-radio > .addon-options {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 7px !important;
    width: 100% !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
}

/* Must beat the card display rule below. */
#product_popup .addon-options > .addon-option.optiontics-collapsed-hidden {
    display: none !important;
}

#product_popup .addon-option {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 8px !important;
    min-width: 0 !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    color: #38404e !important;
    background: #fff !important;
    border: 1px solid var(--ot-border) !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    user-select: none !important;
    transition: border-color .12s ease, background-color .12s ease, box-shadow .12s ease !important;
}

#product_popup .addon-option:hover {
    background: #fdfbf8 !important;
    border-color: #ddd2c4 !important;
}

#product_popup .addon-option.is-selected {
    background: var(--ot-orange-soft) !important;
    border-color: #eab65a !important;
    box-shadow: inset 0 0 0 1px rgba(233, 154, 12, .06) !important;
}

#product_popup .addon-option label {
    display: grid !important;
    grid-template-columns: 18px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    min-width: 0 !important;
    width: 100% !important;
    margin: 0 !important;
    color: #38404e !important;
    font-size: 12.6px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    cursor: pointer !important;
}

#product_popup .optiontics-option-label {
    min-width: 0 !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}

#product_popup .addon-option > span.price {
    justify-self: end !important;
    margin: 0 !important;
    color: var(--ot-green) !important;
    font-size: 12.5px !important;
    font-weight: 650 !important;
    line-height: 1.15 !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}

/* Cards with a quantity stepper: label | stepper | price */
#product_popup .addon-option.has-quantity {
    grid-template-columns: minmax(0, 1fr) auto minmax(50px, auto) !important;
    column-gap: 7px !important;
    padding: 7px 8px !important;
}

#product_popup .addon-option.has-quantity > label {
    grid-column: 1 !important;
    min-width: 0 !important;
}

#product_popup .addon-option.has-quantity > .optiontics-edip-stepper {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
}

#product_popup .addon-option.has-quantity > span.price {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    min-width: 50px !important;
    text-align: right !important;
}

/* Native controls are replaced visually by the lightweight +/- steppers. */
#product_popup input[type="number"].optiontics-quantity-input,
#product_popup .optiontics-edip-main-stepper input.qty {
    appearance: textfield !important;
    -moz-appearance: textfield !important;
}

#product_popup input[type="number"].optiontics-quantity-input::-webkit-inner-spin-button,
#product_popup input[type="number"].optiontics-quantity-input::-webkit-outer-spin-button,
#product_popup .optiontics-edip-main-stepper input.qty::-webkit-inner-spin-button,
#product_popup .optiontics-edip-main-stepper input.qty::-webkit-outer-spin-button {
    margin: 0 !important;
    -webkit-appearance: none !important;
}

#product_popup .optiontics-edip-stepper,
#product_popup .optiontics-edip-main-stepper {
    display: grid !important;
    grid-template-columns: 27px 34px 27px !important;
    align-items: center !important;
    width: 88px !important;
    height: 32px !important;
    overflow: hidden !important;
    background: #fff !important;
    border: 1px solid #ddd6cc !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

#product_popup .optiontics-edip-stepper button,
#product_popup .optiontics-edip-main-stepper button {
    display: grid !important;
    place-items: center !important;
    width: 27px !important;
    height: 30px !important;
    min-width: 27px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #554f47 !important;
    background: #faf8f5 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    font-size: 15px !important;
    font-weight: 650 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

#product_popup .optiontics-edip-stepper button:hover:not(:disabled),
#product_popup .optiontics-edip-main-stepper button:hover:not(:disabled) {
    color: #a76100 !important;
    background: var(--ot-orange-soft) !important;
}

#product_popup .optiontics-edip-stepper button:disabled,
#product_popup .optiontics-edip-main-stepper button:disabled {
    opacity: .35 !important;
    cursor: default !important;
}

#product_popup .optiontics-edip-stepper input,
#product_popup .optiontics-edip-main-stepper input {
    width: 34px !important;
    min-width: 34px !important;
    height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #2e3136 !important;
    background: #fff !important;
    border: 0 !important;
    border-left: 1px solid #ece5db !important;
    border-right: 1px solid #ece5db !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: none !important;
    font-size: 12px !important;
    font-weight: 650 !important;
    line-height: 30px !important;
    text-align: center !important;
}

/* Orange radio/checkbox state. */
#product_popup .addon-option input[type="radio"]:checked,
#product_popup .addon-option input[type="checkbox"]:checked,
#product_popup input[type="checkbox"].adntc-checkbox:checked {
    background: var(--ot-orange) !important;
    border-color: var(--ot-orange) !important;
}

#product_popup .addon-option input[type="radio"]:hover:not(:checked),
#product_popup .addon-option input[type="radio"]:focus:not(:checked),
#product_popup .addon-option input[type="checkbox"]:hover:not(:checked),
#product_popup .addon-option input[type="checkbox"]:focus:not(:checked) {
    border-color: var(--ot-orange) !important;
}

/* Show more / less */
#product_popup .optiontics-show-more {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    width: 100% !important;
    min-height: 38px !important;
    margin: 7px 0 0 !important;
    padding: 7px 12px !important;
    color: #ae6500 !important;
    background: #fff9ef !important;
    border: 1px solid #ead8bd !important;
    border-radius: 9px !important;
    box-shadow: none !important;
    font-size: 12px !important;
    font-weight: 650 !important;
    cursor: pointer !important;
}

#product_popup .optiontics-show-more:hover,
#product_popup .optiontics-show-more:focus-visible {
    color: #915400 !important;
    background: #fff4df !important;
    border-color: #e4b96f !important;
    outline: none !important;
}

#product_popup .optiontics-show-more-count {
    color: #8b837a !important;
    font-size: 10.5px !important;
}

#product_popup .optiontics-show-more-icon {
    display: inline-flex !important;
    transition: transform .15s ease !important;
}

#product_popup .optiontics-show-more.is-expanded .optiontics-show-more-icon {
    transform: rotate(180deg) !important;
}

#product_popup .optiontics-show-more[hidden] {
    display: none !important;
}

/* Remark */
#product_popup .optiontics-block-text .optiontics-block-description {
    display: block !important;
    margin: -1px 0 7px !important;
    color: #89827a !important;
    font-size: 10.8px !important;
    line-height: 1.42 !important;
}

#product_popup .optiontics-block-text .addon-text {
    width: 100% !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 12px !important;
    color: #363b43 !important;
    background: #fff !important;
    border: 1px solid var(--ot-border-strong) !important;
    border-radius: 9px !important;
    box-shadow: none !important;
    font-size: 12.3px !important;
    outline: none !important;
}

#product_popup .optiontics-block-text .addon-text:focus {
    border-color: var(--ot-orange) !important;
    box-shadow: 0 0 0 3px rgba(233, 154, 12, .09) !important;
}

/* Purchase panel - normal document flow, never covering options. */
#product_popup .optiontics-edip-purchase-panel {
    position: static !important;
    width: 100% !important;
    margin: 18px 0 14px !important;
    padding: 13px !important;
    background: #fffaf1 !important;
    border: 1px solid #efcf96 !important;
    border-radius: 14px !important;
    box-shadow: none !important;
}

#product_popup .optiontics-edip-purchase-panel .optiontics-product-price-summary {
    display: grid !important;
    gap: 5px !important;
    width: 100% !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

#product_popup .optiontics-edip-purchase-panel .optiontics-product-price-summary > div {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 16px !important;
}

#product_popup .optiontics-product-price-summary > div > strong {
    font-size: 0 !important;
}

#product_popup .optiontics-product-price-summary > div:first-child > strong::before {
    content: "Extras";
    color: #81786e;
    font-size: 9.5px;
    font-weight: 700;
    letter-spacing: .055em;
    text-transform: uppercase;
}

#product_popup .optiontics-product-price-summary > div:nth-child(2) > strong::before {
    content: "Gesamt";
    color: var(--ot-text);
    font-size: 12.5px;
    font-weight: 700;
}

#product_popup #optiontics_option_price {
    color: #6f6962 !important;
    font-size: 12px !important;
    font-weight: 650 !important;
}

#product_popup #optiontics_option_total_price {
    color: var(--ot-orange-dark) !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -.02em !important;
}

#product_popup .optiontics-edip-purchase-actions {
    display: grid !important;
    grid-template-columns: 90px minmax(0, 1fr) !important;
    gap: 9px !important;
    align-items: end !important;
}

#product_popup .optiontics-edip-purchase-actions > .quantity {
    position: relative !important;
    display: block !important;
    width: 90px !important;
    margin: 0 !important;
    padding: 14px 0 0 !important;
}

#product_popup .optiontics-edip-purchase-actions > .quantity::before {
    content: "Menge";
    position: absolute;
    top: 0;
    left: 2px;
    color: #81786e;
    font-size: 8.8px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .055em;
    text-transform: uppercase;
}

#product_popup .optiontics-edip-purchase-actions > .quantity .optiontics-edip-main-stepper {
    width: 90px !important;
    grid-template-columns: 28px 34px 28px !important;
}

#product_popup .optiontics-edip-purchase-actions > .quantity .optiontics-edip-main-stepper button {
    width: 28px !important;
    min-width: 28px !important;
}

#product_popup .optiontics-edip-purchase-actions .single_add_to_cart_button {
    width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    color: #fff !important;
    background: var(--ot-orange) !important;
    border: 1px solid var(--ot-orange) !important;
    border-radius: 9px !important;
    box-shadow: 0 5px 13px rgba(233, 154, 12, .16) !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    transition: background-color .14s ease, transform .14s ease, box-shadow .14s ease !important;
}

#product_popup .optiontics-edip-purchase-actions .single_add_to_cart_button:hover {
    background: var(--ot-orange-dark) !important;
    border-color: var(--ot-orange-dark) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 7px 16px rgba(201, 120, 0, .2) !important;
}

/* Dietary */
#product_popup .wpc-popup-dietary {
    margin: 0 !important;
}

#product_popup .wpc-popup-dietary__item {
    overflow: hidden !important;
    background: #fff !important;
    border: 1px solid var(--ot-border) !important;
    border-radius: 10px !important;
}

#product_popup .wpc-popup-dietary__summary {
    min-height: 44px !important;
    padding: 0 12px !important;
    background: #faf9f7 !important;
    color: #303641 !important;
    font-size: 12px !important;
    font-weight: 650 !important;
}

#product_popup .wpc-popup-dietary__body {
    padding: 13px !important;
    background: #fff !important;
    border-top: 1px solid #f0ebe4 !important;
}

#product_popup .optiontics-edip-dietary-empty {
    margin: 0 !important;
    color: #706c66 !important;
    font-size: 12.5px !important;
    font-weight: 500 !important;
    line-height: 1.5 !important;
}

/* Mobile: popup frame stays fixed; only its inner content scrolls. */
@media (max-width: 768px) {
    #product_popup.wpc-popup-wrap {
        width: calc(100vw - 12px) !important;
        max-width: none !important;
        height: calc(100dvh - 12px) !important;
        max-height: calc(100dvh - 12px) !important;
        margin: 6px auto !important;
        border-radius: 18px !important;
        overflow: hidden !important;
    }

    #product_popup .wpc-popup-wrap-inner {
        height: 100% !important;
        min-height: 0 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        overscroll-behavior: contain !important;
        scrollbar-width: thin !important;
    }

    #product_popup .wpc_variation_popup_content {
        height: auto !important;
        min-height: 100% !important;
        overflow: visible !important;
    }

    #product_popup .wpc_variation_popup_content > .product.wpc-row {
        display: block !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    #product_popup .wpc-close.wpc-btn {
        position: sticky !important;
        top: 10px !important;
        right: 10px !important;
        float: right !important;
        margin: 10px 10px -50px 0 !important;
    }

    #product_popup .variation_product_image {
        width: 100% !important;
        height: auto !important;
        padding: 12px !important;
        background: #fbf8f2 !important;
        border-right: 0 !important;
        border-bottom: 1px solid var(--ot-border) !important;
        touch-action: pan-y !important;
    }

    #product_popup .variation_product_image .woocommerce-product-gallery__image > a,
    #product_popup .variation_product_image img.wp-post-image {
        height: 205px !important;
        aspect-ratio: auto !important;
    }

    #product_popup .variation_product_image img.wp-post-image {
        object-fit: cover !important;
    }

    #product_popup .wpc_variation_popup_content > .product > .wpc-col-lg-6:last-child {
        width: 100% !important;
        height: auto !important;
        max-height: none !important;
        padding: 18px 14px 26px !important;
        overflow: visible !important;
    }

    #product_popup .product_title.entry-title {
        margin-right: 44px !important;
        font-size: 22px !important;
    }

    #product_popup .wpc-single-content > p.price {
        font-size: 18px !important;
    }

    #product_popup .addon-options,
    #product_popup .addon-options.addon-options-columns-2,
    #product_popup .addon-options.addon-options-columns-3,
    #product_popup .optiontics-block-radio > .addon-options {
        grid-template-columns: minmax(0, 1fr) !important;
        gap: 6px !important;
    }

    #product_popup .addon-option,
    #product_popup .addon-option.has-quantity {
        min-height: 44px !important;
    }

    #product_popup .optiontics-show-more {
        position: static !important;
        bottom: auto !important;
        z-index: auto !important;
        box-shadow: none !important;
    }

    #product_popup .optiontics-edip-purchase-panel {
        margin: 17px 0 14px !important;
        padding: 12px !important;
    }
}

@media (max-width: 390px) {
    #product_popup .variation_product_image .woocommerce-product-gallery__image > a,
    #product_popup .variation_product_image img.wp-post-image {
        height: 185px !important;
    }

    #product_popup .addon-option.has-quantity {
        grid-template-columns: minmax(0, 1fr) auto minmax(47px, auto) !important;
        column-gap: 5px !important;
        padding-inline: 7px !important;
    }

    #product_popup .optiontics-edip-stepper {
        grid-template-columns: 25px 31px 25px !important;
        width: 81px !important;
    }

    #product_popup .optiontics-edip-stepper button {
        width: 25px !important;
        min-width: 25px !important;
    }

    #product_popup .optiontics-edip-stepper input {
        width: 31px !important;
        min-width: 31px !important;
    }

    #product_popup .optiontics-edip-purchase-actions {
        grid-template-columns: 84px minmax(0, 1fr) !important;
    }

    #product_popup .optiontics-edip-purchase-actions > .quantity,
    #product_popup .optiontics-edip-purchase-actions > .quantity .optiontics-edip-main-stepper {
        width: 84px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #product_popup.wpc-popup-wrap {
        animation: none !important;
    }

    #product_popup *,
    #product_popup *::before,
    #product_popup *::after {
        scroll-behavior: auto !important;
        transition-duration: 0s !important;
    }
}

/* ======================================================================
 * Optiontics 1.0.2.22 - storefront refinement
 * One-column option lists everywhere, one chevron, robust steppers,
 * and a cleaner single-product presentation.
 * ====================================================================== */

/* Ignore the builder's visual column choice on the storefront. */
.addon-form .addon-options,
.addon-form .addon-options.addon-options-columns-2,
.addon-form .addon-options.addon-options-columns-3,
#product_popup .optiontics-block-radio > .addon-options,
.single-product .optiontics-block-radio > .addon-options {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 7px !important;
    width: 100% !important;
}

/* One single, CSS-drawn chevron. This also neutralises theme pseudo-icons. */
.optiontics-show-more::before,
.optiontics-show-more::after {
    content: none !important;
    display: none !important;
}

.optiontics-show-more .optiontics-show-more-icon {
    position: relative !important;
    display: inline-block !important;
    flex: 0 0 10px !important;
    width: 10px !important;
    height: 10px !important;
    margin-left: 2px !important;
    font-size: 0 !important;
    line-height: 0 !important;
    transform: none !important;
}

.optiontics-show-more .optiontics-show-more-icon::before {
    content: "" !important;
    position: absolute !important;
    top: 1px !important;
    left: 1px !important;
    width: 7px !important;
    height: 7px !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: rotate(45deg) !important;
    transform-origin: 50% 50% !important;
    transition: transform .16s ease, top .16s ease !important;
}

.optiontics-show-more.is-expanded .optiontics-show-more-icon {
    transform: none !important;
}

.optiontics-show-more.is-expanded .optiontics-show-more-icon::before {
    top: 4px !important;
    transform: rotate(225deg) !important;
}

/* Popup option cards: one column with room for long names. */
#product_popup .addon-option,
#product_popup .addon-option.has-quantity {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 46px !important;
}

#product_popup .addon-option {
    grid-template-columns: minmax(0, 1fr) auto !important;
    padding: 9px 11px !important;
}

#product_popup .addon-option.has-quantity {
    grid-template-columns: minmax(0, 1fr) 94px minmax(56px, auto) !important;
    column-gap: 9px !important;
    padding: 8px 10px !important;
}

#product_popup .addon-option label,
#product_popup .optiontics-option-label {
    min-width: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

/* Robust flex steppers. Grid rules from older versions are intentionally reset. */
#product_popup .optiontics-edip-stepper,
#product_popup .optiontics-edip-main-stepper,
.single-product .optiontics-edip-stepper,
.single-product .optiontics-edip-main-stepper {
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
    grid-template-columns: none !important;
    width: 94px !important;
    min-width: 94px !important;
    max-width: 94px !important;
    height: 34px !important;
    min-height: 34px !important;
    overflow: hidden !important;
    background: #fff !important;
    border: 1px solid #ddd5ca !important;
    border-radius: 9px !important;
    box-shadow: none !important;
}

#product_popup .optiontics-edip-stepper button,
#product_popup .optiontics-edip-main-stepper button,
.single-product .optiontics-edip-stepper button,
.single-product .optiontics-edip-main-stepper button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 29px !important;
    width: 29px !important;
    min-width: 29px !important;
    max-width: 29px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #4b4741 !important;
    -webkit-text-fill-color: #4b4741 !important;
    background: #f8f5f0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    opacity: 1 !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

#product_popup .optiontics-edip-stepper button:disabled,
#product_popup .optiontics-edip-main-stepper button:disabled,
.single-product .optiontics-edip-stepper button:disabled,
.single-product .optiontics-edip-main-stepper button:disabled {
    color: #b9b2aa !important;
    -webkit-text-fill-color: #b9b2aa !important;
    background: #faf8f5 !important;
    opacity: 1 !important;
}

#product_popup .optiontics-edip-stepper input,
#product_popup .optiontics-edip-main-stepper input,
.single-product .optiontics-edip-stepper input,
.single-product .optiontics-edip-main-stepper input {
    display: block !important;
    flex: 0 0 36px !important;
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    color: #25282d !important;
    -webkit-text-fill-color: #25282d !important;
    background: #fff !important;
    border: 0 !important;
    border-left: 1px solid #ebe4db !important;
    border-right: 1px solid #ebe4db !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    outline: 0 !important;
    opacity: 1 !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
    line-height: 32px !important;
    text-align: center !important;
    appearance: textfield !important;
    -moz-appearance: textfield !important;
}

#product_popup .optiontics-edip-stepper input::-webkit-inner-spin-button,
#product_popup .optiontics-edip-stepper input::-webkit-outer-spin-button,
#product_popup .optiontics-edip-main-stepper input::-webkit-inner-spin-button,
#product_popup .optiontics-edip-main-stepper input::-webkit-outer-spin-button,
.single-product .optiontics-edip-stepper input::-webkit-inner-spin-button,
.single-product .optiontics-edip-stepper input::-webkit-outer-spin-button,
.single-product .optiontics-edip-main-stepper input::-webkit-inner-spin-button,
.single-product .optiontics-edip-main-stepper input::-webkit-outer-spin-button {
    margin: 0 !important;
    -webkit-appearance: none !important;
}

/* Main popup quantity is slightly larger but uses the same reliable flex layout. */
#product_popup .optiontics-edip-purchase-actions > .quantity,
#product_popup .optiontics-edip-purchase-actions > .quantity .optiontics-edip-main-stepper {
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
}

#product_popup .optiontics-edip-purchase-actions > .quantity .optiontics-edip-main-stepper {
    grid-template-columns: none !important;
}

#product_popup .optiontics-edip-purchase-actions > .quantity .optiontics-edip-main-stepper button {
    flex-basis: 30px !important;
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
}

/* ======================================================================
 * Single product page
 * ====================================================================== */

.single-product .addon-form {
    width: 100% !important;
    max-width: 100% !important;
}

.single-product .addon-group {
    margin-bottom: 16px !important;
}

.single-product .addon-group .optiontics-block-label,
.single-product .addon-group > h4 {
    margin: 0 0 8px !important;
    color: #333b49 !important;
    font-size: 14px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
}

.single-product .addon-options {
    gap: 7px !important;
}

.single-product .addon-option {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    column-gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 9px 11px !important;
    color: #38404e !important;
    background: #fff !important;
    border: 1px solid #e7e0d7 !important;
    border-radius: 10px !important;
    cursor: pointer !important;
    transition: background-color .12s ease, border-color .12s ease, box-shadow .12s ease !important;
}

.single-product .addon-option.has-quantity {
    grid-template-columns: minmax(0, 1fr) 94px minmax(60px, auto) !important;
    column-gap: 9px !important;
}

.single-product .addon-option:hover {
    background: #fdfbf8 !important;
    border-color: #ddd2c4 !important;
}

.single-product .addon-option.is-selected,
.single-product .addon-option:has(input[type="checkbox"]:checked),
.single-product .addon-option:has(input[type="radio"]:checked) {
    background: #fff6e6 !important;
    border-color: #eab65a !important;
    box-shadow: inset 0 0 0 1px rgba(233,154,12,.05) !important;
}

.single-product .addon-option label {
    display: grid !important;
    grid-template-columns: 18px minmax(0,1fr) !important;
    align-items: center !important;
    gap: 9px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    color: #38404e !important;
    font-size: 13.5px !important;
    font-weight: 500 !important;
    line-height: 1.3 !important;
    cursor: pointer !important;
}

.single-product .optiontics-option-label {
    min-width: 0 !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

.single-product .addon-option.has-quantity > label {
    grid-column: 1 !important;
}

.single-product .addon-option.has-quantity > .optiontics-edip-stepper {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-self: end !important;
}

.single-product .addon-option > span.price {
    justify-self: end !important;
    margin: 0 !important;
    color: #62a154 !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    cursor: pointer !important;
}

.single-product .addon-option.has-quantity > span.price {
    grid-column: 3 !important;
    grid-row: 1 !important;
    min-width: 60px !important;
    text-align: right !important;
}

.single-product .addon-option input[type="checkbox"]:checked,
.single-product .addon-option input[type="radio"]:checked {
    background: #e99a0c !important;
    border-color: #e99a0c !important;
}

.single-product .optiontics-show-more {
    position: static !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: 100% !important;
    min-height: 42px !important;
    margin: 8px 0 2px !important;
    padding: 9px 14px !important;
    color: #ae6500 !important;
    background: #fff9ef !important;
    border: 1px solid #ead8bd !important;
    border-radius: 9px !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
    cursor: pointer !important;
}

.single-product .optiontics-show-more:hover,
.single-product .optiontics-show-more:focus-visible {
    color: #915400 !important;
    background: #fff4df !important;
    border-color: #e4b96f !important;
    outline: none !important;
}

.single-product .optiontics-product-price-summary {
    display: grid !important;
    gap: 6px !important;
    width: 100% !important;
    margin: 18px 0 12px !important;
    padding: 13px 14px !important;
    background: #fffaf1 !important;
    border: 1px solid #efcf96 !important;
    border-radius: 12px !important;
}

.single-product .optiontics-product-price-summary > div {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 14px !important;
}

.single-product .optiontics-block-text .addon-text {
    width: 100% !important;
    min-height: 44px !important;
    padding: 0 12px !important;
    background: #fff !important;
    border: 1px solid #ddd5ca !important;
    border-radius: 9px !important;
    box-shadow: none !important;
}

.single-product form.cart > .quantity:has(.optiontics-edip-main-stepper) {
    display: inline-block !important;
    width: 96px !important;
    margin: 0 9px 0 0 !important;
    vertical-align: middle !important;
}

.single-product form.cart > .quantity .optiontics-edip-main-stepper {
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
    height: 44px !important;
}

.single-product form.cart > .quantity .optiontics-edip-main-stepper button,
.single-product form.cart > .quantity .optiontics-edip-main-stepper input {
    height: 42px !important;
    min-height: 42px !important;
}

.single-product form.cart > .quantity .optiontics-edip-main-stepper button {
    flex-basis: 30px !important;
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
}

.single-product form.cart > .quantity .optiontics-edip-main-stepper input {
    flex-basis: 36px !important;
}

.single-product form.cart > .single_add_to_cart_button {
    min-height: 44px !important;
    padding: 0 22px !important;
    background: #e99a0c !important;
    border-color: #e99a0c !important;
    border-radius: 10px !important;
    color: #fff !important;
    font-weight: 700 !important;
    box-shadow: 0 5px 13px rgba(233,154,12,.15) !important;
}

@media (max-width: 768px) {
    /* Mobile cards remain one column; each option has enough room for long text. */
    #product_popup .addon-option.has-quantity,
    .single-product .addon-option.has-quantity {
        grid-template-columns: minmax(0, 1fr) 90px minmax(52px, auto) !important;
        column-gap: 7px !important;
    }

    #product_popup .optiontics-edip-stepper,
    .single-product .optiontics-edip-stepper {
        width: 90px !important;
        min-width: 90px !important;
        max-width: 90px !important;
    }

    #product_popup .optiontics-edip-stepper button,
    .single-product .optiontics-edip-stepper button {
        flex-basis: 27px !important;
        width: 27px !important;
        min-width: 27px !important;
        max-width: 27px !important;
    }

    #product_popup .optiontics-edip-stepper input,
    .single-product .optiontics-edip-stepper input {
        flex-basis: 36px !important;
        width: 36px !important;
        min-width: 36px !important;
        max-width: 36px !important;
    }

    .single-product .optiontics-show-more {
        position: static !important;
        bottom: auto !important;
        z-index: auto !important;
        box-shadow: none !important;
    }
}

@media (max-width: 390px) {
    #product_popup .addon-option.has-quantity,
    .single-product .addon-option.has-quantity {
        grid-template-columns: minmax(0, 1fr) 86px 48px !important;
        column-gap: 6px !important;
        padding-inline: 8px !important;
    }

    #product_popup .optiontics-edip-stepper,
    .single-product .optiontics-edip-stepper {
        width: 86px !important;
        min-width: 86px !important;
        max-width: 86px !important;
    }

    #product_popup .optiontics-edip-stepper button,
    .single-product .optiontics-edip-stepper button {
        flex-basis: 25px !important;
        width: 25px !important;
        min-width: 25px !important;
        max-width: 25px !important;
    }
}

/* ======================================================================
 * Optiontics 1.0.2.23 - EDIP precision fixes
 * - ONE option column everywhere on storefront
 * - truly centered WPCafe modal
 * - close button always top-right, including mobile
 * - one deterministic chevron
 * - smooth expand/collapse height animation support
 * ====================================================================== */

/* The earlier popup rule had ID specificity and could beat the generic
   one-column refinement. These selectors intentionally include the popup ID. */
#popup_wrapper #product_popup .addon-form .addon-options,
#popup_wrapper #product_popup .addon-form .addon-options.addon-options-columns-1,
#popup_wrapper #product_popup .addon-form .addon-options.addon-options-columns-2,
#popup_wrapper #product_popup .addon-form .addon-options.addon-options-columns-3,
#popup_wrapper #product_popup .addon-group .addon-options,
body.single-product .addon-form .addon-options,
body.single-product .addon-form .addon-options.addon-options-columns-1,
body.single-product .addon-form .addon-options.addon-options-columns-2,
body.single-product .addon-form .addon-options.addon-options-columns-3,
body.single-product .addon-group .addon-options,
body.woocommerce .product.type-product .addon-form .addon-options,
body.woocommerce .product.type-product .addon-form .addon-options.addon-options-columns-1,
body.woocommerce .product.type-product .addon-form .addon-options.addon-options-columns-2,
body.woocommerce .product.type-product .addon-form .addon-options.addon-options-columns-3 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-auto-flow: row !important;
    gap: 7px !important;
    width: 100% !important;
    max-width: 100% !important;
}

#popup_wrapper #product_popup .addon-form .addon-options > .addon-option,
body.single-product .addon-form .addon-options > .addon-option,
body.woocommerce .product.type-product .addon-form .addon-options > .addon-option {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* True viewport centering. The wrapper remains controlled by WPCafe for
   display:none/block; we only center the popup itself. */
#popup_wrapper #product_popup.wpc-popup-wrap {
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    right: auto !important;
    bottom: auto !important;
    margin: 0 !important;
    transform: translate(-50%, -50%) !important;
    animation: optionticsEdipPopupCenteredIn .18s cubic-bezier(.2,.72,.2,1) both !important;
}

@keyframes optionticsEdipPopupCenteredIn {
    from {
        opacity: 0;
        transform: translate(-50%, calc(-50% + 7px)) scale(.993);
    }
    to {
        opacity: 1;
        transform: translate(-50%, -50%) scale(1);
    }
}

/* Always top-right. This intentionally overrides the older mobile sticky rule. */
#popup_wrapper #product_popup .wpc-close.wpc-btn {
    position: absolute !important;
    top: 14px !important;
    right: 14px !important;
    left: auto !important;
    bottom: auto !important;
    float: none !important;
    margin: 0 !important;
    transform: none !important;
}

#popup_wrapper #product_popup .wpc-close.wpc-btn:hover {
    transform: scale(1.04) !important;
}

/* Remove every theme/plugin pseudo-chevron. Only the dedicated icon remains. */
#popup_wrapper #product_popup .optiontics-show-more::before,
#popup_wrapper #product_popup .optiontics-show-more::after,
body.single-product .optiontics-show-more::before,
body.single-product .optiontics-show-more::after,
body.woocommerce .product.type-product .optiontics-show-more::before,
body.woocommerce .product.type-product .optiontics-show-more::after {
    content: none !important;
    display: none !important;
}

#popup_wrapper #product_popup .optiontics-show-more .optiontics-show-more-icon,
body.single-product .optiontics-show-more .optiontics-show-more-icon,
body.woocommerce .product.type-product .optiontics-show-more .optiontics-show-more-icon {
    position: relative !important;
    display: inline-block !important;
    flex: 0 0 10px !important;
    width: 10px !important;
    height: 10px !important;
    margin-left: 2px !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

#popup_wrapper #product_popup .optiontics-show-more .optiontics-show-more-icon::before,
body.single-product .optiontics-show-more .optiontics-show-more-icon::before,
body.woocommerce .product.type-product .optiontics-show-more .optiontics-show-more-icon::before {
    content: "" !important;
    position: absolute !important;
    top: 1px !important;
    left: 1px !important;
    width: 7px !important;
    height: 7px !important;
    border-right: 2px solid currentColor !important;
    border-bottom: 2px solid currentColor !important;
    transform: rotate(45deg) !important;
    transform-origin: 50% 50% !important;
    transition: transform .16s ease, top .16s ease !important;
}

#popup_wrapper #product_popup .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon::before,
body.single-product .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon::before,
body.woocommerce .product.type-product .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon::before {
    top: 4px !important;
    transform: rotate(225deg) !important;
}

/* The list itself is animated by JS. Keep it clipped while its measured
   height transitions so rows do not flash outside the group. */
#product_popup .addon-options.optiontics-edip-resizing,
body.single-product .addon-options.optiontics-edip-resizing,
body.woocommerce .product.type-product .addon-options.optiontics-edip-resizing {
    overflow: hidden !important;
}

#product_popup .addon-option.optiontics-edip-reveal,
body.single-product .addon-option.optiontics-edip-reveal,
body.woocommerce .product.type-product .addon-option.optiontics-edip-reveal {
    animation: optionticsEdipOptionReveal .16s ease both !important;
}

@keyframes optionticsEdipOptionReveal {
    from { opacity: 0; transform: translateY(-3px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* Product page: the custom layout must also win against the builder's
   column-width rules and the original frontend stylesheet. */
body.single-product .addon-option,
body.single-product .addon-option.has-quantity,
body.woocommerce .product.type-product .addon-option,
body.woocommerce .product.type-product .addon-option.has-quantity {
    width: 100% !important;
    max-width: 100% !important;
}

/* Keep long option names readable in the single-column layout. */
#product_popup .addon-option.has-quantity,
body.single-product .addon-option.has-quantity,
body.woocommerce .product.type-product .addon-option.has-quantity {
    grid-template-columns: minmax(0, 1fr) 94px minmax(58px, auto) !important;
}

#product_popup .optiontics-option-label,
body.single-product .optiontics-option-label,
body.woocommerce .product.type-product .optiontics-option-label {
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
}

/* Normal product page: same restrained visual language as the popup. */
body.single-product .optiontics-show-more,
body.woocommerce .product.type-product .optiontics-show-more {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: 100% !important;
    min-height: 42px !important;
    margin: 8px 0 2px !important;
    padding: 9px 14px !important;
    color: #a96000 !important;
    background: #fff8ed !important;
    border: 1px solid #ead4b3 !important;
    border-radius: 9px !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-weight: 650 !important;
    line-height: 1.2 !important;
}

@media (max-width: 768px) {
    #popup_wrapper #product_popup.wpc-popup-wrap {
        width: calc(100vw - 12px) !important;
        height: calc(100dvh - 12px) !important;
        max-height: calc(100dvh - 12px) !important;
        margin: 0 !important;
    }

    #popup_wrapper #product_popup .wpc-close.wpc-btn {
        position: absolute !important;
        top: 10px !important;
        right: 10px !important;
        left: auto !important;
        bottom: auto !important;
        float: none !important;
        margin: 0 !important;
        z-index: 300 !important;
    }

    #popup_wrapper #product_popup .addon-form .addon-options,
    body.single-product .addon-form .addon-options,
    body.woocommerce .product.type-product .addon-form .addon-options {
        grid-template-columns: minmax(0, 1fr) !important;
    }

    #product_popup .addon-option.has-quantity,
    body.single-product .addon-option.has-quantity,
    body.woocommerce .product.type-product .addon-option.has-quantity {
        grid-template-columns: minmax(0, 1fr) 90px minmax(52px, auto) !important;
    }
}

@media (max-width: 390px) {
    #product_popup .addon-option.has-quantity,
    body.single-product .addon-option.has-quantity,
    body.woocommerce .product.type-product .addon-option.has-quantity {
        grid-template-columns: minmax(0, 1fr) 86px 48px !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #popup_wrapper #product_popup.wpc-popup-wrap,
    #product_popup .addon-option.optiontics-edip-reveal,
    body.single-product .addon-option.optiontics-edip-reveal,
    body.woocommerce .product.type-product .addon-option.optiontics-edip-reveal {
        animation: none !important;
    }
}

/* ======================================================================
 * Optiontics 1.0.2.24 - EDIP interaction polish
 * - fixed mobile close control
 * - stable anchored collapse animation
 * - variable-product controls match the popup UI
 * - surcharge prices are explicit (+) and visually distinct
 * ====================================================================== */

/* Paid option prices are surcharges, not the product's base price.
   Keep the base product price green, but render add-on surcharges in the
   site's orange and make the '+' explicit without changing the value used
   by Optiontics' calculator. */
#product_popup .addon-option.optiontics-edip-surcharge > span.price,
body.single-product .addon-option.optiontics-edip-surcharge > span.price,
body.woocommerce .product.type-product .addon-option.optiontics-edip-surcharge > span.price {
    color: #b86b00 !important;
}

#product_popup .addon-option.optiontics-edip-surcharge > span.price::before,
body.single-product .addon-option.optiontics-edip-surcharge > span.price::before,
body.woocommerce .product.type-product .addon-option.optiontics-edip-surcharge > span.price::before {
    content: "+ " !important;
    color: inherit !important;
    font: inherit !important;
}

/* Height animation is driven by JS. Disable browser scroll anchoring on the
   group itself so the controlled scroll compensation is the only movement. */
#product_popup .addon-options.optiontics-edip-resizing,
body.single-product .addon-options.optiontics-edip-resizing,
body.woocommerce .product.type-product .addon-options.optiontics-edip-resizing {
    overflow: hidden !important;
    overflow-anchor: none !important;
    will-change: height !important;
}

/* Variable WooCommerce product controls inside the WPCafe popup. */
#product_popup form.variations_form,
#product_popup form.variations_form.cart,
#product_popup .single_variation_wrap,
#product_popup .woocommerce-variation-add-to-cart,
#product_popup .woocommerce-variation-add-to-cart.variations_button {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

#product_popup form.variations_form table.variations {
    display: block !important;
    width: 100% !important;
    margin: 0 0 16px !important;
    border: 0 !important;
    border-collapse: separate !important;
}

#product_popup form.variations_form table.variations tbody,
#product_popup form.variations_form table.variations tr,
#product_popup form.variations_form table.variations th,
#product_popup form.variations_form table.variations td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    border: 0 !important;
}

#product_popup form.variations_form table.variations tr {
    margin: 0 0 14px !important;
}

#product_popup form.variations_form table.variations th.label {
    margin: 0 0 7px !important;
    padding: 0 !important;
    color: #333b49 !important;
    font-size: 13.5px !important;
    font-weight: 650 !important;
    line-height: 1.35 !important;
    text-align: left !important;
}

#product_popup form.variations_form table.variations td.value {
    position: relative !important;
    margin: 0 !important;
    padding: 0 !important;
}

#product_popup form.variations_form table.variations select {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 42px 0 13px !important;
    color: #343a44 !important;
    background-color: #fff !important;
    border: 1px solid #ddd5ca !important;
    border-radius: 10px !important;
    box-shadow: none !important;
    outline: none !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    transition: border-color .14s ease, box-shadow .14s ease !important;
}

#product_popup form.variations_form table.variations select:focus {
    border-color: #e99a0c !important;
    box-shadow: 0 0 0 3px rgba(233,154,12,.09) !important;
}

#product_popup form.variations_form .reset_variations {
    display: inline-block !important;
    margin: 6px 0 0 !important;
    color: #a96000 !important;
    font-size: 11px !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

#product_popup .woocommerce-variation.single_variation {
    margin: 0 0 10px !important;
    padding: 0 !important;
}

#product_popup .woocommerce-variation-price .price {
    color: #62a154 !important;
    font-size: 17px !important;
    font-weight: 700 !important;
}

/* Once JS groups the existing variable quantity/button into the same panel,
   make the Woo wrapper visually neutral. */
#product_popup .woocommerce-variation-add-to-cart:has(> .optiontics-edip-purchase-panel) {
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
}

#product_popup .optiontics-edip-purchase-actions .single_add_to_cart_button.disabled,
#product_popup .optiontics-edip-purchase-actions .single_add_to_cart_button:disabled {
    color: #fff !important;
    background: #d9b36e !important;
    border-color: #d9b36e !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    opacity: .72 !important;
    transform: none !important;
}

/* Keep the action row structurally separated so theme/Woo flex rules cannot
   push the quantity on top of the add-to-cart button. */
#product_popup .optiontics-edip-purchase-actions {
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
}

#product_popup .optiontics-edip-purchase-actions > .quantity,
#product_popup .optiontics-edip-purchase-actions > .single_add_to_cart_button {
    min-width: 0 !important;
    max-width: 100% !important;
}

/* Normal product pages: variation selectors and nested variable quantity
   should no longer fall back to the old browser/theme presentation. */
body.single-product form.variations_form table.variations {
    width: 100% !important;
    margin-bottom: 16px !important;
}

body.single-product form.variations_form table.variations th.label {
    padding: 0 0 7px !important;
    color: #333b49 !important;
    font-weight: 650 !important;
    text-align: left !important;
}

body.single-product form.variations_form table.variations select {
    width: 100% !important;
    min-height: 46px !important;
    padding: 0 13px !important;
    color: #343a44 !important;
    background: #fff !important;
    border: 1px solid #ddd5ca !important;
    border-radius: 10px !important;
    box-shadow: none !important;
}

body.single-product .woocommerce-variation-add-to-cart > .quantity:has(.optiontics-edip-main-stepper) {
    display: inline-block !important;
    width: 96px !important;
    margin: 0 9px 0 0 !important;
    vertical-align: middle !important;
}

body.single-product .woocommerce-variation-add-to-cart > .single_add_to_cart_button {
    min-height: 44px !important;
    padding: 0 22px !important;
    color: #fff !important;
    background: #e99a0c !important;
    border-color: #e99a0c !important;
    border-radius: 10px !important;
    box-shadow: 0 5px 13px rgba(233,154,12,.15) !important;
    font-weight: 700 !important;
}

@media (max-width: 768px) {
    /* JS moves the original WPCafe close button to the non-scrolling popup
       shell. It therefore stays top-right while mobile content scrolls. */
    #popup_wrapper #product_popup > .wpc-close.wpc-btn {
        position: absolute !important;
        top: 12px !important;
        right: 12px !important;
        left: auto !important;
        bottom: auto !important;
        float: none !important;
        margin: 0 !important;
        z-index: 1000 !important;
    }

    #product_popup .optiontics-edip-purchase-actions {
        grid-template-columns: 96px minmax(0, 1fr) !important;
        gap: 9px !important;
    }

    #product_popup .optiontics-edip-purchase-actions .single_add_to_cart_button {
        width: 100% !important;
        min-width: 0 !important;
        padding-inline: 10px !important;
        white-space: nowrap !important;
    }
}

@media (max-width: 370px) {
    #product_popup .optiontics-edip-purchase-actions {
        grid-template-columns: 90px minmax(0, 1fr) !important;
    }
}

/* ======================================================================
 * Optiontics 1.0.2.25 - generic WooCommerce variation integration
 * Applies by structure (.variations_form), never by product name or ID.
 * ====================================================================== */

/* The selected Woo variation price is mirrored into the purchase summary by
   JS. Hide Woo's separate green price row so there is only one total. */
#product_popup form.variations_form.optiontics-edip-variation-ui
.woocommerce-variation-price {
    display: none !important;
}

/* Variable products without Optiontics receive the same summary shell. */
#product_popup .optiontics-edip-generic-price-summary
.optiontics-edip-generic-extras {
    display: none !important;
}

#product_popup .optiontics-edip-generic-price-summary > div:last-child > strong::before {
    content: "Gesamt" !important;
    color: var(--ot-text) !important;
    font-size: 12.5px !important;
    font-weight: 700 !important;
}

#product_popup .optiontics-edip-generic-price-summary
.optiontics-edip-generic-total {
    color: var(--ot-orange-dark) !important;
    font-size: 22px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: -.02em !important;
}

/* Woo can briefly inject its own margins/flex layout around a variation.
   Keep the purchase panel deterministic for every variable product. */
#product_popup form.variations_form .single_variation_wrap,
#product_popup form.variations_form .woocommerce-variation-add-to-cart,
#product_popup form.variations_form .variations_button {
    width: 100% !important;
    max-width: 100% !important;
}

#product_popup form.variations_form
.woocommerce-variation-add-to-cart > .optiontics-edip-purchase-panel,
#product_popup form.variations_form
.variations_button > .optiontics-edip-purchase-panel {
    display: block !important;
    width: 100% !important;
}

/* Validation text generated by Optiontics. */
#product_popup .optiontics-field-error,
body.single-product .optiontics-field-error {
    margin-top: 7px !important;
    color: #d33d46 !important;
    font-size: 12px !important;
    font-weight: 550 !important;
    line-height: 1.4 !important;
}


/* ======================================================================
 * Optiontics 1.0.2.26 - consistent add-to-cart confirmation
 * ====================================================================== */

/* WPCafe ships hidden "Adding..." / "Added" spans inside compact direct
   cart buttons. Together with its icon-state CSS they can render two checks.
   Keep the native cart icon for idle state and own the success state here. */
.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button > span.adding,
.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button > span.added {
    display: none !important;
}

.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.optiontics-edip-add-success {
    position: relative !important;
    color: transparent !important;
    overflow: hidden !important;
}

.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.optiontics-edip-add-success > * {
    opacity: 0 !important;
    visibility: hidden !important;
}

.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.optiontics-edip-add-success::before {
    content: "✓" !important;
    position: absolute !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    color: #fff !important;
    font-family: inherit !important;
    font-size: 23px !important;
    font-weight: 750 !important;
    line-height: 1 !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: scale(.7) !important;
    animation: optionticsEdipDirectCheck .38s cubic-bezier(.2,.9,.2,1) forwards !important;
}

.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.optiontics-edip-add-success::after {
    content: none !important;
    display: none !important;
}

@keyframes optionticsEdipDirectCheck {
    0% { opacity: 0; transform: scale(.55); }
    65% { opacity: 1; transform: scale(1.14); }
    100% { opacity: 1; transform: scale(1); }
}

/* Products configured in the popup now confirm every successful add, even if
   the cart already contains items and its badge merely increments. */
#product_popup .single_add_to_cart_button.optiontics-edip-popup-add-success,
#product_popup .optiontics-edip-purchase-actions .single_add_to_cart_button.optiontics-edip-popup-add-success {
    background: #43a563 !important;
    border-color: #43a563 !important;
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(67,165,99,.24) !important;
    transform: translateY(-1px) !important;
    animation: optionticsEdipPopupSuccess .36s cubic-bezier(.2,.9,.2,1) !important;
}

@keyframes optionticsEdipPopupSuccess {
    0% { transform: scale(.97); }
    58% { transform: scale(1.015); }
    100% { transform: translateY(-1px) scale(1); }
}

@media (prefers-reduced-motion: reduce) {
    .wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.optiontics-edip-add-success::before,
    #product_popup .single_add_to_cart_button.optiontics-edip-popup-add-success {
        animation: none !important;
    }
}

/* ======================================================================
 * Optiontics 1.0.2.27 - cart-level add confirmation
 * ====================================================================== */

/* Direct product buttons: one clean loading spinner, never WPCafe's
   duplicate dots/checkmarks. The real confirmation happens in the cart. */
.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.loading {
    position: relative !important;
    color: transparent !important;
    overflow: hidden !important;
}

.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.loading > * {
    opacity: 0 !important;
    visibility: hidden !important;
}

.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.loading::before {
    content: "" !important;
    position: absolute !important;
    top: 50% !important;
    left: 50% !important;
    width: 15px !important;
    height: 15px !important;
    margin: -9px 0 0 -9px !important;
    border: 2px solid rgba(255,255,255,.42) !important;
    border-top-color: #fff !important;
    border-radius: 50% !important;
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    background: transparent !important;
    transform: none !important;
    animation: optionticsEdipSingleSpinner .65s linear infinite !important;
}

.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.loading::after,
.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.added::before,
.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.added::after,
.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.optiontics-edip-add-success::before,
.wpc-food-menu-item .wpc-add-to-cart .add_to_cart_button.optiontics-edip-add-success::after {
    content: none !important;
    display: none !important;
    animation: none !important;
}

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

/* The popup button gives a quiet text acknowledgement only. No green flash
   and no checkmark, because the floating cart is now the main feedback. */
#product_popup .single_add_to_cart_button.optiontics-edip-popup-add-success,
#product_popup .optiontics-edip-purchase-actions .single_add_to_cart_button.optiontics-edip-popup-add-success {
    background: #e99a0c !important;
    border-color: #e99a0c !important;
    color: #fff !important;
    box-shadow: 0 8px 20px rgba(233,154,12,.22) !important;
    transform: none !important;
    animation: optionticsEdipPopupAck .28s ease !important;
}

@keyframes optionticsEdipPopupAck {
    0% { opacity: .72; transform: scale(.985); }
    100% { opacity: 1; transform: scale(1); }
}

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


/* ======================================================================
   1.0.2.29 - Stable add-to-cart feedback
   ====================================================================== */

/* WPCafe ships hidden "Adding..." / "Added" spans and WooCommerce adds an
   .added pseudo checkmark. They are never used visually in the EDIP cards. */
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button > span.adding,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button > span.added,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.added::after {
    display: none !important;
    content: none !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button .wpcafe-cart_icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* A single clean loading indicator. Never show WPCafe's dots/check state. */
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-loading,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.loading {
    position: relative !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-loading .wpcafe-cart_icon,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.loading .wpcafe-cart_icon {
    opacity: 0 !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-loading::before,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.loading::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 15px !important;
    height: 15px !important;
    margin: -7.5px 0 0 -7.5px !important;
    box-sizing: border-box !important;
    border: 2px solid rgba(255, 255, 255, .42) !important;
    border-top-color: #fff !important;
    border-radius: 50% !important;
    animation: optionticsEdipDirectSpinner .62s linear infinite !important;
}

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

/* Never allow the old first-item class to animate the whole fixed bar. That
   transform competes with the bar's visibility transition and causes jitter. */
#edipMobileCartBar.edip-cart-added,
#edipDesktopCartBar.edip-cart-added,
.edip-mobile-cartbar.edip-cart-added,
.edip-desktop-cartbar.edip-cart-added,
.edip-cartbar.edip-cart-added,
[data-edip-cart-bar].edip-cart-added {
    animation: none !important;
}

#edipMobileCartBar,
#edipDesktopCartBar,
.edip-mobile-cartbar,
.edip-desktop-cartbar,
.edip-cartbar,
[data-edip-cart-bar] {
    isolation: isolate;
}



















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

    
}

/* ======================================================================
   1.0.2.30 - clean repeatable add-to-cart feedback
   ====================================================================== */

/* Native WPCafe Added/Adding text never participates in the visual state. */
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button > span.adding,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button > span.added,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.added::before,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.added::after {
    display: none !important;
    content: none !important;
}

/* One temporary, centred success tick. No text, no duplicate icon and no
   permanent .added state. */
/* Temporary success mark for every product-card action: direct products
   and products that open the configuration popup. */
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2,
.wpc-food-menu-item a.customize_button.optiontics-edip-direct-success-v2 {
    position: relative !important;
    overflow: hidden !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2 .wpcafe-cart_icon,
.wpc-food-menu-item a.customize_button.optiontics-edip-direct-success-v2 .wpcafe-customize,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2 > span {
    opacity: 0 !important;
    visibility: hidden !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2::before,
.wpc-food-menu-item a.customize_button.optiontics-edip-direct-success-v2::before {
    content: "" !important;
    position: absolute !important;
    left: 50% !important;
    top: 50% !important;
    width: 12px !important;
    height: 19px !important;
    display: block !important;
    box-sizing: border-box !important;
    border-right: 3px solid #fff !important;
    border-bottom: 3px solid #fff !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translate(-50%, -58%) rotate(45deg) scale(.72) !important;
    transform-origin: center !important;
    animation: optionticsEdipDirectTickV2 .34s cubic-bezier(.2,.9,.2,1) forwards !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2::after,
.wpc-food-menu-item a.customize_button.optiontics-edip-direct-success-v2::after {
    content: none !important;
    display: none !important;
}

/* Smooth hand-off from success check back to the normal product icon. */
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2.optiontics-edip-card-return-v3::before,
.wpc-food-menu-item a.customize_button.optiontics-edip-direct-success-v2.optiontics-edip-card-return-v3::before {
    animation: optionticsEdipDirectTickOutV3 .28s ease both !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2.optiontics-edip-card-return-v3 .wpcafe-cart_icon,
.wpc-food-menu-item a.customize_button.optiontics-edip-direct-success-v2.optiontics-edip-card-return-v3 .wpcafe-customize {
    opacity: 1 !important;
    visibility: visible !important;
    animation: optionticsEdipCardIconReturnV3 .30s cubic-bezier(.2,.9,.2,1) both !important;
}

@keyframes optionticsEdipDirectTickV2 {
    0% { opacity: 0; transform: translate(-50%, -58%) rotate(45deg) scale(.52); }
    65% { opacity: 1; transform: translate(-50%, -58%) rotate(45deg) scale(1.10); }
    100% { opacity: 1; transform: translate(-50%, -58%) rotate(45deg) scale(1); }
}

@keyframes optionticsEdipDirectTickOutV3 {
    0% { opacity: 1; transform: translate(-50%, -58%) rotate(45deg) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -58%) rotate(45deg) scale(.62); }
}

@keyframes optionticsEdipCardIconReturnV3 {
    0% { opacity: 0; transform: scale(.68) rotate(-8deg); }
    70% { opacity: 1; transform: scale(1.10) rotate(2deg); }
    100% { opacity: 1; transform: scale(1) rotate(0); }
}

/* The loading state is also exactly one spinner. */
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-loading .wpcafe-cart_icon,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.loading .wpcafe-cart_icon {
    opacity: 0 !important;
    visibility: hidden !important;
}

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

    
}


/* ======================================================================
   1.0.2.32 - clean icon hand-off + stronger cart confirmation
   ====================================================================== */

/* Stage 2: the check fades completely before the normal icon is allowed
   back. This prevents the one-frame double-icon flash. */
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2.optiontics-edip-card-check-out-v4::before,
.wpc-food-menu-item a.customize_button.optiontics-edip-direct-success-v2.optiontics-edip-card-check-out-v4::before {
    animation: optionticsEdipCardCheckOutV4 .16s ease-in forwards !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-direct-success-v2.optiontics-edip-card-check-out-v4 .wpcafe-cart_icon,
.wpc-food-menu-item a.customize_button.optiontics-edip-direct-success-v2.optiontics-edip-card-check-out-v4 .wpcafe-customize {
    opacity: 0 !important;
    visibility: hidden !important;
    animation: none !important;
}

@keyframes optionticsEdipCardCheckOutV4 {
    0%   { opacity: 1; transform: translate(-50%, -58%) rotate(45deg) scale(1); }
    100% { opacity: 0; transform: translate(-50%, -58%) rotate(45deg) scale(.72); }
}

/* Stage 3: only after the check is gone, the original icon returns. */
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-card-icon-return-v4 .wpcafe-cart_icon,
.wpc-food-menu-item a.customize_button.optiontics-edip-card-icon-return-v4 .wpcafe-customize {
    opacity: 1 !important;
    visibility: visible !important;
    animation: optionticsEdipCardIconReturnV4 .30s cubic-bezier(.2,.9,.2,1) both !important;
}

.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-card-icon-return-v4::before,
.wpc-food-menu-item .wpc-add-to-cart a.add_to_cart_button.optiontics-edip-card-icon-return-v4::after,
.wpc-food-menu-item a.customize_button.optiontics-edip-card-icon-return-v4::before,
.wpc-food-menu-item a.customize_button.optiontics-edip-card-icon-return-v4::after {
    content: none !important;
    display: none !important;
}

@keyframes optionticsEdipCardIconReturnV4 {
    0%   { opacity: 0; transform: scale(.72); }
    62%  { opacity: 1; transform: scale(1.12); }
    100% { opacity: 1; transform: scale(1); }
}

/* Make the cart-level confirmation unmistakable without moving the fixed
   cart itself. The confirmation sits INSIDE the bar, so it cannot be clipped
   by overflow on a parent. */










/* Stronger but still stationary confirmation ring. */




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

    
}

/* ======================================================================
   1.0.2.36 - DIRECT CARD BUTTON + VISIBLE SPINNER FIX
   Basis: supplied 1.0.2.32. No popup, cart-feedback or pricing JS changed.
   ====================================================================== */

/* Direct add-to-cart button: EXACT same geometry/color/shadow as the
   existing configurable-product .customize_button from the EDIP widget CSS. */
.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;

    padding: 0 !important;
    margin: 0 !important;

    border: 0 !important;
    border-radius: 12px !important;

    background: var(--edip-orange, #e99a0c) !important;
    color: #fff !important;

    box-shadow: 0 5px 12px rgba(233,154,12,.20) !important;

    position: relative !important;
    overflow: hidden !important;

    opacity: 1 !important;

    transition:
        transform .15s ease,
        box-shadow .15s ease,
        background-color .15s ease !important;
}

.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart .wpcafe-cart_icon {
    color: #fff !important;
}

@media (hover:hover) {
    .elementor-element-6247642
    .wpc-food-menu-item
    .wpc-add-to-cart
    a.add_to_cart_button.ajax_add_to_cart:hover {
        transform: translateY(-1px) !important;
        box-shadow: 0 7px 16px rgba(233,154,12,.28) !important;
    }
}

/* Direct-add loading: match the white segmented spinner language used by
   the configurable product button. The spinner is centered without a base
   transform, so the rotation cannot be frozen by an !important transform. */
.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading,
.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading {
    background: var(--edip-orange, #e99a0c) !important;
    opacity: 1 !important;
    cursor: pointer !important;
    transform: none !important;
}

.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading .wpcafe-cart_icon,
.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading .wpcafe-cart_icon {
    opacity: 0 !important;
    visibility: hidden !important;
    animation: none !important;
}

.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::before,
.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading::before {
    content: "" !important;
    display: block !important;

    position: absolute !important;
    inset: 0 !important;
    left: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;

    width: 20px !important;
    height: 20px !important;
    margin: auto !important;

    box-sizing: border-box !important;
    border: 0 !important;
    border-radius: 50% !important;

    /* Eight-ray loader with a brightness trail. The previous loader used
       eight identical rays plus 45-degree stepped rotation. Every frame
       therefore looked exactly the same even though it was technically
       rotating. This asymmetric trail makes the motion visibly rotate. */
    background: conic-gradient(
        from 0deg,
        rgba(255,255,255,1.00)   0deg 12deg,
        transparent              12deg 45deg,
        rgba(255,255,255,.86)   45deg 57deg,
        transparent              57deg 90deg,
        rgba(255,255,255,.72)   90deg 102deg,
        transparent             102deg 135deg,
        rgba(255,255,255,.58)  135deg 147deg,
        transparent             147deg 180deg,
        rgba(255,255,255,.45)  180deg 192deg,
        transparent             192deg 225deg,
        rgba(255,255,255,.34)  225deg 237deg,
        transparent             237deg 270deg,
        rgba(255,255,255,.24)  270deg 282deg,
        transparent             282deg 315deg,
        rgba(255,255,255,.15)  315deg 327deg,
        transparent             327deg 360deg
    ) !important;

    -webkit-mask: radial-gradient(
        circle,
        transparent 0 38%,
        #000 42% 100%
    ) !important;
    mask: radial-gradient(
        circle,
        transparent 0 38%,
        #000 42% 100%
    ) !important;

    opacity: 1 !important;
    visibility: visible !important;
    pointer-events: none !important;

    transform-origin: 50% 50% !important;
    animation: optionticsEdipDirectSpinnerV36 .72s linear infinite !important;
    will-change: transform !important;
    animation-play-state: running !important;
}

.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::after,
.elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading::after {
    content: none !important;
    display: none !important;
}

@keyframes optionticsEdipDirectSpinnerV36 {
    from { transform: rotate(0deg); }
    to   { transform: rotate(360deg); }
}

/* This is functional progress feedback, not decorative motion. */
@media (prefers-reduced-motion: reduce) {
    .elementor-element-6247642
    .wpc-food-menu-item
    .wpc-add-to-cart
    a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::before,
    .elementor-element-6247642
    .wpc-food-menu-item
    .wpc-add-to-cart
    a.add_to_cart_button.ajax_add_to_cart.loading::before {
        animation: optionticsEdipDirectSpinnerV36 .90s linear infinite !important;
        animation-play-state: running !important;
    }
}


/* ======================================================================
   1.0.2.36 - CART ICON CONFIRMATION
   On every confirmed add, reproduce the same orange/white icon emphasis
   used by the first-item cart animation. The fixed cart itself does not move.
   ====================================================================== */





/* ======================================================================
   1.0.2.39 - ROBUST DIRECT SPINNER + SOFT CART CONFIRMATION
   ====================================================================== */

/* Direct button parity with the accepted EDIP UI. */
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    min-height: 44px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: var(--edip-orange, #e99a0c) !important;
    color: #fff !important;
    box-shadow: 0 5px 12px rgba(233,154,12,.20) !important;
    position: relative !important;
    overflow: hidden !important;
    opacity: 1 !important;
    cursor: pointer !important;
}

.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart .wpcafe-cart_icon {
    color: #fff !important;
}

/* Host is outside the button so old .loading > * rules cannot hide spinner. */
.wpc-food-menu-item
.wpc-add-to-cart.optiontics-edip-spinner-host {
    position: relative !important;
}

.optiontics-edip-direct-spinner {
    position: absolute !important;
    z-index: 999 !important;
    display: grid !important;
    place-items: center !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
    opacity: 1 !important;
    visibility: visible !important;
    color: #fff !important;
}

.optiontics-edip-direct-spinner__svg {
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    color: #fff !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform-origin: 50% 50% !important;
    will-change: transform;
}

/* Hide only the button's normal icon during loading. */
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading .wpcafe-cart_icon,
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading .wpcafe-cart_icon {
    opacity: 0 !important;
    visibility: hidden !important;
    animation: none !important;
}

/* Disable all legacy pseudo-element loaders while our sibling spinner runs. */
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::before,
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::after,
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading::before,
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading::after {
    content: none !important;
    display: none !important;
    animation: none !important;
}

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


/* ======================================================================
   1.0.2.40 - SINGLE DIRECT SPINNER + RELIABLE CART PULSE
   ====================================================================== */

/* V36 left a highly-specific pseudo-element spinner behind. In V39 the
   real spinner is the sibling SVG above, but this older ::before rule could
   still win the cascade and appear as a second static spinner. These selectors
   intentionally outrank that historical Elementor-scoped rule. */
html body .elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::before,
html body .elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::after,
html body .elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading::before,
html body .elementor-element-6247642
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading::after,
html body
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::before,
html body
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.optiontics-edip-direct-loading::after,
html body
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading::before,
html body
.wpc-food-menu-item
.wpc-add-to-cart
a.add_to_cart_button.ajax_add_to_cart.loading::after {
    content: none !important;
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    background: none !important;
    -webkit-mask: none !important;
    mask: none !important;
    animation: none !important;
    transform: none !important;
    opacity: 0 !important;
    visibility: hidden !important;
}

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

    
}

/* Freeze only the real EDIP icon-count badge while the token is in flight.
   Do not target generic WooCommerce counters because those can drive cart state. */
html.optiontics-edip-hold-cart-badge-v51 #edipOrderCartCount,
html.optiontics-edip-hold-cart-badge-v51 .edip-order-cart-count {
    animation: none !important;
    transition: none !important;
    scale: 1 !important;
}

/* Visual-only count hold. Never change the badge's position, display,
   transform, width or height: #edipOrderCartCount is positioned by the cart
   itself. Hide only its live text, then paint the pre-click number as a
   normal in-flow pseudo text node. This preserves the exact badge geometry. */
.optiontics-edip-cart-count-held-v51 {
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    font-size: 0 !important;
}

.optiontics-edip-cart-count-held-v51::after {
    content: attr(data-optiontics-held-count) !important;
    position: static !important;
    inset: auto !important;
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--optiontics-held-count-color, #fff) !important;
    -webkit-text-fill-color: var(--optiontics-held-count-color, #fff) !important;
    font-family: var(--optiontics-held-count-font-family, inherit) !important;
    font-size: var(--optiontics-held-count-font-size, inherit) !important;
    font-weight: var(--optiontics-held-count-font-weight, inherit) !important;
    line-height: var(--optiontics-held-count-line-height, normal) !important;
    letter-spacing: var(--optiontics-held-count-letter-spacing, normal) !important;
    pointer-events: none !important;
}

/* Hold the visible "x Artikel" line on its pre-click text until the
   fly token lands. JavaScript restores WooCommerce's new text at impact. */
html.optiontics-edip-hold-cart-meta-v51 #edipOrderCartMeta,
html.optiontics-edip-hold-cart-meta-v51 .edip-order-cart-meta,
html.optiontics-edip-hold-cart-meta-v51 [data-edip-cart-meta] {
    animation: none !important;
    transition: none !important;
    scale: 1 !important;
}


/* Hold the visible cart total price on its pre-click text until impact.
   This is visual-only: the live total updates underneath and becomes visible
   once the flight lands. */
html.optiontics-edip-hold-cart-total-v51 #edipOrderCartTotal,
html.optiontics-edip-hold-cart-total-v51 .edip-order-cart-total,
html.optiontics-edip-hold-cart-total-v51 [data-edip-cart-total] {
    animation: none !important;
    transition: none !important;
    scale: 1 !important;
}

.optiontics-edip-cart-total-held-v51 {
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    font-size: 0 !important;
}

.optiontics-edip-cart-total-held-v51::after {
    content: attr(data-optiontics-held-total) !important;
    position: static !important;
    inset: auto !important;
    display: inline !important;
    margin: 0 !important;
    padding: 0 !important;
    color: var(--optiontics-held-total-color, currentColor) !important;
    -webkit-text-fill-color: var(--optiontics-held-total-color, currentColor) !important;
    font-family: var(--optiontics-held-total-font-family, inherit) !important;
    font-size: var(--optiontics-held-total-font-size, inherit) !important;
    font-weight: var(--optiontics-held-total-font-weight, inherit) !important;
    line-height: var(--optiontics-held-total-line-height, normal) !important;
    letter-spacing: var(--optiontics-held-total-letter-spacing, normal) !important;
    pointer-events: none !important;
}

/* Once impact starts, keep legacy/native badge animations disabled. Our
   V51 Web Animation drives only the individual scale property. */
.optiontics-edip-cart-badge-controlled-v51 {
    animation: none !important;
    transition: none !important;
    transform-origin: center center !important;
}

/* ======================================================================
   1.0.2.51 - SINGLE FLY-TO-CART CONFIRMATION
   Historical Optiontics cart flashes, toast, rings and V39/V40 pulses were
   removed from this asset. The only cart confirmation is the V51 flight,
   impact ring and catch reaction driven by the current JavaScript.
   ====================================================================== */

.optiontics-edip-fly-token-v51 {
    position: fixed !important;
    z-index: 2147483000 !important;
    width: 28px !important;
    height: 28px !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--edip-orange, #e99a0c) !important;
    color: #fff !important;
    box-shadow: 0 6px 16px rgba(233,154,12,.38), 0 0 0 2px rgba(255,255,255,.92) !important;
    pointer-events: none !important;
    transform-origin: center center !important;
    will-change: transform, opacity;
}

.optiontics-edip-fly-token-plus-v51 {
    display: block !important;
    color: #fff !important;
    font: 800 19px/1 Arial, sans-serif !important;
    line-height: 1 !important;
    transform: translateY(-.5px) !important;
    user-select: none !important;
}

.optiontics-edip-cart-impact-v51 {
    position: fixed !important;
    z-index: 2147482999 !important;
    width: 42px !important;
    height: 42px !important;
    border: 2px solid rgba(233,154,12,.82) !important;
    border-radius: 999px !important;
    box-sizing: border-box !important;
    pointer-events: none !important;
    opacity: 0;
    transform: translate(-50%, -50%) scale(.04);
    will-change: transform, opacity;
}

@media (prefers-reduced-motion: reduce) {
    .optiontics-edip-fly-token-v51 {
        display: none !important;
    }
}

/* ======================================================================
   1.0.2.52 - EDIP SIMPLE PRODUCT POPUP PURCHASE UI
   Plain WooCommerce simple products opened through the WPCafe popup do not
   have an Optiontics price-summary panel. Style only that exact plain form so
   quantity + add-to-cart match the modern EDIP popup without changing cart,
   pricing, addons, variable products or dietary/allergen output.
   ====================================================================== */

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel)) {
    display: grid !important;
    grid-template-columns: 96px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: end !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 18px 0 14px !important;
    padding: 13px !important;
    float: none !important;
    clear: both !important;
    background: #fffaf1 !important;
    border: 1px solid #efcf96 !important;
    border-radius: 14px !important;
    box-shadow: none !important;
    box-sizing: border-box !important;
}

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .quantity {
    position: relative !important;
    display: block !important;
    grid-column: 1 !important;
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
    margin: 0 !important;
    padding: 14px 0 0 !important;
    float: none !important;
}

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .quantity::before {
    content: "Menge";
    position: absolute;
    top: 0;
    left: 2px;
    color: #81786e;
    font-size: 8.8px;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .055em;
    text-transform: uppercase;
}

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .quantity .optiontics-edip-main-stepper {
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
    height: 46px !important;
    min-height: 46px !important;
}

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .quantity .optiontics-edip-main-stepper button {
    flex: 0 0 30px !important;
    width: 30px !important;
    min-width: 30px !important;
    max-width: 30px !important;
    height: 44px !important;
    min-height: 44px !important;
}

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .quantity .optiontics-edip-main-stepper input.qty {
    flex: 0 0 36px !important;
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 44px !important;
    min-height: 44px !important;
    line-height: 44px !important;
}

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .single_add_to_cart_button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    grid-column: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 0 18px !important;
    float: none !important;
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: var(--ot-orange, #e99a0c) !important;
    border: 1px solid var(--ot-orange, #e99a0c) !important;
    border-radius: 9px !important;
    box-shadow: 0 5px 13px rgba(233, 154, 12, .16) !important;
    font-size: 13.5px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-align: center !important;
    transition: background-color .14s ease, border-color .14s ease, transform .14s ease, box-shadow .14s ease !important;
}

@media (hover: hover) and (pointer: fine) {
    #product_popup .product-type-simple .wpc-single-content
    form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
    > .single_add_to_cart_button:hover {
        color: #fff !important;
        -webkit-text-fill-color: #fff !important;
        background: var(--ot-orange-dark, #c97800) !important;
        border-color: var(--ot-orange-dark, #c97800) !important;
        transform: translateY(-1px) !important;
        box-shadow: 0 7px 16px rgba(201, 120, 0, .20) !important;
    }
}

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .single_add_to_cart_button:focus-visible {
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(233, 154, 12, .16), 0 5px 13px rgba(233, 154, 12, .16) !important;
}

#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .single_add_to_cart_button:disabled,
#product_popup .product-type-simple .wpc-single-content
form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
> .single_add_to_cart_button.disabled {
    color: #fff !important;
    -webkit-text-fill-color: #fff !important;
    background: #d9b36e !important;
    border-color: #d9b36e !important;
    box-shadow: none !important;
    cursor: not-allowed !important;
    opacity: .72 !important;
    transform: none !important;
}

@media (max-width: 480px) {
    #product_popup .product-type-simple .wpc-single-content
    form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel)) {
        grid-template-columns: 92px minmax(0, 1fr) !important;
        gap: 9px !important;
        padding: 12px !important;
    }

    #product_popup .product-type-simple .wpc-single-content
    form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
    > .quantity,
    #product_popup .product-type-simple .wpc-single-content
    form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
    > .quantity .optiontics-edip-main-stepper {
        width: 92px !important;
        min-width: 92px !important;
        max-width: 92px !important;
    }

    #product_popup .product-type-simple .wpc-single-content
    form.cart:not(.variations_form):has(> .quantity):has(> .single_add_to_cart_button):not(:has(.addon-form)):not(:has(.optiontics-product-price-summary)):not(:has(> .optiontics-edip-purchase-panel))
    > .quantity .optiontics-edip-main-stepper button {
        flex-basis: 28px !important;
        width: 28px !important;
        min-width: 28px !important;
        max-width: 28px !important;
    }
}

/* ======================================================================
 * Optiontics 1.0.2.58 - Ingredients status UI cleanup
 * Neutral included/available states, clear OHNE badge, orange only for
 * actual surcharges. No ingredient quantity or pricing logic is changed.
 * ====================================================================== */
#product_popup .optiontics-ingredient-option > .optiontics-ingredient-price,
body.single-product .optiontics-ingredient-option > .optiontics-ingredient-price,
body.woocommerce .product.type-product .optiontics-ingredient-option > .optiontics-ingredient-price {
    min-width: 82px !important;
    color: #6b7280 !important;
    font-size: 12px !important;
    font-weight: 650 !important;
    letter-spacing: 0 !important;
}

/* Ingredients render their own complete status text. */
#product_popup .optiontics-ingredient-option.optiontics-edip-surcharge > .optiontics-ingredient-price::before,
body.single-product .optiontics-ingredient-option.optiontics-edip-surcharge > .optiontics-ingredient-price::before,
body.woocommerce .product.type-product .optiontics-ingredient-option.optiontics-edip-surcharge > .optiontics-ingredient-price::before {
    content: none !important;
    display: none !important;
}

#product_popup .optiontics-ingredient-price.is-included,
body.single-product .optiontics-ingredient-price.is-included,
body.woocommerce .product.type-product .optiontics-ingredient-price.is-included {
    color: #6b7280 !important;
    font-weight: 600 !important;
}

#product_popup .optiontics-ingredient-price.is-available,
body.single-product .optiontics-ingredient-price.is-available,
body.woocommerce .product.type-product .optiontics-ingredient-price.is-available {
    color: #8a5a18 !important;
    font-weight: 650 !important;
}

#product_popup .optiontics-ingredient-price.is-surcharge,
body.single-product .optiontics-ingredient-price.is-surcharge,
body.woocommerce .product.type-product .optiontics-ingredient-price.is-surcharge {
    color: #b86b00 !important;
    font-weight: 700 !important;
}

#product_popup .optiontics-ingredient-price.is-removed,
body.single-product .optiontics-ingredient-price.is-removed,
body.woocommerce .product.type-product .optiontics-ingredient-price.is-removed {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    justify-self: end !important;
    width: auto !important;
    min-width: 54px !important;
    padding: 4px 8px !important;
    color: #a8471a !important;
    background: #fff1e8 !important;
    border: 1px solid #efb18f !important;
    border-radius: 999px !important;
    font-size: 10.5px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    letter-spacing: .045em !important;
}

#product_popup .optiontics-ingredient-option.optiontics-ingredient-removed,
body.single-product .optiontics-ingredient-option.optiontics-ingredient-removed,
body.woocommerce .product.type-product .optiontics-ingredient-option.optiontics-ingredient-removed {
    background: #fffdfb !important;
    border-color: #ead7ca !important;
}

@media (max-width: 480px) {
    #product_popup .optiontics-ingredient-option > .optiontics-ingredient-price,
    body.single-product .optiontics-ingredient-option > .optiontics-ingredient-price,
    body.woocommerce .product.type-product .optiontics-ingredient-option > .optiontics-ingredient-price {
        min-width: 72px !important;
        font-size: 11.25px !important;
    }
}


/* ======================================================================
 * Optiontics 1.0.2.59 - Ingredient status color + narrow mobile fix
 * Stronger selectors beat WPCafe/site .price rules, including text-fill.
 * 360px rows reserve real width for the status so it cannot overlap the
 * quantity stepper. Pricing and selection behavior are unchanged.
 * ====================================================================== */
#product_popup .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-included,
body.single-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-included,
body.woocommerce .product.type-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-included {
    color: #6b7280 !important;
    -webkit-text-fill-color: #6b7280 !important;
}

#product_popup .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-available,
body.single-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-available,
body.woocommerce .product.type-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-available {
    color: #8a5a18 !important;
    -webkit-text-fill-color: #8a5a18 !important;
}

#product_popup .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-surcharge,
body.single-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-surcharge,
body.woocommerce .product.type-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-surcharge {
    color: #b86b00 !important;
    -webkit-text-fill-color: #b86b00 !important;
}

#product_popup .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-removed,
body.single-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-removed,
body.woocommerce .product.type-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price.is-removed {
    color: #a8471a !important;
    -webkit-text-fill-color: #a8471a !important;
}

@media (max-width: 390px) {
    #product_popup .addon-option.has-quantity.optiontics-ingredient-option,
    body.single-product .addon-option.has-quantity.optiontics-ingredient-option,
    body.woocommerce .product.type-product .addon-option.has-quantity.optiontics-ingredient-option {
        grid-template-columns: minmax(0, 1fr) 86px max-content !important;
        column-gap: 7px !important;
    }

    #product_popup .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price,
    body.single-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price,
    body.woocommerce .product.type-product .addon-option.optiontics-ingredient-option > span.price.optiontics-ingredient-price {
        min-width: 0 !important;
        width: auto !important;
        white-space: nowrap !important;
        font-size: 10.75px !important;
    }
}

@media (max-width: 340px) {
    #product_popup .addon-option.has-quantity.optiontics-ingredient-option,
    body.single-product .addon-option.has-quantity.optiontics-ingredient-option,
    body.woocommerce .product.type-product .addon-option.has-quantity.optiontics-ingredient-option {
        grid-template-columns: minmax(0, 1fr) 82px !important;
        grid-template-rows: auto auto !important;
        row-gap: 6px !important;
    }

    #product_popup .addon-option.has-quantity.optiontics-ingredient-option > label,
    body.single-product .addon-option.has-quantity.optiontics-ingredient-option > label,
    body.woocommerce .product.type-product .addon-option.has-quantity.optiontics-ingredient-option > label {
        grid-column: 1 !important;
        grid-row: 1 !important;
    }

    #product_popup .addon-option.has-quantity.optiontics-ingredient-option > .optiontics-edip-stepper,
    body.single-product .addon-option.has-quantity.optiontics-ingredient-option > .optiontics-edip-stepper,
    body.woocommerce .product.type-product .addon-option.has-quantity.optiontics-ingredient-option > .optiontics-edip-stepper {
        grid-column: 2 !important;
        grid-row: 1 !important;
        justify-self: end !important;
    }

    #product_popup .addon-option.has-quantity.optiontics-ingredient-option > span.price.optiontics-ingredient-price,
    body.single-product .addon-option.has-quantity.optiontics-ingredient-option > span.price.optiontics-ingredient-price,
    body.woocommerce .product.type-product .addon-option.has-quantity.optiontics-ingredient-option > span.price.optiontics-ingredient-price {
        grid-column: 1 / -1 !important;
        grid-row: 2 !important;
        justify-self: end !important;
    }
}

/* ======================================================================
 * Optiontics 1.0.2.60 - EDIP block hierarchy + show-more polish
 * - Block headings/descriptions use one consistent visual rhythm.
 * - The show-more chevron is controlled by one element only, preventing
 *   the old double rotation when switching to "Weniger anzeigen".
 * ====================================================================== */

/* Clear, consistent hierarchy for addon block titles and descriptions. */
#popup_wrapper #product_popup .addon-form .addon-group,
body.single-product .addon-form .addon-group,
body.woocommerce .product.type-product .addon-form .addon-group {
    margin-top: 0 !important;
    margin-bottom: 18px !important;
}

#popup_wrapper #product_popup .addon-form .addon-group .optiontics-block-label,
#popup_wrapper #product_popup .addon-form .addon-group > h4,
body.single-product .addon-form .addon-group .optiontics-block-label,
body.single-product .addon-form .addon-group > h4,
body.woocommerce .product.type-product .addon-form .addon-group .optiontics-block-label,
body.woocommerce .product.type-product .addon-form .addon-group > h4 {
    display: block !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    color: #2f3744 !important;
    font-size: 14px !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    letter-spacing: -0.01em !important;
}

#popup_wrapper #product_popup .addon-form .addon-group .optiontics-block-description,
body.single-product .addon-form .addon-group .optiontics-block-description,
body.woocommerce .product.type-product .addon-form .addon-group .optiontics-block-description {
    display: block !important;
    width: 100% !important;
    max-width: 62ch !important;
    margin: 0 0 10px !important;
    padding: 0 !important;
    color: #777169 !important;
    font-size: 11.7px !important;
    font-weight: 400 !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
}

#popup_wrapper #product_popup .addon-form .addon-group .optiontics-block-description:empty,
body.single-product .addon-form .addon-group .optiontics-block-description:empty,
body.woocommerce .product.type-product .addon-form .addon-group .optiontics-block-description:empty {
    display: none !important;
    margin: 0 !important;
}

/* Keep adjacent groups visually separated without touching the option cards. */
#popup_wrapper #product_popup .addon-form .addon-group + .addon-group,
body.single-product .addon-form .addon-group + .addon-group,
body.woocommerce .product.type-product .addon-form .addon-group + .addon-group {
    margin-top: 2px !important;
}

/* Neutralise the older parent rotation. The pseudo chevron alone rotates. */
#popup_wrapper #product_popup .optiontics-show-more .optiontics-show-more-icon,
#popup_wrapper #product_popup .optiontics-show-more.is-expanded .optiontics-show-more-icon,
#popup_wrapper #product_popup .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon,
body.single-product .optiontics-show-more .optiontics-show-more-icon,
body.single-product .optiontics-show-more.is-expanded .optiontics-show-more-icon,
body.single-product .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon,
body.woocommerce .product.type-product .optiontics-show-more .optiontics-show-more-icon,
body.woocommerce .product.type-product .optiontics-show-more.is-expanded .optiontics-show-more-icon,
body.woocommerce .product.type-product .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon {
    transform: none !important;
}

/* Down when collapsed. */
#popup_wrapper #product_popup .optiontics-show-more .optiontics-show-more-icon::before,
body.single-product .optiontics-show-more .optiontics-show-more-icon::before,
body.woocommerce .product.type-product .optiontics-show-more .optiontics-show-more-icon::before {
    top: 1px !important;
    transform: rotate(45deg) !important;
    transition: transform .16s ease, top .16s ease !important;
}

/* Up when expanded. Use -135deg instead of 225deg so the browser never
   chooses the visually awkward long rotation path. */
#popup_wrapper #product_popup .optiontics-show-more.is-expanded .optiontics-show-more-icon::before,
#popup_wrapper #product_popup .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon::before,
body.single-product .optiontics-show-more.is-expanded .optiontics-show-more-icon::before,
body.single-product .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon::before,
body.woocommerce .product.type-product .optiontics-show-more.is-expanded .optiontics-show-more-icon::before,
body.woocommerce .product.type-product .optiontics-show-more[aria-expanded="true"] .optiontics-show-more-icon::before {
    top: 4px !important;
    transform: rotate(-135deg) !important;
}

@media (max-width: 768px) {
    #popup_wrapper #product_popup .addon-form .addon-group,
    body.single-product .addon-form .addon-group,
    body.woocommerce .product.type-product .addon-form .addon-group {
        margin-bottom: 17px !important;
    }

    #popup_wrapper #product_popup .addon-form .addon-group .optiontics-block-label,
    #popup_wrapper #product_popup .addon-form .addon-group > h4,
    body.single-product .addon-form .addon-group .optiontics-block-label,
    body.single-product .addon-form .addon-group > h4,
    body.woocommerce .product.type-product .addon-form .addon-group .optiontics-block-label,
    body.woocommerce .product.type-product .addon-form .addon-group > h4 {
        margin-bottom: 5px !important;
        font-size: 14px !important;
        line-height: 1.28 !important;
    }

    #popup_wrapper #product_popup .addon-form .addon-group .optiontics-block-description,
    body.single-product .addon-form .addon-group .optiontics-block-description,
    body.woocommerce .product.type-product .addon-form .addon-group .optiontics-block-description {
        margin-bottom: 9px !important;
        font-size: 11.5px !important;
        line-height: 1.48 !important;
    }
}

