:root { --cbppm-navy:#171b4f; --cbppm-gold:#d8b569; --cbppm-ink:#11152f; --cbppm-muted:#66708a; --cbppm-line:#e6e9f2; --cbppm-soft:#f7f8fc; --cbppm-card:#ffffff; --cbppm-stripe:linear-gradient(90deg,#000 0 20%,#ff0000 20% 40%,#188450 40% 60%,#ffcc00 60% 80%,#1800ad 80% 100%); }
html.cbppm-lock, html.cbppm-lock body { overflow: hidden !important; }
.cbppm { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color: var(--cbppm-ink); }
.cbppm * { box-sizing: border-box; }
.cbppm-overlay { position: fixed; inset: 0; z-index: 999999; display: none; align-items: center; justify-content: center; padding: 34px; background: rgba(12,15,33,.40); opacity: 0; }
.cbppm-overlay.cbppm-open { display: flex; animation: cbppmOverlayIn .20s ease both; }
.cbppm-modal { width: min(1220px, 100%); max-height: calc(100dvh - 68px); min-height: 0; overflow: hidden; display: flex; flex-direction: column; background: #fff; color: var(--cbppm-ink); border-radius: 30px; border: 0 !important; box-shadow: 0 24px 58px rgba(0,0,0,.22); opacity: 0; transform-origin: top center; }
.cbppm-open .cbppm-modal { animation: cbppmModalReveal .30s cubic-bezier(.16,1,.3,1) both; }
.cbppm-stripe { height: 32px; position: relative; overflow: hidden; background: #fff; border: 0 !important; margin: 0 !important; padding: 0 !important; flex: 0 0 auto; line-height: 0; }
.cbppm-stripe-track { position: absolute; inset: 0; background: var(--cbppm-stripe); transform-origin: left; transform: scaleX(0); }
.cbppm-open .cbppm-stripe-track { animation: cbppmStripeFill .95s cubic-bezier(.16,1,.3,1) .32s forwards; }
.cbppm-head { position: relative; padding: 30px 32px 24px; border-bottom: 1px solid var(--cbppm-line); opacity: 0; flex: 0 0 auto; }
.cbppm-open .cbppm-head { animation: cbppmContentIn .28s ease .24s both; }
.cbppm-head-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; margin-bottom: 18px; }
.cbppm-eyebrow { color: var(--cbppm-gold); text-transform: uppercase; letter-spacing: .16em; font-weight: 950; font-size: 12px; margin-bottom: 10px; }
.cbppm h2, .cbppm h3, .cbppm h4 { font-family: inherit; }
.cbppm h2 { margin: 0; color: var(--cbppm-navy); font-size: clamp(34px,4vw,56px); line-height: .98; letter-spacing: -.055em; max-width: 930px; }
.cbppm-head-subtitle { margin: 14px 0 0; color: var(--cbppm-muted); font-size: 18px; line-height: 1.5; font-weight: 700; max-width: 760px; }
.cbppm-close { width: 54px; height: 54px; flex: 0 0 auto; border: 1px solid var(--cbppm-line) !important; border-radius: 18px; color: var(--cbppm-navy) !important; background: #fff !important; font-size: 28px; line-height: 1; cursor: pointer; box-shadow: 0 8px 20px rgba(17,22,47,.045); }
.cbppm-search { width: 100%; border: 1px solid #cfd4df; background: var(--cbppm-soft); border-radius: 17px; padding: 16px 18px; color: var(--cbppm-ink); font: inherit; font-weight: 650; outline: none; }
.cbppm-search:focus { border-color: var(--cbppm-navy); box-shadow: 0 0 0 3px rgba(23,27,79,.10); }
.cbppm-content { flex: 1 1 auto; min-height: 0; overflow-y: auto; overflow-x: hidden; padding: 26px 30px 64px; background: #fff; opacity: 0; scrollbar-width: thin; scrollbar-color: #c7ccdc transparent; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
.cbppm-content::-webkit-scrollbar { width: 10px; }
.cbppm-content::-webkit-scrollbar-thumb { background: #c7ccdc; border-radius: 999px; }
.cbppm-open .cbppm-content { animation: cbppmContentIn .30s ease .30s both; }
.cbppm-mini-stripe { position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; height: 14px !important; display: block !important; overflow: hidden !important; border-radius: 26px 26px 0 0 !important; pointer-events: none !important; border: none !important; background: var(--cbppm-stripe) !important; z-index: 2 !important; transform-origin: left center !important; transform: scaleX(0); will-change: transform; }
.cbppm-mini-stripe i { display: none !important; }
#cbppm-root .cbppm-menu-card::before, #cbppm-root .cbppm-category-route::before { content: "" !important; position: absolute !important; top: 0 !important; left: 0 !important; right: 0 !important; height: 14px !important; background: var(--cbppm-stripe) !important; border-radius: 26px 26px 0 0 !important; z-index: 1 !important; pointer-events: none !important; transform-origin: left center !important; transform: scaleX(0); will-change: transform; }
.cbppm-overlay.cbppm-open .cbppm-category-card .cbppm-mini-stripe, .cbppm-overlay.cbppm-open .cbppm-menu-card::before, .cbppm-overlay.cbppm-open .cbppm-category-route::before { animation: cbppmCardStripeFill .78s cubic-bezier(.16,1,.3,1) .54s forwards; }
.cbppm-overlay.cbppm-open .cbppm-category-card:nth-child(2) .cbppm-mini-stripe, .cbppm-overlay.cbppm-open .cbppm-menu-card:nth-child(2)::before, .cbppm-overlay.cbppm-open .cbppm-category-route:nth-child(2)::before { animation-delay: .60s; }
.cbppm-overlay.cbppm-open .cbppm-category-card:nth-child(3) .cbppm-mini-stripe, .cbppm-overlay.cbppm-open .cbppm-menu-card:nth-child(3)::before, .cbppm-overlay.cbppm-open .cbppm-category-route:nth-child(3)::before { animation-delay: .66s; }
.cbppm-overlay.cbppm-open .cbppm-category-card:nth-child(4) .cbppm-mini-stripe, .cbppm-overlay.cbppm-open .cbppm-menu-card:nth-child(4)::before, .cbppm-overlay.cbppm-open .cbppm-category-route:nth-child(4)::before { animation-delay: .72s; }
.cbppm-overlay.cbppm-open .cbppm-category-card:nth-child(5) .cbppm-mini-stripe, .cbppm-overlay.cbppm-open .cbppm-menu-card:nth-child(5)::before, .cbppm-overlay.cbppm-open .cbppm-category-route:nth-child(5)::before { animation-delay: .78s; }
.cbppm-overlay.cbppm-open .cbppm-category-card:nth-child(6) .cbppm-mini-stripe, .cbppm-overlay.cbppm-open .cbppm-menu-card:nth-child(6)::before, .cbppm-overlay.cbppm-open .cbppm-category-route:nth-child(6)::before { animation-delay: .84s; }
.cbppm-overlay.cbppm-open .cbppm-category-card:nth-child(n+7) .cbppm-mini-stripe, .cbppm-overlay.cbppm-open .cbppm-menu-card:nth-child(n+7)::before, .cbppm-overlay.cbppm-open .cbppm-category-route:nth-child(n+7)::before { animation-delay: .90s; }

/* All Products: balanced cards, no double-column lists inside cards. */
.cbppm-category-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; align-items: start; }
.cbppm-category-card { position: relative; display: flex; flex-direction: column; min-width: 0; padding: 34px 24px 24px; overflow: hidden; background: var(--cbppm-card); border: 1px solid var(--cbppm-line); border-radius: 26px; box-shadow: 0 14px 34px rgba(17,22,47,.075); }
.cbppm-category-title { display:block; color:var(--cbppm-navy) !important; text-decoration:none !important; font-weight:950; font-size:23px; line-height:1.12; letter-spacing:-.035em; margin-bottom:16px; white-space:normal !important; overflow-wrap:anywhere; }
.cbppm-category-links { display:grid; grid-template-columns:1fr; }
.cbppm-category-link { display:block; color:var(--cbppm-muted) !important; text-decoration:none !important; font-weight:800; font-size:17px; padding:14px 0; line-height:1.42; border-top:1px solid rgba(231,233,241,.95); white-space:normal !important; overflow-wrap:anywhere; overflow:visible !important; text-overflow:clip !important; }
.cbppm-category-link:first-child { border-top:none; }
.cbppm-category-link:hover, .cbppm-category-title:hover { color:var(--cbppm-navy) !important; }
.cbppm-depth-1 { padding-left:14px; font-size:15px; }
.cbppm-depth-2 { padding-left:28px; font-size:14px; }
.cbppm-empty { display:none; color:var(--cbppm-muted); border:1px solid var(--cbppm-line); border-radius:18px; padding:18px; background:var(--cbppm-soft); font-weight:750; }
.cbppm-empty.cbppm-show { display:block; }
.cbppm-filter-hidden { display:none !important; }
.cbppm-category-link.cbppm-first-visible { border-top:none !important; }

/* Guided Shopping: nested customer menu flow with production category endpoints. */
.cbppm-guided-modal { width:min(1220px, 100%); }
.cbppm-guided-menu-content { padding:0; }
.cbppm-guided-stage { padding:28px 30px 72px; background:#fff; }
.cbppm-guide-topline { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:22px; }
.cbppm-guide-selected { color:var(--cbppm-muted); font-size:14px; font-weight:850; line-height:1.4; }
.cbppm-guide-selected strong { color:var(--cbppm-navy); }
.cbppm-menu-title { margin:0; color:var(--cbppm-navy); font-size:32px; line-height:1.03; letter-spacing:-.045em; }
.cbppm-guide-selected { margin:10px 0 0; display:flex; flex-wrap:wrap; align-items:center; gap:6px; }
.cbppm-guide-selected span { color:var(--cbppm-muted); }
.cbppm-guide-selected b { color:var(--cbppm-gold); font-weight:950; }
.cbppm-guide-actions { display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-start; }
.cbppm-small-action { appearance:none; border:1px solid var(--cbppm-line) !important; background:#fff !important; color:var(--cbppm-navy) !important; border-radius:999px; padding:11px 16px; font:inherit; font-weight:950; cursor:pointer; box-shadow:0 8px 22px rgba(17,22,47,.04); }
.cbppm-card-grid { display:grid; gap:16px; }
.cbppm-card-grid.cbppm-project-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
.cbppm-card-grid.cbppm-work-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.cbppm-card-grid.cbppm-route-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
#cbppm-root .cbppm-menu-card, #cbppm-root .cbppm-category-route { position:relative; appearance:none; text-align:left; text-decoration:none !important; border:1px solid var(--cbppm-line) !important; border-radius:26px !important; background:#fff !important; color:var(--cbppm-navy) !important; padding:34px 22px 24px !important; min-height:118px; font:inherit; cursor:pointer; overflow:hidden; box-shadow:0 14px 34px rgba(17,22,47,.075) !important; display:block; min-width:0; white-space:normal !important; }
#cbppm-root .cbppm-menu-card, #cbppm-root .cbppm-category-route { display:grid; grid-template-columns:1fr auto; align-items:center; gap:14px; }
#cbppm-root .cbppm-category-route { min-height:112px; }
#cbppm-root .cbppm-menu-card:hover, #cbppm-root .cbppm-menu-card:focus-visible, #cbppm-root .cbppm-category-route:hover, #cbppm-root .cbppm-category-route:focus-visible { border-color:rgba(23,27,79,.22) !important; background:#fff !important; outline:none; box-shadow:0 18px 38px rgba(17,22,47,.11) !important; }
#cbppm-root .cbppm-menu-card strong, #cbppm-root .cbppm-category-route strong { display:block; font-size:20px; line-height:1.18; letter-spacing:-.035em; margin-bottom:9px; color:var(--cbppm-navy) !important; white-space:normal !important; overflow-wrap:anywhere; overflow:visible !important; text-overflow:clip !important; }
#cbppm-root .cbppm-menu-card span, #cbppm-root .cbppm-category-route small { display:block; color:var(--cbppm-muted) !important; line-height:1.45; font-weight:650; font-size:14px; white-space:normal !important; overflow-wrap:anywhere; overflow:visible !important; text-overflow:clip !important; }
#cbppm-root .cbppm-menu-card > span, #cbppm-root .cbppm-menu-card i, #cbppm-root .cbppm-category-route > span, #cbppm-root .cbppm-category-route i { position: relative; z-index: 3; }
.cbppm-menu-card i, .cbppm-category-route i { font-style:normal; color:var(--cbppm-gold); font-size:24px; align-self:center; position:relative; z-index:3; }
a[href="#coatblend-all-products"], a[href="#coatblend-guided-shopping"] { cursor:pointer; }

@media (max-width:1180px) { .cbppm-category-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .cbppm-card-grid.cbppm-project-grid, .cbppm-card-grid.cbppm-work-grid, .cbppm-card-grid.cbppm-route-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:767px) { .cbppm-overlay { padding:0; align-items:stretch; justify-content:stretch; background:#fff; height:100vh; height:100dvh; overflow:hidden; } .cbppm-modal, .cbppm-guided-modal { width:100%; height:100vh; height:100dvh; max-height:none; min-height:0; border-radius:0; border:none !important; box-shadow:none; display:flex; flex-direction:column; overflow:hidden; } .cbppm-stripe { height:30px; position:sticky; top:0; z-index:7; box-shadow:0 8px 18px rgba(17,22,47,.12); } .cbppm-head { padding:28px 18px 18px; } .cbppm-head-row { gap:14px; } .cbppm h2 { font-size:36px; } .cbppm-close { width:50px; height:50px; border-radius:16px; } .cbppm-content { flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; overflow-x:hidden; padding:18px 18px max(48px, calc(34px + env(safe-area-inset-bottom, 0px))); -webkit-overflow-scrolling:touch; overscroll-behavior:contain; } .cbppm-guided-menu-content { padding:0; } .cbppm-guided-stage { padding:18px 18px max(48px, calc(34px + env(safe-area-inset-bottom, 0px))); } .cbppm-category-grid { grid-template-columns:1fr; gap:16px; } .cbppm-category-card { min-height:auto; border-radius:26px; box-shadow:0 11px 28px rgba(17,22,47,.065); padding:34px 22px 24px; } .cbppm-card-grid.cbppm-project-grid, .cbppm-card-grid.cbppm-work-grid, .cbppm-card-grid.cbppm-route-grid { grid-template-columns:1fr; gap:16px; } .cbppm-guide-topline { display:block; margin-bottom:18px; } .cbppm-guide-actions { margin-top:12px; } .cbppm-menu-title { font-size:30px; } #cbppm-root .cbppm-menu-card, #cbppm-root .cbppm-category-route { min-height:auto; border-radius:26px !important; box-shadow:0 10px 24px rgba(17,22,47,.06) !important; } }
@media (max-width:420px) { .cbppm h2 { font-size:34px; } .cbppm-head { padding-left:16px; padding-right:16px; } .cbppm-content { padding-left:16px; padding-right:16px; } .cbppm-guided-stage { padding-left:16px; padding-right:16px; } }
@media (prefers-reduced-motion: reduce) { .cbppm *, .cbppm *::before, .cbppm *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; } }
@keyframes cbppmOverlayIn { from { opacity:0; } to { opacity:1; } }
@keyframes cbppmModalReveal { from { opacity:0; transform:translateY(10px) scale(.992); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes cbppmStripeFill { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes cbppmCardStripeFill { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@keyframes cbppmContentIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }
