/* Appointment menu. Original black, cream, gold and local fonts. */
.booking-shell{background:var(--paper);color:var(--ink)}
.booking-shell .services{display:block;padding-block:65px 55px}
.booking-shell .appointment-heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:32px}
.booking-shell .appointment-heading .eyebrow{color:var(--gold-dark);margin-bottom:15px}
.booking-shell .appointment-heading h2{font:700 clamp(64px,6.4vw,92px)/.95 var(--display);letter-spacing:-1px;color:var(--ink)}
.booking-shell .appointment-intro{padding-bottom:4px}
.booking-shell .appointment-intro p{font-size:14px;line-height:1.8;color:var(--muted)}
.booking-shell .appointment-intro>span{display:block;margin-top:14px;font-size:9px;letter-spacing:2px;color:var(--gold-dark)}
.booking-shell .appointment-desk{background:var(--ink);padding:0 26px}
.booking-shell .service-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:0}
.booking-shell .service-choice{display:flex;flex-direction:column;position:relative;width:100%;min-height:390px;padding:25px 28px 27px;border:0;border-right:1px solid #f4f2ed30;background:transparent;color:var(--paper);text-align:left;isolation:auto;overflow:hidden;transition:background .25s}
.booking-shell .service-choice:last-child{border-right:0}
.booking-shell .choice-topline{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;font-size:10px;letter-spacing:1px;color:#c3c2b8}
.booking-shell .choice-topline>span:first-child{font:500 23px/1 var(--display);color:var(--gold)}
.booking-shell .choice-art{display:block;position:relative;width:100%;height:125px;margin:13px 0 14px}
.booking-shell .choice-art>svg{position:absolute;right:8px;top:0;width:119px;height:119px;color:var(--gold);opacity:.7;transform:rotate(-12deg);transition:transform .55s cubic-bezier(.22,1,.36,1),opacity .3s}
.booking-shell .service-choice:nth-child(2) .choice-art>svg{transform:rotate(12deg)}
.booking-shell .service-choice:nth-child(3) .choice-art>svg{right:46px;width:105px;height:105px;transform:rotate(-25deg)}
.booking-shell .service-choice:nth-child(3) .choice-art>.choice-second-tool{right:0;top:35px;transform:rotate(12deg);width:95px;height:95px}
.booking-shell .service-choice:nth-child(4) .choice-art>svg{transform:rotate(32deg)}
.booking-shell .choice-title{display:block;max-inline-size:7ch;font:700 clamp(36px,3.5vw,51px)/.95 var(--display);letter-spacing:0;text-transform:uppercase;text-wrap:balance;color:var(--paper);margin:0 0 13px;min-height:97px}
.booking-shell .choice-description{display:block;font-size:11px;line-height:1.8;color:#c3c2b8;max-width:210px;min-height:40px;padding:0;margin:0}
.booking-shell .choice-bottom{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;padding:21px 0 0;margin:22px 0 0;border-top:1px solid #f4f2ed30;color:var(--paper)}
.booking-shell .choice-bottom>strong{font:600 32px/1 var(--display);color:var(--paper)}
.booking-shell .choice-action{display:flex;align-items:center;gap:10px;font-size:9px;letter-spacing:.5px;color:var(--gold)}
.booking-shell .choice-arrow{display:grid;place-items:center;width:42px;height:42px;border:1px solid #c9ad7355;font-size:23px;transition:background .25s,color .25s,transform .25s}
.booking-shell .service-choice:hover,.booking-shell .service-choice:focus-visible{background:#f4f2ed08}
.booking-shell .service-choice:hover .choice-art>svg,.booking-shell .service-choice:focus-visible .choice-art>svg{transform:translateY(-7px) rotate(0);opacity:1}
.booking-shell .service-choice:hover .choice-arrow,.booking-shell .service-choice:focus-visible .choice-arrow{background:var(--gold);color:var(--ink);transform:translate(2px,-2px)}
.booking-shell .service-choice:focus-visible{outline:2px solid var(--gold);outline-offset:-4px}
.booking-shell .appointment-footnote{display:flex;justify-content:space-between;gap:20px;padding-top:17px;font-size:11px;color:var(--muted);line-height:1.8}
.booking-shell .appointment-footnote>span:last-child{font-size:10px}
.appointment-picker{width:780px;max-width:calc(100vw - 40px);max-height:calc(100dvh - 40px);padding:0;border:0;background:var(--paper);color:var(--ink);overflow:hidden}
.appointment-picker[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto auto}
.appointment-picker:not([open]){display:none}
.appointment-picker::backdrop{background:#181918aa;backdrop-filter:blur(7px)}
.appointment-picker .picker-heading{display:flex;justify-content:space-between;align-items:center;gap:24px;background:var(--ink);color:var(--paper);padding:30px 75px 28px 32px;position:relative}
.appointment-picker .picker-heading .eyebrow{color:var(--gold);font-size:9px;letter-spacing:1.5px;margin-bottom:13px}
.appointment-picker #picker-title{font:700 47px/1 var(--display);color:var(--paper);letter-spacing:0;text-transform:uppercase}
.appointment-picker #picker-duration{font-size:11px;line-height:1.8;color:#c3c2b8;margin-top:10px}
.appointment-picker #picker-total{font:600 38px/1 var(--display);color:var(--gold);white-space:nowrap}
.appointment-picker .picker-close{position:absolute;right:16px;top:16px;width:44px;height:44px;display:grid;place-items:center;background:none;border:1px solid #f4f2ed33;color:var(--paper);font-size:28px;line-height:1}
.appointment-picker .picker-body{padding:25px 32px 28px;overflow-y:auto;min-height:0;overscroll-behavior:contain}
.appointment-picker h3{font:600 27px/1.15 var(--display);margin:0;color:var(--ink)}
.appointment-picker .picker-date-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:17px}
.appointment-picker .picker-custom-date{display:flex;align-items:center;gap:12px;padding:0;margin:0;border:0}
.appointment-picker .picker-custom-date label{font-size:11px;white-space:nowrap;color:var(--muted)}
.appointment-picker .picker-custom-date input{margin:0;background:transparent;color:var(--ink);color-scheme:light;width:153px;height:44px;font-size:13px;border:1px solid var(--line)}
.appointment-picker .picker-days{grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}
.appointment-picker .picker-day{min-height:90px;padding:9px 3px;border:1px solid var(--line);background:none;color:var(--ink);border-radius:0}
.appointment-picker .picker-day>span{font-size:11px;line-height:1.5;color:var(--muted)}
.appointment-picker .picker-day>strong{font:600 31px/1.2 var(--display);margin:4px 0;color:inherit}
.appointment-picker .picker-day>small{font-size:10px;color:var(--muted)}
.appointment-picker .picker-day[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.appointment-picker .picker-day[aria-pressed="true"]>span,.appointment-picker .picker-day[aria-pressed="true"]>small{color:var(--gold)}
.appointment-picker .picker-day:hover{border-color:var(--gold-dark)}
.appointment-picker .picker-time-heading{display:flex;justify-content:space-between;align-items:end;gap:15px;margin:25px 0 15px}
.appointment-picker #picker-date-caption{font-size:12px;color:var(--muted);line-height:1.8}
.appointment-picker .picker-slots{grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;min-height:148px}
.appointment-picker .picker-slot{background:transparent;border:1px solid var(--line);min-height:44px;border-radius:0;font-size:12px;color:var(--ink)}
.appointment-picker .picker-slot:hover{background:var(--panel);border-color:var(--gold-dark)}
.appointment-picker .picker-slot[aria-pressed="true"]{background:var(--gold);border-color:var(--gold-dark);color:var(--ink)}
.appointment-picker .picker-message{grid-column:1/-1;font-size:12px;color:var(--muted);line-height:1.9;padding-block:12px}
.appointment-picker .picker-message button{display:block;min-height:44px}
.appointment-picker .picker-bottom{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:20px 32px;border-top:1px solid var(--line)}
.appointment-picker #picker-selection{font-size:13px;color:var(--ink);margin:0;line-height:1.8}
.appointment-picker #picker-next{width:auto;min-width:225px;min-height:48px;font-size:12px;justify-content:space-between;gap:30px}
.appointment-picker #picker-next:disabled{opacity:.5;cursor:default}
.appointment-picker .picker-payment{display:block;text-align:left;font-size:10px;line-height:1.8;margin:0;padding:0 32px 20px;color:var(--muted)}
.appointment-picker button:focus-visible,.appointment-picker input:focus-visible{outline:2px solid var(--gold-dark);outline-offset:3px}
.appointment-picker .picker-close:focus-visible{outline-color:var(--gold)}
.footer>.footer-bottom{margin-top:0;border-top:0;padding-top:0}
@media(max-width:1150px){.booking-shell .appointment-desk{padding-inline:10px}.booking-shell .service-choice{padding-inline:20px}.booking-shell .choice-title{font-size:44px;min-height:85px}.booking-shell .choice-art{height:115px}.booking-shell .choice-art>svg{width:110px;height:110px}.booking-shell .choice-bottom{gap:8px}.booking-shell .choice-action{gap:7px;font-size:8px}.booking-shell .choice-arrow{width:36px;height:36px}.booking-shell .choice-bottom>strong{font-size:30px}}
@media(max-width:900px){.booking-shell .service-list{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-shell .appointment-desk{padding-inline:20px}.booking-shell .service-choice{min-height:350px;padding:25px}.booking-shell .service-choice:nth-child(2){border-right:0}.booking-shell .service-choice:nth-child(-n+2){border-bottom:1px solid #f4f2ed30}.booking-shell .choice-title{font-size:49px;min-height:94px}.booking-shell .choice-art{position:absolute;right:27px;top:64px;width:120px;height:125px;margin:0;opacity:.6}.booking-shell .choice-title{margin-top:35px;position:relative}.booking-shell .choice-description{max-width:190px}.booking-shell .choice-bottom{margin-top:25px}.booking-shell .choice-action{font-size:9px;gap:12px}.booking-shell .choice-arrow{width:42px;height:42px}.booking-shell .choice-bottom>strong{font-size:32px}.booking-shell .appointment-intro p{font-size:12px}.booking-shell .appointment-footnote{font-size:10px}}
@media(max-width:650px){.booking-shell .services{padding-block:43px 40px}.booking-shell .appointment-heading{display:block;margin-bottom:25px}.booking-shell .appointment-heading .eyebrow{font-size:9px;margin-bottom:14px}.booking-shell .appointment-heading h2{font-size:63px}.booking-shell .appointment-intro{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:16px}.booking-shell .appointment-intro p{font-size:11px}.booking-shell .appointment-intro>span{font-size:8px;letter-spacing:1px;max-width:85px;line-height:1.8;margin:0}.booking-shell .appointment-desk{padding:0 8px}.booking-shell .service-choice{padding:18px 13px;min-height:287px}.booking-shell .choice-topline{font-size:8px;letter-spacing:.6px}.booking-shell .choice-topline>span:first-child{font-size:19px}.booking-shell .choice-art{right:9px;top:52px;width:78px;height:90px;opacity:.48}.booking-shell .choice-art>svg{width:77px;height:77px;right:0}.booking-shell .service-choice:nth-child(3) .choice-art>svg{width:70px;height:70px;right:19px}.booking-shell .service-choice:nth-child(3) .choice-art>.choice-second-tool{width:59px;height:59px;right:0;top:25px}.booking-shell .choice-title{font-size:36px;min-height:69px;margin:34px 0 12px;max-inline-size:6.8ch}.booking-shell .choice-description{font-size:10px;line-height:1.7;min-height:35px;max-width:125px}.booking-shell .choice-bottom{margin:18px 0 0;padding-top:16px;gap:6px}.booking-shell .choice-bottom>strong{font-size:29px}.booking-shell .choice-action{font-size:0;gap:0}.booking-shell .choice-arrow{width:36px;height:36px;font-size:21px}.booking-shell .appointment-footnote{flex-direction:column;gap:7px;font-size:10px}.booking-shell .appointment-footnote>span:last-child{font-size:9px}.appointment-picker{max-width:calc(100vw - 20px);max-height:calc(100dvh - 24px)}.appointment-picker .picker-heading{padding:25px 58px 23px 20px;gap:13px}.appointment-picker .picker-heading .eyebrow{font-size:8px;letter-spacing:.6px;margin-bottom:12px}.appointment-picker #picker-title{font-size:35px}.appointment-picker #picker-total{font-size:27px}.appointment-picker #picker-duration{font-size:10px;max-width:170px;line-height:1.7}.appointment-picker .picker-close{right:8px;top:9px;width:40px;height:44px}.appointment-picker .picker-body{padding:20px}.appointment-picker h3{font-size:25px}.appointment-picker .picker-date-heading{align-items:start;flex-direction:column;gap:11px;margin-bottom:16px}.appointment-picker .picker-custom-date{justify-content:space-between;width:100%}.appointment-picker .picker-custom-date input{width:162px;font-size:16px}.appointment-picker .picker-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.appointment-picker .picker-day{min-height:75px;padding:7px 3px}.appointment-picker .picker-day>strong{font-size:28px;margin:2px 0}.appointment-picker .picker-day>span{font-size:10px}.appointment-picker .picker-day>small{font-size:9px}.appointment-picker .picker-time-heading{align-items:start;flex-direction:column;gap:7px;margin:23px 0 14px}.appointment-picker #picker-date-caption{font-size:11px}.appointment-picker .picker-slots{grid-template-columns:repeat(4,minmax(0,1fr));min-height:196px;gap:7px}.appointment-picker .picker-bottom{padding:16px 20px;flex-direction:column;align-items:stretch;gap:12px}.appointment-picker #picker-selection{font-size:12px}.appointment-picker #picker-next{min-width:0;width:100%;min-height:48px;font-size:12px}.appointment-picker .picker-payment{padding:0 20px 15px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.booking-shell .service-choice,.booking-shell .choice-art>svg,.booking-shell .choice-arrow{transition:none}.booking-shell .service-choice:hover .choice-art>svg,.booking-shell .service-choice:focus-visible .choice-art>svg{transform:none}}
.appointment-picker #picker-error:empty{display:none}
.appointment-picker #picker-error:not(:empty){margin:0 0 18px;font-size:12px;line-height:1.8}
@media(max-width:650px){.booking-shell .choice-title{font-size:clamp(29px,8.8vw,36px);min-height:64px}.appointment-picker .picker-close{width:44px}}
@media(max-width:650px){.booking-shell .service-choice:nth-child(4) .choice-art>svg{right:12px}}
