.nlb-booker{max-width:820px;margin:20px auto;font-family:inherit;color:inherit}.nlb-step{font-size:1.15rem;font-weight:700;margin:28px 0 14px;display:flex;align-items:center;gap:10px}.nlb-step span{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#527b72;color:#fff;font-size:.9rem}.nlb-label{display:block;font-weight:600;margin-bottom:10px}.nlb-services{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.nlb-service,.nlb-slot{background:#fff;border:1px solid #d8dfdc;border-radius:8px;padding:15px;text-align:left;cursor:pointer;color:inherit}.nlb-service:hover,.nlb-slot:hover,.nlb-service.is-selected,.nlb-slot.is-selected{border-color:#527b72;box-shadow:0 0 0 2px rgba(82,123,114,.12)}.nlb-service strong,.nlb-service small{display:block}.nlb-service small{margin-top:5px;opacity:.72}.nlb-date{width:100%;max-width:320px;padding:12px;border:1px solid #cfd8d4;border-radius:6px;font:inherit}.nlb-slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:18px}.nlb-slot strong,.nlb-slot span{display:block}.nlb-slot strong{font-size:1.08rem}.nlb-slot span{font-size:.86rem;margin-top:3px;opacity:.75}.nlb-muted,.nlb-no-slots{grid-column:1/-1;padding:14px;background:#f5f7f6;border-radius:6px}.nlb-selected{margin:25px 0 10px;padding:16px;border-left:4px solid #527b72;background:#f5f7f6}.nlb-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.nlb-fields label{font-weight:600}.nlb-fields input,.nlb-fields textarea{display:block;width:100%;box-sizing:border-box;margin-top:6px;padding:11px;border:1px solid #cfd8d4;border-radius:6px;font:inherit}.nlb-fields label:last-child{grid-column:1/-1}.nlb-submit{margin-top:18px;border:0;border-radius:6px;padding:13px 22px;background:#527b72;color:#fff;font:inherit;font-weight:700;cursor:pointer}.nlb-success{padding:18px;border-left:4px solid #527b72;background:#f3f7f5}.nlb-picker[hidden],.nlb-details[hidden]{display:none!important}@media(max-width:600px){.nlb-fields{grid-template-columns:1fr}.nlb-fields label:last-child{grid-column:auto}}
.nlb-date-display{max-width:220px;padding:12px 14px;font-size:16px;letter-spacing:.03em}
.nlb-client-calendar{max-width:520px;border:1px solid #d7dfdc;border-radius:10px;padding:12px;background:#fff;margin:8px 0 10px}.nlb-client-cal-head{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;text-align:center;margin-bottom:10px}.nlb-client-cal-head button{border:1px solid #ccd7d3;background:#f7faf9;border-radius:7px;font-size:24px;line-height:34px;cursor:pointer}.nlb-client-weekdays,.nlb-client-days{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}.nlb-client-weekdays span{text-align:center;font-size:12px;font-weight:600;color:#5f6f69;padding:4px}.nlb-cal-day{aspect-ratio:1/1;border:1px solid #d9e2df;background:#fff;border-radius:7px;cursor:pointer;font:inherit}.nlb-cal-day:hover:not(:disabled){background:#eef6f3}.nlb-cal-day.is-today{font-weight:700;border-width:2px}.nlb-cal-day.is-selected{background:#dfeee9;font-weight:700;box-shadow:inset 0 0 0 2px #6d9f97}.nlb-cal-day:disabled{opacity:.3;cursor:not-allowed}.nlb-chosen-date{font-weight:600;margin:8px 0}.nlb-cal-empty{display:block}
.nlb-service-info{margin:16px 0 4px;padding:16px 18px;border:1px solid #d8e4e1;border-radius:8px;background:#f7fbfa;line-height:1.55;white-space:pre-line}
.nlb-cal-day.is-unavailable{opacity:.35;cursor:not-allowed;text-decoration:none}
/* Phase 1.8.3: SimplyBook-style service cards */
.nlb-service{display:block;width:100%;}
.nlb-service-title{display:block;font-size:1.05rem;font-weight:700;line-height:1.3;margin-bottom:7px;}
.nlb-service-description{display:block;font-size:.92rem;line-height:1.45;font-weight:400;opacity:.82;margin:0 0 9px;white-space:normal;}
.nlb-service-meta{display:block;font-size:.86rem;opacity:.68;margin-top:3px;}
.nlb-service-price{display:block;margin-top:5px;font-size:1rem;font-weight:700;color:#527b72;}

/* Phase 1.8.4: compact service cards with Read more and clear Select action */
.nlb-services{align-items:stretch}
.nlb-service{display:flex;flex-direction:column;min-height:250px;padding:0!important;overflow:hidden;background:#fff;border:1px solid #d8dfdc;border-radius:8px;text-align:left;color:inherit;cursor:default}
.nlb-service-content{display:flex;flex-direction:column;align-items:flex-start;flex:1;padding:18px 18px 14px}
.nlb-service-title{margin:0 0 8px}
.nlb-service-description{display:-webkit-box!important;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;margin:0 0 3px!important;max-height:4.35em}
.nlb-service.is-expanded .nlb-service-description{display:block!important;max-height:none;overflow:visible}
.nlb-read-more{appearance:none;border:0;background:transparent;padding:2px 0 9px;color:#246b8e;font:inherit;font-size:.88rem;font-weight:700;text-decoration:underline;cursor:pointer}
.nlb-service-meta{margin-top:auto!important;padding-top:8px}
.nlb-service-price{color:#527b72!important}
.nlb-service-select{display:block;width:100%;margin:0;border:0;border-radius:0;padding:12px 14px;background:#246b8e;color:#fff;font:inherit;font-weight:700;letter-spacing:.04em;text-align:center;cursor:pointer}
.nlb-service-select:hover,.nlb-service-select:focus{filter:brightness(.92)}
.nlb-service.is-selected{border-color:#246b8e;box-shadow:0 0 0 2px rgba(36,107,142,.14)}
@media(max-width:600px){.nlb-service{min-height:220px}}

/* Phase 1.8.5: coloured therapy cards, rich Read more modal, site-blue actions */
.nlb-service{background:#ff9957!important;border-color:#ee8c4f!important;color:#fff!important;min-height:250px}
.nlb-service-title,.nlb-service-description,.nlb-service-meta{color:#fff!important}
.nlb-service-description{opacity:.96!important}
.nlb-read-more{color:#fff!important;text-decoration:underline!important}
.nlb-service-bottom{margin-top:auto;width:100%;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;padding-top:8px}
.nlb-service-meta{margin:0!important;padding:0!important}
.nlb-service-price{color:#075f8f!important;background:#fff;border-radius:4px;padding:2px 7px;margin:0!important;font-weight:800}
.nlb-service-select,.nlb-modal-select{background:#075f8f!important;color:#fff!important;border:0!important}
.nlb-service-select:hover,.nlb-service-select:focus,.nlb-modal-select:hover,.nlb-modal-select:focus{background:#064f77!important;filter:none!important}
.nlb-service-modal[hidden]{display:none!important}.nlb-service-modal{position:fixed;inset:0;z-index:999999;background:rgba(0,0,0,.5);display:grid;place-items:center;padding:20px}.nlb-service-modal-panel{position:relative;width:min(620px,calc(100vw - 40px));max-height:82vh;overflow:auto;background:#fff;color:#4a4a4a;border-radius:8px;padding:28px 28px 24px;box-shadow:0 18px 60px rgba(0,0,0,.28)}.nlb-modal-close{position:absolute;right:15px;top:10px;border:0;background:transparent;font-size:34px;line-height:1;color:#555;cursor:pointer}.nlb-service-modal h3{margin:0 38px 14px 0;font-size:1.3rem;color:#3f3f3f}.nlb-modal-body{line-height:1.6}.nlb-modal-body p{margin:0 0 14px}.nlb-modal-body ul,.nlb-modal-body ol{margin:8px 0 16px 22px;padding:0}.nlb-modal-body li{margin:5px 0}.nlb-modal-body strong{font-weight:700}.nlb-modal-footer{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #e4e4e4;margin-top:20px;padding-top:14px}.nlb-modal-price{color:#075f8f;font-size:1.1rem}.nlb-modal-select{display:block;width:100%;margin-top:16px;padding:13px 16px;font:inherit;font-weight:700;cursor:pointer;border-radius:4px}

/* Phase 1.8.6: stronger therapy titles */
.nlb-service-title{font-size:1.28rem!important;line-height:1.22!important;font-weight:800!important;color:#111!important;margin:0 0 10px!important}
.nlb-service-modal h3{font-size:1.55rem!important;line-height:1.25!important;font-weight:800!important;color:#111!important}

/* Phase 1.8.7: Natural Life Therapies navy/orange service palette */
.nlb-service{background:#123f63!important;border-color:#123f63!important;color:#fff!important}
.nlb-service-title{color:#ff9957!important}
.nlb-service-description,.nlb-service-meta{color:#fff!important}
.nlb-read-more{color:#ff9957!important}
.nlb-service-price{color:#123f63!important;background:#ff9957!important}
.nlb-service-select,.nlb-modal-select{background:#ff9957!important;color:#123f63!important}
.nlb-service-select:hover,.nlb-service-select:focus,.nlb-modal-select:hover,.nlb-modal-select:focus{background:#f28b49!important;color:#123f63!important;filter:none!important}
.nlb-service.is-selected{border-color:#ff9957!important;box-shadow:0 0 0 3px rgba(255,153,87,.28)!important}
.nlb-service-modal h3{color:#ff9957!important}
.nlb-modal-price{color:#ff9957!important}

/* Phase 1.8.9: subtle Read more text link */
.nlb-read-more{
  display:inline-block!important;
  width:auto!important;
  min-width:0!important;
  align-self:flex-start!important;
  margin:2px 0 8px!important;
  padding:0!important;
  background:transparent!important;
  background-color:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
  color:#ff9957!important;
  font-size:.78rem!important;
  line-height:1.3!important;
  font-weight:500!important;
  letter-spacing:0!important;
  text-transform:none!important;
  text-decoration:underline!important;
  cursor:pointer!important;
}
.nlb-read-more:hover,.nlb-read-more:focus{
  background:transparent!important;
  background-color:transparent!important;
  color:#ffb27f!important;
  box-shadow:none!important;
  text-decoration:underline!important;
}


/* Phase 1.8.10: preserve paragraph/line breaks in compact service preview */
.nlb-service-description{
  display:block!important;
  max-height:6.1em!important;
  overflow:hidden!important;
  -webkit-line-clamp:unset!important;
  line-height:1.45!important;
  margin:0 0 3px!important;
}
.nlb-service-description p{margin:0 0 .65em!important;color:inherit!important;}
.nlb-service-description p:last-child{margin-bottom:0!important;}
.nlb-service-description br{display:block!important;content:"";}

/* Phase 2.3: make front-end availability unmistakable despite theme button styles. */
.nlb-booker .nlb-client-days .nlb-cal-day:not(:disabled){background:#ff9954 !important;color:#fff !important;border-color:#f28b45 !important;opacity:1 !important;}
.nlb-booker .nlb-client-days .nlb-cal-day:not(:disabled):hover{background:#f28b45 !important;}
.nlb-booker .nlb-client-days .nlb-cal-day:disabled,
.nlb-booker .nlb-client-days .nlb-cal-day.is-unavailable,
.nlb-booker .nlb-client-days .nlb-cal-day.is-past{background:#f3f3f3 !important;color:#9a9a9a !important;border-color:#e1e1e1 !important;opacity:1 !important;box-shadow:none !important;}
.nlb-booker .nlb-client-days .nlb-cal-day.is-selected{background:#174b70 !important;color:#fff !important;border-color:#174b70 !important;box-shadow:inset 0 0 0 2px #174b70 !important;}

/* Phase 2.4: keep weekday headings and date cells on exactly the same 7-column grid.
   Some WordPress themes impose button min-width/padding rules which made the date
   buttons overflow their grid tracks and visually appear under the wrong weekday. */
.nlb-booker .nlb-client-calendar{box-sizing:border-box;width:100%;max-width:520px;overflow:hidden}
.nlb-booker .nlb-client-weekdays,
.nlb-booker .nlb-client-days{width:100%;grid-template-columns:repeat(7,minmax(0,1fr));box-sizing:border-box}
.nlb-booker .nlb-client-weekdays span,
.nlb-booker .nlb-client-days > *{min-width:0;box-sizing:border-box}
.nlb-booker .nlb-client-days .nlb-cal-day{width:100% !important;min-width:0 !important;max-width:none !important;padding:0 !important;margin:0 !important;box-sizing:border-box !important}


/* Phase 2.5: weekday labels live inside the SAME grid as the date cells.
   This prevents theme CSS from giving the heading row and date row different widths. */
.nlb-booker .nlb-client-weekdays{display:none!important}
.nlb-booker .nlb-client-days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:5px!important;width:100%!important}
.nlb-booker .nlb-cal-inline-weekday{display:block!important;text-align:center!important;font-size:12px!important;font-weight:600!important;color:#5f6f69!important;padding:4px 0!important;min-width:0!important;box-sizing:border-box!important}
.nlb-booker .nlb-client-days .nlb-cal-empty{min-width:0!important}


/* Phase 2.6: correct front-end wrapper target and compact appointment time buttons. */
.nlb-booker .nlb-client-calendar{box-sizing:border-box!important;width:100%!important;max-width:520px!important;overflow:hidden!important}
.nlb-booker .nlb-client-weekdays{display:none!important}
.nlb-booker .nlb-client-days{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr))!important;gap:5px!important;width:100%!important;box-sizing:border-box!important}
.nlb-booker .nlb-client-days > *{min-width:0!important;max-width:100%!important;box-sizing:border-box!important}
.nlb-booker .nlb-client-days .nlb-cal-day{width:100%!important;min-width:0!important;max-width:100%!important;padding:0!important;margin:0!important;box-sizing:border-box!important}
.nlb-booker .nlb-cal-inline-weekday{display:block!important;text-align:center!important;font-size:12px!important;font-weight:600!important;color:#5f6f69!important;padding:4px 0!important;min-width:0!important;box-sizing:border-box!important}
.nlb-booker .nlb-slots{display:grid!important;grid-template-columns:repeat(auto-fill,minmax(88px,108px))!important;gap:8px!important;justify-content:start!important;margin-top:14px!important}
.nlb-booker .nlb-slot{width:100%!important;min-width:0!important;padding:8px 10px!important;border-radius:6px!important;text-align:center!important}
.nlb-booker .nlb-slot strong{font-size:.95rem!important;line-height:1.2!important}
.nlb-booker .nlb-slot span{font-size:.74rem!important;line-height:1.2!important;margin-top:2px!important}

/* Phase 3.0: clearer month navigation */
.nlb-client-cal-head .nlb-cal-prev{background:#e8f1ee!important;border-color:#9fb9b1!important;color:#365f56!important}
.nlb-client-cal-head .nlb-cal-next{background:#075f8f!important;border-color:#075f8f!important;color:#fff!important}
.nlb-client-cal-head .nlb-cal-prev:hover{background:#dceae5!important}.nlb-client-cal-head .nlb-cal-next:hover{background:#064f77!important}
