.pb-section { position: relative; }
.pb-inner { width: min(1100px, calc(100% - 2rem)); margin: 0 auto; }
.pb-pad-sm { padding: 1.5rem 0; }
.pb-pad-md { padding: 3rem 0; }
.pb-pad-lg { padding: 4.5rem 0; }
.pb-eyebrow {
  margin: 0 0 .4rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: .78rem;
  font-weight: 700;
  opacity: .8;
}
.pb-title { margin: 0 0 .75rem; font-size: clamp(1.8rem, 4vw, 3.4rem); line-height: 1.05; font-weight: 800; }
.pb-body { margin: 0 0 1rem; max-width: 46rem; font-size: 1.05rem; line-height: 1.6; opacity: .92; }
.pb-section[style*="text-align: center"] .pb-body,
.pb-section[style*="text-align:center"] .pb-body { margin-inline: auto; }
.pb-btn {
  display: inline-block;
  margin-top: .4rem;
  background: #fff;
  color: #0f1c2e;
  border-radius: 999px;
  padding: .7rem 1.15rem;
  font-weight: 700;
  text-decoration: none;
}
.pb-photo { width: min(100%, 920px); border-radius: 16px; margin-bottom: 1rem; }
.pb-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: .5rem; }
.pb-cols h3 { margin: 0 0 .4rem; }
.pb-html img { max-width: 100%; height: auto; }
@media (max-width: 760px) {
  .pb-cols { grid-template-columns: 1fr; }
  .pb-pad-lg { padding: 2.75rem 0; }
}

.pbx { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 1rem; align-items: start; }
.pbx-canvas { background: #d7dee8; border-radius: 16px; overflow: hidden; min-height: 420px; }
.pbx-chrome {
  display: flex; align-items: center; gap: .75rem;
  padding: .7rem 1rem; background: #121826; color: #fff;
}
.pbx-chrome img { height: 36px; width: auto; background: #fff; border-radius: 8px; padding: .15rem .35rem; }
.pbx-nav { display: flex; gap: .7rem; font-size: .72rem; letter-spacing: .06em; font-weight: 700; opacity: .9; flex: 1; flex-wrap: wrap; }
.pbx-hit {
  position: relative;
  outline: 1px dashed transparent;
  border-radius: 8px;
  padding: .15rem .25rem;
}
.pbx-hit:hover { outline-color: #7eb0ff; }
.pbx-pencil {
  position: absolute; top: -10px; right: -8px;
  width: 26px; height: 26px; border: 0; border-radius: 999px;
  background: #2f6fed; color: #fff; display: none;
  align-items: center; justify-content: center; cursor: pointer; z-index: 3;
}
.pbx-hit:hover > .pbx-pencil,
.pbx-block:hover > .pbx-tools .pbx-pencil { display: inline-flex; }
.pbx-stage { position: relative; }
.pbx-block { position: relative; }
.pbx-block:hover { box-shadow: inset 0 0 0 2px #2f6fed; }
.pbx-tools {
  position: absolute; top: .45rem; right: .45rem; z-index: 4;
  display: none; gap: .3rem;
}
.pbx-block:hover > .pbx-tools { display: flex; }
.pbx-tools button, .pbx-add button {
  border: 0; border-radius: 999px; width: 30px; height: 30px;
  background: #0f1c2e; color: #fff; cursor: pointer;
}
.pbx-add { display: flex; justify-content: center; padding: .35rem 0; background: rgba(15,28,46,.04); }
.pbx-add button { width: auto; padding: 0 .8rem; background: #c8102e; font-weight: 700; }
.pbx-inspector {
  background: #fff; border: 1px solid #e5e9ef; border-radius: 14px; padding: 1rem;
  position: sticky; top: .75rem; max-height: calc(100vh - 2rem); overflow: auto;
}
.pbx-inspector h3 { font-size: 1rem; margin: 0 0 .75rem; }
.pbx-inspector label { font-size: .78rem; font-weight: 700; margin-bottom: .2rem; }
.pbx-library { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; }
.pbx-library button { text-align: left; }
@media (max-width: 991px) {
  .pbx { grid-template-columns: 1fr; }
  .pbx-inspector { position: static; max-height: none; }
  .pbx-nav { display: none; }
}
