@keyframes splide-loading{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.splide__track--draggable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0!important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0!important;padding:0!important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none!important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s linear infinite;border:2px solid #999;border-left-color:transparent;border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{clip:rect(0 0 0 0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle.is-active .splide__toggle__play,.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}
.ssr-carousel[data-v-fb937ebd] {
    /* Native, GPU-composited snap. No JS, no layout reads. */
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    /* Hide the horizontal scrollbar — peek of the next slide is the affordance. */
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* legacy Edge / IE */
}
.ssr-carousel[data-v-fb937ebd]::-webkit-scrollbar {
    display: none; /* WebKit (Safari, Chrome) */
}

/*
 * Width cascade — each tier overrides the previous. Boundaries are 481/769/1025
 * because Splide breakpoint keys (480/768/1024) are max-width inclusive.
 * Each slot falls through to the next-larger one so consumers can omit tiers.
 */
.ssr-carousel[data-v-fb937ebd] >  * {
    flex-shrink: 0;
    scroll-snap-align: start;
    width: var(--ssr-xs, var(--ssr-sm, var(--ssr-md, var(--ssr-lg))));
}
@media (min-width: 481px) {
.ssr-carousel[data-v-fb937ebd] >  * {
        width: var(--ssr-sm, var(--ssr-md, var(--ssr-lg)));
}
}
@media (min-width: 769px) {
.ssr-carousel[data-v-fb937ebd] >  * {
        width: var(--ssr-md, var(--ssr-lg));
}
}
@media (min-width: 1025px) {
.ssr-carousel[data-v-fb937ebd] >  * {
        width: var(--ssr-lg);
}
}

.city-slideshow[data-v-e3c77597] .splide__track {
    overflow: visible;
}
@media (min-width: 1024px) {
.city-slideshow[data-v-e3c77597] .splide {
        max-width: -moz-fit-content;
        max-width: fit-content;
        margin-inline: auto;
}
}

[data-v-a521a6a1] ul {
    list-style-type: disc;
    padding-left: 1.25rem;
}

body.location-scroll-locked {
    overflow: hidden !important;
}
.scroll-bar-none {
    overflow-y: auto;
    scrollbar-width: none;
}
.scroll-bar::-webkit-scrollbar {
    display: none;
}

.section-lazy[data-v-8d548f1d] {
    content-visibility: auto;
    contain-intrinsic-size: auto var(--section-lazy-height, 500px);
}

.swap-stack[data-v-722fe78a] {
    display: inline-grid;
    grid-template-areas: 'stack';
    vertical-align: baseline;
}
.swap-word[data-v-722fe78a] {
    grid-area: stack;
    justify-self: center;
    white-space: nowrap;
    transition: color 300ms ease;
    border-radius: var(--rounded-sm);
    background: transparent;
}
.swap-word--accent[data-v-722fe78a] {
    position: relative;
    /* isolation creates a local stacking context so the ::before's z-index:-1
       sits behind the text but above anything outside the accent. */
    isolation: isolate;
    color: var(--color-text-inverse, currentColor);
    /* Scale is post-layout — paints larger without inflating the cell. */
    transform: scale(1.25);
    transform-origin: center center;
}
.swap-word--accent[data-v-722fe78a]::before {
    content: "";
    position: absolute;
    /* Negative inset extends the pill beyond the text on all four sides.
       Absolute positioning contributes zero to layout, so the grid cell stays
       tight and title1/title2 don't shift when the accent toggles. */
    inset: -0.15em -0.15em;
    background: var(--color-brand-fill);
    border-radius: inherit;
    z-index: -1;
}

/* Ghost width-reservers live in pseudo-elements — their text is never part of
   the element's textContent, so crawlers don't see partial/shuffled words. */
.swap-stack[data-v-722fe78a]::before,
.swap-stack[data-v-722fe78a]::after {
    grid-area: stack;
    justify-self: center;
    white-space: nowrap;
    visibility: hidden;
    pointer-events: none;
    -webkit-user-select: none;
       -moz-user-select: none;
            user-select: none;
    border-radius: var(--rounded-sm);
    /* Matches the caret width in the visible word so the reserved cell stays
       the same size whether the caret is showing or not. */
    padding-right: 3px;
}
.swap-stack[data-v-722fe78a]::before {
    content: var(--ghost-from);
}
.swap-stack[data-v-722fe78a]::after {
    content: var(--ghost-to);
}
.swap-word__caret[data-v-722fe78a] {
    display: inline-block;
    width: 3px;
    height: 0.9em;
    vertical-align: baseline;
    background-color: currentColor;
    animation: swap-caret-blink-722fe78a 900ms steps(2, start) infinite;
    transition: opacity 600ms ease;
}
.swap-word__caret--hidden[data-v-722fe78a] {
    animation: none;
    opacity: 0;
}
@keyframes swap-caret-blink-722fe78a {
0%, 49% { opacity: 1;
}
50%, 100% { opacity: 0;
}
}

.drawer-panel[data-v-14f96ed8] {
  height: calc(100dvh - 4rem);
}

/* Backdrop fade */
.backdrop-enter-active[data-v-14f96ed8],
.backdrop-leave-active[data-v-14f96ed8] {
  transition: opacity 150ms ease-out;
}
.backdrop-enter-from[data-v-14f96ed8],
.backdrop-leave-to[data-v-14f96ed8] {
  opacity: 0;
}

/* Drawer slide down */
.drawer-enter-active[data-v-14f96ed8] {
  transition: transform 200ms cubic-bezier(0.0, 0.0, 0.2, 1);
}
.drawer-leave-active[data-v-14f96ed8] {
  transition: transform 150ms cubic-bezier(0.4, 0.0, 1, 1);
}
.drawer-enter-from[data-v-14f96ed8],
.drawer-leave-to[data-v-14f96ed8] {
  transform: translateY(-100%);
}

.menu-child[data-v-d058b879] {
  visibility: hidden;
  opacity: 0;
  transition: all 0.3s ease;
  transform: translateY(-20px);
}
.menu-parent[data-v-d058b879]:hover {
  border-bottom: 2px solid var(--color-surface-brand);
}
.menu-parent:hover .menu-child[data-v-d058b879] {
  visibility: visible;
  opacity: 1;
  transform: translateY(2px);
}
.menu-indicator[data-v-d058b879] {
  transition: all 0.3s;
}
.menu-parent:hover .menu-indicator[data-v-d058b879] {
  transform: rotate(180deg);
}

.social-circle--instagram[data-v-d23a8a44] {
  background: linear-gradient(to top right, #FFDD55 0%, #FF543E 50%, #C837AB 100%);
}
