:root{--red:#ef2d20;--ink:#111;--paper:#f4f4f1;--line:#d5d5d1;--mono:"Courier New",monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,sans-serif}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}header{height:74px;padding:0 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font:12px var(--mono)}header a{color:inherit;text-decoration:none}header a:first-child:before{content:"■";color:var(--red);margin-right:8px}main{display:grid;grid-template-columns:minmax(270px,.75fr) minmax(560px,1.5fr);min-height:calc(100vh - 74px)}.booking-intro{padding:54px 5vw;border-right:1px solid var(--line);position:sticky;top:0;height:calc(100vh - 74px)}.booking-intro span,.step-label{font:11px var(--mono);color:var(--red);letter-spacing:.04em}.booking-intro h1{font-size:clamp(48px,6.3vw,100px);line-height:.88;letter-spacing:-.07em;font-weight:400;margin:80px 0 28px}.booking-intro p{max-width:280px;color:#666;line-height:1.5}.booking-panel{padding:48px clamp(24px,5vw,80px)}.loading{font:12px var(--mono);color:#777}.booking-step{margin-bottom:54px}.booking-step h2{font-size:34px;font-weight:400;letter-spacing:-.045em;margin:10px 0 22px}.service-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.service{position:relative;text-align:left;background:white;border:1px solid var(--line);padding:22px;min-height:172px}.service:hover,.service[aria-pressed=true]{border-color:var(--red);box-shadow:inset 0 -3px var(--red)}.service strong{display:block;font-size:22px;font-weight:400}.service b{display:block;font-size:30px;font-weight:400;margin:20px 0 6px}.service small{display:block;color:#666;line-height:1.45}.service em{position:absolute;right:18px;top:18px;font:11px var(--mono);font-style:normal;color:#777}.calendar-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:15px}.calendar-tools{display:flex;align-items:end;gap:9px}.date-jump{display:grid;gap:5px}.date-jump span{font:9px var(--mono);color:#777}.date-jump input{border:1px solid var(--line);background:#fff;padding:7px 9px;font:11px var(--mono);min-height:34px}.calendar-arrows{display:flex;gap:5px}.calendar-head button{border:1px solid var(--line);background:#fff;padding:8px 11px;min-height:34px}.calendar-days{display:grid;gap:14px}.calendar-day{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:18px 0;border-top:1px solid var(--line)}.calendar-day>div:first-child strong{display:block;font-size:17px}.calendar-day>div:first-child small{color:#777}.time-grid{display:flex;flex-wrap:wrap;gap:7px}.time{border:1px solid var(--line);background:#fff;padding:10px 12px;font:11px var(--mono)}.time:hover,.time[aria-pressed=true]{background:#111;color:white;border-color:#111}.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.booking-form label{display:grid;gap:7px;font:11px var(--mono);text-transform:uppercase}.booking-form label.full{grid-column:1/-1}.booking-form input,.booking-form textarea{width:100%;border:1px solid #bbb;background:#fff;border-radius:0;padding:13px;font:15px Arial;text-transform:none}.booking-form textarea{min-height:110px;resize:vertical}.booking-summary{grid-column:1/-1;border-top:2px solid #111;border-bottom:1px solid var(--line);padding:18px 0;display:flex;justify-content:space-between;gap:20px}.booking-summary span{display:block;font:10px var(--mono);color:#777;margin-bottom:5px}.booking-summary strong{font-weight:400}.submit{grid-column:1/-1;background:#111;color:#fff;border:0;padding:17px;font:12px var(--mono);text-transform:uppercase}.submit:hover{background:var(--red)}.submit:disabled{opacity:.5}.booking-error{grid-column:1/-1;color:#b51f17;margin:0}.confirmation{padding:5vh 0}.confirmation h2{font-size:55px;font-weight:400;letter-spacing:-.06em;margin:15px 0}.confirmation p{max-width:540px;line-height:1.6;color:#555}.confirmation a,.manage-link{display:inline-block;background:#111;color:#fff;text-decoration:none;padding:14px 18px;font:12px var(--mono);margin-top:20px}.confirmation-actions{display:flex;gap:8px;flex-wrap:wrap}.confirmation a.secondary-action{background:#fff;color:#111;border:1px solid #111}.current-booking{border-top:2px solid #111;border-bottom:1px solid var(--line);padding:20px 0;display:grid;gap:7px}.current-booking span{font:10px var(--mono);color:#777}.current-booking strong{font-size:20px;font-weight:400}.current-booking small{font-size:14px;color:#666}.manage-message{background:#e9f4eb;border-left:3px solid #4c7955;padding:14px;line-height:1.5}.manage-confirm{width:100%;margin-top:20px}.manage-copy{color:#666;line-height:1.5}.cancel-section{border-top:1px solid var(--line);padding-top:35px}.cancel-booking{border:1px solid #b51f17;color:#b51f17;background:transparent;padding:13px 16px;font:11px var(--mono);text-transform:uppercase}.cancel-booking:hover{background:#b51f17;color:#fff}.empty-calendar{color:#777;font-size:14px}.calendar-note{font:10px var(--mono);color:#777;margin-top:14px}.payment-cancelled{margin:0 0 34px;padding:18px 22px;border-left:4px solid var(--red);background:#fff1ef;font:13px/1.5 var(--mono)}.booking-policy{grid-column:1/-1;margin:0;color:#666;font:11px/1.6 var(--mono)}@media(max-width:850px){header{padding:0 20px}main{display:block}.booking-intro{position:static;height:auto;border-right:0;border-bottom:1px solid var(--line);padding:35px 22px}.booking-intro h1{font-size:56px;margin:40px 0 18px}.booking-panel{padding:32px 20px}.service-grid{grid-template-columns:1fr 1fr}.calendar-day{grid-template-columns:1fr}.booking-form{grid-template-columns:1fr}.booking-form label.full,.booking-summary,.submit,.booking-error{grid-column:1}.booking-summary{display:block}.booking-summary>div+div{margin-top:14px}.calendar-head{align-items:start;flex-direction:column}.calendar-tools{width:100%;justify-content:space-between}.date-jump{flex:1}.date-jump input{width:100%}}@media(max-width:520px){.service-grid{grid-template-columns:1fr}.service{min-height:145px}.booking-step h2{font-size:29px}.calendar-days{gap:5px}}
.square-payment{grid-column:1/-1;border:1px solid var(--line);background:#fff;padding:18px}.square-payment>span{display:block;font:10px var(--mono);color:#777;margin-bottom:10px}.square-payment>p{margin:8px 0 0;color:#777;font:10px var(--mono)}#square-card{min-height:90px}.square-payment .booking-error{color:#b51f17}
.receipt-link{margin-top:12px;background:#fff;color:#111;border:1px solid #111}
