@media (min-width:761px){
  body[data-page="booking"]{display:grid;grid-template-rows:auto minmax(0,1fr);height:100dvh;min-height:100dvh;overflow:hidden}
  .booking-header{max-width:none;margin:0;padding:clamp(24px,3.5vw,60px) 4.7vw}
  .booking-header .brand{font-size:clamp(1.32rem,1.35vw,2rem)}
  .booking-shell{height:100%;min-height:0;max-width:none;margin:0;grid-template-columns:minmax(300px,30%) 1fr;overflow:hidden}
  .booking-aside{min-height:0;padding:clamp(65px,6vw,150px) clamp(32px,3.1vw,80px);overflow-y:auto;overscroll-behavior-y:contain}
  .booking-aside .eyebrow,.booking-content .eyebrow{font-size:clamp(.72rem,.9vw,1.2rem)}
  .booking-progress{position:relative;gap:clamp(17px,1.6vw,38px);font-size:clamp(.75rem,1vw,1.4rem);--booking-progress-indicator-y:0px}
  .booking-progress::before{position:absolute;z-index:2;top:0;left:-19px;width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 0 5px rgba(82, 189, 236,.12);content:"";opacity:0;pointer-events:none;transform:translate3d(0,var(--booking-progress-indicator-y),0);transition:opacity 220ms ease,transform 680ms cubic-bezier(.16,1,.3,1),box-shadow 320ms ease;will-change:transform}
  .booking-progress.has-progress-indicator::before{opacity:1}
  .booking-progress.is-positioning::before{transition:none}
  .booking-progress.has-progress-indicator li.active::before{display:none}
  .booking-progress span{font-size:1.15em}
  .booking-content{height:100%;min-height:0;max-width:none;padding:clamp(70px,6vw,150px) clamp(50px,7vw,180px);overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:contain;scroll-behavior:smooth}
  .booking-content h1,.booking-content h2{font-size:clamp(2.5rem,4.2vw,7rem);margin-bottom:clamp(38px,3vw,76px)}
  .booking-services{gap:clamp(10px,.8vw,20px)}
  .booking-service{padding:clamp(19px,1.6vw,40px);gap:clamp(8px,.6vw,15px)}
  .booking-service span{font-size:clamp(1.3rem,1.5vw,2.4rem)}
  .booking-service small{font-size:clamp(.9rem,1.05vw,1.45rem)}
  .booking-service b{font-size:clamp(.78rem,.85vw,1.25rem)}
  .booking-content.booking-service-deck-active{overflow-y:hidden}
  .booking-content.booking-service-deck-active .booking-step[data-step="1"].active{display:flex;min-height:100%;height:100%;flex-direction:column}
  .booking-content.booking-service-deck-active .booking-services.booking-service-deck.is-virtual-deck{position:relative;display:block;min-height:0;flex:1;overflow:hidden}
  .booking-content.booking-service-deck-active .booking-service-deck-page{position:absolute;inset:0;display:grid;align-content:start;gap:clamp(10px,.8vw,20px);opacity:0;filter:blur(7px);pointer-events:none;transform:translate3d(0,38px,0) scale(.986);transform-origin:center;will-change:opacity,transform,filter;transition:opacity 540ms cubic-bezier(.22,1,.36,1),transform 760ms cubic-bezier(.16,1,.3,1),filter 620ms ease}
  .booking-content.booking-service-deck-active .booking-service-deck-page.is-current{opacity:1;filter:blur(0);pointer-events:auto;transform:translate3d(0,0,0) scale(1)}
  .booking-content.booking-service-deck-active .booking-service-deck-page.is-entering-from-bottom{opacity:0;filter:blur(7px);transform:translate3d(0,38px,0) scale(.986)}
  .booking-content.booking-service-deck-active .booking-service-deck-page.is-entering-from-top{opacity:0;filter:blur(7px);transform:translate3d(0,-38px,0) scale(.986)}
  .booking-content.booking-service-deck-active .booking-service-deck-page.is-leaving-up{opacity:0;filter:blur(5px);pointer-events:none;transform:translate3d(0,-34px,0) scale(.992)}
  .booking-content.booking-service-deck-active .booking-service-deck-page.is-leaving-down{opacity:0;filter:blur(5px);pointer-events:none;transform:translate3d(0,34px,0) scale(.992)}
  .booking-content.booking-service-deck-active .booking-step[data-step="1"]{position:relative}
  .booking-content.booking-service-deck-active .booking-service-scroll-cue{position:absolute;z-index:7;top:var(--booking-service-scroll-cue-top,calc(100% - 66px));left:50%;display:grid;width:clamp(44px,3.2vw,58px);height:clamp(44px,3.2vw,58px);padding:10px;place-items:center;border:0;border-radius:0;background:transparent;box-shadow:none;opacity:0;pointer-events:none;transform:translateX(-50%) translateY(-8px) scale(.84);transition:opacity 300ms ease,transform 520ms cubic-bezier(.16,1,.3,1)}
  .booking-content.booking-service-deck-active .booking-service-scroll-cue.is-visible{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(0) scale(1)}
  .booking-content.booking-service-deck-active .booking-service-scroll-cue img{display:block;width:100%;height:100%;object-fit:contain;animation:booking-service-scroll-bounce 2.05s cubic-bezier(.45,0,.25,1) infinite;transform-origin:50% 50%;will-change:transform}
  @media (hover:hover) and (pointer:fine){.booking-content.booking-service-deck-active .booking-service-scroll-cue.is-visible:hover{background:transparent;box-shadow:none;transform:translateX(-50%) translateY(0) scale(1.09)}}
}
.booking-service-scroll-cue{display:none}
.booking-services.booking-service-deck:not(.is-virtual-deck)>.booking-service-deck-page{display:contents}
.booking-header .brand{display:inline-block;width:max-content;transform-origin:center;transition:transform 480ms cubic-bezier(.16,1,.3,1)!important}
@media (hover:hover) and (pointer:fine){.booking-header .brand:hover{transform:scale(1.2)}}
@keyframes booking-service-scroll-bounce{0%,100%{transform:translate3d(0,-5px,0) scale(.97)}50%{transform:translate3d(0,10px,0) scale(1.055)}}
@keyframes booking-service-scroll-bounce-reduced{0%,100%{transform:translate3d(0,-3px,0) scale(.985)}50%{transform:translate3d(0,8px,0) scale(1.035)}}
@media (prefers-reduced-motion:reduce){.booking-service-scroll-cue img{animation:booking-service-scroll-bounce-reduced 2.3s ease-in-out infinite!important}}

.booking-aside-eyebrow,.booking-step-eyebrow{display:flex;align-items:center;gap:10px}.booking-aside-eyebrow::before,.booking-step-eyebrow::before{width:14px;height:1px;flex:0 0 14px;background:currentColor;content:""}.motion-ready body[data-page="booking"].booking-entry-pending .booking-step[data-step="1"]>h1:not(.booking-title-reveal){visibility:hidden;opacity:0}.booking-title-word{display:inline-block;white-space:nowrap}.booking-title-character{display:inline-block;white-space:pre;will-change:transform,opacity,filter}.booking-title-reveal .booking-title-character{opacity:0;filter:blur(4px);transform:translate3d(0,.38em,0) scale(.97);transition:opacity 400ms cubic-bezier(.16,1,.3,1),transform 520ms cubic-bezier(.16,1,.3,1),filter 360ms ease}.booking-title-reveal .booking-title-character.is-visible{opacity:1;filter:blur(0);transform:translate3d(0,0,0) scale(1)}
body.booking-entry-pending .booking-progress li,body.booking-entry-pending .booking-step[data-step="1"] .booking-service{opacity:0;transform:translate3d(0,16px,0)}body.booking-entry-pending.booking-entry-active .booking-progress li{animation:booking-progress-arrive 620ms cubic-bezier(.16,1,.3,1) var(--booking-progress-delay,1000ms) both}body.booking-entry-pending.booking-entry-active .booking-step[data-step="1"].active .booking-service{animation:booking-service-arrive 700ms cubic-bezier(.16,1,.3,1) var(--booking-service-delay,700ms) both}@keyframes booking-progress-arrive{0%{opacity:0;transform:translate3d(-18px,0,0)}100%{opacity:1;transform:translate3d(0,0,0)}}@keyframes booking-service-arrive{0%{opacity:0;transform:translate3d(0,22px,0) scale(.985);filter:blur(3px)}100%{opacity:1;transform:translate3d(0,0,0) scale(1);filter:blur(0)}}
.booking-shell.booking-complete{grid-template-columns:1fr}.booking-step.is-confirmed{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(36px,6vw,120px);align-items:start}.booking-review-overview,.booking-confirmation-panel{min-width:0}.booking-confirmation-panel{padding:clamp(26px,3vw,60px);border:1px solid var(--line);border-radius:var(--radius);background:var(--white)}.booking-confirmation-panel .booking-confirmation{padding:0}.booking-confirmation-panel h1{font-size:clamp(2.5rem,4.2vw,7rem)}
@media(max-width:760px){.booking-step.is-confirmed{grid-template-columns:1fr;gap:42px}.booking-confirmation-panel{padding:25px}}
body[data-page="booking"] .booking-content .booking-service{position:relative;overflow:hidden;border-color:rgba(23,32,28,.12);box-shadow:0 0 0 rgba(23,32,28,0);transform:translate3d(0,0,0);transition:transform 560ms cubic-bezier(.16,1,.3,1),border-color 380ms ease,box-shadow 560ms cubic-bezier(.16,1,.3,1),background-color 380ms ease}body[data-page="booking"] .booking-content .booking-service.selected{border-color:var(--ink);box-shadow:var(--shadow);transform:translate3d(0,0,0)}body[data-page="booking"] .booking-content .booking-service:focus-visible{outline:3px solid #61899b;outline-offset:3px}
.detail-field label{position:relative}.booking-native-select{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important;opacity:0!important;pointer-events:none}.booking-select{position:relative;width:100%}.booking-select-trigger{display:grid;width:100%;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:18px;min-height:58px;padding:0 17px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(135deg,#fff,#f5f8f9);color:var(--ink);font-weight:700;text-align:left;transition:border-color .28s ease,box-shadow .38s cubic-bezier(.16,1,.3,1),background-color .28s ease,transform .38s cubic-bezier(.16,1,.3,1)}.booking-select-value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booking-select:not(.has-value) .booking-select-value{color:var(--muted);font-weight:550}.booking-select-chevron{display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(23,32,28,.12);border-radius:50%;font-size:1.35rem;line-height:1;transition:transform .38s cubic-bezier(.16,1,.3,1),background-color .28s ease,color .28s ease}.booking-select-menu{position:absolute;z-index:20;top:calc(100% + 9px);right:0;left:0;display:grid;gap:4px;padding:8px;border:1px solid rgba(23,32,28,.12);border-radius:14px;background:rgba(255,255,255,.97);box-shadow:0 20px 46px rgba(23,32,28,.15);transform:translate3d(0,-9px,0) scale(.98);transform-origin:top;opacity:0;pointer-events:none;transition:transform .38s cubic-bezier(.16,1,.3,1),opacity .2s ease}.booking-select-menu[hidden]{display:none}.booking-select-option{width:100%;padding:12px 13px;border:0;border-radius:9px;background:transparent;color:var(--ink);font:inherit;font-weight:650;text-align:left;transition:background-color .22s ease,color .22s ease,transform .32s cubic-bezier(.16,1,.3,1)}.booking-select-option:hover,.booking-select-option:focus-visible{background:#eaf0f3;outline:0;transform:translate3d(4px,0,0)}.booking-select-option.is-selected{background:var(--forest);color:#fff}.booking-select.is-open .booking-select-trigger{border-color:#61899b;box-shadow:0 0 0 4px #d9e8ef;background:#fff}.booking-select.is-open .booking-select-chevron{background:var(--forest);color:#fff;transform:rotate(180deg)}.booking-select.is-open .booking-select-menu{opacity:1;pointer-events:auto;transform:translate3d(0,0,0) scale(1)}.booking-select.is-invalid .booking-select-trigger{border-color:#a83e34;box-shadow:0 0 0 4px #f8ddd9}.booking-select-trigger:focus-visible{outline:3px solid #61899b;outline-offset:3px}
.calendar-navigation{grid-column:1/-1;display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:10px;margin-bottom:8px}.calendar-navigation .calendar-title{grid-column:auto;margin:0;text-align:center;text-transform:capitalize}.calendar-nav-button{display:grid;width:42px;height:42px;padding:0;place-items:center;overflow:hidden;border:0;border-radius:50%;background:transparent;color:var(--ink);line-height:1;transform:scale(1);transition:transform 460ms cubic-bezier(.16,1,.3,1),filter 300ms ease}.calendar-nav-button:disabled{opacity:.32;cursor:not-allowed}.calendar-nav-icon{position:relative;display:block;width:30px;height:30px;transform:rotate(var(--calendar-icon-angle,0deg));transition:transform 520ms cubic-bezier(.16,1,.3,1)}.calendar-nav-button.is-previous .calendar-nav-icon{--calendar-icon-angle:180deg}.calendar-nav-icon-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity 240ms ease,transform 460ms cubic-bezier(.16,1,.3,1)}.calendar-nav-icon-default{opacity:1;transform:scale(1)}.calendar-nav-icon-hover{opacity:0;transform:scale(.78)}@media (hover:hover) and (pointer:fine){.calendar-nav-button:not(:disabled):hover{filter:drop-shadow(0 7px 12px rgba(23,32,28,.16));transform:scale(1.13)}.calendar-nav-button:not(:disabled):hover .calendar-nav-icon{transform:rotate(calc(var(--calendar-icon-angle,0deg) + 8deg))}.calendar-nav-button:not(:disabled):hover .calendar-nav-icon-default{opacity:0;transform:scale(1.17)}.calendar-nav-button:not(:disabled):hover .calendar-nav-icon-hover{opacity:1;transform:scale(1)}}
body[data-page="booking"] .booking-content .calendar-day{position:relative;border:1px solid transparent;transform:translate3d(0,0,0) scale(1);transform-origin:center;transition:transform 460ms cubic-bezier(.16,1,.3,1),background-color 300ms ease,border-color 300ms ease,color 300ms ease,box-shadow 460ms cubic-bezier(.16,1,.3,1)}body[data-page="booking"] .booking-content .calendar-day.selected{transform:translate3d(0,0,0) scale(1.04)}@media (hover:hover) and (pointer:fine){body[data-page="booking"] .booking-content .calendar-day:not(:disabled):hover{box-shadow:0 10px 20px rgba(23,32,28,.12);transform:translate3d(0,-1px,0) scale(1.13)}body[data-page="booking"] .booking-content .calendar-day:not(:disabled):hover:not(.selected){border-color:rgba(79, 119, 136,.46);background:#f3f8fa;color:var(--ink)}body[data-page="booking"] .booking-content .calendar-day.selected:hover{background:var(--forest);border-color:var(--forest);color:#fff}}
.booking-content h1:focus,.booking-content h2:focus{outline:0}.booking-status{min-height:0;margin:0 0 22px;color:var(--muted);font-size:.9rem}.booking-status:empty{display:none}.booking-status.is-error{padding:12px 14px;border-radius:10px;background:#fff0ec;color:#8b3329}.booking-live-summary[hidden]{display:none!important}.booking-live-summary{display:grid;gap:5px;margin-top:clamp(42px,5vw,86px);padding:18px 0;border-top:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.72)}.booking-live-summary>span{color:var(--lime);font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.booking-live-summary strong{color:#fff;font:1.35rem/.98 var(--serif)}.booking-live-summary small{font-size:.82rem}.booking-step-note{max-width:42ch;margin:-20px 0 28px;color:var(--muted);font-size:.92rem}.booking-empty{max-width:48ch;padding:20px;border-left:3px solid var(--lime);background:#f1f5f7;color:var(--muted)}.slots-heading{width:100%;margin:0 0 3px;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.booking-form label small{color:var(--muted);font-size:.82em;font-weight:500}.booking-confirmation:not([hidden]){max-width:760px;padding:clamp(34px,5vw,76px);border-radius:var(--radius);background:var(--forest);box-shadow:0 24px 60px rgba(23,32,28,.16);color:#fff}.booking-confirmation:not([hidden]) h1{margin:0 0 18px;font-size:clamp(2.9rem,5vw,5.4rem)}.booking-confirmation:not([hidden])>p:not(.eyebrow){max-width:48ch;margin:0 0 18px;color:rgba(255,255,255,.78)}.booking-email-notice{padding:13px 15px!important;border-left:3px solid var(--lime);background:rgba(255,255,255,.08);color:#fff!important}.booking-email-notice.is-warning{border-left-color:#f5c680}.booking-confirmation .button{margin-top:12px}
@media(max-width:760px){.booking-live-summary{display:none}.booking-step-note{margin-top:-14px}.booking-confirmation:not([hidden]){padding:28px}.booking-confirmation:not([hidden]) h1{font-size:clamp(2.7rem,12vw,4rem)}}
.booking-select-chevron{border:0;background:transparent url('../icons/faq-next.png') center/contain no-repeat;font-size:0;transition:transform .58s cubic-bezier(.16,1,.3,1)!important}.booking-select.is-open .booking-select-chevron{background:transparent url('../icons/faq-next.png') center/contain no-repeat;color:inherit;transform:rotate(90deg)}
.booking-back-button{gap:9px;transition:gap 320ms cubic-bezier(.16,1,.3,1) var(--back-collapse-delay,0ms),padding 320ms cubic-bezier(.16,1,.3,1) var(--back-collapse-delay,0ms),background-color .28s ease,color .28s ease,box-shadow .42s cubic-bezier(.16,1,.3,1),transform .42s cubic-bezier(.16,1,.3,1)}.booking-back-label{display:inline-flex;max-width:8ch;overflow:hidden;white-space:nowrap;transition:max-width 320ms cubic-bezier(.16,1,.3,1) var(--back-collapse-delay,0ms)}.booking-back-label-character{display:inline-block;will-change:transform,opacity;transition:opacity 180ms ease,transform 300ms cubic-bezier(.16,1,.3,1);transition-delay:0ms}.booking-back-button.is-preparing{pointer-events:none}.booking-back-button.is-returning{gap:0;padding-inline:13px;pointer-events:none;animation:booking-back-press 400ms cubic-bezier(.16,1,.3,1) both}.booking-back-button.is-returning .booking-back-label{max-width:0}.booking-back-button.is-returning .booking-back-label-character{opacity:0;transform:translate3d(.28em,0,0) scale(.86);transition-delay:var(--back-label-delay)}.booking-back-button.is-returning .booking-back-icon{transform:translate3d(0,0,0) scale(1.06)}.booking-back-button.is-icon-confirming .booking-back-icon{animation:booking-back-confirm 480ms cubic-bezier(.16,1,.3,1) both}.booking-back-icon{position:relative;display:block;width:18px;height:18px;flex:0 0 18px;transform:translate3d(0,0,0);transition:transform 320ms cubic-bezier(.16,1,.3,1) var(--back-collapse-delay,0ms)}.booking-back-icon-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:opacity 220ms ease,transform 440ms cubic-bezier(.16,1,.3,1)}.booking-back-icon-default{opacity:1;transform:scale(1)}.booking-back-icon-hover{opacity:0;transform:scale(.76)}@keyframes booking-back-press{0%{transform:translate3d(0,0,0) scale(1)}45%{transform:translate3d(0,1px,0) scale(.965)}100%{transform:translate3d(0,0,0) scale(1)}}@keyframes booking-back-confirm{0%{transform:translate3d(0,0,0) scale(1.06)}42%{transform:translate3d(-6px,0,0) scale(1.24)}72%{transform:translate3d(1px,0,0) scale(.98)}100%{transform:translate3d(0,0,0) scale(1.08)}}@media (hover:hover) and (pointer:fine){.booking-back-button:not(:disabled):not(.is-returning):hover .booking-back-icon{transform:translate3d(-2px,0,0)}.booking-back-button:not(:disabled):not(.is-returning):hover .booking-back-icon-default{opacity:0;transform:scale(1.15)}.booking-back-button:not(:disabled):not(.is-returning):hover .booking-back-icon-hover{opacity:1;transform:scale(1)}}
.booking-next-button{gap:9px;transition:gap 340ms cubic-bezier(.16,1,.3,1) var(--next-collapse-delay,0ms),padding 340ms cubic-bezier(.16,1,.3,1) var(--next-collapse-delay,0ms),background-color .28s ease,color .28s ease,box-shadow .42s cubic-bezier(.16,1,.3,1),transform .42s cubic-bezier(.16,1,.3,1)}.booking-next-label{display:inline-flex;max-width:15ch;overflow:hidden;white-space:nowrap;transition:max-width 340ms cubic-bezier(.16,1,.3,1) var(--next-collapse-delay,0ms)}.booking-next-label-character{display:inline-block;will-change:transform,opacity;transition:opacity 180ms ease,transform 300ms cubic-bezier(.16,1,.3,1);transition-delay:0ms}.booking-next-button.is-preparing{pointer-events:none}.booking-next-button.is-advancing{gap:0;padding-inline:13px;pointer-events:none;animation:booking-next-press 420ms cubic-bezier(.16,1,.3,1) both}.booking-next-button.is-advancing .booking-next-label{max-width:0}.booking-next-button.is-advancing .booking-next-label-character{opacity:0;transform:translate3d(-.28em,0,0) scale(.86);transition-delay:var(--next-label-delay)}.booking-next-button.is-advancing .booking-next-icon{transform:translate3d(0,0,0) scale(1.06)}.booking-next-button.is-icon-confirming .booking-next-icon{animation:booking-next-confirm 520ms cubic-bezier(.16,1,.3,1) both}.booking-next-icon{position:relative;display:block;width:18px;height:18px;flex:0 0 18px;transform:translate3d(0,0,0);transition:transform 340ms cubic-bezier(.16,1,.3,1) var(--next-collapse-delay,0ms)}.booking-next-icon-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:invert(1);transition:opacity 220ms ease,transform 440ms cubic-bezier(.16,1,.3,1)}.booking-next-icon-default{opacity:1;transform:scale(1)}.booking-next-icon-hover{opacity:0;transform:scale(.76)}@keyframes booking-next-press{0%{transform:translate3d(0,0,0) scale(1)}45%{transform:translate3d(0,1px,0) scale(.965)}100%{transform:translate3d(0,0,0) scale(1)}}@keyframes booking-next-confirm{0%{transform:translate3d(0,0,0) scale(1.06)}42%{transform:translate3d(6px,0,0) scale(1.24)}72%{transform:translate3d(-1px,0,0) scale(.98)}100%{transform:translate3d(0,0,0) scale(1.08)}}@media (hover:hover) and (pointer:fine){.booking-next-button:not(:disabled):not(.is-advancing):hover .booking-next-icon{transform:translate3d(2px,0,0)}.booking-next-button:not(:disabled):not(.is-advancing):hover .booking-next-icon-default{opacity:0;transform:scale(1.15)}.booking-next-button:not(:disabled):not(.is-advancing):hover .booking-next-icon-hover{opacity:1;transform:scale(1)}}
body[data-page="booking"] .booking-content .slots-heading{display:flex;align-items:center;gap:10px;width:100%;margin:0 0 3px;color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}body[data-page="booking"] .booking-content .slots-heading::before{width:14px;height:1px;flex:0 0 14px;background:currentColor;content:""}body[data-page="booking"] .booking-content .slot{border-color:rgba(23,32,28,.14);background:#fff;color:var(--ink);box-shadow:0 0 0 rgba(23,32,28,0);transform:translate3d(0,0,0) scale(1);transition:transform 460ms cubic-bezier(.16,1,.3,1),background-color 300ms ease,border-color 300ms ease,color 300ms ease,box-shadow 460ms cubic-bezier(.16,1,.3,1)}body[data-page="booking"] .booking-content .slot.selected{border-color:var(--forest);background:var(--forest);color:#fff;box-shadow:0 9px 20px rgba(23,32,28,.16);transform:translate3d(0,0,0) scale(1.045)}@media (hover:hover) and (pointer:fine){body[data-page="booking"] .booking-content .slot:not(.selected):hover{border-color:rgba(79, 119, 136,.55);background:#f1f7f9;color:var(--ink);box-shadow:0 9px 20px rgba(23,32,28,.10);transform:translate3d(0,-2px,0) scale(1.06)}body[data-page="booking"] .booking-content .slot.selected:hover{background:var(--forest);border-color:var(--forest);box-shadow:0 13px 25px rgba(23,32,28,.2);transform:translate3d(0,-1px,0) scale(1.075)}}
body[data-page="booking"] .booking-content .booking-contact-field{position:relative;display:block;min-width:0;margin:0}body[data-page="booking"] .booking-content .booking-contact-field>input,body[data-page="booking"] .booking-content .booking-contact-field>textarea{min-height:62px;padding:24px 13px 8px}body[data-page="booking"] .booking-content .booking-contact-field>textarea{min-height:126px;padding-top:29px;resize:vertical;overflow-y:auto}body[data-page="booking"] .booking-content .booking-contact-field>span{position:absolute;z-index:1;top:50%;left:13px;color:var(--muted);font-size:.91rem;font-weight:500;pointer-events:none;transform:translateY(-50%);transform-origin:left center;transition:top .34s cubic-bezier(.16,1,.3,1),transform .34s cubic-bezier(.16,1,.3,1),color .2s ease,background-color .2s ease}body[data-page="booking"] .booking-content .booking-contact-field-message>span{top:25px}body[data-page="booking"] .booking-content .booking-contact-field>span small{font:inherit;font-size:.82em}body[data-page="booking"] .booking-content .booking-contact-field>input:focus+span,body[data-page="booking"] .booking-content .booking-contact-field>input:not(:placeholder-shown)+span,body[data-page="booking"] .booking-content .booking-contact-field>textarea:focus+span,body[data-page="booking"] .booking-content .booking-contact-field>textarea:not(:placeholder-shown)+span{top:0;padding:0 5px;color:#516d79;background:var(--white);transform:translateY(-50%) scale(.82)}
body[data-page="booking"] .booking-content .booking-service{isolation:isolate;transform-origin:left center}body[data-page="booking"] .booking-content .booking-service::after{position:absolute;z-index:0;inset:0;border-radius:inherit;background:linear-gradient(110deg,rgba(82, 189, 236,.28),rgba(237, 245, 248,.5) 46%,transparent 76%);content:"";opacity:0;pointer-events:none;transform:translate3d(-13%,0,0) scaleX(.88);transform-origin:left center;transition:opacity 300ms ease,transform 560ms cubic-bezier(.16,1,.3,1)}body[data-page="booking"] .booking-content .booking-service>span,body[data-page="booking"] .booking-content .booking-service>small,body[data-page="booking"] .booking-content .booking-service>b{position:relative;z-index:1;transition:transform 480ms cubic-bezier(.16,1,.3,1)}
body[data-page="booking"] .booking-content .booking-service::before{position:absolute;z-index:2;top:18%;bottom:18%;left:0;width:3px;border-radius:0 999px 999px 0;background:var(--lime);box-shadow:0 0 16px rgba(82, 189, 236,.62);content:"";opacity:0;pointer-events:none;transform:scaleY(.18);transform-origin:center;transition:opacity 260ms ease,transform 560ms cubic-bezier(.16,1,.3,1)}body[data-page="booking"] .booking-content .booking-service::after{background:linear-gradient(108deg,rgba(82, 189, 236,.28),rgba(233, 243, 247,.58) 43%,rgba(255,255,255,0) 78%);transform:translate3d(-22%,0,0) scaleX(.76);transition:opacity 360ms ease,transform 680ms cubic-bezier(.16,1,.3,1)}body[data-page="booking"] .booking-content .booking-service>span{transition:transform 560ms cubic-bezier(.16,1,.3,1),color 300ms ease}body[data-page="booking"] .booking-content .booking-service>small{transition:transform 620ms cubic-bezier(.16,1,.3,1),color 300ms ease}body[data-page="booking"] .booking-content .booking-service>b{transition:transform 580ms cubic-bezier(.16,1,.3,1),color 300ms ease}@media (hover:hover) and (pointer:fine){body[data-page="booking"] .booking-content .booking-service:hover:not(.selected){border-color:rgba(79, 119, 136,.58);background-color:#fcfef9;box-shadow:0 14px 32px rgba(23,32,28,.10);transform:translate3d(0,-3px,0)}body[data-page="booking"] .booking-content .booking-service:hover:not(.selected)::before{opacity:1;transform:scaleY(1)}body[data-page="booking"] .booking-content .booking-service:hover:not(.selected)::after{opacity:1;transform:translate3d(0,0,0) scaleX(1)}body[data-page="booking"] .booking-content .booking-service:hover:not(.selected)>span{color:#203529;transform:translate3d(5px,0,0)}body[data-page="booking"] .booking-content .booking-service:hover:not(.selected)>small{color:#657176;transform:translate3d(5px,0,0)}body[data-page="booking"] .booking-content .booking-service:hover:not(.selected)>b{color:#34505d;transform:translate3d(-4px,0,0) scale(1.035)}}
body[data-page="booking"] .booking-select-option{opacity:0;transform:translate3d(-8px,5px,0);transition:opacity 220ms ease,transform 420ms cubic-bezier(.16,1,.3,1),background-color .22s ease,color .22s ease;transition-delay:0ms}body[data-page="booking"] .booking-select.is-open .booking-select-option{opacity:1;transform:translate3d(0,0,0);transition-delay:var(--select-option-open-delay)}body[data-page="booking"] .booking-select.is-closing .booking-select-menu{opacity:1;pointer-events:none;transform:translate3d(0,0,0) scale(1);transition:none}body[data-page="booking"] .booking-select.is-closing .booking-select-option{opacity:0;transform:translate3d(7px,-3px,0);transition-delay:var(--select-option-close-delay)}
@media (prefers-reduced-motion:no-preference){body[data-page="booking"] .booking-content .slots.is-revealing .slots-heading,body[data-page="booking"] .booking-content .slots.is-revealing .slot{opacity:0;transform:translate3d(0,9px,0) scale(.96)}body[data-page="booking"] .booking-content .slots.is-revealing .slots-heading{transition:opacity 220ms ease,transform 420ms cubic-bezier(.16,1,.3,1)}body[data-page="booking"] .booking-content .slots.is-revealing .slot{transition:opacity 220ms ease,transform 440ms cubic-bezier(.16,1,.3,1),background-color 300ms ease,border-color 300ms ease,color 300ms ease,box-shadow 460ms cubic-bezier(.16,1,.3,1)}body[data-page="booking"] .booking-content .slots.is-revealing.is-ready .slots-heading{opacity:1;transform:translate3d(0,0,0) scale(1)}body[data-page="booking"] .booking-content .slots.is-revealing.is-ready .slot{opacity:1;transform:translate3d(0,0,0) scale(1);transition-delay:var(--slot-intro-delay)}}

/* Karty služieb sedeli nalepené na hornom okraji rolovacieho kontajnera,
   ktorý má kvôli animácii prelistovania overflow: hidden. Nadvihnutie karty
   pri hoveri o 3 px sa tak orezalo aj s tieňom. Vnútorné odsadenie dá pohybu
   priestor bez toho, aby sa menila samotná animácia. */
@media (min-width:761px){
  body[data-page="booking"] .booking-content.booking-service-deck-active .booking-service-deck-page{padding:6px 5px}
  body[data-page="booking"] .booking-content.booking-service-deck-active .booking-services.booking-service-deck.is-virtual-deck{margin:-6px -5px}
}

/* Tlačidlá Skontrolovať a Potvrdiť rezerváciu boli ako jediné bez ikony.
   Kreslia sa cez currentColor, takže sedia na tmavom aj svetlom podklade. */
body[data-page="booking"] .booking-cta{display:inline-flex;align-items:center;justify-content:center;gap:11px}
body[data-page="booking"] .booking-cta-icon{display:grid;place-items:center;width:19px;height:19px;flex:0 0 19px}
body[data-page="booking"] .booking-cta-icon svg{display:block;width:100%;height:100%;transition:transform .42s cubic-bezier(.16,1,.3,1)}
@media (hover:hover) and (pointer:fine){
  body[data-page="booking"] .booking-cta:hover .booking-cta-icon svg{transform:scale(1.12)}
}
@media (prefers-reduced-motion:reduce){
  body[data-page="booking"] .booking-cta-icon svg{transition:none}
}

/* ==========================================================================
   Potvrdenie rezervácie

   Predtým to bol len nadpis a odstavec nalepené vľavo v tmavom paneli.
   Teraz je to vycentrovaný záver s odškrtnutím, zhrnutím objednávky
   a dvomi ďalšími krokmi.
   ========================================================================== */
body[data-page="booking"] .booking-confirmation{
  display:grid;justify-items:center;text-align:center;
  max-width:520px;margin:0 auto;padding:clamp(24px,4vw,44px) 0;
  outline:none;
  opacity:0;transform:translate3d(0,14px,0);
  transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .6s cubic-bezier(.16,1,.3,1);
}
body[data-page="booking"] .booking-confirmation.is-ready{opacity:1;transform:none}

/* Text sa pri zaostreni panelu neoznaci na modro. */
body[data-page="booking"] .booking-confirmation ::selection{background:rgba(82, 189, 236,.32)}

body[data-page="booking"] .done-mark{
  display:grid;place-items:center;width:64px;height:64px;margin-bottom:22px;
  border-radius:50%;background:var(--lime);color:#1c3026;
  transform:scale(.7);opacity:0;
  transition:transform .62s cubic-bezier(.16,1,.3,1) .1s,opacity .4s ease .1s;
}
body[data-page="booking"] .booking-confirmation.is-ready .done-mark{transform:none;opacity:1}
body[data-page="booking"] .done-mark svg{width:30px;height:30px;stroke-width:2.2}

body[data-page="booking"] .booking-confirmation .eyebrow{
  justify-content:center;margin:0 0 12px;color:var(--lime)
}
body[data-page="booking"] .done-title{
  margin:0 0 14px !important;font-size:clamp(2rem,4vw,3.1rem) !important;line-height:1.02
}
body[data-page="booking"] .done-lead{
  max-width:40ch;margin:0 0 26px;color:rgba(255,255,255,.78);font-size:.98rem;line-height:1.6
}

/* Zhrnutie objednávky */
body[data-page="booking"] .done-facts{
  width:100%;display:grid;gap:0;margin:0 0 20px;
  border:1px solid rgba(255,255,255,.16);border-radius:14px;
  background:rgba(255,255,255,.05);overflow:hidden;text-align:left
}
body[data-page="booking"] .done-facts>div{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:baseline;
  padding:13px 18px;border-bottom:1px solid rgba(255,255,255,.1)
}
body[data-page="booking"] .done-facts>div:last-child{border-bottom:0}
body[data-page="booking"] .done-facts dt{margin:0;color:rgba(255,255,255,.6);font-size:.82rem}
body[data-page="booking"] .done-facts dd{margin:0;color:#fff;font-size:.94rem;font-weight:700;text-align:right;overflow-wrap:anywhere}

body[data-page="booking"] .booking-email-notice{
  margin:0 0 24px;padding:11px 16px;border-radius:10px;
  background:rgba(82, 189, 236,.12);color:rgba(255,255,255,.85);font-size:.86rem
}
body[data-page="booking"] .booking-email-notice.is-warning{background:rgba(216,142,132,.16)}

body[data-page="booking"] .done-actions{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px 22px
}
body[data-page="booking"] .done-actions .text-link{color:rgba(255,255,255,.82);font-size:.88rem}
body[data-page="booking"] .done-actions .text-link:hover{color:#fff}

@media (max-width:760px){
  body[data-page="booking"] .booking-confirmation{padding:16px 0 32px}
  body[data-page="booking"] .done-mark{width:54px;height:54px;margin-bottom:18px}
  body[data-page="booking"] .done-facts>div{grid-template-columns:1fr;gap:2px}
  body[data-page="booking"] .done-facts dd{text-align:left}
  body[data-page="booking"] .done-actions{flex-direction:column;width:100%}
  body[data-page="booking"] .done-actions .button{width:100%;max-width:320px}
}

@media (prefers-reduced-motion:reduce){
  body[data-page="booking"] .booking-confirmation,
  body[data-page="booking"] .done-mark{transition:none;transform:none;opacity:1}
}


/* --------------------------------------------------------------------------
   Zhrnutie v bočnom paneli: vlastný nábeh

   Pri načítaní stránky nabiehajú nad zhrnutím kroky 1 až 5 a trvá im to okolo
   dvoch sekúnd. Keď mal návštevník rozrobenú rezerváciu, zhrnutie sa obnovilo
   z rozpracovaného stavu a zjavilo sa hneď, takže chvíľu viselo samé pod
   prázdnym miestom. Teraz počká, kým posledný krok dosadne, a príde za ním.

   Nábeh je samostatná animácia a nie súčasť vstupnej postupnosti krokov,
   pretože zhrnutie sa odhaľuje aj neskôr, pri výbere služby. Vtedy sa už
   nečaká na nič a trieda sa pridá okamžite.
   -------------------------------------------------------------------------- */
body[data-page="booking"] .booking-live-summary.is-arriving {
  animation: booking-summary-arrive 620ms cubic-bezier(.16, 1, .3, 1) both;
}
@keyframes booking-summary-arrive {
  0%   { opacity: 0; transform: translate3d(0, 14px, 0); }
  100% { opacity: 1; transform: none; }
}

/* Odznak s DPH: viditeľný počas celej rezervácie, nie len na prvom kroku,
   preto sedí v bočnom paneli a nie v jednotlivých krokoch. */
body[data-page="booking"] .booking-vat-badge {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  width: max-content;
  margin: 14px 0 26px;
  padding: 7px 13px;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
  color: rgba(255, 255, 255, .82);
  font-size: .74rem;
  font-weight: 650;
  letter-spacing: .01em;
}
body[data-page="booking"] .booking-vat-badge::before {
  flex: 0 0 auto;
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--lime);
  content: "";
}
