/* Book Pulse cart / checkout — Atelier palette, professional layout (v1.0.8) */
.bp-cart-page,
.bp-checkout-page{
  --bp-bg:#06080D;
  --bp-card:#0b111a;
  --bp-text:#F2EDE4;
  --bp-muted:#8b95a8;
  --bp-gold:#C6A75E;
  --bp-cyan:#3ec9f0;
  --bp-line:rgba(139,149,168,.28);
  width:100%;
  max-width:64rem;
}
.bp-cart-head{margin-bottom:1.75rem}
.bp-cart-continue{
  display:inline-block;
  font-size:.72rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--bp-cyan);
  text-decoration:none;
  border-bottom:1px solid transparent;
  padding-bottom:.15rem;
}
.bp-cart-continue:hover{color:var(--bp-gold);border-bottom-color:var(--bp-gold);text-decoration:none}

.bp-cart-empty{
  text-align:center;
  padding:3.5rem 1.5rem;
  border:1px solid var(--bp-line);
  background:rgba(11,17,26,.75);
  border-radius:12px;
}
.bp-cart-empty-title{
  margin:0 0 .65rem;
  font-family:"Libre Franklin",system-ui,sans-serif;
  font-size:1.15rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:#fff;
  font-weight:700;
}
.bp-cart-empty-text{
  margin:0 auto 1.5rem;
  max-width:28rem;
  color:var(--bp-muted);
  font-size:.92rem;
  line-height:1.55;
}
.bp-cart-empty-actions{margin:0;display:flex;justify-content:center}
.bp-cart-empty-cta{max-width:16rem;justify-content:center}

.bp-cart-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(16rem,18.5rem);
  gap:1.5rem;
  align-items:start;
}
.bp-cart-lines{display:flex;flex-direction:column;gap:.85rem}
.bp-cart-line{
  display:grid;
  grid-template-columns:72px minmax(0,1fr) auto;
  gap:1rem;
  padding:1rem 1.1rem;
  background:rgba(11,17,26,.88);
  border:1px solid var(--bp-line);
  border-radius:10px;
}
.bp-cart-cover{
  display:block;
  width:72px;
  height:108px;
  border-radius:4px;
  overflow:hidden;
  background:#0a0c12;
  border:1px solid rgba(198,167,94,.25);
  flex-shrink:0;
}
.bp-cart-cover img{display:block;width:100%;height:100%;object-fit:cover}
.bp-cart-cover-fallback{display:block;width:100%;height:100%;background:linear-gradient(160deg,#121820,#0a0c12)}
.bp-cart-title{
  margin:0 0 .2rem;
  font-size:1.05rem;
  font-weight:600;
  line-height:1.25;
  font-family:"Cormorant Garamond",Georgia,serif;
  letter-spacing:.02em;
}
.bp-cart-title a{color:var(--bp-text);text-decoration:none}
.bp-cart-title a:hover{color:var(--bp-gold)}
.bp-cart-series,.bp-cart-format{
  margin:0;
  color:var(--bp-muted);
  font-size:.72rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.bp-cart-format{margin-top:.35rem;color:var(--bp-gold)}
.bp-cart-qty-form{margin:.65rem 0 .35rem}
.bp-cart-qty-label{
  display:inline-flex;
  align-items:center;
  gap:.45rem;
  font-size:.72rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--bp-muted);
}
.bp-cart-qty{
  width:3.4rem;
  padding:.28rem .4rem;
  border:1px solid var(--bp-line);
  border-radius:4px;
  background:#06080D;
  color:var(--bp-text);
  font-size:.9rem;
}
.bp-cart-remove{
  font-size:.7rem;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--bp-muted);
  text-decoration:none;
}
.bp-cart-remove:hover{color:#e8a0a0}
.bp-cart-line-price{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  justify-content:center;
  gap:.35rem;
  min-width:5.5rem;
}
.bp-cart-unit{font-size:.75rem;color:var(--bp-muted)}
.bp-cart-line-total{
  font-size:1.15rem;
  font-weight:700;
  color:var(--bp-gold);
  font-variant-numeric:tabular-nums;
}

.bp-cart-summary{
  position:sticky;
  top:1rem;
  padding:1.25rem 1.2rem;
  background:rgba(11,17,26,.92);
  border:1px solid rgba(198,167,94,.35);
  border-radius:12px;
}
.bp-cart-summary-title{
  margin:0 0 1rem;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#fff;
  font-weight:700;
}
.bp-cart-summary-rows{margin:0;padding:0}
.bp-cart-summary-row{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  margin:0 0 .55rem;
  font-size:.9rem;
  color:var(--bp-muted);
}
.bp-cart-summary-row dt,.bp-cart-summary-row dd{margin:0}
.bp-cart-summary-subtotal{
  margin-top:.85rem;
  padding-top:.85rem;
  border-top:1px solid var(--bp-line);
  color:var(--bp-text);
  font-size:1.05rem;
  font-weight:700;
}
.bp-cart-summary-subtotal dd{color:var(--bp-gold)}
.bp-cart-summary-note{
  margin:.85rem 0 1.1rem;
  font-size:.72rem;
  line-height:1.45;
  color:var(--bp-muted);
}
.bp-cart-checkout-btn{
  width:100%;
  max-width:none;
  justify-content:center;
  margin:0;
}
.bp-cart-clear-form{margin:.85rem 0 0;text-align:center}
.bp-cart-clear{
  background:none;
  border:none;
  color:var(--bp-muted);
  font-size:.68rem;
  letter-spacing:.12em;
  text-transform:uppercase;
  cursor:pointer;
  padding:.25rem;
}
.bp-cart-clear:hover{color:#e8a0a0}

.bp-checkout-layout{
  width:100%;
  max-width:64rem;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);
  gap:1.5rem;
  align-items:start;
}
.bp-checkout-section-title{
  margin:0 0 1rem;
  font-size:.78rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:#fff;
  font-weight:700;
}
.bp-checkout-order,.bp-checkout-pay{
  width:100%;
  min-width:0;
  padding:1.25rem 1.2rem;
  background:rgba(11,17,26,.88);
  border:1px solid var(--bp-line);
  border-radius:12px;
}
.bp-checkout-lines{list-style:none;margin:0;padding:0}
.bp-checkout-line{
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.55rem 0;
  border-bottom:1px solid rgba(139,149,168,.16);
  font-size:.9rem;
}
.bp-checkout-line-title em{font-style:normal;color:var(--bp-muted);font-size:.78rem}
.bp-checkout-line-price{color:var(--bp-gold);font-variant-numeric:tabular-nums;white-space:nowrap}
.bp-checkout-subtotal{
  margin:1rem 0 0;
  display:flex;
  justify-content:space-between;
  font-size:1.05rem;
  color:var(--bp-text);
}
.bp-checkout-subtotal strong{letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;color:var(--bp-muted);font-weight:600}

/* Payment methods fill the checkout payment column without narrowing the page. */
.bp-pay-methods{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
}
/* PayPal UI backup: hidden (DOM only emitted when $showPaypalUi); belt-and-suspenders */
.bp-pay-block[data-provider="paypal"]{
  display:none !important;
}
.bp-pay-block{
  padding:1rem 1.05rem;
  margin:0 0 1rem;
  border-radius:10px;
  border:1px solid var(--bp-line);
  background:rgba(6,8,13,.55);
}
.bp-pay-block.is-ready{border-color:rgba(198,167,94,.45)}
.bp-pay-block.is-disabled{opacity:.92}
.bp-pay-block-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  margin-bottom:.65rem;
}
.bp-pay-block-head strong{
  font-size:.85rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.bp-pay-mode{
  font-size:.65rem;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--bp-gold);
  border:1px solid rgba(198,167,94,.4);
  padding:.15rem .45rem;
  border-radius:999px;
}
.bp-pay-unconfigured,.bp-pay-ready{
  margin:0 0 .85rem;
  font-size:.82rem;
  line-height:1.5;
  color:var(--bp-muted);
}
.bp-pay-ready{color:var(--bp-cyan)}
.bp-pay-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:100%;
  padding:.85rem 1rem;
  border-radius:8px;
  border:1px solid transparent;
  font-family:"Libre Franklin",system-ui,sans-serif;
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.bp-pay-btn:disabled{cursor:not-allowed;opacity:.55}
.bp-pay-btn-paypal{
  background:#ffc439;
  color:#003087;
  border-color:#e6b000;
}
.bp-pay-btn-stripe{
  background:linear-gradient(165deg,#d4b66e,#C6A75E 45%,#b8954a);
  color:#0a0906;
  border-color:rgba(198,167,94,.85);
  box-shadow:0 8px 22px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.28);
  font-size:.88rem;
  letter-spacing:.14em;
  padding:.95rem 1rem;
}
.bp-pay-btn-stripe:hover{
  filter:brightness(1.06);
}
.bp-pay-btn-stripe:disabled{filter:none}

@media (max-width:820px){
  .bp-pay-methods{width:100%;max-width:100%}
  .bp-cart-layout,.bp-checkout-layout{grid-template-columns:1fr}
  .bp-cart-summary{position:static}
  .bp-cart-line{grid-template-columns:64px minmax(0,1fr);grid-template-rows:auto auto}
  .bp-cart-line-price{
    grid-column:2;
    flex-direction:row;
    justify-content:space-between;
    align-items:baseline;
  }
}
/* Local simulate payment */
.bp-pay-btn-simulate {
  background: #2f5d50;
  color: #fff;
  border: 0;
  width: 100%;
  padding: 0.75rem 1rem;
  border-radius: 0.4rem;
  cursor: pointer;
  font-weight: 600;
}
.bp-pay-btn-simulate:hover { filter: brightness(1.08); }
/* PayPal / payment error */
.bp-pay-error{
  margin:.65rem 0 0;
  padding:.55rem .7rem;
  border:1px solid rgba(220,80,80,.45);
  background:rgba(80,20,20,.35);
  color:#f2c7c7;
  border-radius:6px;
  font-size:.85rem;
  line-height:1.4;
}
.bp-pay-sdk-slot:empty{min-height:0}
.bp-pay-sdk-slot[data-bp-sdk="paypal-ready"]{min-height:2.5rem}

.bp-pay-sdk-slot[data-bp-sdk="stripe-ready"]{min-height:2.5rem}

/* Checkout payment logos + secure heading (v1.0.7) */
.bp-checkout-pay .bp-pay-block[data-provider="stripe"]{
  padding:1.25rem 1.15rem 1.1rem;
  margin:0;
  border-color:rgba(198,167,94,.4);
  background:rgba(6,8,13,.62);
}
.bp-pay-secure-heading{
  margin:0 0 1.05rem;
  text-align:center;
  font-family:"Libre Franklin",system-ui,sans-serif;
  font-size:1.05rem;
  font-weight:800;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#fff;
  line-height:1.2;
}
.bp-pay-logos{
  list-style:none;
  margin:.95rem 0 0;
  padding:0;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:center;
  gap:.45rem .5rem;
}
.bp-pay-logos li{
  margin:0;
  padding:0;
  line-height:0;
}
.bp-pay-logos img{
  display:block;
  height:28px;
  width:auto;
  max-width:48px;
  border-radius:4px;
  box-shadow:0 1px 0 rgba(255,255,255,.06);
}
.bp-pay-secure-cue{
  margin:.75rem 0 0;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:.35rem;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--bp-muted);
}
.bp-pay-lock{
  display:inline-block;
  width:.7rem;
  height:.7rem;
  border:1.5px solid currentColor;
  border-radius:2px;
  position:relative;
  opacity:.85;
}
.bp-pay-lock::before{
  content:"";
  position:absolute;
  left:50%;
  top:-.32rem;
  width:.38rem;
  height:.35rem;
  border:1.5px solid currentColor;
  border-bottom:none;
  border-radius:.25rem .25rem 0 0;
  transform:translateX(-50%);
}
