.bhub {
  --bhub-ink: #171717;
  --bhub-muted: #687078;
  --bhub-line: #dde1e3;
  --bhub-soft: #f4f6f6;
  --bhub-accent: #ffd600;
  --bhub-warn: #9a6510;
  color: var(--bhub-ink);
  font-family: inherit;
  margin: 0 auto;
  max-width: 1440px;
}

/*
 * The BLANCO HOME theme intentionally limits ordinary text pages to 900px.
 * The builder needs the complete shop container because its product grid has
 * a 310px summary column. The body class is added only on pages containing the
 * builder shortcode, so ordinary pages and the theme remain untouched.
 */
body.bhub-page .bh-content {
  max-width: none;
  width: 100%;
}

body.bhub-page .bh-content > article > .entry-title {
  display: none;
}

body.bhub-page .bh-main {
  padding-top: 24px;
}

.bhub *, .bhub *::before, .bhub *::after { box-sizing: border-box; }
.bhub button, .bhub input, .bhub select { font: inherit; }

.bhub__hero {
  background: var(--bhub-ink);
  color: #fff;
  overflow: hidden;
  padding: clamp(36px, 6vw, 76px) clamp(24px, 6vw, 88px);
  position: relative;
}

.bhub__hero::after {
  background: var(--bhub-accent);
  border-radius: 50%;
  content: "";
  height: 220px;
  opacity: .95;
  position: absolute;
  right: -60px;
  top: -80px;
  width: 220px;
}

.bhub__hero h1 {
  color: inherit;
  font-size: clamp(34px, 5vw, 68px);
  letter-spacing: -.045em;
  line-height: .98;
  margin: 14px 0 20px;
  max-width: 760px;
}

.bhub__hero > p:last-child { color: #cfd3d5; font-size: 18px; line-height: 1.55; margin: 0; max-width: 680px; }
.bhub__eyebrow, .bhub__step-kicker { font-size: 12px; font-weight: 800; letter-spacing: .15em; margin: 0; text-transform: uppercase; }
.bhub__eyebrow { color: var(--bhub-accent); }

.bhub__progress {
  background: #fff;
  border: 1px solid var(--bhub-line);
  border-top: 0;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
}

.bhub__progress button {
  align-items: center;
  background: #fff;
  border: 0;
  border-right: 1px solid var(--bhub-line);
  color: var(--bhub-muted);
  cursor: pointer;
  display: flex;
  font-size: 13px;
  font-weight: 700;
  gap: 9px;
  justify-content: center;
  min-height: 66px;
  padding: 10px;
}

.bhub__progress button:last-child { border-right: 0; }
.bhub__progress button:disabled { cursor: default; opacity: .5; }
.bhub__progress button.is-active { box-shadow: inset 0 -4px var(--bhub-accent); color: var(--bhub-ink); }
.bhub__progress button.is-complete { color: var(--bhub-ink); }
.bhub__progress span { align-items: center; border: 1px solid currentColor; border-radius: 50%; display: inline-flex; height: 26px; justify-content: center; width: 26px; }
.bhub__progress .is-complete span { background: var(--bhub-ink); color: #fff; }

.bhub__layout { align-items: start; display: grid; gap: 28px; grid-template-columns: minmax(0, 1fr) 310px; padding: clamp(28px, 4vw, 56px) 0; }
.bhub__main { min-width: 0; }
.bhub__step { display: none; }
.bhub__step.is-active { animation: bhub-fade .22s ease; display: block; }
@keyframes bhub-fade { from { opacity: .25; transform: translateY(5px); } }

.bhub__step-head { margin-bottom: 28px; scroll-margin-top: 112px; }
.admin-bar .bhub__step-head { scroll-margin-top: 144px; }
.bhub__step-head h2 { color: var(--bhub-ink); font-size: clamp(28px, 3.5vw, 44px); letter-spacing: -.035em; line-height: 1.08; margin: 8px 0 12px; }
.bhub__step-head > p:last-child { color: var(--bhub-muted); font-size: 16px; line-height: 1.55; margin: 0; max-width: 750px; }
.bhub__step-kicker { color: var(--bhub-muted); }

.bhub__requirements, .bhub__toolbar, .bhub__aside, .bhub__notice { border: 1px solid var(--bhub-line); }
.bhub__requirements { background: #fff; padding: clamp(22px, 4vw, 42px); }
.bhub__requirements fieldset { border: 0; margin: 0 0 30px; padding: 0; }
.bhub__requirements legend { font-size: 16px; font-weight: 750; margin-bottom: 14px; }
.bhub__requirements legend span { color: #b42318; }
.bhub__choices { display: grid; gap: 10px; }
.bhub__choices--width { grid-template-columns: repeat(auto-fit, minmax(112px, 1fr)); }
.bhub__choices label { cursor: pointer; }
.bhub__choices input { opacity: 0; position: absolute; }
.bhub__choices span { align-items: center; border: 1px solid var(--bhub-line); display: flex; font-weight: 750; justify-content: center; min-height: 54px; padding: 10px; }
.bhub__choices input:checked + span { background: var(--bhub-ink); border-color: var(--bhub-ink); color: #fff; box-shadow: inset 0 -4px var(--bhub-accent); }
.bhub__choices input:focus-visible + span { outline: 3px solid rgba(0, 110, 255, .3); outline-offset: 2px; }

.bhub__form-grid { display: grid; gap: 18px; grid-template-columns: repeat(3, 1fr); }
.bhub__form-grid label { color: var(--bhub-ink); font-size: 14px; font-weight: 700; }
.bhub__form-grid select, .bhub__search input { appearance: none; background: #fff; border: 1px solid #b9c0c3; border-radius: 0; color: var(--bhub-ink); min-height: 50px; padding: 0 14px; width: 100%; }
.bhub__form-grid select { background-image: linear-gradient(45deg, transparent 50%, #333 50%), linear-gradient(135deg, #333 50%, transparent 50%); background-position: calc(100% - 18px) 21px, calc(100% - 13px) 21px; background-repeat: no-repeat; background-size: 5px 5px; margin-top: 8px; }
.bhub__requirement-facets { border-top: 1px solid var(--bhub-line); margin-top: 24px; padding-top: 8px; }
.bhub__requirement-facets > summary { align-items: baseline; cursor: pointer; display: flex; gap: 10px; justify-content: space-between; list-style: none; padding: 12px 0; }
.bhub__requirement-facets > summary::-webkit-details-marker { display: none; }
.bhub__requirement-facets > summary::after { content: '+'; font-size: 22px; line-height: 1; }
.bhub__requirement-facets[open] > summary::after { content: '−'; }
.bhub__requirement-facets > summary span { color: var(--bhub-muted); font-size: 12px; font-weight: 500; margin-left: auto; }
.bhub__form-grid--catalog { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); padding-top: 8px; }

.bhub__toolbar { align-items: center; background: var(--bhub-soft); display: flex; gap: 18px; justify-content: space-between; margin-bottom: 18px; padding: 14px; }
.bhub__search { max-width: 390px; width: 100%; }
.bhub__toolbar > span { color: var(--bhub-muted); font-size: 13px; white-space: nowrap; }

.bhub__products { display: grid; gap: 14px; grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 180px; }
.bhub__product { background: #fff; border: 1px solid var(--bhub-line); display: grid; grid-template-columns: 150px minmax(0, 1fr); min-height: 218px; position: relative; transition: border-color .16s, box-shadow .16s, transform .16s; }
.bhub__product:hover { border-color: #aab0b3; transform: translateY(-2px); }
.bhub__product.is-selected { border: 2px solid var(--bhub-ink); box-shadow: inset 0 -5px var(--bhub-accent); }
.bhub__product-image { align-items: center; background: var(--bhub-soft); display: flex; justify-content: center; min-width: 0; overflow: hidden; padding: 12px; }
.bhub__product-image img { height: 100%; max-height: 190px; object-fit: contain; width: 100%; }
.bhub__product-body { display: flex; flex-direction: column; min-width: 0; padding: 18px; }
.bhub__sku { color: var(--bhub-muted); font-size: 11px; letter-spacing: .05em; margin: 0 0 7px; text-transform: uppercase; }
.bhub__product h3 { font-size: 16px; line-height: 1.25; margin: 0 0 8px; }
.bhub__product h3 a { color: inherit; text-decoration: none; }
.bhub__specs { color: var(--bhub-muted); font-size: 12px; line-height: 1.4; margin: 0 0 8px; }
.bhub__warnings { color: var(--bhub-warn); font-size: 11px; line-height: 1.35; margin: 0 0 10px; padding-left: 16px; }
.bhub__product-foot { align-items: end; display: flex; gap: 12px; justify-content: space-between; margin-top: auto; }
.bhub__product-foot strong { display: block; font-size: 15px; }
.bhub__product-foot small { color: var(--bhub-muted); display: block; font-size: 11px; margin-top: 3px; }
.bhub .bhub__select { align-items: center; background: #fff; border: 1px solid var(--bhub-ink); color: var(--bhub-ink); cursor: pointer; display: inline-flex; flex-shrink: 0; font-size: 12px; font-weight: 800; justify-content: center; line-height: 1.2; min-height: 38px; padding: 7px 13px; text-decoration: none; white-space: nowrap; }
.bhub__select:hover, .bhub__select.is-selected { background: var(--bhub-ink); color: #fff; }
.bhub__select.is-disabled { background: var(--bhub-soft); border-color: var(--bhub-line); color: var(--bhub-muted); cursor: default; }
.bhub__product-actions { align-items: stretch; display: grid; gap: 7px; min-width: 132px; }
.bhub__product-actions .bhub__select { cursor: default; min-height: 32px; }
.bhub .bhub__card-next { background: var(--bhub-accent); border: 1px solid var(--bhub-accent); color: var(--bhub-ink); cursor: pointer; font-size: 12px; font-weight: 800; line-height: 1.2; min-height: 40px; padding: 7px 12px; white-space: nowrap; }
.bhub__card-next:hover { background: #ffe13c; }

.bhub__loading, .bhub__empty { align-items: center; background: var(--bhub-soft); color: var(--bhub-muted); display: flex; grid-column: 1 / -1; justify-content: center; min-height: 180px; padding: 30px; text-align: center; }
.bhub__loading span { animation: bhub-spin .8s linear infinite; border: 2px solid #ccc; border-right-color: var(--bhub-ink); border-radius: 50%; height: 22px; margin-right: 10px; width: 22px; }
@keyframes bhub-spin { to { transform: rotate(360deg); } }

.bhub__actions { align-items: center; display: flex; gap: 10px; justify-content: flex-end; margin-top: 26px; }
.bhub__actions--end { justify-content: flex-end; }
.bhub__actions--top {
  background: rgba(255, 255, 255, .97);
  border: 1px solid var(--bhub-line);
  box-shadow: 0 9px 24px rgba(23, 23, 23, .09);
  margin: 0 0 18px;
  padding: 10px;
  position: sticky;
  top: 103px;
  z-index: 18;
}
.admin-bar .bhub__actions--top { top: 135px; }
.bhub__actions--top.is-ready { border-color: #d6bd15; box-shadow: 0 9px 24px rgba(23, 23, 23, .12), inset 0 -3px var(--bhub-accent); }
.bhub__action-status { color: var(--bhub-muted); font-size: 12px; line-height: 1.35; max-width: 280px; }
.bhub__actions--top.is-ready .bhub__action-status { color: var(--bhub-ink); font-weight: 700; }
.bhub__button { border: 1px solid var(--bhub-ink); border-radius: 0; cursor: pointer; font-size: 13px; font-weight: 800; min-height: 48px; padding: 11px 20px; }
.bhub__button:disabled { cursor: not-allowed; opacity: .42; }
.bhub__button--primary { background: var(--bhub-accent); border-color: var(--bhub-accent); color: var(--bhub-ink); }
.bhub__button--primary:hover:not(:disabled) { background: #ffe13c; }
.bhub__button--secondary { background: var(--bhub-ink); color: #fff; }
.bhub__button--ghost { background: #fff; color: var(--bhub-ink); margin-right: auto; }
.bhub__button.is-loading { color: transparent; position: relative; }
.bhub__button.is-loading::after { animation: bhub-spin .8s linear infinite; border: 2px solid rgba(0,0,0,.25); border-right-color: var(--bhub-ink); border-radius: 50%; content: ""; height: 20px; left: calc(50% - 10px); position: absolute; top: calc(50% - 10px); width: 20px; }

.bhub__aside {
  align-self: start;
  background: #fff;
  max-height: calc(100vh - 127px);
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 20px;
  position: sticky;
  scrollbar-width: thin;
  top: 103px;
}
.admin-bar .bhub__aside { max-height: calc(100vh - 159px); top: 135px; }
.bhub__aside-head { align-items: baseline; border-bottom: 1px solid var(--bhub-line); display: flex; justify-content: space-between; padding-bottom: 15px; }
.bhub__aside-head span { font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.bhub__aside-head strong { font-size: 17px; }
.bhub__aside ol { list-style: none; margin: 0; padding: 0; }
.bhub__aside li { border-bottom: 1px solid var(--bhub-line); padding: 13px 0; }
.bhub__aside li span { color: var(--bhub-muted); display: block; font-size: 11px; margin-bottom: 3px; }
.bhub__aside li strong { color: #a4aaad; display: block; font-size: 12px; line-height: 1.35; }
.bhub__aside li.is-filled strong { color: var(--bhub-ink); }
.bhub__aside-action { border-top: 1px solid var(--bhub-line); padding-top: 16px; }
.bhub__aside-action > p { color: var(--bhub-muted); font-size: 12px; line-height: 1.45; margin: 0 0 12px; }
.bhub__button--cart {
  background: var(--bhub-ink);
  box-shadow: inset 0 -4px var(--bhub-accent);
  color: #fff;
  min-height: 54px;
  padding-left: 14px;
  padding-right: 14px;
  transition: background .16s, color .16s, transform .16s;
  width: 100%;
}
.bhub__button--cart:hover:not(:disabled) { background: #2d2d2d; transform: translateY(-1px); }

.bhub__summary { border-top: 1px solid var(--bhub-line); }
.bhub__summary-row { align-items: center; border-bottom: 1px solid var(--bhub-line); display: grid; gap: 18px; grid-template-columns: 92px 1fr; padding: 16px 0; }
.bhub__summary-row img { background: var(--bhub-soft); height: 82px; object-fit: contain; padding: 8px; width: 92px; }
.bhub__summary-row span { color: var(--bhub-muted); font-size: 11px; text-transform: uppercase; }
.bhub__summary-row h3 { font-size: 17px; margin: 3px 0; }
.bhub__summary-row p { font-weight: 800; margin: 0; }
.bhub__summary-total { align-items: center; background: var(--bhub-ink); color: #fff; display: flex; font-size: 16px; justify-content: space-between; padding: 21px 24px; }
.bhub__summary-total strong { color: var(--bhub-accent); font-size: 24px; }
.bhub__notice { background: #fff9d8; color: #594b0c; font-size: 13px; line-height: 1.5; margin-top: 18px; padding: 16px 18px; }
.bhub__cart-message { display: none; font-size: 13px; line-height: 1.4; margin-top: 14px; }
.bhub__cart-message.is-success,
.bhub__cart-message.is-error { border: 1px solid var(--bhub-line); display: flex; gap: 11px; padding: 14px; }
.bhub__cart-message.is-success { background: #fff9d8; border-color: #d6bd15; color: var(--bhub-ink); }
.bhub__cart-message.is-error { background: #fff1f0; border-color: #d92d20; color: #8a1c14; }
.bhub__cart-message-icon { align-items: center; background: var(--bhub-ink); border-radius: 50%; color: var(--bhub-accent); display: inline-flex; flex: 0 0 26px; font-size: 15px; height: 26px; justify-content: center; }
.bhub__cart-message-body { display: grid; gap: 4px; min-width: 0; }
.bhub__cart-message-body strong { font-size: 14px; }
.bhub__cart-message-body > span { color: #6b6250; font-size: 12px; }
.bhub__cart-link { color: var(--bhub-ink); font-weight: 800; margin-top: 4px; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }

@media (max-width: 1080px) {
  .bhub__layout { grid-template-columns: 1fr; }
  .bhub__aside { max-height: none; order: -1; overflow: visible; position: static; }
  .admin-bar .bhub__aside { max-height: none; }
  .bhub__aside ol { display: grid; grid-template-columns: repeat(4, 1fr); }
  .bhub__aside li { border-bottom: 0; border-right: 1px solid var(--bhub-line); padding: 13px; }
  .bhub__aside li:last-child { border-right: 0; }
}

@media (max-width: 760px) {
  .bhub__hero { padding: 34px 22px; }
  .bhub__hero::after { height: 100px; right: -40px; top: -35px; width: 100px; }
  .bhub__progress { display: flex; overflow-x: auto; }
  .bhub__progress button { flex: 0 0 116px; min-height: 58px; }
  .bhub__layout { padding: 26px 0; }
  .bhub__form-grid { grid-template-columns: 1fr; }
  .bhub__choices--width { grid-template-columns: repeat(3, 1fr); }
  .bhub__products { grid-template-columns: 1fr; }
  .bhub__product { grid-template-columns: 118px minmax(0, 1fr); }
  .bhub__aside ol { display: block; }
  .bhub__aside li { border-bottom: 1px solid var(--bhub-line); border-right: 0; }
  .bhub__actions { align-items: stretch; flex-wrap: wrap; }
  .bhub__actions--top { top: 78px; }
  .admin-bar .bhub__actions--top { top: 124px; }
  .bhub__step-head { scroll-margin-top: 88px; }
  .admin-bar .bhub__step-head { scroll-margin-top: 134px; }
  .bhub__action-status { flex: 1 1 100%; max-width: none; order: -1; }
  .bhub__button { flex: 1 1 auto; }
  .bhub__button--ghost { flex: 0 0 auto; }
}

@media (max-width: 470px) {
  .bhub__product { display: block; }
  .bhub__product-image { height: 190px; }
  .bhub__toolbar { align-items: stretch; flex-direction: column; }
  .bhub__actions { display: grid; grid-template-columns: 1fr; }
  .bhub__button--ghost { margin: 0; }
  .bhub__summary-total { align-items: flex-start; flex-direction: column; gap: 5px; }
}

@media (prefers-reduced-motion: reduce) {
  .bhub *, .bhub *::before, .bhub *::after { animation-duration: .01ms !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}

/* Per-step filters use public WooCommerce product attributes. */
.bhub .bhub__filters { background: #f6f5f1; border: 1px solid var(--bhub-line); margin: 0 0 18px; padding: 18px; }
.bhub .bhub__filter-grid { display: grid; gap: 12px; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
.bhub .bhub__filter-grid + .bhub__filter-grid { margin-top: 12px; }
.bhub .bhub__filter-grid label { display: grid; gap: 6px; min-width: 0; font-size: 13px; font-weight: 600; line-height: 1.4; margin: 0; }
.bhub .bhub__filter-grid input, .bhub .bhub__filter-grid select { background: #fff; border: 1px solid #b9c0c3; border-radius: 0; color: var(--bhub-ink); font: inherit; min-height: 44px; min-width: 0; padding: 8px 10px; width: 100%; }
.bhub .bhub__filters details { margin-top: 14px; }
.bhub .bhub__filters summary { cursor: pointer; font-size: 13px; font-weight: 600; padding: 8px 0; }
.bhub .bhub__filter-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }
.bhub .bhub__filter-actions > span { flex: 1 1 180px; font-size: 13px; line-height: 1.4; }
.bhub .bhub__filter-actions .bhub__button { margin: 0; font-size: 13px; line-height: 1.2; font-weight: 700; white-space: nowrap; }
.bhub .bhub__more { background: #fff; color: var(--bhub-ink); display: block; margin: 20px auto 0; }
.bhub [hidden] { display: none !important; }
.bhub .bhub__product-foot { flex-wrap: wrap; }
.bhub .bhub__product-foot > div { min-width: 0; }
.bhub .bhub__product-foot .woocommerce-Price-amount { white-space: nowrap; }
.bhub .bhub__product-foot del { color: var(--bhub-muted); display: block; font-size: 12px; font-weight: 400; }
.bhub .bhub__product-foot ins { display: block; background: transparent; text-decoration: none; }
@media (max-width: 600px) {
  .bhub .bhub__filters { padding: 12px; }
  .bhub .bhub__filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bhub .bhub__filter-actions > span { flex-basis: 100%; }
}
@media (max-width: 380px) {
  .bhub .bhub__filter-grid { grid-template-columns: minmax(0, 1fr); }
}

/* Compact filters: summary and active conditions remain visible when closed. */
.bhub .bhub__filter-panel { background: #f6f5f1; border: 1px solid var(--bhub-line); margin: 0 0 8px; }
.bhub .bhub__filter-panel > summary { align-items: center; cursor: pointer; display: grid; gap: 6px 14px; grid-template-columns: auto minmax(0, 1fr) 18px; list-style: none; min-height: 54px; padding: 12px 16px; }
.bhub .bhub__filter-panel > summary::-webkit-details-marker { display: none; }
.bhub .bhub__filter-panel > summary strong { font-size: 14px; line-height: 1.4; }
.bhub .bhub__filter-panel > summary > span { color: var(--bhub-muted); font-size: 12px; line-height: 1.4; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.bhub .bhub__filter-panel > summary::after { content: '+'; font-size: 22px; line-height: 1; text-align: center; }
.bhub .bhub__filter-panel[open] > summary::after { content: '−'; }
.bhub .bhub__filter-panel .bhub__filters { background: transparent; border: 0; border-top: 1px solid var(--bhub-line); margin: 0; padding: 14px 16px; }
.bhub .bhub__auto-color { align-items: center; display: flex; gap: 8px; font-size: 13px; line-height: 1.4; margin: 0 0 14px; }
.bhub .bhub__auto-color input { appearance: auto; width: 16px; height: 16px; margin: 0; flex: 0 0 16px; }
.bhub .bhub__filter-panel .bhub__filter-actions { justify-content: flex-end; }
.bhub .bhub__filter-feedback, .bhub .bhub__color-feedback { color: var(--bhub-muted); font-size: 12px; line-height: 1.45; margin: 4px 0 10px; }
.bhub .bhub__color-feedback { color: #655b48; }
@media (max-width: 600px) {
 .bhub .bhub__filter-panel > summary { grid-template-columns: minmax(0, 1fr) 18px; }
 .bhub .bhub__filter-panel > summary > span { grid-column: 1; grid-row: 2; }
 .bhub .bhub__filter-panel > summary::after { grid-column: 2; grid-row: 1 / 3; }
}
