/* rr-cta v6: raised finish for conversion CTAs only (Book Now, Call, Text, booking submit), tagged .rr-cta.
   Recipe taken from the local-directory example CTA. Overlays are translucent so every button keeps its own colours. */
.rr-cta{--rr-cta-base:hsl(var(--primary));--rr-cta-ledge:color-mix(in srgb,var(--rr-cta-base) 52%,#000);--rr-cta-drop:0 8px 16px rgb(0 0 0 / .25),0 2px 4px rgb(0 0 0 / .18);--rr-cta-drop-hi:0 12px 22px rgb(0 0 0 / .29),0 3px 7px rgb(0 0 0 / .18);--rr-cta-drop-lo:0 3px 7px rgb(0 0 0 / .2);border-radius:6px;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease,background-color .2s ease,color .2s ease,border-color .2s ease;transform:translateY(0)}
html[data-theme=light] .rr-cta{--rr-cta-drop:0 8px 16px rgb(15 23 42 / .14),0 2px 4px rgb(15 23 42 / .10);--rr-cta-drop-hi:0 12px 22px rgb(15 23 42 / .18),0 3px 7px rgb(15 23 42 / .10);--rr-cta-drop-lo:0 3px 7px rgb(15 23 42 / .12)}
.rr-cta:not(.bg-primary,.rrh__beat-book,.booking-lite__submit,.rr-cta--nav){--rr-cta-ledge:color-mix(in srgb,hsl(var(--accent)) 52%,#000)}
.rrh-dock.is-on-red .rr-cta.rrh__beat-book{--rr-cta-base:hsl(240 5% 5%)}
.rr-cta:is(.bg-primary,.rrh__beat-book,.booking-lite__submit,.rr-cta--nav){background-image:linear-gradient(180deg,rgb(255 255 255 / .14) 0%,rgb(255 255 255 / 0) 44%,rgb(0 0 0 / 0) 44%,rgb(0 0 0 / .12) 100%);text-shadow:0 1px 1px rgb(0 0 0 / .2);box-shadow:inset 0 1px 0 rgb(255 255 255 / .32),inset 0 -1px 0 rgb(0 0 0 / .23),0 3px 0 var(--rr-cta-ledge),var(--rr-cta-drop)}
html:not([data-theme=light]) .rr-cta:is(.bg-primary,.rrh__beat-book,.booking-lite__submit,.rr-cta--nav){background-image:linear-gradient(180deg,rgb(255 255 255 / .08) 0%,rgb(255 255 255 / 0) 44%,rgb(0 0 0 / 0) 44%,rgb(0 0 0 / .12) 100%)}
.rr-cta:not(.bg-primary,.rrh__beat-book,.booking-lite__submit,.rr-cta--nav){box-shadow:inset 0 1px 0 rgb(255 255 255 / .14),inset 0 -1px 0 rgb(0 0 0 / .18),0 3px 0 var(--rr-cta-ledge),var(--rr-cta-drop)}
.rr-cta:hover{transform:translateY(0)}
@media (hover:hover){
.rr-cta:hover{transform:translateY(-2px);filter:brightness(1.045)}
.rr-cta:is(.bg-primary,.rrh__beat-book,.booking-lite__submit,.rr-cta--nav):hover{box-shadow:inset 0 1px 0 rgb(255 255 255 / .4),inset 0 -1px 0 rgb(0 0 0 / .2),0 3px 0 var(--rr-cta-ledge),var(--rr-cta-drop-hi)}
.rr-cta:not(.bg-primary,.rrh__beat-book,.booking-lite__submit,.rr-cta--nav):hover{box-shadow:inset 0 1px 0 rgb(255 255 255 / .2),inset 0 -1px 0 rgb(0 0 0 / .16),0 3px 0 var(--rr-cta-ledge),var(--rr-cta-drop-hi)}
}
.rr-cta:active{transform:translateY(2px);filter:brightness(.97);box-shadow:inset 0 1px 2px rgb(0 0 0 / .16),inset 0 1px 0 rgb(255 255 255 / .18),0 1px 0 var(--rr-cta-ledge),var(--rr-cta-drop-lo)}
.rr-cta:disabled,.rr-cta:disabled:hover{transform:none;filter:none}
.rr-cta:focus-visible{outline:2px solid hsl(var(--foreground));outline-offset:3px}
@media (prefers-reduced-motion:reduce){.rr-cta,.rr-cta:hover,.rr-cta:active{transition:none!important;transform:none!important}}
/* Nav Book Now / Reservar (header + mobile menu): always the filled primary red, on every page and theme.
   The bundle only fills it when site.js marks it .is-current on /booking/, and empties it again while another nav link is hovered. */
:is(header,#mobile-nav) a.rr-cta.rr-cta--nav,:is(header,#mobile-nav) a.rr-cta.rr-cta--nav:hover,:is(header,#mobile-nav) a.rr-cta.rr-cta--nav.is-current,:is(header,#mobile-nav) a.rr-cta.rr-cta--nav.is-current:not(:hover){background-color:hsl(var(--primary))!important;color:hsl(var(--primary-foreground))!important;border-color:hsl(var(--primary))!important}
/* Shared menu motion: hamburger menu (rrMenuAnim) and page-nav <details> (rrDetailsAnim), site.js?v=163.
   1279 matches the Sign-in hamburger cutoff in custom.css — keep these in lockstep. */
:root{--rr-menu-dur:.27s;--rr-menu-ease:cubic-bezier(.4,0,.2,1)}
@media (max-width:1279px){
#mobile-nav:not(.hidden){clip-path:inset(0 0 100% 0);transform:translateY(-6px);transition:clip-path var(--rr-menu-dur) var(--rr-menu-ease),transform var(--rr-menu-dur) var(--rr-menu-ease),max-height .28s ease,padding .28s ease,visibility 0s}
#mobile-nav.is-open{clip-path:inset(0 0 -48px 0);transform:none}
}
.city-hub__menu .city-hub__panel{clip-path:inset(-4px -40px -48px -40px);transform:none;transition:clip-path var(--rr-menu-dur) var(--rr-menu-ease),transform var(--rr-menu-dur) var(--rr-menu-ease)}
.city-hub__menu.is-opening .city-hub__panel,.city-hub__menu.is-closing .city-hub__panel{clip-path:inset(0 0 100% 0);transform:translateY(-6px)}
.city-hub__menu.is-opening .city-hub__panel,.city-hub__menu:not([open]) .city-hub__panel{transition:none}
.city-hub__menu.is-closing>summary:after{transform:rotate(45deg);translate:0 -.1rem}
@media (prefers-reduced-motion:reduce){#mobile-nav,#mobile-nav:not(.hidden),#mobile-nav.is-open,.city-hub__menu .city-hub__panel{transition:none!important;transform:none!important}#mobile-nav.is-open{clip-path:inset(0 0 -48px 0)}}
@media (hover:hover){html:not([data-theme=light]) .rr-cta:hover{filter:none}}

/* Black filled CTAs on red bands have no contrasting border. Keyboard focus stays visible. */
.home-red .rr-cta.bg-primary { border-color: transparent; }

/* Explicit black fills keep a black ledge even when their section accent is white. */
.rr-cta.rr-about-cta{--rr-cta-base:#0c0c0e;--rr-cta-ledge:#050505}
