/* rr-dock v2: phones only. site.js (rrSiteDock) adds the home hero's floating Book / Call / Text
   row under the sticky header on every page except home (own dock) and booking. Fixed, so it takes
   no layout space (no CLS). z 45: over the sticky page-nav strip (40), under the header and menu (50).
   On strip pages JS sets --rr-dock-inset so the row sits centred in the stuck strip (one combined row).
   Remove this link (or file) and the row is unstyled; remove the site.js block to drop it entirely. */
@media (max-width:639px){
.rr-dock-site{position:fixed;z-index:45;top:calc(var(--header-height,5rem) + var(--rr-dock-inset,1rem));right:1.25rem;display:flex;align-items:center;gap:.5rem;margin:0;pointer-events:auto}
.rr-dock-site .rrh__beat-book{display:inline-flex;align-items:center;padding:.875rem 1rem;font-size:1rem;font-weight:600;line-height:1;background:hsl(var(--primary));color:hsl(var(--primary-foreground));text-decoration:none}
.rr-dock-site .rrh__beat-link{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;width:2.75rem;height:2.75rem;border:1px solid hsl(var(--foreground) / .28);background:hsl(var(--background) / .94);color:hsl(var(--foreground));font-weight:600;text-decoration:none}
.rr-dock-site .rrh__beat-link svg{width:18px;height:18px;flex-shrink:0;color:hsl(var(--accent))}
.rr-dock-site .rrh__beat-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.rr-dock-site .rrh__beat-book,.rr-dock-site .rrh__beat-link,.rr-dock-site .rrh__beat-link svg{transition:transform .2s ease,background-color .2s ease,border-color .2s ease,color .2s ease}
.rr-dock-site.is-on-red .rrh__beat-book{--rr-cta-base:hsl(240 5% 5%);background-color:hsl(240 5% 5%);color:#fff}
.rr-dock-site.is-on-red .rrh__beat-link{border-color:rgb(255 255 255 / .4);background:hsl(240 5% 5% / .94);color:#fff}
.rr-dock-site.is-on-red .rrh__beat-link svg{color:#fff}
}
@media (min-width:640px){.rr-dock-site{display:none!important}}
@media (prefers-reduced-motion:reduce){.rr-dock-site,.rr-dock-site *{transition:none!important}}
/* v2: pages whose hero has its own Book + Call/Text group. site.js keeps the row hidden
   (is-held) while that group is in view (IntersectionObserver, threshold 0) and fades / slides
   it in once the group has scrolled fully out of view. No layout space either way. */
@media (max-width:639px){
.rr-dock-site.rr-dock-site--gated{transition:opacity .22s ease,transform .22s ease,visibility 0s linear 0s}
.rr-dock-site.rr-dock-site--gated.is-held{opacity:0;transform:translateY(-8px);visibility:hidden;pointer-events:none;transition:opacity .22s ease,transform .22s ease,visibility 0s linear .22s}
}
@media (prefers-reduced-motion:reduce){.rr-dock-site.rr-dock-site--gated,.rr-dock-site.rr-dock-site--gated.is-held{transition:none!important;transform:none!important}}

/* Keep a clear gap between the page menu and the floating booking button. */
.rr-dock-site.is-book-only .rrh__beat-link{display:none}
