.blv4-cz-panel,
.blv4-cz-panel * {
    box-sizing: border-box;
}

.blv4-catalog-product:has(#blv4-customize) .blv4-summary,
.blv4-catalog-product .blv4-buy-block:has(#blv4-customize),
.blv4-catalog-product form.cart:has(#blv4-customize) {
    max-width: none;
    width: 100%;
    min-width: 0;
}

.blv4-catalog-product form.cart:has(#blv4-customize) {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    align-items: stretch;
}

.blv4-catalog-product form.cart:has(#blv4-customize) > #blv4-customize {
    width: 100%;
}

@media (min-width: 641px) {
    .blv4-catalog-product:has(#blv4-customize) {
        align-items: start;
    }

    .blv4-catalog-product:has(#blv4-customize) .blv4-gallery {
        position: sticky;
        top: 16px;
    }
}

.blv4-cz-panel {
    container-name: cz;
    container-type: inline-size;
    width: 100%;
    margin: 8px 0 0;
    padding: 16px;
    border: 1px solid #3a3428;
    background: #111111;
    color: #f3f3f3;
    font-family: "Arial Narrow", "Segoe UI", sans-serif;
}

.blv4-cz-panel h2,
.blv4-cz-panel h3 {
    margin: 0 0 8px;
    color: #f3f3f3;
    font-size: 20px;
    font-weight: 700;
    letter-spacing: 0.03em;
    text-transform: none;
}

.blv4-cz-panel h3 {
    margin: 0;
    font-size: 16px;
}

.blv4-cz-kicker {
    margin: 0 0 8px;
    color: #c9a24a;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.blv4-cz-preview,
.blv4-cz-hint,
.blv4-cz-optional,
.blv4-cz-sample {
    color: #b7a48a;
    font-size: 14px;
}

.blv4-cz-head p:last-child {
    margin-bottom: 0;
}

.blv4-cz-layout > input {
    display: none;
}

.blv4-cz-panel label {
    display: block;
    margin: 10px 0;
    min-width: 0;
}

.blv4-cz-panel fieldset {
    width: 100%;
    min-width: 0;
    margin: 12px 0;
    padding: 0;
    border: 0;
}

.blv4-cz-panel legend {
    margin-bottom: 6px;
    color: #f3f3f3;
    font-weight: 700;
}

.blv4-cz-panel input[type="radio"],
.blv4-cz-panel input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin: 0;
    accent-color: #c9a24a;
}

.blv4-cz-panel input[type="text"],
.blv4-cz-panel input[type="file"],
.blv4-cz-panel textarea,
.blv4-cz-panel select {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-top: 4px;
    padding: 10px 12px;
    font-size: 16px;
    color: #f3f3f3;
    background: #050505;
    border: 1px solid #2a2a2a;
}

.blv4-cz-panel textarea {
    min-height: 76px;
    resize: vertical;
}

.blv4-cz-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.blv4-cz-pills legend {
    flex: 1 0 100%;
    margin: 0;
    color: #c9a24a;
    font-size: 12px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.blv4-cz-panel .blv4-cz-pills label {
    display: flex;
    flex: 1 1 180px;
    align-items: center;
    gap: 8px;
    min-height: 44px;
    margin: 0;
    padding: 8px 12px;
    background: #050505;
    border: 1px solid #2a2a2a;
}

.blv4-cz-panel .blv4-cz-pills label:has(input:checked) {
    border-color: #c9a24a;
    color: #f3f3f3;
}

.blv4-cz-panel .blv4-cz-same {
    display: flex;
    align-items: center;
    gap: 8px;
    min-height: 44px;
}

.blv4-cz-split,
.blv4-cz-art,
.blv4-cz-people,
.blv4-cz-summary,
.blv4-cz-row-grid {
    min-width: 0;
}

.blv4-cz-details {
    container-name: czfields;
    container-type: inline-size;
    min-width: 0;
}

.blv4-cz-quote {
    margin: 12px 0 0;
}

.blv4-cz-summary {
    display: grid;
    gap: 4px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
}

.blv4-cz-summary li {
    margin: 0;
    padding: 8px 10px;
    background: #0c0c0c;
    border: 1px solid #2a2a2a;
}

.blv4-cz-purchase {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 16px;
    margin-top: 16px;
    padding-top: 12px;
    border-top: 1px solid #2a2a2a;
}

.blv4-cz-total {
    flex: 1 1 220px;
    margin: 0;
    color: #c9a24a;
    font-weight: 700;
}

.blv4-cz-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-left: auto;
}

.blv4-cz-actions .quantity {
    margin: 0;
}

.blv4-cz-actions .qty {
    width: 72px;
    min-height: 44px;
    padding: 8px;
    font-size: 16px;
    color: #f3f3f3;
    background: #050505;
    border: 1px solid #2a2a2a;
}

.blv4-cz-actions .single_add_to_cart_button {
    min-width: 168px;
    min-height: 44px;
}

.blv4-cz-people {
    display: grid;
    gap: 12px;
}

.blv4-cz-row {
    container-name: czrow;
    container-type: inline-size;
    margin: 0;
    padding: 12px;
    background: #0c0c0c;
    border: 1px solid #3a3428;
}

.blv4-cz-row-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
}

.blv4-cz-row-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0 12px;
}

.blv4-cz-add,
.blv4-cz-remove {
    min-height: 44px;
    padding: 10px 14px;
    background: transparent;
    color: #c9a24a;
    border: 1px solid #c9a24a;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    cursor: pointer;
}

.blv4-cz-add {
    margin-top: 12px;
}

.blv4-cz-remove {
    flex: 0 0 auto;
    margin: 0;
}

.blv4-cz-panel a {
    color: #c9a24a;
}

.blv4-cz-panel.is-same .blv4-cz-own-art,
.blv4-cz-panel.is-multi .blv4-cz-work,
.blv4-cz-panel.is-plain .blv4-cz-details {
    display: none;
}

.blv4-cz-extra-price,
.blv4-cz-proof {
    margin: 12px 0 0;
    color: #f3efe6;
    font-size: 18px;
    line-height: 1.4;
}

.blv4-cz-extra-price {
    color: #c9a24a;
    font-weight: 700;
}

.blv4-cz-panel .screen-reader-text {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.blv4-cz-panel label.blv4-cz-title {
    display: none;
}

.blv4-cz-panel .blv4-cz-row.is-custom label.blv4-cz-title {
    display: block;
}

@container cz (min-width: 560px) {
    .blv4-cz-split {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 8px 20px;
        align-items: start;
    }

    .blv4-cz-summary {
        grid-template-columns: 1fr 1fr;
    }
}

@container cz (min-width: 860px) {
    .blv4-cz-layout {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
        column-gap: 18px;
        align-items: start;
    }

    .blv4-cz-head,
    .blv4-cz-choice,
    .blv4-cz-details,
    .blv4-cz-quote {
        grid-column: 1;
    }

    .blv4-cz-purchase {
        grid-column: 2;
        grid-row: 1 / span 8;
        align-self: start;
        position: sticky;
        top: 16px;
        flex-direction: column;
        align-items: stretch;
        height: auto;
        margin: 0;
        padding: 12px;
        background: #161616;
        border: 1px solid #3a3428;
    }

    .blv4-cz-purchase .blv4-cz-total {
        flex: 0 0 auto;
    }

    .blv4-cz-actions,
    .blv4-cz-actions .single_add_to_cart_button {
        width: 100%;
        margin-left: 0;
    }

    .blv4-cz-summary {
        grid-template-columns: 1fr;
    }
}

@container czfields (min-width: 640px) {
    .blv4-cz-people {
        grid-template-columns: 1fr 1fr;
    }

    .blv4-cz-work > .blv4-cz-art {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
        gap: 8px 20px;
        align-items: start;
    }
}

@container czrow (min-width: 420px) {
    .blv4-cz-row-grid {
        grid-template-columns: 1fr 1fr;
    }

    .blv4-cz-row-grid .blv4-cz-title {
        grid-column: 1 / -1;
    }
}

.blv4-cz-own-art .blv4-cz-art {
    display: block;
}

@media (max-width: 640px) {
    .blv4-cz-panel {
        padding: 12px;
    }

    .blv4-cz-purchase {
        margin-top: 14px;
        padding-top: 12px;
    }

    .blv4-cz-actions,
    .blv4-cz-actions .single_add_to_cart_button {
        width: 100%;
        margin-left: 0;
    }
}

/* WooCommerce pins the notice icon at left 1.5em. The theme padding leaves too little room, so the icon covers the first word. */
.single-product .woocommerce-error,
.single-product .woocommerce-info,
.single-product .woocommerce-message {
    position: relative;
    padding: 12px 16px 12px 48px;
}

.single-product .woocommerce-error::before,
.single-product .woocommerce-info::before,
.single-product .woocommerce-message::before {
    top: 12px;
    left: 16px;
}

.blv4-cz-alert {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin: 0 0 12px;
    padding: 12px 14px;
    border: 1px solid #2a241c;
    border-left: 3px solid #e10600;
    background: #111;
    color: #fff;
    line-height: 1.45;
}

.blv4-cz-alert-mark {
    flex: 0 0 22px;
    width: 22px;
    height: 22px;
    margin-top: 1px;
    border-radius: 50%;
    background: #e10600;
    color: #fff;
    font-weight: 700;
    font-size: 14px;
    line-height: 22px;
    text-align: center;
}

.blv4-cz-alert-text {
    flex: 1 1 auto;
    min-width: 0;
}

.blv4-cz-panel label.is-missing {
    color: #ffb4b0;
}

.blv4-cz-panel label.is-missing input,
.blv4-cz-panel label.is-missing select,
.blv4-cz-panel label.is-missing textarea {
    border-color: #e10600;
    box-shadow: 0 0 0 1px #e10600;
}
