.pbbs-booking-app{max-width:900px;margin:30px auto;font-family:inherit;color:#222}
.pbbs-progress{display:flex;gap:8px;overflow:auto;margin-bottom:30px}
.pbbs-step{padding:10px 14px;border-radius:999px;background:#f1f1f1;color:#777;white-space:nowrap;font-size:14px}
.pbbs-step.is-active{background:#000;color:#fff}
.pbbs-panel{background:#fff;padding:28px;border-radius:16px;box-shadow:0 8px 30px rgba(0,0,0,.08)}
.pbbs-panel h2{margin:0 0 8px;font-size:28px}
.pbbs-panel h3{margin-top:25px}
.pbbs-muted{color:#777}
.pbbs-category-grid,.pbbs-service-grid,.pbbs-option-grid,.pbbs-slot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
.pbbs-category,.pbbs-service,.pbbs-option,.pbbs-slot{border:1px solid #ddd;background:#fff;border-radius:12px;padding:16px;text-align:left;cursor:pointer;transition:.2s}
.pbbs-category:hover,.pbbs-service:hover,.pbbs-option:hover,.pbbs-slot:hover,.pbbs-option.is-selected,.pbbs-slot.is-selected{border-color:#000;box-shadow:0 4px 15px rgba(0,0,0,.08)}
.pbbs-category strong,.pbbs-service strong,.pbbs-option strong{display:block;font-size:16px}
.pbbs-category span,.pbbs-service span,.pbbs-service small,.pbbs-option span{display:block;margin-top:6px;color:#777}
.pbbs-field{display:block;margin:18px 0}
.pbbs-field span{display:block;font-weight:600;margin-bottom:7px}
.pbbs-field input,.pbbs-field textarea{width:100%;box-sizing:border-box;padding:12px;border:1px solid #ccc;border-radius:8px}
.pbbs-primary{margin-top:24px;padding:13px 22px;background:#000;color:#fff;border:0;border-radius:8px;cursor:pointer;font-weight:600}
.pbbs-primary:disabled{opacity:.5;cursor:not-allowed}
.pbbs-back{border:0;background:none;padding:0;margin-bottom:20px;cursor:pointer}
.pbbs-selected-card{padding:16px;border-radius:10px;background:#f8f8f8;margin:20px 0}
.pbbs-selected-card span{display:block;margin-top:6px;color:#666}
.pbbs-addon{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid #ddd;border-radius:10px;margin:8px 0;cursor:pointer}
.pbbs-addon span span,.pbbs-addon small{display:block;color:#777;margin-top:3px}
.pbbs-summary>div:first-child{border:1px solid #ddd;border-radius:12px;padding:16px}
.pbbs-summary>div:first-child>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #eee}
.pbbs-summary .pbbs-total{font-size:20px;border-bottom:0}
.pbbs-customer{margin-top:15px;display:flex;flex-direction:column;gap:4px;color:#666}
.pbbs-customer strong{color:#222}
.pbbs-notice{margin-top:20px;padding:14px;background:#fff7df;border-radius:8px;color:#735b00}
.pbbs-message{margin-top:18px;padding:12px;background:#ffe8e8;color:#8a0000;border-radius:8px}
@media(max-width:600px){
 .pbbs-panel{padding:20px;border-radius:12px}
 .pbbs-category-grid,.pbbs-service-grid,.pbbs-option-grid,.pbbs-slot-grid{grid-template-columns:1fr}
 .pbbs-progress{margin-bottom:18px}
 .pbbs-step{font-size:12px;padding:8px 10px}
 .pbbs-panel h2{font-size:24px}
}


.pbbs-payment-result {
    max-width: 720px;
    margin: 30px auto;
    padding: 32px;
    border: 1px solid #e6e0d7;
    border-radius: 14px;
    background: #fff;
}
.pbbs-payment-result h2 { margin-top: 0; }
.pbbs-payment-success { text-align: center; }
.pbbs-payment-cancelled { text-align: center; }

.pbbs-gallery-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:24px;
}
.pbbs-gallery-card {
    overflow:hidden;
    border:1px solid #e5e5e5;
    border-radius:14px;
    background:#fff;
}
.pbbs-gallery-card > img,
.pbbs-gallery-placeholder {
    display:block;
    width:100%;
    aspect-ratio:4/5;
    object-fit:cover;
}
.pbbs-gallery-placeholder {
    display:flex;
    align-items:center;
    justify-content:center;
    background:#f5f1e8;
}
.pbbs-gallery-card-content {
    padding:18px;
}
.pbbs-gallery-card-content h3 {
    margin:0 0 8px;
}
.pbbs-gallery-card-content p {
    margin:0 0 16px;
}
@media (max-width: 800px) {
    .pbbs-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 520px) {
    .pbbs-gallery-grid { grid-template-columns:1fr; }
}


/* v1.3.0 — My Appointment */
.pbbs-manage-card{border:1px solid #e4e4e4;border-radius:14px;padding:20px;background:#fff;margin-top:20px}
.pbbs-manage-header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid #eee;padding-bottom:16px;margin-bottom:6px}
.pbbs-manage-header strong,.pbbs-manage-header span{display:block}
.pbbs-manage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 22px}
.pbbs-manage-grid>div{padding:13px 0;border-bottom:1px solid #f0f0f0}
.pbbs-manage-grid span{display:block;color:#777;font-size:13px;margin-bottom:4px}
.pbbs-manage-total{grid-column:1/-1;font-size:19px}
.pbbs-manage-total span{font-size:14px}
.pbbs-status{padding:7px 11px;border-radius:999px!important;font-size:12px!important;font-weight:700;white-space:nowrap}
.pbbs-status-success{background:#e7f7ed;color:#146c36}
.pbbs-status-warning{background:#fff4d6;color:#765700}
.pbbs-status-danger{background:#fde8e8;color:#8b2020}
.pbbs-status-neutral{background:#eee;color:#555}
.pbbs-manage-addons{display:flex;flex-direction:column;gap:7px;padding-top:15px}
.pbbs-manage-addons span{display:flex;justify-content:space-between;background:#f8f8f8;padding:9px 11px;border-radius:7px}
.pbbs-manage-addons small{color:#777}
.pbbs-manage-section{margin-top:20px;padding:20px;border:1px solid #e5e5e5;border-radius:14px;background:#fafafa}
.pbbs-manage-section h3{margin-top:0}
.pbbs-manage-actions{margin-top:16px}
.pbbs-secondary-danger{padding:12px 18px;border:1px solid #c93a3a;background:#fff;color:#a52222;border-radius:8px;cursor:pointer;font-weight:600}
.pbbs-secondary-danger:disabled{opacity:.55;cursor:not-allowed}
.pbbs-manage-success{margin-top:15px;padding:13px;border-radius:8px;background:#e7f7ed;color:#146c36}
@media(max-width:600px){
 .pbbs-manage-grid{grid-template-columns:1fr}
 .pbbs-manage-total{grid-column:auto}
 .pbbs-manage-header{align-items:flex-start}
 .pbbs-manage-section{padding:16px}
}

/* v2.0.0 — mobile, accessibility and resilient interaction polish */
.pbbs-booking-app button:focus-visible,
.pbbs-booking-app input:focus-visible,
.pbbs-booking-app textarea:focus-visible,
.pbbs-booking-app select:focus-visible{outline:3px solid currentColor;outline-offset:2px}
.pbbs-category,.pbbs-service,.pbbs-option,.pbbs-slot{min-height:48px}
.pbbs-primary[aria-busy="true"]{cursor:wait}
.pbbs-panel[hidden]{display:none!important}
@media(max-width:600px){
 .pbbs-booking-app{margin:16px auto}
 .pbbs-panel{padding:16px}
 .pbbs-primary,.pbbs-secondary-danger{width:100%;min-height:48px}
}
@media(prefers-reduced-motion:reduce){
 .pbbs-booking-app *{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}


/* 2.1.0 – Premium booking experience; scoped to plugin to avoid theme conflicts. */
.pbbs-booking-app{--pbbs-ink:#1d1b17;--pbbs-gold:#aa8449;--pbbs-cream:#f8f5ed;--pbbs-line:#e5dfd1;--pbbs-shadow:0 18px 54px rgba(42,31,14,.09);max-width:980px;margin:32px auto 64px;color:var(--pbbs-ink);line-height:1.55}
.pbbs-booking-app,.pbbs-booking-app *{box-sizing:border-box}
.pbbs-intro{padding:30px 32px 24px;background:linear-gradient(140deg,#fcfaf5,#f3ecdd);border:1px solid var(--pbbs-line);border-radius:20px;margin-bottom:22px}
.pbbs-eyebrow{color:#785a30;font-size:11px;font-weight:750;letter-spacing:.20em}
.pbbs-intro h1{font-size:clamp(26px,4vw,39px);line-height:1.18;letter-spacing:-.035em;margin:9px 0 8px;font-weight:750}
.pbbs-intro p{color:#625d54;margin:0;font-size:15px}
.pbbs-progress{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;overflow:visible;margin:0 0 18px}
.pbbs-step{min-width:0;white-space:normal;text-align:center;padding:12px 7px;font-size:12px;font-weight:700;border-radius:11px;background:#f3efe7;border:1px solid var(--pbbs-line);color:#625e55;line-height:1.35}
.pbbs-step.is-active{background:var(--pbbs-ink);border-color:var(--pbbs-ink);color:#fff;box-shadow:0 4px 14px rgba(20,16,10,.14)}
.pbbs-panel{background:#fffefb;border:1px solid var(--pbbs-line);box-shadow:var(--pbbs-shadow);border-radius:20px;padding:clamp(22px,4vw,38px);min-width:0}
.pbbs-panel h2{font-size:clamp(23px,3vw,30px);line-height:1.25;letter-spacing:-.025em;color:var(--pbbs-ink);margin:0 0 8px}
.pbbs-panel h3{font-size:19px;letter-spacing:-.015em}
.pbbs-muted{color:#6d665b}
.pbbs-category-grid,.pbbs-service-grid,.pbbs-option-grid,.pbbs-slot-grid{gap:14px;margin-top:20px;align-items:stretch}
.pbbs-category,.pbbs-service,.pbbs-option,.pbbs-slot{min-width:0;overflow-wrap:anywhere;min-height:58px;background:#fff;border:1px solid #ded6c8;border-radius:13px;padding:17px 19px;text-align:left;color:var(--pbbs-ink);box-shadow:0 2px 7px rgba(0,0,0,.025);transition:border-color .18s,box-shadow .18s,transform .18s}
.pbbs-category:hover,.pbbs-service:hover,.pbbs-option:hover,.pbbs-slot:hover{border-color:var(--pbbs-gold);box-shadow:0 8px 22px rgba(60,43,21,.10);transform:translateY(-1px)}
.pbbs-option.is-selected,.pbbs-slot.is-selected,.pbbs-category.is-selected,.pbbs-service.is-selected{background:#fcf7ec;border-color:#9c783e;box-shadow:0 0 0 2px rgba(170,132,73,.15)}
.pbbs-category strong,.pbbs-service strong,.pbbs-option strong{font-size:16px;line-height:1.35}
.pbbs-category span,.pbbs-service span,.pbbs-service small,.pbbs-option span{color:#625d54;font-size:13px}
.pbbs-field{margin:18px 0;min-width:0}
.pbbs-field span{color:#302c26;font-weight:650;font-size:14px;margin-bottom:8px}
.pbbs-field input,.pbbs-field textarea,.pbbs-booking-app select{display:block;max-width:100%;width:100%;min-height:48px;border:1px solid #d7d0c2;background:#fff;border-radius:11px;padding:12px 13px;font:inherit;color:var(--pbbs-ink)}
.pbbs-field textarea{min-height:100px}
.pbbs-field input:focus,.pbbs-field textarea:focus,.pbbs-booking-app select:focus{border-color:#aa8449;box-shadow:0 0 0 3px rgba(170,132,73,.14)}
.pbbs-primary{max-width:100%;min-height:49px;margin-top:22px;border-radius:11px;background:#1d1b17;color:white;padding:13px 24px;line-height:1.25;font-size:14px;font-weight:700;letter-spacing:.01em;transition:background .18s,transform .18s}
.pbbs-primary:hover:not(:disabled){background:#463821;transform:translateY(-1px)}
.pbbs-back{padding:8px 3px;margin-bottom:19px;color:#806139;font-weight:650}
.pbbs-selected-card,.pbbs-summary>div:first-child{background:#f9f5ed;border:1px solid var(--pbbs-line);border-radius:13px;padding:18px}
.pbbs-addon,.pbbs-manage-card,.pbbs-manage-section{border-color:var(--pbbs-line);border-radius:13px}
.pbbs-summary>div:first-child>div{flex-wrap:wrap;min-width:0}
.pbbs-summary>div:first-child>div>*{min-width:0;overflow-wrap:anywhere}
.pbbs-policy-note{font-size:13px;line-height:1.6;background:#f8f4e9;color:#5d4e37;border-left:3px solid #aa8449;padding:12px 14px;border-radius:7px}
.pbbs-manage-card{box-shadow:0 8px 28px rgba(44,34,17,.06)}
.pbbs-manage-header{flex-wrap:wrap}
.pbbs-gallery-grid{gap:20px}
@media(max-width:760px){.pbbs-progress{grid-template-columns:repeat(5,minmax(0,1fr));gap:4px}.pbbs-step{font-size:10px;padding:10px 4px}.pbbs-intro{padding:24px 20px}.pbbs-panel{padding:22px 18px}.pbbs-category-grid,.pbbs-service-grid,.pbbs-option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:510px){.pbbs-booking-app{margin:12px auto 35px}.pbbs-intro{border-radius:15px}.pbbs-panel{padding:18px 15px;border-radius:15px}.pbbs-category-grid,.pbbs-service-grid,.pbbs-option-grid,.pbbs-slot-grid{grid-template-columns:1fr}.pbbs-progress{gap:3px}.pbbs-step{font-size:9px;padding:8px 2px;border-radius:7px}.pbbs-manage-grid{grid-template-columns:1fr}.pbbs-primary,.pbbs-secondary-danger{width:100%}}
@media(prefers-reduced-motion:reduce){.pbbs-booking-app *{transition:none!important;transform:none!important}}
