/* v2.14.66 - clear, accessible time choices for appointment requests. */
.nl-page-booking .slots {width:100%;max-width:800px;min-height:52px;gap:16px}
.nl-page-booking .slots.nl-times-live {display:grid!important;grid-template-columns:minmax(0,1fr);gap:23px}
.nl-page-booking .slots:not(.nl-times-live) {display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.nl-page-booking .nl-time-period {min-width:0;display:grid;gap:11px}
.nl-page-booking .nl-time-period-title {display:flex;align-items:center;gap:12px;color:#6a3e56;font-size:14px;font-weight:600;letter-spacing:.01em}
.nl-page-booking .nl-time-period-title:after {content:"";height:1px;flex:1;background:#f0e0e9}
.nl-page-booking .nl-time-options {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.nl-page-booking .slots .slot {appearance:none!important;-webkit-appearance:none!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative;box-sizing:border-box;min-width:0;width:100%!important;min-height:54px!important;margin:0!important;padding:13px 17px!important;border:1px solid #e7c5d7!important;border-radius:12px!important;background:#fff!important;color:#6d294c!important;font-family:inherit;font-size:15px!important;font-weight:600!important;line-height:1.35!important;letter-spacing:0!important;white-space:nowrap;cursor:pointer!important;opacity:1!important;text-shadow:none!important;-webkit-text-fill-color:currentColor!important;box-shadow:0 2px 5px rgba(99,39,68,.035)!important;transition:background .15s,border-color .15s,box-shadow .15s,transform .15s}
.nl-page-booking .slots .slot:hover {background:#fff4f9!important;border-color:#a94b7c!important;box-shadow:0 3px 10px rgba(124,42,82,.1)!important;transform:translateY(-1px)}
.nl-page-booking .slots .slot[aria-pressed="true"] {background:#8e285e!important;border-color:#8e285e!important;color:#fff!important;-webkit-text-fill-color:#fff!important;box-shadow:0 3px 12px rgba(142,40,94,.24)!important}
.nl-page-booking .slots .slot[aria-pressed="true"]:after {content:"✓";position:absolute;top:5px;right:8px;font-size:12px;color:#fff;font-weight:700}
.nl-page-booking .slots .slot[aria-pressed="true"]:hover {background:#7b1e4e!important}
.nl-page-booking .slots .slot:focus-visible {outline:3px solid #b93c83!important;outline-offset:3px}
.nl-page-booking .slots .slot:disabled {opacity:.5!important;cursor:not-allowed!important;transform:none!important}
.nl-page-booking .nl61-no-times {grid-column:1/-1;margin:0;padding:14px 16px;border:1px dashed #dfb9cd;border-radius:12px;background:#fff8fc;color:#794966;font-size:14px;line-height:1.55;width:100%}
@media (max-width:900px){.nl-page-booking .nl-time-options,.nl-page-booking .slots:not(.nl-times-live){grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:580px){.nl-page-booking .nl-time-options,.nl-page-booking .slots:not(.nl-times-live){grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.nl-page-booking .slots .slot{min-height:52px!important;padding:12px 10px!important;font-size:14px!important}}
@media (prefers-reduced-motion:reduce){.nl-page-booking .slots .slot{transition:none!important}.nl-page-booking .slots .slot:hover{transform:none}}
