/* Rules for pages converted from the WordPress site that its own CSS cannot supply: what its scripts used to do
   (the fixed header, the Slider Revolution heroes) and the app's own pieces drawn on those pages. Sizes and
   colours are the ones measured off the running WordPress site at 1440 and 390 pixels wide. */

/* ElementsKit fixed the header to the top with a script and an inline style, on every page Elementor drew. */
body:not(.lg-header-static) .lg-sticky { position: fixed !important; top: 0; left: 0; right: 0; width: 100%; margin-top: 0 !important; margin-bottom: 0 !important; z-index: 9999; }
/* The hidden copy it left where the section had been, so the page below keeps its place. */
.lg-sticky-ghost { visibility: hidden; }
.lg-header-static .lg-sticky-ghost { display: none; }
/* A page whose post left a bold tag open, which wrapped the footer as browsers repaired it. */
.lg-footer-bold #colophon { font-weight: bold; }

/* Slider Revolution heroes ---------------------------------------------------------------------------------- */
/* Full width, as Slider Revolution made it, out of the boxed Elementor column it sits in. 100vw counts the
   scrollbar where one takes space, which the script allowed for; clipping the body keeps that from scrolling. */
body { overflow-x: clip; }
.lg-hero { position: relative; overflow: hidden; width: 100vw; left: 50%; margin-left: -50vw; background: #0c0c0c; color: #fff; }
.lg-hero-slide { display: none; }
.lg-hero-slide.is-active { display: block; }
/* Only a slide the script has just moved to animates, so the first one can never be left mid-fade. */
.lg-hero-slide.is-entering { animation: lg-hero-in .8s ease; }
@keyframes lg-hero-in { from { opacity: 0; transform: translateY(-24px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .lg-hero-slide.is-entering { animation: none; } }
.lg-hero-bg { position: absolute; display: block; max-width: none; }
.lg-hero-inner { position: relative; }
.lg-hero-title { margin: 0; color: #fff; font-family: Roboto, sans-serif; font-weight: 900; text-transform: uppercase; }
.lg-hero-sub, .lg-hero-note { margin: 0; }
.lg-hero-btn { display: inline-block; text-align: center; text-transform: uppercase; font-family: Poppins, sans-serif; font-weight: 700; text-decoration: none; }
.lg-hero-stats { display: flex; margin: 0; }
.lg-hero-stats dt { font-family: Roboto, sans-serif; font-weight: 700; }
.lg-hero-stats dd { margin: 0; font-family: Poppins, sans-serif; font-weight: 500; text-transform: uppercase; }
.lg-hero-bar button { border: 0; padding: 0; cursor: pointer; color: #fff; font-size: 25px; line-height: 1; }
.lg-hero-bar button::before { content: ""; display: inline-block; border: 9px solid transparent; }
.lg-hero-prev::before { border-bottom: 11px solid #fff !important; margin-top: -11px; }
.lg-hero-next::before { border-top: 11px solid #fff !important; margin-bottom: -11px; }
.lg-hero-bar button:hover, .lg-hero-bar button:focus-visible { filter: brightness(1.1); }

/* Desktop and tablet: full-height, text over the image, the booking bar down the left. */
.lg-hero.lg-hero-side { height: max(100vh, 600px); }
.lg-hero-side .lg-hero-slide, .lg-hero-side .lg-hero-bg { position: absolute; inset: 0; }
.lg-hero-side .lg-hero-bg { width: 100%; height: 100%; object-fit: cover; }
.lg-hero-side .lg-hero-inner { position: absolute; left: calc(50% - 499px); top: 28.8%; width: min(1014px, calc(100% - 140px)); }
.lg-hero-side .lg-hero-title { font-size: 94px; line-height: 90px; max-width: 1014px; }
.lg-hero-side .lg-hero-sub { margin: 20px 0 0 5px; max-width: 560px; color: #ff9000; font: 400 32px/36px Roboto, sans-serif; }
.lg-hero-side .lg-hero-note { display: none; }
.lg-hero-side .lg-hero-btn { margin-top: 50px; width: 210px; height: 50px; line-height: 50px; background: #fff; color: #27265a; font-size: 17px; border-radius: 3px; }
.lg-hero-side .lg-hero-stats { margin: 87px 0 0 7px; gap: 54px; }
.lg-hero-side .lg-hero-stats div { width: 150px; }
.lg-hero-side .lg-hero-stats dt { font-size: 60px; line-height: 50px; }
.lg-hero-side .lg-hero-stats dd { width: min-content; font-size: 20px; line-height: 24px; }
.lg-hero-bar { position: absolute; z-index: 2; }
.lg-hero-side > .lg-hero-bar { left: 0; top: 0; bottom: 0; width: 100px; background: #ff9000; display: flex; flex-direction: column; align-items: center; }
.lg-hero-side .lg-hero-book { margin-top: 30.6vh; display: flex; flex-direction: column; align-items: center; gap: 8px; width: 95px; color: #fff; text-align: center; text-decoration: none; text-transform: uppercase; font: 400 13px/16px Roboto, sans-serif; }
.lg-hero-book-icon { width: 34px; height: 36px; border: 3px solid #fff; border-top-width: 8px; border-radius: 3px; position: relative; }
.lg-hero-book-icon::after { content: "+"; position: absolute; inset: 0; display: grid; place-items: center; font: 700 20px/1 Roboto, sans-serif; color: #fff; }
.lg-hero-side .lg-hero-count { margin-top: 48px; font: 500 30px/40px Roboto, sans-serif; color: #fff; }
.lg-hero-side .lg-hero-prev, .lg-hero-side .lg-hero-next { position: absolute; left: 0; width: 100px; height: 100px; }
.lg-hero-side .lg-hero-prev { bottom: 100px; background: #df7e00; }
.lg-hero-side .lg-hero-next { bottom: 0; background: #d17600; }

@media (max-width: 1024px) {
  .lg-hero-side .lg-hero-inner { left: 200px; top: 28%; width: calc(100% - 240px); }
  .lg-hero-side .lg-hero-title { font-size: 72px; line-height: 70px; }
  .lg-hero-side .lg-hero-sub { font-size: 26px; line-height: 30px; }
  .lg-hero-side .lg-hero-stats { margin-top: 50px; gap: 30px; }
  .lg-hero-side .lg-hero-stats dt { font-size: 46px; line-height: 44px; }
  .lg-hero-side .lg-hero-stats dd { font-size: 16px; line-height: 20px; }
}

/* Phones: the image under the title, the text in a purple panel, the arrows beside it. */
.lg-hero.lg-hero-stacked { height: max(100svh, 640px); }
.lg-hero-stacked .lg-hero-slide { position: absolute; inset: 0; }
.lg-hero-stacked .lg-hero-bg { left: 0; top: 129px; width: 100%; height: calc(100% - 263px); object-fit: cover; object-position: center top; }
.lg-hero-stacked .lg-hero-inner { position: static; }
.lg-hero-stacked .lg-hero-title { position: absolute; z-index: 1; left: 24px; right: 24px; top: 194px; font-size: 33px; line-height: 40px; }
.lg-hero-stacked .lg-hero-sub, .lg-hero-stacked .lg-hero-stats { display: none; }
.lg-hero-stacked .lg-hero-note, .lg-hero-stacked .lg-hero-btn { position: absolute; z-index: 1; left: 30px; }
.lg-hero-stacked .lg-hero-inner::after { content: ""; position: absolute; left: 0; right: 80px; bottom: 0; height: 202px; background: #5335a7; }
.lg-hero-stacked .lg-hero-note { bottom: 100px; width: 250px; color: #fff; font: 400 14px/26px Poppins, sans-serif; }
.lg-hero-stacked .lg-hero-btn { bottom: 30px; width: 209px; height: 50px; line-height: 50px; background: #ff9000; color: #fff; font-size: 15px; border-radius: 6px; }
.lg-hero-stacked > .lg-hero-bar { right: 0; bottom: 0; width: 80px; height: 202px; background: #5335a7; }
.lg-hero-stacked .lg-hero-book, .lg-hero-stacked .lg-hero-count { display: none; }
.lg-hero-stacked .lg-hero-prev, .lg-hero-stacked .lg-hero-next { position: absolute; left: 0; width: 80px; height: 80px; }
.lg-hero-stacked .lg-hero-prev { top: 42px; background: #df7e00; }
.lg-hero-stacked .lg-hero-next { top: 122px; background: #d17600; }

/* The Sina carousels, moved from Owl to Swiper markup: what Owl's stylesheet did to their items. */
.lg-owl .sina-brand-item a { display: block; text-align: center; }

/* Elementor's video overlay, now a link. */
a.elementor-custom-embed-image-overlay { display: block; }
.elementor-wrapper iframe.elementor-video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

/* The app's own pieces, which on other pages take their look from site.css. */
.lg-draft-bar { position: relative; z-index: 10000; padding: 8px 16px; background: #27265a; color: #fff; font: 400 14px/1.4 Roboto, sans-serif; }
.lg-draft-bar a { color: #f8a21b; }
.consent-banner { position: fixed; left: 0; right: 0; bottom: 0; z-index: 10000; background: #fff; border-top: 4px solid #f8a21b; box-shadow: 0 -10px 34px rgba(39,38,90,.18); padding: 18px 20px; font-family: Roboto, sans-serif; }
.consent-banner .wrap { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; align-items: center; }
.consent-banner h2 { font-size: 1.1rem; margin: 0 0 .3rem; color: #27265a; }
.consent-banner p { margin: 0; font-size: .92rem; color: #5b5b72; }
.consent-choices label { display: inline-flex; gap: 6px; align-items: center; margin-right: 14px; font-weight: 500; }
.consent-choices .actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 10px; }
.consent-choices .btn { padding: 9px 14px; font-size: .9rem; border-radius: 4px; border: 1px solid #27265a; background: #fff; color: #27265a; cursor: pointer; }
.consent-choices .btn.primary { background: #f8a21b; border-color: #f8a21b; color: #27265a; }
@media (max-width: 800px) { .consent-banner .wrap { grid-template-columns: 1fr; } }

/* Elementor's popups wait after the page until a link opens one; ElementsKit's team profiles wait in place. */
.lg-popups > [data-elementor-type="popup"], .elementskit-team-popup.mfp-hide, .mfp-hide { display: none; }
.lg-overlay { position: fixed; inset: 0; z-index: 10001; display: flex; align-items: center; justify-content: center; padding: 20px; background: rgba(0,0,0,.8); animation: lg-fade .5s ease; }
@keyframes lg-fade { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .lg-overlay { animation: none; } }
.lg-overlay-box { position: relative; max-width: min(100%, 1140px); max-height: 100%; overflow: auto; }
.lg-overlay .lg-popups-item, .lg-overlay [data-elementor-type="popup"], .lg-overlay .mfp-hide, .lg-overlay .elementskit-team-popup { display: block !important; }
.lg-popup .lg-overlay-box { width: 640px; background: #fff; }
.lg-team .lg-overlay-box { background: #fff; width: 900px; }
.lg-lightbox .lg-overlay-box img { display: block; max-width: 90vw; max-height: 90vh; }
.lg-overlay-close { position: absolute; top: 8px; right: 12px; z-index: 2; border: 0; background: none; font: 400 28px/1 Roboto, sans-serif; color: #333; cursor: pointer; }
.lg-lightbox .lg-overlay-close { position: fixed; top: 16px; right: 20px; color: #fff; }

/* ElementsKit's back-to-top button: legacy.js pins it to the bottom of the window, and its hidden copy keeps its
   place in the page only while it is pinned. */
.lg-sticky-bottom.lg-stuck { position: fixed !important; margin: 0 !important; z-index: 9998; }
.lg-sticky-bottom + .lg-sticky-ghost:not(.lg-stuck) { display: none; }

/* What Elementor's form script drew: the spam trap out of sight, its messages, and the waiting state. */
.lg-hp { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.elementor-message { margin: 10px 0 0; font-size: 1em; line-height: 1; width: 100%; }
.elementor-message.elementor-message-success { color: #5cb85c; }
.elementor-message.elementor-message-danger { color: #d9534f; }
.elementor-form-waiting { opacity: .6; }
.lg-cv-note { font-size: 15px; padding: 0 5px 10px; }

/* Typeform's embed, sized as its script sized it. */
.lg-typeform { display: block; width: 100%; height: 500px; border: 0; }

/* Slider Revolution's smaller banners, rebuilt as positioned layers. Sizes are in container units, set per
   breakpoint in the page's own CSS, so a banner scales with its column as the slider scaled it. */
.lg-banner { container-type: inline-size; position: relative; width: 100%; }
.lg-banner-stage { position: relative; overflow: hidden; }
.lg-banner-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity .8s ease, visibility 0s linear .8s; }
.lg-banner-slide.is-active { opacity: 1; visibility: visible; transition: opacity .8s ease; }
.lg-banner-global { position: absolute; inset: 0; pointer-events: none; }
.lg-banner-global > * { pointer-events: auto; }
.lg-banner-layer { position: absolute; box-sizing: border-box; overflow: hidden; text-decoration: none; margin: 0; border-width: 0; }
button.lg-banner-layer { background: none; cursor: pointer; }
@media (prefers-reduced-motion: reduce) { .lg-banner-slide { transition: none; } }

/* The local-only note over the Bookings calendar's space (legacy.js adds it only when the page says it is local). */
.lg-local-note-hold { position: sticky; top: 140px; height: 0; z-index: 2; }
.lg-local-note { position: absolute; top: 24px; left: 50%; transform: translateX(-50%); width: min(560px, calc(100% - 32px)); padding: 18px 22px; border: 2px dashed #5335a7; border-radius: 10px; background: #f6f4fc; color: #27265a; font: 400 15px/1.5 Roboto, Arial, sans-serif; text-align: center; }
.lg-local-note strong { display: block; margin-bottom: 4px; font-size: 17px; }
