/* ============================================================
   CPB Single Product — Premium Redesign (v1.7.25)
   Polished, attractive, modern. Overrides existing single
   product styles without breaking the underlying markup.
   ============================================================ */

:root{
  --cpbx-radius: 14px;
  --cpbx-radius-sm: 10px;
  --cpbx-shadow-sm: 0 1px 2px rgba(15,23,42,.04), 0 1px 1px rgba(15,23,42,.04);
  --cpbx-shadow-md: 0 4px 14px rgba(15,23,42,.06), 0 2px 4px rgba(15,23,42,.04);
  --cpbx-shadow-lg: 0 18px 40px -16px rgba(15,23,42,.18), 0 6px 14px rgba(15,23,42,.06);
  --cpbx-border: #e6ebf3;
  --cpbx-border-strong: #d6dde9;
  --cpbx-ink: #0f172a;
  --cpbx-muted: #5b6577;
  --cpbx-bg: #f7f9fc;
  --cpbx-primary: var(--cpb-primary, #253993);
  --cpbx-accent: var(--cpb-accent, #8c0000);
  --cpbx-success: #16a34a;
}

/* ---------- Hero header band above the layout ---------- */
.cpb-single-product .cpb-breadcrumbs{
  background: linear-gradient(180deg, #f4f7fb 0%, #ffffff 100%);
  border-bottom: 1px solid var(--cpbx-border);
  padding: 14px 0 12px;
}
.cpb-single-product .cpb-breadcrumbs a{ color: var(--cpbx-muted); text-decoration: none; }
.cpb-single-product .cpb-breadcrumbs a:hover{ color: var(--cpbx-primary); }
.cpb-single-product .cpb-breadcrumbs .separator{ color:#c4cdd9; margin:0 6px; }

/* Optional hero band injected by the template */
.cpbx-product-hero{
  background: linear-gradient(135deg, rgba(37,57,147,0.04) 0%, rgba(140,0,0,0.03) 100%);
  border-bottom: 1px solid var(--cpbx-border);
  padding: 22px 0 18px;
  margin-bottom: 28px;
}
.cpbx-product-hero .cpbx-hero-inner{
  display:flex; align-items:flex-start; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cpbx-product-hero .cpbx-cat-chip{
  display:inline-flex; align-items:center; gap:6px;
  padding:5px 12px;
  background:#fff;
  border:1px solid var(--cpbx-border);
  border-radius:999px;
  font-size:12px; font-weight:600; letter-spacing:.04em; text-transform:uppercase;
  color: var(--cpbx-primary);
  text-decoration:none;
  box-shadow: var(--cpbx-shadow-sm);
}
.cpbx-product-hero .cpbx-hero-title{
  margin:10px 0 0; font-size: clamp(1.7rem, 2.6vw, 2.4rem);
  line-height:1.15; letter-spacing:-0.01em; color: var(--cpbx-ink);
}
.cpbx-product-hero .cpbx-hero-meta{
  display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:10px; color: var(--cpbx-muted); font-size:14px;
}
.cpbx-product-hero .cpbx-hero-meta strong{ color: var(--cpbx-ink); }
.cpbx-product-hero .cpbx-stars{ color:#f59e0b; letter-spacing:1px; }

/* ---------- Product layout polishing ---------- */
.cpb-product-layout{ gap: 36px; }
@media (min-width: 992px){
  .cpb-product-layout{ grid-template-columns: 1.05fr .95fr; }
}

/* ---------- Gallery card ---------- */
.cpb-product-main-col .cpb-product-gallery{
  background:#fff;
  border:1px solid var(--cpbx-border);
  border-radius: var(--cpbx-radius);
  padding: 18px;
  box-shadow: var(--cpbx-shadow-md);
}
.cpb-product-main-col .cpb-product-main-image,
.cpb-product-main-col .cpb-hero-main,
.cpb-product-main-col .cpb-gallery-slide{
  border-radius: var(--cpbx-radius-sm);
  overflow: hidden;
  background: linear-gradient(180deg,#fafbfd,#f1f5fa);
}
.cpb-gallery-thumb, .cpb-gallery-slider-thumb{
  border-radius: 10px !important;
  border: 2px solid transparent;
  box-shadow: 0 1px 3px rgba(15,23,42,.06);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.cpb-gallery-thumb:hover, .cpb-gallery-slider-thumb:hover{
  transform: translateY(-2px);
  box-shadow: 0 6px 14px -6px rgba(37,57,147,.35);
}
.cpb-gallery-thumb--active, .cpb-gallery-slider-thumb--active{
  border-color: var(--cpbx-primary) !important;
  box-shadow: 0 0 0 3px rgba(37,57,147,.12);
}

/* ---------- Summary card ---------- */
.cpb-product-summary{
  background:#fff;
  border:1px solid var(--cpbx-border);
  border-radius: var(--cpbx-radius);
  padding: 26px 26px 22px;
  box-shadow: var(--cpbx-shadow-md);
}
.cpb-product-summary .product_title{
  font-size: clamp(1.45rem, 2vw, 1.9rem);
  line-height:1.2; letter-spacing:-0.01em;
  margin:0 0 10px;
  color: var(--cpbx-ink);
}

/* Price as a soft chip */
.cpb-product-summary .cpb-product-price-display{
  display:inline-flex; align-items:baseline; gap:10px;
  background: linear-gradient(135deg, rgba(37,57,147,.07), rgba(37,57,147,.02));
  border:1px solid #dfe5f3;
  color: var(--cpbx-primary);
  padding: 10px 14px;
  border-radius: 12px;
  margin: 4px 0 14px;
  font-weight: 700; font-size: 1.15rem;
}
.cpb-product-summary .cpb-price del{ color:#94a0b5; font-weight:500; }
.cpb-product-summary .cpb-price ins{ text-decoration:none; color: var(--cpbx-accent); }
.cpb-product-summary .cpb-price--quote{ color:#0f766e; }

/* Short description */
.cpb-product-summary .cpb-product-short-desc{
  color:#3a4660; font-size:15px; line-height:1.65;
  border-left: 3px solid #eef1f7;
  padding-left: 12px;
  margin: 6px 0 18px;
}

/* Specs as a clean key/value list */
.cpb-product-summary .cpb-product-specs{
  width:100%; margin: 8px 0 18px;
  border: 1px solid var(--cpbx-border);
  border-radius: var(--cpbx-radius-sm);
  overflow:hidden;
}
.cpb-product-summary .cpb-product-specs tr + tr{ border-top: 1px solid var(--cpbx-border); }
.cpb-product-summary .cpb-product-specs th,
.cpb-product-summary .cpb-product-specs td{
  padding: 10px 14px; font-size: 14px; text-align:left;
}
.cpb-product-summary .cpb-product-specs th{
  width: 42%;
  background:#f8fafc; color: var(--cpbx-muted); font-weight:600;
}
.cpb-product-summary .cpb-product-specs td{ color: var(--cpbx-ink); font-weight: 600; }

/* CTA buttons — gradient primary, modern outline */
.cpb-product-summary .cpb-product-actions{
  display:flex; flex-wrap:wrap; gap:12px; margin: 6px 0 18px;
}
.cpb-product-summary .cpb-product-actions .cpb-btn{
  flex: 1 1 auto; min-width: 200px;
  justify-content:center;
  font-weight: 700;
  letter-spacing: 0.01em;
  padding: 14px 22px;
  border-radius: 12px;
  transition: transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.cpb-product-summary .cpb-product-actions .cpb-btn-primary{
  background: linear-gradient(135deg, var(--cpbx-primary) 0%, #1a2c75 100%);
  border: 0; color:#fff;
  box-shadow: 0 10px 22px -10px rgba(37,57,147,.55);
}
.cpb-product-summary .cpb-product-actions .cpb-btn-primary:hover{
  transform: translateY(-2px);
  box-shadow: 0 14px 28px -12px rgba(37,57,147,.6);
}
.cpb-product-summary .cpb-product-actions .cpb-btn-outline{
  border: 2px solid var(--cpbx-border-strong);
  color: var(--cpbx-ink);
  background:#fff;
}
.cpb-product-summary .cpb-product-actions .cpb-btn-outline:hover{
  border-color: var(--cpbx-primary);
  color: var(--cpbx-primary);
  background:#fff;
}

/* Meta + social */
.cpb-product-summary .product_meta{
  border-top:1px dashed var(--cpbx-border);
  padding-top:14px; margin-top:8px;
  color: var(--cpbx-muted); font-size:13px;
}
.cpb-product-summary .product_meta a{ color: var(--cpbx-primary); text-decoration:none; }
.cpb-product-summary .product_meta a:hover{ text-decoration:underline; }
.cpb-product-social{
  margin-top: 14px; display:flex; flex-wrap:wrap; gap:8px;
}
.cpb-product-social a{
  width: 38px; height: 38px;
  display:inline-flex; align-items:center; justify-content:center;
  border-radius: 999px;
  background:#fff;
  border: 1px solid var(--cpbx-border);
  color: var(--cpbx-muted);
  font-weight:700; font-size: 13px;
  text-decoration:none;
  transition: all .18s ease;
}
.cpb-product-social a:hover{
  background: var(--cpbx-primary); color:#fff; border-color: var(--cpbx-primary);
  transform: translateY(-2px);
  box-shadow: 0 8px 16px -8px rgba(37,57,147,.45);
}

/* ---------- Below-gallery blocks (trust / eta / features / quick help) ---------- */
.cpb-trust-bar{
  background:#fff;
  border:1px solid var(--cpbx-border);
  box-shadow: var(--cpbx-shadow-sm);
  border-radius: var(--cpbx-radius);
  padding: 14px;
}
.cpb-trust-bar li{
  display:flex; flex-direction:column; align-items:flex-start; gap:6px;
  font-weight:600; font-size: 13px; color: var(--cpbx-ink);
}
.cpb-trust-ico{
  width: 36px; height: 36px;
  border-radius: 10px;
  background: linear-gradient(135deg, rgba(37,57,147,.10), rgba(37,57,147,.02));
  color: var(--cpbx-primary);
  font-size: 18px;
}
.cpb-product-eta{
  background: linear-gradient(135deg, #ecfdf3 0%, #f6fffa 100%);
  border:1px solid #cdebd7;
  border-left: 4px solid var(--cpbx-success);
  border-radius: var(--cpbx-radius-sm);
  color:#15532d; padding: 12px 14px; font-size: 14px;
}
.cpb-eta-dot{ background: var(--cpbx-success); box-shadow: 0 0 0 4px rgba(22,163,74,.18); }

.cpb-product-features{
  background:#fff; border:1px solid var(--cpbx-border);
  border-radius: var(--cpbx-radius); padding: 18px 22px;
  box-shadow: var(--cpbx-shadow-sm);
}
.cpb-product-features li{
  padding: 10px 0 10px 32px;
  border-color:#eef1f7;
  font-size: 14.5px; color: var(--cpbx-ink);
}
.cpb-product-features li::before{
  background: var(--cpbx-success);
  width: 20px; height: 20px; font-size: 12px;
  top: 10px;
}

.cpb-quick-help{
  background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
  border:1px solid var(--cpbx-border);
  border-radius: var(--cpbx-radius);
  padding: 14px 16px;
}
.cpb-quick-help-label{ color: var(--cpbx-ink); }
.cpb-quick-help-btn{
  background:#fff; border:1px solid var(--cpbx-border);
  padding: 9px 14px; border-radius: 10px;
  font-weight: 600; color: var(--cpbx-ink);
  transition: all .15s ease;
}
.cpb-quick-help-btn:hover{ transform: translateY(-1px); box-shadow: 0 6px 12px -6px rgba(15,23,42,.18); }

/* ---------- Tabs as pill nav ---------- */
.cpb-product-tabs{
  background:#fff; border:1px solid var(--cpbx-border);
  border-radius: var(--cpbx-radius); padding: 8px;
  box-shadow: var(--cpbx-shadow-sm);
  margin-top: 36px;
}
.cpb-tabs-nav{
  display:flex; gap:6px; padding: 6px;
  background:#f1f5fa; border-radius: 10px;
  border:0;
}
.cpb-tab-btn{
  border:0 !important; border-radius: 8px !important;
  padding: 10px 18px !important;
  background: transparent !important;
  color: var(--cpbx-muted) !important;
  font-weight: 600; font-size: 14px;
  transition: all .18s ease;
}
.cpb-tab-btn:hover{ color: var(--cpbx-ink) !important; }
.cpb-tab-btn--active{
  background:#fff !important;
  color: var(--cpbx-primary) !important;
  box-shadow: 0 1px 3px rgba(15,23,42,.08), 0 0 0 1px var(--cpbx-border) inset;
}
.cpb-tab-panel{ padding: 18px 20px; color:#2a3447; line-height: 1.7; }

/* ---------- Related products as card grid ---------- */
.cpb-related-products{ margin-top: 56px; }
.cpb-related-products > h2{
  font-size: clamp(1.3rem, 1.6vw, 1.6rem);
  margin-bottom: 18px; letter-spacing: -.01em;
  display:flex; align-items:center; gap:12px;
}
.cpb-related-products > h2::after{
  content:""; flex:1; height:1px; background:linear-gradient(90deg, var(--cpbx-border), transparent);
}
.cpb-related-products ul.products{
  list-style:none; padding:0; margin:0;
  display:grid; gap:18px;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
}
.cpb-related-products ul.products li.product{
  background:#fff; border:1px solid var(--cpbx-border);
  border-radius: var(--cpbx-radius); overflow:hidden;
  text-align:center; padding-bottom: 14px;
  transition: transform .18s ease, box-shadow .2s ease;
  box-shadow: var(--cpbx-shadow-sm);
}
.cpb-related-products ul.products li.product:hover{
  transform: translateY(-4px);
  box-shadow: var(--cpbx-shadow-lg);
}
.cpb-related-products ul.products li.product img{
  width: 100%; height: auto; display:block;
  background: linear-gradient(180deg,#fafbfd,#f1f5fa);
}
.cpb-related-products ul.products li.product h2{
  font-size: 1rem; padding: 12px 14px 0; margin:0;
  color: var(--cpbx-ink);
}
.cpb-related-products ul.products li.product a{ text-decoration:none; color: inherit; }

/* ---------- Sticky mobile CTA bar ---------- */
.cpbx-sticky-cta{
  position: fixed; left:0; right:0; bottom:0; z-index:60;
  background:#fff; border-top:1px solid var(--cpbx-border);
  box-shadow: 0 -8px 24px -10px rgba(15,23,42,.14);
  padding: 10px 14px; display:none;
  gap:10px; align-items:center;
}
.cpbx-sticky-cta .cpbx-sc-title{
  flex:1; min-width:0;
  font-size: 13.5px; font-weight: 700; color: var(--cpbx-ink);
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.cpbx-sticky-cta .cpbx-sc-btn{
  flex: 0 0 auto;
  background: linear-gradient(135deg, var(--cpbx-primary), #1a2c75);
  color:#fff; padding: 11px 16px; border-radius: 10px;
  font-weight:700; text-decoration:none; font-size: 14px;
  box-shadow: 0 8px 16px -8px rgba(37,57,147,.5);
}
.cpbx-sticky-cta .cpbx-sc-btn--alt{
  background:#fff; color: var(--cpbx-primary);
  border:2px solid var(--cpbx-primary);
  box-shadow:none;
}
@media (max-width: 768px){
  .cpbx-sticky-cta{ display:flex; }
  body.cpbx-single-product{ padding-bottom: 78px; }
}

/* ---------- Tighten mobile spacing ---------- */
@media (max-width: 768px){
  .cpb-product-summary{ padding: 20px 18px; border-radius: 12px; }
  .cpb-product-main-col .cpb-product-gallery{ padding: 12px; border-radius: 12px; }
  .cpb-product-summary .cpb-product-actions .cpb-btn{ min-width: 100%; }
  .cpbx-product-hero{ padding: 16px 0 14px; margin-bottom: 18px; }
  .cpb-product-tabs{ padding: 6px; }
  .cpb-tabs-nav{ flex-wrap: wrap; }
}
