/* Customer-facing catering booking builder. Service cards remain outside this staged form. */
.pxab-catering-form--booking-builder{position:relative;--pxab-catering-booking-steps-height:64px;--pxab-catering-builder-sticky-gap:16px;--pxab-catering-builder-admin-bar-offset:0px;--pxab-cat-builder-accent-soft:#fff1f2;--pxab-cat-builder-accent-soft:color-mix(in srgb,var(--pxab-cat-accent) 8%,#fff);--pxab-cat-builder-accent-shadow:rgba(225,29,72,.08);--pxab-cat-builder-accent-shadow:color-mix(in srgb,var(--pxab-cat-accent) 10%,transparent);padding:clamp(20px,3vw,34px);background:linear-gradient(145deg,#fff 0%,#f8fafc 100%)}
.pxab-catering-booking-builder__intro{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin:0 0 18px}
.pxab-catering-booking-builder__intro h2{margin:4px 0 7px;font-size:clamp(1.55rem,3vw,2rem);line-height:1.15}
.pxab-catering-booking-builder__intro p{max-width:760px;margin:0;color:var(--pxab-cat-muted);line-height:1.55}
.pxab-catering-booking-builder__eyebrow{display:block;color:var(--pxab-cat-accent);font-size:.76rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

.pxab-catering-booking-steps{position:static;top:auto;z-index:30;display:grid;grid-template-columns:repeat(var(--pxab-catering-booking-step-count,4),minmax(0,1fr));gap:8px;margin:0 0 20px;padding:8px;border:1px solid var(--pxab-cat-border);border-radius:16px;background:rgba(255,255,255,.96);box-shadow:0 8px 28px rgba(15,23,42,.08);backdrop-filter:blur(10px)}
.pxab-catering-form--booking-builder.pxab-catering-form--sticky-steps .pxab-catering-booking-steps{position:sticky;top:calc(var(--pxab-catering-booking-steps-sticky-top,24px) + var(--pxab-catering-builder-admin-bar-offset,0px))}
.pxab-catering-form--booking-builder.pxab-catering-form--static-steps .pxab-catering-booking-steps{position:static;top:auto}
.pxab-catering-booking-steps a{display:flex;align-items:center;gap:9px;min-width:0;padding:10px 12px;border:1px solid transparent;border-radius:11px;color:var(--pxab-cat-muted);text-decoration:none;transition:border-color .18s ease,background .18s ease,color .18s ease,transform .18s ease}
.pxab-catering-booking-steps a>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.76rem;font-weight:800}
.pxab-catering-booking-steps a>strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.9rem}
.pxab-catering-booking-steps a:hover,.pxab-catering-booking-steps a:focus-visible{border-color:var(--pxab-cat-accent);background:var(--pxab-cat-builder-accent-soft);color:var(--pxab-cat-accent);outline:none;transform:translateY(-1px)}
.pxab-catering-booking-steps a.is-active{border-color:var(--pxab-cat-accent);background:var(--pxab-cat-builder-accent-soft);color:var(--pxab-cat-accent)}
.pxab-catering-booking-steps a.is-active>span{background:var(--pxab-cat-accent);color:#fff}
.pxab-catering-booking-steps a.is-complete{color:#166534}
.pxab-catering-booking-steps a.is-complete>span{background:#16a34a;color:#fff;font-size:0}
.pxab-catering-booking-steps a.is-complete>span::before{content:"✓";font-size:.78rem}

.pxab-catering-form--booking-builder .pxab-catering-form__experience{display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,340px);gap:24px;align-items:stretch}
.pxab-catering-form--booking-builder .pxab-catering-form__content{display:grid;grid-column:1;gap:16px;min-width:0;align-self:start}
.pxab-catering-form--booking-builder .pxab-catering-summary-wrap{position:relative;display:block;grid-column:2;min-width:0;min-height:100%;align-self:stretch}
.pxab-catering-form--booking-builder .pxab-catering-summary-stack{display:grid;gap:14px;width:100%;height:100%;min-height:100%;align-content:start}
.pxab-catering-form--booking-builder.pxab-catering-form--sticky-summary.pxab-catering-form--summary-sticky-fit .pxab-catering-summary-wrap{position:relative;top:auto}
.pxab-catering-form--booking-builder.pxab-catering-form--summary-sticky-fit .pxab-catering-summary-stack{position:sticky;top:var(--pxab-catering-summary-content-top,calc(var(--pxab-catering-summary-sticky-top,24px) + var(--pxab-catering-builder-admin-bar-offset,0px)));height:auto;min-height:0}

.pxab-catering-booking-step{scroll-margin-top:calc(var(--pxab-catering-summary-content-top,24px) + 8px);margin:0;padding:clamp(17px,2.4vw,24px);border:1px solid var(--pxab-cat-border);border-radius:18px;background:#fff;box-shadow:0 8px 30px rgba(15,23,42,.045);transition:border-color .18s ease,box-shadow .18s ease}
.pxab-catering-booking-step.is-active{border-color:var(--pxab-cat-accent);box-shadow:0 0 0 1px var(--pxab-cat-accent),0 12px 36px var(--pxab-cat-builder-accent-shadow)}
.pxab-catering-booking-step.is-complete{border-color:#86efac}
.pxab-catering-booking-step__heading{display:grid;grid-template-columns:32px 40px minmax(0,1fr) auto;gap:10px;align-items:start;margin:0 0 20px;padding:0 0 17px;border-bottom:1px solid #eef2f7}
.pxab-catering-booking-step__number{display:inline-flex;align-items:center;justify-content:center;width:31px;height:31px;margin-top:2px;border-radius:999px;background:var(--pxab-cat-builder-accent-soft);color:var(--pxab-cat-accent);font-size:.76rem;font-weight:900}
.pxab-catering-booking-step__icon{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;background:#f8fafc;color:#475569}
.pxab-catering-booking-step__icon .pxab-icon{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2}
.pxab-catering-booking-step__heading h3{margin:0 0 4px;font-size:1.1rem;line-height:1.3}
.pxab-catering-booking-step__heading p{margin:0;color:var(--pxab-cat-muted);font-size:.88rem;line-height:1.5}
.pxab-catering-booking-step__state{align-self:center;padding:6px 9px;border:1px solid #fed7aa;border-radius:999px;background:#fff7ed;color:#9a3412;font-size:.72rem;font-weight:800;white-space:nowrap}
.pxab-catering-booking-step.is-complete .pxab-catering-booking-step__number{background:#16a34a;color:#fff;font-size:0}
.pxab-catering-booking-step.is-complete .pxab-catering-booking-step__number::before{content:"✓";font-size:.78rem}
.pxab-catering-booking-step.is-complete .pxab-catering-booking-step__state{border-color:#bbf7d0;background:#ecfdf5;color:#166534}
.pxab-catering-booking-step.is-active:not(.is-complete) .pxab-catering-booking-step__state{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}
.pxab-catering-form--booking-builder .pxab-catering-form__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 18px}
.pxab-catering-form--booking-builder .pxab-catering-package-field-grid>label{grid-column:1/-1}
.pxab-catering-form--booking-builder .pxab-catering-calendar-shell{margin-top:16px}
.pxab-catering-form--booking-builder .pxab-catering-package-experience,
.pxab-catering-form--booking-builder .pxab-catering-package-info,
.pxab-catering-form--booking-builder .pxab-catering-operational-cost-notice,
.pxab-catering-form--booking-builder .pxab-catering-menu-choices,
.pxab-catering-form--booking-builder .pxab-catering-addons{margin-top:14px}

.pxab-catering-booking-progress,.pxab-catering-booking-summary{padding:17px;border:1px solid var(--pxab-cat-border);border-radius:16px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.055)}
.pxab-catering-booking-progress__heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}
.pxab-catering-booking-progress__heading strong{font-size:.92rem}
.pxab-catering-booking-progress__heading span{color:var(--pxab-cat-muted);font-size:.76rem;text-align:right}
.pxab-catering-booking-progress>p{margin:10px 0 0;color:var(--pxab-cat-muted);font-size:.78rem;line-height:1.45}
.pxab-catering-booking-summary>header{display:flex;align-items:flex-start;gap:11px;margin-bottom:12px}
.pxab-catering-booking-summary>header>span{display:inline-flex;align-items:center;justify-content:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:var(--pxab-cat-builder-accent-soft);color:var(--pxab-cat-accent)}
.pxab-catering-booking-summary>header .pxab-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2}
.pxab-catering-booking-summary h3{margin:0 0 3px;font-size:1rem}
.pxab-catering-booking-summary header p{margin:0;color:var(--pxab-cat-muted);font-size:.76rem;line-height:1.4}
.pxab-catering-booking-summary dl{display:grid;gap:0;margin:0}
.pxab-catering-booking-summary dl>div{display:grid;grid-template-columns:minmax(90px,40%) minmax(0,1fr);gap:10px;padding:9px 0;border-bottom:1px solid #eef2f7}
.pxab-catering-booking-summary dl>div:last-child{border-bottom:0}
.pxab-catering-booking-summary dt{color:var(--pxab-cat-muted);font-size:.76rem;font-weight:700}
.pxab-catering-booking-summary dd{min-width:0;margin:0;font-size:.78rem;font-weight:800;text-align:right;overflow-wrap:anywhere}
.pxab-catering-booking-summary dd.is-ready{color:#166534}
.pxab-catering-booking-summary__note{display:flex;align-items:flex-start;gap:7px;margin:12px 0 0;padding:10px;border-radius:10px;background:#f8fafc;color:var(--pxab-cat-muted);font-size:.72rem;line-height:1.45}
.pxab-catering-booking-summary__note .pxab-icon{flex:0 0 16px;width:16px;height:16px;margin-top:1px;fill:none;stroke:currentColor;stroke-width:2}
.pxab-catering-form--booking-builder .pxab-catering-summary{margin:0}
.pxab-catering-form--booking-builder .pxab-catering-submit-area{position:sticky;bottom:12px;z-index:24;margin:20px -4px -4px;padding:12px;border:1px solid var(--pxab-cat-border);border-radius:15px;background:rgba(255,255,255,.97);box-shadow:0 10px 32px rgba(15,23,42,.13);backdrop-filter:blur(10px)}
.pxab-catering-form--booking-builder .pxab-catering-submit-actions{width:100%}
.pxab-catering-form--booking-builder .pxab-catering-button--clear{margin-right:auto}
.pxab-catering-form--booking-builder .pxab-catering-button--submit{min-width:210px}

body.admin-bar .pxab-catering-form--booking-builder{--pxab-catering-builder-admin-bar-offset:32px}
@media(max-width:782px){body.admin-bar .pxab-catering-form--booking-builder{--pxab-catering-builder-admin-bar-offset:46px}}

@media(max-width:1050px){
  .pxab-catering-form--booking-builder .pxab-catering-form__experience{grid-template-columns:1fr}
  .pxab-catering-form--booking-builder .pxab-catering-form__content,.pxab-catering-form--booking-builder .pxab-catering-summary-wrap{grid-column:1}
  .pxab-catering-form--booking-builder .pxab-catering-summary-wrap,.pxab-catering-form--booking-builder.pxab-catering-form--sticky-summary .pxab-catering-summary-wrap{position:static;min-height:0;order:-1}
  .pxab-catering-form--booking-builder .pxab-catering-summary-stack{position:static;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0}
  .pxab-catering-form--booking-builder .pxab-catering-summary{grid-column:1/-1}
  .pxab-catering-booking-steps,.pxab-catering-form--booking-builder.pxab-catering-form--sticky-steps .pxab-catering-booking-steps{position:static!important;top:auto!important;left:auto!important;width:auto!important;margin-bottom:20px!important}
}
@media(max-width:760px){
  .pxab-catering-booking-builder__intro{flex-direction:column}
  .pxab-catering-booking-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pxab-catering-form--booking-builder .pxab-catering-form__grid,.pxab-catering-form--booking-builder .pxab-catering-summary-stack{grid-template-columns:1fr}
  .pxab-catering-form--booking-builder .pxab-catering-summary{grid-column:auto}
  .pxab-catering-booking-step__heading{grid-template-columns:31px 38px minmax(0,1fr)}
  .pxab-catering-booking-step__state{grid-column:3;justify-self:start}
  .pxab-catering-form--booking-builder .pxab-catering-submit-area{position:static;margin-top:18px}
  .pxab-catering-form--booking-builder .pxab-catering-submit-actions{display:grid;grid-template-columns:1fr}
  .pxab-catering-form--booking-builder .pxab-catering-button--clear,.pxab-catering-form--booking-builder .pxab-catering-button--submit{width:100%;min-width:0;margin:0}
}
@media(max-width:520px){
  .pxab-catering-form--booking-builder{padding:16px}
  .pxab-catering-booking-steps{grid-template-columns:1fr}
  .pxab-catering-booking-step{padding:16px}
  .pxab-catering-booking-step__heading{grid-template-columns:30px minmax(0,1fr)}
  .pxab-catering-booking-step__icon{display:none}
  .pxab-catering-booking-step__state{grid-column:2}
  .pxab-catering-booking-summary dl>div{grid-template-columns:1fr;gap:3px}
  .pxab-catering-booking-summary dd{text-align:left}
}
@media(prefers-reduced-motion:reduce){
  .pxab-catering-booking-steps a,.pxab-catering-booking-step,.pxab-catering-booking-progress__track>[data-pxab-catering-progress-bar]{transition:none!important;animation:none!important}
  .pxab-catering-booking-progress__track>[data-pxab-catering-progress-bar]::after{animation:none!important;display:none!important}
  .pxab-catering-booking-steps a:hover,.pxab-catering-booking-steps a:focus-visible{transform:none}
}

/* The rail matches the main column height. The stack or selected fallback card may then follow within that full-height rail. */
@media(min-width:1051px){
  .pxab-catering-form--booking-builder .pxab-catering-summary-wrap{overflow:visible;max-height:none;padding-right:0}
  .pxab-catering-form--booking-builder.pxab-catering-form--summary-sticky-fit [data-pxab-summary-sticky-item]{position:static!important;top:auto!important}
  .pxab-catering-form--booking-builder:not(.pxab-catering-form--summary-sticky-fit).pxab-catering-form--summary-priority-progress [data-pxab-summary-sticky-item="progress"],
  .pxab-catering-form--booking-builder:not(.pxab-catering-form--summary-sticky-fit).pxab-catering-form--summary-priority-booking [data-pxab-summary-sticky-item="booking"],
  .pxab-catering-form--booking-builder:not(.pxab-catering-form--summary-sticky-fit).pxab-catering-form--summary-priority-totals [data-pxab-summary-sticky-item="totals"]{
    position:sticky;
    top:var(--pxab-catering-summary-priority-content-top,var(--pxab-catering-summary-content-top,24px));
    z-index:8;
    align-self:start;
  }
}

@media(max-width:1050px){
  .pxab-catering-form--booking-builder .pxab-catering-summary-wrap,.pxab-catering-form--booking-builder .pxab-catering-summary-stack{height:auto;min-height:0}
  .pxab-catering-form--booking-builder [data-pxab-summary-sticky-item]{position:static!important;top:auto!important}
}
