.djp-mrb{--djp-border:#e2e5e9;--djp-muted:#65707b;--djp-bg:#f7f8fa;--djp-dark:#17212b;--djp-accent:#2a7d9b;--djp-accent-soft:#e8f4f7;--djp-warning:#fabc2f;max-width:1100px;margin:0 auto 3rem}.djp-mrb *{box-sizing:border-box}.djp-mrb-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:2rem;align-items:center;margin-bottom:2rem}.djp-mrb-copy h2{margin:0 0 .75rem;font-size:clamp(2rem,4vw,3.4rem);line-height:1.05}.djp-mrb-description{font-size:1.05rem;line-height:1.7}.djp-mrb-description p:last-child{margin-bottom:0}.djp-mrb-image img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:14px}.djp-mrb-booking-card{border:1px solid var(--djp-border);border-radius:16px;padding:clamp(1.2rem,3vw,2rem);background:#fff;box-shadow:0 10px 35px rgba(18,28,38,.06)}.djp-mrb-booking-card h3{margin-top:0;font-size:1.6rem}.djp-mrb-step{margin:0 0 1.8rem}.djp-mrb-step>label,.djp-mrb-step>h4,.djp-mrb-step>legend,.djp-mrb-step-title{display:block;font-weight:700;margin:0 0 .75rem}.djp-mrb input[type=text],.djp-mrb input[type=email],.djp-mrb input[type=tel],.djp-mrb textarea{width:100%;border:1px solid var(--djp-border);border-radius:9px;padding:.8rem .9rem;background:#fff;font:inherit}.djp-mrb-slot-fieldset{border:0;padding:0}.djp-mrb-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:.8rem}.djp-mrb-slot{position:relative;display:flex;flex-direction:column;gap:.2rem;border:1px solid var(--djp-border);border-radius:11px;padding:1rem;cursor:pointer;background:#fff;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,color .18s ease}.djp-mrb-slot input{position:absolute;opacity:0;pointer-events:none}.djp-mrb-slot-name{font-weight:700}.djp-mrb-slot-time{font-size:.93rem;color:var(--djp-muted)}.djp-mrb-slot-status{font-size:.82rem;margin-top:.4rem;color:var(--djp-muted)}.djp-mrb-slot.is-available:hover{border-color:var(--djp-accent);box-shadow:0 0 0 2px rgba(42,125,155,.12)}.djp-mrb-slot.is-available .djp-mrb-slot-status{color:#19713c}.djp-mrb-slot.is-selected{background:var(--djp-accent);border-color:var(--djp-accent);color:#fff;box-shadow:0 0 0 3px rgba(42,125,155,.18)}.djp-mrb-slot.is-selected .djp-mrb-slot-time,.djp-mrb-slot.is-selected .djp-mrb-slot-status{color:#fff}.djp-mrb-slot.is-unavailable{background:var(--djp-bg);opacity:.58;cursor:not-allowed}.djp-mrb-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.djp-mrb-grid p,.djp-mrb-step>p{margin:0 0 1rem}.djp-mrb label{font-weight:600}.djp-mrb label input,.djp-mrb label textarea{margin-top:.35rem;font-weight:400}.djp-mrb-submit{appearance:none;border:0;border-radius:9px;padding:.9rem 1.25rem;background:var(--djp-dark);color:#fff;font:inherit;font-weight:700;cursor:pointer}.djp-mrb-submit:hover{filter:brightness(1.12)}.djp-mrb-submit:disabled{opacity:.5;cursor:not-allowed}.djp-mrb-notice{padding:.85rem 1rem;border-radius:9px;margin:0 0 1.2rem}.djp-mrb-success{background:#e9f7ee;color:#176b35}.djp-mrb-error{background:#fbeaea;color:#8c2222}.djp-mrb-slot-full-day .djp-mrb-slot-name{font-size:1.05rem}

.djp-mrb-calendar{width:min(100%,430px);border:1px solid var(--djp-border);border-radius:14px;background:#fff;padding:1rem;box-shadow:0 4px 18px rgba(18,28,38,.04)}.djp-mrb-calendar-header{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:.4rem;margin-bottom:.8rem}.djp-mrb-calendar-title{text-align:center;text-transform:capitalize;font-size:1.06rem}.djp-mrb-calendar-nav{appearance:none;width:42px;height:42px;border:1px solid var(--djp-border);border-radius:9px;background:#fff;color:var(--djp-dark);font:inherit;font-size:1.5rem;line-height:1;cursor:pointer}.djp-mrb-calendar-nav:hover:not(:disabled){border-color:var(--djp-accent);background:var(--djp-accent-soft)}.djp-mrb-calendar-nav:disabled{opacity:.3;cursor:not-allowed}.djp-mrb-calendar-weekdays,.djp-mrb-calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.djp-mrb-calendar-weekdays{margin-bottom:5px}.djp-mrb-calendar-weekdays span{text-align:center;font-size:.76rem;font-weight:700;color:var(--djp-muted);padding:.25rem 0}.djp-mrb-calendar-day,.djp-mrb-calendar-empty{aspect-ratio:1/1;min-width:0}.djp-mrb-calendar-day{appearance:none;position:relative;border:1px solid transparent;border-radius:9px;background:#fff;color:var(--djp-dark);font:inherit;font-weight:650;cursor:pointer;transition:.15s ease}.djp-mrb-calendar-day:after{content:"";position:absolute;left:50%;bottom:5px;transform:translateX(-50%);width:5px;height:5px;border-radius:50%;background:#c8ced4}.djp-mrb-calendar-day.is-free:after{background:#2c9a55}.djp-mrb-calendar-day.is-partial:after{background:#d79b00}.djp-mrb-calendar-day.is-busy:after{background:#b7bcc2}.djp-mrb-calendar-day.is-free:hover,.djp-mrb-calendar-day.is-partial:hover{border-color:var(--djp-accent);background:var(--djp-accent-soft)}.djp-mrb-calendar-day.is-selected{background:var(--djp-accent);border-color:var(--djp-accent);color:#fff;box-shadow:0 0 0 2px rgba(42,125,155,.18)}.djp-mrb-calendar-day.is-past,.djp-mrb-calendar-day.is-busy{background:#f3f4f5;color:#a0a6ad;cursor:not-allowed}.djp-mrb-calendar-day.is-loading{color:#8e959c}.djp-mrb-calendar-footer{display:flex;flex-direction:column;gap:.65rem;border-top:1px solid var(--djp-border);margin-top:.8rem;padding-top:.8rem}.djp-mrb-calendar-selection{font-weight:700;color:var(--djp-dark)}.djp-mrb-calendar-legend{display:flex;align-items:center;gap:.35rem;flex-wrap:wrap;font-size:.78rem;color:var(--djp-muted)}.djp-mrb-calendar-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-left:.35rem}.djp-mrb-calendar-legend i:first-child{margin-left:0}.djp-mrb-calendar-legend .is-free{background:#2c9a55}.djp-mrb-calendar-legend .is-partial{background:#d79b00}.djp-mrb-calendar-legend .is-busy{background:#b7bcc2}

@media(max-width:760px){.djp-mrb-intro{grid-template-columns:1fr}.djp-mrb-slots,.djp-mrb-grid{grid-template-columns:1fr}.djp-mrb-image{order:-1}.djp-mrb-calendar{width:100%}}

.djp-mrb-form-footer{margin-top:.85rem;font-size:.9rem;line-height:1.55;color:var(--djp-muted)}.djp-mrb-form-footer p{margin:.45rem 0}.djp-mrb-form-footer p:first-child{margin-top:0}.djp-mrb-form-footer a{color:var(--djp-accent);text-decoration:underline;text-underline-offset:2px}
