/* Booking dialog · v4: black, hairlines, Cormorant headings, white CTA. 3 steps → stored, then WhatsApp follow-up. */
html.rs-lock{overflow:hidden}
.rs{position:fixed;inset:0;margin:0;padding:0;border:0;max-width:none;max-height:none;width:100%;height:100%;background:transparent;color:var(--cream);overflow:hidden}
.rs::backdrop{background:transparent}
.rs:modal{max-width:none;max-height:none;width:100%;height:100%}
.rs-scrim{position:absolute;inset:0;background:rgba(0,0,0,.78);opacity:0;transition:opacity 200ms ease}
.rs.is-open .rs-scrim{opacity:1;transition-duration:300ms}
.rs-panel{position:absolute;left:0;right:0;bottom:0;height:calc(100% - max(20px,env(safe-area-inset-top,0px)));display:flex;flex-direction:column;background:#090807;border-top:1px solid var(--line);transform:translateY(100%);transition:transform 200ms var(--ease-out)}
.rs.is-open .rs-panel{transform:none;transition:transform 420ms var(--ease-drawer)}
@media (min-width:760px){
  .rs-panel{left:50%;top:50%;right:auto;bottom:auto;width:min(640px,calc(100% - 48px));height:min(780px,calc(100% - 48px));border:1px solid var(--line);border-radius:4px;transform:translate(-50%,-48%);opacity:0;transition:transform 200ms var(--ease-out),opacity 200ms ease;box-shadow:0 40px 120px -20px rgba(0,0,0,.9)}
  .rs.is-open .rs-panel{transform:translate(-50%,-50%);opacity:1;transition:transform 320ms var(--ease-out),opacity 240ms ease}
}

.rs-head{flex:none;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px clamp(20px,4vw,36px);border-bottom:1px solid var(--line)}
.rs-head .eyebrow{margin:0}
.rs-x{width:40px;height:40px;margin-right:-8px;display:grid;place-items:center;background:none;border:0;color:var(--cream-dim);cursor:pointer;transition:color 200ms ease,transform 160ms var(--ease-out)}
.rs-x:active{transform:scale(0.97)}
.rs-x svg{width:18px;height:18px}

.rs-steps{flex:none;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px clamp(20px,4vw,36px) 0;margin:0;list-style:none}
.rs-steps li{position:relative;padding-top:12px;font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted)}
.rs-steps li::before,.rs-steps li::after{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--line)}
.rs-steps li::after{background:var(--cream);transform:scaleX(0);transform-origin:left;transition:transform 500ms var(--ease-out)}
.rs-steps li.done::after,.rs-steps li.cur::after{transform:none}
.rs-steps li.cur{color:var(--cream)}

.rs-body{flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(238,228,204,.18) transparent;overscroll-behavior:contain;padding:30px clamp(20px,4vw,36px) 34px}
.rs-step[hidden]{display:none}
.rs-step h3{font-size:clamp(34px,6vw,44px);margin-bottom:10px}
.rs-step h3 em{font-style:italic;color:var(--copper-hi)}
.rs-sub{margin:0 0 26px;color:var(--cream-dim);font-size:14px}
.rs-label{display:block;font-size:10px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin:0 0 14px}
.rs-group{margin-bottom:32px}
.rs-group[hidden]{display:none}
.rs-reveal{animation:rsIn 420ms var(--ease-out) both}
@keyframes rsIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

/* step 1 · sede */
.rs-geo{display:flex;gap:10px;align-items:center;margin:-8px 0 22px;font-size:13px;color:var(--copper-hi)}
.rs-geo[hidden]{display:none}
.rs-geo svg{width:15px;height:15px;flex:none}
.rs-sedes{display:grid;gap:10px}
.rs-sede{position:relative;display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:center;padding:10px;border:1px solid var(--line);border-radius:4px;cursor:pointer;transition:border-color 200ms ease,background-color 200ms ease,transform 160ms var(--ease-out)}
.rs-sede:active{transform:scale(0.99)}
.rs-sede input{position:absolute;opacity:0;pointer-events:none}
.rs-sede img{width:96px;height:96px;object-fit:cover;border-radius:2px;filter:brightness(.85)}
.rs-sede small{display:block;font-size:9.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.rs-sede b{display:block;font-family:var(--f-display);font-weight:400;font-size:27px;line-height:1.1;margin:4px 0 6px}
.rs-sede span{display:block;font-size:12.5px;color:var(--cream-dim);line-height:1.5}
.rs-sede .rec{font-style:normal;position:absolute;top:10px;right:12px;font-size:9px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:#0a0908;background:var(--paper);padding:5px 8px;border-radius:2px}
.rs-sede .rec[hidden]{display:none}
.rs-sede:has(input:checked){border-color:var(--cream);background:rgba(255,255,255,.035)}
.rs-sede:has(input:checked) img{filter:none}
.rs-sede:has(input:focus-visible){outline:1px solid var(--cream);outline-offset:3px}
@media (min-width:760px){.rs-sede{grid-template-columns:132px 1fr}.rs-sede img{width:132px;height:100px}}

/* step 2 · people → calendar → time */
.rs-people{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
@media (min-width:480px){.rs-people{grid-template-columns:repeat(9,1fr)}}
.rs-chip{border:1px solid var(--line);border-radius:3px;background:none;color:var(--cream);font:400 15px/1 var(--f-body);padding:13px 0;cursor:pointer;transition:border-color 200ms ease,background-color 200ms ease,color 200ms ease,transform 160ms var(--ease-out)}
.rs-chip:active{transform:scale(0.96)}
.rs-chip[aria-pressed="true"]{background:var(--paper);border-color:var(--paper);color:#0a0908}
.rs-chip[disabled]{opacity:.22;cursor:not-allowed}
.rs-more{display:flex;align-items:center;gap:14px;margin-top:14px}
.rs-more[hidden]{display:none}
.rs-more button{width:42px;height:42px;border:1px solid var(--line);border-radius:3px;background:none;color:var(--cream);font-size:18px;cursor:pointer}
.rs-more output{min-width:90px;text-align:center;font-family:var(--f-display);font-size:30px;line-height:1}
.rs-more output small{display:block;font-family:var(--f-body);font-size:9.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.rs-note{font-size:12.5px;color:var(--muted);margin:12px 0 0}
.rs-note a{color:var(--cream);border-bottom:1px solid var(--line)}

.rs-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.rs-cal-head b{font-family:var(--f-display);font-weight:400;font-size:24px}
.rs-cal-nav{display:flex;gap:6px}
.rs-cal-nav button{width:38px;height:38px;border:1px solid var(--line);border-radius:3px;background:none;color:var(--cream);cursor:pointer;display:grid;place-items:center}
.rs-cal-nav button[disabled]{opacity:.2;cursor:not-allowed}
.rs-cal-nav svg{width:14px;height:14px}
.rs-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.rs-cal .wd{font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);text-align:center;padding:6px 0}
.rs-day{height:44px;border:1px solid transparent;border-radius:3px;background:none;color:var(--cream);font:400 14px/1 var(--f-body);cursor:pointer;transition:border-color 200ms ease,background-color 200ms ease,color 200ms ease}
.rs-day.today{border-color:var(--line)}
.rs-day[aria-pressed="true"]{background:var(--paper);color:#0a0908;border-color:var(--paper)}
.rs-day[disabled]{color:var(--muted);opacity:.35;cursor:not-allowed}
.rs-day.pad{visibility:hidden}

.rs-times{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.rs-time{font-size:13.5px;padding:12px 0}

.rs-foot{flex:none;display:flex;gap:14px;align-items:center;justify-content:space-between;padding:14px clamp(20px,4vw,36px) calc(14px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#090807}
.rs-foot .btn{min-height:50px}
.rs-foot .rs-next{flex:1;max-width:300px;margin-left:auto}
.rs-back{background:none;border:0;color:var(--cream-dim);font:500 10.5px/1 var(--f-body);letter-spacing:.26em;text-transform:uppercase;cursor:pointer;padding:12px 0}
.rs-pick{font-size:12.5px;color:var(--cream-dim);line-height:1.4}
.rs-pick b{display:block;color:var(--cream);font-weight:400}
.rs-pick:empty{display:none}

/* step 3 · contact */
.rs-field{margin-bottom:22px}
.rs-field label{display:block;font-size:10px;font-weight:500;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);margin-bottom:10px}
.rs-field input,.rs-field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(238,228,204,.22);border-radius:0;color:var(--cream);font:300 17px/1.4 var(--f-body);padding:10px 0;transition:border-color 200ms ease}
.rs-field textarea{min-height:70px;resize:vertical}
.rs-field input:focus,.rs-field textarea:focus{outline:none;border-color:var(--cream)}
.rs-field input[aria-invalid="true"]{border-color:#d0705c}
.rs-field input::placeholder,.rs-field textarea::placeholder{color:rgba(238,228,204,.3)}
.rs-tel{display:grid;grid-template-columns:64px 1fr;gap:14px}
.rs-help{display:flex;gap:10px;margin:12px 0 0;font-size:12.5px;color:var(--copper-hi);line-height:1.5}
.rs-help svg{width:15px;height:15px;flex:none;margin-top:2px}
.rs-err{display:block;min-height:16px;font-size:12px;color:#e08a76;margin-top:6px}
.rs-opt{color:var(--muted);letter-spacing:.18em}
.rs-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.rs-sum{border-top:1px solid var(--line);margin:4px 0 0}
.rs-sum div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-size:14px}
.rs-sum dt{font-size:9.5px;letter-spacing:.28em;text-transform:uppercase;color:var(--muted);padding-top:3px}
.rs-sum dd{margin:0;text-align:right}
.rs-fail{margin:18px 0 0;padding:14px 16px;border:1px solid rgba(224,138,118,.4);border-radius:3px;font-size:13px;color:var(--cream-dim)}
.rs-fail[hidden]{display:none}
.rs-fail a{color:var(--cream);border-bottom:1px solid var(--line)}

/* done */
.rs-done{text-align:center;padding-top:clamp(10px,5vh,50px)}
.rs-done .seal{width:96px;height:96px;margin:0 auto 22px}
.rs-done .seal canvas{width:100%;height:100%}
.rs-done .rs-sub{max-width:38ch;margin:12px auto 26px}
.rs-done .rs-sum{text-align:left;max-width:420px;margin:0 auto}

@media (hover:hover) and (pointer:fine){
  .rs-x:hover,.rs-back:hover{color:var(--cream)}
  .rs-sede:hover{border-color:rgba(238,228,204,.3)}
  .rs-chip:hover:not([disabled]):not([aria-pressed="true"]),.rs-day:hover:not([disabled]):not([aria-pressed="true"]),.rs-cal-nav button:hover:not([disabled]),.rs-more button:hover{border-color:rgba(238,228,204,.45)}
}
@media (prefers-reduced-motion:reduce){
  .rs-panel,.rs.is-open .rs-panel{transform:none;opacity:0;transition:opacity 200ms ease}
  .rs.is-open .rs-panel{opacity:1}
  @media (min-width:760px){.rs-panel,.rs.is-open .rs-panel{transform:translate(-50%,-50%)}}
  .rs-reveal{animation:none}
  .rs-sede:active,.rs-chip:active,.rs-x:active{transform:none}
}
