/* Common progress and signed booking-window display for public forms. */
:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps){display:flex;gap:10px;border:0;border-radius:0;overflow:visible;background:none;margin:26px 0 16px;line-height:1.35;font-family:inherit;font-size:15px;text-align:left}
:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps)>span{flex:1;min-width:0;width:auto;display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:14px 16px;border:1px solid #ddd9d0;border-radius:8px;background:#fff;color:#666459;box-shadow:none;letter-spacing:0;font-weight:400}
:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps)>span+span{border-left:1px solid #ddd9d0}
:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps)>span::before{content:attr(data-number);display:inline-flex;align-items:center;justify-content:center;flex:0 0 28px;width:28px;height:28px;padding:0;border:1px solid #b3ada1;border-radius:50%;color:#666459;font-family:inherit;font-size:14px;line-height:1}
:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps)>span.is-active{background:#f3f1eb;color:#4f5143;border-color:#b4ad9d}
:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps)>span[aria-current=step]{border-color:#8c857a;background:#efede6;color:#3f4237;font-weight:600;box-shadow:none}
:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps)>span[aria-current=step]::before{background:#5e6650;color:#fff;border-color:#5e6650}
@media(max-width:480px){:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps){gap:8px;font-size:14px}:is(.wwb .wwb-progress,.wwgv .wwgv-progress,.ww-self-service .ww-flow-steps)>span{flex-direction:column;align-items:flex-start;gap:8px;padding:12px}}

:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window[hidden]{display:none!important}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window button[hidden]{display:none!important}


/* Shared booking-window status. This single component is used by table, brunch,
   vouchers and workshop forms; no per-form timer styling. */
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window{
 display:flex;flex-direction:column;align-items:stretch;gap:12px;
 max-width:100%;padding:16px 18px;margin:0 0 24px;
 border:1px solid #aebaaa;border-left:4px solid #718567;border-radius:10px;
 background:#eef3eb;color:#3b5039;font-size:15px;line-height:1.5;
 box-sizing:border-box;
}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window::before{display:none}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-main{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;width:100%}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-title{display:inline-flex;align-items:center;gap:10px;flex:1;min-width:0;font-size:16px;font-weight:500;line-height:1.4}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-title::before{content:"";flex:0 0 18px;width:18px;height:18px;background:currentColor;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='9' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M12 6v6l4 2' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window [data-window-state]{display:inline-flex;align-items:center;justify-content:center;flex:none;max-width:100%;margin:0;border:1px solid #c8d2c3;border-radius:7px;background:#fff;padding:7px 11px;min-width:64px;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-actions{display:flex;align-items:center;justify-content:flex-start;gap:10px;flex-wrap:wrap;width:100%}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-actions:not(:has(>button:not([hidden]))){display:none}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-actions > button{margin:0!important;flex:0 1 auto;width:auto;max-width:100%;min-height:44px;padding:10px 15px;border:1px solid #879580;border-radius:7px;background:#fff;color:#31422f;text-align:center;white-space:normal;overflow-wrap:anywhere;cursor:pointer;font:inherit;line-height:1.4}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-actions > button:focus-visible{outline:2px solid #526650!important;outline-offset:3px}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window.is-expired{background:#fbefec;border:1px solid #c88c80;border-left:4px solid #b4483a;color:#74372f;align-items:stretch}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window.is-expired [data-window-state]{border-color:#e0bdb5;background:#fff;color:#74372f;font-weight:600;max-width:100%;text-align:left}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window.is-orange{background:#fbf3e3;border-color:#bd9657;color:#765522}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window.is-red{background:#fbefec;border-color:#b45e53;color:#843d35}
:is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window [data-window-error]{margin:0;width:100%;color:#873f31;overflow-wrap:anywhere}
@media(max-width:520px){
 :is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window{padding:14px;gap:12px;font-size:15px}
 :is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-main{align-items:flex-start;flex-wrap:wrap;gap:10px}
 :is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-title{flex:1 1 100%;font-size:16px}
 :is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window [data-window-state]{margin-left:28px;max-width:calc(100% - 28px)}
 :is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-actions{width:100%}
 :is(.wwb,.wwgv,.ww-pub,.ww-v2) .ww-form-window .ww-window-actions > button{flex:1 1 100%;width:100%;white-space:normal!important}
}
/* The reservation flow shares the existing public two-step progress component. */
.ww-self-service .ww-flow-steps{width:100%;min-width:0;margin:16px 0 22px;font:15px/1.35 "Crimson Text",Georgia,serif}
.ww-self-service .ww-flow-steps>span{min-width:0;flex:0 0 auto;width:auto;min-height:50px;padding:10px;justify-content:center}
.ww-self-service .ww-flow-steps>span[aria-current="step"]{flex:1 1 auto;justify-content:flex-start}
.ww-self-service .ww-flow-steps .ww-step-label{font:inherit;line-height:1.25}
.ww-self-service .ww-flow-steps>span:not([aria-current="step"]) .ww-step-label{
  position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;
}
@media(max-width:480px){.ww-self-service .ww-flow-steps>span{flex-direction:row;align-items:center;padding:10px;gap:8px}}
