:root{
  --primary:#4F46E5;
  --primary-dark:#3730A3;
  --primary-light:#EEF2FF;
  --accent:#F59E0B;
  --accent-dark:#B45309;
  --success:#16A34A;
  --danger:#DC2626;
  --bg-panel:#FAFAFB;
  --border:#E5E7EB;
  --text:#1F2937;
  --text-light:#6B7280;
  --radius:10px;
  --radius-lg:16px;
  --font:'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif;
  --shadow-sm:0 1px 3px rgba(17,24,39,0.06);
  --shadow-md:0 6px 20px rgba(17,24,39,0.10);
}
*{ box-sizing:border-box; }
.bpq-root{
  font-family:var(--font);
  margin:0;
  background:#fff;
  color:var(--text);
}

.quoter-shell{ max-width:1400px; margin:0 auto; border:1px solid var(--border); border-radius:var(--radius-lg); overflow:hidden; }

/* ===================== PROGRESS BAR ===================== */
.progress-wrap{
  padding:16px 28px;
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  gap:16px;
}
.progress-track{
  flex:1;
  height:6px;
  background:var(--border);
  border-radius:99px;
  overflow:hidden;
}
.progress-fill{
  height:100%;
  background:linear-gradient(90deg, var(--primary), var(--accent));
  border-radius:99px;
  transition:width .35s ease;
}
.progress-label{
  font-size:12px;
  font-weight:700;
  color:var(--text-light);
  white-space:nowrap;
}

.quoter-layout{ display:flex; min-height:600px; position:relative; }

/* ===================== LEFT: STEP SIDEBAR ===================== */
.sidebar{
  flex:0 0 270px;
  background:#fff;
  border-right:1px solid var(--border);
  padding:14px;
  max-height:760px;
  overflow-y:auto;
}
.side-step{
  display:flex;
  align-items:center;
  gap:12px;
  padding:12px 14px;
  cursor:pointer;
  border-radius:var(--radius);
  margin-bottom:2px;
  transition:background .15s;
}
.side-step:hover{ background:var(--primary-light); }
.side-step.active{ background:var(--primary); }
.side-step.active .step-label{ color:#fff; }
.side-step.active .step-value{ color:#E0E7FF; }
.side-step .badge{
  width:26px; height:26px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:800; flex:0 0 26px;
  background:var(--border); color:var(--text-light);
}
.side-step.done .badge{ background:var(--success); color:#fff; }
.side-step.active .badge{ background:#fff; color:var(--primary); }
.side-step .info{ flex:1; min-width:0; }
.side-step .step-label{ font-size:13.5px; font-weight:700; color:var(--text); }
.side-step .step-value{ font-size:11.5px; color:var(--text-light); margin-top:1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.side-step.pending .step-value{ color:#9CA3AF; font-style:italic; }

/* ===================== MIDDLE: OPTIONS ===================== */
.main-panel{ flex:1 1 auto; padding:30px 32px; background:var(--bg-panel); display:flex; flex-direction:column; }
.step-heading{ font-size:22px; font-weight:800; margin:0 0 20px 0; color:var(--text); }
.content-row{ display:flex; gap:28px; flex:1; animation:fadeIn .25s ease; }
@keyframes fadeIn{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:translateY(0);} }

.option-list{ flex:0 0 340px; display:flex; flex-direction:column; gap:8px; max-height:520px; overflow-y:auto; padding-right:6px; }

.option-item{
  display:flex; align-items:center; gap:12px;
  background:#fff; border:1.5px solid var(--border); border-radius:var(--radius);
  padding:14px 16px; cursor:pointer;
  transition:border-color .15s, box-shadow .15s, transform .1s;
}
.option-item:hover{ border-color:var(--primary); box-shadow:var(--shadow-sm); }
.option-item:active{ transform:scale(0.99); }
.option-item.selected{ border-color:var(--primary); background:var(--primary-light); box-shadow:var(--shadow-sm); }
.radio-dot{ width:19px; height:19px; border-radius:50%; border:2px solid #D1D5DB; flex:0 0 19px; position:relative; background:#fff; }
.option-item.selected .radio-dot{ border-color:var(--primary); }
.option-item.selected .radio-dot::after{ content:''; position:absolute; inset:3px; border-radius:50%; background:var(--primary); }
.opt-item-name{ font-size:13.5px; font-weight:600; color:var(--text); flex:1; }
.opt-item-price{ font-size:11.5px; color:var(--text-light); white-space:nowrap; font-weight:600; }
.info-dot{
  width:24px; height:24px; border-radius:50%; border:none; color:var(--primary);
  font-size:13px; font-weight:800; display:flex; align-items:center; justify-content:center; flex:0 0 24px; background:var(--primary-light);
  cursor:pointer;
}
.info-dot:hover{ background:var(--primary); color:#fff; }


/* BPQ info control — fully isolated from theme / Elementor button styles. */
.bpq-root button.info-dot,
.bpq-root .info-dot,
.bpq-root button.info-dot:hover,
.bpq-root button.info-dot:focus,
.bpq-root button.info-dot:active{
  -webkit-appearance:none!important;
  appearance:none!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 34px!important;
  width:34px!important;
  min-width:34px!important;
  max-width:34px!important;
  height:34px!important;
  min-height:34px!important;
  max-height:34px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:999px!important;
  background:var(--primary)!important;
  color:#fff!important;
  font-family:Georgia,'Times New Roman',serif!important;
  font-size:18px!important;
  font-style:italic!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-indent:0!important;
  text-transform:none!important;
  text-decoration:none!important;
  box-shadow:0 3px 10px rgba(17,24,39,.14)!important;
  transform:none!important;
  cursor:pointer!important;
  overflow:hidden!important;
  vertical-align:middle!important;
}
.bpq-root button.info-dot:hover,
.bpq-root button.info-dot:focus-visible{
  filter:brightness(.92);
  box-shadow:0 5px 14px rgba(17,24,39,.18)!important;
  outline:none!important;
}
.bpq-root button.info-dot:focus-visible{
  box-shadow:0 0 0 3px rgba(79,70,229,.16),0 5px 14px rgba(17,24,39,.18)!important;
}

.preview-panel{ flex:1; display:flex; flex-direction:column; align-items:center; padding-top:6px; }
.preview-box{ width:100%; max-width:320px; height:260px; background:#fff; border:1px solid var(--border); border-radius:var(--radius-lg); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-sm); }
.preview-desc{ max-width:320px; font-size:13px; line-height:1.6; color:var(--text-light); margin-top:16px; text-align:center; }
.preview-desc strong{ color:var(--text); display:block; margin-bottom:4px; font-size:14px; }

/* Save Project / Checkout step */
.save-project-box{ max-width:520px; }
.save-project-box h3{ font-size:22px; margin:0 0 8px 0; }
.save-project-box p{ font-size:13px; color:var(--text-light); margin:0 0 16px 0; }
.save-project-box ul{ font-size:13px; color:var(--text); padding-left:20px; margin:0 0 20px 0; }
.save-project-box input{
  width:100%; height:46px; border:1.5px solid var(--border); border-radius:var(--radius);
  padding:0 16px; font-family:var(--font); font-size:14px;
}
.save-project-box input:focus{ border-color:var(--primary); outline:none; }

.nav-buttons{ display:flex; justify-content:space-between; margin-top:22px; }
.nav-buttons button{ height:46px; padding:0 26px; border-radius:var(--radius); font-family:var(--font); font-size:14px; font-weight:700; cursor:pointer; transition:opacity .15s, transform .1s; }
.nav-buttons button:active{ transform:scale(0.97); }
.btn-back{ background:#fff; border:1.5px solid var(--border); color:var(--text); }
.btn-back:hover{ border-color:var(--primary); color:var(--primary); }
.btn-next{ background:var(--primary); border:none; color:#fff; }
.btn-next:hover{ background:var(--primary-dark); }
.btn-back:disabled{ visibility:hidden; }

/* ===================== RIGHT: OPTIONS + QUOTE ===================== */
.right-panel{ flex:0 0 300px; padding:26px 22px; border-left:1px solid var(--border); }
.right-heading{ font-size:12px; font-weight:800; letter-spacing:0.06em; color:var(--text-light); margin:0 0 14px 0; text-transform:uppercase; }
.field-row{ display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; gap:10px; }
.field-row label{ font-size:12.5px; color:var(--text); flex:1; }
.field-row .hint{ font-size:10.5px; color:var(--text-light); display:block; }
.field-row input, .field-row select{ width:96px; height:34px; border:1.5px solid var(--border); border-radius:6px; padding:0 8px; font-family:var(--font); font-size:12.5px; }
.field-row input:focus, .field-row select:focus{ border-color:var(--primary); outline:none; }
.divider{ border:none; border-top:1px solid var(--border); margin:20px 0; }
.promo-link{ font-size:12px; color:var(--primary); font-weight:600; cursor:pointer; }
.quote-price-label{ font-size:11.5px; color:var(--text-light); margin-top:12px; }
.quote-price{ font-size:28px; font-weight:800; color:var(--text); transition:color .2s; }
.quote-price.pulse{ color:var(--success); }
.quote-sub{ font-size:11px; color:var(--text-light); margin-top:2px; }
.view-summary{ font-size:11.5px; color:var(--primary); font-weight:700; cursor:pointer; }
.mobile-panel-close{ display:none; }

/* ===================== MODAL ===================== */
.modal-overlay{
  position:fixed; inset:0; background:rgba(17,24,39,0.5);
  display:none; align-items:center; justify-content:center; z-index:999;
}
.modal-overlay.open{ display:flex; }
.modal-box{
  background:#fff; max-width:460px; width:92%; border-radius:var(--radius-lg); padding:0;
  position:relative; box-shadow:var(--shadow-md); overflow:hidden; max-height:88vh; display:flex; flex-direction:column;
}
.modal-image{ width:100%; height:220px; background:var(--bg-panel); display:flex; align-items:center; justify-content:center; flex:0 0 auto; }
.modal-content{ padding:24px; overflow-y:auto; }
.modal-box h3{ color:var(--text); font-size:18px; margin:0 0 10px 0; font-weight:800; }
.modal-box p{ font-size:13.5px; line-height:1.6; color:var(--text-light); margin:0 0 14px 0; }
.modal-close{
  position:absolute; top:12px; right:12px; width:32px; height:32px; border-radius:50%;
  background:#fff; color:var(--text); border:none; font-size:16px; cursor:pointer; box-shadow:var(--shadow-sm); z-index:2;
}
.modal-actions{ padding:0 24px 24px 24px; }
.modal-add-btn{
  background:var(--primary); color:#fff; border:none; height:46px; width:100%;
  border-radius:var(--radius); font-family:var(--font); font-weight:700; cursor:pointer; font-size:14px;
}
.modal-add-btn:hover{ background:var(--primary-dark); }
.modal-add-btn.already{ background:var(--success); cursor:default; }

/* Checkout grid */
.checkout-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-top:10px; }
.checkout-grid input{ height:44px; border:1.5px solid var(--border); border-radius:var(--radius); padding:0 14px; font-family:var(--font); font-size:14px; }
.checkout-grid input:focus{ border-color:var(--primary); outline:none; }
@media (max-width:640px){ .checkout-grid{ grid-template-columns:1fr; } }

/* ===================== SUMMARY MODAL ===================== */
.modal-box.summary-modal{ max-width:680px; }
.summary-header{
  display:flex; align-items:center; justify-content:space-between;
  padding:24px 28px 16px 28px;
}
.summary-logo{ font-size:18px; font-weight:800; color:var(--primary); }
.summary-logo span{ display:block; font-size:10px; font-weight:700; color:var(--text-light); letter-spacing:0.08em; }
.summary-print-btn{
  background:#fff; border:1.5px solid var(--primary); color:var(--primary);
  height:36px; padding:0 18px; border-radius:8px; font-family:var(--font);
  font-weight:700; font-size:12px; cursor:pointer; letter-spacing:0.04em;
}
.summary-print-btn:hover{ background:var(--primary); color:#fff; }
.summary-rows{ padding:0 28px; }
.summary-row{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:10px 0; border-bottom:1px dashed var(--border); gap:14px;
}
.summary-row .s-label{ font-size:11px; font-weight:700; color:var(--text-light); letter-spacing:0.04em; text-transform:uppercase; white-space:nowrap; }
.summary-row .s-value{ font-size:14px; color:var(--text); font-weight:600; text-align:right; }
.summary-grid{
  display:grid; grid-template-columns:1fr 1fr; gap:0 24px;
  padding:16px 28px 24px 28px;
}
.summary-grid .summary-row{ border-bottom:1px dashed var(--border); }
.summary-price-highlight{ color:var(--primary); font-size:16px; font-weight:800; }
.summary-shipdate{ color:var(--success); font-weight:700; }
.summary-footnote{
  text-align:center; font-size:12px; color:var(--text-light);
  padding:0 28px 24px 28px;
}

@media print{
  .bpq-root *{ visibility:hidden; }
  .modal-box.summary-modal, .modal-box.summary-modal *{ visibility:visible; }
  .modal-box.summary-modal{ position:absolute; top:0; left:0; width:100%; max-width:100%; box-shadow:none; }
  .modal-close, .summary-print-btn{ display:none; }
}

/* ===================== MOBILE RESPONSIVE ===================== */
.mobile-quote-bar{ display:none; }

@media (max-width:1100px){
  .quoter-layout{ flex-direction:column; }

  .sidebar{
    flex:none; display:flex; gap:8px; overflow-x:auto;
    border-right:none; border-bottom:1px solid var(--border);
    max-height:none; padding:12px 14px;
  }
  .side-step{ flex:0 0 auto; white-space:nowrap; padding:8px 14px; }
  .side-step .step-value{ display:none; }
  .side-step .step-label{ font-size:12.5px; }

  .main-panel{ padding:20px 18px; }
  .content-row{ flex-direction:column; }
  .option-list{ flex:none; max-height:none; }
  .preview-box{ max-width:100%; height:200px; }

  .right-panel{
    position:fixed; left:0; right:0; bottom:0; top:auto;
    max-height:75vh; overflow-y:auto;
    background:#fff; border-left:none; border-top:1px solid var(--border);
    border-radius:20px 20px 0 0;
    transform:translateY(100%); transition:transform .3s ease;
    z-index:95; box-shadow:0 -8px 30px rgba(0,0,0,0.15);
    padding-top:14px;
  }
  .right-panel.sheet-open{ transform:translateY(0); }
  .mobile-panel-close{
    display:block; width:36px; height:4px; background:var(--border);
    border-radius:99px; margin:0 auto 16px auto; border:none; padding:0;
  }

  .nav-buttons{ margin-bottom:70px; }

  .mobile-quote-bar{
    display:flex; align-items:center; justify-content:space-between;
    position:fixed; bottom:0; left:0; right:0; background:#fff;
    border-top:1px solid var(--border); padding:12px 18px; box-shadow:0 -4px 16px rgba(0,0,0,0.08);
    z-index:80;
  }
  .mobile-quote-bar .mq-price{ font-size:18px; font-weight:800; color:var(--text); }
  .mobile-quote-bar .mq-sub{ font-size:10.5px; color:var(--text-light); }
  .mobile-quote-bar button{
    background:var(--primary); color:#fff; border:none; height:42px; padding:0 20px;
    border-radius:var(--radius); font-weight:700; font-size:13px; font-family:var(--font);
  }
}

@media (max-width:480px){
  .step-heading{ font-size:18px; }
  .option-item{ padding:12px; }
}

.bpq-validation-pulse{animation:bpqWarn .45s ease;} @keyframes bpqWarn{0%,100%{transform:translateX(0)}25%{transform:translateX(-6px);color:var(--danger)}75%{transform:translateX(6px);color:var(--danger)}}

/* Custom option images uploaded from Book Quotes → Images */
.bpq-option-image{
  display:block;
  width:auto;
  height:auto;
  max-width:92%;
  max-height:92%;
  object-fit:contain;
  object-position:center;
  margin:auto;
}
.preview-box{overflow:hidden;padding:10px;box-sizing:border-box;}
.modal-image{overflow:hidden;padding:12px;box-sizing:border-box;}
.modal-image .bpq-option-image{max-width:100%;max-height:100%;}
.bpq-save-project-step{width:100%;max-width:620px;margin:0 auto;}
.bpq-save-project-step input{max-width:520px;}

@media (max-width:1100px){
  .preview-box{height:240px;min-height:240px;}
  .bpq-option-image{max-width:94%;max-height:220px;}
}
@media (max-width:640px){
  .preview-panel{width:100%;}
  .preview-box{height:210px;min-height:210px;width:100%;padding:8px;}
  .bpq-option-image{max-width:96%;max-height:190px;}
  .preview-desc{max-width:100%;padding:0 4px;box-sizing:border-box;}
  .modal-image{height:200px;}
}
@media (max-width:420px){
  .preview-box{height:185px;min-height:185px;}
  .bpq-option-image{max-height:168px;}
}


/* v1.2.1: keep uploaded media visually authoritative over built-in illustrations */
.preview-box.bpq-has-custom-image,
.modal-image.bpq-has-custom-image{
  position:relative;
  background:#fff;
}
.preview-box.bpq-has-custom-image > svg,
.modal-image.bpq-has-custom-image > svg,
.preview-box.bpq-has-custom-image::before,
.preview-box.bpq-has-custom-image::after,
.modal-image.bpq-has-custom-image::before,
.modal-image.bpq-has-custom-image::after{
  display:none !important;
  content:none !important;
}
.preview-box.bpq-has-custom-image .bpq-option-image,
.modal-image.bpq-has-custom-image .bpq-option-image{
  position:relative;
  z-index:5;
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  margin:auto !important;
}

/* v1.2.2 — uploaded-image-only preview + smooth hover/selected state */
.preview-panel{
  transition:opacity .16s ease, transform .16s ease;
  will-change:opacity,transform;
}
.preview-panel.bpq-preview-switching{
  opacity:.38;
  transform:translateY(2px);
}
.preview-box{
  position:relative;
  isolation:isolate;
}
.preview-box.bpq-no-custom-image,
.modal-image:not(.bpq-has-custom-image){
  background:#fff;
}
.bpq-no-option-image{
  width:100%;
  height:100%;
  min-height:120px;
  background:transparent;
}
.preview-desc{
  min-height:52px;
  transition:opacity .16s ease, transform .16s ease;
}
.preview-desc strong{
  margin-bottom:5px;
}
.preview-desc span{
  display:block;
}
/* Hard-disable legacy SVG artwork if stale HTML/cache ever injects it. */
.bpq-root .preview-box svg,
.bpq-root .modal-image svg{
  display:none !important;
}
/* Uploaded media always owns the preview layer. */
.bpq-root .preview-box .bpq-option-image,
.bpq-root .modal-image .bpq-option-image{
  position:relative;
  z-index:10;
  display:block !important;
  opacity:1 !important;
  visibility:visible !important;
}


/* ============================================================
   v1.3.0 — premium summary + reliable print document
   ============================================================ */
.modal-box.summary-modal{max-width:820px;width:min(94vw,820px);border-radius:18px;}
.modal-box.summary-modal .modal-content{padding:0;background:#f6f7f8;}
.summary-document{background:#fff;color:var(--text);}
.summary-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 28px;border-bottom:1px solid var(--border);background:#fff;}
.summary-brand{display:flex;align-items:center;gap:14px;min-width:0;}
.summary-brand-logo{width:128px;height:54px;object-fit:contain;object-position:left center;display:block;}
.summary-brand-copy{display:flex;flex-direction:column;line-height:1.2;}
.summary-brand-copy strong{font-size:13px;color:var(--text);}
.summary-brand-copy span{font-size:10px;text-transform:uppercase;letter-spacing:.11em;color:var(--text-light);margin-top:4px;}
.summary-header-actions{display:flex;align-items:center;gap:10px;}
.summary-estimate-badge{font-size:10px;font-weight:800;letter-spacing:.08em;padding:6px 9px;border-radius:999px;background:#f3f4f6;color:#4b5563;}
.summary-print-btn{height:38px;padding:0 15px;border:1px solid var(--border);border-radius:9px;background:#fff;color:var(--text);font-size:12px;font-weight:700;cursor:pointer;}
.summary-print-btn:hover{border-color:var(--primary);color:var(--primary);background:#fff;}
.summary-hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(250px,.75fr);gap:24px;padding:28px;background:linear-gradient(180deg,#fff 0%,#fbfbfc 100%);}
.summary-kicker{display:block;font-size:10px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--primary);margin-bottom:7px;}
.summary-hero h3{margin:0 0 7px;font-size:24px;line-height:1.2;color:var(--text);}
.summary-hero p{margin:0;color:var(--text-light);font-size:13px;line-height:1.55;}
.summary-total-card{padding:18px 20px;border:1px solid #eadfd7;border-radius:14px;background:#fff8f4;display:flex;flex-direction:column;justify-content:center;}
.summary-total-card span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:800;color:var(--text-light);}
.summary-total-card strong{font-size:26px;line-height:1.15;color:var(--primary);margin:5px 0;}
.summary-total-card small{font-size:10.5px;line-height:1.4;color:var(--text-light);}
.summary-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:0 28px 24px;}
.summary-meta-card{border:1px solid var(--border);border-radius:12px;padding:13px 14px;background:#fff;min-width:0;}
.summary-meta-card span{display:block;font-size:9.5px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-light);font-weight:700;margin-bottom:5px;}
.summary-meta-card strong{display:block;font-size:13px;color:var(--text);overflow-wrap:anywhere;}
.summary-section{padding:0 28px 24px;}
.summary-section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:10px;}
.summary-section-title h4{margin:0;font-size:14px;color:var(--text);}
.summary-section-title span{font-size:10.5px;color:var(--text-light);}
.summary-specs{border:1px solid var(--border);border-radius:14px;overflow:hidden;background:#fff;}
.summary-spec-row{display:grid;grid-template-columns:minmax(135px,.42fr) minmax(0,.58fr);gap:18px;align-items:start;padding:11px 14px;border-bottom:1px solid #eef0f2;}
.summary-spec-row:last-child{border-bottom:0;}
.summary-spec-label{font-size:10px;text-transform:uppercase;letter-spacing:.055em;font-weight:800;color:var(--text-light);}
.summary-spec-value{font-size:12.5px;font-weight:650;color:var(--text);text-align:right;overflow-wrap:anywhere;}
.summary-pricing-box{margin:0 28px 22px;border:1px solid var(--border);border-radius:14px;background:#fafafa;overflow:hidden;}
.summary-pricing-box>div{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:10px 14px;border-bottom:1px solid #eceef0;font-size:12px;}
.summary-pricing-box>div:last-child{border-bottom:0;}
.summary-pricing-box span{color:var(--text-light);}
.summary-pricing-box strong{color:var(--text);}
.summary-pricing-box .summary-grand-total{padding:14px;background:#fff;}
.summary-pricing-box .summary-grand-total span{font-weight:800;color:var(--text);}
.summary-pricing-box .summary-grand-total strong{font-size:19px;color:var(--primary);}
.summary-footnote{padding:0 28px 26px;text-align:left;font-size:10.5px;line-height:1.55;color:var(--text-light);}

@media (max-width:700px){
  .summary-header{padding:17px 18px;align-items:flex-start;}
  .summary-brand-logo{width:105px;height:44px;}
  .summary-brand-copy{display:none;}
  .summary-header-actions{gap:7px;}
  .summary-estimate-badge{display:none;}
  .summary-hero{grid-template-columns:1fr;padding:20px 18px;gap:16px;}
  .summary-hero h3{font-size:20px;}
  .summary-total-card{padding:15px 16px;}
  .summary-meta-grid{grid-template-columns:1fr 1fr;padding:0 18px 18px;}
  .summary-section{padding:0 18px 18px;}
  .summary-spec-row{grid-template-columns:1fr;gap:4px;padding:10px 12px;}
  .summary-spec-value{text-align:left;}
  .summary-pricing-box{margin:0 18px 18px;}
  .summary-footnote{padding:0 18px 22px;}
}

@media print{
  @page{size:auto;margin:12mm;}
  body.bpq-printing-summary{background:#fff!important;}
  body.bpq-printing-summary *{visibility:hidden!important;box-shadow:none!important;}
  body.bpq-printing-summary #modalOverlay,
  body.bpq-printing-summary #modalOverlay *,
  body.bpq-printing-summary #bpqPrintableSummary,
  body.bpq-printing-summary #bpqPrintableSummary *{visibility:visible!important;}
  body.bpq-printing-summary #modalOverlay{display:block!important;position:absolute!important;inset:0!important;background:#fff!important;width:100%!important;height:auto!important;overflow:visible!important;z-index:999999!important;}
  body.bpq-printing-summary .modal-box.summary-modal{display:block!important;position:absolute!important;left:0!important;top:0!important;width:100%!important;max-width:none!important;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;overflow:visible!important;background:#fff!important;}
  body.bpq-printing-summary .modal-content{display:block!important;overflow:visible!important;padding:0!important;background:#fff!important;}
  body.bpq-printing-summary .modal-close,
  body.bpq-printing-summary .summary-print-btn,
  body.bpq-printing-summary .summary-estimate-badge{display:none!important;}
  body.bpq-printing-summary .summary-header{padding:0 0 15px!important;}
  body.bpq-printing-summary .summary-hero{padding:18px 0!important;grid-template-columns:1.35fr .65fr!important;}
  body.bpq-printing-summary .summary-meta-grid{padding:0 0 18px!important;grid-template-columns:repeat(4,1fr)!important;}
  body.bpq-printing-summary .summary-section{padding:0 0 18px!important;}
  body.bpq-printing-summary .summary-pricing-box{margin:0 0 16px!important;}
  body.bpq-printing-summary .summary-footnote{padding:0!important;}
  body.bpq-printing-summary .summary-spec-row{break-inside:avoid;page-break-inside:avoid;}
  body.bpq-printing-summary .summary-total-card,
  body.bpq-printing-summary .summary-meta-card,
  body.bpq-printing-summary .summary-pricing-box{break-inside:avoid;page-break-inside:avoid;}
}


/* ============================================================
   v1.3.1 — polished modal controls + summary action buttons
   Isolated from theme/Elementor global button styles.
   ============================================================ */
.bpq-root .modal-close,
.bpq-root .modal-close:hover,
.bpq-root .modal-close:focus,
.bpq-root .modal-close:active{
  -webkit-appearance:none !important;
  appearance:none !important;
  box-sizing:border-box !important;
  position:absolute !important;
  top:16px !important;
  right:16px !important;
  width:42px !important;
  min-width:42px !important;
  max-width:42px !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  padding:0 !important;
  margin:0 !important;
  border:1px solid rgba(255,255,255,.16) !important;
  border-radius:999px !important;
  background:#111 !important;
  color:#fff !important;
  display:grid !important;
  place-items:center !important;
  line-height:0 !important;
  font-size:0 !important;
  text-indent:0 !important;
  box-shadow:0 8px 24px rgba(17,24,39,.18) !important;
  cursor:pointer !important;
  z-index:30 !important;
  transform:none !important;
  transition:transform .18s ease, background .18s ease, box-shadow .18s ease !important;
}
.bpq-root .modal-close:hover{
  background:#000 !important;
  transform:translateY(-1px) scale(1.03) !important;
  box-shadow:0 10px 28px rgba(17,24,39,.24) !important;
}
.bpq-root .modal-close:active{transform:scale(.96) !important;}
.bpq-root .modal-close:focus-visible{outline:3px solid rgba(17,17,17,.18) !important;outline-offset:3px !important;}
.bpq-root .modal-close svg{
  display:block !important;
  width:18px !important;
  height:18px !important;
  overflow:visible !important;
  pointer-events:none !important;
}
.bpq-root .modal-close svg path{
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

/* Back control — proper icon size/alignment */
.bpq-root .nav-buttons .btn-back{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:9px !important;
  line-height:1 !important;
}
.bpq-root .btn-back .bpq-back-icon{
  display:block !important;
  width:19px !important;
  height:19px !important;
  flex:0 0 19px !important;
}
.bpq-root .btn-back .bpq-back-icon path{
  fill:none !important;
  stroke:currentColor !important;
  stroke-width:2.1 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

/* Summary controls — hard reset so theme button CSS cannot distort them */
.bpq-root .summary-header-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-end !important;
  gap:10px !important;
  flex-wrap:wrap !important;
}
.bpq-root .summary-estimate-badge{
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:0 !important;
  height:40px !important;
  padding:0 14px !important;
  margin:0 !important;
  border:1px solid #e5e7eb !important;
  border-radius:999px !important;
  background:#f5f6f7 !important;
  color:#374151 !important;
  font-family:var(--font) !important;
  font-size:10.5px !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:.09em !important;
  text-transform:uppercase !important;
  white-space:nowrap !important;
  box-shadow:none !important;
}
.bpq-root .summary-print-btn,
.bpq-root .summary-print-btn:hover,
.bpq-root .summary-print-btn:focus,
.bpq-root .summary-print-btn:active{
  -webkit-appearance:none !important;
  appearance:none !important;
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:auto !important;
  min-width:138px !important;
  max-width:none !important;
  height:40px !important;
  min-height:40px !important;
  padding:0 20px !important;
  margin:0 !important;
  border:1px solid #111 !important;
  border-radius:999px !important;
  background:#111 !important;
  color:#fff !important;
  font-family:var(--font) !important;
  font-size:11px !important;
  font-weight:800 !important;
  line-height:1 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
  text-decoration:none !important;
  white-space:nowrap !important;
  box-shadow:none !important;
  cursor:pointer !important;
  transform:none !important;
  transition:background .18s ease, transform .18s ease, box-shadow .18s ease !important;
}
.bpq-root .summary-print-btn:hover{
  background:#2a2a2a !important;
  color:#fff !important;
  transform:translateY(-1px) !important;
  box-shadow:0 8px 20px rgba(17,17,17,.15) !important;
}
.bpq-root .summary-print-btn:active{transform:scale(.98) !important;}
.bpq-root .summary-print-btn:focus-visible{outline:3px solid rgba(17,17,17,.15) !important;outline-offset:3px !important;}

@media (max-width:640px){
  .bpq-root .modal-close,
  .bpq-root .modal-close:hover,
  .bpq-root .modal-close:focus,
  .bpq-root .modal-close:active{
    top:12px !important;
    right:12px !important;
    width:40px !important;
    min-width:40px !important;
    max-width:40px !important;
    height:40px !important;
    min-height:40px !important;
    max-height:40px !important;
  }
  .bpq-root .summary-header{align-items:flex-start !important;}
  .bpq-root .summary-header-actions{width:100% !important;justify-content:flex-start !important;margin-top:4px !important;}
  .bpq-root .summary-estimate-badge{height:38px !important;padding:0 12px !important;}
  .bpq-root .summary-print-btn,
  .bpq-root .summary-print-btn:hover,
  .bpq-root .summary-print-btn:focus,
  .bpq-root .summary-print-btn:active{height:38px !important;min-height:38px !important;min-width:132px !important;padding:0 17px !important;}
}

/* ============================================================
   v1.4.0 — mobile image-first quoter experience
   Inspired by the supplied mobile interaction reference while
   retaining Book Printing House branding and theme variables.
   ============================================================ */
.bpq-mobile-topbar,
.bpq-mobile-drawer-backdrop,
.bpq-mobile-card-media{display:none;}

@media (max-width:700px){
  .bpq-root{
    --bpq-mobile-bar-h:58px;
    --bpq-mobile-bottom-h:64px;
    background:#f7f7f8;
  }
  .bpq-root .quoter-shell{
    width:100%;
    max-width:none;
    border:0;
    border-radius:0;
    overflow:visible;
    background:#f7f7f8;
  }

  /* Compact top control bar */
  .bpq-mobile-topbar{
    display:grid;
    grid-template-columns:72px 1fr 72px;
    align-items:center;
    position:sticky;
    top:0;
    z-index:86;
    min-height:var(--bpq-mobile-bar-h);
    padding:7px 10px;
    background:#fff;
    border-bottom:1px solid #dedfe2;
    box-shadow:0 1px 8px rgba(17,24,39,.05);
  }
  .bpq-mobile-topbtn,
  .bpq-mobile-topbtn:hover,
  .bpq-mobile-topbtn:focus,
  .bpq-mobile-topbtn:active{
    appearance:none!important;
    -webkit-appearance:none!important;
    height:34px!important;
    min-height:34px!important;
    padding:0 10px!important;
    margin:0!important;
    border:1px solid #d7d9de!important;
    border-radius:6px!important;
    background:#fff!important;
    color:var(--text)!important;
    font-family:var(--font)!important;
    font-size:10px!important;
    font-weight:800!important;
    letter-spacing:.055em!important;
    line-height:32px!important;
    box-shadow:none!important;
    text-align:center!important;
  }
  .bpq-mobile-brand{display:flex;align-items:center;justify-content:center;min-width:0;padding:0 9px;}
  .bpq-mobile-brand img{display:block;width:auto;max-width:126px;height:35px;object-fit:contain;}

  /* Mobile progress is a subtle line directly under the header */
  .bpq-root .progress-wrap{
    position:sticky;
    top:var(--bpq-mobile-bar-h);
    z-index:84;
    height:4px;
    min-height:4px;
    padding:0;
    border:0;
    background:#e9eaed;
  }
  .bpq-root .progress-track{height:4px;border-radius:0;background:#e9eaed;}
  .bpq-root .progress-fill{border-radius:0;background:var(--primary);}
  .bpq-root .progress-label{display:none;}

  .bpq-root .quoter-layout{display:block;min-height:0;padding-bottom:calc(var(--bpq-mobile-bottom-h) + 14px);}
  .bpq-root .main-panel{display:block;padding:0 10px 20px;background:#f7f7f8;min-height:calc(100vh - 126px);}
  .bpq-root .step-heading{
    margin:0 -10px 10px;
    padding:13px 14px 12px;
    background:#fff;
    border-bottom:1px solid #e3e4e7;
    color:var(--text);
    font-size:16px;
    line-height:1.35;
    font-weight:650;
  }
  .bpq-root .content-row{display:block;animation:fadeIn .18s ease;}

  /* Image-first two-column choice grid */
  .bpq-root .option-list{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
    width:100%;
    max-height:none;
    overflow:visible;
    padding:0;
  }
  .bpq-root .option-item{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    min-width:0;
    min-height:215px;
    padding:8px 8px 38px!important;
    margin:0;
    background:#fff;
    border:1px solid #e2e3e6;
    border-radius:5px;
    box-shadow:0 1px 4px rgba(17,24,39,.06);
    transform:none!important;
    overflow:hidden;
    transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .12s ease;
  }
  .bpq-root .option-item:active{transform:scale(.985)!important;}
  .bpq-root .option-item:hover{border-color:#d6d8dc;box-shadow:0 2px 8px rgba(17,24,39,.08);}
  .bpq-root .option-item.selected{
    background:var(--primary);
    border-color:var(--primary);
    box-shadow:0 6px 16px rgba(79,70,229,.2);
  }
  .bpq-mobile-card-media{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:132px;
    margin:0 0 9px;
    padding:7px;
    background:#f9fafb;
    border-radius:3px;
    overflow:hidden;
  }
  .bpq-root .option-item.selected .bpq-mobile-card-media{background:#fff;}
  .bpq-root .bpq-mobile-card-media .bpq-option-image{
    width:100%!important;
    height:100%!important;
    max-width:100%!important;
    max-height:100%!important;
    object-fit:contain!important;
    object-position:center!important;
    margin:0!important;
  }
  .bpq-mobile-card-media-empty{
    background:linear-gradient(135deg,#fafafa,#f1f2f4);
  }
  .bpq-root .option-item.selected .bpq-mobile-card-media-empty{background:rgba(255,255,255,.95);}
  .bpq-root .radio-dot,
  .bpq-root .opt-item-price{display:none!important;}
  .bpq-root .opt-item-name{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:1 1 auto;
    width:100%;
    padding:0 3px;
    color:var(--text);
    font-size:11.5px;
    line-height:1.35;
    font-weight:700;
    text-align:center;
    overflow-wrap:anywhere;
  }
  .bpq-root .option-item.selected .opt-item-name{color:#fff;}
  .bpq-root button.info-dot,
  .bpq-root .info-dot,
  .bpq-root button.info-dot:hover,
  .bpq-root button.info-dot:focus,
  .bpq-root button.info-dot:active{
    -webkit-appearance:none!important;
    appearance:none!important;
    position:absolute!important;
    left:8px!important;
    bottom:8px!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:30px!important;
    min-width:30px!important;
    max-width:30px!important;
    height:30px!important;
    min-height:30px!important;
    max-height:30px!important;
    flex:0 0 30px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:999px!important;
    background:var(--primary)!important;
    color:#fff!important;
    font-family:Georgia,'Times New Roman',serif!important;
    font-size:16px!important;
    font-style:italic!important;
    font-weight:700!important;
    line-height:1!important;
    letter-spacing:0!important;
    text-indent:0!important;
    text-transform:none!important;
    box-shadow:0 2px 8px rgba(17,24,39,.15)!important;
    transform:none!important;
    z-index:3!important;
  }
  .bpq-root .option-item.selected .info-dot{
    background:#fff!important;
    color:var(--primary)!important;
    box-shadow:0 2px 8px rgba(17,24,39,.14)!important;
  }

  /* Desktop preview becomes redundant on touch screens because each card owns its image. */
  .bpq-root .preview-panel{display:none!important;}

  /* Hide desktop nav; mobile has a persistent next action and Steps for revisiting prior stages. */
  .bpq-root .nav-buttons{display:none!important;}

  /* Left Steps becomes a slide-in drawer */
  .bpq-root .sidebar{
    display:block;
    position:fixed;
    z-index:103;
    top:0;
    left:0;
    bottom:0;
    width:min(86vw,330px);
    max-height:none;
    padding:18px 12px 90px;
    overflow-y:auto;
    overflow-x:hidden;
    background:#fff;
    border:0;
    border-right:1px solid var(--border);
    box-shadow:12px 0 28px rgba(17,24,39,.16);
    transform:translateX(-105%);
    transition:transform .26s ease;
  }
  .bpq-root .sidebar.mobile-steps-open{transform:translateX(0);}
  .bpq-root .side-step{display:flex;white-space:normal;margin:0 0 3px;padding:11px 10px;border-radius:8px;}
  .bpq-root .side-step .step-value{display:block;}

  /* Edit / Summary opens quote settings as a right-side drawer, matching reference behavior. */
  .bpq-root .right-panel{
    display:block;
    position:fixed;
    z-index:103;
    top:0;
    right:0;
    left:auto;
    bottom:0;
    width:min(88vw,350px);
    max-height:none;
    overflow-y:auto;
    padding:26px 20px 100px;
    background:#fff;
    border:0;
    border-left:1px solid var(--border);
    border-radius:0;
    box-shadow:-12px 0 28px rgba(17,24,39,.16);
    transform:translateX(105%);
    transition:transform .26s ease;
  }
  .bpq-root .right-panel.sheet-open{transform:translateX(0);}
  .bpq-root .mobile-panel-close{
    display:block;
    position:relative;
    width:38px;
    height:4px;
    margin:0 auto 18px;
    padding:0;
    border:0;
    border-radius:99px;
    background:#d8dade;
  }
  .bpq-mobile-drawer-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:101;
    background:rgba(17,24,39,.34);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .22s ease,visibility .22s ease;
  }
  .bpq-mobile-drawer-backdrop.open{opacity:1;visibility:visible;pointer-events:auto;}

  /* Reference-like segmented bottom bar */
  .bpq-root .mobile-quote-bar{
    display:grid;
    grid-template-columns:minmax(72px,.92fr) minmax(88px,1.2fr) minmax(70px,.9fr) 54px;
    align-items:stretch;
    position:fixed;
    z-index:90;
    left:0;
    right:0;
    bottom:0;
    height:var(--bpq-mobile-bottom-h);
    padding:0;
    background:#262626;
    border:0;
    border-top:1px solid rgba(255,255,255,.18);
    box-shadow:0 -5px 18px rgba(0,0,0,.16);
  }
  .bpq-root .mq-summary,
  .bpq-root .mq-next{
    appearance:none!important;
    -webkit-appearance:none!important;
    min-width:0!important;
    height:100%!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    font-family:var(--font)!important;
  }
  .bpq-root .mq-summary{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:5px!important;
    background:var(--primary)!important;
    color:#fff!important;
    font-size:10px!important;
    font-weight:800!important;
    text-transform:uppercase;
  }
  .mq-summary-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:21px;
    height:21px;
    border:1.5px solid rgba(255,255,255,.92);
    border-radius:50%;
    font-family:Georgia,serif;
    font-size:12px;
    font-style:italic;
    text-transform:none;
  }
  .bpq-root .mq-stat{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:4px 5px;
    border-left:1px solid rgba(255,255,255,.25);
    color:#fff;
    text-align:center;
  }
  .bpq-root .mq-stat strong,
  .bpq-root .mq-price{
    display:block;
    max-width:100%;
    margin:0!important;
    color:#fff!important;
    font-size:13px!important;
    line-height:1.1!important;
    font-weight:800!important;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .bpq-root .mq-stat span{
    margin-top:4px;
    color:rgba(255,255,255,.72);
    font-size:7.5px;
    line-height:1;
    font-weight:700;
    letter-spacing:.055em;
  }
  .bpq-root .mq-next{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    background:var(--primary)!important;
    color:#fff!important;
    border-left:1px solid rgba(255,255,255,.2)!important;
  }
  .bpq-root .mq-next svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}

  /* Save/checkout remain single-column and comfortably padded. */
  .bpq-root .save-project-box,
  .bpq-root .bpq-save-project-step{width:100%;max-width:none;margin:0;padding:12px 4px 10px;}
  .bpq-root .checkout-grid{grid-template-columns:1fr;}

  /* Dialogs fit above the fixed mobile action bar. */
  .bpq-root .modal-overlay{padding:12px 10px calc(var(--bpq-mobile-bottom-h) + 10px);align-items:center;}
  .bpq-root .modal-box{width:100%;max-height:calc(100vh - var(--bpq-mobile-bottom-h) - 34px);border-radius:14px;}
}

@media (max-width:390px){
  .bpq-root .option-item{min-height:198px;padding:7px 7px 36px!important;}
  .bpq-mobile-card-media{height:116px;}
  .bpq-root .opt-item-name{font-size:10.5px;}
  .bpq-mobile-topbar{grid-template-columns:65px 1fr 65px;padding-left:7px;padding-right:7px;}
  .bpq-mobile-brand img{max-width:112px;}
  .bpq-root .mobile-quote-bar{grid-template-columns:72px minmax(82px,1fr) 67px 50px;}
}

/* v1.5.0 desktop viewport + navigation polish */
@media (min-width:1101px){
  .bpq-root .quoter-shell{margin-top:0!important;}
  .bpq-root .progress-wrap{padding-top:10px;padding-bottom:10px;}
  .bpq-root .quoter-layout{height:min(720px,calc(100vh - 130px));min-height:610px;}
  .bpq-root .sidebar{height:100%;max-height:none;}
  .bpq-root .main-panel{height:100%;min-height:0;padding:22px 26px 16px;}
  .bpq-root .step-heading{margin-bottom:14px;}
  .bpq-root .content-row{min-height:0;overflow:hidden;}
  .bpq-root .option-list{height:100%;max-height:none;min-height:0;overflow-y:auto;}
  .bpq-root .preview-panel{min-height:0;overflow:auto;}
  .bpq-root .nav-buttons{flex:0 0 auto;margin-top:14px;padding-top:14px;border-top:1px solid var(--border);}
  .bpq-root .nav-buttons button{min-width:168px;height:50px;border-radius:9px!important;font-size:15px!important;box-shadow:none!important;}
  .bpq-root .nav-buttons .btn-back{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:#fff!important;border:1.5px solid var(--primary)!important;color:var(--primary)!important;}
  .bpq-root .nav-buttons .btn-back:hover{background:var(--primary-light)!important;}
  .bpq-root .nav-buttons .btn-next{background:var(--primary)!important;color:#fff!important;border:1.5px solid var(--primary)!important;box-shadow:0 5px 14px rgba(79,70,229,.16)!important;}
  .bpq-root .nav-buttons .btn-next:hover{background:var(--primary-dark)!important;transform:translateY(-1px);}
}

/* v1.5.0 mobile bottom bar mirrors the reference: back | pages | price | qty | next */
@media (max-width:700px){
  .bpq-root .mobile-quote-bar{grid-template-columns:48px minmax(72px,.9fr) minmax(92px,1.18fr) minmax(70px,.86fr) 52px!important;background:#262626!important;}
  .bpq-root .mq-back,.bpq-root .mq-next{appearance:none!important;-webkit-appearance:none!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;min-width:0!important;margin:0!important;padding:0!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:var(--primary)!important;color:#fff!important;}
  .bpq-root .mq-back{background:#fff!important;color:var(--primary)!important;border-right:1px solid rgba(255,255,255,.22)!important;}
  .bpq-root .mq-back:disabled{opacity:.42!important;}
  .bpq-root .mq-back svg,.bpq-root .mq-next svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round;}
  .bpq-root .mq-stat{border-left:1px solid rgba(255,255,255,.22);}
}
@media (max-width:390px){.bpq-root .mobile-quote-bar{grid-template-columns:44px 69px minmax(82px,1fr) 67px 48px!important;}}

/* Payment selection */
.bpq-payment-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:20px;max-width:760px;}
.bpq-payment-title{grid-column:1/-1;font-weight:800;font-size:15px;}
.bpq-payment-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;box-shadow:var(--shadow-sm);}
.bpq-payment-label{font-size:13px;font-weight:800;margin-bottom:12px;}
.bpq-stripe-pay{width:100%;margin-top:14px;min-height:46px;}
@media(max-width:700px){.bpq-payment-choice{grid-template-columns:1fr;}.bpq-payment-card{padding:13px;}}

/* v1.6 checkout remains scrollable inside the desktop viewport. */
.bpq-root .bpq-checkout-box{width:100%;max-width:760px;box-sizing:border-box;overflow-y:auto;max-height:100%;padding-bottom:22px;}
.bpq-root .checkout-grid label{display:block;font-size:12px;font-weight:600;}
.bpq-root .checkout-grid input{width:100%;box-sizing:border-box;margin-top:5px;}
.bpq-root #checkoutError{color:#9f2525;background:#fff1f1;padding:12px;border-radius:8px;margin:12px 0;overflow-wrap:anywhere;}
.bpq-root #paymentChoice{margin:18px 0;}
.bpq-root #paymentChoice>button{margin:6px 8px 6px 0;}
.bpq-root .bpq-pay-total{font-size:26px;font-weight:800;color:var(--primary);margin:14px 0;}
.bpq-root .bpq-lock-note{font-size:12px;color:#555;}
.bpq-root .bpq-check-status{background:#fff;color:var(--primary);border:1px solid var(--primary);border-radius:8px;padding:10px 15px;cursor:pointer;}
.bpq-root.bpq-checkout-locked .side-step{cursor:default;}
.bpq-root button:disabled{cursor:not-allowed;opacity:.55;}
@media(min-width:1101px){.bpq-root .quoter-layout{min-height:440px;height:calc(100dvh - 130px);max-height:800px;}.bpq-root .save-project-box{max-height:100%;overflow:auto;}}
