/* One Spa configurator 0.9.27 — shallow sheet, brand tokens, one alignment grid. */
.osw-configurator[hidden]{display:none!important}
.osw-configurator{
  --cfg-gutter:24px;
  --cfg-ink-soft:var(--ink-soft,var(--ink));
  position:fixed;inset:0;z-index:100500;color:var(--ink);
  font-family:var(--sans);font-size:14px;line-height:1.55;letter-spacing:.01em;
}
.osw-configurator *{box-sizing:border-box}
.osw-configurator button{all:unset;box-sizing:border-box;cursor:pointer;font-family:inherit;text-align:center;text-transform:none;transition:background-color .18s ease,color .18s ease,border-color .18s ease,box-shadow .18s ease,transform .12s ease,opacity .18s ease}
.osw-configurator button:focus-visible{outline:2px solid var(--terra);outline-offset:2px}
.osw-configurator button:disabled{cursor:not-allowed;opacity:.48;transform:none}

.osw-cfg-back{position:absolute;inset:0;background:rgba(58,42,34,.56);backdrop-filter:blur(8px)}
.osw-cfg-sheet{position:relative;display:flex;flex-direction:column;width:min(620px,calc(100% - 32px));height:min(860px,90dvh);margin:5dvh auto;background:var(--cream);border:1px solid var(--line);border-radius:24px;box-shadow:0 28px 90px rgba(58,42,34,.28);overflow:hidden}
.osw-cfg-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:var(--cfg-gutter) var(--cfg-gutter) 14px;background:var(--cream)}
.osw-cfg-k{font-family:var(--latin);font-size:12px;letter-spacing:.17em;color:var(--clay)}
.osw-cfg-head h2{margin:4px 0 2px;color:var(--ink);font:600 22px/1.25 var(--serif)}
.osw-cfg-head p{max-width:470px;margin:0;color:var(--cfg-ink-soft);font-size:12px;line-height:1.5}

/* Icon controls: close, calendar navigation and quantity stepper. */
.osw-configurator .osw-cfg-icon{display:grid;place-items:center;flex:0 0 auto;width:44px;min-width:44px;min-height:44px;aspect-ratio:1;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--clay);font-size:22px;line-height:1;white-space:normal;box-shadow:none}
.osw-configurator .osw-cfg-icon:hover{background:var(--peach);border-color:var(--clay)}
.osw-configurator .osw-cfg-icon:active{background:var(--rose);color:var(--deep);transform:scale(.96)}
.osw-configurator .osw-cfg-icon:disabled{background:var(--cream);color:var(--cfg-ink-soft)}
.osw-configurator button.osw-cfg-icon:focus{background:var(--paper)!important;color:var(--clay)!important;border-color:var(--line)!important}
.osw-configurator button.osw-cfg-icon:hover{background:var(--peach)!important;color:var(--clay)!important;border-color:var(--clay)!important}
.osw-configurator button.osw-cfg-icon:active{background:var(--rose)!important;color:var(--deep)!important;border-color:var(--clay)!important}

.osw-cfg-progress{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;padding:8px var(--cfg-gutter) 14px;border-bottom:1px solid var(--line);background:var(--cream)}
.osw-cfg-progress-step{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;color:var(--cfg-ink-soft);font-size:11px;line-height:1.25}
.osw-cfg-progress-step:not(:last-child):after{content:"";position:absolute;z-index:0;top:13px;left:calc(50% + 22px);right:calc(-50% + 22px);height:1px;background:var(--line)}
.osw-cfg-progress-step.is-done:not(:last-child):after{background:var(--terra)}
.osw-cfg-progress-step span{position:relative;z-index:1;display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;background:var(--paper);color:var(--cfg-ink-soft);font-weight:700}
.osw-cfg-progress-step b{font-weight:500}
.osw-cfg-progress-step.is-active,.osw-cfg-progress-step.is-done{color:var(--clay)}
.osw-cfg-progress-step.is-active span,.osw-cfg-progress-step.is-done span{border-color:var(--terra);background:var(--terra);color:var(--cream)}

.osw-cfg-scroll{min-height:0;flex:1;overflow:auto;overscroll-behavior:contain;scrollbar-color:var(--taupe) var(--cream)}
.osw-cfg-notices{margin:var(--cfg-gutter) var(--cfg-gutter) 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--peach);box-shadow:var(--shadow);color:var(--ink);font-size:12px;line-height:1.55}
.osw-cfg-notices[hidden]{display:none}
.osw-cfg-view{width:100%;padding:var(--cfg-gutter)}
.osw-cfg-view h3{margin:0;color:var(--ink);font:600 16px/1.35 var(--serif)}

.osw-cfg-date-step{padding:0}
.osw-cfg-cal-head{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;margin:10px 0 8px}
.osw-cfg-cal-head b{text-align:center;color:var(--ink);font:600 16px/1.25 var(--serif)}
.osw-configurator .osw-cfg-cal-nav{width:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%;font-size:22px;white-space:normal}
.osw-cfg-cal-head .osw-cfg-cal-nav:last-child{justify-self:end}
.osw-cfg-weekdays,.osw-cfg-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.osw-cfg-weekdays{margin-bottom:6px;color:var(--cfg-ink-soft);font-size:11px;text-align:center}
.osw-cfg-days>span,.osw-cfg-days>button{min-width:0;aspect-ratio:1}
.osw-configurator .osw-cfg-day{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;width:100%;min-height:44px;padding:3px 1px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink);font-size:14px;white-space:normal;box-shadow:none}
.osw-configurator .osw-cfg-day em{font-style:normal;font-size:14px;font-weight:700;line-height:1.15}
.osw-configurator .osw-cfg-day small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--cfg-ink-soft);font-size:11px;line-height:1.1}
.osw-configurator .osw-cfg-day.is-weekday{background:var(--paper)}
.osw-configurator .osw-cfg-day.is-weekend,.osw-configurator .osw-cfg-day.is-holiday{border-color:var(--terra);background:var(--peach);color:var(--deep)}
.osw-configurator .osw-cfg-day.is-weekend small,.osw-configurator .osw-cfg-day.is-holiday small{color:var(--deep)}
.osw-configurator .osw-cfg-day:hover:not(:disabled){border-color:var(--clay);box-shadow:0 0 0 2px var(--line)}
.osw-configurator .osw-cfg-day:active:not(:disabled){background:var(--rose);transform:scale(.97)}
.osw-configurator .osw-cfg-day.is-selected{border-color:var(--deep);background:var(--deep);color:var(--cream);box-shadow:0 0 0 2px var(--terra)}
.osw-configurator .osw-cfg-day.is-selected small{color:var(--cream)}
.osw-configurator .osw-cfg-day:disabled{opacity:.72;background:var(--cream);border-style:dashed;color:var(--cfg-ink-soft);filter:none}
.osw-configurator .osw-cfg-day:disabled small{color:var(--cfg-ink-soft)}
.osw-configurator button.osw-cfg-day:focus{background:var(--paper)!important;color:var(--ink)!important}
.osw-configurator button.osw-cfg-day.is-weekend:focus,.osw-configurator button.osw-cfg-day.is-holiday:focus{background:var(--peach)!important;color:var(--deep)!important}
.osw-configurator button.osw-cfg-day.is-selected:focus{background:var(--deep)!important;color:var(--cream)!important}
.osw-cfg-cal-hint{margin:12px 0 0;color:var(--cfg-ink-soft);font-size:12px;line-height:1.55;text-align:center}

/* Shared card and row model. */
.osw-cfg-selected,.osw-cfg-package-menu,.osw-cfg-treatment-menu,.osw-cfg-confirm-lines{border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:var(--shadow);overflow:hidden}
.osw-cfg-empty{margin:0;padding:var(--cfg-gutter);color:var(--cfg-ink-soft);text-align:center;font-size:12px}
.osw-cfg-selected-row,.osw-cfg-menu-row,.osw-cfg-treatment-row{display:grid;grid-template-columns:minmax(0,1fr) 104px;grid-template-rows:auto auto;align-items:center;gap:8px 12px;padding:16px var(--cfg-gutter)}
.osw-cfg-selected-row+.osw-cfg-selected-row,.osw-cfg-menu-row+.osw-cfg-menu-row,.osw-cfg-treatment-row+.osw-cfg-treatment-row,.osw-cfg-confirm-row+.osw-cfg-confirm-row{border-top:1px solid var(--line)}
.osw-cfg-item-copy{min-width:0;grid-column:1/-1;grid-row:1}
.osw-cfg-item-copy b{display:block;color:var(--ink);font-size:14px;font-weight:600;line-height:1.4;overflow-wrap:anywhere}
.osw-cfg-item-copy small{display:block;margin-top:3px;color:var(--cfg-ink-soft);font-size:12px;line-height:1.45;overflow-wrap:anywhere}
.osw-cfg-item-price{display:flex;align-items:center;justify-content:flex-start;gap:7px;grid-column:1;grid-row:2;color:var(--ink);font-size:13px;white-space:nowrap}
.osw-cfg-item-price strong,.osw-cfg-treatment-price strong{color:var(--ink);font-weight:500;font-variant-numeric:tabular-nums}
.osw-cfg-item-price del,.osw-cfg-treatment-price del{color:var(--cfg-ink-soft);font-size:12px}

.osw-cfg-stepper{display:grid;grid-template-columns:44px 28px 44px;align-items:center;grid-column:2;grid-row:2;text-align:center}
.osw-configurator .osw-cfg-stepper-btn{width:44px;min-width:44px;min-height:44px;padding:0;border-radius:50%;font-size:22px;white-space:normal}
.osw-cfg-stepper b{color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}

.osw-cfg-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:10px}
.osw-cfg-section-head span{color:var(--cfg-ink-soft);font-size:12px}
.osw-cfg-menu-head{margin-top:22px}
.osw-cfg-addons{margin-top:22px}
.osw-cfg-group-hint,.osw-cfg-progress-hint{margin:0 0 12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--paper);color:var(--ink-soft);font-size:12px;line-height:1.55}
.osw-cfg-progress-hint{margin:12px 0;color:var(--deep);font-weight:700}

/* Three action levels: primary, secondary and tertiary; icon controls are above. */
.osw-configurator .osw-cfg-primary,.osw-configurator .osw-cfg-secondary,.osw-configurator .osw-cfg-tertiary{display:inline-flex;align-items:center;justify-content:center;width:100%;min-width:0;min-height:48px;padding:10px 16px;border-radius:999px;font-size:16px;font-weight:600;line-height:1.3;white-space:normal}
.osw-configurator .osw-cfg-primary{border:1px solid var(--deep);background:var(--deep);color:var(--cream);box-shadow:0 6px 18px rgba(110,42,28,.18)}
.osw-configurator .osw-cfg-primary:hover{border-color:var(--ink);background:var(--ink);color:var(--cream)}
.osw-configurator .osw-cfg-primary:active{border-color:var(--clay);background:var(--clay);transform:translateY(1px)}
.osw-configurator .osw-cfg-primary:disabled{border-color:var(--line);background:var(--taupe);color:var(--cream);box-shadow:none}
.osw-configurator button.osw-cfg-primary:focus{border-color:var(--deep)!important;background:var(--deep)!important;color:var(--cream)!important}
.osw-configurator .osw-cfg-secondary{border:1px solid var(--clay);background:transparent;color:var(--clay);box-shadow:none}
.osw-configurator .osw-cfg-secondary:hover{background:var(--peach);color:var(--deep)}
.osw-configurator .osw-cfg-secondary:active{background:var(--rose);border-color:var(--deep);color:var(--deep);transform:translateY(1px)}
.osw-configurator .osw-cfg-secondary:disabled{border-color:var(--line);background:transparent;color:var(--cfg-ink-soft)}
.osw-configurator button.osw-cfg-secondary:focus{border-color:var(--clay)!important;background:transparent!important;color:var(--clay)!important}
.osw-configurator .osw-cfg-tertiary{border:1px solid transparent;background:transparent;color:var(--clay);box-shadow:none;font-size:14px;font-weight:500;text-decoration:none;text-underline-offset:3px}
.osw-configurator .osw-cfg-tertiary:hover{background:transparent;color:var(--deep);text-decoration:underline}
.osw-configurator .osw-cfg-tertiary:active{background:transparent;color:var(--terra);transform:translateY(1px)}
.osw-configurator .osw-cfg-tertiary:disabled{background:transparent;color:var(--cfg-ink-soft);text-decoration:none}
.osw-configurator button.osw-cfg-tertiary:focus{border-color:transparent!important;background:transparent!important;color:var(--clay)!important}
.osw-configurator .osw-cfg-add{grid-column:2;grid-row:2;width:104px;min-width:104px;min-height:44px;padding:8px 12px;border-radius:999px;font-size:13px;white-space:normal}
.osw-configurator .osw-cfg-date-edit{width:auto;min-height:44px;padding:8px 0;border-radius:999px;font-size:12px;white-space:normal;text-align:right}
.osw-configurator .osw-cfg-expand{width:100%;min-height:44px;margin-top:8px;padding:8px 12px;border-radius:999px;font-size:12px;white-space:normal}

.osw-cfg-treatment-price{display:grid;grid-template-columns:78px minmax(0,1fr);align-items:baseline;grid-column:1;grid-row:2;width:180px;max-width:100%;color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums}
.osw-cfg-price-was{min-width:0;color:var(--cfg-ink-soft);font-size:12px;white-space:nowrap}
.osw-cfg-treatment-price small{grid-column:1/-1;margin-top:3px;color:var(--cfg-ink-soft);font-size:12px;line-height:1.4;white-space:normal}

.osw-cfg-human{margin:10px 0 14px;padding:10px 12px;border:0;border-radius:10px;background:var(--peach);color:var(--ink);font-size:12px;line-height:1.5}
.osw-cfg-confirm-row,.osw-cfg-confirm-totals>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(96px,max-content);align-items:start;gap:12px;padding:12px 14px;color:var(--ink);font-size:13px;line-height:1.45}
.osw-cfg-confirm-row b,.osw-cfg-confirm-totals>div b{justify-self:end;color:var(--ink);font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.osw-cfg-confirm-row.is-benefit{background:var(--peach);color:var(--deep)}
.osw-cfg-confirm-row.is-benefit b{color:var(--deep)}
.osw-cfg-benefit-hints{margin-top:12px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--paper);box-shadow:var(--shadow);color:var(--ink);font-size:12px;line-height:1.55}
.osw-cfg-benefit-hints p{margin:0}
.osw-cfg-benefit-hints p+p{margin-top:6px}
.osw-cfg-benefit-hints .is-strong{color:var(--deep);font-weight:700}
.osw-cfg-ticket-gate{display:grid;gap:10px;margin-top:12px;padding:14px;border:1px solid var(--terra);border-radius:12px;background:var(--peach);box-shadow:var(--shadow);color:var(--deep)}
.osw-cfg-ticket-gate.is-saving{border-color:var(--clay);background:var(--paper)}
.osw-cfg-ticket-gate p{margin:0;font-size:12px;line-height:1.55}
.osw-configurator .osw-cfg-ticket-gate .osw-cfg-secondary{min-height:44px;padding:8px 14px;font-size:13px}
.osw-cfg-confirm-totals{margin-top:14px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:var(--shadow);overflow:hidden}
.osw-cfg-confirm-totals>div+div{border-top:1px solid var(--line)}
.osw-cfg-confirm-totals .is-grand{background:var(--peach);color:var(--deep);font-size:16px}
.osw-cfg-confirm-totals .is-grand b{color:var(--deep);font-size:22px}
.osw-cfg-frontdesk{margin:12px 0 0;color:var(--cfg-ink-soft);font-size:12px;text-align:center}

.osw-cfg-footer{flex:0 0 auto;padding:12px var(--cfg-gutter) calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--cream);box-shadow:0 -14px 24px rgba(110,42,28,.10)}
.osw-cfg-footer[hidden]{display:none}
.osw-cfg-birthday{margin:0 0 8px;color:var(--cfg-ink-soft);font-size:12px;line-height:1.45;text-align:center}
.osw-cfg-error{margin:0 0 8px;color:var(--deep);font-size:12px;line-height:1.4;text-align:center}
.osw-cfg-branch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}
.osw-cfg-order-total{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;margin:0 0 8px;padding:0 2px;color:var(--cfg-ink-soft);font-size:13px}
.osw-cfg-order-total b{color:var(--deep);font-size:22px;font-variant-numeric:tabular-nums}

.osw-cfg-going{position:fixed;inset:0;z-index:100700;display:grid;place-items:center;background:rgba(58,42,34,.56);color:var(--ink)}
.osw-cfg-going>div{display:flex;align-items:center;gap:12px;padding:18px 22px;border:1px solid var(--line);border-radius:14px;background:var(--paper);box-shadow:var(--shadow)}
.osw-cfg-going span{width:20px;height:20px;border:2px solid var(--line);border-top-color:var(--terra);border-radius:50%;animation:osw-cfg-spin .8s linear infinite}
@keyframes osw-cfg-spin{to{transform:rotate(360deg)}}
.osw-configurator.is-busy .osw-cfg-close{opacity:.48;pointer-events:none}

@media(min-width:561px){
  .osw-cfg-selected-row,.osw-cfg-menu-row,.osw-cfg-treatment-row{grid-template-columns:minmax(0,1fr) 180px 104px;grid-template-rows:auto;gap:12px}
  .osw-cfg-item-copy{grid-column:1;grid-row:1}
  .osw-cfg-item-price,.osw-cfg-treatment-price{grid-column:2;grid-row:1;justify-self:end}
  .osw-cfg-item-price{justify-content:flex-end}
  .osw-cfg-stepper{grid-column:3;grid-row:1;justify-self:end}
  .osw-configurator .osw-cfg-add{grid-column:3;grid-row:1}
}

@media(max-width:560px){
  .osw-configurator{--cfg-gutter:16px}
  .osw-cfg-sheet{width:100%;height:100dvh;margin:0;border:0;border-radius:0}
  .osw-cfg-head{padding-top:16px;padding-bottom:10px}
  .osw-cfg-head p{max-width:270px;font-size:11px}
  .osw-cfg-progress{padding-top:4px;padding-bottom:10px}
  .osw-cfg-notices{margin-top:16px}
  .osw-cfg-weekdays,.osw-cfg-days{gap:4px}
  .osw-configurator .osw-cfg-day{border-radius:8px}
  .osw-cfg-selected-row,.osw-cfg-menu-row,.osw-cfg-treatment-row{padding:14px var(--cfg-gutter)}
  .osw-configurator .osw-cfg-primary,.osw-configurator .osw-cfg-secondary{padding-left:12px;padding-right:12px}
}

@media(max-width:350px){
  .osw-cfg-head p{display:none}
  .osw-configurator .osw-cfg-day small{font-size:11px}
}
