.raspro{--ink:#090909;--panel:#111;--line:#303030;--accent:#e33219;--paper:#f2f0ed;--muted:#9c9996;background:var(--ink)}
.raspro .hero{padding-bottom:42px}
.booking-body{background:radial-gradient(circle at 83% 7%,#33110c 0,transparent 27%),#090909}.raspro-header{max-width:none;padding:0 max(24px,calc((100vw - 1160px)/2));height:82px;background:#080808;border-color:#262626}.raspro-wordmark{font:800 27px 'Space Grotesk',sans-serif;letter-spacing:-1.5px}.raspro-wordmark span{color:var(--accent)}.site-link{font-size:12px;color:#aaa;text-transform:uppercase;letter-spacing:.08em}
.booking-shell{max-width:1160px;padding:52px 24px 90px}.back-link{display:inline-block;color:#979390;font-size:13px;margin-bottom:45px}.booking-intro{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);align-items:end;gap:60px;margin-bottom:42px}.booking-intro h1{font-size:clamp(48px,7vw,84px);margin:12px 0 0;text-transform:uppercase}.booking-intro>p{color:#b0aca9;line-height:1.65;font-size:15px;max-width:420px;margin:0 0 8px}.eyebrow.red{color:#ed442c}
.home-booking{scroll-margin-top:20px;max-width:1160px;margin:0 auto 50px}.home-booking .booking-intro.simple{display:block;margin-bottom:28px}.home-booking .booking-intro h2{font-size:clamp(38px,5vw,64px);line-height:.98;letter-spacing:-.06em;margin:12px 0 0;text-transform:uppercase}.raspro .booking-step{padding:34px}
.booking-flow{max-width:none}.booking-step{background:#101010;border:1px solid #292929;padding:34px}.booking-step[hidden]{display:none}.step-label{display:flex;align-items:flex-start;gap:18px;margin-bottom:27px}.step-label>span{display:grid;place-items:center;width:42px;height:42px;background:var(--accent);font:700 13px 'DM Mono',monospace}.step-label small{color:#8d8987;letter-spacing:.12em;font:10px 'DM Mono',monospace}.step-label h2{margin:5px 0 0;font-size:28px;letter-spacing:-.04em}
.service-pills{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-bottom:25px}.service-pill{position:relative;display:block;cursor:pointer}.service-pill input{position:absolute;opacity:0;pointer-events:none}.service-pill>span{display:flex;flex-direction:column;justify-content:space-between;min-height:112px;padding:16px;border:1px solid #353535;background:#171717;transition:.18s ease}.service-pill b{font:600 14px/1.25 'Space Grotesk',sans-serif}.service-pill small{font-weight:400;color:#94908d}.service-pill input:checked+span{border-color:var(--accent);background:#28110e;box-shadow:inset 0 -3px var(--accent)}.service-pill input:focus-visible+span{outline:2px solid white;outline-offset:2px}
.schedule-panel{background:#f0eeeb;color:#111;padding:25px}.date-row{display:flex;align-items:end;justify-content:space-between;gap:25px;border-bottom:1px solid #cbc7c3;padding-bottom:21px}.date-row label{width:min(310px,100%)}.date-row label>span{font:700 11px 'DM Mono',monospace;letter-spacing:.08em}.date-row input{background:#fff;color:#111;border:1px solid #c8c4bf;border-radius:0;margin-top:8px}.availability-key{display:flex;gap:16px;font-size:11px;color:#645f5b;padding-bottom:10px}.availability-key span{display:flex;align-items:center;gap:6px}.availability-key i{width:8px;height:8px;border-radius:50%;display:inline-block}.free-dot{background:#50a854}.busy-dot{background:#aaa5a0}.slot-status{min-height:44px;display:flex;align-items:center;color:#625e5a;font-size:12px}.loader{width:13px;height:13px;border:2px solid #bbb;border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(1turn)}}
.quick-date-picker{margin-bottom:22px}.quick-date-picker>span{display:block;margin-bottom:9px;font:700 11px 'DM Mono',monospace;letter-spacing:.08em}.quick-days{display:grid;grid-template-columns:repeat(7,1fr);gap:7px}.quick-day{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:4px;padding:12px 10px;background:#fff;color:#171717;border:1px solid #c8c4bf;text-align:left}.quick-day strong{max-width:100%;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize;font:700 13px 'Space Grotesk',sans-serif}.quick-day small{color:#746f6b;font-size:10px}.quick-day:hover{border-color:var(--accent)}.quick-day.selected{background:var(--accent);border-color:var(--accent);color:#fff}.quick-day.selected small{color:#fff}
.time-table{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}.time-slot{display:flex;flex-direction:column;align-items:center;gap:2px;padding:12px 7px;border:1px solid #c9c5c1;background:#fff;color:#171717;transition:.15s ease}.time-slot strong{font:700 16px 'Space Grotesk',sans-serif}.time-slot small{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:#5b895d}.time-slot.available:hover{border-color:var(--accent);transform:translateY(-1px)}.time-slot.selected{color:#fff;border-color:var(--accent);background:var(--accent);box-shadow:0 5px 13px #e3321930}.time-slot.selected small{color:#fff}.time-slot.unavailable{background:#ddd9d5;color:#918c88;text-decoration:line-through;cursor:not-allowed}.time-slot.unavailable small{color:#938e89;text-decoration:none}.flow-next{margin:25px 0 0 auto}.raspro-cta{display:flex;align-items:center;justify-content:space-between;gap:48px;min-width:220px;background:var(--accent);text-transform:uppercase;letter-spacing:.04em}.raspro-cta:disabled{opacity:.35;cursor:not-allowed}.raspro-cta span{font-size:20px}
.raspro .existing-reservation{padding:34px;background:#101010;border:1px solid #292929}.existing-reservation[hidden]{display:none}.existing-reservation h2{font-size:clamp(34px,5vw,58px);line-height:1;letter-spacing:-.055em;margin:12px 0 30px;text-transform:uppercase}.existing-card{display:grid;grid-template-columns:2fr 1.4fr 1fr 1fr;background:#f0eeeb;color:#111}.existing-card>div{display:flex;min-width:0;flex-direction:column;gap:8px;padding:20px;border-right:1px solid #cbc7c3}.existing-card>div:last-child{border:0}.existing-card small{font:10px 'DM Mono',monospace;letter-spacing:.08em;color:#746f6b}.existing-card strong{overflow-wrap:anywhere;text-transform:capitalize}.cancel-reservation{margin-top:22px;background:transparent;color:#e85a45;border:1px solid #7a3026}.cancel-reservation:disabled{opacity:.5;cursor:wait}.reservation-message{min-height:20px;color:#aaa;font-size:12px}
.contact-step{max-width:720px;margin:0 auto}.change-time{padding:0;background:none;color:#aaa;font-size:12px;margin-bottom:25px}.booking-summary{display:flex;justify-content:space-between;align-items:center;gap:20px;background:#25100d;border-left:3px solid var(--accent);padding:16px 18px;margin-bottom:23px}.booking-summary span{color:#bdb8b5;font-size:13px}.booking-summary strong{text-transform:capitalize}.short-form{display:grid;grid-template-columns:1fr 1fr;gap:15px}.short-form>label:nth-child(3),.more-fields{grid-column:1/-1}.more-fields{border-top:1px solid #333;padding-top:13px}.more-fields summary{cursor:pointer;color:#aaa;font-size:12px}.formgrid.compact{margin-top:16px}.submit-booking{width:100%;margin-top:8px}.form-note{text-align:center;color:#878380;font-size:11px}.raspro-footer{border-top:1px solid #242424;max-width:none;padding-left:max(24px,calc((100vw - 1160px)/2));padding-right:max(24px,calc((100vw - 1160px)/2))}
@media(max-width:900px){.service-pills{grid-template-columns:repeat(2,1fr)}.quick-days{grid-template-columns:repeat(4,1fr)}.time-table{grid-template-columns:repeat(4,1fr)}}
@media(max-width:650px){.raspro-header{height:68px}.booking-shell{padding:30px 15px 60px}.back-link{margin-bottom:30px}.booking-intro{grid-template-columns:1fr;gap:16px}.booking-intro h1{font-size:46px}.booking-intro>p{font-size:13px}.raspro .booking-step{padding:18px 14px}.service-pills{grid-template-columns:1fr 1fr}.service-pill>span{min-height:94px;padding:12px}.schedule-panel{padding:16px 11px}.quick-days{display:flex;overflow-x:auto;padding-bottom:5px;scroll-snap-type:x mandatory}.quick-day{flex:0 0 104px;scroll-snap-align:start}.date-row{align-items:stretch;flex-direction:column}.availability-key{padding:0}.time-table{grid-template-columns:repeat(3,1fr)}.short-form{grid-template-columns:1fr}.short-form>label:nth-child(3),.more-fields{grid-column:auto}.booking-summary{align-items:flex-start;flex-direction:column;gap:6px}.flow-next{width:100%}.raspro-footer{flex-direction:column;gap:8px}}

@media(max-width:650px){
  html,body.raspro{width:100%;max-width:100%;overflow-x:hidden}
  .raspro header{height:60px;padding:0 16px}
  .raspro .logo{font-size:22px}
  .raspro main,.home-booking,.booking-flow,.booking-step,.schedule-panel,.quick-date-picker,.date-row,.date-row label,.service-pills,.time-table,.short-form{width:100%;max-width:100%;min-width:0}
  .home-booking{padding:28px 10px 42px;margin-bottom:0}
  .home-booking .booking-intro.simple{margin-bottom:20px;padding:0 4px}
  .home-booking .booking-intro h2{max-width:100%;font-size:32px;line-height:1.02;overflow-wrap:anywhere}
  .eyebrow.red{font-size:10px}
  .raspro .booking-step{padding:16px 10px;border-left:0;border-right:0}
  .step-label{gap:12px;margin-bottom:20px}
  .step-label>span{width:36px;height:36px;flex:0 0 36px}
  .step-label h2{font-size:23px;line-height:1.08}
  .service-pills{grid-template-columns:minmax(0,1fr);gap:7px;margin-bottom:18px}
  .service-pill>span{min-height:58px;padding:11px 13px;flex-direction:row;align-items:center;gap:12px}
  .service-pill b{min-width:0;font-size:14px;overflow-wrap:anywhere}
  .service-pill small{flex:0 0 auto}
  .schedule-panel{padding:15px 10px}
  .quick-date-picker{margin-bottom:18px}
  .quick-days{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;overflow:visible;margin:0;padding:0}
  .quick-day{width:100%;min-width:0;min-height:58px;padding:9px 7px}
  .quick-day strong{font-size:11px}
  .date-row{gap:13px;padding-bottom:15px}
  .date-row label{display:block;min-width:0;overflow:hidden}
  .date-row input[type="date"]{display:block;inline-size:100%;width:100%;min-width:0;max-width:100%;min-height:48px;font-size:16px;box-sizing:border-box}
  .short-form input,.short-form textarea{min-width:0;max-width:100%;min-height:48px;font-size:16px}
  .availability-key{justify-content:flex-end}
  .slot-status{min-height:48px;line-height:1.35}
  .time-table{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .time-slot{min-height:58px;padding:10px 5px}
  .flow-next,.submit-booking{min-height:52px;justify-content:center;position:relative}
  .raspro-cta span{position:absolute;right:17px}
  .contact-step{width:100%}
  .raspro .existing-reservation{padding:18px 12px;border-left:0;border-right:0}
  .existing-reservation h2{font-size:30px;margin-bottom:22px}
  .existing-card{grid-template-columns:1fr}
  .existing-card>div{padding:14px;border-right:0;border-bottom:1px solid #cbc7c3}
  .existing-card>div:last-child{border-bottom:0}
  .cancel-reservation{width:100%;min-height:50px}
  .change-time{min-height:44px;margin:-8px 0 16px}
  .short-form{gap:13px}
  .more-fields summary{min-height:44px;display:flex;align-items:center}
  .form-note{line-height:1.45}
  .raspro footer{padding:22px 16px;line-height:1.5;flex-direction:column;gap:7px}
}

@media(max-width:350px){
  .home-booking .booking-intro h2{font-size:28px}
  .time-table{grid-template-columns:repeat(2,minmax(0,1fr))}
}
