
:root{
  --pbb-bg:#f7e9ef;
  --pbb-text:#1f1c24;
  --pbb-muted:#7c7a86;
  --pbb-line:#cfc9d3;
  --pbb-primary:#f3a7c4;
  --pbb-primary-dark:#ea8fb2;
  --pbb-surface:#ffffff;

  /* Chips / filters */
  --pbb-chip-bg:#fbe6ee;
  --pbb-chip-border:#ea8fb2;
  --pbb-chip-text:#1f1c24;
  --pbb-chip-active-bg:#f3a7c4;
  --pbb-chip-active-text:#ffffff;
  --pbb-chip-active-border:#f3a7c4;
  --pbb-chip-hover-bg:#f7dbe6;
  --pbb-chip-hover-text:#1f1c24;
  --pbb-chip-hover-border:#ea8fb2;

  /* Notices */
  --pbb-notice-bg:#ffffff;
  --pbb-notice-border:#f5c2c7;
  --pbb-notice-text:#b02a37;

  /* Buttons */
  --pbb-btn-text:#ffffff;
  --pbb-btn-ghost-text:#ea8fb2;
  --pbb-btn-ghost-border:#f3a7c4;

  /* Qty +/- buttons */
  --pbb-qty-btn-bg:var(--pbb-primary);
  --pbb-qty-btn-text:#ffffff;
  --pbb-qty-btn-hover-bg:var(--pbb-primary-dark);
  --pbb-qty-btn-hover-text:#ffffff;

  /* Category scroll buttons */
  --pbb-scrollbtn-bg:#ffffff;
  --pbb-scrollbtn-text:var(--pbb-text);
  --pbb-scrollbtn-border:#e7e2ea;
  /* Keep nav arrows neutral (avoid theme/primary pink hover) */
  --pbb-scrollbtn-hover-bg:#f3f3f4;
  --pbb-scrollbtn-hover-text:var(--pbb-text);
  --pbb-scrollbtn-hover-border:var(--pbb-line);

  /* Filter / sorting dropdown */
  --pbb-filter-label-text:var(--pbb-text);
  --pbb-filter-label-hover-text:var(--pbb-primary-dark);
  --pbb-sort-bg:var(--pbb-surface);
  --pbb-sort-border:#e7e2ea;
  --pbb-sort-item-text:var(--pbb-text);
  --pbb-sort-item-hover-bg:#f5f5f5;
  --pbb-sort-item-hover-text:var(--pbb-text);
  --pbb-sort-item-active-bg:var(--pbb-chip-bg);
  --pbb-sort-item-active-text:var(--pbb-text);
  --pbb-modal-thumb-bg:#ffffff;
  --pbb-modal-thumb-border:var(--pbb-line);
  --pbb-modal-thumb-hover-bg:#f5f5f5;
  --pbb-modal-thumb-hover-border:#d8d2dc;
  --pbb-modal-thumb-active-border:var(--pbb-primary-dark);

  /* Layout */
  --pbb-chip-radius:10px;
  --pbb-card-radius:14px;
  --pbb-img-radius:12px;
  --pbb-grid-gap:18px;

  /* Bottom bar / modal */
  --pbb-bottombar-radius:12px;
  --pbb-bottombar-bg:rgba(255,255,255,.92);
  --pbb-modal-overlay:rgba(0,0,0,.48);

  --pbb-white:#ffffff;
  --pbb-shadow:0 18px 50px rgba(0,0,0,.12);
  --pbb-radius:16px;
  --pbb-btn-radius:10px;
}

.pbb-app{
  background:var(--pbb-bg);
  padding:32px 16px 160px;
  border-radius:var(--pbb-radius);
  position:relative;
}

/* Stepper */
.pbb-stepper{
  max-width:900px;
  margin:0 auto 18px;
  display:flex;
  align-items:flex-start;
  justify-content:center;
  gap:0;
}

.pbb-step{
  background:transparent !important;
  border:0 !important;
  padding:0;
  cursor:pointer;
  text-align:center;
  width:160px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:8px;
  outline:none !important;
  box-shadow:none !important;
}

.pbb-step:focus,
.pbb-step:focus-visible{
  outline:none !important;
  box-shadow:none !important;
}

.pbb-dot{
  width:34px;
  height:34px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:2px solid var(--pbb-text);
  color:var(--pbb-text);
  font-weight:800;
  font-size:13px;
  background:transparent;
}

.pbb-step.is-active .pbb-dot{
  background:var(--pbb-text);
  color:var(--pbb-white);
}

.pbb-label{
  font-size:13px;
  color:var(--pbb-text);
  font-weight:600;
}

.pbb-step:not(.is-active) .pbb-label{
  color:var(--pbb-muted);
  font-weight:500;
}

.pbb-line{
  height:2px;
  background:var(--pbb-line);
  width:150px;
  margin-top:16px;
}

/* Content */
.pbb-content{
  max-width:1100px;
  margin:0 auto;
  text-align:center;
  padding-bottom:20px;
}

.pbb-title{
  margin:12px 0 6px;
  font-size:22px;
  font-weight:800;
  color:var(--pbb-text);
}

.pbb-subtitle{
  margin:0 auto 18px;
  max-width:720px;
  font-size:13px;
  line-height:1.45;
  color:var(--pbb-muted);
  /* Preserve line breaks from the step description textarea */
  white-space:pre-line;
}

.pbb-notice{
  max-width:720px;
  margin:0 auto 14px;
  padding:10px 12px;
  border-radius:calc(var(--pbb-radius) - 6px);
  background:var(--pbb-notice-bg);
  border:1px solid var(--pbb-notice-border);
  color:var(--pbb-notice-text);
  font-size:13px;
  line-height:1.35;
  text-align:left;
}

/* Filter bar (Step 1) */
.pbb-filterbar{
  max-width:1100px;
  margin:0 auto 14px;
  text-align:left;
}

.pbb-filter-top{
  display:flex;
  align-items:center;
  gap:10px;
  margin-bottom:10px;
}

.pbb-filter-top .pbb-filter-count{
  display:flex;
  align-items:center;
  gap:8px;
  color:var(--pbb-muted);
  font-weight:600;
  font-size:13px;
}

.pbb-filter-clear{
  background:transparent;
  border:0;
  padding:0;
  cursor:pointer;
  color:var(--pbb-text);
  font-weight:700;
  text-decoration:underline;
  font-size:13px;
}

/* Prevent theme hover backgrounds on filter bar buttons */
.pbb-filter-clear:hover,
.pbb-filter-clear:focus,
.pbb-filter-clear:active{
  background:transparent !important;
}

.pbb-filter-label-btn:hover,
.pbb-filter-label-btn:focus,
.pbb-filter-label-btn:active{
  background:transparent !important;
}



.pbb-scrollbtn{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid var(--pbb-scrollbtn-border) !important;
  background:var(--pbb-scrollbtn-bg) !important;
  color:var(--pbb-scrollbtn-text) !important;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  line-height:1;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.pbb-scrollbtn:disabled{opacity:.35;cursor:default;}
.pbb-scrollbtn:hover:not(:disabled){
  background:var(--pbb-scrollbtn-hover-bg) !important;
  border-color:var(--pbb-scrollbtn-hover-border) !important;
  color:var(--pbb-scrollbtn-hover-text) !important;
}

.pbb-scrollbtn:focus,
.pbb-scrollbtn:active{
  background:var(--pbb-scrollbtn-hover-bg) !important;
  border-color:var(--pbb-scrollbtn-hover-border) !important;
  color:var(--pbb-scrollbtn-hover-text) !important;
  box-shadow:none !important;
  outline:none !important;
}

.pbb-chip-scroll{
  flex:1;
  overflow-x:auto;
  overflow-y:hidden;
  padding-bottom:4px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.pbb-chip-scroll::-webkit-scrollbar{display:none;}

.pbb-chips{
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 2px;
}

.pbb-chip{
  appearance:none;
  border:1px solid var(--pbb-chip-border);
  background:var(--pbb-chip-bg);
  color:var(--pbb-chip-text);
  border-radius:var(--pbb-chip-radius);
  padding:8px 12px;
  font-weight:700;
  font-size:12px;
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}

.pbb-chip:hover:not(.is-active){
  background:var(--pbb-chip-hover-bg);
  color:var(--pbb-chip-hover-text);
  border-color:var(--pbb-chip-hover-border);
}

.pbb-chip.is-active{
  background:var(--pbb-chip-active-bg);
  color:var(--pbb-chip-active-text);
  border-color:var(--pbb-chip-active-border);
}

.pbb-chip .pbb-chip-x{
  font-weight:900;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:16px;
  height:16px;
  border-radius:999px;
  background:rgba(255,255,255,.22);
}

.pbb-filter-bottom{
  display:flex;
  align-items:center;
  justify-content:flex-start;
}

.pbb-filter-left{
  display:flex;
  align-items:center;
  gap:12px;
}

.pbb-sort{position:relative;display:inline-flex;align-items:center;}

.pbb-filter-label-btn{
  background:transparent;
  border:0;
  padding:0;
  cursor:pointer;
  color:var(--pbb-filter-label-text);
  font-weight:700;
  font-size:13px;
  display:inline-flex;
  align-items:center;
  gap:10px;
}
.pbb-filter-label-btn:hover{color:var(--pbb-filter-label-hover-text);}

.pbb-sort-current{
  color:var(--pbb-muted);
  font-weight:600;
  font-size:12px;
}

.pbb-sort-menu{
  position:absolute;
  left:0;
  top:calc(100% + 8px);
  min-width:220px;
  background:var(--pbb-sort-bg);
  border:1px solid var(--pbb-sort-border);
  border-radius:12px;
  box-shadow:0 18px 40px rgba(0,0,0,.12);
  padding:6px;
  display:none;
  z-index:100;
}
.pbb-sort-menu.is-open{display:block;}

.pbb-sort-item{
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  padding:10px 10px;
  border-radius:10px;
  cursor:pointer;
  font-weight:700;
  font-size:13px;
  color:var(--pbb-sort-item-text);
}
.pbb-sort-item:hover{
  background:var(--pbb-sort-item-hover-bg);
  color:var(--pbb-sort-item-hover-text);
}
.pbb-sort-item.is-active{
  background:var(--pbb-sort-item-active-bg);
  color:var(--pbb-sort-item-active-text);
}

/* Products */
.pbb-products{
  display:grid;
  grid-template-columns:repeat(4, minmax(0,1fr));
  gap:var(--pbb-grid-gap);
}

.pbb-card{
  background:transparent;
  border-radius:var(--pbb-card-radius);
  padding:0;
  text-align:left;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  height:100%;
}

.pbb-img{
  border-radius:var(--pbb-img-radius);
  overflow:hidden;
  background:var(--pbb-surface);
  width:100%;
  aspect-ratio:1/1;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 22px rgba(0,0,0,.08);
}

.pbb-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}

.pbb-ph{
  width:100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:var(--pbb-muted);
  font-weight:800;
  font-size:12px;
}

.pbb-card-body{
  padding:10px 2px 0;
  display:flex;
  flex-direction:column;
  flex:1;
}

.pbb-name{
  margin:10px 0 4px;
  font-weight:600;
  font-size:12px;
  color:var(--pbb-text);
}

.pbb-price{
  font-weight:700;
  font-size:12px;
  color:var(--pbb-text);
}

.pbb-actions{
  margin-top:auto;
  padding-top:10px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  gap:10px;
  flex-wrap:nowrap;
}

.pbb-actions .pbb-btn{
  align-self:flex-start;
}

.pbb-btn{
  appearance:none;
  border:0;
  border-radius:var(--pbb-btn-radius);
  padding:9px 18px;
  background:var(--pbb-primary);
  color:var(--pbb-btn-text);
  font-weight:700;
  font-size:12px;
  cursor:pointer;
  box-shadow:none !important;
}

.pbb-btn:hover{background:var(--pbb-primary-dark);} 

.pbb-btn-ghost{
  background:transparent;
  color:var(--pbb-btn-ghost-text);
  border:1px solid var(--pbb-btn-ghost-border);
}

.pbb-btn.is-added,
.pbb-add.is-added{
  background:rgba(31,28,36,.08) !important;
  color:var(--pbb-text) !important;
}

.pbb-qty{
  display:inline-flex;
  align-items:center;
  gap:8px;
}

.pbb-qty-btn{
  width:26px;
  height:26px;
  border-radius:var(--pbb-btn-radius);
  border:0;
  background:var(--pbb-qty-btn-bg);
  color:var(--pbb-qty-btn-text);
  font-weight:900;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:0;
  padding:0;
  font-size:16px;
}

.pbb-qty-btn:hover{
  background:var(--pbb-qty-btn-hover-bg);
  color:var(--pbb-qty-btn-hover-text);
}

.pbb-qty-input{
  width:48px;
  height:26px;
  border-radius:6px;
  border:1px solid rgba(0,0,0,.12);
  text-align:center;
  font-weight:700;
  font-size:12px;
  color:var(--pbb-text);
  background:#fff;
}

/* Bottom bar (fixed to viewport bottom) */
.pbb-bottombar{
  position:fixed;
  left:50%;
  transform:translateX(-50%);
  bottom:16px;
  width:min(1100px, calc(100% - 32px));
  background:var(--pbb-bottombar-bg);
  backdrop-filter:saturate(160%) blur(10px);
  border-radius:var(--pbb-bottombar-radius);
  padding:12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  box-shadow:0 10px 30px rgba(0,0,0,.10);
  z-index:9999;
}

.pbb-miniwrap{
  display:flex;
  align-items:center;
  gap:10px;
  max-width:55%;
}

.pbb-miniscroll{
  width:32px;
  height:32px;
  border-radius:999px;
  /* Prevent theme button hover/active backgrounds (pink) */
  border:1px solid rgba(0,0,0,.08) !important;
  background:rgba(255,255,255,.7) !important;
  color:var(--pbb-text) !important;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight:900;
  line-height:1;
  transition:background .15s ease,border-color .15s ease,color .15s ease;
}
.pbb-miniscroll:disabled{opacity:.35;cursor:default;}

.pbb-miniscroll:hover:not(:disabled),
.pbb-miniscroll:focus:not(:disabled),
.pbb-miniscroll:active:not(:disabled){
  background:var(--pbb-scrollbtn-hover-bg) !important;
  border-color:var(--pbb-scrollbtn-hover-border) !important;
  color:var(--pbb-text) !important;
  box-shadow:none !important;
  outline:none !important;
}

.pbb-miniitems{
  display:flex;
  align-items:center;
  gap:10px;
  overflow-x:auto;
  /* IMPORTANT: allow qty badge (top-right) to protrude without being clipped */
  overflow-y:visible;
  /* reserve vertical room for the badge so it never looks "cut" */
  padding-top:8px;
  padding-bottom:2px;
  padding-right:10px;
  padding-left:10px;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
.pbb-miniitems::-webkit-scrollbar{display:none;}

.pbb-miniitem{
  width:52px;
  height:52px;
  border-radius:10px;
  background:transparent;
  position:relative;
  flex:0 0 auto;
  overflow:visible; /* keep badge visible */
}

.pbb-mini-thumb{
  width:52px;
  height:52px;
  border-radius:10px;
  overflow:hidden;
  background:var(--pbb-surface);
  box-shadow:0 6px 16px rgba(0,0,0,.08);
}

.pbb-mini-thumb img{width:100%;height:100%;object-fit:cover;display:block;}

.pbb-miniitem .pbb-mini-badge{
  position:absolute;
  top:-6px;
  right: 2px;
  width:18px;
  height:18px;
  border-radius:999px;
  background:var(--pbb-primary-dark);
  color:#fff;
  font-size:11px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:2;
}

.pbb-empty{
  grid-column:1/-1;
  padding:18px;
  background:rgba(255,255,255,.7);
  border:1px solid rgba(0,0,0,.06);
  border-radius:12px;
  text-align:center;
  color:var(--pbb-muted);
  font-weight:600;
}

.pbb-bottom-actions{
  display:flex;
  align-items:center;
  gap:10px;
}

.pbb-total{
  text-align:right;
  min-width:160px;
}

.pbb-total-label{
  font-size:12px;
  color:var(--pbb-muted);
}

.pbb-total-value{
  font-size:16px;
  font-weight:900;
  color:var(--pbb-text);
}

/* Modal */
.pbb-modal{
  position:fixed;
  inset:0;
  display:none;
  z-index:999999;
}

.pbb-modal.is-open{display:block;}

.pbb-modal-overlay{
  position:absolute;
  inset:0;
  background:var(--pbb-modal-overlay);
}

.pbb-modal-dialog{
  position:relative;
  max-width:980px;
  margin:80px auto;
  background:var(--pbb-surface);
  border-radius:var(--pbb-radius);
  box-shadow:var(--pbb-shadow);
  padding:18px;
}

.pbb-modal-close{
  position:absolute;
  top:10px;
  right:12px;
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid var(--pbb-border);
  background:transparent;
  color:var(--pbb-text);
  cursor:pointer;
  font-size:20px;
  font-weight:900;
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  padding:0;
  transform: translateY(-1px);
}

.pbb-modal-close:hover,
.pbb-modal-close:focus{
  background:rgba(0,0,0,.04);
  color:var(--pbb-text);
  outline:none;
}

.pbb-modal-close:hover,
.pbb-modal-close:focus,
.pbb-modal-close:active{
  background:rgba(0,0,0,.04);
  color:var(--pbb-text);
  outline:none;
}

.pbb-modal-body{
  display:grid;
  grid-template-columns: 1.1fr .9fr;
  gap:18px;
  align-items:start;
}

.pbb-modal-left{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.pbb-modal-image{
  width:100%;
  height:auto;
  border-radius:10px;
  background:#f3f3f3;
}

.pbb-modal-thumbs{
  display:flex;
  gap:10px;
}

.pbb-thumb{
  width:68px;
  height:68px;
  padding:2px;
  border-radius:12px;
  background:var(--pbb-modal-thumb-bg) !important;
  border:2px solid var(--pbb-modal-thumb-border) !important;
  box-shadow:none !important;
  outline:none !important;
}

.pbb-thumb:hover,
.pbb-thumb:focus{
  background:var(--pbb-modal-thumb-hover-bg) !important;
  border-color:var(--pbb-modal-thumb-hover-border) !important;
}

.pbb-thumb.is-active,
.pbb-thumb.is-active:hover,
.pbb-thumb.is-active:focus{
  border-color:var(--pbb-modal-thumb-active-border) !important;
}

.pbb-modal-thumbs img{
  width:100%;
  height:100%;
  border-radius:8px;
  object-fit:cover;
  cursor:pointer;
  display:block;
  border:0;
}

.pbb-modal-title{
  margin:6px 0;
  font-weight:900;
  font-size:22px;
  color:var(--pbb-text);
}

.pbb-modal-price{
  font-weight:800;
  color:var(--pbb-text);
  margin-bottom:14px;
}

.pbb-modal-desc{
  margin-top:14px;
  color:var(--pbb-muted);
  font-size:13px;
  line-height:1.5;
  max-height:260px;
  overflow:auto;
}

/* WooCommerce add-to-cart form inside the modal (used to show product addons/custom fields) */
.pbb-modal .pbb-modal-wc{
  color:var(--pbb-text);
}
.pbb-modal .pbb-modal-wc label,
.pbb-modal .pbb-modal-wc .woocommerce-additional-fields label{
  color:var(--pbb-text);
}
.pbb-modal .pbb-modal-wc input,
.pbb-modal .pbb-modal-wc textarea,
.pbb-modal .pbb-modal-wc select{
  width:100%;
  max-width:100%;
}
/* Hide WooCommerce's own submit button/quantity to avoid duplicate CTA; we use the modal button. */
.pbb-modal .pbb-modal-wc .single_add_to_cart_button,
.pbb-modal .pbb-modal-wc button[type="submit"],
.pbb-modal .pbb-modal-wc .quantity{
  display:none !important;
}
.pbb-modal .pbb-modal-wc .woocommerce-variation{
  margin:10px 0;
}
.pbb-modal .pbb-modal-loading{
  padding:10px 0;
  color:var(--pbb-muted);
}
.pbb-modal .pbb-modal-warn{
  margin:0 0 10px 0;
  padding:10px 12px;
  border-radius:12px;
  background:rgba(240, 92, 124, 0.12);
  border:1px solid rgba(240, 92, 124, 0.25);
  color:var(--pbb-text);
  font-size:13px;
}

/* Responsive */
@media (max-width:1100px){
  .pbb-products{grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media (max-width:900px){
  .pbb-products{grid-template-columns:repeat(2,minmax(0,1fr));}
  .pbb-line{width:110px;}
  .pbb-miniwrap{max-width:48%;}
}
@media (max-width:560px){
  .pbb-products{grid-template-columns:1fr;}
  .pbb-stepper{flex-wrap:wrap;gap:12px;}
  .pbb-line{display:none;}
  .pbb-bottombar{flex-direction:column;align-items:stretch;bottom:10px;}
  .pbb-miniwrap{max-width:100%;}
  .pbb-bottom-actions{justify-content:space-between;}
  .pbb-modal-body{grid-template-columns:1fr;}
  .pbb-modal-dialog{margin:30px 12px;}
}


/* Cart extras (cart page) */
.pbb-cart-extras{
  margin-top:24px;
  display:flex;
  flex-wrap:wrap;
  gap:18px;
}
.pbb-cart-card{
  background:var(--pbb-surface);
  border:1px solid var(--pbb-line);
  border-radius:var(--pbb-card-radius);
  padding:16px;
  flex:1;
  min-width:260px;
}
.pbb-cart-card h3{
  margin:0 0 10px;
  font-size:14px;
  font-weight:800;
  color:var(--pbb-text);
}
.pbb-cart-note textarea,
.pbb-cart-date input{
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--pbb-line);
  border-radius:12px;
  padding:12px;
  font-size:13px;
  color:var(--pbb-text);
  background:#fff;
  outline:none;
}
.pbb-cart-note textarea{min-height:120px;resize:vertical;}
.pbb-cart-date input{height:42px;}

/* Inline calendar */
.pbb-cart-date input[name="pbb_delivery_date"]{display:none !important;}
.pbb-cart-date .pbb-date-inline{
  background:var(--pbb-cart-cal-bg, var(--pbb-surface));
  border:1px solid var(--pbb-line);
  border-radius:12px;
  padding:12px;
}
.pbb-cart-note textarea:focus,
.pbb-cart-date input:focus{
  border-color:var(--pbb-primary);
  box-shadow:0 0 0 3px rgba(0,0,0,0.03);
}

/* jQuery UI datepicker (scoped) */
.pbb-cart-extras .ui-datepicker{
  padding:10px;
  border:1px solid var(--pbb-line);
  background:var(--pbb-surface);
  border-radius:12px;
  box-shadow:0 12px 30px rgba(0,0,0,0.08);
}

/* Inline datepicker inside the cart card should look embedded */
.pbb-cart-date .ui-datepicker{
  width:100%;
  padding:0;
  border:none;
  background:transparent;
  box-shadow:none;
}
.pbb-cart-date .ui-datepicker table{width:100%;margin:0;}
.pbb-cart-date .ui-datepicker th{
  font-size:11px;
  color:var(--pbb-muted);
  font-weight:700;
}
.pbb-cart-extras .ui-datepicker .ui-datepicker-header{
  border:none;
  background:transparent;
  color:var(--pbb-text);
  font-weight:800;
  position:relative;
  text-align:center;
  padding:8px 40px;
}
.pbb-cart-extras .ui-datepicker .ui-state-default{
  border:none;
  background:transparent;
  color:var(--pbb-text);
  border-radius:10px;
  text-align:center;
  padding:6px 0;
}
.pbb-cart-extras .ui-datepicker .ui-state-hover{
  background:var(--pbb-chip-bg);
}
.pbb-cart-extras .ui-datepicker .ui-state-active{
  background:var(--pbb-primary);
  color:#fff;
}
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev,
.pbb-cart-extras .ui-datepicker .ui-datepicker-next{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:28px;
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  cursor:pointer;
  text-decoration:none;
  outline:none;
}
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev{left:8px;}
.pbb-cart-extras .ui-datepicker .ui-datepicker-next{right:8px;}
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev:hover,
.pbb-cart-extras .ui-datepicker .ui-datepicker-next:hover{
  background:var(--pbb-chip-bg);
}
.pbb-cart-extras .ui-datepicker .ui-icon{
  background-image:none !important;
}
/* Hide the default jQuery UI icon span only (do not hide our injected .pbb-dp-arrow span) */
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev span.ui-icon,
.pbb-cart-extras .ui-datepicker .ui-datepicker-next span.ui-icon{
  display:none !important;
}

/* We render arrows via a real DOM node (.pbb-dp-arrow) to avoid pseudo-element/icon collisions */
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev:before,
.pbb-cart-extras .ui-datepicker .ui-datepicker-next:before,
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev:after,
.pbb-cart-extras .ui-datepicker .ui-datepicker-next:after{
  content:none !important;
  display:none !important;
}

.pbb-cart-extras .ui-datepicker .pbb-dp-arrow{
  display:block;
  font-family:inherit;
  font-size:18px;
  font-weight:700;
  line-height:1;
  color:var(--pbb-text);
}

/* Ensure the inline calendar sits centered within its card */
.pbb-cart-date .ui-datepicker{margin:0 auto;}


/* Theme-proof the nav icons: force ONLY our single left/right glyphs */
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev,
.pbb-cart-extras .ui-datepicker .ui-datepicker-next{
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
  border:none !important;
}

/* Hide any theme-provided icons inside the anchors, but keep our injected arrow node */
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev > *:not(.pbb-dp-arrow),
.pbb-cart-extras .ui-datepicker .ui-datepicker-next > *:not(.pbb-dp-arrow){
  display:none !important;
}

/* Extra-hard reset for themes that apply masks/background icons to the nav anchors */
.pbb-cart-extras .ui-datepicker .ui-datepicker-prev,
.pbb-cart-extras .ui-datepicker .ui-datepicker-next{
  background-image:none !important;
  -webkit-mask-image:none !important;
  mask-image:none !important;
}



/* Modal - WooCommerce single product summary rendering (custom fields / addons) */
.pbb-modal-wc .product_title,
.pbb-modal-wc .woocommerce-product-rating,
.pbb-modal-wc .price,
.pbb-modal-wc .product_meta{
  display:none !important;
}

/* Keep the product short description visible inside the modal */
.pbb-modal-wc .woocommerce-product-details__short-description{
  display:block !important;
  margin:10px 0 14px !important;
  color:var(--pbb-muted);
}
.pbb-modal-wc .single_add_to_cart_button{
  display:none !important; /* use builder modal CTA */
}
.pbb-modal-wc .summary.entry-summary{
  margin:0 !important;
}
.pbb-modal-wc .cart{
  margin:0 !important;
}
