#pb-open-builder { margin: 10px 0; }
.pb-no-scroll { overflow: hidden; }
.pb-modal { display:none; position:fixed; z-index:99999; inset:0; background:rgba(0,0,0,.58); padding:24px; overflow:auto; }
.pb-modal.is-open { display:flex; align-items:center; justify-content:center; }
.pb-dialog { position:relative; background:#fff; color:#232323; width:min(100%,980px); max-height:calc(100vh - 48px); overflow:auto; padding:28px; border-radius:4px; box-shadow:0 10px 45px rgba(0,0,0,.25); }
.pb-dialog h2 { margin:0 40px 12px 0; font-size:1.65rem; }
.pb-close { position:absolute; right:15px; top:8px; border:0; background:transparent; font-size:32px; line-height:1; cursor:pointer; }
.pb-progress { height:12px; background:#e9ecef; border-radius:6px; overflow:hidden; }
#pb-progress-bar { height:100%; width:0; background:#2fb5d2; transition:width .2s ease; }
.pb-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; margin:20px 0; }
.pb-grid section { border:1px solid #ddd; border-radius:4px; padding:16px; min-width:0; }
.pb-grid h3 { font-size:1.2rem; margin-top:0; }
.pb-grid label { display:block; margin:12px 0 6px; }
.pb-qty { display:flex; gap:8px; margin:12px 0; align-items:center; }
.pb-qty button { min-width:48px; padding:8px 12px; border:1px solid #ccc; background:#f6f6f6; border-radius:3px; }
.pb-qty input { width:90px; text-align:center; padding:8px; border:1px solid #ccc; }
.pb-grid ul { padding:0; margin:14px 0 0; list-style:none; }
.pb-grid li { display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid #eee; }
.pb-grid li span { flex:1; }
.pb-remove { border:0; color:#c0392b; background:transparent; font-size:22px; cursor:pointer; padding:0 4px; }
.pb-free-note { background:#f7f7f7; padding:12px; }
#pb-submit { margin-top:12px; }
@media(max-width:700px) { .pb-modal { padding:8px; } .pb-dialog { padding:20px 14px; max-height:calc(100vh - 16px); } .pb-grid { grid-template-columns:1fr; gap:12px; } }

/* Les contrôles natifs sont masqués uniquement sur la fiche produit configurée comme pack. */
body.pb-pack-product .product-quantity,
body.pb-pack-product .product-add-to-cart,
body.pb-pack-product [data-button-action="add-to-cart"] { display:none !important; }
body.pb-pack-product #pb-open-builder { display:inline-block; background:#b91f24; border-color:#b91f24; color:#fff; font-weight:700; text-transform:uppercase; border-radius:0; padding: .75rem 1.25rem; }
