.dwl-nb-booking-form{
    --dwl-border:#e4e7ec;
    --dwl-text:#182230;
    --dwl-muted:#667085;
    --dwl-surface:#fff;
    --dwl-soft:#f8fafc;
    margin:1.75rem 0;
    color:var(--dwl-text);
}
.dwl-nb-booking-form>h3{margin:0 0 .75rem;font-size:1.25rem;line-height:1.3}

.dwl-nb-duration-picker{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(190px,240px);align-items:center;gap:1rem;margin:0 0 1rem;padding:1rem 1.05rem;border:1px solid #d7dce5;border-radius:16px;background:linear-gradient(135deg,#ffffff 0%,#f8fafc 100%);box-shadow:0 8px 24px rgba(16,24,40,.06)}
.dwl-nb-duration-picker__icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:13px;background:#111827;color:#fff;box-shadow:0 6px 16px rgba(17,24,39,.16)}
.dwl-nb-duration-picker__icon svg{width:24px;height:24px}
.dwl-nb-duration-picker__copy{min-width:0;display:flex;flex-direction:column;gap:.2rem}
.dwl-nb-duration-picker__step{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#667085}
.dwl-nb-duration-picker__copy label{font-size:1.05rem;font-weight:800;line-height:1.25;color:#182230}
.dwl-nb-duration-picker__copy small{display:block;color:#667085;line-height:1.4}
.dwl-nb-duration-picker__control{min-width:0}
.dwl-nb-duration-picker__control select{width:100%;min-height:48px;margin:0;padding:.55rem 2.5rem .55rem .8rem;border:1px solid #cfd5df;border-radius:12px;background-color:#fff;color:#182230;font:inherit;font-weight:750;box-shadow:0 1px 2px rgba(16,24,40,.04);cursor:pointer}
.dwl-nb-duration-picker__control select:hover{border-color:#98a2b3}
.dwl-nb-duration-picker__control select:focus-visible{outline:3px solid #2563eb;outline-offset:2px;border-color:#2563eb}
.dwl-nb-duration-picker__single{display:flex;align-items:center;justify-content:space-between;gap:.75rem;min-height:48px;padding:.65rem .8rem;border:1px solid #cfd5df;border-radius:12px;background:#fff}
.dwl-nb-duration-picker__single span{font-weight:650;color:#667085}

.dwl-nb-calendar-legend{display:flex;flex-wrap:wrap;gap:.55rem 1rem;margin:.25rem 0 1rem;color:var(--dwl-muted);font-size:.86rem}
.dwl-nb-calendar-legend span{display:inline-flex;align-items:center;gap:.4rem}
.dwl-nb-calendar-legend span:before{content:"";display:inline-block;width:.65rem;height:.65rem;border-radius:999px;border:1px solid currentColor}
.dwl-nb-calendar-legend .is-available:before{background:#dff7e5;color:#3f9152}
.dwl-nb-calendar-legend .is-partial:before{background:#fff1b8;color:#a87e00}
.dwl-nb-calendar-legend .is-full:before{background:#fee2e2;color:#b42318}
.dwl-nb-calendar-legend .is-blocked:before{background:#e5e7eb;color:#667085}

.dwl-nb-calendar-shell{max-width:760px;border:1px solid var(--dwl-border);border-radius:18px;background:var(--dwl-surface);box-shadow:0 8px 28px rgba(16,24,40,.07);overflow:visible;margin:1rem 0 1.15rem}
.dwl-nb-calendar-nav{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:.75rem;padding:1rem 1.1rem;border:1px solid var(--dwl-border);border-bottom:0;border-radius:18px 18px 0 0;background:linear-gradient(180deg,#fff 0%,#fbfcfd 100%)}
.dwl-nb-calendar-current{margin:0;text-align:center;text-transform:capitalize;font-size:1.05rem;font-weight:750;letter-spacing:-.01em}
.dwl-nb-calendar-nav__button{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--dwl-border);border-radius:12px;background:#fff;color:var(--dwl-text);font-size:1.3rem;line-height:1;cursor:pointer;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease,background .15s ease}
.dwl-nb-calendar-nav__button:hover:not(:disabled){transform:translateY(-1px);border-color:#aab2c0;box-shadow:0 4px 12px rgba(16,24,40,.08);background:#f9fafb}
.dwl-nb-calendar-nav__button:disabled{opacity:.3;cursor:not-allowed}
.dwl-nb-calendar-nav__button:focus-visible{outline:3px solid #2563eb;outline-offset:2px}
.dwl-nb-calendar-wrap{display:block;border:1px solid var(--dwl-border);border-top:0;border-radius:0 0 18px 18px;background:#fff;overflow:visible}
.dwl-nb-month{padding:1rem 1.1rem 1.15rem;overflow:visible}
.dwl-nb-month[hidden]{display:none!important}
.dwl-nb-weekdays,.dwl-nb-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.38rem}
.dwl-nb-weekdays{margin-bottom:.4rem}
.dwl-nb-weekdays span{text-align:center;font-size:.75rem;font-weight:700;color:var(--dwl-muted);text-transform:uppercase;letter-spacing:.04em;padding:.3rem 0}

.dwl-nb-day{position:relative;min-height:4.35rem;border:1px solid var(--dwl-border);border-radius:12px;padding:.45rem .3rem;background:#fff;color:var(--dwl-text);display:flex;align-items:center;justify-content:center;font:inherit;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease,background .15s ease;overflow:visible}
.dwl-nb-day:hover{transform:translateY(-1px);box-shadow:0 5px 14px rgba(16,24,40,.08);z-index:12}
.dwl-nb-day.is-empty{border-color:transparent;background:transparent;box-shadow:none;pointer-events:none}
.dwl-nb-day.is-available{background:#edf9f0;border-color:#9bcba5}
.dwl-nb-day.is-partial{background:#fff8d8;border-color:#dfc65c}
.dwl-nb-day.is-full{background:#fff0f0;border-color:#e2a0a0;color:#8f2525;cursor:not-allowed}
.dwl-nb-day.is-blocked{background:#f2f4f7;border-color:#d0d5dd;color:#7a8493;cursor:not-allowed}
/* A blocked Sunday is deliberately red: visually clear that it is closed/non-bookable. */
.dwl-nb-day.is-sunday.is-blocked{background:#fff0f0;border-color:#e2a0a0;color:#8f2525}
.dwl-nb-day[aria-pressed="true"]{border-color:#101828;box-shadow:0 0 0 3px rgba(16,24,40,.15);transform:translateY(-1px)}
.dwl-nb-day:focus-visible,.dwl-nb-upgrade input:focus-visible,.dwl-nb-confirm-page input:focus-visible,.dwl-nb-confirm-page textarea:focus-visible,.dwl-nb-confirm-page select:focus-visible{outline:3px solid #2563eb;outline-offset:2px;z-index:13}
.dwl-nb-day-number{font-size:1rem;font-weight:750;line-height:1.1}

/* Range preview/selection: the complete booking period is visually one block.
 * Days that are only unavailable as a START day are still green inside a valid selected range.
 * Sundays and visually closed public holidays keep their red closed-day appearance. */
.dwl-nb-day.is-range-preview:not(.is-sunday):not(.is-holiday-closed-visual){
    background:#e8f7ec!important;
    border-color:#72b982!important;
    color:#183d21!important;
    box-shadow:inset 0 0 0 1px rgba(63,145,82,.24)!important;
}
.dwl-nb-day.is-range-selected:not(.is-sunday):not(.is-holiday-closed-visual){
    background:#dff7e5!important;
    border-color:#347f45!important;
    color:#183d21!important;
    box-shadow:inset 0 0 0 1px #347f45!important;
}
.dwl-nb-day.is-range-start:not(.is-sunday):not(.is-holiday-closed-visual),
.dwl-nb-day.is-range-end:not(.is-sunday):not(.is-holiday-closed-visual){
    border-color:#2f7a40!important;
    box-shadow:inset 0 0 0 2px #2f7a40!important;
}
.dwl-nb-day.is-sunday.is-range-preview,
.dwl-nb-day.is-sunday.is-range-selected,
.dwl-nb-day.is-sunday.is-range-start,
.dwl-nb-day.is-sunday.is-range-end,
.dwl-nb-day.is-holiday-closed-visual.is-range-preview,
.dwl-nb-day.is-holiday-closed-visual.is-range-selected,
.dwl-nb-day.is-holiday-closed-visual.is-range-start,
.dwl-nb-day.is-holiday-closed-visual.is-range-end{
    background:#fff0f0!important;
    border-color:#c95151!important;
    color:#8f2525!important;
    box-shadow:inset 0 0 0 1px #c95151!important;
}
.dwl-nb-day.is-sunday.is-range-start,
.dwl-nb-day.is-sunday.is-range-end,
.dwl-nb-day.is-holiday-closed-visual.is-range-start,
.dwl-nb-day.is-holiday-closed-visual.is-range-end{
    box-shadow:inset 0 0 0 2px #b63f3f!important;
}

/* Public holidays can optionally look like closed days without changing availability logic. */
.dwl-nb-day.is-holiday-closed-visual{
    background:#fff0f0;
    border-color:#e2a0a0;
    color:#8f2525;
}
/* Qualitative availability tooltip. No capacity numbers are shown to customers. */
.dwl-nb-day-tooltip{position:absolute;left:50%;bottom:calc(100% + 9px);transform:translate(-50%,6px);width:max-content;max-width:260px;padding:.55rem .7rem;border-radius:9px;background:#101828;color:#fff;font-size:.78rem;font-weight:500;line-height:1.35;text-align:left;box-shadow:0 8px 24px rgba(16,24,40,.2);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .14s ease,transform .14s ease,visibility .14s ease;z-index:50}
.dwl-nb-day-tooltip:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border:5px solid transparent;border-top-color:#101828}
.dwl-nb-day:hover .dwl-nb-day-tooltip,.dwl-nb-day:focus-visible .dwl-nb-day-tooltip{opacity:1;visibility:visible;transform:translate(-50%,0)}
.dwl-nb-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.dwl-nb-time-options{margin:.85rem 0}.dwl-nb-time-options>p{margin-bottom:.5rem;font-weight:650}.dwl-nb-time-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.dwl-nb-time-button{border-radius:10px!important}.dwl-nb-time-button[aria-pressed="true"]{outline:3px solid currentColor;outline-offset:2px}.dwl-nb-time-button:focus-visible{outline:3px solid currentColor;outline-offset:2px}
.dwl-nb-selection{font-weight:650;margin:.75rem 0;color:var(--dwl-text)}
.dwl-nb-upgrades{border:1px solid var(--dwl-border);border-radius:14px;padding:1rem;background:#fff}.dwl-nb-upgrade{display:block;padding:.7rem 0}.dwl-nb-upgrade+ .dwl-nb-upgrade{border-top:1px solid #f0f1f3}.dwl-nb-upgrade small{display:block;margin-left:1.5rem;color:var(--dwl-muted)}

.dwl-nb-confirm-page{max-width:900px;margin:2rem auto;padding:0 1rem}.dwl-nb-confirm-inner{background:#fff}.dwl-nb-confirm-group{border:1px solid #ddd;border-radius:12px;padding:1.25rem;margin:1rem 0}.dwl-nb-document,.dwl-nb-question{margin:1rem 0}.dwl-nb-question label:not(:has(input[type=checkbox])){display:block;font-weight:600;margin-bottom:.3rem}.dwl-nb-question input[type=text],.dwl-nb-question input[type=number],.dwl-nb-question textarea,.dwl-nb-question select{width:100%;max-width:650px}.dwl-nb-confirm-actions{display:flex;justify-content:space-between;gap:1rem;margin:1.5rem 0}

@media (max-width:700px){
    .dwl-nb-duration-picker{grid-template-columns:44px minmax(0,1fr);gap:.75rem;padding:.85rem}
    .dwl-nb-duration-picker__icon{width:44px;height:44px;border-radius:12px}
    .dwl-nb-duration-picker__control{grid-column:1 / -1}
    .dwl-nb-duration-picker__control select{min-height:46px;font-size:16px}
    .dwl-nb-calendar-shell{border-radius:14px}
    .dwl-nb-calendar-nav{grid-template-columns:42px minmax(0,1fr) 42px;padding:.8rem;border-radius:14px 14px 0 0}
    .dwl-nb-calendar-wrap{border-radius:0 0 14px 14px}
    .dwl-nb-calendar-nav__button{width:40px;height:40px;border-radius:10px}
    .dwl-nb-month{padding:.75rem .6rem .85rem}
    .dwl-nb-weekdays,.dwl-nb-days{gap:.25rem}
    .dwl-nb-day{min-height:3.55rem;border-radius:9px;padding:.25rem .1rem}
    .dwl-nb-day-number{font-size:.9rem}
    .dwl-nb-day-tooltip{max-width:210px;font-size:.72rem}
    .dwl-nb-confirm-actions{flex-direction:column}
}

/* Visual calendar notes. These never change booking availability. */
.dwl-nb-day-event-markers{position:absolute;top:.32rem;right:.32rem;display:flex;align-items:center;gap:.2rem;z-index:3;pointer-events:none}
.dwl-nb-day-event-badge{min-width:1.18rem;height:1.18rem;padding:0 .25rem;border-radius:999px;display:grid;place-items:center;font-size:.65rem;line-height:1;font-weight:850;box-shadow:0 1px 2px rgba(16,24,40,.08)}
.dwl-nb-day-event-badge.is-special{background:#ffecb5;color:#7c5000;border:1px solid #e7bd4b}
.dwl-nb-day-event-badge.is-holiday{background:#f5e9ff;color:#6b2c91;border:1px solid #d8b7ea}
.dwl-nb-day-event-badge.is-info{background:#eaf2ff;color:#2c5f9e;border:1px solid #bfd2ee}
.dwl-nb-day.has-special-opening{outline:2px solid #e4b73f;outline-offset:-3px}
.dwl-nb-day.has-special-opening.is-sunday{outline-color:#e4b73f}
.dwl-nb-day.has-holiday:not(.has-special-opening):not(.is-holiday-closed-visual){outline:1px dashed rgba(107,44,145,.45);outline-offset:-3px}

.dwl-nb-month-events{margin:1rem .1rem .1rem;padding-top:1rem;border-top:1px solid var(--dwl-border)}
.dwl-nb-month-events__title{display:flex;align-items:center;gap:.45rem;margin-bottom:.65rem;color:var(--dwl-text);font-size:.86rem}
.dwl-nb-month-events__title>span{color:#a16d00;font-size:1rem}
.dwl-nb-month-events__list{display:grid;gap:.55rem}
.dwl-nb-month-event{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.65rem;align-items:start;padding:.7rem .78rem;border:1px solid var(--dwl-border);border-radius:12px;background:#fff}
.dwl-nb-month-event__icon{width:2rem;height:2rem;border-radius:9px;display:grid;place-items:center;font-weight:850;background:#eef3f8;color:#536273}
.dwl-nb-month-event__copy{display:flex;flex-direction:column;min-width:0}
.dwl-nb-month-event__meta{font-size:.68rem;line-height:1.3;font-weight:750;text-transform:uppercase;letter-spacing:.035em;color:var(--dwl-muted)}
.dwl-nb-month-event__copy strong{font-size:.88rem;line-height:1.35;margin-top:.08rem;color:var(--dwl-text)}
.dwl-nb-month-event__copy small{font-size:.76rem;line-height:1.45;margin-top:.16rem;color:var(--dwl-muted)}
.dwl-nb-month-event.type-special_opening{border-color:#e7c35b;background:#fffaf0}
.dwl-nb-month-event.type-special_opening .dwl-nb-month-event__icon{background:#ffecb5;color:#7c5000}
.dwl-nb-month-event.type-special_opening .dwl-nb-month-event__meta{color:#8a6200}
.dwl-nb-month-event.type-holiday .dwl-nb-month-event__icon{background:#f5e9ff;color:#6b2c91}
.dwl-nb-month-event.type-event .dwl-nb-month-event__icon{background:#eaf2ff;color:#2c5f9e}
.dwl-nb-month-event.is-prominent{box-shadow:inset 4px 0 0 #e4b73f}

@media (max-width:700px){
    .dwl-nb-day-event-markers{top:.2rem;right:.2rem;gap:.1rem}
    .dwl-nb-day-event-badge{min-width:.98rem;height:.98rem;padding:0 .16rem;font-size:.56rem}
    .dwl-nb-month-event{grid-template-columns:1.8rem minmax(0,1fr);padding:.65rem}
    .dwl-nb-month-event__icon{width:1.8rem;height:1.8rem}
}

/* 0.5.2: calendar-note badges use the title initial and the event's configured color. */
.dwl-nb-day-event-badge{
    background:var(--dwl-event-color,#64748b);
    color:var(--dwl-event-text,#fff);
    border:1px solid var(--dwl-event-color,#64748b);
}
.dwl-nb-day-event-badge.is-more{
    --dwl-event-color:#eef2f7;
    --dwl-event-text:#475467;
    border-color:#cfd6df;
    font-size:.58rem;
}
.dwl-nb-month-event__icon{
    background:var(--dwl-event-color,#64748b)!important;
    color:var(--dwl-event-text,#fff)!important;
}

/* 0.6.1 – accessible confirmation step */
.dwl-nb-confirm-page{
    --dwl-confirm-ink:#162033;
    --dwl-confirm-muted:#5f6b7a;
    --dwl-confirm-line:#d9dee7;
    --dwl-confirm-soft:#f7f9fc;
    --dwl-confirm-accent:#3056d3;
    --dwl-confirm-success:#176b3a;
    --dwl-confirm-success-soft:#edf8f1;
    --dwl-confirm-error:#b42318;
    --dwl-confirm-error-soft:#fff4f3;
    max-width:980px;
    margin:2.25rem auto 3rem;
    padding:0 1rem;
    color:var(--dwl-confirm-ink);
}
.dwl-nb-confirm-inner{background:transparent}
.dwl-nb-confirm-header{margin:0 0 1.15rem}
.dwl-nb-confirm-eyebrow{display:block;margin-bottom:.35rem;font-size:.75rem;line-height:1.3;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--dwl-confirm-accent)}
.dwl-nb-confirm-header h1{margin:0 0 .45rem!important;font-size:clamp(1.9rem,4vw,2.65rem)!important;line-height:1.08!important;letter-spacing:-.025em;color:var(--dwl-confirm-ink)}
.dwl-nb-confirm-header p{margin:0;color:var(--dwl-confirm-muted);font-size:1rem;line-height:1.55}

.dwl-nb-confirm-progress{margin:0 0 1.2rem;padding:1.05rem 1.15rem;border:1px solid var(--dwl-confirm-line);border-radius:16px;background:#fff;box-shadow:0 8px 24px rgba(16,24,40,.055)}
.dwl-nb-confirm-progress__top{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.75rem}
.dwl-nb-confirm-progress__kicker{display:block;font-size:.7rem;font-weight:800;letter-spacing:.075em;text-transform:uppercase;color:var(--dwl-confirm-muted)}
.dwl-nb-confirm-progress h2{margin:.1rem 0 0!important;font-size:1.05rem!important;line-height:1.25!important;color:var(--dwl-confirm-ink)}
.dwl-nb-confirm-progress__count{font-size:1rem;white-space:nowrap;color:var(--dwl-confirm-ink)}
.dwl-nb-confirm-progress__bar{display:block;width:100%;height:.7rem;border:0;border-radius:999px;overflow:hidden;background:#e9edf3;accent-color:var(--dwl-confirm-success)}
.dwl-nb-confirm-progress__bar::-webkit-progress-bar{background:#e9edf3;border-radius:999px}
.dwl-nb-confirm-progress__bar::-webkit-progress-value{background:var(--dwl-confirm-success);border-radius:999px;transition:width .18s ease}
.dwl-nb-confirm-progress__bar::-moz-progress-bar{background:var(--dwl-confirm-success);border-radius:999px}
.dwl-nb-confirm-progress__hint{margin:.65rem 0 0;font-size:.82rem;line-height:1.45;color:var(--dwl-confirm-muted)}

.dwl-nb-error-summary{margin:0 0 1.2rem;padding:1rem 1.1rem;border:2px solid #d92d20;border-radius:14px;background:var(--dwl-confirm-error-soft);color:#7a271a}
.dwl-nb-error-summary[hidden]{display:none!important}
.dwl-nb-error-summary:focus{outline:3px solid #1d4ed8;outline-offset:3px}
.dwl-nb-error-summary h2{margin:0 0 .55rem!important;font-size:1rem!important;color:#7a271a}
.dwl-nb-error-summary ul{margin:.25rem 0 0 1.1rem;padding:0}
.dwl-nb-error-summary li+li{margin-top:.25rem}
.dwl-nb-error-summary a{color:#7a271a;text-decoration:underline;text-underline-offset:2px;font-weight:700}

.dwl-nb-confirm-form{margin:0}
.dwl-nb-confirm-group{margin:0 0 1.35rem;padding:0;border:0;border-radius:0;background:transparent}
.dwl-nb-confirm-group__summary{margin:0 0 .8rem;padding:1rem 1.1rem;border:1px solid var(--dwl-confirm-line);border-radius:15px;background:linear-gradient(135deg,#fff 0%,#f8fafc 100%)}
.dwl-nb-confirm-group__step{display:block;margin-bottom:.3rem;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--dwl-confirm-muted)}
.dwl-nb-confirm-group__summary h2{margin:0!important;font-size:clamp(1.25rem,3vw,1.65rem)!important;line-height:1.25!important;letter-spacing:-.012em;color:var(--dwl-confirm-ink)}
.dwl-nb-confirm-group__date{margin:.55rem 0 0;color:var(--dwl-confirm-ink);font-size:.96rem}

.dwl-nb-confirm-item{margin:.72rem 0;padding:0;border:1px solid var(--dwl-confirm-line);border-radius:15px;background:#fff;overflow:hidden;box-shadow:0 4px 14px rgba(16,24,40,.035);transition:border-color .16s ease,background .16s ease,box-shadow .16s ease}
.dwl-nb-confirm-item__head{display:flex;align-items:center;gap:.5rem;padding:.68rem .9rem;border-bottom:1px solid #edf0f4;background:#fafbfc;min-width:0}
.dwl-nb-confirm-item__number{display:inline-grid;place-items:center;min-width:2rem;height:2rem;padding:0 .35rem;border-radius:9px;background:#e9eefc;color:#2848aa;font-size:.74rem;font-weight:850;letter-spacing:.03em}
.dwl-nb-confirm-item__type{font-size:.73rem;font-weight:800;letter-spacing:.055em;text-transform:uppercase;color:#465166}
.dwl-nb-confirm-item__required,.dwl-nb-confirm-item__optional{display:inline-flex;align-items:center;min-height:1.6rem;padding:.22rem .52rem;border-radius:999px;font-size:.68rem;font-weight:800}
.dwl-nb-confirm-item__required{background:#fff3e8;color:#914c12}
.dwl-nb-confirm-item__optional{background:#eef2f6;color:#526071}
.dwl-nb-confirm-item__status{margin-left:auto;display:inline-flex;align-items:center;gap:.3rem;font-size:.75rem;font-weight:800;color:#667085}
.dwl-nb-confirm-item__status:before{content:"";width:.55rem;height:.55rem;border:2px solid currentColor;border-radius:50%;box-sizing:border-box}
.dwl-nb-confirm-item__body{padding:1rem 1.05rem}
.dwl-nb-confirm-item__body h3{margin:0 0 .45rem!important;font-size:1.02rem!important;line-height:1.35!important;color:var(--dwl-confirm-ink)}
.dwl-nb-confirm-item__description{margin:.25rem 0 .9rem;color:var(--dwl-confirm-muted);line-height:1.5}
.dwl-nb-confirm-item.is-complete{border-color:#91c9a7;background:var(--dwl-confirm-success-soft)}
.dwl-nb-confirm-item.is-complete .dwl-nb-confirm-item__head{background:#f2faf5;border-bottom-color:#d9ecdf}
.dwl-nb-confirm-item.is-complete .dwl-nb-confirm-item__status{color:var(--dwl-confirm-success)}
.dwl-nb-confirm-item.is-complete .dwl-nb-confirm-item__status:before{content:"✓";display:grid;place-items:center;width:1rem;height:1rem;border:0;background:var(--dwl-confirm-success);color:#fff;font-size:.65rem}
.dwl-nb-confirm-item.has-error{border-color:#e07a70;background:var(--dwl-confirm-error-soft)}

.dwl-nb-confirm-check{display:grid!important;grid-template-columns:1.45rem minmax(0,1fr);align-items:start;gap:.72rem;margin:0!important;padding:.1rem 0;cursor:pointer;color:var(--dwl-confirm-ink);font-weight:500!important;line-height:1.55}
.dwl-nb-confirm-check input[type="checkbox"]{width:1.25rem!important;height:1.25rem!important;min-width:1.25rem;margin:.13rem 0 0!important;accent-color:var(--dwl-confirm-success);cursor:pointer}
.dwl-nb-confirm-check span{min-width:0}
.dwl-nb-confirm-label{display:block;margin:0 0 .5rem!important;color:var(--dwl-confirm-ink);font-weight:750!important;line-height:1.45}
.dwl-nb-confirm-item input[type="text"],.dwl-nb-confirm-item input[type="number"],.dwl-nb-confirm-item textarea,.dwl-nb-confirm-item select{width:100%!important;max-width:none!important;min-height:48px;margin:0!important;padding:.72rem .8rem;border:1px solid #bfc7d4;border-radius:10px;background:#fff;color:var(--dwl-confirm-ink);font:inherit;box-shadow:none}
.dwl-nb-confirm-item textarea{min-height:120px;resize:vertical}
.dwl-nb-confirm-item input:hover,.dwl-nb-confirm-item textarea:hover,.dwl-nb-confirm-item select:hover{border-color:#8f9bad}
.dwl-nb-confirm-item input:focus-visible,.dwl-nb-confirm-item textarea:focus-visible,.dwl-nb-confirm-item select:focus-visible,.dwl-nb-confirm-check input:focus-visible,.dwl-nb-document-link:focus-visible,.dwl-nb-confirm-actions a:focus-visible,.dwl-nb-confirm-actions button:focus-visible{outline:3px solid #1d4ed8!important;outline-offset:3px!important;box-shadow:none!important}
.dwl-nb-confirm-item [aria-invalid="true"]{border-color:var(--dwl-confirm-error)!important}
.dwl-nb-field-error{margin:.65rem 0 0;padding:.65rem .75rem;border-left:4px solid var(--dwl-confirm-error);border-radius:7px;background:#fff;color:#7a271a;font-size:.86rem;font-weight:650;line-height:1.45}
.dwl-nb-document-link{color:#2347b0;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;font-weight:800}
.dwl-nb-document-link:hover{color:#17357f}

.dwl-nb-confirm-actions{display:flex;justify-content:space-between;align-items:center;gap:.8rem;margin:1.35rem 0 0;padding-top:1rem;border-top:1px solid var(--dwl-confirm-line)}
.dwl-nb-confirm-actions .button{display:inline-flex!important;align-items:center;justify-content:center;gap:.55rem;min-height:48px!important;padding:.72rem 1.05rem!important;border-radius:10px!important;font-weight:800!important;line-height:1.2!important}
.dwl-nb-confirm-back{background:#fff!important;color:var(--dwl-confirm-ink)!important;border:1px solid #cfd5df!important}
.dwl-nb-confirm-submit{background:#182230!important;color:#fff!important;border:1px solid #182230!important}
.dwl-nb-confirm-submit:hover{background:#0f1726!important}

@media (max-width:700px){
    .dwl-nb-confirm-page{margin:1.4rem auto 2rem;padding:0 .75rem}
    .dwl-nb-confirm-progress__top{align-items:flex-start;flex-direction:column;gap:.35rem}
    .dwl-nb-confirm-progress__count{white-space:normal}
    .dwl-nb-confirm-item__head{flex-wrap:wrap}
    .dwl-nb-confirm-item__status{margin-left:0;width:100%;padding-left:2.5rem}
    .dwl-nb-confirm-item__body{padding:.9rem}
    .dwl-nb-confirm-actions{flex-direction:column-reverse;align-items:stretch}
    .dwl-nb-confirm-actions .button{width:100%}
}

@media (prefers-reduced-motion:reduce){
    .dwl-nb-confirm-item,.dwl-nb-confirm-progress__bar::-webkit-progress-value{transition:none!important}
}

/* Gutenberg / Astra / Spectra booking blocks */
.dwl-nb-booking-standalone,.dwl-nb-booking-builder{width:100%;margin:0}
.dwl-nb-booking-builder>*+*,.dwl-nb-booking-standalone>*+*{margin-top:1rem}
.dwl-nb-section-title{margin:0 0 .75rem;font-size:1.25rem;line-height:1.3}
.dwl-nb-booking-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.05rem;border:1px solid var(--dwl-border,#d7dce5);border-radius:14px;background:#fff}
.dwl-nb-booking-summary__label{font-weight:700;color:#475467}
.dwl-nb-summary-total{font-size:1.25rem;line-height:1.2;color:#182230}
.dwl-nb-booking-actions{display:flex;align-items:center;gap:.75rem}
.dwl-nb-booking-actions .dwl-nb-booking-submit{min-height:48px;padding:.75rem 1.25rem;border-radius:10px;font-weight:800}
.dwl-nb-booking-builder .wp-block-dwl-next-booking-duration,
.dwl-nb-booking-builder .wp-block-dwl-next-booking-upgrades,
.dwl-nb-booking-builder .wp-block-dwl-next-booking-calendar,
.dwl-nb-booking-builder .wp-block-dwl-next-booking-summary,
.dwl-nb-booking-builder .wp-block-dwl-next-booking-button{margin:0}
@media (max-width:600px){
    .dwl-nb-booking-summary{align-items:flex-start;flex-direction:column;gap:.35rem}
    .dwl-nb-booking-actions .dwl-nb-booking-submit{width:100%}
}

/* 0.7.1 – confirmation state + disabled submit */
.dwl-nb-confirm-submit-wrap{display:flex;align-items:flex-end;flex-direction:column;gap:.45rem;min-width:0}
.dwl-nb-confirm-submit-hint{margin:0;max-width:36rem;text-align:right;font-size:.82rem;line-height:1.4;color:var(--dwl-confirm-muted)}
.dwl-nb-confirm-submit:disabled,.dwl-nb-confirm-submit[aria-disabled="true"]{background:#e3e7ed!important;border-color:#e3e7ed!important;color:#778295!important;cursor:not-allowed!important;opacity:1!important;box-shadow:none!important}
.dwl-nb-confirm-submit:not(:disabled)[aria-disabled="false"]{cursor:pointer}
@media(max-width:640px){.dwl-nb-confirm-submit-wrap{width:100%;align-items:stretch}.dwl-nb-confirm-submit-hint{text-align:left;max-width:none}}

/* 0.10.0 store / location card */
.dwl-nb-store-card{display:grid;grid-template-columns:48px minmax(0,1fr);gap:14px;margin:1rem 0;padding:1rem 1.05rem;border:1px solid var(--dwl-border);border-radius:16px;background:#fff}
.dwl-nb-store-card__icon{width:48px;height:48px;border-radius:14px;display:grid;place-items:center;background:#f1f0ff;color:#5f57e9}.dwl-nb-store-card__icon svg{width:24px;height:24px}
.dwl-nb-store-card__eyebrow{display:block;margin-bottom:.15rem;font-size:.7rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;color:var(--dwl-muted)}
.dwl-nb-store-card h3{margin:0 0 .35rem!important;font-size:1.02rem!important;line-height:1.25!important}.dwl-nb-store-card address{margin:0;font-style:normal;line-height:1.5;color:var(--dwl-text)}
.dwl-nb-store-card__meta{display:flex;flex-wrap:wrap;gap:.45rem 1rem;margin-top:.5rem}.dwl-nb-store-card__meta a{font-size:.88rem}
.dwl-nb-store-map{margin-top:.8rem;padding-top:.8rem;border-top:1px solid var(--dwl-border)}.dwl-nb-store-map__load{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.55rem .8rem;border:1px solid var(--dwl-border);border-radius:10px;background:#fff;color:var(--dwl-text);font-weight:700;cursor:pointer}.dwl-nb-store-map__load:hover{border-color:#aaa5ff;background:#faf9ff}.dwl-nb-store-map__load:focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}
.dwl-nb-store-map__privacy{margin:.45rem 0 0;font-size:.78rem;color:var(--dwl-muted)}.dwl-nb-store-map__frame{margin-top:.7rem;overflow:hidden;border:1px solid var(--dwl-border);border-radius:12px;background:#f5f6f8}.dwl-nb-store-map__frame iframe{display:block;width:100%;height:300px;border:0}.dwl-nb-store-map__link{display:inline-flex;margin-top:.55rem;font-size:.82rem;font-weight:700}
@media(max-width:700px){.dwl-nb-store-card{grid-template-columns:42px minmax(0,1fr);padding:.85rem}.dwl-nb-store-card__icon{width:42px;height:42px}.dwl-nb-store-map__frame iframe{height:240px}}

/* Fixed cart reservation countdown. The database expiry remains authoritative. */
.dwl-nb-hold-overlay{
    position:fixed;
    right:24px;
    bottom:24px;
    z-index:99990;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto auto;
    align-items:center;
    gap:12px;
    width:min(560px,calc(100vw - 32px));
    padding:14px 16px;
    border:1px solid #d9def0;
    border-radius:18px;
    background:#fff;
    color:#121a33;
    box-shadow:0 18px 50px rgba(18,26,51,.18);
}
.dwl-nb-hold-overlay__icon{
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:12px;
    background:#eef0ff;
    color:#5148ff;
    font-size:20px;
}
.dwl-nb-hold-overlay__content{min-width:0;display:grid;gap:2px}
.dwl-nb-hold-overlay__content strong{font-size:15px;line-height:1.25}
.dwl-nb-hold-overlay__content span{font-size:13px;line-height:1.35;color:#58627a}
.dwl-nb-hold-overlay__timer{
    min-width:72px;
    padding:8px 10px;
    border-radius:10px;
    background:#f5f6fb;
    text-align:center;
    font-variant-numeric:tabular-nums;
    font-weight:800;
    letter-spacing:.04em;
}
.dwl-nb-hold-overlay__cart{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:40px;
    padding:0 12px;
    border-radius:10px;
    background:#5b52ff;
    color:#fff!important;
    text-decoration:none!important;
    font-size:13px;
    font-weight:700;
}
.dwl-nb-hold-overlay__cart:focus-visible,
.dwl-nb-hold-overlay a:focus-visible{
    outline:3px solid #111827;
    outline-offset:3px;
}
.dwl-nb-hold-overlay.is-expired{border-color:#e46b6b;background:#fff7f7}
.dwl-nb-hold-overlay.is-expired .dwl-nb-hold-overlay__timer{background:#fde8e8;color:#9d2020}
@media (max-width:700px){
    .dwl-nb-hold-overlay{
        right:12px;
        bottom:12px;
        grid-template-columns:auto minmax(0,1fr) auto;
        gap:10px;
        width:calc(100vw - 24px);
        padding:12px;
    }
    .dwl-nb-hold-overlay__cart{grid-column:2 / 4;width:100%}
}
@media (prefers-reduced-motion:reduce){
    .dwl-nb-hold-overlay{scroll-behavior:auto}
}
.dwl-nb-hold-hint{
    display:flex;
    align-items:flex-start;
    gap:8px;
    margin:12px 0 0;
    padding:10px 12px;
    border:1px solid #e1e5f2;
    border-radius:12px;
    background:#f8f9fd;
    color:#4f5970;
    font-size:13px;
    line-height:1.45;
}
.dwl-nb-hold-hint span{color:#5b52ff;font-size:16px;line-height:1.2}

.dwl-nb-hold-expired-notice{
    position:fixed;
    z-index:999999;
    right:24px;
    bottom:24px;
    display:flex;
    align-items:center;
    gap:10px;
    width:min(460px,calc(100vw - 48px));
    padding:14px 16px;
    border:1px solid #efb1b1;
    border-radius:16px;
    background:#fff7f7;
    color:#742323;
    box-shadow:0 18px 50px rgba(18,26,51,.16);
    font-size:14px;
    line-height:1.45;
    font-weight:650;
}
.dwl-nb-hold-expired-notice__icon{
    display:grid;
    place-items:center;
    flex:0 0 38px;
    width:38px;
    height:38px;
    border-radius:11px;
    background:#fde8e8;
    color:#9d2020;
    font-size:18px;
}
@media (max-width:700px){
    .dwl-nb-hold-expired-notice{right:12px;bottom:12px;width:calc(100vw - 24px);}
}
