/* Make JS-animated elements visible */
.elementor-invisible, .trx_addons_invisible {
  visibility: visible !important;
  opacity: 1 !important;
}

/* Fix swiper/carousel - show first slide */
.swiper-wrapper { display: block !important; overflow: hidden; }
.swiper-slide { display: none !important; width: 100% !important; position: static !important; opacity: 1 !important; transform: none !important; }
.swiper-slide:first-child, .swiper-slide.swiper-slide-active { display: block !important; }
.elementor-swiper-button, .swiper-pagination { display: none !important; }
.swiper-container-fade .swiper-slide { opacity: 0 !important; }
.swiper-container-fade .swiper-slide:first-child { opacity: 1 !important; display: block !important; }

/* Elementor gallery - show items without JS */
.e-gallery,
.elementor-gallery__container {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 35px !important;
}
.e-gallery-item {
  position: static !important;
  display: block !important;
  width: auto !important;
  height: auto !important;
  visibility: visible !important;
  opacity: 1 !important;
  overflow: hidden !important;
  aspect-ratio: 1 / 1 !important;
}
.e-gallery-image {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
}
.e-gallery-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* Hide cookie/GDPR notices that need JS */
.cookie-notice, .gdpr-notice { display: none !important; }

/* Fix lazy-loaded images - show them */
img[data-lazyload] { opacity: 1 !important; }

/* Remove default body margin/padding and set dark bg so no cream gap shows */
html, body, .body_wrap, .page_wrap {
  margin: 0 !important;
  padding: 0 !important;
  background-color: #fff !important;
  border: none !important;
}
.veil_skip_link { display: none !important; }

/* Homepage cream/pink background block - force to white */
.elementor-19814 .elementor-element.elementor-element-7d301726,
.elementor-19814 .elementor-element.elementor-element-7d301726 > .elementor-motion-effects-container > .elementor-motion-effects-layer {
  background-color: #fff !important;
}

/* Fix strip at top of page behind transparent header.
   RevSlider's empty <p class="rs-p-wp-fix"> has default browser margins that
   push the hero down, exposing the section's white bg behind the transparent
   header. Hiding it lets the hero fill from top=0. */
.rs-p-wp-fix { display: none !important; }

/* Fix masonry layout without JS */
.masonry_wrap,
.posts_container.masonry_wrap,
.classic-masonry_wrap {
  position: static !important;
  height: auto !important;
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 20px !important;
}
.masonry_wrap .masonry_item,
.masonry_item {
  position: static !important;
  width: auto !important;
  left: auto !important;
  top: auto !important;
}
.masonry_item .post_featured img {
  width: 100% !important;
  height: auto !important;
}

/* RevSlider static hero - full viewport width */
.static-hero {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  margin-left: 50%;
  transform: translateX(-50%);
}
/* Ensure hero wrapper containers have no padding/margin/max-width constraints */
.elementor-section:has(.static-hero),
.elementor-section:has(.elementor-widget-slider_revolution) {
  padding: 0 !important;
  margin-top: -121px !important;
  margin-bottom: -121px !important;
  overflow: visible !important;
}
.elementor-section:has(.static-hero) .elementor-container,
.elementor-section:has(.static-hero) .elementor-widget-wrap,
.elementor-section:has(.static-hero) .elementor-widget-container,
.elementor-section:has(.static-hero) .wp-block-themepunch-revslider {
  max-width: none !important;
  padding: 0 !important;
  margin: 0 !important;
  width: 100% !important;
}
/* Force the section containing RevSlider to be single-column full-width */
.elementor-section:has(.elementor-widget-slider_revolution) > .elementor-container {
  flex-wrap: nowrap !important;
}
.elementor-section:has(.elementor-widget-slider_revolution) .elementor-col-50:has(.elementor-widget-slider_revolution) {
  width: 100% !important;
  max-width: 100% !important;
}
.elementor-section:has(.elementor-widget-slider_revolution) .elementor-col-50:not(:has(.elementor-widget-slider_revolution)) {
  display: none !important;
}
.static-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.static-hero .hero-cta {
  position: absolute;
  bottom: 100px;
  right: 60px;
  z-index: 10;
  display: inline-block;
  padding: 12px 59px;
  background-color: #af791b;
  color: #000;
  font-family: 'Roboto', 'DM Sans', sans-serif;
  font-size: 28px;
  line-height: 1.5;
  font-weight: 500;
  text-decoration: none;
  border-radius: 16px;
  text-align: center;
}
.static-hero .hero-cta:hover {
  background-color: #000;
  color: #fff;
}
.static-hero video {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Hide RevSlider arrows and navigation */
.tp-leftarrow, .tp-rightarrow, rs-progress { display: none !important; }

/* OpenTable reservation widget (cafe page) */
.opentable-widget {
  position: absolute;
  bottom: 80px;
  right: 350px;
  z-index: 10;
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  width: 320px;
  height: 400px;
}
.opentable-widget iframe {
  position: absolute;
  top: -15px;
  left: -20px;
  width: 380px;
  height: 460px;
  border: 0;
  transform: scale(1.15);
  transform-origin: top left;
}

/* Multi-slide slideshow with dot navigation */
.static-hero-slideshow .hero-slide {
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  transition: opacity 1s ease;
}
.static-hero-slideshow .hero-slide.active {
  opacity: 1;
}
/* Slide dots navigation */
.hero-dots {
  position: absolute;
  right: 50px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.hero-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid #fff;
  background: transparent;
  cursor: pointer;
  padding: 0;
  transition: background 0.3s;
}
.hero-dot.active {
  background: #da1f2c;
  border-color: #da1f2c;
}

/* Hide empty spacer that creates gaps */
.elementor-element-bc0deda { display: none !important; }

/* Fix Contact Us sidebar button */
.trx_addons_contact_form_wrap { z-index: 9999; }

/* Force navigation menu visible without JS */
.sc_layouts_menu_nav {
  display: flex !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.sc_layouts_menu_nav > li {
  display: inline-block !important;
  white-space: nowrap !important;
  visibility: visible !important;
  opacity: 1 !important;
}
.sc_layouts_menu_nav > li > a {
  display: inline-block !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  font-family: span, serif !important;
  font-size: 21px !important;
  font-weight: 600 !important;
  padding: 0.8em !important;
  color: #fdfdfd !important;
  visibility: visible !important;
  opacity: 1 !important;
}

/* Make header logo bigger */
.sc_layouts_logo .logo_image {
  max-height: 80px !important;
  width: auto !important;
  height: auto !important;
}
.sc_layouts_menu_nav .sub-menu { display: none !important; }

/* Force header to show on top with dark bg */
.top_panel {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9999 !important;
  background: rgba(0, 0, 0, 0.85) !important;
}
.top_panel .elementor,
.top_panel .elementor > section {
  background: transparent !important;
}

/* Hide the duplicate fixed/scroll header and mobile-only header */
.sc_layouts_row_fixed,
.sc_layouts_row_delay_fixed,
.sc_layouts_row_hide_unfixed { display: none !important; }
.sc_layouts_row_fixed_placeholder { display: none !important; }
.sc_layouts_row_unfixed_placeholder { display: none !important; }
.sc_layouts_hide_on_wide.sc_layouts_hide_on_desktop.sc_layouts_hide_on_notebook { display: none !important; }

/* Fix mobile menu button hidden on desktop */
.sc_layouts_menu_mobile_button { display: none !important; }

/* Font size overrides — ensure consistent sizing across local and live */
.elementor-widget-text-editor .elementor-widget-container,
.elementor-widget-text-editor .elementor-widget-container p {
  font-size: 18px !important;
  line-height: 1.75 !important;
}
h2.elementor-heading-title.elementor-size-default { font-size: 42px !important; }
h3.elementor-heading-title.elementor-size-default { font-size: 34px !important; }
h4.elementor-heading-title.elementor-size-default { font-size: 24px !important; }
h5.elementor-heading-title.elementor-size-default { font-size: 20px !important; }

/* Narrow article-width layout for text-heavy pages */
.narrow-content .elementor-section.elementor-section-boxed > .elementor-container {
  max-width: 45em;
}
