:root{color:#241f1a;font-synthesis:none;text-rendering:optimizelegibility;--ink:#241f1a;--muted:#6e655c;--paper:#fffdf9;--wash:#f5f0e8;--line:#ded6cb;--booking-accent:#1f5147;--booking-accent-hover:#163f37;--booking-accent-soft:#e5efeb;--booking-accent-soft-hover:#d6e7e1;--booking-accent-border:#bdcfc9;--booking-accent-text:#1f5147;--booking-accent-muted:#9baaa5;--booking-on-accent:#fff;--booking-focus:#0d6a99;--error:#9c2f28;--error-soft:#fff0ed;--warning:#7a5419;--warning-soft:#fff7e8;background:#f5f0e8;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html{background:var(--wash);min-width:320px}body{background:radial-gradient(circle at 15% 0%, #ffffffbf, transparent 32rem), var(--wash);min-width:320px;min-height:100vh;margin:0}button,input,textarea{font:inherit;border-radius:0}button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--booking-focus);outline-offset:3px}.booking-page{min-height:100vh;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));justify-content:center;align-items:flex-start;display:flex}.booking-card{background:var(--paper);border:1px solid #4a3d321f;width:100%;min-width:0;max-width:640px;box-shadow:0 18px 60px #3a2d221a}.booking-header{text-align:center;border-bottom:1px solid var(--line);padding:28px 20px 24px}.booking-header h1{max-width:20ch;color:var(--ink);letter-spacing:-.025em;margin:4px auto 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.9rem,8vw,2.7rem);font-weight:500;line-height:1.05}.booking-header h1:focus{outline:none}.booking-establishment-logo{object-fit:contain;width:auto;max-width:min(220px,70%);height:auto;max-height:68px;margin:0 auto 16px;display:block}.booking-step,.section-eyebrow{color:var(--booking-accent-text);letter-spacing:.13em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:750}.booking-kicker{color:var(--muted);margin:10px 0 0;font-size:.95rem}.booking-form,.confirmation,.status-panel,.page-loading{margin:0;padding:24px 20px 28px}.form-section+.form-section{margin-top:34px}.section-heading{margin-bottom:17px}.section-heading h2,.summary-card h2,.status-panel h2,.confirmation h2{color:var(--ink);margin:5px 0 0;font-family:Georgia,Times New Roman,serif;font-size:clamp(1.35rem,5vw,1.75rem);font-weight:500;line-height:1.2}.party-control{border:1px solid var(--line);grid-template-columns:52px minmax(120px,1fr) 52px;align-items:stretch;width:100%;max-width:340px;display:grid}.stepper-button{background:var(--booking-accent-soft);min-height:54px;color:var(--booking-accent-text);cursor:pointer;border:0;font-size:1.45rem;font-weight:600}.stepper-button:hover:not(:disabled){background:var(--booking-accent-soft-hover)}.stepper-button:disabled{color:var(--booking-accent-muted);cursor:not-allowed}.party-value{border-inline:1px solid var(--line);min-width:0;color:var(--muted);background:#fff;justify-content:center;align-items:center;gap:8px;font-size:.9rem;display:flex}.party-value input{width:44px;color:var(--ink);text-align:right;-moz-appearance:textfield;background:0 0;border:0;padding:0;font-size:1.25rem;font-weight:750}.party-value input::-webkit-inner-spin-button{appearance:none;margin:0}.party-value input::-webkit-outer-spin-button{appearance:none;margin:0}.field-label{color:var(--ink);margin:0 0 7px;font-size:.91rem;font-weight:700;display:block}.optional{color:var(--muted);font-size:.82rem;font-weight:450}.text-input{width:100%;min-height:50px;color:var(--ink);background:#fff;border:1px solid #bfb5a9;padding:12px 13px;font-size:1rem;line-height:1.45;transition:border-color .12s,box-shadow .12s}.text-input:hover:not(:disabled){border-color:#81766c}.text-input:focus{border-color:var(--booking-focus);box-shadow:0 0 0 1px var(--booking-focus);outline:none}.text-input[aria-invalid=true]{border-color:var(--error)}.text-input:disabled{color:var(--muted);background:#f1eee9}.comment-input{resize:vertical;min-height:116px}.booking-calendar{border:1px solid var(--line);background:#fff;border-radius:16px;width:100%;max-width:340px;padding:14px;box-shadow:0 8px 22px #3a2d2212}.booking-calendar__header{grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;margin-bottom:13px;display:grid}.booking-calendar__title{min-width:0;color:var(--ink);text-align:center;text-transform:capitalize;font-size:.92rem;font-weight:750}.booking-calendar__move{background:var(--booking-accent-soft);width:44px;height:44px;color:var(--booking-accent-text);cursor:pointer;border:1px solid #0000;border-radius:11px;padding:0;font-size:1.55rem;line-height:1}.booking-calendar__move:hover:not(:disabled){background:var(--booking-accent-soft-hover)}.booking-calendar__move:disabled{color:#b8aea4;cursor:not-allowed;background:#f1eee9}.booking-calendar__weekdays,.booking-calendar__grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;display:grid}.booking-calendar__weekdays{margin-bottom:5px}.booking-calendar__weekdays span{color:var(--muted);text-align:center;font-size:.69rem;font-weight:800}.booking-calendar__grid button,.booking-calendar__grid>span{aspect-ratio:1;min-width:0;min-height:39px}.booking-calendar__grid button{color:var(--ink);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:11px;padding:0;font-size:.84rem;font-weight:750}.booking-calendar__grid button:hover:not(:disabled){border-color:var(--booking-accent-border);background:var(--booking-accent-soft);color:var(--booking-accent-text)}.booking-calendar__grid button.is-today{border-color:var(--booking-accent)}.booking-calendar__grid button.is-selected{border-color:var(--booking-accent);background:var(--booking-accent);color:var(--booking-on-accent)}.booking-calendar__grid button:disabled{color:#c4bbb1;cursor:not-allowed}.booking-calendar__selection{color:var(--muted);text-align:center;margin:13px 0 0;font-size:.8rem;line-height:1.4}.booking-calendar__selection strong{color:var(--ink);text-transform:capitalize;font-weight:700}.field-group+.field-group,.field-grid+.field-group{margin-top:19px}.field-grid{gap:19px;display:grid}.field-grid .field-group{margin:0}.field-hint,.field-error{margin:7px 0 0;font-size:.82rem;line-height:1.45}.field-hint{color:var(--muted)}.field-error{color:var(--error);font-weight:650}.comment-meta{justify-content:space-between;align-items:start;gap:12px;display:flex}.comment-meta>:last-child{white-space:nowrap;margin-left:auto}.slot-group{border:0;min-width:0;margin:0;padding:0}.service-choice{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.service-choice__button{border:1px solid var(--booking-accent-border);background:var(--booking-accent-soft);min-height:58px;color:var(--booking-accent-text);cursor:pointer;letter-spacing:.04em;border-radius:14px;padding:13px 16px;font-size:.96rem;font-weight:800}.service-choice__button:hover{background:var(--booking-accent-soft-hover)}.service-choice__button.is-selected{border-color:var(--booking-accent);background:var(--booking-accent);color:var(--booking-on-accent)}.service-choice__hint{color:var(--muted);margin:10px 0 0;font-size:.82rem;line-height:1.45}.service-choice+.slot-group{margin-top:22px}.slot-group legend{width:100%;color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px;font-size:.82rem;font-weight:750}.slot-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;display:grid}.slot-button{min-height:46px;color:var(--ink);cursor:pointer;background:#fff;border:1px solid #bfb5a9;padding:9px 7px;font-weight:700}.slot-button:hover{border-color:var(--booking-accent);color:var(--booking-accent-text)}.slot-button.is-selected{border-color:var(--booking-accent);background:var(--booking-accent);color:var(--booking-on-accent)}.button{cursor:pointer;border:1px solid #0000;min-height:48px;padding:12px 18px;font-weight:750;line-height:1.25}.button:disabled{cursor:not-allowed;opacity:.58}.button--full{width:100%}.button--full+.button--full{margin-top:8px}.button--primary{border-color:var(--booking-accent);background:var(--booking-accent);color:var(--booking-on-accent)}.button--primary:hover:not(:disabled){border-color:var(--booking-accent-hover);background:var(--booking-accent-hover)}.button--secondary{border-color:var(--booking-accent);color:var(--booking-accent-text);background:0 0}.button--text{min-height:44px;color:var(--booking-accent-text);text-underline-offset:3px;background:0 0;padding-inline:6px;text-decoration:underline}.form-section+.button--primary,.summary-card+.button--primary{margin-top:24px}.summary-card{border:1px solid var(--line);background:#f7f4ef;margin-top:32px;padding:19px}.summary-card__header{justify-content:space-between;align-items:start;gap:16px;display:flex}.summary-card__header .button{margin-top:-8px}.summary-list,.confirmation-details{margin:20px 0 0}.summary-list div,.confirmation-details div{border-top:1px solid var(--line);justify-content:space-between;align-items:baseline;gap:20px;padding:10px 0;display:flex}.summary-list dt,.confirmation-details dt{color:var(--muted);font-size:.86rem}.summary-list dd,.confirmation-details dd{text-align:right;margin:0;font-weight:700}.error-summary{border-left:4px solid var(--error);background:var(--error-soft);color:var(--error);margin-bottom:18px;padding:12px 14px;font-weight:650}.status-panel{text-align:left}.status-panel--error{background:var(--error-soft)}.status-panel--warning{background:var(--warning-soft)}.status-panel__body{color:var(--muted);margin-top:12px;line-height:1.55}.status-panel__body p{margin:8px 0}.button-row{flex-wrap:wrap;gap:10px;margin-top:20px;display:flex}.page-loading,.loading-line{color:var(--muted);align-items:center;gap:10px;display:flex}.spinner{border:2px solid var(--booking-accent-border);border-top-color:var(--booking-accent);border-radius:50%;flex:none;width:18px;height:18px;animation:.7s linear infinite spin}.confirmation{text-align:center}.confirmation h2{overflow-wrap:anywhere;-webkit-hyphens:auto;hyphens:auto;max-width:26ch;margin-inline:auto}.confirmation-mark{background:var(--booking-accent-soft);width:60px;height:60px;color:var(--booking-accent-text);border-radius:50%;place-items:center;margin:0 auto 20px;font-size:1.65rem;font-weight:800;display:grid}.confirmation-lead{max-width:45ch;color:var(--muted);margin:14px auto 0;line-height:1.55}.confirmation-details{text-align:left}.email-notice{background:var(--booking-accent-soft);color:var(--booking-accent-text);text-align:left;grid-template-columns:24px 1fr;gap:10px;margin-top:24px;padding:15px;line-height:1.5;display:grid}.email-notice p{margin:0}.booking-footer{border-top:1px solid var(--line);color:#81776d;text-align:center;padding:16px 20px;font-size:.74rem}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=480px){.booking-page{padding:32px 22px}.booking-card{border-radius:22px;overflow:hidden}.booking-header{padding:38px 32px 30px}.booking-form,.confirmation,.status-panel,.page-loading{padding:32px}.slot-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (width>=680px){.booking-page{padding-block:54px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.slot-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (width<=359px){.booking-header,.booking-form,.confirmation,.status-panel,.page-loading{padding-inline:16px}.slot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.party-control{grid-template-columns:48px minmax(0,1fr) 48px}.booking-calendar{width:calc(100% + 24px);max-width:none;margin-inline:-12px;padding:10px}.booking-calendar__weekdays,.booking-calendar__grid{gap:2px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
