@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap";:root{--color-text:#141414;--color-muted:#5c5c5c;--color-border:#e1e1e1;--color-primary:#212121;--color-bg:#fff;--container:1240px;--gutter:24px;--fade-duration:.3s;--header-height:80px}*,:before,:after{box-sizing:border-box}body{color:var(--color-text);background:var(--color-bg);margin:0;font-family:Inter,helvetica,arial,sans-serif;font-size:14px;line-height:1.5}h1,h2,h3,p,ul,dl,dd{margin:0;padding:0}a{color:inherit}.header{height:var(--header-height);background:var(--color-bg)}.header__inner{align-items:center;max-width:1280px;height:100%;margin:0 auto;padding:0 8px;display:flex}.header__brand{font-size:20px;font-weight:500;line-height:1.2;text-decoration:none}.hero{background:linear-gradient(#0006, #0006), #3a3a3a var(--hero-image,url(/images/hero.jpg)) center / cover no-repeat;opacity:0;height:340px;transition:opacity var(--fade-duration) ease}.hero--loaded{opacity:1}@keyframes rise-in{0%{opacity:0;transform:translateY(20%)}to{opacity:1;transform:none}}.fade-image{opacity:0;transition:opacity var(--fade-duration) ease}.fade-image--loaded{opacity:1}.page{max-width:calc(var(--container) + 2 * var(--gutter));padding:40px var(--gutter) 80px;margin:0 auto}.page--loading{min-height:calc(100dvh - var(--header-height));place-items:center;display:grid}body:has(.page--loading) .footer{display:none}.page__intro{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.page__title{margin-bottom:16px;font-size:20px;font-weight:500}.page__address{font-size:14px}.page__actions{flex-direction:column;gap:8px;width:240px;display:flex}.button{letter-spacing:-.16px;border:2px solid var(--color-primary);cursor:pointer;border-radius:8px;place-items:center;height:48px;padding:0 24px;font-size:16px;text-decoration:none;display:grid}.button--primary{color:#fff;background:var(--color-primary)}.button--secondary{color:var(--color-primary);background:var(--color-bg)}.tabs{margin-top:28px;padding:0 16px}.tabs__tab{font:inherit;color:var(--color-text);border:0;border-bottom:2px solid var(--color-text);cursor:pointer;background:0 0;padding:14px 0 17px}.service-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:33px;list-style:none;display:grid}.service-list>.service-card{animation:rise-in var(--fade-duration) ease backwards;animation-delay:calc(var(--index) * .1s)}.service-card{border:1px solid var(--color-border);border-radius:2px;justify-content:space-between;gap:16px;min-height:170px;padding:16px;display:flex;position:relative}.service-card__body{flex-direction:column;flex:1;min-width:0;display:flex}.service-card__name{font-size:14px;font-weight:600}.service-card__description{-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:26px;display:-webkit-box;overflow:hidden}.service-card__meta{gap:8px;margin-top:auto;padding-top:16px;display:flex}.service-card__open{font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;padding:0}.service-card__open:after{content:"";position:absolute;inset:0}.service-card__open:focus-visible{outline:none}.service-card__open:focus-visible:after{outline:2px solid var(--color-primary);outline-offset:2px}body:has(.service-dialog[open]){overflow:hidden}.service-dialog{width:min(560px,100vw - 32px);max-height:calc(100vh - 32px);color:inherit;background:var(--color-bg);border:0;border-radius:2px;padding:0;overflow:auto}.service-dialog::backdrop{background:#0000008c}.service-card--expanded{min-height:0;padding-right:48px;position:relative}.service-card--expanded .service-card__description{display:block;overflow:visible}.service-dialog__close{width:32px;height:32px;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;font-size:22px;line-height:1;position:absolute;top:8px;right:8px}.service-card__image{object-fit:cover;border-radius:4px;flex:none;width:80px;height:80px}.location{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:32px;margin-top:64px;display:grid}.location__map{border-radius:2px;width:100%;height:340px;overflow:hidden}.location__map-frame{opacity:0;width:100%;height:100%;transition:opacity var(--fade-duration) ease;border:0}.location__map-frame--loaded{opacity:1}.location__title{margin-bottom:24px;font-size:20px;font-weight:500}.location__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;display:grid}.location__address{flex-direction:column;gap:4px;font-style:normal;display:flex}.location__directions{color:#3374ff;margin-top:12px;text-decoration:none}.location__hours-row{gap:16px;padding:4px 0;display:flex}.location__hours-row dt{min-width:80px}.footer{border-top:1px solid var(--color-border);margin-top:48px}.footer__inner{max-width:calc(var(--container) + 2 * var(--gutter));padding:32px var(--gutter) 48px;flex-direction:column;gap:12px;margin:0 auto;display:flex}.footer__brand{font-size:20px;font-weight:500}.footer__inner a{text-decoration:none}.footer__copyright{color:var(--color-muted)}@media (width<=720px){:root{--gutter:16px;--header-height:64px}.hero{height:200px}.page__actions{width:100%}.service-list,.location,.location__grid{grid-template-columns:minmax(0,1fr)}.location__map{height:260px}}.service-card__meta a{text-decoration:none;position:relative}.page--narrow{max-width:640px}.form{flex-direction:column;gap:24px;margin-top:24px;display:flex}.form--inline{margin-top:40px}.form__section{border:1px solid var(--color-border);border-radius:2px;flex-direction:column;gap:12px;min-width:0;padding:16px;display:flex}.form__section legend{padding:0 8px;font-weight:600}.choice{cursor:pointer;align-items:center;gap:8px;display:flex}.field{flex-direction:column;gap:4px;display:flex}.field input,.field select,.field textarea{font:inherit;border:1px solid var(--color-border);border-radius:4px;padding:10px 12px}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible,.time-grid__slot:focus-visible,.button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.time-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;display:grid}.time-grid__slot{font:inherit;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);cursor:pointer;border-radius:4px;padding:10px 8px}.time-grid__slot--selected{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.form__hint{color:var(--color-muted)}.form__error{color:#b00020}.link-button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.button:disabled{opacity:.4;cursor:not-allowed}.notice{background:#f3f3f3;border-radius:4px;margin-top:16px;padding:12px 16px}.booking-list{flex-direction:column;gap:16px;margin-top:24px;list-style:none;display:flex}.booking-card{border:1px solid var(--color-border);border-radius:2px;padding:16px}.booking-card__title{margin-bottom:8px;font-size:16px;font-weight:600}.booking-card__code{overflow-wrap:anywhere;color:var(--color-muted);margin-top:8px}.admin__cancel{width:auto;height:40px}.booking-card__status{margin-top:8px;font-weight:600}.booking-card__actions{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.booking-card__actions .button{width:auto;height:40px}.admin__tabs{border-bottom:1px solid var(--color-border);gap:8px;margin:16px 0 8px;display:flex}.admin__tab{font:inherit;color:var(--color-muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 16px}.admin__tab--active{color:var(--color-text);border-bottom-color:var(--color-primary);font-weight:600}.calendar__nav{justify-content:space-between;align-items:center;gap:8px;margin:16px 0;display:flex}.calendar__nav .button{width:44px;height:40px}.calendar__title{font-size:18px;font-weight:600}.calendar__grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.calendar__weekday{text-align:center;color:var(--color-muted);padding:4px 0;font-size:12px}.calendar__day{min-height:64px;font:inherit;text-align:left;color:var(--color-text);background:var(--color-bg);border:1px solid var(--color-border);cursor:pointer;border-radius:4px;flex-direction:column;gap:2px;padding:6px;display:flex}.calendar__day--closed{color:var(--color-muted);background:#f3f3f3}.calendar__day--custom .calendar__date:after{content:" •"}.calendar__day--selected{border-color:var(--color-primary);outline:2px solid var(--color-primary)}.calendar__date{font-weight:600}.calendar__hours{overflow-wrap:anywhere;font-size:11px;line-height:1.2}.calendar--picker .calendar__day{justify-content:center;align-items:center;min-height:44px}@keyframes pop-in{0%{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}.calendar--picker .calendar__day--enter{animation:pop-in var(--fade-duration) ease backwards;animation-delay:calc(var(--index) * 10ms)}.calendar--picker .calendar__day{transition:color var(--fade-duration) ease, background-color var(--fade-duration) ease, border-color var(--fade-duration) ease}.calendar__day:disabled{color:#b5b5b5;cursor:not-allowed;background:#f3f3f3;border-color:#0000}.calendar__editor{margin-top:16px}.calendar__hours-pickers{grid-template-columns:1fr 1fr;gap:12px;display:grid}.newsletter{border-top:1px solid var(--color-border);max-width:500px;margin-top:24px;padding-top:24px}.newsletter__title{margin-bottom:12px;font-size:16px;font-weight:500}.newsletter__row{display:flex}.newsletter__input{min-width:0;height:40px;font:inherit;border:1px solid var(--color-border);border-right:0;border-radius:4px 0 0 4px;flex:1;padding:0 12px}.newsletter__button{height:40px;font:inherit;color:#fff;background:var(--color-primary);cursor:pointer;border:0;border-radius:0 4px 4px 0;padding:0 20px}.newsletter__button:disabled{opacity:.5;cursor:not-allowed}.newsletter__input:focus-visible,.newsletter__button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.newsletter__message{margin-top:8px}.image-picker__preview{object-fit:cover;border-radius:4px;max-width:240px;max-height:160px}.service-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.service-row__thumb{object-fit:cover;border-radius:4px;width:64px;height:64px}.service-row__info{flex:160px;min-width:0}.service-row__info .booking-card__title{margin-bottom:4px}.service-row__badge{color:var(--color-muted);background:#f3f3f3;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:12px;font-weight:500}.service-row .booking-card__actions{margin-top:0}@media (prefers-reduced-motion:reduce){.hero,.fade-image,.location__map-frame,.calendar--picker .calendar__day{transition:none}.service-list>.service-card,.calendar--picker .calendar__day--enter{animation:none}}
