/* Stridewell booking widgets: calendar, free-time buttons, summary, confirmation, manage booking. */
.sw-bk{--ink:#0E3B3A;--teal:#127466;--lime:#D7F36B;--limesoft:#F3F9DD;--mint:#E3F1EC;--line:#D6E5E0;--muted:#4C6461}
.sw-bk .sw-native-time{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap}
.sw-bk .sw-has-slots{position:relative}
.sw-bk .sw-date-input{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;opacity:0;pointer-events:none}
.sw-bk .elementor-field-group-date{position:relative}
.sw-cal .flatpickr-calendar.inline{width:100%!important;max-width:none;box-shadow:none;border:1px solid var(--line);border-radius:18px;background:#fff;padding:10px 8px 12px;font-family:inherit;margin-top:2px}
.sw-cal .flatpickr-innerContainer,.sw-cal .flatpickr-rContainer,.sw-cal .flatpickr-days,.sw-cal .dayContainer{width:100%!important;max-width:none!important;min-width:0!important}
.sw-cal .flatpickr-months{padding:4px 4px 8px}
.sw-cal .flatpickr-months .flatpickr-month{height:40px;color:var(--ink);fill:var(--ink)}
.sw-cal .flatpickr-current-month{font-size:17px;font-weight:700;padding-top:8px}
.sw-cal .flatpickr-current-month .numInputWrapper{width:7ch}
.sw-cal .flatpickr-months .flatpickr-prev-month,.sw-cal .flatpickr-months .flatpickr-next-month{top:8px;height:40px;width:40px;padding:12px;border-radius:50%}
.sw-cal .flatpickr-months .flatpickr-prev-month:hover,.sw-cal .flatpickr-months .flatpickr-next-month:hover{background:var(--mint)}
.sw-cal .flatpickr-months .flatpickr-prev-month:hover svg,.sw-cal .flatpickr-months .flatpickr-next-month:hover svg{fill:var(--ink)}
.sw-cal span.flatpickr-weekday{color:var(--muted);font-weight:600;font-size:12.5px}
.sw-cal .dayContainer{justify-content:space-between}
.sw-cal .flatpickr-day{max-width:none;flex:0 0 13.2%;height:44px;line-height:42px;border-radius:12px;color:var(--ink);font-weight:600;margin:2px 0}
.sw-cal .flatpickr-day:hover{background:var(--mint);border-color:var(--mint)}
.sw-cal .flatpickr-day.today{border-color:var(--teal)}
.sw-cal .flatpickr-day.selected,.sw-cal .flatpickr-day.selected:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.sw-cal .flatpickr-day.flatpickr-disabled,.sw-cal .flatpickr-day.flatpickr-disabled:hover{color:#A9BAB6;background:transparent;border-color:transparent;text-decoration:line-through;font-weight:400}
.sw-cal .flatpickr-day.prevMonthDay,.sw-cal .flatpickr-day.nextMonthDay{color:#B9C8C4;font-weight:400}
.sw-slot-msg{margin:4px 0 0;font-size:14.5px;color:var(--muted)}
.sw-slots{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.sw-slots:empty{display:none}
.sw-slot-g{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.sw-slot-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.sw-bk .sw-slot{appearance:none;font:inherit;font-size:15px;font-weight:600;min-height:46px;border-radius:12px;border:1.5px solid var(--line);background:#fff;color:var(--ink);cursor:pointer;padding:8px;transition:background-color .15s,border-color .15s,transform .15s;line-height:1.2}
.sw-bk .sw-slot:hover{border-color:var(--ink);background:var(--limesoft);color:var(--ink)}
.sw-bk .sw-slot.is-on,.sw-bk .sw-slot.is-on:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.sw-bk .sw-slot:focus-visible{outline:3px solid var(--teal);outline-offset:2px}
.sw-loading .sw-slot-msg::after{content:"";display:inline-block;width:12px;height:12px;margin-left:8px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--ink);animation:swspin .8s linear infinite;vertical-align:-1px}
@keyframes swspin{to{transform:rotate(360deg)}}
.sw-summary{width:100%;margin:2px 8px 12px;padding:16px 18px;border-radius:16px;background:var(--limesoft);border:1.5px solid #CFE88A;display:flex;flex-direction:column;gap:2px;color:var(--ink);font-size:15px}
.sw-summary[hidden]{display:none}
.sw-summary .sw-sum-k{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.sw-summary strong{font-size:17px}
.sw-done{border-radius:20px;background:var(--limesoft);border:1.5px solid #CFE88A;padding:clamp(22px,4vw,34px);color:var(--ink);outline:none}
.sw-done p{margin:0 0 8px}
.sw-done-k{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--teal)}
.sw-done-h{margin:0 0 8px!important;font-size:30px;line-height:1.1}
.sw-done-w{font-size:18px;font-weight:600}
.sw-done-r strong{background:var(--lime);padding:2px 8px;border-radius:6px}
.sw-done-a{margin-top:16px!important}
.sw-mb-btn,a.sw-mb-btn{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:14px 24px;border-radius:999px;background:#0E3B3A;color:#fff!important;font-weight:600;font-size:16px;text-decoration:none!important;border:2px solid #0E3B3A;cursor:pointer;font-family:inherit;transition:background-color .2s}
.sw-mb-btn:hover{background:#127466;border-color:#127466}
.sw-mb-btn-line{background:transparent;color:#0E3B3A!important}
.sw-mb-btn-line:hover{background:#0E3B3A;color:#fff!important}
/* manage booking */
.sw-mb-h{margin:0 0 6px;font-size:28px;line-height:1.15;color:#0E3B3A}
.sw-mb-p{margin:0 0 14px;color:#4C6461}
.sw-mb-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px 0 8px}
.sw-mb-row p{margin:0}
.sw-mb-find label{display:block;font-weight:600;margin-bottom:8px;color:#0E3B3A}
.sw-mb-find input{width:100%;min-height:54px;border:1.5px solid #9DB4AF;border-radius:14px;padding:10px 16px;font:inherit;color:#0E3B3A;background:#fff}
.sw-mb-find input:focus{outline:none;border-color:#0E3B3A;box-shadow:0 0 0 3px #D7F36B}
.sw-mb-msg{padding:14px 18px;border-radius:14px;margin:0 0 18px;font-weight:600}
.sw-mb-ok{background:#E6F4EA;color:#1D6B3A}
.sw-mb-err{background:#FDECEA;color:#B42318}
.sw-mb-status{display:inline-block;margin:0 0 10px;padding:5px 12px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:#D7F36B;color:#0E3B3A}
.sw-mb-status.sw-st-cancelled,.sw-mb-status.sw-st-no-show{background:#FDECEA;color:#B42318}
.sw-mb-status.sw-st-completed{background:#E3F1EC}
.sw-mb-dl{margin:16px 0 22px;border:1px solid #D6E5E0;border-radius:16px;overflow:hidden}
.sw-mb-dl div{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:12px 16px;border-bottom:1px solid #EEF4F2}
.sw-mb-dl div:last-child{border-bottom:0}
.sw-mb-dl dt{color:#4C6461;margin:0}
.sw-mb-dl dd{margin:0;font-weight:600;color:#0E3B3A}
.sw-mb-actions{display:flex;flex-wrap:wrap;gap:12px 20px;align-items:center;margin:0}
.sw-mb-link{color:#127466;font-weight:600}
@media (max-width:767px){.sw-mb-row,.sw-mb-dl div{grid-template-columns:1fr}.sw-mb-dl div{gap:2px}.sw-cal .flatpickr-day{height:40px;line-height:38px}.sw-mb-btn{width:100%}}
@media (prefers-reduced-motion:reduce){.sw-loading .sw-slot-msg::after{animation:none}}
.sw-bk .elementor-field-group-date,.sw-bk .elementor-field-group-time{flex-direction:column;align-items:stretch;flex-wrap:nowrap}
.sw-bk .elementor-field-group-date > *,.sw-bk .elementor-field-group-time > *{width:100%;max-width:100%}
.sw-bk .elementor-field-group-time .sw-native-time{width:1px}
.sw-mb-btn-line,button.sw-mb-btn-line{background:transparent!important;color:#0E3B3A!important;border:2px solid #0E3B3A!important}
.sw-mb-btn-line:hover,button.sw-mb-btn-line:hover{background:#0E3B3A!important;color:#fff!important}
button.sw-mb-btn{background:#0E3B3A;border:2px solid #0E3B3A;color:#fff}
.sw-booked .elementor-message{display:none!important}
