.bbooking{--bb-blue:#203640;--bb-blue2:#304b57;--bb-gold:#d4af37;--bb-gold2:#b8921f;--bb-cream:#f7f4ed;--bb-line:#dce4e5;--bb-muted:#6d7d84;color:var(--bb-blue);max-width:1180px;margin:0 auto}
.bbooking *{box-sizing:border-box}
.bbooking-progress{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:16px}
.bbooking-progress span{min-height:52px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--bb-line);border-radius:13px;background:#fff;color:#8a989d;font-size:10px;font-weight:900}
.bbooking-progress span b{width:23px;height:23px;display:grid;place-items:center;border-radius:50%;background:#edf2f3;color:#61757c;font-size:9px}
.bbooking-progress span em{font-style:normal}
.bbooking-progress span.is-done{color:#56736a}.bbooking-progress span.is-done b{background:#e6f4e9;color:#2e753f}
.bbooking-progress span.is-active{border-color:#e1c14b;background:#fff8d8;color:#6f590a}.bbooking-progress span.is-active b{background:var(--bb-gold);color:var(--bb-blue)}
.bbooking-card,.bbooking-summary{border:1px solid var(--bb-line);border-radius:22px;background:#fff;box-shadow:0 16px 46px rgba(25,48,58,.07)}
.bbooking-card{padding:30px}
.bbooking-head>span,.bbooking-step-head>div>span,.bbooking-summary>span,.bbooking-review-kicker{display:block;color:var(--bb-gold2);font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.12em}
.bbooking-head h2,.bbooking-step-head h2,.bbooking-review h2{margin:6px 0 8px;font:700 clamp(30px,3.5vw,47px)/1.02 Georgia,serif;color:var(--bb-blue)}
.bbooking-head p,.bbooking-step-head p,.bbooking-review p{margin:0;color:var(--bb-muted);font-size:13px;line-height:1.55}
.bbooking-search{display:grid;grid-template-columns:1.2fr 1fr 1fr .7fr;gap:11px;margin-top:22px;align-items:end}
.bbooking-search .bbooking-primary{grid-column:1/-1}
.bbooking label{display:grid;gap:6px}.bbooking label>span{font-size:10px;font-weight:900;color:#51656d}.bbooking label small{color:#98a4a8}
.bbooking input,.bbooking select,.bbooking textarea{width:100%;min-height:50px;border:1px solid #ccd7da;border-radius:12px;padding:0 13px;background:#fff;color:var(--bb-blue);font:inherit;outline:none}
.bbooking textarea{padding:12px;min-height:100px;resize:vertical}
.bbooking input:focus,.bbooking select:focus,.bbooking textarea:focus{border-color:#b79224;box-shadow:0 0 0 3px rgba(212,175,55,.12)}
.bbooking-locked{min-height:76px;padding:11px 13px;border:1px solid #dce4e5;border-radius:12px;background:#f7f9f9;align-content:center}.bbooking-locked strong{font-size:14px}
.bbooking-primary,.bbooking-secondary{min-height:50px;border:0;border-radius:12px;padding:0 20px;font-weight:900;cursor:pointer}.bbooking-primary{background:var(--bb-gold);color:var(--bb-blue)}.bbooking-secondary{background:#edf2f3;color:var(--bb-blue2)}
.bbooking-error{margin-top:12px;padding:11px 13px;border-radius:11px;background:#fff0f0;color:#933f3f;font-size:11px;font-weight:700}
.bbooking-results-step{padding-top:8px}
.bbooking-step-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin:18px 0 12px}
.bbooking-link{border:0;background:transparent;color:#9f7d13;text-decoration:underline;font-weight:900;cursor:pointer}
.bbooking-availability-note{display:flex;gap:5px;flex-wrap:wrap;margin:12px 0;padding:11px 13px;border:1px solid #dce4e5;border-radius:11px;background:#f7fafb;color:#67777e;font-size:10px}.bbooking-availability-note strong{color:#415860}
.bbooking-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.bbooking-result{overflow:hidden;display:flex;flex-direction:column;border:1px solid var(--bb-line);border-radius:19px;background:#fff;box-shadow:0 12px 35px rgba(24,47,57,.06)}
.bbooking-result-media{min-height:190px;background:radial-gradient(circle at 75% 18%,rgba(212,175,55,.23),transparent 30%),linear-gradient(135deg,#547783,#93a8b0);background-size:cover;background-position:center;position:relative}
.bbooking-result-badge{position:absolute;left:12px;top:12px;padding:6px 9px;border-radius:999px;background:rgba(32,54,64,.92);color:#fff;font-size:8px;font-weight:900}
.bbooking-result-body{display:flex;flex-direction:column;flex:1;padding:17px}
.bbooking-result h3{margin:0 0 5px;font:700 24px Georgia,serif}.bbooking-result p{margin:0;color:var(--bb-muted);font-size:10px;line-height:1.45}
.bbooking-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}.bbooking-meta span{padding:6px 8px;border-radius:999px;background:#eef3f3;color:#53666e;font-size:8px}
.bbooking-price{margin-top:14px;padding:13px;border-radius:12px;background:#fff8d9}.bbooking-price>div>span{display:block;color:#776a3a;font-size:8px}.bbooking-price>div>strong{display:block;margin-top:2px;font:700 27px Georgia,serif}.bbooking-price>small{display:block;margin-top:3px;color:#766a3f;font-size:8px}.bbooking-deposit{margin-top:9px;padding-top:8px;border-top:1px solid #ecd981;color:#756a42;font-size:9px}.bbooking-deposit strong{color:#5b4a0e}
.bbooking-result-action{margin-top:auto;padding-top:14px}.bbooking-result-action button{width:100%}
.bbooking-no-results{grid-column:1/-1;padding:30px;text-align:center;border:1px dashed #bcc9cc;border-radius:16px;color:#6d7d84}.bbooking-no-results strong,.bbooking-no-results span{display:block}.bbooking-no-results span{margin-top:5px;font-size:10px}
.bbooking-data-step{padding-top:18px}.bbooking-data-grid,.bbooking-review-grid{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:16px;align-items:start}
.bbooking-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.bbooking-customer{display:grid;gap:12px;margin-top:18px}
.bbooking-summary{padding:22px;position:sticky;top:100px}.bbooking-summary h3{margin:5px 0;font:700 24px Georgia,serif}.bbooking-summary p{color:var(--bb-muted);font-size:10px}
.bbooking-summary-line{display:flex;justify-content:space-between;gap:15px;padding:9px 0;border-bottom:1px solid #edf1f1;font-size:9px}.bbooking-summary-line span{color:#7c8a90}.bbooking-summary-total strong{font-size:14px}
.bbooking-review{padding-top:18px}
.bbooking-review .bbooking-card>p{max-width:650px}
.bbooking-review-code{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px;padding:12px 14px;border:1px solid #e2e8e9;border-radius:12px;background:#f8faf9}.bbooking-review-code span{font-size:9px;color:#7c898e}.bbooking-review-code strong{font-size:13px}
.bbooking-confirm-total{display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;margin-top:12px;border:1px solid #e6ddac;border-radius:12px;background:#e6ddac}.bbooking-confirm-total>div{padding:14px;background:#fff9df}.bbooking-confirm-total span,.bbooking-confirm-total strong{display:block}.bbooking-confirm-total span{font-size:8px;color:#81713d;text-transform:uppercase}.bbooking-confirm-total strong{margin-top:4px;font:700 21px Georgia,serif}
.bbooking-review-note{margin-top:12px;padding:12px 14px;border:1px solid #dce4e5;border-radius:12px;background:#f7fafb}.bbooking-review-note strong,.bbooking-review-note span{display:block}.bbooking-review-note strong{font-size:10px}.bbooking-review-note span{margin-top:3px;color:#738389;font-size:9px}
.bbooking-confirm-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:17px}.bbooking-confirm-actions .bbooking-primary{flex:1}
@media(max-width:920px){.bbooking-results{grid-template-columns:1fr 1fr}.bbooking-data-grid,.bbooking-review-grid{grid-template-columns:1fr}.bbooking-summary{position:static}}
@media(max-width:700px){.bbooking-search,.bbooking-two,.bbooking-confirm-total{grid-template-columns:1fr}.bbooking-results{grid-template-columns:1fr}.bbooking-step-head{display:block}.bbooking-step-head .bbooking-link{margin-top:8px}.bbooking-progress em{display:none}.bbooking-card{padding:22px}.bbooking-progress span{min-height:44px}}


/* ============================================================
   v2.1 · Bens Pro 3 visual system
   ============================================================ */
.bbooking{
  --bb-blue:#123541;--bb-blue2:#0d6f89;--bb-gold:#ff7356;--bb-gold2:#e95f44;
  --bb-cream:#fff7ee;--bb-line:#d9e8e9;--bb-muted:#687f86;
}
.bbooking-progress{gap:6px;margin-bottom:12px}
.bbooking-progress span{
  min-height:46px;border-radius:10px;background:rgba(255,255,255,.72);border-color:#d9e8e9;
  font-size:9px
}
.bbooking-progress span b{border-radius:7px;background:#eaf5f5;color:#4d6c75}
.bbooking-progress span.is-active{border-color:#0d6f89;background:#0d6f89;color:#fff}
.bbooking-progress span.is-active b{background:#45c4c6;color:#083c49}
.bbooking-progress span.is-done{color:#297b6d}.bbooking-progress span.is-done b{background:#dff6ee;color:#26705d}

.bbooking-card,.bbooking-summary{
  border-radius:18px;border-color:#d9e8e9;box-shadow:0 14px 42px rgba(17,62,75,.06)
}
.bbooking-card{padding:27px}
.bbooking-head>span,.bbooking-step-head>div>span,.bbooking-summary>span,.bbooking-review-kicker{color:#0d6f89}
.bbooking-head h2,.bbooking-step-head h2,.bbooking-review h2{
  font-family:inherit;font-weight:850;letter-spacing:-.04em
}
.bbooking-head h2{font-size:clamp(31px,3.6vw,45px)}
.bbooking-head p,.bbooking-step-head p,.bbooking-review p{color:#687f86}
.bbooking input,.bbooking select,.bbooking textarea{border-radius:9px;border-color:#cbdcdf}
.bbooking input:focus,.bbooking select:focus,.bbooking textarea:focus{border-color:#0d6f89;box-shadow:0 0 0 3px rgba(13,111,137,.09)}
.bbooking-primary{border-radius:10px;background:#ff7356;color:#fff;box-shadow:0 8px 20px rgba(255,115,86,.17)}
.bbooking-primary:hover{background:#e95f44}
.bbooking-secondary{border-radius:10px;background:#eaf5f5;color:#123541}
.bbooking-link{color:#0d6f89}
.bbooking-availability-note{border-color:#d7e9e9;background:#eff8f8;color:#55747c}
.bbooking-results{gap:13px}
.bbooking-result{border-radius:17px;border-color:#d9e8e9;box-shadow:0 10px 30px rgba(17,62,75,.05)}
.bbooking-result-media{min-height:210px;background:linear-gradient(135deg,#0d6f89,#45c4c6)}
.bbooking-result-badge{border-radius:8px;background:rgba(9,58,71,.88)}
.bbooking-result h3{font-family:inherit;font-size:25px;letter-spacing:-.035em}
.bbooking-meta span{border-radius:7px;background:#eff8f8;color:#496a73}
.bbooking-price{border-radius:10px;background:#fff2ed}
.bbooking-price>div>strong{font-family:inherit;color:#123541}
.bbooking-deposit{border-color:#ffd2c7;color:#7b5b54}.bbooking-deposit strong{color:#d8563d}
.bbooking-summary{border-top:4px solid #45c4c6}.bbooking-summary h3{font-family:inherit;letter-spacing:-.035em}
.bbooking-review-code,.bbooking-review-note{border-radius:10px;background:#f5fafa}
.bbooking-confirm-total{border-color:#ffd8ce;background:#ffd8ce;border-radius:10px}.bbooking-confirm-total>div{background:#fff2ed}.bbooking-confirm-total strong{font-family:inherit}

/* v2.2 · Bens Pro 4.4 */
.bbooking{--bb-blue:#173b5c!important;--bb-blue2:#2f6fdd!important;--bb-gold:#2f6fdd!important;--bb-gold2:#2057ad!important;--bb-cream:#fff!important;--bb-line:#dce6ef!important;--bb-muted:#6b8091!important;max-width:1320px!important}.bbooking-progress span{min-height:54px!important;font-size:11px!important}.bbooking-card{padding:31px!important}.bbooking-head h2{font-size:clamp(38px,4vw,54px)!important}.bbooking-head p{font-size:14px!important}.bbooking input,.bbooking select,.bbooking textarea{min-height:54px!important;font-size:12px!important}.bbooking-primary,.bbooking-secondary{min-height:52px!important;font-size:11px!important}.bbooking-results{grid-template-columns:repeat(2,1fr)!important;gap:18px!important}.bbooking-result-media{min-height:285px!important}.bbooking-result h3{font-size:27px!important}.bbooking-meta span{font-size:9px!important}.bbooking-price>div>strong{font-size:28px!important}.bbooking-summary{padding:23px!important}.bbooking-summary h3{font-size:25px!important}
@media(max-width:800px){.bbooking-results{grid-template-columns:1fr!important}.bbooking-card{padding:22px!important}}
