/* =========================================================
   Buy 2 Get 2 Free / Cart UI
   ========================================================= */

:root {
    --b2g2-offer-accent: #067a55;
    --b2g2-offer-accent-dark: #045e42;
    --b2g2-offer-soft: #eef9f4;
    --b2g2-offer-border: #cfe9de;
    --b2g2-offer-text: #17211d;
    --b2g2-offer-muted: #6a746f;
    --b2g2-offer-track: #e7ece9;
}

/* ---------- Cart progress ---------- */
.b2g2-progress {
    width: 100%;
    margin: 0 0 22px;
    padding: 18px;
    border: 1px solid var(--b2g2-offer-border);
    border-radius: 14px;
    background: linear-gradient(180deg, #fff 0%, var(--b2g2-offer-soft) 100%);
}

.b2g2-progress.is-compact {
    margin: 0;
    padding: 16px 20px 18px;
    border-width: 0 0 1px;
    border-radius: 0;
}

.b2g2-progress__header {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin-bottom: 17px;
}

.b2g2-progress__header strong {
    color: var(--b2g2-offer-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.35;
}

.b2g2-progress__header small {
    color: var(--b2g2-offer-accent);
    font-size: 11px;
    font-weight: 600;
}

.b2g2-progress__rail {
    position: relative;
    height: 6px;
    margin-right: 10px;
    border-radius: 999px;
    background: var(--b2g2-offer-track);
}

.b2g2-progress__fill {
    position: absolute;
    inset: 0 auto 0 0;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--b2g2-offer-accent-dark), var(--b2g2-offer-accent));
    transition: width .35s ease;
}

.b2g2-progress__step {
    position: absolute;
    top: 50%;
    width: 18px;
    height: 18px;
    transform: translate(-50%, -50%);
    border: 2px solid var(--b2g2-offer-track);
    border-radius: 50%;
    background: #fff;
    z-index: 2;
}

.b2g2-progress__step i {
    display: none;
}

.b2g2-progress__step.is-complete {
    border-color: var(--b2g2-offer-accent);
    background: var(--b2g2-offer-accent);
    box-shadow: 0 0 0 3px rgba(6, 122, 85, .11);
}

.b2g2-progress__step.is-offer-goal,
.b2g2-progress__step.is-shipping-goal {
    width: 22px;
    height: 22px;
}

.b2g2-progress__goals {
    position: relative;
    min-height: 34px;
    margin-top: 13px;
    color: var(--b2g2-offer-muted);
    font-size: 10px;
}

.b2g2-progress__goal {
    position: absolute;
    display: flex;
    flex-direction: column;
    gap: 1px;
    width: max-content;
    max-width: 92px;
    line-height: 1.2;
}

.b2g2-progress__goal strong {
    color: var(--b2g2-offer-text);
    font-size: 10px;
    font-weight: 700;
}

.b2g2-progress__goal small {
    color: var(--b2g2-offer-accent);
    font-size: 9px;
    font-weight: 600;
}

/* Default position for Cart and Checkout */
.b2g2-progress__goal.is-offer {
    left: calc(80% - 8px);
    transform: translateX(-50%);
    align-items: center;
    text-align: center;
}

/* Keep the adjusted position inside the compact Mini Cart */
.b2g2-progress.is-compact .b2g2-progress__goal.is-offer {
    left: 77%;
}

.b2g2-progress__goal.is-shipping {
    right: 0;
    align-items: flex-end;
    text-align: right;
}

/* Prevent reward labels from overlapping */
.b2g2-progress__goal.is-shipping small {
    display: block;
    width: 40px;
    white-space: normal;
    line-height: 1.05;
    text-align: center;
}

/* ---------- Per-item savings ---------- */
.b2g2-item-saving {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    justify-content: space-between;
    gap: 5px 10px;
    width: min(100%, 280px);
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px dashed #dde5e1;
}

.b2g2-item-saving__price {
    display: flex;
    flex-direction: column;
    gap: 1px;
}

.b2g2-item-saving__eyebrow {
    color: var(--b2g2-offer-muted);
    font-size: 9px;
    line-height: 1.2;
}

.b2g2-item-saving__price strong {
    color: var(--b2g2-offer-text);
    font-size: 13px;
    font-weight: 700;
    line-height: 1.2;
}

.b2g2-item-saving__price strong small {
    color: var(--b2g2-offer-muted);
    font-size: 9px;
    font-weight: 500;
}

.b2g2-item-saving__meta {
    display: flex;
    align-items: center;
    gap: 5px;
}

.b2g2-item-saving__amount {
    color: var(--b2g2-offer-accent);
    font-size: 10px;
    line-height: 1.2;
}

.b2g2-item-saving__amount strong,
.b2g2-item-saving__amount .amount {
    color: inherit;
    font-weight: 700;
}

.b2g2-item-saving__percentage {
    display: inline-flex;
    align-items: center;
    min-height: 20px;
    padding: 3px 6px;
    border: 1px solid var(--b2g2-offer-border);
    border-radius: 999px;
    color: var(--b2g2-offer-accent-dark);
    background: var(--b2g2-offer-soft);
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    white-space: nowrap;
}

/* Woodmart mini-cart compact treatment */
.shopping-cart-widget-body .b2g2-item-saving,
.woocommerce-mini-cart .b2g2-item-saving {
    width: 100%;
    margin-top: 7px;
    padding-top: 7px;
}

.shopping-cart-widget-body .b2g2-item-saving__price strong,
.woocommerce-mini-cart .b2g2-item-saving__price strong {
    font-size: 12px;
}

/* ---------- Dynamic footer status ---------- */
.b2g2-status {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin: 10px 0;
    padding: 11px 12px;
    border: 1px solid var(--b2g2-offer-border);
    border-radius: 9px;
    background: var(--b2g2-offer-soft);
}

.b2g2-status__headline {
    color: var(--b2g2-offer-accent-dark);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
}

.b2g2-status__details {
    color: var(--b2g2-offer-muted);
    font-size: 10px;
    line-height: 1.35;
}

.b2g2-status__shipping {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-top: 3px;
    padding: 3px 7px;
    border-radius: 999px;
    color: #fff;
    background: var(--b2g2-offer-accent);
    font-size: 9px;
    font-weight: 700;
}

/* ---------- Totals ---------- */
.b2g2-subtotal,
.b2g2-order-total {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 2px;
}

.b2g2-subtotal del {
    color: #9aa29e;
    font-size: 11px;
    font-weight: 400;
}

.b2g2-subtotal strong {
    color: var(--b2g2-offer-text);
    font-size: 16px;
    font-weight: 700;
}

.b2g2-subtotal small,
.b2g2-order-total small {
    color: var(--b2g2-offer-accent);
    font-size: 10px;
    font-weight: 600;
}

/* ---------- Trust block below checkout ---------- */
.b2g2-trust {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #e7ebe9;
}

.b2g2-trust span {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 5px;
    color: var(--b2g2-offer-muted);
    font-size: 9px;
    font-weight: 500;
    line-height: 1.25;
    text-align: center;
}

.b2g2-trust i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    color: var(--b2g2-offer-accent);
    background: var(--b2g2-offer-soft);
    font-size: 11px;
    font-style: normal;
    font-weight: 700;
}

@media (max-width: 480px) {
    .b2g2-progress.is-compact {
        padding-inline: 15px;
    }

    .b2g2-progress__header strong {
        font-size: 12px;
    }

    .b2g2-item-saving {
        align-items: flex-start;
    }

    .b2g2-trust {
        gap: 5px;
    }

    .b2g2-trust span {
        font-size: 8px;
    }
}

/* ---------- Checkout progress placement ---------- */

.woocommerce-checkout .b2g2-checkout-progress {
    width: 100%;
    margin: 0 0 38px;
}

.woocommerce-checkout .b2g2-checkout-progress > .b2g2-progress {
    margin: 0;
}

@media (max-width: 767px) {
    .woocommerce-checkout .b2g2-checkout-progress {
        margin-bottom: 26px;
    }
}