.mbw-app{--mbw-primary:#2f4f82;color:#2d4d7d;font-family:inherit;max-width:1050px;margin:30px auto}.mbw-step{display:none}.mbw-step.is-active{display:block}.mbw-booking-shell{display:grid;grid-template-columns:1fr 1fr;background:#fff;border:1px solid #dbe2ec;border-radius:7px;overflow:hidden;box-shadow:0 20px 48px rgba(28,55,90,.12)}.mbw-left-panel{background:#fff;min-height:690px}.mbw-left-inner{padding:70px 62px}.mbw-left-inner h3,.mbw-right-inner h3{margin:0 0 42px;font-size:22px;font-weight:400;color:#31517e;text-align:center}.mbw-field{margin-bottom:28px}.mbw-field label{display:block;font-weight:700;font-size:16px;margin-bottom:9px;color:#294a78}.mbw-required{color:#ff6868}.mbw-field input,.mbw-field select,.mbw-field textarea{width:100%;box-sizing:border-box;min-height:52px;border:1px solid #cfd8e6;border-radius:5px;padding:10px 15px;background:#fff;color:#294a78;font-size:16px}.mbw-right-panel{background:linear-gradient(180deg,var(--mbw-primary),#274a79);color:#fff;min-height:690px}.mbw-right-inner{padding:70px 82px}.mbw-right-inner h3{color:#fff}.mbw-calendar-head{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;margin-bottom:18px}.mbw-month-title{text-align:center;font-size:20px}.mbw-month-nav{border:0;background:transparent;color:#fff;font-size:42px;line-height:1;cursor:pointer}.mbw-month-nav:disabled{opacity:.2;cursor:not-allowed}.mbw-weekdays,.mbw-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;text-align:center}.mbw-weekdays{opacity:.72;margin-bottom:8px}.mbw-weekdays span{padding:7px 0}.mbw-day{aspect-ratio:1/1;border:0;background:transparent;color:#fff;border-radius:50%;cursor:pointer;font-size:15px}.mbw-day:hover:not(:disabled),.mbw-day.is-selected{background:rgba(255,255,255,.16)}.mbw-day.is-disabled,.mbw-day.is-outside{opacity:.25;cursor:not-allowed}.mbw-slots{margin-top:18px;max-height:178px;overflow:auto;padding-right:4px}.mbw-slot{display:block;width:100%;height:45px;margin-bottom:8px;border:1px solid rgba(255,255,255,.75);background:transparent;color:#fff;border-radius:4px;font-size:18px;cursor:pointer}.mbw-slot:hover,.mbw-slot.is-selected{background:#fff;color:#294a78}.mbw-slots-placeholder{text-align:center;opacity:.78;padding:25px 8px}.mbw-continue{display:block;margin:26px auto 0;background:#fff;color:#294a78;border:0;border-radius:5px;padding:13px 28px;font-size:16px;cursor:pointer}.mbw-continue:disabled{opacity:.45;cursor:not-allowed}.mbw-details-card{max-width:850px;margin:0 auto;background:#fff;border-left:20px solid var(--mbw-primary);border-radius:4px;padding:36px 42px 34px;box-shadow:0 12px 36px rgba(33,66,102,.12);color:#294a78}.mbw-brand-mark{text-align:center;font-size:40px;line-height:1;color:#00a1c7}.mbw-details-card>h3{text-align:center;font-size:17px;font-weight:500;margin:12px 0 34px}.mbw-summary-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:20px;border-top:1px solid #d9e0ea;border-bottom:1px solid #d9e0ea;padding:18px 0;margin-bottom:24px}.mbw-summary-grid span{display:block;font-size:12px;margin-bottom:5px}.mbw-summary-grid strong{font-size:13px;font-weight:500}.mbw-form-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:26px}.mbw-form-grid .mbw-field{margin-bottom:20px}.mbw-form-grid .mbw-field label{font-size:14px}.mbw-checkbox-field{padding-top:7px}.mbw-check-label{display:flex!important;gap:10px;align-items:flex-start}.mbw-check-label input{width:16px!important;min-height:auto!important;margin-top:2px}.mbw-check-label span{font-weight:600}.mbw-radio-group>label:not(:first-child){font-weight:400!important;margin:7px 0}.mbw-radio-group input{width:auto!important;min-height:auto!important;margin-right:7px}.mbw-payment-block{border-top:1px solid #dbe1ea;padding-top:20px}.mbw-payment-block h4{margin:0 0 12px}.mbw-payment-option{display:flex;align-items:center;gap:10px;border:1px solid #d0d9e8;border-radius:5px;padding:12px;margin:8px 0}.mbw-payment-option.is-selected{border-color:var(--mbw-primary);background:#f5f7fb}.mbw-payment-option input{width:auto}.mbw-price-table{margin-top:22px;border-top:1px solid #dbe1ea;padding-top:18px}.mbw-price-table>div{display:flex;justify-content:space-between;padding:9px 12px}.mbw-price-highlight{background:#f0f2f5}.mbw-total-row{background:#e8ebef;border-top:1px solid #cbd3df}.mbw-actions{display:flex;justify-content:center;gap:16px;margin-top:24px}.mbw-btn{min-width:92px;padding:11px 18px;border-radius:4px;border:1px solid #cfd7e3;cursor:pointer}.mbw-btn-primary{background:var(--mbw-primary);border-color:var(--mbw-primary);color:#fff}.mbw-btn-light{background:#fff;color:#294a78}.mbw-btn:disabled{opacity:.55;cursor:wait}.mbw-message{margin:15px 0;text-align:center}.mbw-message.is-error{color:#b42318}.mbw-message.is-success{color:#067647}.mbw-notice{padding:16px;border:1px solid #d9e0e8;border-radius:6px}@media(max-width:900px){.mbw-booking-shell{grid-template-columns:1fr}.mbw-left-panel,.mbw-right-panel{min-height:auto}.mbw-left-inner,.mbw-right-inner{padding:38px 28px}.mbw-summary-grid{grid-template-columns:1fr 1fr}.mbw-details-card{border-left-width:10px;padding:28px 24px}}@media(max-width:620px){.mbw-form-grid,.mbw-summary-grid{grid-template-columns:1fr}.mbw-left-inner,.mbw-right-inner{padding:28px 18px}.mbw-left-inner h3,.mbw-right-inner h3{margin-bottom:25px}.mbw-calendar-head{margin-top:0}.mbw-day{font-size:13px}.mbw-details-card{padding:22px 16px}.mbw-actions{justify-content:stretch}.mbw-btn{flex:1}}

.mbw-day{position:relative}
.mbw-day.is-unavailable{
  opacity:.36;
  cursor:not-allowed;
  background:transparent!important;
}
.mbw-day.is-unavailable::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:19px;
  height:1.5px;
  background:rgba(255,255,255,.82);
  transform:translate(-50%,-50%);
  border-radius:999px;
}
.mbw-day.is-unavailable:hover{background:transparent!important}
.mbw-month-title.is-loading{opacity:.65}
.mbw-brand-logo{text-align:center;margin:0 auto 14px}
.mbw-brand-logo img{
  display:inline-block;
  max-width:180px;
  max-height:90px;
  width:auto;
  height:auto;
  object-fit:contain;
}

/* V2.6: force equal 50/50 booking columns */
.mbw-booking-shell{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
}
.mbw-left-panel,
.mbw-right-panel{
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  box-sizing:border-box;
}
.mbw-left-inner,
.mbw-right-inner{
  width:100%;
  min-width:0;
  box-sizing:border-box;
}

/* Keep form controls from forcing the left column wider */
.mbw-left-panel .mbw-field,
.mbw-left-panel select,
.mbw-left-panel input{
  min-width:0;
  max-width:100%;
}

/* Logo loaded from Medical Booking > Settings */
.mbw-brand-logo{
  width:100%;
  text-align:center;
}
.mbw-brand-logo img{
  display:block;
  margin:0 auto;
  max-width:220px;
  max-height:100px;
  width:auto;
  height:auto;
  object-fit:contain;
}

/* V2.7 calendar alignment + spacing */
.mbw-left-inner,
.mbw-right-inner{
  padding:35px!important;
}

/* Weekday labels and dates use the exact same seven-column grid */
.mbw-weekdays,
.mbw-calendar{
  display:grid!important;
  grid-template-columns:repeat(7,minmax(0,1fr))!important;
  column-gap:0!important;
  row-gap:8px!important;
  width:100%!important;
  max-width:100%!important;
  box-sizing:border-box!important;
  align-items:center!important;
  justify-items:center!important;
}

.mbw-weekdays span{
  width:100%!important;
  min-width:0!important;
  padding:8px 0!important;
  text-align:center!important;
  box-sizing:border-box!important;
}

.mbw-calendar .mbw-day{
  width:42px!important;
  height:42px!important;
  min-width:42px!important;
  min-height:42px!important;
  max-width:42px!important;
  max-height:42px!important;
  aspect-ratio:auto!important;
  padding:0!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  justify-self:center!important;
  line-height:1!important;
  box-sizing:border-box!important;
  border-radius:50%!important;
}

/* Keep disabled/unavailable line centered inside its date cell */
.mbw-calendar .mbw-day.is-unavailable::after{
  left:50%!important;
  top:50%!important;
  width:19px!important;
  transform:translate(-50%,-50%)!important;
}

/* Prevent any theme/button CSS from stretching calendar buttons */
.mbw-calendar button.mbw-day{
  flex:none!important;
}

/* Comfortable spacing above calendar without pushing columns out of line */
.mbw-calendar-head{
  margin-bottom:18px!important;
}

/* Mobile */
@media(max-width:620px){
  .mbw-left-inner,
  .mbw-right-inner{
    padding:35px 20px!important;
  }

  .mbw-calendar .mbw-day{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    min-height:36px!important;
    max-width:36px!important;
    max-height:36px!important;
  }
}

/* V2.8 conditional council field */
.mbw-conditional-council[hidden],
.mbw-forms-fee-row[hidden]{
  display:none!important;
}
.mbw-conditional-council{
  animation:mbwConditionalReveal .18s ease;
}
@keyframes mbwConditionalReveal{
  from{opacity:0;transform:translateY(-4px)}
  to{opacity:1;transform:translateY(0)}
}

/* V2.9 post-payment confirmation */
.mbw-confirmation-card{
  max-width:850px;
  margin:35px auto;
  padding:35px;
  background:#fff;
  border:1px solid #dbe2ec;
  border-radius:8px;
  box-shadow:0 18px 45px rgba(28,55,90,.10);
  color:#294a78;
  box-sizing:border-box;
}
.mbw-confirmation-check{
  width:54px;
  height:54px;
  margin:0 auto 14px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#eaf7ef;
  color:#157347;
  font-size:30px;
  font-weight:700;
}
.mbw-confirmation-card h2{
  text-align:center;
  margin:0 0 10px;
  color:#294a78;
}
.mbw-confirmation-reference{
  text-align:center;
  margin:0 0 28px;
  padding:10px 14px;
  background:#f5f7fb;
  border-radius:5px;
}
.mbw-confirmation-message{
  line-height:1.65;
  white-space:normal;
}
@media(max-width:620px){
  .mbw-confirmation-card{padding:24px 18px;margin:20px auto}
}

/* V2.13 Terms & Conditions */
.mbw-terms-wrap{
  margin:20px 0 4px;
  padding:14px 16px;
  border:1px solid #dbe2ec;
  border-radius:5px;
  background:#f8fafc;
}
.mbw-terms-label{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:0;
  color:#294a78;
  font-size:14px;
  line-height:1.5;
  cursor:pointer;
}
.mbw-terms-label input[type="checkbox"]{
  width:18px!important;
  height:18px!important;
  min-height:18px!important;
  min-width:18px!important;
  margin:2px 0 0!important;
  padding:0!important;
  flex:0 0 18px;
}
.mbw-terms-label a{
  color:var(--mbw-primary);
  text-decoration:underline;
  font-weight:700;
}
