/* my-GPS B2B Checkout / Warenkorb */
.gps-shop-overlay {
    display: none;
    position: fixed;
    z-index: 9997;
    left: 0;
    top: 0;
    right: 0;
    bottom: 0;
    background: rgba(0,0,0,0.55);
}
.gps-cart-drawer {
    position: fixed;
    z-index: 9998;
    top: 0;
    right: -390px;
    width: 360px;
    max-width: 92%;
    height: 100%;
    background: #fff;
    box-shadow: -8px 0 25px rgba(0,0,0,0.22);
    transition: right 0.25s ease;
    overflow-y: auto;
    font-family: Arial, Helvetica, sans-serif;
}
.gps-cart-drawer.gps-cart-open { right: 0; }
.gps-cart-head {
    padding: 18px 20px;
    border-bottom: 1px solid #e5eaf0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.gps-cart-head h3 { margin: 0; color: #0a5db8; font-size: 22px; }
.gps-cart-close { border: 0; background: transparent; font-size: 28px; line-height: 1; cursor: pointer; color: #3b4652; }
.gps-cart-body { padding: 18px 20px; }
.gps-cart-empty { color: #2c3440; line-height: 1.5; }
.gps-cart-note {
    margin-top: 12px;
    padding: 12px;
    background: #f4f8fd;
    border: 1px solid #dbe8f7;
    border-radius: 8px;
    font-size: 13px;
    color: #405061;
}
.gps-cart-item {
    display: flex;
    gap: 12px;
    padding: 14px 0;
    border-bottom: 1px solid #e8edf3;
}
.gps-cart-item img { width: 70px; height: 55px; object-fit: contain; border: 1px solid #edf1f5; border-radius: 6px; }
.gps-cart-item-title { font-weight: 700; color: #111; margin-bottom: 4px; }
.gps-cart-item-desc { color: #5d6875; font-size: 13px; margin-bottom: 8px; }
.gps-cart-item-meta { font-size: 13px; color: #1d2a36; }
.gps-cart-remove { color: #0a64c7; cursor: pointer; font-size: 13px; margin-top: 6px; display: inline-block; }
.gps-cart-total {
    padding-top: 15px;
    margin-top: 4px;
    font-size: 15px;
}
.gps-cart-row { display: flex; justify-content: space-between; margin-bottom: 8px; }
.gps-cart-row strong { color: #0a5db8; font-size: 18px; }
.gps-btn-primary, .gps-btn-secondary {
    display: inline-block;
    border-radius: 7px;
    padding: 12px;
    font-weight: 100;
    text-decoration: none;
    cursor: pointer;
    border: 0px solid #0a64c7;
    text-align: center;
}
.gps-btn-primary { background: #0066c9; color: #fff !important; }
.gps-btn-primary:hover { background: #004f9f; color: #fff !important; }
.gps-btn-secondary { background: #fff; color: #0066c9 !important; }
.gps-cart-actions { margin-top: 18px; }
.gps-cart-actions .gps-btn-primary { width: 100%; box-sizing: border-box; }
.gps-cart-count {
    display: inline-block;
    min-width: 18px;
    height: 18px;
    line-height: 18px;
    border-radius: 50%;
    background: #0a64c7;
    color: #fff;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
}

.gps-checkout-wrap {
    max-width: 1280px;
    margin: 0 auto;
    /*padding: 24px 16px 55px 16px;*/
    font-family: Arial, Helvetica, sans-serif;
    color: #192433;
}
.gps-checkout-title { color: #0a64c7; font-size: 34px; line-height: 1.15; margin: 0 0 4px 0; }
.gps-checkout-subtitle { margin: 0 0 18px 0; color: #3b4652; font-size: 16px; }
.gps-b2b-box {
    margin: 16px 0 22px 0;
    padding: 13px 16px;
    background: #f3f8fe;
    border: 1px solid #cfe3fa;
    border-left: 5px solid #0a64c7;
    border-radius: 8px;
    color: #24384d;
}
.gps-steps {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid #d7dfe8;
    margin: 24px 0 22px 0;
}
.gps-step {
    position: relative;
    width: 20%;
    padding: 0 0 18px 0;
    color: #526171;
    text-align: center;
    font-size: 14px;
}
.gps-step span {
    display: inline-block;
    width: 25px;
    height: 25px;
    line-height: 25px;
    border-radius: 50%;
    background: #e9eef4;
    color: #445061;
    margin-right: 8px;
    font-weight: 700;
}
.gps-step.active { color: #0066c9; font-weight: 700; }
.gps-step.active:after {
    content: "";
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 3px;
    background: #0066c9;
}
.gps-step.active span { background: #0066c9; color: #fff; box-shadow: 0 0 0 4px #e8f2ff; }
.gps-checkout-grid { display: grid; grid-template-columns: minmax(0, 1fr) 370px; gap: 26px; align-items: start; }
.gps-panel {
    background: #fff;
    border: 1px solid #dce4ec;
    border-radius: 8px;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04);
    padding: 20px;
}
.gps-panel h2, .gps-panel h3 { margin-top: 0; color: #1b2735; }
.gps-slide { display: none; }
.gps-slide.active { display: block; animation: gpsFade 0.22s ease; }
@keyframes gpsFade { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
.gps-cart-table { width: 100%; border-collapse: collapse; }
.gps-cart-table th { background: #eef2f6; color: #465566; font-weight: 700; padding: 11px 10px; text-align: left; font-size: 14px; }
.gps-cart-table td { border-bottom: 1px solid #e6ebf1; padding: 16px 10px; vertical-align: middle; }
.gps-product-cell { display: flex; gap: 16px; align-items: center; }
.gps-product-cell img { width: 100px; height: 72px; object-fit: contain; border: 1px solid #edf1f5; border-radius: 6px; }
.gps-product-name { font-weight: 700; margin-bottom: 6px; }
.gps-product-desc { color: #5d6875; margin-bottom: 8px; font-size: 14px; }
.gps-stock { color: #198d3f; font-size: 14px; }
.gps-qty { display: inline-flex; border: 1px solid #cbd6e2; border-radius: 5px; overflow: hidden; }
.gps-qty button { width: 31px; height: 31px; border: 0; background: #f3f6f9; cursor: pointer; font-size: 18px; }
.gps-qty input { width: 40px; height: 31px; border: 0; border-left: 1px solid #cbd6e2; border-right: 1px solid #cbd6e2; text-align: center; }
.gps-remove-link { color: #0066c9; cursor: pointer; display: inline-block; margin-top: 7px; font-size: 13px; }
.gps-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.gps-field { margin-bottom: 14px; }
.gps-field label { display: block; font-weight: 700; margin-bottom: 6px; color: #263444; }
.gps-field small { display: block; color: #667585; margin-top: 4px; }
.gps-field input, .gps-field textarea, .gps-field select {
    width: 100%;
    box-sizing: border-box;
    border: 1px solid #cbd6e2;
    border-radius: 7px;
    padding: 11px 12px;
    font-size: 15px;
}
.gps-field textarea { min-height: 76px; resize: vertical; }
.gps-required { color: #bd1b1b; }
.gps-choice-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.gps-choice {
    border: 2px solid #dce4ec;
    border-radius: 10px;
    padding: 18px;
    cursor: pointer;
    min-height: 110px;
}
.gps-choice.active { border-color: #0066c9; background: #f3f8fe; }
.gps-choice strong { display: block; font-size: 18px; margin-bottom: 8px; }
.gps-checkout-actions { display: flex; justify-content: space-between; gap: 16px; margin-top: 22px; }
.gps-checkout-actions .gps-btn-primary, .gps-checkout-actions .gps-btn-secondary { min-width: 230px; }
.gps-summary-card { margin-bottom: 16px; }
.gps-summary-line { display: flex; justify-content: space-between; margin: 10px 0; }
.gps-summary-total { border-top: 1px solid #dce4ec; padding-top: 14px; margin-top: 14px; font-weight: 700; font-size: 18px; }
.gps-summary-total span:last-child { color: #0066c9; font-size: 22px; }
.gps-info-list { margin: 0; padding: 0; list-style: none; }
.gps-info-list li { margin: 13px 0; padding-left: 28px; position: relative; }
.gps-info-list li:before { content: "✓"; position: absolute; left: 0; top: 0; color: #0066c9; font-weight: 700; }
.gps-review-box { background: #f7f9fb; border: 1px solid #e1e7ee; border-radius: 8px; padding: 14px; margin-bottom: 14px; }
.gps-message { display: none; margin-top: 16px; padding: 13px 15px; border-radius: 7px; }
.gps-message.ok { display: block; background: #edf9f1; border: 1px solid #bee6ca; color: #176c2f; }
.gps-message.err { display: block; background: #fff0f0; border: 1px solid #f0bbbb; color: #8a1717; }
.gps-small-note { color: #637386; font-size: 13px; line-height: 1.45; }
@media (max-width: 900px) {
    .gps-checkout-grid { grid-template-columns: 1fr; }
    .gps-steps { display: block; border-bottom: 0; }
    .gps-step { width: 100%; text-align: left; border-bottom: 1px solid #e1e7ee; }
    .gps-form-grid, .gps-choice-grid { grid-template-columns: 1fr; }
    .gps-checkout-actions { flex-direction: column; }
    .gps-checkout-actions .gps-btn-primary, .gps-checkout-actions .gps-btn-secondary { width: 100%; min-width: 0; box-sizing: border-box; }
}


/* Checkout Checkboxen - gegen globale CSS-Kollisionen absichern */
.shop-check-row {
    display: flex !important;
    align-items: flex-start !important;
    gap: 10px !important;
    margin: 14px 0 !important;
    text-align: left !important;
}

.shop-check-row input[type="checkbox"] {
    width: 18px !important;
    height: 18px !important;
    min-width: 18px !important;
    margin: 3px 0 0 0 !important;
    padding: 0 !important;
    position: static !important;
    float: none !important;
    display: inline-block !important;
    vertical-align: top !important;
}

.shop-check-row label {
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    text-align: left !important;
    line-height: 1.45 !important;
    cursor: pointer;
}


.gps-hp-field {
    position: absolute;
    left: -9999px;
    top: -9999px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.btn-spinner {
    display: inline-block;
    width: 18px;
    height: 18px;
    border: 3px solid rgba(255,255,255,0.45);
    border-top-color: #fff;
    border-radius: 50%;
    animation: btnSpin 0.8s linear infinite;
    vertical-align: middle;
}

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


@media (max-width: 767px) {

    .gps-steps {
        display: block !important;
        margin: 18px 0 22px 0 !important;
        padding: 0 !important;
        border-top: 1px solid #dce3ea;
        border-bottom: 1px solid #dce3ea;
    }

    .gps-step {
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        padding: 10px 0 !important;
        border-bottom: 1px solid #e5eaf0;
        position: relative;
        box-sizing: border-box;
    }

    .gps-step:last-child {
        border-bottom: 0;
    }

    .gps-step span {
        width: 26px !important;
        height: 26px !important;
        min-width: 26px !important;
        line-height: 26px !important;
        margin: 0 10px 0 0 !important;
        text-align: center !important;
        border-radius: 50% !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        background: #e9eef5;
        color: #1b3554;
        display: inline-block !important;
    }

    .gps-step.active {
        border-bottom: 3px solid #006dcc;
        color: #006dcc !important;
        font-weight: 700 !important;
    }

    .gps-step.active span {
        background: #006dcc !important;
        color: #fff !important;
    }
}