/* BrandVoice Pack Commerce Preview — v0.4.1 */
.bvpcp-cart-page,
.bvpcp-cart-page * { box-sizing: border-box; }

/* Preview-page-only normalization. Never affects the live WooCommerce cart. */
body.bvpcp-preview-page .entry-content,
body.bvpcp-preview-page .page-content,
body.bvpcp-preview-page .site-main,
body.bvpcp-preview-page main.site-main,
body.bvpcp-preview-page #primary,
body.bvpcp-preview-page .site-content,
body.bvpcp-preview-page .wdt-content-wrapper,
body.bvpcp-preview-page .wdt-main-content-wrapper {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

body.bvpcp-preview-page .entry-content > .bvpcp-cart-page:first-child,
body.bvpcp-preview-page .page-content > .bvpcp-cart-page:first-child { margin-top: 0 !important; }

.bvpcp-cart-page {
    width: 100%;
    margin: 0;
    padding: 22px 18px 40px;
    color: #171717;
    background: #f7f7f7;
    font-family: inherit;
}

.bvpcp-cart-wrap { width: min(100%, 1100px); margin: 0 auto; }

.bvpcp-cart-header {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
    margin: 0 0 12px;
}

.bvpcp-eyebrow {
    margin: 0 0 3px;
    color: #9a9a9a;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .08em;
    line-height: 1.2;
    text-transform: uppercase;
}

.bvpcp-cart-header h1 {
    margin: 0;
    color: #111;
    font-size: clamp(26px, 2.6vw, 34px);
    font-weight: 750;
    letter-spacing: -.03em;
    line-height: 1.05;
}

.bvpcp-cart-count {
    flex: 0 0 auto;
    min-width: 66px;
    padding: 6px 11px;
    border: 1px solid #e2e2e2;
    border-radius: 999px;
    background: #fff;
    color: #222;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    text-align: center;
    white-space: nowrap;
}

.bvpcp-feedback { min-height: 0; margin: 0 0 10px; padding: 0; border-radius: 10px; font-size: 13px; }
.bvpcp-feedback:not(:empty) { padding: 9px 11px; }
.bvpcp-feedback.is-error:not(:empty) { background: #fff1f1; border: 1px solid #ffd5d5; }
.bvpcp-feedback.is-success:not(:empty) { background: #f3fbf4; border: 1px solid #d4efd7; }

.bvpcp-cart-items { display: grid; gap: 9px; }

.bvpcp-cart-card {
    display: grid;
    grid-template-columns: 82px minmax(0, 1fr);
    gap: 12px;
    min-width: 0;
    padding: 11px 12px;
    border: 1px solid #e6e6e6;
    border-radius: 13px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,.025);
}

.bvpcp-product-image {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 82px;
    height: 82px;
    overflow: hidden;
    border-radius: 10px;
    background: #f7f7f7;
}

.bvpcp-product-image a,
.bvpcp-product-image img { display: block; width: 100%; height: 100%; }
.bvpcp-product-image img { margin: 0 !important; object-fit: contain; }

.bvpcp-product-main,
.bvpcp-product-copy { min-width: 0; }

.bvpcp-product-heading,
.bvpcp-price-row,
.bvpcp-quantity-row { display: flex; justify-content: space-between; gap: 12px; }
.bvpcp-product-heading { align-items: flex-start; }

.bvpcp-product-name {
    display: inline-block;
    max-width: 100%;
    margin: 0;
    color: #151515 !important;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.28;
    text-decoration: none !important;
    overflow-wrap: anywhere;
}
.bvpcp-product-name:hover { text-decoration: underline !important; }

.bvpcp-variation {
    display: flex;
    flex-wrap: wrap;
    gap: 3px 7px;
    margin-top: 3px;
    color: #666;
    font-size: 10px;
    line-height: 1.3;
}
.bvpcp-variation .variation,
.bvpcp-variation .variation p,
.bvpcp-variation .variation dt,
.bvpcp-variation .variation dd { display: inline; float: none; margin: 0; }

.bvpcp-variation .bvpcp-item-data {
    display: inline;
    min-width: 0;
}
.bvpcp-variation .bvpcp-item-data > * {
    display: inline;
    margin: 0 !important;
}

.bvpcp-remove {
    display: inline-flex !important;
    flex: 0 0 28px;
    align-items: center;
    justify-content: center;
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #e4e4e4 !important;
    border-radius: 8px !important;
    background: #f7f7f7 !important;
    box-shadow: none !important;
    color: #5d5d5d !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    cursor: pointer;
}
.bvpcp-remove:hover,
.bvpcp-remove:focus { border-color: #d2d2d2 !important; background: #ededed !important; color: #111 !important; }

.bvpcp-price-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid #efefef;
}

.bvpcp-price-block { display: flex; min-width: 0; flex-direction: column; gap: 2px; }
.bvpcp-price-block--right { align-items: flex-end; text-align: right; }
.bvpcp-label {
    color: #7a7a7a;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .06em;
    line-height: 1.2;
    text-transform: uppercase;
}
.bvpcp-unit-price,
.bvpcp-line-total {
    max-width: 100%;
    color: #151515;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.25;
    white-space: nowrap;
}
.bvpcp-each { display: none; }

.bvpcp-quantity-row { align-items: center; justify-content: flex-start; margin-top: 8px; }
.bvpcp-stepper {
    display: inline-grid;
    grid-template-columns: 30px 38px 30px;
    align-items: center;
    overflow: hidden;
    border: 1px solid #dcdcdc;
    border-radius: 8px;
    background: #fff;
}
.bvpcp-stepper-btn,
.bvpcp-qty-input {
    height: 30px !important;
    min-height: 30px !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    color: #171717 !important;
    line-height: 30px !important;
}
.bvpcp-stepper-btn { min-width: 0 !important; margin: 0 !important; padding: 0 !important; font-size: 16px !important; font-weight: 600 !important; cursor: pointer; }
.bvpcp-stepper-btn:disabled { cursor: not-allowed; opacity: .3; }
.bvpcp-qty-input {
    width: 38px !important;
    margin: 0 !important;
    padding: 0 3px !important;
    border-right: 1px solid #ededed !important;
    border-left: 1px solid #ededed !important;
    text-align: center;
    appearance: textfield;
    -moz-appearance: textfield;
}
.bvpcp-qty-input::-webkit-outer-spin-button,
.bvpcp-qty-input::-webkit-inner-spin-button { margin: 0; appearance: none; -webkit-appearance: none; }

.bvpcp-cart-page.is-loading .bvpcp-cart-content { pointer-events: none; opacity: .62; }

.bvpcp-empty-cart { padding: 40px 22px; border: 1px solid #e8e8e8; border-radius: 14px; background: #fff; text-align: center; }
.bvpcp-empty-icon { margin-bottom: 10px; font-size: 34px; }
.bvpcp-empty-cart h2 { margin: 0 0 7px; font-size: 20px; }
.bvpcp-empty-cart p { max-width: 520px; margin: 0 auto 17px; color: #666; }
.bvpcp-shop-button { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; padding: 9px 16px; border-radius: 9px; background: #111; color: #fff !important; font-weight: 700; text-decoration: none !important; }


@media (max-width: 900px) {
    .bvpcp-cart-wrap { width: min(100%, 760px); }
}

/* Mobile cart list — BrandVoice Pack black/white controls, complete metadata. */
.bvpcp-mobile-list-header { display: none; }

@media (max-width: 640px) {
    body.bvpcp-preview-page .entry-content,
    body.bvpcp-preview-page .page-content,
    body.bvpcp-preview-page .site-main,
    body.bvpcp-preview-page main.site-main,
    body.bvpcp-preview-page #primary,
    body.bvpcp-preview-page .site-content,
    body.bvpcp-preview-page .wdt-content-wrapper,
    body.bvpcp-preview-page .wdt-main-content-wrapper {
        margin-top: 0 !important;
        padding-top: 0 !important;
    }

    .bvpcp-cart-page {
        position: relative;
        width: 100vw;
        max-width: 100vw;
        margin-right: calc(50% - 50vw);
        margin-left: calc(50% - 50vw);
        padding: 8px 8px calc(132px + env(safe-area-inset-bottom));
        background: #f4f5f6;
    }

    .bvpcp-cart-wrap {
        width: 100%;
        max-width: none;
    }

    .bvpcp-cart-header {
        align-items: center;
        gap: 8px;
        margin: 0 2px 9px;
    }

    .bvpcp-eyebrow { display: none; }

    .bvpcp-cart-header h1 {
        font-size: 22px;
        line-height: 1.1;
        letter-spacing: -.025em;
    }

    .bvpcp-cart-count {
        min-width: 56px;
        padding: 5px 8px;
        font-size: 9.5px;
    }

    .bvpcp-mobile-list-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 11px 12px 8px;
        border: 1px solid #e8e8e8;
        border-bottom: 0;
        border-radius: 14px 14px 0 0;
        background: #fff;
    }

    .bvpcp-mobile-list-header > div {
        display: flex;
        flex-direction: column;
        gap: 1px;
    }

    .bvpcp-mobile-list-header strong {
        color: #1c1c1c;
        font-size: 13px;
        font-weight: 750;
        line-height: 1.25;
    }

    .bvpcp-mobile-list-header span {
        color: #8a8a8a;
        font-size: 9px;
        line-height: 1.3;
    }

    .bvpcp-cart-items {
        display: block;
        overflow: hidden;
        border: 1px solid #e8e8e8;
        border-top: 0;
        border-radius: 0 0 14px 14px;
        background: #fff;
    }

    .bvpcp-cart-card {
        position: relative;
        display: grid;
        grid-template-columns: 72px minmax(0, 1fr);
        gap: 0 10px;
        min-height: 96px;
        padding: 10px 11px;
        border: 0;
        border-radius: 0;
        background: #fff;
        box-shadow: none;
        overflow: visible;
    }

    .bvpcp-cart-card + .bvpcp-cart-card::before {
        content: "";
        position: absolute;
        top: 0;
        right: 11px;
        left: 93px;
        height: 1px;
        background: #eeeeee;
    }

    .bvpcp-product-image {
        grid-column: 1;
        align-self: start;
        width: 72px;
        height: 72px;
        margin-top: 1px;
        border-radius: 9px;
        background: #f7f7f7;
    }

    .bvpcp-product-main {
        grid-column: 2;
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "heading quantity"
            "variation variation"
            "prices prices";
        column-gap: 9px;
        row-gap: 5px;
        min-width: 0;
        align-content: start;
        padding-top: 1px;
    }

    .bvpcp-product-heading {
        grid-area: heading;
        display: block;
        min-width: 0;
        padding: 0;
    }

    .bvpcp-product-copy { min-width: 0; }

    .bvpcp-product-name {
        display: block;
        overflow: visible;
        color: #252525 !important;
        font-size: 12.5px;
        font-weight: 700;
        line-height: 1.28;
        white-space: normal;
        word-break: normal;
        overflow-wrap: anywhere;
    }

    /* Complete WooCommerce variation/custom item details, no clamping. */
    .bvpcp-variation {
        grid-area: variation;
        display: block;
        max-height: none;
        margin: 0;
        padding: 0;
        overflow: visible;
        color: #6f6f6f;
        font-size: 8.75px;
        line-height: 1.32;
    }

    .bvpcp-variation dl.variation {
        display: grid;
        grid-template-columns: max-content minmax(0, 1fr);
        column-gap: 4px;
        row-gap: 1px;
        margin: 0;
        padding: 0;
    }

    .bvpcp-variation dl.variation dt,
    .bvpcp-variation dl.variation dd {
        display: block;
        float: none;
        min-width: 0;
        margin: 0;
        padding: 0;
        color: inherit;
        font-size: inherit;
        line-height: inherit;
    }

    .bvpcp-variation dl.variation dt {
        font-weight: 650;
        white-space: nowrap;
    }

    .bvpcp-variation dl.variation dd {
        overflow-wrap: anywhere;
    }

    .bvpcp-variation dl.variation dd p {
        display: inline;
        margin: 0;
        padding: 0;
    }

    .bvpcp-price-row {
        grid-area: prices;
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
        gap: 10px;
        width: 100%;
        min-width: 0;
        margin: 1px 0 0;
        padding: 0;
        border: 0;
    }

    .bvpcp-price-block {
        min-width: 0;
        margin: 0;
        padding: 0;
    }

    .bvpcp-price-block--right {
        min-width: 70px;
        align-items: flex-end;
        text-align: right;
    }

    .bvpcp-label { display: none; }

    .bvpcp-unit-price,
    .bvpcp-unit-price .woocommerce-Price-amount {
        color: #626262;
        font-size: 10.25px !important;
        font-weight: 650 !important;
        line-height: 1.2;
        letter-spacing: -.01em;
        white-space: nowrap;
    }

    .bvpcp-each {
        display: inline;
        margin-left: 2px;
        color: #969696;
        font-size: 7.5px !important;
        font-weight: 500;
    }

    .bvpcp-line-total,
    .bvpcp-line-total .woocommerce-Price-amount {
        color: #1f1f1f;
        font-size: 11.5px !important;
        font-weight: 750 !important;
        line-height: 1.2;
        letter-spacing: -.015em;
        white-space: nowrap;
    }

    /* BrandVoice Pack quantity control: black/white, no Blinkit green. */
    .bvpcp-quantity-row {
        grid-area: quantity;
        align-self: start;
        justify-self: end;
        display: block !important;
        width: auto;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .bvpcp-stepper {
        display: inline-grid !important;
        grid-template-columns: 24px 28px 24px !important;
        width: 76px !important;
        max-width: 76px !important;
        overflow: hidden;
        border: 1px solid #171717 !important;
        border-radius: 7px !important;
        background: #fff !important;
        box-shadow: none !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .bvpcp-stepper-btn,
    .bvpcp-qty-input {
        display: block !important;
        width: auto !important;
        min-width: 0 !important;
        height: 26px !important;
        min-height: 26px !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        border-radius: 0 !important;
        box-shadow: none !important;
        line-height: 26px !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    .bvpcp-stepper-btn {
        background: #171717 !important;
        color: #fff !important;
        font-size: 13px !important;
        font-weight: 700 !important;
        cursor: pointer;
    }

    .bvpcp-stepper-btn:hover,
    .bvpcp-stepper-btn:focus {
        background: #000 !important;
        color: #fff !important;
    }

    .bvpcp-stepper-btn:disabled { opacity: .45 !important; }

    .bvpcp-qty-input {
        width: 28px !important;
        background: #fff !important;
        color: #171717 !important;
        font-size: 11px !important;
        font-weight: 750 !important;
        text-align: center;
        -webkit-text-fill-color: #171717 !important;
        appearance: textfield;
        -moz-appearance: textfield;
    }

    .bvpcp-qty-input::-webkit-outer-spin-button,
    .bvpcp-qty-input::-webkit-inner-spin-button {
        margin: 0;
        appearance: none;
        -webkit-appearance: none;
    }

    /* Mobile removes only through minus at quantity 1. */
    .bvpcp-remove { display: none !important; }

    .bvpcp-feedback:not(:empty) {
        margin-bottom: 8px;
        padding: 8px 10px;
        font-size: 12px;
    }

    body.bvpcp-preview-page a[href*="wa.me"],
    body.bvpcp-preview-page a[href*="whatsapp"],
    body.bvpcp-preview-page .joinchat,
    body.bvpcp-preview-page .ht-ctc-chat,
    body.bvpcp-preview-page .qlwapp,
    body.bvpcp-preview-page #qlwapp,
    body.bvpcp-preview-page .wa__btn_popup {
        bottom: 100px !important;
    }
}

@media (max-width: 370px) {
    .bvpcp-cart-page {
        padding-right: 7px;
        padding-left: 7px;
    }

    .bvpcp-cart-card {
        grid-template-columns: 68px minmax(0, 1fr);
        gap: 0 8px;
        padding-right: 9px;
        padding-left: 9px;
    }

    .bvpcp-cart-card + .bvpcp-cart-card::before {
        right: 9px;
        left: 85px;
    }

    .bvpcp-product-image {
        width: 68px;
        height: 68px;
    }

    .bvpcp-product-main { column-gap: 7px; }
    .bvpcp-product-name { font-size: 12px; }
    .bvpcp-variation { font-size: 8.25px; }

    .bvpcp-stepper {
        grid-template-columns: 22px 26px 22px !important;
        width: 70px !important;
        max-width: 70px !important;
    }

    .bvpcp-qty-input { width: 26px !important; }
    .bvpcp-unit-price,
    .bvpcp-unit-price .woocommerce-Price-amount { font-size: 9.75px !important; }
    .bvpcp-line-total,
    .bvpcp-line-total .woocommerce-Price-amount { font-size: 11px !important; }
}

/* v0.2.9 — compact uploaded artwork presentation */
.bvpcp-variation .bvpcp-design-link {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    margin: 1px 0 !important;
    padding: 3px 8px !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 6px !important;
    background: #fff !important;
    color: #151515 !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    white-space: nowrap;
}

.bvpcp-variation .bvpcp-design-link:hover,
.bvpcp-variation .bvpcp-design-link:focus {
    border-color: #151515 !important;
    background: #151515 !important;
    color: #fff !important;
    text-decoration: none !important;
}

@media (max-width: 767px) {
    .bvpcp-variation .bvpcp-design-link {
        min-height: 22px;
        padding: 2px 7px !important;
        font-size: 8.75px !important;
        border-radius: 5px !important;
    }
}


/* v0.2.10 — desktop information hierarchy aligned with mobile */
@media (min-width: 641px) {
    .bvpcp-cart-card {
        grid-template-columns: 82px minmax(0, 1fr);
        gap: 12px 14px;
        padding: 12px 14px;
    }

    .bvpcp-product-main {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        grid-template-areas:
            "heading quantity"
            "variation variation"
            "prices prices";
        column-gap: 18px;
        row-gap: 6px;
        min-width: 0;
        align-content: start;
    }

    .bvpcp-product-heading {
        grid-area: heading;
        display: block;
        min-width: 0;
    }

    .bvpcp-product-name {
        font-size: 14px;
        line-height: 1.3;
    }

    .bvpcp-quantity-row {
        grid-area: quantity;
        align-self: start;
        justify-self: end;
        display: block;
        margin: 0;
    }

    .bvpcp-stepper {
        grid-template-columns: 28px 34px 28px;
        border-color: #d8d8d8;
        border-radius: 7px;
    }

    .bvpcp-stepper-btn,
    .bvpcp-qty-input {
        height: 28px !important;
        min-height: 28px !important;
        line-height: 28px !important;
    }

    .bvpcp-qty-input {
        width: 34px !important;
        font-size: 12px;
        font-weight: 700;
    }

    .bvpcp-stepper-btn {
        font-size: 14px !important;
    }

    .bvpcp-variation {
        grid-area: variation;
        display: block;
        margin: 0;
        color: #626262;
        font-size: 10.5px;
        line-height: 1.35;
    }

    .bvpcp-variation dl.variation {
        display: grid;
        grid-template-columns: max-content minmax(0, 1fr);
        column-gap: 8px;
        row-gap: 3px;
        margin: 0;
        padding: 0;
    }

    .bvpcp-variation dl.variation dt,
    .bvpcp-variation dl.variation dd {
        display: block;
        float: none;
        min-width: 0;
        margin: 0;
        padding: 0;
        font-size: inherit;
        line-height: inherit;
    }

    .bvpcp-variation dl.variation dt {
        color: #4c4c4c;
        font-weight: 700;
        white-space: nowrap;
    }

    .bvpcp-variation dl.variation dd {
        color: #6f6f6f;
        overflow-wrap: anywhere;
    }

    .bvpcp-variation dl.variation dd p {
        display: inline;
        margin: 0;
        padding: 0;
    }

    .bvpcp-price-row {
        grid-area: prices;
        margin-top: 2px;
        padding-top: 7px;
    }

    .bvpcp-label {
        font-size: 7.5px;
    }

    .bvpcp-unit-price,
    .bvpcp-line-total {
        font-size: 12.5px;
    }

    .bvpcp-variation .bvpcp-design-link {
        min-height: 22px;
        padding: 2px 7px !important;
        font-size: 9.5px !important;
        vertical-align: middle;
    }
}

/* v0.2.11 — fast quantity updates without full cart/page redraw */
.bvpcp-cart-page.is-loading .bvpcp-cart-content {
    pointer-events: auto;
    opacity: 1;
}

.bvpcp-cart-card.is-updating {
    position: relative;
}

.bvpcp-cart-card.is-updating .bvpcp-line-total {
    opacity: .58;
}

.bvpcp-cart-card.is-updating .bvpcp-stepper {
    opacity: .82;
}

.bvpcp-cart-card.is-removing {
    opacity: .55;
    pointer-events: none;
}

/* v0.3.0 — Bill Details + responsive checkout CTA */
.bvpcp-cart-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 14px;
    align-items: start;
}

.bvpcp-items-column,
.bvpcp-order-summary-slot { min-width: 0; }

.bvpcp-order-summary {
    position: sticky;
    top: 18px;
    padding: 19px 18px;
    border: 1px solid #e4e4e4;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,.025);
}

.bvpcp-summary-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
    padding-bottom: 11px;
    border-bottom: 1px solid #ededed;
}

.bvpcp-summary-kicker {
    display: block;
    margin-bottom: 2px;
    color: #8b8b8b;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: .07em;
    line-height: 1.2;
    text-transform: uppercase;
}

.bvpcp-summary-heading h2 {
    margin: 0;
    color: #151515;
    font-size: 19px;
    font-weight: 750;
    letter-spacing: -.02em;
    line-height: 1.2;
}

.bvpcp-summary-rows {
    display: grid;
    gap: 11px;
    padding: 14px 0;
}

.bvpcp-summary-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: start;
    gap: 12px;
    color: #5d5d5d;
    font-size: 12px;
    line-height: 1.35;
}

.bvpcp-summary-row strong {
    color: #1a1a1a;
    font-size: 11px;
    font-weight: 700;
    text-align: right;
    white-space: nowrap;
}

.bvpcp-summary-row .bvpcp-summary-discount { color: #3f6d43; }
.bvpcp-summary-muted {
    display: inline-block;
    max-width: 125px;
    color: #777;
    font-size: 9.5px;
    font-weight: 600;
    line-height: 1.25;
    white-space: normal;
}

.bvpcp-summary-total {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 12px;
    padding-top: 12px;
    border-top: 1px solid #dedede;
}

.bvpcp-summary-total > span {
    color: #171717;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.2;
}

.bvpcp-summary-total small {
    display: block;
    margin-top: 2px;
    color: #8a8a8a;
    font-size: 8px;
    font-weight: 500;
}

.bvpcp-summary-total > strong {
    color: #111;
    font-size: 18px;
    font-weight: 800;
    letter-spacing: -.01em;
    white-space: nowrap;
}

.bvpcp-summary-note {
    margin: 9px 0 0;
    color: #7b7b7b;
    font-size: 9px;
    line-height: 1.35;
}

.bvpcp-desktop-checkout-button {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    width: 100%;
    min-height: 46px;
    margin-top: 15px;
    padding: 11px 14px;
    border: 1px solid #111;
    border-radius: 9px;
    background: #111;
    color: #fff !important;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.2;
    text-decoration: none !important;
}

.bvpcp-desktop-checkout-button:hover,
.bvpcp-desktop-checkout-button:focus {
    background: #2a2a2a;
    border-color: #2a2a2a;
    color: #fff !important;
    text-decoration: none !important;
}

/* Keep theme/WooCommerce typography from inflating summary monetary values. */
.bvpcp-order-summary .bvpcp-summary-row .woocommerce-Price-amount {
    font-size: 12px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
}
.bvpcp-order-summary .bvpcp-summary-total .woocommerce-Price-amount {
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
}

.bvpcp-mobile-checkout-slot { display: none; }

@media (max-width: 900px) and (min-width: 641px) {
    .bvpcp-cart-layout {
        grid-template-columns: minmax(0, 1fr) 260px;
        gap: 12px;
    }
}

@media (max-width: 640px) {
    .bvpcp-cart-layout { display: block; }

    .bvpcp-order-summary-slot { margin-top: 10px; }

    .bvpcp-order-summary {
        position: static;
        padding: 12px;
        border-radius: 13px;
        box-shadow: none;
    }

    .bvpcp-summary-kicker { display: none; }
    .bvpcp-summary-heading { padding-bottom: 8px; }
    .bvpcp-summary-heading h2 {
        font-size: 13.5px;
        line-height: 1.2;
    }
    .bvpcp-summary-rows { gap: 7px; padding: 9px 0; }
    .bvpcp-summary-row {
        font-size: 9.5px;
        line-height: 1.3;
    }
    .bvpcp-summary-row strong,
    .bvpcp-summary-row strong .woocommerce-Price-amount,
    .bvpcp-summary-row .woocommerce-Price-amount {
        font-size: 10.5px !important;
        line-height: 1.2 !important;
        font-weight: 700 !important;
    }
    .bvpcp-summary-muted {
        max-width: 135px;
        font-size: 8.5px;
    }
    .bvpcp-summary-total {
        gap: 8px;
        padding-top: 9px;
    }
    .bvpcp-summary-total > span { font-size: 10.5px; }
    .bvpcp-summary-total > strong,
    .bvpcp-summary-total > strong .woocommerce-Price-amount {
        font-size: 13.5px !important;
        line-height: 1.15 !important;
        font-weight: 800 !important;
    }
    .bvpcp-summary-total small { font-size: 7px; }
    .bvpcp-summary-note { font-size: 7.75px; }
    .bvpcp-desktop-checkout-button { display: none; }

    .bvpcp-mobile-checkout-slot { display: block; }

    .bvpcp-mobile-checkout-bar {
        position: fixed;
        z-index: 9990;
        right: 8px;
        bottom: calc(78px + env(safe-area-inset-bottom));
        left: 8px;
        display: grid;
        grid-template-columns: auto minmax(0, 1fr);
        align-items: center;
        gap: 10px;
        min-height: 58px;
        padding: 7px 8px 7px 12px;
        border: 1px solid #dedede;
        border-radius: 13px;
        background: rgba(255,255,255,.98);
        box-shadow: 0 -2px 14px rgba(0,0,0,.08);
        backdrop-filter: blur(8px);
        -webkit-backdrop-filter: blur(8px);
    }

    .bvpcp-mobile-total {
        min-width: 82px;
        display: flex;
        flex-direction: column;
        gap: 1px;
    }

    .bvpcp-mobile-total strong,
    .bvpcp-mobile-total strong .woocommerce-Price-amount {
        color: #111;
        font-size: 12.5px !important;
        font-weight: 800 !important;
        line-height: 1.15 !important;
        white-space: nowrap;
    }

    .bvpcp-mobile-total span {
        color: #858585;
        font-size: 7.5px;
        font-weight: 700;
        letter-spacing: .06em;
        line-height: 1.2;
    }

    .bvpcp-mobile-checkout-button {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 8px;
        min-width: 0;
        min-height: 42px;
        padding: 9px 12px;
        border-radius: 9px;
        background: #111;
        color: #fff !important;
        font-size: 11px;
        font-weight: 750;
        line-height: 1.2;
        text-decoration: none !important;
    }

    .bvpcp-mobile-checkout-button:hover,
    .bvpcp-mobile-checkout-button:focus {
        background: #222;
        color: #fff !important;
        text-decoration: none !important;
    }

    /* Reserve space for both BVP footer and the new sticky checkout bar. */
    .bvpcp-cart-page {
        padding-bottom: calc(205px + env(safe-area-inset-bottom));
    }

    /* Keep common WhatsApp floaters above checkout CTA on this preview only. */
    body.bvpcp-preview-page a[href*="wa.me"],
    body.bvpcp-preview-page a[href*="api.whatsapp.com"],
    body.bvpcp-preview-page a[href*="whatsapp"],
    body.bvpcp-preview-page [class*="whatsapp"]:not(.bvpcp-mobile-checkout-bar),
    body.bvpcp-preview-page [id*="whatsapp"],
    body.bvpcp-preview-page .joinchat,
    body.bvpcp-preview-page .ht-ctc-chat,
    body.bvpcp-preview-page .ht-ctc-chat-container,
    body.bvpcp-preview-page .qlwapp,
    body.bvpcp-preview-page #qlwapp,
    body.bvpcp-preview-page .wa__btn_popup {
        bottom: calc(158px + env(safe-area-inset-bottom)) !important;
        right: 12px !important;
    }
}

/* v0.4.0 — Coupons & Offers */
.bvpcp-order-summary-slot {
    position: sticky;
    top: 18px;
    display: grid;
    gap: 10px;
}

.bvpcp-order-summary {
    position: static;
    top: auto;
}

.bvpcp-coupon-card {
    padding: 14px;
    border: 1px solid #e4e4e4;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,.025);
}

.bvpcp-coupon-card-copy {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
}

.bvpcp-coupon-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: #111;
    color: #fff;
    font-size: 14px;
    font-weight: 800;
    line-height: 1;
}

.bvpcp-coupon-card-copy strong {
    display: block;
    margin: 0;
    color: #151515;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.2;
}

.bvpcp-coupon-card-copy span:not(.bvpcp-coupon-icon) {
    display: block;
    margin-top: 2px;
    color: #777;
    font-size: 9.5px;
    line-height: 1.3;
}

.bvpcp-coupon-open {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    min-height: 36px !important;
    margin: 11px 0 0 !important;
    padding: 8px 10px !important;
    border: 1px solid #d9d9d9 !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: none !important;
    color: #151515 !important;
    font-size: 10.5px !important;
    font-weight: 700 !important;
    line-height: 1.2 !important;
    cursor: pointer;
}

.bvpcp-coupon-open:hover,
.bvpcp-coupon-open:focus {
    border-color: #111 !important;
    background: #fafafa !important;
}

.bvpcp-coupon-open > span {
    font-size: 18px;
    font-weight: 400;
    line-height: 1;
}

.bvpcp-applied-coupons {
    display: grid;
    gap: 6px;
    margin-top: 8px;
}

.bvpcp-applied-coupon {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 7px 8px;
    border-radius: 8px;
    background: #f5f7f5;
}

.bvpcp-applied-coupon > span {
    min-width: 0;
}

.bvpcp-applied-coupon small {
    display: block;
    color: #66806a;
    font-size: 7px;
    font-weight: 700;
    letter-spacing: .05em;
    line-height: 1.2;
    text-transform: uppercase;
}

.bvpcp-applied-coupon strong {
    display: block;
    margin-top: 1px;
    color: #1d3b22;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.bvpcp-applied-coupon button,
.bvpcp-offer-action button {
    min-height: 26px !important;
    margin: 0 !important;
    padding: 4px 8px !important;
    border: 1px solid #d6d6d6 !important;
    border-radius: 7px !important;
    background: #fff !important;
    box-shadow: none !important;
    color: #171717 !important;
    font-size: 9px !important;
    font-weight: 700 !important;
    line-height: 1.1 !important;
    cursor: pointer;
}

body.bvpcp-coupon-drawer-open {
    overflow: hidden !important;
}

.bvpcp-coupon-drawer {
    position: fixed;
    z-index: 10050;
    inset: 0;
    pointer-events: none;
    visibility: hidden;
}

.bvpcp-coupon-drawer.is-open {
    pointer-events: auto;
    visibility: visible;
}

.bvpcp-coupon-backdrop {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(0,0,0,.38) !important;
    opacity: 0;
    cursor: default;
    transition: opacity .18s ease;
}

.bvpcp-coupon-drawer.is-open .bvpcp-coupon-backdrop {
    opacity: 1;
}

.bvpcp-coupon-panel {
    position: absolute;
    top: 0;
    right: 0;
    display: flex;
    flex-direction: column;
    width: min(430px, 92vw);
    height: 100%;
    max-height: 100dvh;
    padding: 18px;
    overflow: auto;
    background: #fff;
    box-shadow: -8px 0 28px rgba(0,0,0,.14);
    transform: translateX(102%);
    transition: transform .2s ease;
}

.bvpcp-coupon-drawer.is-open .bvpcp-coupon-panel {
    transform: translateX(0);
}

.bvpcp-coupon-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding-bottom: 13px;
    border-bottom: 1px solid #e8e8e8;
}

.bvpcp-coupon-panel-head span {
    display: block;
    margin-bottom: 2px;
    color: #888;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .08em;
    line-height: 1.2;
}

.bvpcp-coupon-panel-head h3 {
    margin: 0;
    color: #121212;
    font-size: 20px;
    font-weight: 800;
    letter-spacing: -.02em;
    line-height: 1.15;
}

.bvpcp-coupon-close {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    width: 30px !important;
    min-width: 30px !important;
    height: 30px !important;
    min-height: 30px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #e0e0e0 !important;
    border-radius: 8px !important;
    background: #f7f7f7 !important;
    box-shadow: none !important;
    color: #333 !important;
    font-size: 18px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
}

.bvpcp-coupon-form {
    margin: 14px 0 0;
}

.bvpcp-coupon-input-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px;
}

.bvpcp-coupon-input {
    width: 100% !important;
    min-width: 0;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 11px !important;
    border: 1px solid #d6d6d6 !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: none !important;
    color: #171717 !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
    text-transform: uppercase;
}

.bvpcp-coupon-input:focus {
    border-color: #111 !important;
    outline: none !important;
}

.bvpcp-coupon-apply {
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 15px !important;
    border: 1px solid #111 !important;
    border-radius: 8px !important;
    background: #111 !important;
    box-shadow: none !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 750 !important;
    line-height: 1.2 !important;
}

.bvpcp-coupon-status {
    min-height: 0;
    margin-top: 7px;
    color: #666;
    font-size: 10px;
    line-height: 1.35;
}

.bvpcp-coupon-status.is-error { color: #9b2828; }
.bvpcp-coupon-status.is-success { color: #326a3a; }

.bvpcp-offers-list {
    margin-top: 17px;
}

.bvpcp-offers-list h4 {
    margin: 0 0 8px;
    color: #222;
    font-size: 12px;
    font-weight: 750;
    line-height: 1.25;
}

.bvpcp-offer {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
    align-items: center;
    padding: 12px 0;
    border-top: 1px solid #efefef;
}

.bvpcp-offer:first-of-type { border-top: 0; }
.bvpcp-offer-copy { min-width: 0; }

.bvpcp-offer-code-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
}

.bvpcp-offer-code-row > strong {
    display: inline-block;
    padding: 4px 7px;
    border: 1px dashed #bcbcbc;
    border-radius: 6px;
    background: #fafafa;
    color: #171717;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .03em;
    line-height: 1.1;
    overflow-wrap: anywhere;
}

.bvpcp-offer-state {
    color: #387343;
    font-size: 8.5px;
    font-weight: 750;
}

.bvpcp-offer-copy p {
    margin: 5px 0 0;
    color: #444;
    font-size: 10px;
    line-height: 1.35;
}

.bvpcp-offer-copy small {
    display: block;
    margin-top: 4px;
    color: #8b6565;
    font-size: 8.5px;
    line-height: 1.35;
}

.bvpcp-offer-action > span {
    display: inline-block;
    max-width: 74px;
    color: #999;
    font-size: 8.5px;
    font-weight: 650;
    line-height: 1.25;
    text-align: right;
}

.bvpcp-offer.is-ineligible { opacity: .72; }
.bvpcp-offer.is-applied .bvpcp-offer-code-row > strong {
    border-color: #a9c9af;
    background: #f2f8f3;
}

.bvpcp-coupon-drawer.is-working .bvpcp-coupon-panel {
    cursor: progress;
}
.bvpcp-coupon-drawer.is-working button { opacity: .65; }

@media (max-width: 640px) {
    .bvpcp-order-summary-slot {
        position: static;
        top: auto;
        gap: 8px;
        margin-top: 10px;
    }

    .bvpcp-coupon-card {
        padding: 10px 11px;
        border-radius: 13px;
        box-shadow: none;
    }

    .bvpcp-coupon-card-copy {
        grid-template-columns: 28px minmax(0, 1fr);
        gap: 8px;
    }

    .bvpcp-coupon-icon {
        width: 28px;
        height: 28px;
        border-radius: 8px;
        font-size: 12px;
    }

    .bvpcp-coupon-card-copy strong { font-size: 11px; }
    .bvpcp-coupon-card-copy span:not(.bvpcp-coupon-icon) { font-size: 8px; }

    .bvpcp-coupon-open {
        min-height: 32px !important;
        margin-top: 8px !important;
        padding: 6px 8px !important;
        font-size: 9.5px !important;
    }

    .bvpcp-applied-coupon { padding: 6px 7px; }
    .bvpcp-applied-coupon strong { font-size: 9px; }
    .bvpcp-applied-coupon button { font-size: 8px !important; }

    .bvpcp-coupon-panel {
        top: auto;
        bottom: 0;
        width: 100%;
        height: auto;
        max-height: min(78dvh, 680px);
        padding: 14px 13px calc(14px + env(safe-area-inset-bottom));
        border-radius: 18px 18px 0 0;
        box-shadow: 0 -8px 28px rgba(0,0,0,.15);
        transform: translateY(102%);
    }

    .bvpcp-coupon-drawer.is-open .bvpcp-coupon-panel {
        transform: translateY(0);
    }

    .bvpcp-coupon-panel-head { padding-bottom: 10px; }
    .bvpcp-coupon-panel-head h3 { font-size: 16px; }
    .bvpcp-coupon-panel-head span { font-size: 7px; }
    .bvpcp-coupon-close {
        width: 28px !important;
        min-width: 28px !important;
        height: 28px !important;
        min-height: 28px !important;
        font-size: 16px !important;
    }

    .bvpcp-coupon-form { margin-top: 11px; }
    .bvpcp-coupon-input { height: 36px !important; min-height: 36px !important; font-size: 11px !important; }
    .bvpcp-coupon-apply { min-height: 36px !important; padding: 7px 12px !important; font-size: 10px !important; }
    .bvpcp-coupon-status { font-size: 9px; }

    .bvpcp-offers-list { margin-top: 12px; }
    .bvpcp-offers-list h4 { font-size: 10.5px; }
    .bvpcp-offer { gap: 8px; padding: 10px 0; }
    .bvpcp-offer-code-row > strong { font-size: 9px; }
    .bvpcp-offer-copy p { font-size: 9px; }
    .bvpcp-offer-copy small { font-size: 8px; }
    .bvpcp-offer-action button { font-size: 8.5px !important; }
    .bvpcp-offer-action > span { font-size: 8px; }
}

.bvpcp-coupon-loading,
.bvpcp-no-offers {
    padding: 22px 8px;
    color: #777;
    font-size: 10px;
    line-height: 1.4;
    text-align: center;
}

.bvpcp-coupon-loading.is-error { color: #9b2828; }

.bvpcp-no-offers strong {
    display: block;
    margin-bottom: 3px;
    color: #333;
    font-size: 11px;
}

.bvpcp-no-offers span {
    display: block;
}


/* v0.4.1 — Coupon drawer stacking + mobile footer clearance.
 * The theme header / Campaign Tracking CTA and BVP fixed mobile navigation
 * use unusually high z-index values. Keep the coupon experience as a true
 * modal above all site chrome while it is open.
 */
.bvpcp-coupon-drawer {
    z-index: 2147483647 !important;
    isolation: isolate;
}

.bvpcp-coupon-backdrop {
    z-index: 0 !important;
}

.bvpcp-coupon-panel {
    z-index: 1 !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

/* The preview checkout CTA must never sit over the coupon modal. */
body.bvpcp-coupon-drawer-open .bvpcp-mobile-checkout-bar {
    visibility: hidden !important;
    pointer-events: none !important;
}

/* Interakt is intentionally hidden only while the coupon modal is open so it
 * cannot cover an offer / action. The user's normal Interakt positioning
 * controller resumes immediately when the drawer closes.
 */
body.bvpcp-coupon-drawer-open iframe[src*="interakt"],
body.bvpcp-coupon-drawer-open iframe[src*="kiwi"],
body.bvpcp-coupon-drawer-open [id*="kiwi"],
body.bvpcp-coupon-drawer-open [class*="kiwi"],
body.bvpcp-coupon-drawer-open [id*="interakt"],
body.bvpcp-coupon-drawer-open [class*="interakt"] {
    visibility: hidden !important;
    pointer-events: none !important;
}

@media (max-width: 640px) {
    /* Extra scroll tail guarantees the final offer / error reason can be
     * scrolled completely into view on phones with fixed navigation and
     * browser safe-area controls. */
    .bvpcp-coupon-panel {
        padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
        scroll-padding-bottom: calc(92px + env(safe-area-inset-bottom, 0px));
    }

    .bvpcp-offers-list {
        padding-bottom: 8px;
    }
}

/* =============================================================
 * v0.5.0 — You might also like / cross-sells
 * BrandVoice Pack black/white treatment; no Blinkit green.
 * =========================================================== */
.bvpcp-cross-sells-slot:empty {
    display: none;
}

.bvpcp-cross-sells {
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #e8e8e8;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

.bvpcp-cross-sells-head {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}

.bvpcp-cross-sells-head span {
    display: block;
    margin-bottom: 2px;
    color: #8a8a8a;
    font-size: 7.5px;
    font-weight: 800;
    letter-spacing: .09em;
    line-height: 1.2;
}

.bvpcp-cross-sells-head h2 {
    margin: 0 !important;
    color: #171717 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
}

.bvpcp-cross-sells-track {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
}

.bvpcp-cross-sell-card {
    min-width: 0;
    padding: 7px;
    border: 1px solid #ececec;
    border-radius: 11px;
    background: #fff;
}

.bvpcp-cross-sell-image {
    display: block;
    width: 100%;
    aspect-ratio: 1 / 1;
    overflow: hidden;
    border-radius: 8px;
    background: #f7f7f7;
}

.bvpcp-cross-sell-image img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    object-fit: contain !important;
}

.bvpcp-cross-sell-body {
    min-width: 0;
    padding-top: 7px;
}

.bvpcp-cross-sell-name {
    display: -webkit-box;
    min-height: 28px;
    overflow: hidden;
    color: #1b1b1b !important;
    font-size: 10px !important;
    font-weight: 750 !important;
    line-height: 1.35 !important;
    text-decoration: none !important;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.bvpcp-cross-sell-price {
    min-height: 18px;
    margin-top: 5px;
    color: #1a1a1a;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
}

.bvpcp-cross-sell-price .woocommerce-Price-amount,
.bvpcp-cross-sell-price bdi {
    color: inherit !important;
    font-size: inherit !important;
    font-weight: inherit !important;
    line-height: inherit !important;
}

.bvpcp-cross-sell-price del {
    margin-right: 3px;
    color: #999;
    font-size: 8.5px;
    font-weight: 500;
}

.bvpcp-cross-sell-price ins {
    text-decoration: none;
}

.bvpcp-cross-sell-add,
.bvpcp-cross-sell-link {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 29px !important;
    margin-top: 7px !important;
    padding: 5px 7px !important;
    border: 1px solid #111 !important;
    border-radius: 7px !important;
    background: #111 !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 8.5px !important;
    font-weight: 800 !important;
    letter-spacing: .04em !important;
    line-height: 1.1 !important;
    text-align: center !important;
    text-decoration: none !important;
    text-transform: uppercase !important;
    cursor: pointer;
}

.bvpcp-cross-sell-add:hover,
.bvpcp-cross-sell-add:focus,
.bvpcp-cross-sell-link:hover,
.bvpcp-cross-sell-link:focus {
    background: #2a2a2a !important;
    color: #fff !important;
}

.bvpcp-cross-sell-add.is-working,
.bvpcp-cross-sell-add:disabled {
    opacity: .6 !important;
    cursor: wait !important;
}

@media (max-width: 640px) {
    .bvpcp-cross-sells {
        margin-top: 8px;
        padding: 10px 0 10px 10px;
        border-radius: 13px;
    }

    .bvpcp-cross-sells-head {
        margin: 0 10px 8px 0;
    }

    .bvpcp-cross-sells-head span {
        font-size: 6.5px;
    }

    .bvpcp-cross-sells-head h2 {
        font-size: 13px !important;
    }

    .bvpcp-cross-sells-track {
        display: flex;
        gap: 7px;
        overflow-x: auto;
        padding: 0 10px 3px 0;
        scroll-snap-type: x proximity;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .bvpcp-cross-sells-track::-webkit-scrollbar {
        display: none;
    }

    .bvpcp-cross-sell-card {
        flex: 0 0 126px;
        padding: 6px;
        border-radius: 10px;
        scroll-snap-align: start;
    }

    .bvpcp-cross-sell-image {
        border-radius: 7px;
    }

    .bvpcp-cross-sell-body {
        padding-top: 6px;
    }

    .bvpcp-cross-sell-name {
        min-height: 25px;
        font-size: 9px !important;
        line-height: 1.3 !important;
    }

    .bvpcp-cross-sell-price {
        min-height: 16px;
        margin-top: 4px;
        font-size: 9.5px;
    }

    .bvpcp-cross-sell-price del {
        font-size: 7.5px;
    }

    .bvpcp-cross-sell-add,
    .bvpcp-cross-sell-link {
        min-height: 27px !important;
        margin-top: 6px !important;
        font-size: 8px !important;
    }
}


/* ===========================================================
 * v0.5.1 — Desktop cross-sell footer clearance
 * Keep all recommendation rows in normal document flow so the
 * theme footer can never cover the second row/action buttons.
 * Mobile horizontal recommendations are intentionally unchanged.
 * =========================================================== */
@media (min-width: 641px) {
    .bvpcp-cart-page {
        height: auto !important;
        min-height: 0 !important;
        overflow: visible !important;
        padding-bottom: 88px;
    }

    .bvpcp-cart-wrap,
    .bvpcp-cart-layout,
    .bvpcp-items-column,
    .bvpcp-cross-sells-slot,
    .bvpcp-cross-sells,
    .bvpcp-cross-sells-track {
        height: auto !important;
        max-height: none !important;
        overflow: visible;
    }

    .bvpcp-cross-sells {
        margin-bottom: 28px;
    }

    .bvpcp-cross-sells-track {
        align-items: stretch;
        grid-auto-rows: minmax(max-content, auto);
    }

    .bvpcp-cross-sell-card {
        display: flex;
        flex-direction: column;
        height: 100%;
        min-height: 0;
    }

    .bvpcp-cross-sell-body {
        display: flex;
        flex: 1 1 auto;
        flex-direction: column;
        min-height: 0;
    }

    .bvpcp-cross-sell-add,
    .bvpcp-cross-sell-link {
        margin-top: auto !important;
    }
}

/* ===========================================================
 * v0.5.2 — Desktop dynamic page-flow hardening
 * Some Neytri/Elementor wrappers retain a previously calculated height
 * after AJAX cart growth. That allows the theme footer to begin before
 * the cross-sell section has finished. Restrict this normalization to
 * the preview page and desktop only.
 * =========================================================== */
@media (min-width: 641px) {
    body.bvpcp-preview-page .entry-content,
    body.bvpcp-preview-page .page-content,
    body.bvpcp-preview-page .site-main,
    body.bvpcp-preview-page main.site-main,
    body.bvpcp-preview-page #primary,
    body.bvpcp-preview-page .site-content,
    body.bvpcp-preview-page .wdt-content-wrapper,
    body.bvpcp-preview-page .wdt-main-content-wrapper,
    body.bvpcp-preview-page .entry-content .elementor,
    body.bvpcp-preview-page .entry-content .elementor-inner,
    body.bvpcp-preview-page .entry-content .elementor-section-wrap,
    body.bvpcp-preview-page .entry-content .elementor-widget-wrap,
    body.bvpcp-preview-page .entry-content .elementor-widget-container,
    body.bvpcp-preview-page .entry-content .e-con,
    body.bvpcp-preview-page .entry-content .e-con-inner,
    body.bvpcp-preview-page .page-content .elementor,
    body.bvpcp-preview-page .page-content .elementor-widget-container,
    body.bvpcp-preview-page .page-content .e-con,
    body.bvpcp-preview-page .page-content .e-con-inner {
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        overflow-y: visible !important;
    }

    .bvpcp-cart-page,
    .bvpcp-cart-wrap,
    .bvpcp-cart-content,
    .bvpcp-cart-layout,
    .bvpcp-items-column,
    .bvpcp-cross-sells-slot,
    .bvpcp-cross-sells,
    .bvpcp-cross-sells-track {
        contain: none !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
    }

    /* The recommendation block itself supplies the final clearance. */
    .bvpcp-cross-sells-slot {
        position: relative;
        z-index: 1;
        padding-bottom: 34px;
    }
}

/* ===========================================================
 * v0.6.0 — Delivering To / WooCommerce shipping address
 * Address data stays in WC()->customer. Nimbus gating is v0.7.
 * =========================================================== */
.bvpcp-delivery-slot:empty { display: none; }

.bvpcp-delivery-card {
    padding: 13px 14px;
    border: 1px solid #e4e4e4;
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(0,0,0,.025);
}

.bvpcp-delivery-card-head {
    display: grid;
    grid-template-columns: 30px minmax(0, 1fr) auto;
    align-items: center;
    gap: 9px;
}

.bvpcp-delivery-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    border-radius: 9px;
    background: #111;
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    line-height: 1;
}

.bvpcp-delivery-copy {
    min-width: 0;
}

.bvpcp-delivery-kicker {
    display: block;
    margin-bottom: 2px;
    color: #858585;
    font-size: 7px;
    font-weight: 800;
    letter-spacing: .07em;
    line-height: 1.2;
    text-transform: uppercase;
}

.bvpcp-delivery-copy strong {
    display: block;
    color: #171717;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
}

.bvpcp-delivery-address-line {
    display: -webkit-box;
    margin-top: 2px;
    overflow: hidden;
    color: #6d6d6d;
    font-size: 8.5px;
    line-height: 1.35;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.bvpcp-delivery-change {
    min-height: 28px !important;
    margin: 0 !important;
    padding: 5px 8px !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 7px !important;
    background: #fff !important;
    box-shadow: none !important;
    color: #171717 !important;
    font-size: 8.5px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    cursor: pointer;
}

.bvpcp-delivery-change:hover,
.bvpcp-delivery-change:focus {
    border-color: #111 !important;
    background: #fafafa !important;
}

body.bvpcp-address-drawer-open {
    overflow: hidden !important;
}

.bvpcp-address-drawer {
    position: fixed;
    z-index: 10060;
    inset: 0;
    pointer-events: none;
    visibility: hidden;
}

.bvpcp-address-drawer.is-open {
    pointer-events: auto;
    visibility: visible;
}

.bvpcp-address-backdrop {
    position: absolute !important;
    z-index: 0 !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(0,0,0,.38) !important;
    box-shadow: none !important;
    opacity: 0;
    cursor: default;
    transition: opacity .18s ease;
}

.bvpcp-address-drawer.is-open .bvpcp-address-backdrop {
    opacity: 1;
}

.bvpcp-address-panel {
    position: absolute;
    z-index: 1;
    top: 0;
    right: 0;
    width: min(430px, 94vw);
    height: 100%;
    padding: 18px;
    overflow-y: auto;
    background: #fff;
    box-shadow: -8px 0 28px rgba(0,0,0,.12);
    transform: translateX(102%);
    transition: transform .2s ease;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
}

.bvpcp-address-drawer.is-open .bvpcp-address-panel {
    transform: translateX(0);
}

.bvpcp-address-panel-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid #ececec;
}

.bvpcp-address-panel-head span {
    display: block;
    margin-bottom: 3px;
    color: #8a8a8a;
    font-size: 8px;
    font-weight: 800;
    letter-spacing: .07em;
    line-height: 1.2;
    text-transform: uppercase;
}

.bvpcp-address-panel-head h2 {
    margin: 0 !important;
    color: #171717 !important;
    font-size: 20px !important;
    font-weight: 800 !important;
    letter-spacing: -.02em !important;
    line-height: 1.15 !important;
}

.bvpcp-address-close {
    display: inline-flex !important;
    flex: 0 0 32px;
    align-items: center !important;
    justify-content: center !important;
    width: 32px !important;
    min-width: 32px !important;
    height: 32px !important;
    min-height: 32px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 1px solid #e2e2e2 !important;
    border-radius: 9px !important;
    background: #f7f7f7 !important;
    box-shadow: none !important;
    color: #333 !important;
    font-size: 19px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    cursor: pointer;
}

.bvpcp-address-form {
    display: grid;
    gap: 11px;
    padding-top: 14px;
}

.bvpcp-address-grid {
    display: grid;
    gap: 10px;
}

.bvpcp-address-grid--2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bvpcp-address-form label {
    display: grid;
    gap: 5px;
    min-width: 0;
    margin: 0;
}

.bvpcp-address-form label > span {
    color: #4e4e4e;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.25;
}

.bvpcp-address-form input,
.bvpcp-address-form select {
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 8px !important;
    background: #fff !important;
    box-shadow: none !important;
    color: #171717 !important;
    font: inherit !important;
    font-size: 12px !important;
    line-height: 1.2 !important;
}

.bvpcp-address-form input:focus,
.bvpcp-address-form select:focus {
    border-color: #111 !important;
    outline: 0 !important;
    box-shadow: 0 0 0 1px #111 !important;
}

.bvpcp-address-status {
    min-height: 0;
    color: #666;
    font-size: 10px;
    line-height: 1.35;
}

.bvpcp-address-status:not(:empty) {
    padding: 8px 9px;
    border-radius: 7px;
}

.bvpcp-address-status.is-error:not(:empty) {
    border: 1px solid #ffd5d5;
    background: #fff1f1;
    color: #8e2626;
}

.bvpcp-address-status.is-success:not(:empty) {
    border: 1px solid #d4efd7;
    background: #f3fbf4;
    color: #315e38;
}

.bvpcp-address-save {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 42px !important;
    margin: 2px 0 0 !important;
    padding: 9px 13px !important;
    border: 1px solid #111 !important;
    border-radius: 8px !important;
    background: #111 !important;
    box-shadow: none !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    line-height: 1.2 !important;
    cursor: pointer;
}

.bvpcp-address-form.is-working {
    opacity: .62;
}

.bvpcp-address-note {
    margin: -2px 0 0;
    color: #8a8a8a;
    font-size: 8.5px;
    line-height: 1.35;
}

/* Address editor is modal: keep fixed checkout and Interakt out of its way. */
body.bvpcp-address-drawer-open .bvpcp-mobile-checkout-bar {
    visibility: hidden !important;
    pointer-events: none !important;
}
body.bvpcp-address-drawer-open iframe[src*="interakt"],
body.bvpcp-address-drawer-open iframe[src*="kiwi"],
body.bvpcp-address-drawer-open [id*="kiwi"],
body.bvpcp-address-drawer-open [class*="kiwi"],
body.bvpcp-address-drawer-open [id*="interakt"],
body.bvpcp-address-drawer-open [class*="interakt"] {
    visibility: hidden !important;
    pointer-events: none !important;
}

@media (max-width: 640px) {
    .bvpcp-delivery-card {
        padding: 11px 12px;
        border-radius: 13px;
    }

    .bvpcp-delivery-card-head {
        grid-template-columns: 28px minmax(0, 1fr) auto;
        gap: 8px;
    }

    .bvpcp-delivery-icon {
        width: 28px;
        height: 28px;
        border-radius: 8px;
        font-size: 14px;
    }

    .bvpcp-delivery-kicker { font-size: 6px; }
    .bvpcp-delivery-copy strong { font-size: 10.5px; }
    .bvpcp-delivery-address-line { font-size: 8px; }
    .bvpcp-delivery-change {
        min-height: 27px !important;
        padding: 5px 7px !important;
        font-size: 8px !important;
    }

    .bvpcp-address-panel {
        top: auto;
        right: 0;
        bottom: 0;
        left: 0;
        width: 100%;
        height: auto;
        max-height: min(82dvh, 720px);
        padding: 14px 12px calc(24px + env(safe-area-inset-bottom, 0px));
        border-radius: 17px 17px 0 0;
        box-shadow: 0 -8px 28px rgba(0,0,0,.14);
        transform: translateY(102%);
    }

    .bvpcp-address-drawer.is-open .bvpcp-address-panel {
        transform: translateY(0);
    }

    .bvpcp-address-panel-head {
        padding-bottom: 9px;
    }

    .bvpcp-address-panel-head span { font-size: 6.5px; }
    .bvpcp-address-panel-head h2 { font-size: 16px !important; }

    .bvpcp-address-close {
        width: 30px !important;
        min-width: 30px !important;
        height: 30px !important;
        min-height: 30px !important;
    }

    .bvpcp-address-form {
        gap: 9px;
        padding-top: 11px;
    }

    .bvpcp-address-grid--2 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }

    .bvpcp-address-form label > span { font-size: 8.5px; }
    .bvpcp-address-form input,
    .bvpcp-address-form select {
        height: 38px !important;
        min-height: 38px !important;
        padding: 7px 9px !important;
        font-size: 11px !important;
    }

    .bvpcp-address-save {
        min-height: 40px !important;
        font-size: 10px !important;
    }

    .bvpcp-address-note { font-size: 7.5px; }
}

/* ================================================================
 * v0.6.2 — Delivery address state picker / modal hardening
 * ================================================================ */

/* Address drawer must always sit above theme header, campaign tracking,
 * fixed mobile footer and other page chrome. */
.bvpcp-address-drawer {
    position: fixed !important;
    z-index: 2147483647 !important;
    inset: 0 !important;
    isolation: isolate !important;
    contain: layout style !important;
}

.bvpcp-address-backdrop {
    z-index: 0 !important;
}

.bvpcp-address-panel {
    z-index: 1 !important;
}

/* Lock the document while the editor is open. The panel itself remains the
 * only scrollable surface, preventing the underlying page from jumping. */
html.bvpcp-address-lock,
body.bvpcp-address-drawer-open {
    overflow: hidden !important;
    overscroll-behavior: none !important;
}

/* Keep custom state control visually identical to the address fields. */
.bvpcp-address-form .bvpcp-field {
    display: grid !important;
    gap: 5px !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.bvpcp-address-form .bvpcp-field-label {
    display: block !important;
    margin: 0 !important;
    color: #4e4e4e !important;
    font-size: 10px !important;
    font-weight: 700 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    text-transform: none !important;
}

.bvpcp-state-field {
    position: relative !important;
    min-width: 0 !important;
}

.bvpcp-state-toggle {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 8px !important;
    background: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
    color: #171717 !important;
    font-family: inherit !important;
    font-size: 12px !important;
    font-weight: 400 !important;
    line-height: 1.2 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    text-transform: none !important;
    cursor: pointer !important;
}

.bvpcp-state-toggle:hover {
    background: #fff !important;
    color: #171717 !important;
}

.bvpcp-state-toggle:focus,
.bvpcp-state-field.is-open .bvpcp-state-toggle {
    border-color: #111 !important;
    outline: 0 !important;
    box-shadow: 0 0 0 1px #111 !important;
}

.bvpcp-state-current {
    display: block !important;
    min-width: 0 !important;
    overflow: hidden !important;
    color: #171717 !important;
    font: inherit !important;
    letter-spacing: 0 !important;
    text-overflow: ellipsis !important;
    text-transform: none !important;
    white-space: nowrap !important;
}

.bvpcp-state-chevron {
    flex: 0 0 auto !important;
    color: #444 !important;
    font-size: 14px !important;
    font-weight: 400 !important;
    line-height: 1 !important;
    letter-spacing: 0 !important;
    transform: translateY(-1px) !important;
    transition: transform .15s ease !important;
}

.bvpcp-state-field.is-open .bvpcp-state-chevron {
    transform: rotate(180deg) translateY(1px) !important;
}

/* Scrollable dropdown constrained to the address drawer. Never expands the
 * document or pushes the footer/page length. */
.bvpcp-state-options {
    position: absolute !important;
    z-index: 100 !important;
    top: calc(100% + 5px) !important;
    right: 0 !important;
    display: none !important;
    width: 100% !important;
    min-width: 220px !important;
    max-width: min(300px, calc(100vw - 28px)) !important;
    max-height: 220px !important;
    margin: 0 !important;
    padding: 5px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    overscroll-behavior: contain !important;
    border: 1px solid #dedede !important;
    border-radius: 9px !important;
    background: #fff !important;
    box-shadow: 0 12px 28px rgba(0,0,0,.15) !important;
    -webkit-overflow-scrolling: touch !important;
}

.bvpcp-state-field.is-open .bvpcp-state-options {
    display: block !important;
}

.bvpcp-state-option,
.bvpcp-state-options button.bvpcp-state-option {
    appearance: none !important;
    -webkit-appearance: none !important;
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 7px 9px !important;
    border: 0 !important;
    border-radius: 6px !important;
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    color: #222 !important;
    font-family: inherit !important;
    font-size: 10.5px !important;
    font-weight: 500 !important;
    line-height: 1.25 !important;
    letter-spacing: 0 !important;
    text-align: left !important;
    text-decoration: none !important;
    text-transform: none !important;
    white-space: normal !important;
    cursor: pointer !important;
}

.bvpcp-state-option + .bvpcp-state-option {
    margin-top: 1px !important;
}

.bvpcp-state-option:hover,
.bvpcp-state-option:focus,
.bvpcp-state-option.is-selected {
    background: #f1f1f1 !important;
    color: #111 !important;
    outline: 0 !important;
}

/* Theme chrome must never be interactive through the open modal. */
body.bvpcp-address-drawer-open header,
body.bvpcp-address-drawer-open .site-header,
body.bvpcp-address-drawer-open #masthead,
body.bvpcp-address-drawer-open .elementor-location-header {
    pointer-events: none !important;
}

@media (max-width: 640px) {
    .bvpcp-address-panel {
        max-height: calc(100dvh - 12px) !important;
        padding-bottom: calc(14px + env(safe-area-inset-bottom, 0px)) !important;
        overflow-y: auto !important;
        scroll-padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important;
    }

    .bvpcp-address-form .bvpcp-field-label {
        font-size: 8.5px !important;
    }

    .bvpcp-state-toggle {
        height: 38px !important;
        min-height: 38px !important;
        padding: 7px 9px !important;
        font-size: 11px !important;
    }

    .bvpcp-state-options {
        left: 0 !important;
        right: auto !important;
        width: 100% !important;
        min-width: 100% !important;
        max-width: 100% !important;
        max-height: 190px !important;
    }

    .bvpcp-state-option,
    .bvpcp-state-options button.bvpcp-state-option {
        min-height: 32px !important;
        padding: 7px 8px !important;
        font-size: 10px !important;
    }

    /* Save remains visible inside the modal and above phone safe-area. */
    .bvpcp-address-save {
        position: sticky !important;
        z-index: 10 !important;
        bottom: 0 !important;
        margin-top: 4px !important;
        box-shadow: 0 -10px 16px rgba(255,255,255,.98) !important;
    }
}


/* ================================================================
 * v0.6.3 — Viewport-level address modal portal
 * ================================================================ */
body > .bvpcp-address-drawer {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    contain: none !important;
    isolation: isolate !important;
    z-index: 2147483647 !important;
}

body > .bvpcp-address-drawer > .bvpcp-address-backdrop {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
}

body > .bvpcp-address-drawer > .bvpcp-address-panel {
    position: absolute !important;
    z-index: 1 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    margin: 0 !important;
}

@media (max-width: 640px) {
    body > .bvpcp-address-drawer > .bvpcp-address-panel {
        top: auto !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: auto !important;
        max-height: calc(100dvh - 10px) !important;
    }
}

/* =============================================================
 * v0.6.4 — Coupon drawer viewport portal hardening
 * The drawer is moved under <body> at runtime. Direct-body rules keep it
 * independent from Elementor/theme transform/overflow stacking contexts.
 * =========================================================== */
html.bvpcp-coupon-lock,
body.bvpcp-coupon-drawer-open {
    overflow: hidden !important;
}

body > .bvpcp-coupon-drawer {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
    filter: none !important;
    perspective: none !important;
    isolation: isolate !important;
    contain: none !important;
    z-index: 2147483647 !important;
}

body > .bvpcp-coupon-drawer > .bvpcp-coupon-backdrop {
    position: absolute !important;
    inset: 0 !important;
    z-index: 0 !important;
}

body > .bvpcp-coupon-drawer > .bvpcp-coupon-panel {
    position: absolute !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    left: auto !important;
    z-index: 1 !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
}

@media (max-width: 640px) {
    body > .bvpcp-coupon-drawer > .bvpcp-coupon-panel {
        top: auto !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: auto !important;
        max-height: min(78dvh, 680px) !important;
    }
}

/* ===========================================================
 * v0.7.0 — Nimbus pincode serviceability
 * =========================================================== */
.bvpcp-serviceability-slot:empty { display: none; }

.bvpcp-serviceability {
    display: grid;
    grid-template-columns: 9px minmax(0, 1fr) auto;
    align-items: center;
    gap: 8px;
    margin-top: 10px;
    padding-top: 9px;
    border-top: 1px solid #ededed;
}

.bvpcp-serviceability-indicator {
    display: block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: #b8b8b8;
}

.bvpcp-serviceability-copy {
    min-width: 0;
}

.bvpcp-serviceability-copy strong {
    display: block;
    color: #202020;
    font-size: 9.5px;
    font-weight: 800;
    line-height: 1.25;
}

.bvpcp-serviceability-copy span {
    display: block;
    margin-top: 1px;
    color: #7b7b7b;
    font-size: 8px;
    font-weight: 500;
    line-height: 1.3;
}

.bvpcp-serviceability--serviceable .bvpcp-serviceability-indicator {
    background: #2f7d41;
    box-shadow: 0 0 0 3px rgba(47,125,65,.10);
}

.bvpcp-serviceability--serviceable .bvpcp-serviceability-copy strong {
    color: #285f35;
}

.bvpcp-serviceability--unserviceable .bvpcp-serviceability-indicator,
.bvpcp-serviceability--error .bvpcp-serviceability-indicator {
    background: #b44545;
    box-shadow: 0 0 0 3px rgba(180,69,69,.09);
}

.bvpcp-serviceability--unserviceable .bvpcp-serviceability-copy strong,
.bvpcp-serviceability--error .bvpcp-serviceability-copy strong {
    color: #8d3030;
}

.bvpcp-serviceability--checking .bvpcp-serviceability-indicator {
    background: #777;
    animation: bvpcp-serviceability-pulse 1s ease-in-out infinite;
}

@keyframes bvpcp-serviceability-pulse {
    0%, 100% { opacity: .35; transform: scale(.85); }
    50% { opacity: 1; transform: scale(1); }
}

.bvpcp-serviceability-action {
    min-height: 27px !important;
    margin: 0 !important;
    padding: 5px 8px !important;
    border: 1px solid #d8d8d8 !important;
    border-radius: 7px !important;
    background: #fff !important;
    box-shadow: none !important;
    color: #171717 !important;
    font-size: 8px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    cursor: pointer;
}

.bvpcp-serviceability-action:hover,
.bvpcp-serviceability-action:focus {
    border-color: #111 !important;
    background: #fafafa !important;
}

.bvpcp-desktop-checkout-button.is-disabled,
.bvpcp-mobile-checkout-button.is-disabled {
    background: #666 !important;
    border-color: #666 !important;
    cursor: not-allowed !important;
    opacity: .82;
}

@media (max-width: 640px) {
    .bvpcp-serviceability {
        grid-template-columns: 8px minmax(0, 1fr) auto;
        gap: 7px;
        margin-top: 8px;
        padding-top: 8px;
    }

    .bvpcp-serviceability-indicator {
        width: 7px;
        height: 7px;
    }

    .bvpcp-serviceability-copy strong {
        font-size: 9px;
    }

    .bvpcp-serviceability-copy span {
        font-size: 7.5px;
    }

    .bvpcp-serviceability-action {
        min-height: 26px !important;
        padding: 5px 7px !important;
        font-size: 7.5px !important;
    }
}

/* v0.7.1 — PIN code -> state verification */
.bvpcp-postcode-field .bvpcp-postcode-hint,
.bvpcp-state-hint {
    display: block;
    margin-top: 5px;
    color: #8a8a8a;
    font-size: 10px;
    font-weight: 500;
    line-height: 1.3;
}

.bvpcp-postcode-field .bvpcp-postcode-hint:empty {
    display: none;
}

.bvpcp-state-field.is-postcode-checking .bvpcp-state-toggle {
    opacity: .72;
}

.bvpcp-state-field.is-postcode-checking .bvpcp-state-hint {
    color: #666;
}

.bvpcp-state-field.is-postcode-locked .bvpcp-state-toggle {
    cursor: default;
    background: #f7f7f7 !important;
    border-color: #d8d8d8 !important;
    box-shadow: none !important;
}

.bvpcp-state-field.is-postcode-locked .bvpcp-state-chevron {
    opacity: .35;
}

.bvpcp-state-field.is-postcode-locked .bvpcp-state-hint {
    color: #3f6d43;
}

.bvpcp-state-field.is-postcode-error .bvpcp-state-hint,
.bvpcp-postcode-field .bvpcp-postcode-hint {
    color: #a12622;
}

@media (max-width: 640px) {
    .bvpcp-postcode-field .bvpcp-postcode-hint,
    .bvpcp-state-hint {
        margin-top: 4px;
        font-size: 8.5px;
    }
}
