/* Persistent booking access. Both floating links share one collision-free stack. */
.floating-actions { position:fixed; right:max(22px,env(safe-area-inset-right)); bottom:max(22px,env(safe-area-inset-bottom)); z-index:40; display:flex; flex-direction:column; align-items:flex-end; gap:10px; max-width:calc(100vw - 40px); pointer-events:none; }
.floating-actions[hidden],body.modal-open .floating-actions { display:none !important; }
.floating-actions>a { pointer-events:auto; }
.floating-actions .back-to-top { position:static; inset:auto; min-height:44px; margin:0; background:#faf7f0f5; color:#625044; border:1px solid #d5c6b4; box-shadow:0 4px 12px #2b21110c; }
.floating-actions .back-to-top[hidden] { display:none; }
.floating-booking { display:inline-flex; justify-content:space-between; align-items:center; gap:21px; padding:9px 10px 9px 20px; min-height:56px; min-width:184px; border:1px solid #4e3b2e; border-radius:32px; background:#332b24; color:#fff8eb; box-shadow:0 6px 20px #2a211322; transition:transform .2s,background .25s,box-shadow .25s; }
.floating-booking-label { font-size:13px; font-weight:600; letter-spacing:.1px; white-space:nowrap; }
.floating-booking-arrow { width:34px; height:34px; display:grid; place-items:center; border:1px solid #c6ad8c80; border-radius:50%; color:#e8d7ba; font-size:20px; transition:transform .25s; }
.floating-booking:hover { background:#514032; box-shadow:0 8px 24px #2a21132b; transform:translateY(-2px); }
.floating-booking:hover .floating-booking-arrow { transform:rotate(45deg); }
.floating-booking:active { transform:scale(.97); }
.floating-booking:focus-visible { outline:3px solid #b36e50; outline-offset:5px; }
body.has-floating-booking footer { padding-bottom:150px; }
@media(prefers-reduced-motion:no-preference) {
  .floating-booking { animation:booking-arrive .45s cubic-bezier(.2,.7,.25,1); }
  @keyframes booking-arrive { from { opacity:0; transform:translateY(10px); } to { opacity:1; transform:translateY(0); } }
}
@media(max-width:650px) {
  .floating-actions { right:max(14px,env(safe-area-inset-right)); bottom:calc(14px + env(safe-area-inset-bottom)); gap:9px; max-width:calc(100vw - 28px); }
  .floating-booking { min-height:52px; min-width:172px; padding:8px 9px 8px 17px; gap:16px; }
  .floating-booking-label { font-size:12px; }
  .floating-booking-arrow { width:32px; height:32px; }
  .floating-actions .back-to-top { min-height:44px; font-size:10px; padding:10px 14px; }
  body.has-floating-booking footer { padding-bottom:calc(145px + env(safe-area-inset-bottom)); }
}
@media(prefers-reduced-motion:reduce) {
  .floating-booking,.floating-booking-arrow { animation:none; transition:none; }
  .floating-booking:hover,.floating-booking:active,.floating-booking:hover .floating-booking-arrow { transform:none; }
}
