.lca-booking{max-width:920px;margin:0 auto;font-family:inherit;color:#111}.lca-booking h2{font-family:Georgia,serif;font-size:34px;margin:0 0 24px}.lca-card{border:1px solid #cfcfcf;padding:42px 34px 20px;background:#fff}.lca-progress{display:none!important}.lca-progress{display:flex;align-items:center;justify-content:center;gap:14px;margin:0 0 50px;padding:0;list-style:none}.lca-progress li{width:16px;height:16px;border-radius:50%;background:#d7d7d7;color:transparent;position:relative}.lca-progress li:not(:last-child)::after{content:"";position:absolute;left:24px;top:7px;width:170px;height:2px;background:#d7d7d7}.lca-progress li.is-current,.lca-progress li.is-complete{background:#5ba143}.lca-progress li.is-complete{color:#fff;font-size:12px;text-align:center;line-height:16px}.lca-progress li.is-complete::before{content:"✓"}.lca-progress li.is-complete::after,.lca-progress li.is-current::after{background:#5ba143}.lca-step{display:none}.lca-step.is-active{display:block}.lca-step-one-grid{display:grid;grid-template-columns:1fr 1.15fr 1fr;gap:28px}.lca-step h3,.lca-booking label{font-weight:700;font-size:16px}.lca-option,.lca-actions button,.lca-booking input,.lca-booking select,.lca-booking textarea{border:1px solid #d4d4d4;border-radius:4px;background:#fff;font:inherit}.lca-option{display:block;width:100%;padding:12px 10px;margin:0 0 14px;text-align:center;cursor:pointer}.lca-services{display:grid;grid-template-columns:1fr;gap:0}.lca-services .lca-option{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center}.lca-option.is-selected{background:#6d99d3;color:#fff;border-color:#6d99d3}.lca-calendar{box-shadow:0 2px 14px rgba(0,0,0,.08);padding:14px;margin-top:12px}.lca-calendar-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.lca-month-nav{border:0;background:transparent;font-size:24px;cursor:pointer}.lca-weekdays,.lca-days{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;text-align:center}.lca-weekdays{font-size:11px;font-weight:700;color:#555;margin-bottom:8px}.lca-day{height:30px;border:2px solid transparent;border-radius:50%;background:transparent;cursor:pointer}.lca-day[disabled]{color:#cfcfcf;cursor:not-allowed}.lca-day.is-available{border-color:#2a9b11;color:#111}.lca-day.is-selected{background:#2a9b11;color:#fff}.lca-day.is-booked{border-color:#e22;color:#111}.lca-key{font-size:14px;margin-top:24px}.lca-key span{display:inline-block;border:2px solid;border-radius:50%;padding:7px 8px;margin:0 10px}.lca-key .available{border-color:#2a9b11}.lca-key .booked{border-color:#e22}.lca-times .lca-option{padding:12px}.lca-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px 22px}.lca-booking label{display:block;margin-bottom:22px}.lca-booking input,.lca-booking select,.lca-booking textarea{width:100%;padding:13px;margin-top:10px}.lca-booking small{display:block;font-weight:400;margin-top:12px}.lca-note{font-size:14px;margin-top:-6px}.lca-review-row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:28px}.lca-terms-copy{text-align:center;line-height:1.8}.lca-checkbox{font-weight:400!important;text-align:center}.lca-checkbox input{width:auto;margin-right:8px}.lca-actions{border-top:1px solid #ddd;margin-top:32px;padding-top:20px;display:flex;justify-content:flex-end;gap:12px}.lca-actions button{min-width:120px;padding:12px 18px;cursor:pointer}.lca-error{color:#b00020;font-weight:700}.lca-success{text-align:center;padding:45px 0}@media(max-width:800px){.lca-step-one-grid,.lca-fields-grid,.lca-review-row{grid-template-columns:1fr}.lca-progress li:not(:last-child)::after{width:80px}.lca-card{padding:28px 18px}}

.lca-progress{display:none!important}
.lca-day.is-full,.lca-day.is-booked{border-color:#e22!important;color:#e22!important;background:#fff!important;cursor:not-allowed!important;opacity:1!important}.lca-option.is-booked,.lca-option:disabled{background:#f3f3f3!important;color:#999!important;border-color:#e22!important;cursor:not-allowed!important;text-decoration:line-through}.lca-day.is-selected:not(.is-full){background:#2a9b11!important;color:#fff!important}

.lca-month-nav:disabled,.lca-month-nav.is-disabled{opacity:.35;cursor:not-allowed}.lca-services .lca-option{box-sizing:border-box;width:100%!important;min-height:48px;display:flex;align-items:center;justify-content:center}

/* v1.7 Divi override: force every service option button to use the same full width. */
.lca-booking .lca-services,
.et_pb_module .lca-booking .lca-services,
.et_pb_section .lca-booking .lca-services {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.lca-booking .lca-services .lca-option,
.lca-booking .lca-services button.lca-option,
.et_pb_module .lca-booking .lca-services .lca-option,
.et_pb_module .lca-booking .lca-services button.lca-option,
.et_pb_section .lca-booking .lca-services .lca-option,
.et_pb_section .lca-booking .lca-services button.lca-option {
    display: flex !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    height: 58px !important;
    min-height: 58px !important;
    padding: 0 10px !important;
    margin: 0 0 14px 0 !important;
    box-sizing: border-box !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    float: none !important;
    clear: both !important;
    white-space: normal !important;
}

/* v1.8 hard override for the legacy half-width service button rules. */
.lca-booking .lca-services .lca-option:nth-last-child(3),
.lca-booking .lca-services .lca-option:nth-last-child(2),
.lca-booking .lca-services .lca-option:nth-last-child(3) button,
.lca-booking .lca-services .lca-option:nth-last-child(2) button,
.lca-services .lca-option:nth-last-child(3),
.lca-services .lca-option:nth-last-child(2) {
    display: flex !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    float: none !important;
    clear: both !important;
    box-sizing: border-box !important;
}

.lca-booking .lca-services .lca-option:nth-last-child(3),
.lca-booking .lca-services .lca-option:nth-last-child(2) {
    height: 58px !important;
    min-height: 58px !important;
    align-items: center !important;
    justify-content: center !important;
}

/* v1.9 progress bar using Hoptimistic logo for reached stages. */
.lca-booking .lca-progress{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
    margin:0 0 44px!important;
    padding:0!important;
    list-style:none!important;
    width:100%!important;
}
.lca-booking .lca-progress li{
    width:24px!important;
    height:24px!important;
    border-radius:50%!important;
    border:2px solid #d7d7d7!important;
    background:#fff!important;
    position:relative!important;
    color:transparent!important;
    box-sizing:border-box!important;
    flex:0 0 24px!important;
    overflow:visible!important;
}
.lca-booking .lca-progress li span{
    display:none!important;
}
.lca-booking .lca-progress li:not(:last-child){
    margin-right:160px!important;
}
.lca-booking .lca-progress li:not(:last-child)::after{
    content:""!important;
    position:absolute!important;
    left:28px!important;
    top:9px!important;
    width:150px!important;
    height:2px!important;
    background:#d7d7d7!important;
}
.lca-booking .lca-progress li.is-current,
.lca-booking .lca-progress li.is-complete{
    border-color:#5ba143!important;
    background:#fff url('hoptimistic-progress-logo.png') center center / cover no-repeat!important;
}
.lca-booking .lca-progress li.is-current::after,
.lca-booking .lca-progress li.is-complete::after{
    background:#5ba143!important;
}
.lca-booking .lca-progress li.is-upcoming{
    border-color:#d7d7d7!important;
    background:#fff!important;
}
@media(max-width:800px){
    .lca-booking .lca-progress li:not(:last-child){margin-right:72px!important;}
    .lca-booking .lca-progress li:not(:last-child)::after{width:42px!important;}
}


/* v1.10 larger 75px progress icons */
.lca-booking .lca-progress li{
    width:55px !important;
    height:55px !important;
    flex:0 0 75px !important;
    border-radius:50% !important;
}
.lca-booking .lca-progress li:not(:last-child){
    margin-right:120px !important;
}
.lca-booking .lca-progress li:not(:last-child)::after{
    left:79px !important;
    top:36px !important;
    width:110px !important;
}
.lca-booking .lca-progress li.is-current,
.lca-booking .lca-progress li.is-complete{
    background:#fff url('hoptimistic-progress-logo.png') center center/contain no-repeat !important;
}


/* v1.14 definitive progress bar reset and logo-circle fix */
.hoptimistic-booking.lca-booking .lca-progress,
.lca-booking .lca-progress{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:0 !important;
  margin:0 0 44px 0 !important;
  padding:0 !important;
  list-style:none !important;
  width:100% !important;
  overflow:visible !important;
}
.hoptimistic-booking.lca-booking .lca-progress > li,
.lca-booking .lca-progress > li{
  width:55px !important;
  height:55px !important;
  min-width:55px !important;
  min-height:55px !important;
  max-width:55px !important;
  max-height:55px !important;
  flex:0 0 55px !important;
  aspect-ratio:1/1 !important;
  margin:0 110px 0 0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  position:relative !important;
  box-sizing:border-box !important;
  overflow:visible !important;
  color:transparent !important;
  line-height:0 !important;
}
.hoptimistic-booking.lca-booking .lca-progress > li:last-child,
.lca-booking .lca-progress > li:last-child{
  margin-right:0 !important;
}
.hoptimistic-booking.lca-booking .lca-progress > li > span,
.lca-booking .lca-progress > li > span{
  display:none !important;
}
.hoptimistic-booking.lca-booking .lca-progress > li::before,
.lca-booking .lca-progress > li::before{
  content:"" !important;
  position:absolute !important;
  inset:0 !important;
  width:55px !important;
  height:55px !important;
  min-width:55px !important;
  min-height:55px !important;
  max-width:55px !important;
  max-height:55px !important;
  aspect-ratio:1/1 !important;
  border-radius:50% !important;
  border:2px solid #d7d7d7 !important;
  background:#fff !important;
  box-sizing:border-box !important;
  z-index:2 !important;
}
.hoptimistic-booking.lca-booking .lca-progress > li.is-current::before,
.hoptimistic-booking.lca-booking .lca-progress > li.is-complete::before,
.lca-booking .lca-progress > li.is-current::before,
.lca-booking .lca-progress > li.is-complete::before{
  border-color:#5ba143 !important;
  background:#fff url('hoptimistic-progress-logo.png') center center / 42px 42px no-repeat !important;
}
.hoptimistic-booking.lca-booking .lca-progress > li:not(:last-child)::after,
.lca-booking .lca-progress > li:not(:last-child)::after{
  content:"" !important;
  position:absolute !important;
  left:65px !important;
  top:27px !important;
  width:95px !important;
  height:2px !important;
  border:0 !important;
  border-radius:0 !important;
  background:#d7d7d7 !important;
  z-index:1 !important;
}
.hoptimistic-booking.lca-booking .lca-progress > li.is-current:not(:last-child)::after,
.hoptimistic-booking.lca-booking .lca-progress > li.is-complete:not(:last-child)::after,
.lca-booking .lca-progress > li.is-current:not(:last-child)::after,
.lca-booking .lca-progress > li.is-complete:not(:last-child)::after{
  background:#5ba143 !important;
}
.hoptimistic-booking.lca-booking .lca-progress > li.is-upcoming::before,
.lca-booking .lca-progress > li.is-upcoming::before{
  border-color:#d7d7d7 !important;
  background:#fff !important;
}
@media(max-width:800px){
  .hoptimistic-booking.lca-booking .lca-progress > li,
  .lca-booking .lca-progress > li{
    width:44px !important;height:44px !important;min-width:44px !important;min-height:44px !important;max-width:44px !important;max-height:44px !important;flex-basis:44px !important;margin-right:58px !important;
  }
  .hoptimistic-booking.lca-booking .lca-progress > li::before,
  .lca-booking .lca-progress > li::before{
    width:44px !important;height:44px !important;min-width:44px !important;min-height:44px !important;max-width:44px !important;max-height:44px !important;
  }
  .hoptimistic-booking.lca-booking .lca-progress > li.is-current::before,
  .hoptimistic-booking.lca-booking .lca-progress > li.is-complete::before,
  .lca-booking .lca-progress > li.is-current::before,
  .lca-booking .lca-progress > li.is-complete::before{
    background-size:34px 34px !important;
  }
  .hoptimistic-booking.lca-booking .lca-progress > li:not(:last-child)::after,
  .lca-booking .lca-progress > li:not(:last-child)::after{
    left:52px !important;top:22px !important;width:48px !important;
  }
}


/* v1.16 confirmed booking logo replacement */
.lca-booking.lca-booking-confirmed .lca-progress {
    display: none !important;
}

.lca-confirmation-logo {
    width: 110px !important;
    height: 110px !important;
    margin: 0 auto 28px auto !important;
    background: #ffffff url('hoptimistic-progress-logo.png') center center / contain no-repeat !important;
    border-radius: 50% !important;
}

.lca-confirmed-step {
    text-align: center !important;
}


/* v1.17 confirmed booking logo - robust visible image */
.lca-booking.lca-booking-confirmed .lca-progress,
.lca-booking .lca-step[data-step="4"].is-active ~ .lca-progress {
    display: none !important;
}

.lca-booking .lca-confirmed-step.is-active {
    text-align: center !important;
}

.lca-booking .lca-confirmation-logo-wrap {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 100% !important;
    margin: 0 auto 28px auto !important;
    padding: 0 !important;
}

.lca-booking .lca-confirmation-logo-img {
    display: block !important;
    width: 110px !important;
    height: 110px !important;
    max-width: 110px !important;
    min-width: 110px !important;
    max-height: 110px !important;
    min-height: 110px !important;
    object-fit: contain !important;
    border-radius: 50% !important;
    margin: 0 auto !important;
}
