/* v1.4.0-D2 — Product Template + Server-Enforced Purchasing */
body.bvpcp-mobile-product-foundation-active {
    background: #f6f7f8;
}

body.bvpcp-mobile-product-foundation-active .bvpcp-product-foundation {
    width: 100%;
    max-width: none;
    margin: 0;
    padding: 12px 14px 104px;
    box-sizing: border-box;
}

.bvpcp-product-foundation [hidden] {
    display: none !important;
}

.bvpcp-product-foundation-shell {
    width: 100%;
    max-width: 760px;
    margin: 0 auto;
}

.bvpcp-product-foundation-card {
    overflow: hidden;
    border: 1px solid #e6e9ed;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 4px 18px rgba(17, 24, 39, .06);
}

.bvpcp-product-foundation-image-wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 250px;
    padding: 14px;
    background: #fff;
}

.bvpcp-product-foundation-image-wrap img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 355px;
    object-fit: contain;
}

.bvpcp-product-foundation-content {
    padding: 17px;
    border-top: 1px solid #eef0f2;
}

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

.bvpcp-product-title-row > div {
    min-width: 0;
}

.bvpcp-product-foundation-eyebrow {
    margin: 0 0 5px;
    color: #718096;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .075em;
    text-transform: uppercase;
}

.bvpcp-product-foundation-content h1 {
    margin: 0;
    color: #111827;
    font-size: clamp(21px, 6vw, 28px);
    font-weight: 800;
    line-height: 1.18;
    letter-spacing: -.025em;
}

.bvpcp-stock-pill {
    flex: 0 0 auto;
    margin-top: 2px;
    padding: 5px 8px;
    border-radius: 999px;
    background: #effaf3;
    color: #14733b;
    font-size: 10px;
    font-weight: 800;
    white-space: nowrap;
}

.bvpcp-stock-pill.is-out {
    background: #fff0f0;
    color: #a61b1b;
}

.bvpcp-product-price-block {
    margin-top: 14px;
    padding-bottom: 15px;
    border-bottom: 1px solid #edf0f2;
}

.bvpcp-product-price {
    color: #111827;
    font-size: 24px;
    font-weight: 850;
    line-height: 1.15;
}

.bvpcp-product-gst {
    min-height: 18px;
    margin-top: 5px;
    color: #667085;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.4;
}

/* Variations */
.bvpcp-variation-form {
    margin: 16px 0 0;
}

.bvpcp-attribute-group {
    min-width: 0;
    margin: 0;
    padding: 0 0 15px;
    border: 0;
}

.bvpcp-attribute-group:last-child {
    padding-bottom: 8px;
}

.bvpcp-attribute-group legend {
    width: 100%;
    margin: 0 0 9px;
    padding: 0;
    color: #111827;
    font-size: 13px;
    font-weight: 800;
}

.bvpcp-attribute-options {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(88px, 1fr));
    gap: 8px;
}

.bvpcp-attribute-chip {
    min-height: 40px;
    padding: 8px 9px;
    border: 1px solid #d9dee5;
    border-radius: 10px;
    outline: 0;
    background: #fff;
    color: #20252c;
    font: inherit;
    font-size: 11px;
    font-weight: 750;
    line-height: 1.2;
    text-align: center;
    cursor: pointer;
    box-shadow: none;
}

.bvpcp-attribute-chip.is-selected {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

.bvpcp-attribute-chip.is-disabled,
.bvpcp-attribute-chip:disabled {
    border-color: #eceff2;
    background: #f7f8f9;
    color: #b0b6bf;
    cursor: not-allowed;
    text-decoration: line-through;
}

/* One-to-one dependent attributes: capacity/size etc. */
.bvpcp-combined-options {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
}

.bvpcp-combined-option {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    min-height: 55px;
    padding: 9px 11px;
    border: 1px solid #d9dee5;
    border-radius: 11px;
    background: #fff;
    color: #20252c;
    text-align: left;
    cursor: pointer;
}

.bvpcp-combined-option strong {
    display: block;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
}

.bvpcp-combined-option span {
    display: block;
    margin-top: 3px;
    color: #78818d;
    font-size: 10px;
    font-weight: 650;
    line-height: 1.2;
}

.bvpcp-combined-option.is-selected {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

.bvpcp-combined-option.is-selected span {
    color: #d8dde5;
}

.bvpcp-native-variation-selects {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

.bvpcp-variation-tools {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 10px 0 0;
    border-top: 1px solid #edf0f2;
}

.bvpcp-variation-tools p {
    flex: 1 1 auto;
    margin: 0;
    color: #6b7280;
    font-size: 11px;
    line-height: 1.4;
}

.bvpcp-reset-variations {
    flex: 0 0 auto;
    padding: 6px 8px;
    border: 0;
    background: transparent;
    color: #555f6d;
    font-size: 11px;
    font-weight: 750;
    text-decoration: underline;
    cursor: pointer;
}

.bvpcp-reset-variations:disabled {
    opacity: .35;
    cursor: default;
}

.bvpcp-selected-variation {
    margin-top: 14px;
    padding: 11px 12px;
    border: 1px solid #dfe4e9;
    border-radius: 11px;
    background: #fbfcfd;
}

.bvpcp-selected-variation > span {
    display: block;
    margin-bottom: 3px;
    color: #7a8492;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.bvpcp-selected-variation strong {
    display: block;
    color: #111827;
    font-size: 12px;
    line-height: 1.4;
}

.bvpcp-selected-variation small {
    display: block;
    margin-top: 3px;
    color: #717b88;
    font-size: 10px;
}

/* Shared cards */
.bvpcp-commercial-card,
.bvpcp-purchase-card,
.bvpcp-tier-card {
    margin-top: 15px;
    overflow: hidden;
    border: 1px solid #e5e8ec;
    border-radius: 13px;
    background: #fff;
}

.bvpcp-commercial-card-header,
.bvpcp-purchase-card-header,
.bvpcp-tier-card-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 12px 13px;
    border-bottom: 1px solid #e9ecef;
    background: #fafbfc;
}

.bvpcp-commercial-kicker,
.bvpcp-purchase-card-header span,
.bvpcp-tier-card-header span {
    display: block;
    margin-bottom: 2px;
    color: #77818d;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.bvpcp-commercial-card-header strong,
.bvpcp-purchase-card-header strong,
.bvpcp-tier-card-header strong {
    display: block;
    color: #181d24;
    font-size: 12px;
    line-height: 1.3;
}

.bvpcp-commercial-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
    padding: 0;
}

.bvpcp-commercial-grid > div {
    min-width: 0;
    padding: 12px 13px;
    border-right: 1px solid #edf0f2;
    border-bottom: 1px solid #edf0f2;
}

.bvpcp-commercial-grid > div:nth-child(2n) {
    border-right: 0;
}

.bvpcp-commercial-grid > div:nth-last-child(-n+2) {
    border-bottom: 0;
}

.bvpcp-commercial-grid dt,
.bvpcp-commercial-grid dd {
    margin: 0;
}

.bvpcp-commercial-grid dt {
    margin-bottom: 4px;
    color: #808895;
    font-size: 9px;
    font-weight: 750;
    letter-spacing: .025em;
    text-transform: uppercase;
}

.bvpcp-commercial-grid dd {
    color: #181d24;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

/* Purchasing interaction */
.bvpcp-purchase-card {
    padding-bottom: 0;
}

.bvpcp-procurement-block {
    padding: 12px 13px 4px;
}

.bvpcp-control-label {
    display: block;
    margin-bottom: 7px;
    color: #737d89;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.bvpcp-procurement-switch {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
}

.bvpcp-procurement-switch button {
    min-height: 39px;
    padding: 8px 10px;
    border: 1px solid #d9dee5;
    border-radius: 10px;
    background: #fff;
    color: #3b4450;
    font-size: 11px;
    font-weight: 800;
    cursor: pointer;
}

.bvpcp-procurement-switch button.is-selected {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

.bvpcp-quantity-row {
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
    align-items: end;
    gap: 12px;
    padding: 12px 13px 13px;
}

.bvpcp-quantity-control {
    display: grid;
    grid-template-columns: 40px minmax(52px, 1fr) 40px;
    align-items: stretch;
    max-width: 190px;
    overflow: hidden;
    border: 1px solid #d9dee5;
    border-radius: 10px;
    background: #fff;
}

.bvpcp-quantity-control button {
    min-height: 42px;
    border: 0;
    background: #f8fafb;
    color: #111827;
    font-size: 19px;
    font-weight: 700;
    cursor: pointer;
}

.bvpcp-quantity-control button:disabled {
    color: #c1c6cd;
    cursor: default;
}

.bvpcp-quantity-control input {
    width: 100%;
    min-width: 0;
    min-height: 42px;
    padding: 0 4px;
    border: 0;
    border-right: 1px solid #e5e8ec;
    border-left: 1px solid #e5e8ec;
    outline: none;
    background: #fff;
    color: #111827;
    font-size: 14px;
    font-weight: 850;
    text-align: center;
    -moz-appearance: textfield;
}

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

.bvpcp-equivalent-content {
    min-width: 0;
    text-align: right;
}

.bvpcp-equivalent-content > span {
    display: block;
    color: #818a96;
    font-size: 9px;
    font-weight: 750;
    text-transform: uppercase;
}

.bvpcp-equivalent-content strong {
    display: block;
    margin-top: 3px;
    color: #111827;
    font-size: 13px;
    font-weight: 850;
    line-height: 1.25;
}

.bvpcp-equivalent-content small {
    display: block;
    margin-top: 3px;
    color: #7b8490;
    font-size: 9px;
    line-height: 1.3;
}

.bvpcp-next-tier {
    margin: 0 13px 12px;
    padding: 9px 10px;
    border: 1px solid #e7ddbd;
    border-radius: 9px;
    background: #fffaf0;
    color: #685520;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.4;
}

.bvpcp-next-tier.is-best-rate {
    border-color: #cfe7d7;
    background: #f2fbf5;
    color: #22643a;
}

.bvpcp-price-summary {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    border-top: 1px solid #e9ecef;
    background: #fafbfc;
}

.bvpcp-price-summary > div {
    min-width: 0;
    padding: 12px 13px;
}

.bvpcp-price-summary > div + div {
    border-left: 1px solid #e9ecef;
}

.bvpcp-price-summary span {
    display: block;
    margin-bottom: 3px;
    color: #7d8692;
    font-size: 9px;
    font-weight: 750;
    text-transform: uppercase;
}

.bvpcp-price-summary strong {
    display: block;
    color: #111827;
    font-size: 15px;
    font-weight: 850;
    line-height: 1.2;
}

.bvpcp-line-total {
    text-align: right;
}

.bvpcp-line-total strong {
    font-size: 17px;
}

/* Pricing ladder */
.bvpcp-tier-card-header small {
    color: #5f6874;
    font-size: 9px;
    font-weight: 750;
    white-space: nowrap;
}

.bvpcp-tier-list {
    padding: 2px 13px;
}

.bvpcp-tier-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 44px;
    padding: 4px 0;
    border-bottom: 1px solid #edf0f2;
    color: #515b68;
    font-size: 11px;
}

.bvpcp-tier-row:last-child {
    border-bottom: 0;
}

.bvpcp-tier-row > span {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 5px;
}

.bvpcp-tier-row em {
    padding: 2px 5px;
    border-radius: 999px;
    background: #eef1f4;
    color: #67717d;
    font-size: 8px;
    font-style: normal;
    font-weight: 800;
}

.bvpcp-tier-row.is-active {
    color: #111827;
}

.bvpcp-tier-row.is-active em {
    background: #111827;
    color: #fff;
}

.bvpcp-tier-row.is-full-box-tier:not(.is-active) em {
    background: #f1f6ff;
    color: #315a9b;
}

.bvpcp-tier-row strong {
    color: #111827;
    font-size: 12px;
}

.bvpcp-tier-row strong small {
    margin-left: 2px;
    color: #7d8794;
    font-size: 9px;
    font-weight: 650;
}

.bvpcp-product-foundation-error {
    margin: 16px 0;
    padding: 13px;
    border-radius: 12px;
    background: #fff1f1;
    color: #9b1c1c;
    font-size: 12px;
    line-height: 1.45;
}

@media (max-width: 380px) {
    .bvpcp-commercial-grid {
        grid-template-columns: 1fr;
    }

    .bvpcp-commercial-grid > div,
    .bvpcp-commercial-grid > div:nth-child(2n),
    .bvpcp-commercial-grid > div:nth-last-child(-n+2) {
        border-right: 0;
        border-bottom: 1px solid #edf0f2;
    }

    .bvpcp-commercial-grid > div:last-child {
        border-bottom: 0;
    }

    .bvpcp-combined-options {
        grid-template-columns: 1fr 1fr;
    }

    .bvpcp-quantity-row {
        grid-template-columns: 1fr;
    }

    .bvpcp-equivalent-content {
        text-align: left;
    }
}

@media (min-width: 768px) {
    .bvpcp-product-foundation-shell {
        max-width: 760px;
    }
}

/* ============================================================
 * v1.4.0-C.1 — Interaction Polish
 * Harden controls against Neytri/global theme form styles.
 * ============================================================ */

/* Procurement state: selected must always read as the active option. */
.bvpcp-product-foundation .bvpcp-procurement-switch button,
.bvpcp-product-foundation .bvpcp-procurement-switch button[aria-pressed="false"] {
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 8px 10px !important;
    border: 1px solid #d9dee5 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #3b4450 !important;
    box-shadow: none !important;
    opacity: 1 !important;
}

.bvpcp-product-foundation .bvpcp-procurement-switch button.is-selected,
.bvpcp-product-foundation .bvpcp-procurement-switch button[aria-pressed="true"] {
    border-color: #111827 !important;
    background: #111827 !important;
    color: #fff !important;
    box-shadow: none !important;
}

/* Keep the complete − quantity + control inside the viewport. */
.bvpcp-product-foundation .bvpcp-quantity-control {
    display: flex !important;
    align-items: stretch !important;
    width: 164px !important;
    max-width: 100% !important;
    min-width: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.bvpcp-product-foundation .bvpcp-quantity-control button {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 42px !important;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #f8fafb !important;
    color: #111827 !important;
    box-shadow: none !important;
    line-height: 1 !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

.bvpcp-product-foundation .bvpcp-quantity-control button:disabled {
    color: #c1c6cd !important;
    background: #fafbfc !important;
}

.bvpcp-product-foundation .bvpcp-quantity-control input[data-bvpcp-quantity] {
    display: block !important;
    flex: 1 1 auto !important;
    width: 80px !important;
    min-width: 0 !important;
    max-width: none !important;
    height: 42px !important;
    min-height: 42px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    border: 0 !important;
    border-right: 1px solid #e5e8ec !important;
    border-left: 1px solid #e5e8ec !important;
    border-radius: 0 !important;
    background: #fff !important;
    color: #111827 !important;
    box-shadow: none !important;
    font-size: 14px !important;
    font-weight: 850 !important;
    line-height: 42px !important;
    text-align: center !important;
    box-sizing: border-box !important;
    appearance: textfield !important;
    -moz-appearance: textfield !important;
}

/* Variation helper becomes compact after a valid option is selected. */
.bvpcp-product-foundation.has-selected-variation .bvpcp-variation-tools p {
    display: none;
}

.bvpcp-product-foundation .bvpcp-variation-tools {
    min-height: 26px;
    padding-top: 6px;
}

.bvpcp-product-foundation .bvpcp-reset-variations {
    width: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 0 0 auto !important;
    padding: 3px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: #65707d !important;
    box-shadow: none !important;
    font-size: 10px !important;
    line-height: 1.2 !important;
    text-decoration: underline !important;
}

/* Replace the large Selected/SKU card with one compact confirmation line. */
.bvpcp-product-foundation .bvpcp-selected-variation {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    margin-top: 6px;
    padding: 0;
    border: 0;
    border-radius: 0;
    background: transparent;
}

.bvpcp-product-foundation .bvpcp-selected-variation > span,
.bvpcp-product-foundation .bvpcp-selected-variation small {
    display: none !important;
}

.bvpcp-product-foundation .bvpcp-selected-variation strong {
    min-width: 0;
    overflow: hidden;
    color: #606b78;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.35;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bvpcp-product-foundation .bvpcp-selected-variation strong::before {
    content: "Selected: ";
    color: #8a939e;
    font-weight: 650;
}

@media (max-width: 380px) {
    .bvpcp-product-foundation .bvpcp-quantity-control {
        width: 158px !important;
    }
}


/* v1.4.0-D2 authoritative Add to Cart */
.bvpcp-add-to-cart-area {
    padding: 0 13px 13px;
}

.bvpcp-add-to-cart-button {
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 11px 16px !important;
    border: 1px solid #111827 !important;
    border-radius: 11px !important;
    background: #111827 !important;
    color: #fff !important;
    font-size: 13px !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;
    text-align: center !important;
    cursor: pointer !important;
    box-shadow: none !important;
}

.bvpcp-add-to-cart-button:hover,
.bvpcp-add-to-cart-button:focus {
    background: #05080d !important;
    color: #fff !important;
}

.bvpcp-add-to-cart-button:disabled,
.bvpcp-add-to-cart-button.is-loading {
    border-color: #d8dde3 !important;
    background: #e9edf1 !important;
    color: #929ba6 !important;
    cursor: default !important;
}

.bvpcp-add-to-cart-message {
    margin-top: 8px;
    padding: 9px 10px;
    border-radius: 8px;
    background: #f3f7f4;
    color: #215b34;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
}

.bvpcp-add-to-cart-message.is-error {
    background: #fff2f2;
    color: #9c2525;
}

.bvpcp-add-to-cart-message a {
    margin-left: 6px;
    color: inherit;
    font-weight: 850;
    text-decoration: underline;
}


/* ============================================================
 * v1.4.0-D2 — Design ID / artwork bridge
 * ============================================================ */
.bvpcp-design-workflow-wrap {
    margin: 18px 0 0;
}

.bvpcp-design-cart-form {
    margin: 0 !important;
    padding: 0 !important;
}

.bvpcp-design-cart-form .bvp-design-selection {
    margin: 0 !important;
    padding: 14px !important;
    border: 1px solid #e6e6e6 !important;
    border-radius: 14px !important;
    background: #fff !important;
    box-shadow: none !important;
}

.bvpcp-design-cart-form .bvp-design-selection__title {
    font-size: 15px !important;
    line-height: 1.35 !important;
}

.bvpcp-design-cart-form .bvp-design-selection__subtitle {
    margin-bottom: 12px !important;
    font-size: 12px !important;
}

.bvpcp-design-cart-form .bvp-design-option {
    margin-bottom: 8px !important;
    padding: 11px !important;
    border-radius: 10px !important;
}

.bvpcp-design-cart-form .bvp-design-option.is-selected {
    border-color: #111 !important;
    background: #f7f7f7 !important;
}

.bvpcp-design-cart-form #bvp_cylinder_id {
    width: 100% !important;
    max-width: none !important;
    min-height: 44px !important;
    box-sizing: border-box !important;
}

.bvpcp-design-cart-form .wau_wrapper_div {
    max-width: 100% !important;
}

.bvpcp-design-workflow-unavailable {
    padding: 13px 14px;
    border: 1px solid #efc1c1;
    border-radius: 12px;
    background: #fff6f6;
    color: #7a2525;
    font-size: 13px;
    line-height: 1.5;
}

/* ============================================================
 * v1.4.0-D2.2 — Owned custom image workflow UI
 * ============================================================ */
.bvpcp-owned-design-selection .bvp-design-panel {
    display: none;
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid #ececec;
}

.bvpcp-owned-design-selection .bvp-design-panel.is-active {
    display: block;
}

.bvpcp-owned-design-selection .bvp-design-option {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    cursor: pointer;
}

.bvpcp-owned-design-selection .bvp-design-option input {
    margin-top: 3px;
    flex: 0 0 auto;
}

.bvpcp-owned-design-selection .bvp-design-option strong,
.bvpcp-owned-design-selection .bvp-design-option small {
    display: block;
}

.bvpcp-owned-design-selection .bvp-design-option small {
    margin-top: 2px;
    color: #666;
    font-size: 12px;
    line-height: 1.45;
}

.bvpcp-cylinder-charge-notice {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f7f7f7;
    font-size: 12px;
}

.bvpcp-cylinder-charge-notice strong {
    font-size: 14px;
}

.bvpcp-artwork-upload {
    margin-top: 12px;
}

.bvpcp-artwork-upload .wau_wrapper_div,
.bvpcp-artwork-upload input[type="file"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.bvpcp-fallback-upload-label {
    display: block;
    margin-bottom: 7px;
    font-size: 13px;
    font-weight: 700;
}

.bvpcp-fallback-upload-input {
    min-height: 44px;
    padding: 8px;
    border: 1px solid #d7d7d7;
    border-radius: 10px;
    background: #fff;
}

.bvpcp-artwork-upload small {
    display: block;
    margin-top: 6px;
    color: #707070;
    font-size: 11px;
    line-height: 1.4;
}


/* v1.4.0-D2.2 — Custom Image digital-print upload-only flow */
.bvpcp-digital-workflow {
    margin: 0 0 12px;
    padding: 14px;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    background: #fff;
}

.bvpcp-artwork-upload[hidden],
.bvpcp-digital-workflow[hidden],
.bvpcp-cylinder-workflow[hidden],
.bvpcp-design-workflow-unavailable[hidden],
[data-bvpcp-existing-design-panel][hidden] {
    display: none !important;
}


/* ============================================================
 * v1.5.1 — Product Page Completion + Commercial UI Polish
 * ============================================================ */
.bvpcp-unit-economics {
    display: block;
    margin-top: 4px;
    color: #6f7884;
    font-size: 10px;
    font-weight: 700;
    line-height: 1.35;
}

.bvpcp-next-tier {
    margin: 0 13px 12px;
    padding: 10px 11px;
    border: 1px solid #dfe4e9;
    border-radius: 10px;
    background: #f8fafb;
    color: #2d3642;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.45;
}

.bvpcp-next-tier.is-best-rate {
    border-color: #d7eadf;
    background: #f3faf5;
    color: #21623a;
}

.bvpcp-product-info-card,
.bvpcp-product-details-card {
    margin-top: 15px;
    overflow: hidden;
    border: 1px solid #e5e8ec;
    border-radius: 13px;
    background: #fff;
}

.bvpcp-product-info-header,
.bvpcp-product-details-card > summary {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 12px 13px;
    border-bottom: 1px solid #e9ecef;
    background: #fafbfc;
}

.bvpcp-product-info-header > span,
.bvpcp-product-details-card > summary > span {
    color: #77818d;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .065em;
    text-transform: uppercase;
}

.bvpcp-product-info-header > strong,
.bvpcp-product-details-card > summary > strong {
    color: #181d24;
    font-size: 12px;
    font-weight: 850;
    line-height: 1.3;
}

.bvpcp-specification-list {
    margin: 0;
    padding: 0;
}

.bvpcp-specification-list > div {
    display: grid;
    grid-template-columns: minmax(105px, .85fr) minmax(0, 1.15fr);
    gap: 12px;
    padding: 10px 13px;
    border-bottom: 1px solid #edf0f2;
}

.bvpcp-specification-list > div:last-child {
    border-bottom: 0;
}

.bvpcp-specification-list dt,
.bvpcp-specification-list dd {
    margin: 0;
    min-width: 0;
}

.bvpcp-specification-list dt {
    color: #7b8490;
    font-size: 10px;
    font-weight: 750;
}

.bvpcp-specification-list dd {
    color: #20262e;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.4;
    text-align: right;
    overflow-wrap: anywhere;
}

.bvpcp-product-details-card > summary {
    position: relative;
    cursor: pointer;
    list-style: none;
}

.bvpcp-product-details-card > summary::-webkit-details-marker {
    display: none;
}

.bvpcp-product-details-card > summary::after {
    content: '+';
    position: absolute;
    right: 13px;
    top: 50%;
    transform: translateY(-50%);
    color: #6f7884;
    font-size: 18px;
    font-weight: 500;
}

.bvpcp-product-details-card[open] > summary::after {
    content: '−';
}

.bvpcp-product-description {
    padding: 13px;
    color: #3c4652;
    font-size: 11px;
    line-height: 1.65;
}

.bvpcp-product-description p:first-child { margin-top: 0; }
.bvpcp-product-description p:last-child { margin-bottom: 0; }
.bvpcp-product-description ul,
.bvpcp-product-description ol { padding-left: 19px; }

.bvpcp-related-section {
    margin-top: 16px;
}

.bvpcp-related-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 9px;
    padding: 0 2px;
}

.bvpcp-related-heading span {
    display: block;
    color: #7b8490;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.bvpcp-related-heading h2 {
    margin: 2px 0 0;
    color: #111827;
    font-size: 16px;
    font-weight: 850;
    line-height: 1.25;
}

.bvpcp-related-scroller {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(142px, 42%);
    gap: 9px;
    overflow-x: auto;
    padding: 1px 1px 8px;
    scroll-snap-type: x proximity;
    -webkit-overflow-scrolling: touch;
}

.bvpcp-related-scroller::-webkit-scrollbar { height: 0; }

.bvpcp-related-product {
    min-width: 0;
    overflow: hidden;
    border: 1px solid #e4e8ed;
    border-radius: 12px;
    background: #fff;
    color: inherit;
    text-decoration: none !important;
    scroll-snap-align: start;
}

.bvpcp-related-image {
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 1 / .82;
    padding: 8px;
    background: #fff;
}

.bvpcp-related-image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: contain;
}

.bvpcp-related-product > strong {
    display: -webkit-box;
    min-height: 34px;
    margin: 0;
    padding: 9px 10px 3px;
    overflow: hidden;
    color: #232a33;
    font-size: 10px;
    font-weight: 800;
    line-height: 1.4;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
}

.bvpcp-related-product > small {
    display: block;
    padding: 3px 10px 10px;
    color: #111827;
    font-size: 10px;
    font-weight: 850;
    line-height: 1.35;
}

.bvpcp-product-sticky-bar {
    display: none;
}

@media (max-width: 767px) {
    body.bvpcp-mobile-product-foundation-active .bvpcp-product-foundation {
        padding-bottom: calc(148px + var(--bvpcp-mobile-footer-offset, 76px));
    }

    .bvpcp-product-sticky-bar {
        position: fixed;
        z-index: 99991;
        left: 0;
        right: 0;
        bottom: var(--bvpcp-mobile-footer-offset, 76px);
        display: grid;
        grid-template-columns: minmax(0, .72fr) minmax(150px, 1.28fr);
        align-items: center;
        gap: 10px;
        padding: 9px 12px calc(9px + env(safe-area-inset-bottom, 0px));
        border-top: 1px solid #e1e5e9;
        background: rgba(255,255,255,.98);
        box-shadow: 0 -7px 22px rgba(17,24,39,.08);
        backdrop-filter: blur(10px);
    }

    .bvpcp-product-sticky-price {
        min-width: 0;
    }

    .bvpcp-product-sticky-price > span {
        display: block;
        color: #7c8591;
        font-size: 8px;
        font-weight: 800;
        letter-spacing: .04em;
        text-transform: uppercase;
    }

    .bvpcp-product-sticky-price > strong {
        display: block;
        margin-top: 2px;
        overflow: hidden;
        color: #111827;
        font-size: 14px;
        font-weight: 900;
        line-height: 1.2;
        text-overflow: ellipsis;
        white-space: nowrap;
    }

    .bvpcp-product-sticky-price small {
        font-size: 9px;
        font-weight: 750;
    }

    .bvpcp-product-sticky-bar button {
        width: 100% !important;
        min-height: 46px !important;
        margin: 0 !important;
        padding: 10px 14px !important;
        border: 1px solid #111827 !important;
        border-radius: 10px !important;
        background: #111827 !important;
        color: #fff !important;
        font: inherit !important;
        font-size: 12px !important;
        font-weight: 850 !important;
        letter-spacing: 0 !important;
        line-height: 1.2 !important;
        text-transform: none !important;
        box-shadow: none !important;
    }

    .bvpcp-product-sticky-bar button:disabled {
        border-color: #d9dee4 !important;
        background: #e9edf1 !important;
        color: #929ba6 !important;
    }
}

@media (min-width: 768px) {
    .bvpcp-related-scroller {
        grid-auto-flow: initial;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        overflow: visible;
    }
}


/* v1.5.1.1 performance-safe lazy related-product mount. */
.bvpcp-related-lazy-slot {
    min-height: 1px;
}

/* ============================================================
 * v1.5.1.2 — Full-width information page + fixed purchase dock
 * ============================================================ */
body.bvpcp-mobile-product-foundation-active .bvpcp-product-foundation {
    padding: 14px 18px calc(var(--bvpcp-purchase-dock-height, 190px) + 28px);
}

.bvpcp-product-foundation-shell {
    max-width: 1180px;
}

.bvpcp-product-hero {
    width: 100%;
}

.bvpcp-product-hero-note {
    margin: 14px 0 0;
    color: #687280;
    font-size: 11px;
    font-weight: 650;
    line-height: 1.55;
}

.bvpcp-product-info-wide,
.bvpcp-product-details-wide {
    width: 100%;
}

.bvpcp-product-info-wide .bvpcp-specification-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.bvpcp-product-info-wide .bvpcp-specification-list > div {
    grid-template-columns: minmax(110px, .85fr) minmax(0, 1.15fr);
    border-right: 1px solid #edf0f2;
}

.bvpcp-product-info-wide .bvpcp-specification-list > div:nth-child(2n) {
    border-right: 0;
}

.bvpcp-purchase-dock {
    position: fixed;
    z-index: 99990;
    left: 0;
    right: 0;
    bottom: 0;
    max-height: min(31vh, 290px);
    overflow-x: hidden;
    overflow-y: auto;
    border-top: 1px solid #dfe3e8;
    background: rgba(255, 255, 255, .985);
    box-shadow: 0 -9px 28px rgba(17, 24, 39, .10);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    overscroll-behavior: contain;
}

.bvpcp-purchase-dock-inner {
    width: min(1180px, 100%);
    margin: 0 auto;
    padding: 8px 14px 10px;
    box-sizing: border-box;
}

.bvpcp-dock-summary-row {
    display: flex;
    align-items: center;
    gap: 7px;
    min-width: 0;
    min-height: 25px;
    padding: 0 2px 6px;
    color: #555f6d;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.25;
    white-space: nowrap;
}

.bvpcp-dock-summary-row > * {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.bvpcp-dock-product-name {
    max-width: 38%;
    color: #111827;
    font-size: 11px;
    font-weight: 850;
}

.bvpcp-dock-summary-divider {
    flex: 0 0 auto;
    color: #c3c9d0;
    overflow: visible;
}

.bvpcp-dock-variation-form {
    margin: 0;
    padding: 7px 0;
    border-top: 1px solid #edf0f2;
}

.bvpcp-dock-attribute-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 0;
}

.bvpcp-dock-attribute-row.has-one-attribute {
    grid-template-columns: minmax(0, 1fr);
}

.bvpcp-dock-attribute-field {
    min-width: 0;
}

.bvpcp-dock-attribute-field label,
.bvpcp-dock-design-type label,
.bvpcp-dock-design-id label,
.bvpcp-dock-design-label,
.bvpcp-purchase-dock .bvpcp-control-label {
    display: block;
    margin: 0 0 4px;
    color: #737d89;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .045em;
    line-height: 1.2;
    text-transform: uppercase;
}

.bvpcp-purchase-dock select,
.bvpcp-purchase-dock input[type="text"],
.bvpcp-purchase-dock input[type="number"] {
    box-sizing: border-box;
    font-family: inherit;
}

.bvpcp-dock-attribute-select,
.bvpcp-dock-design-type select,
.bvpcp-dock-design-id input[type="text"] {
    width: 100% !important;
    min-width: 0 !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 6px 30px 6px 9px !important;
    border: 1px solid #d6dce3 !important;
    border-radius: 9px !important;
    outline: 0 !important;
    background-color: #fff !important;
    color: #1f2937 !important;
    font: inherit !important;
    font-size: 10px !important;
    font-weight: 750 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    box-shadow: none !important;
}

.bvpcp-dock-selection-note {
    display: none;
}

.bvpcp-attribute-overflow-warning,
.bvpcp-dock-error {
    margin: 6px 0 0;
    padding: 7px 9px;
    font-size: 9px;
}

.bvpcp-dock-customization-row {
    margin: 0;
    padding: 7px 0;
    border-top: 1px solid #edf0f2;
}

.bvpcp-dock-design-form {
    display: grid;
    grid-template-columns: minmax(115px, .72fr) minmax(0, 1.28fr);
    align-items: end;
    gap: 8px;
    margin: 0;
}

.bvpcp-dock-design-type,
.bvpcp-dock-design-id,
.bvpcp-dock-artwork-upload,
.bvpcp-dock-design-label {
    min-width: 0;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.bvpcp-dock-design-label {
    align-self: center;
}

.bvpcp-dock-artwork-upload {
    align-self: end;
}

.bvpcp-dock-artwork-upload label,
.bvpcp-dock-artwork-upload small,
.bvpcp-dock-artwork-upload p {
    margin-top: 0 !important;
    margin-bottom: 3px !important;
    font-size: 8px !important;
    line-height: 1.2 !important;
}

.bvpcp-dock-artwork-upload input[type="file"] {
    display: block;
    width: 100% !important;
    max-width: 100% !important;
    min-height: 34px;
    margin: 0 !important;
    padding: 4px !important;
    border: 1px solid #d6dce3 !important;
    border-radius: 8px !important;
    background: #fff !important;
    color: #303846 !important;
    font-size: 9px !important;
}

.bvpcp-cylinder-charge-notice {
    display: block;
    margin-top: 3px;
    color: #6e7784;
    font-size: 8px;
    font-weight: 750;
}

.bvpcp-dock-design-unavailable {
    grid-column: 1 / -1;
    margin: 0;
    padding: 7px 9px;
    border-radius: 8px;
    font-size: 9px;
}

.bvpcp-dock-purchase-body {
    border-top: 1px solid #edf0f2;
}

.bvpcp-dock-control-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(150px, 1fr);
    align-items: end;
    gap: 12px;
    padding: 7px 0;
}

.bvpcp-purchase-dock .bvpcp-procurement-block {
    min-width: 0;
    padding: 0;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch {
    display: flex;
    gap: 6px;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch button {
    flex: 1 1 0;
    width: auto !important;
    min-width: 0 !important;
    min-height: 36px !important;
    height: 36px !important;
    margin: 0 !important;
    padding: 5px 9px !important;
    border-radius: 9px !important;
    font-size: 10px !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
}

.bvpcp-dock-quantity-block {
    min-width: 0;
}

.bvpcp-dock-quantity-block .bvpcp-control-label {
    text-align: right;
}

.bvpcp-dock-quantity-block .bvpcp-control-label small {
    color: #9aa2ac;
    font-size: 8px;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: none;
}

.bvpcp-purchase-dock .bvpcp-quantity-control {
    display: grid !important;
    grid-template-columns: 36px minmax(48px, 1fr) 36px !important;
    width: 150px !important;
    max-width: 100% !important;
    margin-left: auto;
    border-radius: 9px;
}

.bvpcp-purchase-dock .bvpcp-quantity-control button,
.bvpcp-purchase-dock .bvpcp-quantity-control input {
    min-height: 36px !important;
    height: 36px !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control button {
    padding: 0 !important;
    font-size: 17px !important;
    line-height: 1 !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control input {
    padding: 0 3px !important;
    font-size: 12px !important;
}

.bvpcp-dock-tier-hint {
    margin: 0 0 7px;
    padding: 6px 8px;
    border-radius: 8px;
    font-size: 9px;
    line-height: 1.3;
}

.bvpcp-dock-final-row {
    display: grid;
    grid-template-columns: minmax(120px, .78fr) minmax(180px, 1.22fr);
    align-items: stretch;
    gap: 10px;
    padding: 7px 0 0;
    border-top: 1px solid #edf0f2;
}

.bvpcp-dock-total-block {
    min-width: 0;
    align-self: center;
}

.bvpcp-dock-total-block > span {
    display: block;
    color: #7b8490;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .045em;
    line-height: 1.1;
    text-transform: uppercase;
}

.bvpcp-dock-total-block > strong {
    display: block;
    margin-top: 2px;
    overflow: hidden;
    color: #111827;
    font-size: 18px;
    font-weight: 900;
    line-height: 1.05;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bvpcp-dock-total-block > small {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 2px;
    margin-top: 3px;
    color: #667085;
    font-size: 9px;
    font-weight: 700;
    line-height: 1.2;
}

.bvpcp-dock-total-block .bvpcp-unit-economics {
    display: inline;
    margin: 0 0 0 3px;
    color: #7b8490;
    font-size: 8px;
}

.bvpcp-dock-add-button {
    width: 100% !important;
    min-height: 48px !important;
    margin: 0 !important;
    padding: 10px 15px !important;
    border: 1px solid #111827 !important;
    border-radius: 11px !important;
    background: #111827 !important;
    color: #fff !important;
    font: inherit !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    text-transform: none !important;
    box-shadow: none !important;
}

.bvpcp-dock-add-button:disabled {
    border-color: #d9dee4 !important;
    background: #e8ecf0 !important;
    color: #949da8 !important;
}

.bvpcp-dock-message {
    margin: 7px 0 0;
    padding: 6px 8px;
    border-radius: 8px;
    font-size: 9px;
    line-height: 1.35;
}

.bvpcp-dock-message a {
    margin-left: 6px;
    font-weight: 850;
}

.bvpcp-dock-data-sinks {
    display: none !important;
}

/* The old thin sticky bar is replaced by the complete purchase dock. */
.bvpcp-product-sticky-bar,
.bvpcp-commercial-card,
.bvpcp-tier-card {
    display: none !important;
}

@media (min-width: 900px) {
    .bvpcp-product-hero {
        display: grid;
        grid-template-columns: minmax(340px, .82fr) minmax(0, 1.18fr);
        align-items: stretch;
    }

    .bvpcp-product-foundation-image-wrap {
        min-height: 390px;
        border-right: 1px solid #eef0f2;
    }

    .bvpcp-product-foundation-content {
        display: flex;
        flex-direction: column;
        justify-content: center;
        padding: 28px 32px;
        border-top: 0;
    }

    .bvpcp-product-info-wide .bvpcp-specification-list {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }

    .bvpcp-product-info-wide .bvpcp-specification-list > div,
    .bvpcp-product-info-wide .bvpcp-specification-list > div:nth-child(2n) {
        display: block;
        border-right: 1px solid #edf0f2;
    }

    .bvpcp-product-info-wide .bvpcp-specification-list > div:nth-child(4n) {
        border-right: 0;
    }

    .bvpcp-product-info-wide .bvpcp-specification-list dd {
        margin-top: 5px;
        text-align: left;
    }

}

@media (max-width: 767px) {
    body.bvpcp-mobile-product-foundation-active .bvpcp-product-foundation {
        padding: 10px 8px calc(var(--bvpcp-purchase-dock-height, 210px) + var(--bvpcp-mobile-footer-offset, 76px) + 14px);
    }

    .bvpcp-product-foundation-shell {
        width: 100%;
        max-width: none;
    }

    .bvpcp-product-foundation-card,
    .bvpcp-product-info-card,
    .bvpcp-product-details-card {
        border-radius: 14px;
    }

    .bvpcp-product-foundation-content {
        padding: 15px 14px;
    }

    .bvpcp-product-info-wide .bvpcp-specification-list {
        grid-template-columns: 1fr;
    }

    .bvpcp-product-info-wide .bvpcp-specification-list > div,
    .bvpcp-product-info-wide .bvpcp-specification-list > div:nth-child(2n) {
        border-right: 0;
    }

    .bvpcp-purchase-dock {
        bottom: var(--bvpcp-mobile-footer-offset, 76px);
        max-height: min(29vh, 268px);
        padding-bottom: env(safe-area-inset-bottom, 0px);
    }

    .bvpcp-purchase-dock-inner {
        padding: 7px 10px 8px;
    }

    .bvpcp-dock-summary-row {
        gap: 5px;
        font-size: 9px;
    }

    .bvpcp-dock-product-name {
        max-width: 34%;
        font-size: 10px;
    }

    .bvpcp-dock-control-row {
        grid-template-columns: minmax(0, 1fr) minmax(136px, .9fr);
        gap: 8px;
    }

    .bvpcp-purchase-dock .bvpcp-quantity-control {
        width: 136px !important;
        grid-template-columns: 34px minmax(44px, 1fr) 34px !important;
    }

    .bvpcp-dock-final-row {
        grid-template-columns: minmax(110px, .72fr) minmax(150px, 1.28fr);
        gap: 8px;
    }

    .bvpcp-dock-total-block > strong {
        font-size: 16px;
    }

    .bvpcp-dock-add-button {
        min-height: 46px !important;
    }
}

@media (max-width: 390px) {
    .bvpcp-dock-summary-row {
        overflow: hidden;
    }

    .bvpcp-dock-product-name {
        max-width: 30%;
    }

    .bvpcp-dock-control-row {
        grid-template-columns: minmax(0, 1fr) minmax(126px, .9fr);
    }

    .bvpcp-purchase-dock .bvpcp-quantity-control {
        width: 126px !important;
        grid-template-columns: 32px minmax(40px, 1fr) 32px !important;
    }

    .bvpcp-dock-final-row {
        grid-template-columns: minmax(98px, .68fr) minmax(146px, 1.32fr);
    }
}

/* ============================================================
 * v1.5.1.3 — Compact 30% purchase dock + static product pricing
 * ============================================================ */
.bvpcp-static-price-ladder,
.bvpcp-design-info-card {
    width: 100%;
}

.bvpcp-static-price-ladder-rows {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    border-top: 1px solid #edf0f2;
}

.bvpcp-static-price-row {
    min-width: 0;
    padding: 10px 12px;
    border-right: 1px solid #edf0f2;
    border-bottom: 1px solid #edf0f2;
}

.bvpcp-static-price-row:nth-child(4n) {
    border-right: 0;
}

.bvpcp-static-price-row > span,
.bvpcp-static-price-row > strong {
    display: block;
}

.bvpcp-static-price-row > span {
    color: #667085;
    font-size: 10px;
    font-weight: 750;
    line-height: 1.25;
}

.bvpcp-static-price-row > span em {
    display: inline-block;
    margin-right: 5px;
    padding: 2px 5px;
    border-radius: 999px;
    background: #111827;
    color: #fff;
    font-size: 7px;
    font-style: normal;
    font-weight: 850;
    letter-spacing: .04em;
}

.bvpcp-static-price-row > strong {
    margin-top: 5px;
    color: #111827;
    font-size: 14px;
    font-weight: 900;
    line-height: 1.15;
}

.bvpcp-static-price-row > strong small,
.bvpcp-static-price-row > strong b {
    margin-left: 3px;
    font-size: 8px;
    font-weight: 750;
}

.bvpcp-static-price-row > strong b {
    color: #277a49;
}

.bvpcp-static-price-row.is-box-rate {
    background: #f7f8fa;
}

.bvpcp-static-price-ladder-note {
    margin: 0;
    padding: 8px 12px 10px;
    color: #7b8490;
    font-size: 9px;
    font-weight: 650;
    line-height: 1.35;
}

.bvpcp-design-info-body {
    padding: 12px;
    color: #48515e;
    font-size: 11px;
    line-height: 1.55;
}

.bvpcp-design-info-body p {
    margin: 0;
}

.bvpcp-design-info-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
}

.bvpcp-design-info-grid > div {
    padding: 10px;
    border: 1px solid #e7e9ed;
    border-radius: 10px;
    background: #fafbfc;
}

.bvpcp-design-info-grid span,
.bvpcp-design-info-grid strong,
.bvpcp-design-info-grid small {
    display: block;
}

.bvpcp-design-info-grid span {
    color: #7a8490;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.bvpcp-design-info-grid strong {
    margin-top: 3px;
    color: #111827;
    font-size: 11px;
    font-weight: 850;
}

.bvpcp-design-info-grid small {
    margin-top: 4px;
    color: #6e7784;
    font-size: 9px;
    line-height: 1.4;
}

/* Cart-style related-product recommendation treatment. */
.bvpcp-related-section {
    margin-top: 10px;
    padding: 12px;
    border: 1px solid #e8e8e8;
    border-radius: 14px;
    background: #fff;
    overflow: hidden;
}

.bvpcp-related-heading {
    margin-bottom: 10px;
    padding: 0;
}

.bvpcp-related-heading span {
    margin-bottom: 2px;
    color: #8a8a8a;
    font-size: 7.5px;
    letter-spacing: .09em;
}

.bvpcp-related-heading h2 {
    margin: 0 !important;
    color: #171717 !important;
    font-size: 15px !important;
    font-weight: 800 !important;
}

.bvpcp-related-scroller {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: initial;
    gap: 8px;
    overflow: visible;
    padding: 0;
}

.bvpcp-related-product {
    min-width: 0;
    padding: 7px;
    overflow: visible;
    border: 1px solid #ececec;
    border-radius: 11px;
    background: #fff;
}

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

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

.bvpcp-related-product-body {
    min-width: 0;
    padding-top: 7px;
}

.bvpcp-related-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-related-price {
    min-height: 18px;
    margin-top: 5px;
    color: #1a1a1a;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.25;
}

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

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

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

.bvpcp-related-action {
    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;
    font-size: 8.5px !important;
    font-weight: 800 !important;
    letter-spacing: .02em !important;
    line-height: 1.1 !important;
    text-align: center !important;
    text-decoration: none !important;
    text-transform: none !important;
}

/* Purchase dock: allow up to ~30% viewport, but consume less height per row. */
.bvpcp-purchase-dock {
    max-height: min(30vh, 300px);
}

.bvpcp-purchase-dock-inner {
    padding-top: 6px;
    padding-bottom: 7px;
}

.bvpcp-dock-summary-row {
    min-height: 20px;
    padding-bottom: 4px;
    gap: 5px;
}

.bvpcp-dock-product-name {
    flex: 1 1 auto;
    max-width: 58%;
}

.bvpcp-dock-summary-row [data-bvpcp-dock-size] {
    flex: 0 1 auto;
    max-width: 28%;
}

.bvpcp-dock-summary-row [data-bvpcp-dock-total-content] {
    flex: 0 0 auto;
    max-width: 28%;
    color: #111827;
}

.bvpcp-dock-variation-form {
    padding: 4px 0;
}

.bvpcp-dock-attribute-row {
    display: flex;
    align-items: flex-end;
    gap: 6px;
}

.bvpcp-dock-attribute-field {
    flex: 1 1 0;
    width: auto;
}

.bvpcp-dock-attribute-row.has-one-attribute .bvpcp-dock-attribute-field {
    flex: 0 1 58%;
    max-width: 230px;
}

.bvpcp-dock-attribute-field label,
.bvpcp-dock-design-type label,
.bvpcp-dock-design-id label,
.bvpcp-dock-design-label,
.bvpcp-purchase-dock .bvpcp-control-label {
    margin-bottom: 2px;
    font-size: 7px;
    letter-spacing: .035em;
}

.bvpcp-dock-attribute-select,
.bvpcp-dock-design-type select,
.bvpcp-dock-design-id input[type="text"] {
    height: 31px !important;
    min-height: 31px !important;
    padding: 4px 26px 4px 8px !important;
    border-radius: 7px !important;
    font-size: 9px !important;
}

.bvpcp-dock-customization-row {
    padding: 4px 0;
}

.bvpcp-dock-design-form {
    grid-template-columns: minmax(100px, .7fr) minmax(0, 1.3fr);
    gap: 6px;
}

/* Replace the oversized cloud-style uploader with a compact owned treatment. */
.bvpcp-dock-artwork-upload .wau_wrapper_div,
.bvpcp-dock-artwork-upload .wau_wrapper_div > div {
    position: relative !important;
    min-height: 32px !important;
    max-height: 38px !important;
    margin: 0 !important;
    padding: 3px 6px !important;
    overflow: hidden !important;
    border: 1px solid #d6dce3 !important;
    border-radius: 7px !important;
    background: #fff !important;
    box-sizing: border-box !important;
}

.bvpcp-dock-artwork-upload .wau_wrapper_div svg,
.bvpcp-dock-artwork-upload .wau_wrapper_div img,
.bvpcp-dock-artwork-upload .wau_wrapper_div i,
.bvpcp-dock-artwork-upload .wau_wrapper_div .dashicons {
    display: none !important;
}

.bvpcp-dock-artwork-upload .wau_wrapper_div::before {
    content: "↑";
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 22px;
    margin-right: 6px;
    border-radius: 6px;
    background: #111827;
    color: #fff;
    font-size: 13px;
    font-weight: 900;
    vertical-align: middle;
}

.bvpcp-dock-artwork-upload input[type="file"] {
    min-height: 31px !important;
    height: 31px !important;
    padding: 3px 5px !important;
    border-radius: 7px !important;
    font-size: 8px !important;
}

.bvpcp-dock-purchase-body {
    border-top: 1px solid #edf0f2;
}

.bvpcp-dock-control-row {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: end;
    gap: 8px;
    padding: 4px 0;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch,
.bvpcp-purchase-dock .bvpcp-quantity-control {
    width: 132px !important;
    max-width: 100% !important;
    height: 32px !important;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch {
    margin-right: auto;
    gap: 4px;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch button {
    min-height: 32px !important;
    height: 32px !important;
    padding: 4px 7px !important;
    border-radius: 7px !important;
    font-size: 9px !important;
}

.bvpcp-dock-quantity-block .bvpcp-control-label {
    text-align: right;
}

.bvpcp-purchase-dock .bvpcp-quantity-control {
    grid-template-columns: 32px minmax(48px, 68px) 32px !important;
    margin-left: auto;
    border-radius: 7px;
}

.bvpcp-purchase-dock .bvpcp-quantity-control button,
.bvpcp-purchase-dock .bvpcp-quantity-control input {
    min-height: 32px !important;
    height: 32px !important;
}

.bvpcp-dock-tier-hint {
    margin: 0 0 4px;
    padding: 4px 7px;
    font-size: 8px;
    line-height: 1.25;
}

.bvpcp-dock-final-row {
    grid-template-columns: minmax(116px, .72fr) minmax(150px, 1.28fr);
    gap: 7px;
    padding: 4px 0 0;
}

.bvpcp-dock-total-block {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: baseline;
    column-gap: 5px;
}

.bvpcp-dock-total-block > span {
    grid-column: 1;
    font-size: 7px;
}

.bvpcp-dock-total-block > strong {
    grid-column: 1 / -1;
    margin-top: 1px;
    font-size: 15px;
}

.bvpcp-dock-total-block > small {
    grid-column: 1 / -1;
    margin-top: 1px;
    gap: 1px;
    font-size: 8px;
    white-space: nowrap;
}

.bvpcp-dock-add-button {
    min-height: 40px !important;
    height: 40px !important;
    padding: 7px 12px !important;
    border-radius: 9px !important;
    font-size: 11px !important;
}

@media (max-width: 767px) {
    .bvpcp-static-price-ladder-rows {
        display: flex;
        gap: 7px;
        overflow-x: auto;
        padding: 9px 10px 4px;
        scrollbar-width: none;
        -webkit-overflow-scrolling: touch;
    }

    .bvpcp-static-price-ladder-rows::-webkit-scrollbar {
        display: none;
    }

    .bvpcp-static-price-row {
        flex: 0 0 118px;
        padding: 8px 9px;
        border: 1px solid #e8ebef;
        border-radius: 9px;
    }

    .bvpcp-static-price-ladder-note {
        padding: 5px 10px 9px;
    }

    .bvpcp-design-info-grid {
        grid-template-columns: 1fr 1fr;
        gap: 7px;
    }

    .bvpcp-related-section {
        margin-top: 8px;
        padding: 10px 0 10px 10px;
        border-radius: 13px;
    }

    .bvpcp-related-heading {
        margin: 0 10px 8px 0;
    }

    .bvpcp-related-heading span {
        font-size: 6.5px;
    }

    .bvpcp-related-heading h2 {
        font-size: 13px !important;
    }

    .bvpcp-related-scroller {
        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-related-scroller::-webkit-scrollbar {
        display: none;
    }

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

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

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

    .bvpcp-related-action {
        min-height: 27px !important;
        margin-top: 6px !important;
        font-size: 8px !important;
    }

    .bvpcp-purchase-dock {
        max-height: min(30vh, 300px);
    }

    .bvpcp-purchase-dock-inner {
        padding: 5px 9px 6px;
    }

    .bvpcp-dock-product-name {
        max-width: 56%;
        font-size: 9.5px;
    }

    .bvpcp-dock-summary-row [data-bvpcp-dock-size] {
        max-width: 27%;
    }

    .bvpcp-dock-control-row {
        grid-template-columns: 1fr 1fr;
        gap: 6px;
    }

    .bvpcp-purchase-dock .bvpcp-procurement-switch,
    .bvpcp-purchase-dock .bvpcp-quantity-control {
        width: 126px !important;
    }

    .bvpcp-dock-final-row {
        grid-template-columns: minmax(105px, .7fr) minmax(148px, 1.3fr);
        gap: 6px;
    }
}

@media (max-width: 390px) {
    .bvpcp-dock-product-name {
        max-width: 52%;
    }

    .bvpcp-dock-attribute-row.has-one-attribute .bvpcp-dock-attribute-field {
        flex-basis: 64%;
    }

    .bvpcp-purchase-dock .bvpcp-procurement-switch,
    .bvpcp-purchase-dock .bvpcp-quantity-control {
        width: 118px !important;
    }
}

/* v1.5.1.3 uploader hardening for File Uploads Addon/browser controls. */
.bvpcp-dock-artwork-upload .wau_wrapper_div {
    background-image: none !important;
    box-shadow: none !important;
}

.bvpcp-dock-artwork-upload input[type="file"]::file-selector-button {
    height: 24px;
    margin-right: 6px;
    padding: 3px 7px;
    border: 0;
    border-radius: 5px;
    background: #111827;
    color: #fff;
    font-size: 8px;
    font-weight: 800;
    cursor: pointer;
}


/* ============================================================
 * v1.5.1.4 — 35% purchase dock + owned pickers + upload modal
 * ============================================================ */

/* Product-page-only header removal. Keep wp_head/get_header lifecycle intact,
 * but remove the visible Neytri/Elementor header from the owned product view. */
body.bvpcp-mobile-product-foundation-active header.site-header,
body.bvpcp-mobile-product-foundation-active #header-wrapper,
body.bvpcp-mobile-product-foundation-active .site-header,
body.bvpcp-mobile-product-foundation-active .wdt-header-menu,
body.bvpcp-mobile-product-foundation-active .wdt-header-menu-wrapper,
body.bvpcp-mobile-product-foundation-active .wdt-header-wrapper,
body.bvpcp-mobile-product-foundation-active .elementor-location-header,
body.bvpcp-mobile-product-foundation-active .elementor-location-header > .elementor,
body.bvpcp-mobile-product-foundation-active .elementor-location-header .elementor-section-wrap {
    display: none !important;
}

body.bvpcp-mobile-product-foundation-active .site-content,
body.bvpcp-mobile-product-foundation-active .content-area,
body.bvpcp-mobile-product-foundation-active .site-main,
body.bvpcp-mobile-product-foundation-active #main,
body.bvpcp-mobile-product-foundation-active #primary {
    margin-top: 0 !important;
    padding-top: 0 !important;
}

/* Real table, not card-like ladder tiles. */
.bvpcp-price-table-wrap {
    width: 100%;
    overflow-x: auto;
    border-top: 1px solid #edf0f2;
    -webkit-overflow-scrolling: touch;
}

.bvpcp-price-table {
    width: 100%;
    min-width: 420px;
    border-collapse: collapse;
    border-spacing: 0;
    color: #111827;
    font-size: 11px;
}

.bvpcp-price-table th,
.bvpcp-price-table td {
    padding: 10px 12px;
    border-bottom: 1px solid #edf0f2;
    text-align: left;
    vertical-align: middle;
}

.bvpcp-price-table th {
    background: #f7f8fa;
    color: #667085;
    font-size: 9px;
    font-weight: 850;
    letter-spacing: .035em;
    text-transform: uppercase;
}

.bvpcp-price-table td:nth-child(2),
.bvpcp-price-table th:nth-child(2) {
    text-align: right;
}

.bvpcp-price-table td:nth-child(3),
.bvpcp-price-table th:nth-child(3) {
    text-align: right;
}

.bvpcp-price-table td strong {
    font-size: 12px;
    font-weight: 900;
}

.bvpcp-price-table td small {
    color: #667085;
    font-size: 9px;
    font-weight: 750;
}

.bvpcp-price-table tr.is-box-rate td {
    background: #f8fafc;
    font-weight: 800;
}

/* Kill the previous tile layout completely. */
.bvpcp-static-price-ladder-rows {
    display: table-row-group !important;
    border: 0 !important;
}

.bvpcp-static-price-row {
    display: none !important;
}

/* Native selects remain the WooCommerce source of truth but are not the
 * customer interaction surface, which prevents theme Select2/search keyboard. */
.bvpcp-native-select {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
    overflow: hidden !important;
}

.bvpcp-dock-attribute-field > label,
.bvpcp-dock-design-type > label {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    clip: rect(0 0 0 0) !important;
    clip-path: inset(50%) !important;
}

.bvpcp-dock-attribute-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: center;
    gap: 8px;
}

.bvpcp-dock-attribute-row.has-one-attribute {
    display: flex;
    justify-content: center;
}

.bvpcp-dock-attribute-row.has-one-attribute .bvpcp-dock-attribute-field {
    flex: 0 0 92%;
    width: 92%;
    max-width: 92%;
}

.bvpcp-attribute-picker-trigger {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    min-height: 39px !important;
    margin: 0 !important;
    padding: 6px 9px 6px 11px !important;
    border: 1px solid #d8dde5 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #111827 !important;
    box-shadow: 0 1px 2px rgba(17,24,39,.03) !important;
    text-align: left !important;
    font-family: inherit !important;
    cursor: pointer;
}

.bvpcp-attribute-picker-trigger.has-value {
    border-color: #111827 !important;
}

.bvpcp-picker-trigger-copy {
    display: block;
    min-width: 0;
}

.bvpcp-picker-trigger-copy small,
.bvpcp-picker-trigger-copy strong {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bvpcp-picker-trigger-copy small {
    margin-bottom: 1px;
    color: #7b8490;
    font-size: 7px;
    font-weight: 850;
    letter-spacing: .035em;
    line-height: 1.1;
    text-transform: uppercase;
}

.bvpcp-picker-trigger-copy strong {
    color: #111827;
    font-size: 10px;
    font-weight: 850;
    line-height: 1.2;
}

.bvpcp-attribute-picker-trigger > svg {
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    margin-left: 6px;
    color: #667085;
}

/* Quantity and Buy As now occupy matched halves with identical control height. */
.bvpcp-dock-control-row {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    align-items: end !important;
    gap: 8px !important;
}

.bvpcp-purchase-dock .bvpcp-procurement-block,
.bvpcp-dock-quantity-block {
    min-width: 0;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch,
.bvpcp-purchase-dock .bvpcp-quantity-control {
    width: 100% !important;
    max-width: none !important;
    height: 38px !important;
    min-height: 38px !important;
    margin: 0 !important;
    border-radius: 9px !important;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch {
    padding: 3px !important;
    border: 1px solid #d8dde5 !important;
    background: #f6f7f9 !important;
    gap: 3px !important;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch button {
    min-height: 30px !important;
    height: 30px !important;
    padding: 3px 6px !important;
    border-radius: 7px !important;
    font-size: 9px !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control {
    display: grid !important;
    grid-template-columns: 38px minmax(0, 1fr) 38px !important;
    overflow: hidden;
    border: 1px solid #d8dde5 !important;
    background: #fff !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control button,
.bvpcp-purchase-dock .bvpcp-quantity-control input {
    width: 100% !important;
    min-width: 0 !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control button {
    color: #111827 !important;
    font-size: 16px !important;
    font-weight: 650 !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control input {
    padding: 0 4px !important;
    border-left: 1px solid #edf0f2 !important;
    border-right: 1px solid #edf0f2 !important;
    color: #111827 !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    line-height: 36px !important;
    text-align: center !important;
    appearance: textfield;
    -moz-appearance: textfield;
}

.bvpcp-dock-quantity-block .bvpcp-control-label {
    text-align: left !important;
}

/* Bigger CTA with the entire final row aligned on a single central axis. */
.bvpcp-dock-final-row {
    display: grid !important;
    grid-template-columns: minmax(104px, .58fr) minmax(170px, 1.42fr) !important;
    align-items: center !important;
    gap: 8px !important;
    padding-top: 6px !important;
}

.bvpcp-dock-total-block {
    align-content: center !important;
    min-height: 48px;
}

.bvpcp-dock-total-block > strong {
    margin: 0 !important;
    font-size: 16px !important;
    line-height: 1.05 !important;
}

.bvpcp-dock-total-block > small {
    margin-top: 3px !important;
    font-size: 8px !important;
}

.bvpcp-dock-add-button {
    min-height: 48px !important;
    height: 48px !important;
    padding: 8px 14px !important;
    border-radius: 11px !important;
    font-size: 12px !important;
    line-height: 1 !important;
}

/* Owned artwork launcher. The real upload field stays in the form for FormData. */
.bvpcp-native-upload-field {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    overflow: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

.bvpcp-upload-launcher {
    display: flex !important;
    align-items: center;
    width: 100% !important;
    min-height: 39px !important;
    margin: 0 !important;
    padding: 5px 8px !important;
    border: 1px solid #d8dde5 !important;
    border-radius: 10px !important;
    background: #fff !important;
    color: #111827 !important;
    text-align: left !important;
    cursor: pointer;
}

.bvpcp-upload-launcher-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    margin-right: 7px;
    border-radius: 8px;
    background: #111827;
    color: #fff;
}

.bvpcp-upload-launcher-icon svg {
    width: 16px;
    height: 16px;
}

.bvpcp-upload-launcher-copy {
    min-width: 0;
}

.bvpcp-upload-launcher-copy strong,
.bvpcp-upload-launcher-copy small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.bvpcp-upload-launcher-copy strong {
    font-size: 9px;
    font-weight: 850;
}

.bvpcp-upload-launcher-copy small {
    margin-top: 1px;
    color: #7b8490;
    font-size: 7px;
    font-weight: 700;
}

/* No-search choice sheet: there is literally no text input, so mobile
 * keyboards cannot open when choosing a product attribute. */
.bvpcp-choice-sheet,
.bvpcp-upload-modal {
    position: fixed;
    z-index: 100500;
    inset: 0;
}

.bvpcp-choice-sheet[hidden],
.bvpcp-upload-modal[hidden] {
    display: none !important;
}

.bvpcp-choice-sheet-backdrop,
.bvpcp-upload-modal-backdrop {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: rgba(15, 23, 42, .48) !important;
}

.bvpcp-choice-sheet-panel {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    max-height: min(64vh, 520px);
    overflow: auto;
    padding: 14px 14px calc(16px + env(safe-area-inset-bottom));
    border-radius: 18px 18px 0 0;
    background: #fff;
    box-shadow: 0 -18px 45px rgba(15,23,42,.18);
}

.bvpcp-choice-sheet-head,
.bvpcp-upload-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.bvpcp-choice-sheet-head small,
.bvpcp-upload-modal-head small {
    display: block;
    margin-bottom: 2px;
    color: #7b8490;
    font-size: 8px;
    font-weight: 850;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.bvpcp-choice-sheet-head strong,
.bvpcp-upload-modal-head strong {
    color: #111827;
    font-size: 16px;
    font-weight: 900;
}

.bvpcp-sheet-close {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    flex: 0 0 34px;
    width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #f1f3f5 !important;
    color: #111827 !important;
    font-size: 21px !important;
    font-weight: 500 !important;
    line-height: 1 !important;
}

.bvpcp-choice-options {
    display: grid;
    gap: 7px;
}

.bvpcp-choice-option {
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    width: 100% !important;
    min-height: 46px !important;
    margin: 0 !important;
    padding: 9px 12px !important;
    border: 1px solid #e0e4e9 !important;
    border-radius: 11px !important;
    background: #fff !important;
    color: #111827 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-align: left !important;
}

.bvpcp-choice-option.is-selected {
    border-color: #111827 !important;
    background: #111827 !important;
    color: #fff !important;
}

.bvpcp-choice-option strong {
    font-size: 8px;
    font-weight: 850;
    opacity: .8;
}

body.bvpcp-choice-sheet-open,
body.bvpcp-upload-modal-open {
    overflow: hidden !important;
}

/* Artwork preview modal. */
.bvpcp-upload-modal-panel {
    position: absolute;
    top: 50%;
    left: 50%;
    width: min(92vw, 460px);
    max-height: 82vh;
    overflow: auto;
    padding: 14px;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 24px 70px rgba(15,23,42,.25);
    transform: translate(-50%, -50%);
}

.bvpcp-upload-preview {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 210px;
    overflow: hidden;
    border: 1px dashed #cfd5dd;
    border-radius: 12px;
    background: #f8fafc;
}

.bvpcp-upload-preview-placeholder {
    max-width: 250px;
    padding: 20px;
    color: #7b8490;
    text-align: center;
}

.bvpcp-upload-preview-placeholder svg {
    width: 42px;
    height: 42px;
    margin-bottom: 8px;
    color: #111827;
}

.bvpcp-upload-preview-placeholder strong,
.bvpcp-upload-preview-placeholder span {
    display: block;
}

.bvpcp-upload-preview-placeholder strong {
    color: #111827;
    font-size: 12px;
    font-weight: 900;
}

.bvpcp-upload-preview-placeholder span {
    margin-top: 4px;
    font-size: 9px;
    line-height: 1.45;
}

.bvpcp-upload-preview img {
    display: block;
    width: 100%;
    max-height: 330px;
    object-fit: contain;
}

.bvpcp-upload-file-summary {
    padding: 20px;
    color: #111827;
    font-size: 11px;
    font-weight: 850;
    text-align: center;
}

.bvpcp-upload-modal-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 7px;
    margin-top: 10px;
}

.bvpcp-upload-modal-actions button {
    min-height: 40px !important;
    margin: 0 !important;
    padding: 7px 11px !important;
    border-radius: 9px !important;
    font-size: 10px !important;
    font-weight: 850 !important;
}

.bvpcp-upload-choose {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 6px;
    border: 0 !important;
    background: #111827 !important;
    color: #fff !important;
}

.bvpcp-upload-choose svg {
    width: 16px;
    height: 16px;
}

.bvpcp-upload-remove,
.bvpcp-upload-done {
    border: 1px solid #d8dde5 !important;
    background: #fff !important;
    color: #111827 !important;
}

@media (max-width: 767px) {
    .bvpcp-purchase-dock {
        height: min(35dvh, 340px) !important;
        max-height: min(35dvh, 340px) !important;
        overflow-y: auto !important;
    }

    .bvpcp-purchase-dock-inner {
        min-height: 100%;
        padding: 6px 10px calc(7px + env(safe-area-inset-bottom)) !important;
    }

    .bvpcp-product-foundation-shell {
        padding-bottom: calc(var(--bvpcp-purchase-dock-height, 280px) + var(--bvpcp-mobile-footer-offset, 76px) + 14px) !important;
    }

    .bvpcp-dock-variation-form {
        padding: 5px 0 !important;
    }

    .bvpcp-price-table {
        min-width: 0;
        font-size: 10px;
    }

    .bvpcp-price-table th,
    .bvpcp-price-table td {
        padding: 9px 10px;
    }

    .bvpcp-dock-customization-row {
        padding: 5px 0 !important;
    }

    .bvpcp-dock-design-form {
        gap: 7px !important;
    }

    .bvpcp-dock-tier-hint {
        margin-bottom: 3px !important;
        padding: 4px 7px !important;
    }
}

@media (max-width: 390px) {
    .bvpcp-dock-attribute-row.has-one-attribute .bvpcp-dock-attribute-field {
        flex-basis: 94%;
        width: 94%;
        max-width: 94%;
    }

    .bvpcp-dock-final-row {
        grid-template-columns: minmax(96px, .55fr) minmax(158px, 1.45fr) !important;
    }

    .bvpcp-upload-modal-actions {
        grid-template-columns: 1fr 1fr;
    }

    .bvpcp-upload-choose {
        grid-column: 1 / -1;
    }
}

/* ============================================================
 * v1.5.1.5 — Product dock correction / duplicate selector removal
 * ============================================================ */

/* WooCommerce/the theme may enhance variation selects after our template has
 * rendered. The real selects stay in the DOM as Woo's state source, but every
 * native/select2 interaction surface is completely removed from layout. */
.bvpcp-purchase-dock .bvpcp-dock-attribute-field > select,
.bvpcp-purchase-dock .bvpcp-dock-attribute-field .bvpcp-native-select,
.bvpcp-purchase-dock .bvpcp-dock-attribute-field .select2,
.bvpcp-purchase-dock .bvpcp-dock-attribute-field .select2-container,
.bvpcp-purchase-dock .bvpcp-dock-attribute-field .select2-selection,
.bvpcp-purchase-dock .bvpcp-dock-design-type > select,
.bvpcp-purchase-dock .bvpcp-dock-design-type .select2,
.bvpcp-purchase-dock .bvpcp-dock-design-type .select2-container {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    min-width: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
    visibility: hidden !important;
}

/* Custom picker is the only visible attribute selector. */
.bvpcp-purchase-dock .bvpcp-dock-attribute-field {
    min-width: 0;
}

.bvpcp-purchase-dock .bvpcp-attribute-picker-trigger {
    min-height: 42px !important;
    padding: 6px 10px 6px 12px !important;
    border: 1px solid #d9dde3 !important;
    border-radius: 12px !important;
    background: #fff !important;
    box-shadow: 0 1px 3px rgba(17, 24, 39, .04) !important;
}

.bvpcp-purchase-dock .bvpcp-attribute-picker-trigger.has-value {
    border-color: #aeb6c2 !important;
    box-shadow: 0 0 0 1px rgba(17,24,39,.02) !important;
}

.bvpcp-purchase-dock .bvpcp-picker-trigger-copy small {
    font-size: 7.5px !important;
    line-height: 1.05 !important;
}

.bvpcp-purchase-dock .bvpcp-picker-trigger-copy strong {
    font-size: 11px !important;
    line-height: 1.2 !important;
}

/* Price ladder: table stays a real table, but visually belongs to the same
 * rounded BVP component system as Specifications and Product Details. */
.bvpcp-static-price-ladder .bvpcp-price-table-wrap {
    margin: 0 14px 10px;
    overflow: hidden;
    border: 1px solid #e4e7ec;
    border-radius: 12px;
    background: #fff;
}

.bvpcp-static-price-ladder .bvpcp-price-table {
    min-width: 0 !important;
    table-layout: fixed;
    font-size: 10.5px;
}

.bvpcp-static-price-ladder .bvpcp-price-table th:first-child,
.bvpcp-static-price-ladder .bvpcp-price-table td:first-child {
    width: 42%;
}

.bvpcp-static-price-ladder .bvpcp-price-table th:nth-child(2),
.bvpcp-static-price-ladder .bvpcp-price-table td:nth-child(2) {
    width: 33%;
}

.bvpcp-static-price-ladder .bvpcp-price-table th:nth-child(3),
.bvpcp-static-price-ladder .bvpcp-price-table td:nth-child(3) {
    width: 25%;
}

.bvpcp-static-price-ladder .bvpcp-price-table th {
    padding: 8px 10px !important;
    border-bottom: 1px solid #e4e7ec !important;
    background: #f6f7f8 !important;
    color: #667085 !important;
    font-size: 8px !important;
    letter-spacing: .055em !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table td {
    padding: 10px !important;
    border-bottom: 1px solid #eef0f3 !important;
    background: #fff;
    color: #344054;
    font-weight: 700;
}

.bvpcp-static-price-ladder .bvpcp-price-table tbody tr:last-child td {
    border-bottom: 0 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table tr.is-moq-tier td {
    background: #fbfbfc;
}

.bvpcp-static-price-ladder .bvpcp-price-table tr.is-box-rate td {
    background: #f4f5f7 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table td strong {
    display: inline;
    color: #101828;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table td small {
    display: inline;
    margin-left: 2px;
    color: #667085;
    font-size: 8px !important;
    font-weight: 700 !important;
}

.bvpcp-static-price-ladder .bvpcp-static-price-ladder-note {
    margin: 0 16px 14px !important;
    padding-top: 0 !important;
    color: #667085 !important;
    font-size: 9px !important;
    font-weight: 650 !important;
}

/* Matched Buy As / Quantity geometry. */
.bvpcp-purchase-dock .bvpcp-dock-control-row {
    gap: 8px !important;
    align-items: end !important;
}

.bvpcp-purchase-dock .bvpcp-control-label {
    min-height: 13px;
    margin: 0 0 3px !important;
    font-size: 7.5px !important;
    line-height: 1.1 !important;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch,
.bvpcp-purchase-dock .bvpcp-quantity-control {
    height: 42px !important;
    min-height: 42px !important;
    box-sizing: border-box !important;
    border: 1px solid #d9dde3 !important;
    border-radius: 12px !important;
    background: #fff !important;
    overflow: hidden !important;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch {
    padding: 3px !important;
    background: #f5f6f8 !important;
}

.bvpcp-purchase-dock .bvpcp-procurement-switch button {
    height: 34px !important;
    min-height: 34px !important;
    margin: 0 !important;
    padding: 0 7px !important;
    border: 0 !important;
    border-radius: 9px !important;
    font-size: 9.5px !important;
    line-height: 34px !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control {
    display: grid !important;
    grid-template-columns: 40px minmax(42px, 1fr) 40px !important;
    padding: 0 !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control button,
.bvpcp-purchase-dock .bvpcp-quantity-control input[data-bvpcp-quantity] {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-width: 0 !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
    line-height: 40px !important;
    box-sizing: border-box !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control button {
    color: #344054 !important;
    font-size: 17px !important;
    font-weight: 800 !important;
}

.bvpcp-purchase-dock .bvpcp-quantity-control input[data-bvpcp-quantity] {
    border-left: 1px solid #eef0f3 !important;
    border-right: 1px solid #eef0f3 !important;
    color: #101828 !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    text-align: center !important;
    appearance: textfield !important;
    -moz-appearance: textfield !important;
}

/* Cleaner total / CTA row: one central divider, larger rounded CTA and no
 * theme-induced edge-to-edge rectangle. */
.bvpcp-purchase-dock .bvpcp-dock-final-row {
    display: grid !important;
    grid-template-columns: minmax(112px, .62fr) minmax(175px, 1.38fr) !important;
    align-items: stretch !important;
    gap: 10px !important;
    margin-top: 5px !important;
    padding-top: 6px !important;
    border-top: 1px solid #eef0f3 !important;
}

.bvpcp-purchase-dock .bvpcp-dock-total-block {
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    min-width: 0;
    min-height: 52px !important;
    padding: 1px 10px 1px 0 !important;
    border-right: 1px solid #dfe3e8 !important;
}

.bvpcp-purchase-dock .bvpcp-dock-total-block > span {
    margin: 0 0 2px !important;
    font-size: 7.5px !important;
    line-height: 1 !important;
}

.bvpcp-purchase-dock .bvpcp-dock-total-block > strong {
    font-size: 17px !important;
    line-height: 1.05 !important;
}

.bvpcp-purchase-dock .bvpcp-dock-total-block > small {
    margin-top: 3px !important;
    font-size: 8px !important;
    line-height: 1.05 !important;
}

.bvpcp-purchase-dock .bvpcp-dock-add-button {
    width: 100% !important;
    min-height: 52px !important;
    height: 52px !important;
    margin: 0 !important;
    padding: 8px 16px !important;
    border: 0 !important;
    border-radius: 12px !important;
    background: #101828 !important;
    color: #fff !important;
    box-shadow: none !important;
    font-size: 12.5px !important;
    font-weight: 850 !important;
    line-height: 1 !important;
    text-align: center !important;
}

/* The option sheet must stop ABOVE the fixed BVP mobile footer. This prevents
 * the final option from living behind Home / Cart / Track / Account. */
@media (max-width: 767px) {
    .bvpcp-choice-sheet-panel {
        bottom: calc(var(--bvpcp-mobile-footer-offset, 76px) + env(safe-area-inset-bottom, 0px)) !important;
        max-height: min(
            62dvh,
            calc(100dvh - var(--bvpcp-mobile-footer-offset, 76px) - 86px)
        ) !important;
        padding: 12px 12px 14px !important;
        border-radius: 18px !important;
    }

    .bvpcp-choice-options {
        padding-bottom: 2px;
    }

    /* Exactly one overlay spacer. At the absolute end of the document the
     * final product card meets the top edge of the purchase dock instead of
     * continuing into a second blank scroll area. */
    body.bvpcp-mobile-product-foundation-active .bvpcp-product-foundation {
        padding-bottom: 0 !important;
    }

    .bvpcp-product-foundation-shell {
        padding-bottom: calc(
            var(--bvpcp-purchase-dock-height, 300px) +
            var(--bvpcp-mobile-footer-offset, 76px)
        ) !important;
    }
}

/* ============================================================
 * v1.5.1.6 — Dynamic dock + compact controls + table/related polish
 * ============================================================ */

/* Product price ladder: compact, full-width table with no theme border bleed. */
.bvpcp-static-price-ladder {
    overflow: hidden !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table-wrap {
    width: calc(100% - 24px) !important;
    max-width: calc(100% - 24px) !important;
    margin: 0 12px 10px !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
    border: 1px solid #e7eaf0 !important;
    border-radius: 12px !important;
    background: #fff !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    table-layout: fixed !important;
    border: 0 !important;
    border-collapse: collapse !important;
    background: #fff !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table th,
.bvpcp-static-price-ladder .bvpcp-price-table td {
    box-sizing: border-box !important;
    border: 0 !important;
    border-bottom: 1px solid #edf0f3 !important;
    background: transparent !important;
    vertical-align: middle !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table th {
    padding: 8px 9px !important;
    background: #f7f8fa !important;
    color: #667085 !important;
    font-size: 7.5px !important;
    font-weight: 850 !important;
    letter-spacing: .06em !important;
    line-height: 1.1 !important;
    text-transform: uppercase !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table td {
    padding: 9px !important;
    color: #1f2937 !important;
    font-size: 10px !important;
    line-height: 1.15 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table th:first-child,
.bvpcp-static-price-ladder .bvpcp-price-table td:first-child {
    width: 36% !important;
    text-align: left !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table th:nth-child(2),
.bvpcp-static-price-ladder .bvpcp-price-table td:nth-child(2) {
    width: 38% !important;
    text-align: right !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table th:nth-child(3),
.bvpcp-static-price-ladder .bvpcp-price-table td:nth-child(3) {
    width: 26% !important;
    text-align: right !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table td:nth-child(2),
.bvpcp-static-price-ladder .bvpcp-price-table td:nth-child(3) {
    white-space: nowrap !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table tbody tr:last-child td {
    border-bottom: 0 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table tr.is-moq-tier td {
    background: #fcfcfd !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table tr.is-box-rate td {
    background: #f8fafc !important;
}

.bvpcp-static-price-ladder .bvpcp-price-qty {
    display: block !important;
    color: #344054 !important;
    font-size: 10px !important;
    font-weight: 850 !important;
    line-height: 1.2 !important;
    white-space: normal !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table td:nth-child(2) > strong {
    display: inline !important;
    color: #111827 !important;
    font-size: 11px !important;
    font-weight: 900 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-table td:nth-child(2) > small {
    display: inline !important;
    margin-left: 2px !important;
    color: #7b8490 !important;
    font-size: 7.5px !important;
    font-weight: 700 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-saving-cell strong,
.bvpcp-static-price-ladder .bvpcp-price-saving-cell small {
    display: block !important;
    text-align: right !important;
}

.bvpcp-static-price-ladder .bvpcp-price-saving-cell strong {
    color: #344054 !important;
    font-size: 10px !important;
    font-weight: 900 !important;
    line-height: 1.05 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-saving-cell small {
    margin-top: 1px !important;
    color: #7b8490 !important;
    font-size: 7px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
}

.bvpcp-static-price-ladder .bvpcp-price-saving-dash {
    color: #98a2b3 !important;
    font-weight: 800 !important;
}

.bvpcp-static-price-ladder .bvpcp-static-price-ladder-note {
    margin: 0 14px 11px !important;
    font-size: 8px !important;
    line-height: 1.3 !important;
}

/* Related products: one clear starting commercial rate, never a min-max range. */
.bvpcp-related-price .bvpcp-related-starting-label {
    display: block;
    margin-bottom: 1px;
    color: #7b8490;
    font-size: 7px;
    font-weight: 750;
    line-height: 1.1;
    text-transform: none;
}

.bvpcp-related-price > .woocommerce-Price-amount,
.bvpcp-related-price > bdi {
    font-size: 11px !important;
    font-weight: 900 !important;
}

/* Purchase dock: actual content determines height; 50dvh is only a safety cap. */
@media (max-width: 767px) {
    .bvpcp-purchase-dock {
        height: auto !important;
        min-height: 0 !important;
        max-height: 50dvh !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
    }

    .bvpcp-purchase-dock-inner {
        min-height: 0 !important;
        padding: 6px 10px calc(6px + env(safe-area-inset-bottom)) !important;
    }

    .bvpcp-product-foundation-shell {
        padding-bottom: calc(
            var(--bvpcp-purchase-dock-height, 260px) +
            var(--bvpcp-mobile-footer-offset, 76px)
        ) !important;
    }

    /* Slightly stronger title while keeping the summary row compact. */
    .bvpcp-dock-summary-row {
        min-height: 22px !important;
        padding-bottom: 4px !important;
    }

    .bvpcp-dock-product-name {
        max-width: 62% !important;
        font-size: 12.5px !important;
        font-weight: 900 !important;
        line-height: 1.15 !important;
    }

    .bvpcp-dock-summary-row [data-bvpcp-dock-size],
    .bvpcp-dock-summary-row [data-bvpcp-dock-total-content] {
        font-size: 9px !important;
    }

    /* Attribute, design and purchase controls consume less vertical space. */
    .bvpcp-dock-variation-form {
        padding: 4px 0 !important;
    }

    .bvpcp-purchase-dock .bvpcp-attribute-picker-trigger,
    .bvpcp-purchase-dock .bvpcp-upload-launcher {
        min-height: 36px !important;
        height: 36px !important;
        padding-top: 4px !important;
        padding-bottom: 4px !important;
        border-radius: 9px !important;
    }

    .bvpcp-purchase-dock .bvpcp-upload-launcher-icon {
        flex-basis: 25px !important;
        width: 25px !important;
        height: 25px !important;
        margin-right: 6px !important;
        border-radius: 7px !important;
    }

    .bvpcp-purchase-dock .bvpcp-upload-launcher-icon svg {
        width: 14px !important;
        height: 14px !important;
    }

    .bvpcp-purchase-dock .bvpcp-upload-launcher-copy strong {
        font-size: 8.5px !important;
    }

    .bvpcp-purchase-dock .bvpcp-upload-launcher-copy small {
        font-size: 6.7px !important;
    }

    .bvpcp-purchase-dock .bvpcp-picker-trigger-copy small {
        font-size: 6.8px !important;
    }

    .bvpcp-purchase-dock .bvpcp-picker-trigger-copy strong {
        font-size: 10px !important;
    }

    .bvpcp-dock-customization-row {
        padding: 4px 0 !important;
    }

    .bvpcp-dock-design-form {
        gap: 6px !important;
    }

    .bvpcp-dock-control-row {
        gap: 7px !important;
        padding: 4px 0 !important;
    }

    .bvpcp-purchase-dock .bvpcp-control-label {
        min-height: 10px !important;
        margin-bottom: 2px !important;
        font-size: 6.8px !important;
    }

    .bvpcp-purchase-dock .bvpcp-procurement-switch,
    .bvpcp-purchase-dock .bvpcp-quantity-control {
        height: 36px !important;
        min-height: 36px !important;
        border-radius: 9px !important;
    }

    .bvpcp-purchase-dock .bvpcp-procurement-switch button {
        min-height: 28px !important;
        height: 28px !important;
        font-size: 8.8px !important;
    }

    .bvpcp-purchase-dock .bvpcp-quantity-control {
        grid-template-columns: 34px minmax(0, 1fr) 34px !important;
    }

    .bvpcp-purchase-dock .bvpcp-quantity-control button,
    .bvpcp-purchase-dock .bvpcp-quantity-control input[data-bvpcp-quantity] {
        height: 34px !important;
        min-height: 34px !important;
        line-height: 34px !important;
    }

    .bvpcp-purchase-dock .bvpcp-quantity-control button {
        font-size: 15px !important;
    }

    .bvpcp-purchase-dock .bvpcp-quantity-control input[data-bvpcp-quantity] {
        font-size: 12px !important;
    }

    .bvpcp-dock-tier-hint {
        margin-bottom: 3px !important;
        padding: 3px 7px !important;
        font-size: 7.8px !important;
        line-height: 1.2 !important;
    }

    /* Final row: total and CTA share the same vertical centre and divider. */
    .bvpcp-purchase-dock .bvpcp-dock-final-row {
        grid-template-columns: minmax(104px, 30%) minmax(0, 70%) !important;
        align-items: center !important;
        gap: 9px !important;
        margin-top: 2px !important;
        padding-top: 5px !important;
    }

    .bvpcp-purchase-dock .bvpcp-dock-total-block {
        display: flex !important;
        flex-direction: column !important;
        justify-content: center !important;
        min-height: 50px !important;
        padding: 0 9px 0 0 !important;
        border-right: 1px solid #dfe3e8 !important;
    }

    .bvpcp-purchase-dock .bvpcp-dock-total-block > span {
        margin-bottom: 2px !important;
        font-size: 6.8px !important;
    }

    .bvpcp-purchase-dock .bvpcp-dock-total-block > strong {
        font-size: 16px !important;
        line-height: 1 !important;
    }

    .bvpcp-purchase-dock .bvpcp-dock-total-block > small {
        margin-top: 3px !important;
        font-size: 7.5px !important;
        line-height: 1.1 !important;
        white-space: normal !important;
    }

    .bvpcp-purchase-dock .bvpcp-dock-add-button {
        align-self: center !important;
        min-height: 50px !important;
        height: 50px !important;
        padding: 8px 14px !important;
        border-radius: 12px !important;
        font-size: 12px !important;
        line-height: 1 !important;
    }
}


/* ============================================================
 * v1.5.1.7 — 30vh pinned-title dock + compact add confirmation
 * ============================================================ */

/* WooCommerce injects this after the custom button on added_to_cart.
 * The BVP inline message already contains the only View Cart action. */
.bvpcp-product-foundation .added_to_cart.wc-forward,
.bvpcp-product-foundation a.added_to_cart {
    display: none !important;
}

@media (max-width: 767px) {
    /* The complete purchase panel may occupy at most 30% of the viewport.
     * The summary/title row stays pinned; only the interaction body scrolls. */
    .bvpcp-purchase-dock {
        height: auto !important;
        min-height: 0 !important;
        max-height: 30dvh !important;
        overflow-x: hidden !important;
        overflow-y: auto !important;
        overscroll-behavior: contain !important;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
    }

    .bvpcp-purchase-dock-inner {
        min-height: 0 !important;
        padding: 0 10px calc(5px + env(safe-area-inset-bottom)) !important;
    }

    .bvpcp-dock-summary-row {
        position: sticky !important;
        top: 0 !important;
        z-index: 40 !important;
        margin: 0 -10px !important;
        min-height: 29px !important;
        padding: 6px 10px 5px !important;
        background: #fff !important;
        border-bottom: 1px solid #e8ebef !important;
        box-shadow: 0 3px 7px rgba(16, 24, 40, .04) !important;
    }

    /* Do not let selected Packet/Box physically shift. Selection is color only. */
    .bvpcp-purchase-dock .bvpcp-procurement-switch button,
    .bvpcp-purchase-dock .bvpcp-procurement-switch button[aria-pressed="false"],
    .bvpcp-purchase-dock .bvpcp-procurement-switch button[aria-pressed="true"],
    .bvpcp-purchase-dock .bvpcp-procurement-switch button.is-selected {
        position: static !important;
        top: auto !important;
        left: auto !important;
        transform: none !important;
        translate: none !important;
        scale: 1 !important;
        margin: 0 !important;
        height: 28px !important;
        min-height: 28px !important;
        padding: 0 7px !important;
        border: 1px solid transparent !important;
        border-radius: 8px !important;
        box-shadow: none !important;
        line-height: 26px !important;
        transition: background-color .14s ease, color .14s ease !important;
    }

    .bvpcp-purchase-dock .bvpcp-procurement-switch button[aria-pressed="false"] {
        background: transparent !important;
        color: #344054 !important;
    }

    .bvpcp-purchase-dock .bvpcp-procurement-switch button[aria-pressed="true"],
    .bvpcp-purchase-dock .bvpcp-procurement-switch button.is-selected {
        background: #111827 !important;
        color: #fff !important;
    }

    /* Keep the success state as a single compact line. */
    .bvpcp-purchase-dock .bvpcp-dock-message {
        min-height: 0 !important;
        margin: 5px 0 0 !important;
        padding: 6px 9px !important;
        border-radius: 8px !important;
        font-size: 8.5px !important;
        line-height: 1.2 !important;
    }

    .bvpcp-purchase-dock .bvpcp-dock-message a {
        display: inline !important;
        margin-left: 6px !important;
        padding: 0 !important;
        background: transparent !important;
        color: #176b3a !important;
        border: 0 !important;
        border-radius: 0 !important;
        font: inherit !important;
        font-weight: 850 !important;
        line-height: inherit !important;
        text-decoration: underline !important;
        box-shadow: none !important;
    }

    /* Content reserve follows the measured (<=30vh) dock height. */
    .bvpcp-product-foundation-shell {
        padding-bottom: calc(
            var(--bvpcp-purchase-dock-height, 220px) +
            var(--bvpcp-mobile-footer-offset, 76px)
        ) !important;
    }
}


/* ============================================================
 * v1.5.1.10 — Flush purchase dock / mobile-footer boundary
 * ============================================================ */
@media (max-width: 767px) {
    .bvpcp-purchase-dock {
        bottom: var(--bvpcp-mobile-footer-offset, 76px) !important;
        background: #fff !important;
        backdrop-filter: none !important;
        -webkit-backdrop-filter: none !important;
        box-shadow: 0 -7px 18px rgba(16, 24, 40, .08) !important;
        border-bottom: 0 !important;
        padding-bottom: 0 !important;
    }

    .bvpcp-purchase-dock-inner {
        background: #fff !important;
        padding-bottom: 5px !important;
    }

    /* Make the seam opaque even while the browser/footer is settling. */
    .bvpcp-purchase-dock::after {
        content: "";
        position: absolute;
        right: 0;
        bottom: -1px;
        left: 0;
        height: 2px;
        background: #fff;
        pointer-events: none;
    }
}

/* ============================================================
 * v1.5.1.11 — 35vh dock + WhatsApp clearance + CTA seam fix
 * ============================================================ */
@media (max-width: 767px) {
    /* Content-driven dock with a larger safety ceiling. The title row remains
     * sticky from v1.5.1.7 while the interaction body can scroll below it. */
    .bvpcp-purchase-dock {
        max-height: 35dvh !important;
    }

    /* Prevent theme button ornaments/pseudo-elements from drawing a white
     * horizontal band through the BVP Add to Cart CTA. */
    .bvpcp-purchase-dock .bvpcp-dock-add-button {
        background: #101828 !important;
        background-image: none !important;
        border: 0 !important;
        outline: 0 !important;
        box-shadow: none !important;
        overflow: hidden !important;
        isolation: isolate !important;
    }

    .bvpcp-purchase-dock .bvpcp-dock-add-button::before,
    .bvpcp-purchase-dock .bvpcp-dock-add-button::after {
        content: none !important;
        display: none !important;
        background: none !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    /* Product-page WhatsApp support must sit above the complete purchase dock,
     * not on top of the quantity/CTA area. The two CSS variables are measured
     * live by the lightweight footer/dock observers. */
    body.bvpcp-mobile-product-foundation-active a[href*="wa.me"],
    body.bvpcp-mobile-product-foundation-active a[href*="api.whatsapp.com"],
    body.bvpcp-mobile-product-foundation-active a[href*="whatsapp"],
    body.bvpcp-mobile-product-foundation-active .interakt-whatsapp-btn,
    body.bvpcp-mobile-product-foundation-active .interakt-whatsapp-button,
    body.bvpcp-mobile-product-foundation-active .joinchat,
    body.bvpcp-mobile-product-foundation-active .ht-ctc-chat,
    body.bvpcp-mobile-product-foundation-active .ht-ctc-chat-container,
    body.bvpcp-mobile-product-foundation-active .qlwapp,
    body.bvpcp-mobile-product-foundation-active #qlwapp,
    body.bvpcp-mobile-product-foundation-active .wa__btn_popup,
    body.bvpcp-mobile-product-foundation-active [class*="whatsapp"],
    body.bvpcp-mobile-product-foundation-active [id*="whatsapp"],
    body.bvpcp-mobile-product-foundation-active iframe[src*="interakt"] {
        bottom: calc(
            var(--bvpcp-mobile-footer-offset, 76px) +
            var(--bvpcp-purchase-dock-height, 220px) +
            10px
        ) !important;
        right: 12px !important;
        z-index: 10020 !important;
    }
}

@media (max-width: 767px) {
    /* One-pixel overlap avoids a sub-pixel/rounding seam without needing a
     * synthetic white strip between the dock and footer. */
    .bvpcp-purchase-dock {
        bottom: calc(var(--bvpcp-mobile-footer-offset, 76px) - 1px) !important;
    }

    .bvpcp-purchase-dock::after {
        content: none !important;
        display: none !important;
    }
}


/* v1.6.0-E: desktop workspace helpers never render in the mobile purchase dock. */
.bvpcp-desktop-total-quantity,
.bvpcp-desktop-price-milestones,
.bvpcp-desktop-offer-rail { display:none; }
