.booking-primary,.header .reserve-header{background:#17171a;color:white;border:1px solid #17171a}.booking-primary:hover,.header .reserve-header:hover{background:#444;color:white}.booking-primary:disabled{opacity:.5;cursor:not-allowed}.booking-header{position:sticky;top:0;z-index:5!important;backdrop-filter:blur(15px)}.hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin-top:23px}.hero-actions .button{margin:0}.hero-course-link{padding:12px 3px;border-bottom:1px solid #aaa;font-size:14px}.booking-main{max-width:1200px;padding-top:50px;padding-bottom:70px}.booking-intro h1{font:700 clamp(40px,6vw,80px)/1.05 var(--display);margin:16px 0}.booking-intro h1 em{display:block;font:italic clamp(36px,5vw,65px)/1.35 var(--serif);letter-spacing:-2px}.no-card{display:inline-block;margin:18px 0 28px;border:1px solid #aaa;padding:9px 12px;font-size:11px;letter-spacing:1px}.booking-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:8%;align-items:start}.booking-layout fieldset{border:0;padding:26px 0;margin:0;border-top:1px solid var(--line)}.booking-layout legend{font:700 27px var(--display);padding:5px 0;width:100%}.booking-layout legend span{color:#777;font:12px var(--sans);margin-right:15px}.form-field{display:flex;flex-direction:column;gap:7px;margin:14px 0;font-size:14px}.form-field select,.form-field input{font:16px var(--sans);width:100%;padding:14px;border:1px solid #aaa;background:white;color:#111;border-radius:0;min-height:49px}.form-field input:focus,.form-field select:focus{outline:2px solid #222;outline-offset:2px}.muted,.calendar-notice{font-size:14px;color:#555}.calendar-notice{margin:0 0 15px}.calendar-notice.notice-closed{border-left:3px solid #222;padding:12px 16px;background:#f1f1f3}.time-slots{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0;min-height:20px}.time-slots button{border:1px solid #aaa;padding:11px 15px;background:#fff;font:15px var(--sans);cursor:pointer}.time-slots button[aria-pressed=true]{background:#17171a;color:white;border-color:#17171a}.time-slots button:focus-visible{outline:2px solid #111;outline-offset:3px}.booking-summary{position:sticky;top:112px;background:#f2f2f4;border:1px solid #d1d1d5;padding:30px}.booking-summary h2{font:700 40px var(--display);margin:12px 0 30px}.booking-summary h2 em{display:block;font:italic 37px var(--serif)}.booking-summary dl{margin:0}.booking-summary dt{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#555;margin-top:22px}.booking-summary dd{margin:8px 0 18px;line-height:1.5}.booking-summary p{font-size:13px;color:#555;border-top:1px solid #ccc;padding-top:20px;margin-top:23px}.source-link{display:inline-block;font-size:12px;text-decoration:underline;text-underline-offset:4px;margin-top:18px}.booking-layout .consent{align-items:flex-start;line-height:1.5}.booking-layout .form-privacy{font-size:12px;color:#555}.booking-layout .booking-primary{width:100%;justify-content:space-between;min-height:56px;margin-top:10px}#booking-result{margin-top:16px;color:#8b1830;font-size:14px}.booking-success{background:#f2f2f4;padding:40px;border:1px solid #bbb;max-width:700px;margin-top:20px}.booking-success h2{font:700 45px var(--display);margin:16px 0}.booking-success p{margin:18px 0}.booking-success .header-cta{display:inline-flex;margin:10px}.booking-footer{display:flex;justify-content:space-between;padding-block:24px;border-top:1px solid #ccc;font-size:11px;letter-spacing:1px}.salon-services{padding-block:60px}.salon-services .section-kicker{margin-bottom:20px}.salon-services h2{font:700 clamp(40px,5vw,72px) var(--display)}.salon-services h2 em{display:block;font:italic .83em var(--serif)}.service-menu{margin:26px 0;display:grid;grid-template-columns:repeat(2,1fr);gap:0 6%}.service-menu a{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid #ccc;padding:20px 0}.service-menu strong{font:700 24px var(--display)}.service-menu small{display:block;font-size:13px;color:#555;margin-top:4px}.service-menu .service-price{white-space:nowrap;font-size:15px}.salon-services>p{max-width:630px;color:#555;margin:22px 0}.mobile-booking{display:none}.booking-admin-section{border-top:1px solid #bbb;padding:35px 0;margin-top:40px}.booking-admin-section h2{font:700 40px var(--display);margin:15px 0}.booking-admin-section h3{font:700 29px var(--display);margin:24px 0 14px}.booking-admin-section p{max-width:800px}.admin-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:35px}.schedule-row{display:grid;grid-template-columns:95px 1fr;gap:10px;align-items:center;margin:9px 0;font-size:14px}.schedule-row input{min-width:0;width:100%;padding:10px;border:1px solid #aaa;font:14px var(--sans)}.duration-row{display:grid;grid-template-columns:1fr 72px 30px;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid #ddd;font-size:13px;line-height:1.5}.duration-row input{width:100%;padding:8px;border:1px solid #aaa;font:14px var(--sans)}.admin-booking-note{margin:16px 0;color:#555;font-size:14px}.admin-block-form{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;max-width:800px}.admin-block-form .form-field{margin:10px 0}.admin-block-form .full{grid-column:1/-1}.admin-controls{display:flex;flex-wrap:wrap;gap:16px;margin:24px 0;align-items:center}.admin-controls .button{margin:0}.admin-table button{border:1px solid #999;background:#fff;padding:9px;font:12px var(--sans);cursor:pointer}.admin-table td{line-height:1.6}.admin-status-label{font-size:12px;text-transform:uppercase;letter-spacing:1px}.admin-live-status{padding:12px 16px;border:1px solid #bbb;display:inline-block;margin:16px 0}.admin-booking-error{color:#921b33;white-space:pre-line}.booking-admin-section .consent{margin:16px 0;align-items:flex-start}.booking-admin-section .consent input{flex-shrink:0}.booking-settings-busy{opacity:.6;pointer-events:none}
@media(max-width:760px){.header.booking-header{gap:12px;min-height:72px}.booking-header .header-cta{padding:10px 12px;font-size:12px}.booking-main{padding-top:30px}.booking-layout{grid-template-columns:1fr;gap:25px}.booking-summary{position:static;grid-row:1;padding:22px}.booking-summary h2{display:none}.booking-summary dl{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}.booking-summary dt{margin-top:12px}.booking-summary dd{margin:10px 0;font-size:14px}.booking-summary p{margin-top:12px;font-size:12px}.booking-success{padding:25px}.booking-success .header-cta{margin:15px 0 0}.service-menu{grid-template-columns:1fr}.salon-services{padding-block:40px}.mobile-booking{position:fixed;display:flex;justify-content:center;align-items:center;gap:35px;background:#17171a;color:#fff;left:16px;right:16px;bottom:12px;padding:16px 24px;border:1px solid #777;z-index:20;font-size:15px;box-shadow:0 4px 22px #0003}.home-with-booking{padding-bottom:75px}.hero-actions{gap:20px}.admin-settings-grid{grid-template-columns:1fr}.admin-block-form{grid-template-columns:1fr 1fr}.admin-table{min-width:660px}.booking-footer{gap:12px;line-height:1.5}.header .reserve-header{padding:10px 14px;font-size:13px}}

/* The same readable calendar and touch targets are used in Safari and the iPhone app. */
.booking-calendar{max-width:510px;margin:16px 0 22px;padding:16px 12px;background:#111116;border:1px solid #777580;border-radius:10px;color:#fff}
.booking-month-header{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;gap:8px;margin-bottom:16px}.booking-month-header h3{font:600 20px/1.2 Arial,sans-serif;text-align:center;text-transform:uppercase;margin:0;color:#fff}.booking-month-header button{height:44px;background:#25252d;border:1px solid #aaa7b2;color:#fff;border-radius:6px;font:30px Arial,sans-serif}.booking-month-header button:disabled{opacity:.35}
.booking-weekdays,.booking-days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.booking-weekdays{margin-bottom:8px;color:#ece9ef;font:700 10px/1.4 Arial,sans-serif;text-align:center}.booking-days .booking-day{min-width:0;min-height:60px;padding:7px 0;border:1px solid #777581;border-radius:6px;background:#23232c;color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.booking-day-number{font:700 22px/1 Arial,sans-serif}.booking-days small{font:700 8px/1.2 Arial,sans-serif;letter-spacing:0}.booking-days .day-full{background:#17171c;color:#cbc7d0;border-style:dashed}.booking-days .booking-day:disabled{opacity:.35;cursor:default}.booking-days .booking-day[aria-pressed=true]{background:#f4bfd8;color:#141017;border:2px solid #fff;box-shadow:0 0 0 1px #f4bfd8}.booking-days .booking-day:focus-visible{outline:3px solid #f4bfd8;outline-offset:2px}.booking-calendar-key{font:12px/1.6 Arial,sans-serif;color:#e3dfe8;margin:14px 0 0}.available-hours-title{font:700 19px/1.4 Arial,sans-serif;color:#fff;margin:18px 0 12px;text-transform:uppercase}.time-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;max-width:510px}.time-slots button{min-height:50px;font:700 20px/1.2 Arial,sans-serif;color:#fff;border:1px solid #aaa7b2;background:#24242d;border-radius:6px;touch-action:manipulation}.calendar-notice{font:15px/1.55 Arial,sans-serif;color:#ece8ef}.calendar-notice.notice-closed{padding:14px;background:#261b24;border-left:3px solid #f4bfd8;color:#fff}
@media(max-width:380px){.booking-calendar{padding:14px 8px}.booking-days,.booking-weekdays{gap:3px}.booking-days small{font-size:7px}.booking-days .booking-day{min-height:58px}.booking-month-header h3{font-size:17px}}
