.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.booking{padding-block:20px 90px}.booking-shell{display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:start}.booking-panel:not(.booking-panel-wide){align-self:center}.booking-panel-wide{grid-column:1/-1;max-width:760px}.booking-info{position:sticky;top:32px}.booking-info h1{font-size:clamp(40px,4vw,58px);line-height:1.08;letter-spacing:-2.4px;font-weight:500;margin:22px 0 26px}.booking-info .lead{max-width:520px}.booking-facts{margin:36px 0 0;border-top:1px solid var(--line)}.booking-facts>div{display:grid;grid-template-columns:minmax(130px,180px) 1fr;gap:8px 20px;align-items:center;padding:16px 0;border-bottom:1px solid var(--line)}.booking-facts dt{font-size:16px;font-weight:700;letter-spacing:.3px}.booking-facts dd{margin:0;font-size:18px;color:var(--muted)}.booking-facts label{font-size:16px;font-weight:700;margin:0}.booking-facts select{margin:0;width:100%}.booking-note{font-size:17px;line-height:1.65;color:var(--muted);margin-top:18px}.booking-note .text-link{margin-top:4px}.booking-panel{min-height:420px}.booking-steps{display:flex;flex-wrap:wrap;gap:10px 26px;margin-bottom:34px;border-bottom:1px solid var(--line);padding-bottom:18px}.booking-steps li{display:flex;gap:10px;border:0;padding:0;font-size:17px;color:var(--muted)}.booking-steps li span{font-family:Georgia,serif;color:#b3adc0}.booking-steps li[aria-current=step]{color:#292633;font-weight:600}.booking-steps li[aria-current=step] span,.booking-steps li.is-done span{color:var(--purple)}.booking-panel h2{font-size:clamp(30px,3vw,40px);line-height:1.15;letter-spacing:-1.4px;margin:0 0 12px}.booking-panel h2:focus{outline:none}.booking-panel h2:focus-visible{outline:3px solid #9673bc;outline-offset:5px}.booking-hint{font-size:17px;line-height:1.65;color:var(--muted);margin-bottom:24px}.day-list,.slot-list{display:grid;gap:14px;margin:0 0 10px}.day-list{grid-template-columns:repeat(auto-fill,minmax(158px,1fr))}.slot-list{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}.day-list li,.slot-list li{border:0;padding:0;display:block}.day-button,.slot-button{width:100%;background:#fff;border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .2s,background .2s,transform .2s;text-align:left}.day-button{display:grid;gap:4px;padding:16px 18px}.day-button:hover,.slot-button:hover{border-color:var(--purple);background:#f4f0f8;transform:translateY(-2px)}.day-weekday{font-size:15px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.day-button strong{font-size:21px;font-weight:500}.day-count{font-size:15px;color:var(--muted)}.slot-button{padding:15px 10px;text-align:center;font-size:19px;font-weight:600;font-variant-numeric:tabular-nums}.back-link{align-self:flex-start;background:none;border:0;padding:0;margin-bottom:18px;font-size:17px;color:var(--purple);cursor:pointer;border-bottom:1px solid #817288}.back-link:hover{color:#4e326e}.booking-alert{border:1px solid #d8c2c2;background:#f6eaea;border-radius:8px;padding:20px 22px;margin-bottom:26px}.booking-alert h2{font-size:24px;letter-spacing:-.6px;margin-bottom:8px}.booking-alert p{font-size:18px;line-height:1.7;color:#5c3a3a}.booking-alert .button{margin-top:18px}.booking-alert:focus{outline:none}.booking-loading{display:grid;gap:14px}.booking-loading .booking-hint{margin-bottom:6px}.skeleton{height:78px;border-radius:8px;background:linear-gradient(90deg,#eeebf3,#f7f5fa,#eeebf3);background-size:200% 100%;animation:booking-pulse 1.4s ease-in-out infinite}.skeleton-day{width:100%}@keyframes booking-pulse{0%{background-position:0 0}to{background-position:-200% 0}}.booking-panel form{background:#efecf3;border-radius:8px;padding:28px}.booking-panel input[type=text],.booking-panel input[type=email]{width:100%;border:1px solid #d2ccd9;border-radius:4px;padding:13px;background:#faf9fc;color:#292633;margin-bottom:20px}.booking-panel label{display:block;font-size:17px;font-weight:600;margin-bottom:9px}.field-required{font-weight:400;color:var(--muted);font-size:15px}.field-error{font-size:16px;color:#a4373a;margin:-12px 0 18px}.booking-panel .consent-field{display:flex;gap:14px;align-items:flex-start;font-size:17px;font-weight:400;line-height:1.6;margin:8px 0 26px;cursor:pointer}.booking-panel .consent-field input[type=checkbox]{flex:0 0 auto;width:22px;height:22px;margin:3px 0 0;accent-color:var(--purple);cursor:pointer}.booking-panel .consent-field a{border-bottom:1px solid #817288;white-space:nowrap}.consent-summary{font-size:17px;color:var(--muted);margin:-10px 0 22px}.consent-summary:before{content:"✓";color:var(--purple);font-weight:700;margin-right:9px}.booking-summary{margin:0 0 26px;border-top:1px solid var(--line)}.booking-summary>div{display:grid;grid-template-columns:minmax(120px,180px) 1fr;gap:6px 20px;padding:15px 0;border-bottom:1px solid var(--line)}.booking-summary dt{font-size:16px;font-weight:700;color:#393441}.booking-summary dd{margin:0;font-size:18px;line-height:1.6;color:var(--muted);overflow-wrap:anywhere}.booking-success{max-width:720px}.booking-success-heading{font-size:clamp(38px,4.4vw,58px);letter-spacing:-2.2px;margin-bottom:18px}.booking-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:8px}.button-quiet{background:transparent;color:var(--purple);border:1px solid #bcb6c4}.button-quiet:hover{background:#eeebf3;color:#4e326e}.booking-embed{margin-top:10px;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#fff}.booking-embed iframe{display:block;width:100%;height:720px;border:0}@media(max-width:1000px){.booking-shell{grid-template-columns:1fr;gap:44px}.booking-info{position:static}.booking-info h1{margin-block:18px 22px}}@media(max-width:700px){.booking{padding-block:8px 60px}.booking-facts>div{grid-template-columns:1fr;gap:4px}.booking-facts select{margin-top:6px}.booking-steps{gap:8px 18px;margin-bottom:26px}.booking-steps li{font-size:16px}.day-list{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}.slot-list{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.booking-panel form{padding:22px}.booking-summary>div{grid-template-columns:1fr;gap:2px}.booking-embed iframe{height:560px}}@media(prefers-reduced-motion:reduce){.skeleton{animation:none}.day-button:hover,.slot-button:hover{transform:none}}
