/* Use a local SVG silhouette instead of the unavailable custom TikTok font. */
.elementor-social-icon .icon-tiktok-square {
	display: inline-block;
	width: 1em;
	height: 1em;
	line-height: 1;
}
.elementor-social-icon .icon-tiktok-square::before {
	content: "" !important;
	display: block;
	width: 1em;
	height: 1em;
	background-color: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.7 1h-3.8v14.7a3.2 3.2 0 1 1-2.8-3.2V8.6a7 7 0 1 0 6.6 7V8.2a9.1 9.1 0 0 0 5.3 1.7V6.1A5.3 5.3 0 0 1 16.7 1Z'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16.7 1h-3.8v14.7a3.2 3.2 0 1 1-2.8-3.2V8.6a7 7 0 1 0 6.6 7V8.2a9.1 9.1 0 0 0 5.3 1.7V6.1A5.3 5.3 0 0 1 16.7 1Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* No entrance or hover zoom effects. Keep masonry positioning transforms intact. */
.chef-siri-still-gallery,
.chef-siri-still-gallery .gallery-grid-item,
.chef-siri-still-gallery .gallery-item,
.chef-siri-still-gallery .e-gallery-item,
.chef-siri-still-gallery img,
.chef-siri-still-gallery .e-gallery-image {
	animation: none !important;
	transition: none !important;
}
.chef-siri-still-gallery,
.chef-siri-still-gallery .gallery-grid-item,
.chef-siri-still-gallery .gallery-item,
.chef-siri-still-gallery .e-gallery-item {
	opacity: 1 !important;
	visibility: visible !important;
}
.chef-siri-still-gallery img,
.chef-siri-still-gallery .e-gallery-image {
	transform: none !important;
}

#chef-siri-floating-book[hidden] { display: none !important; }
#chef-siri-floating-book { display: none; }
@media (max-width: 767px) {
	#chef-siri-floating-book:not([hidden]) {
		position: fixed;
		z-index: 9990;
		left: 50%;
		bottom: calc(16px + env(safe-area-inset-bottom, 0px));
		transform: translateX(-50%);
		display: inline-flex;
		align-items: center;
		justify-content: center;
		gap: 0 !important;
		box-sizing: border-box;
		max-width: calc(100vw - 32px);
		min-width: 200px;
		min-height: 60px;
		padding: 17.5px 35px;
		border: 1px solid #cb9c5e;
		border-radius: 1px;
		background: #1c1c1c !important;
		background-image: none !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
		color: #ececec;
		font: 700 18.75px/1.2 Lato, sans-serif;
		text-align: center;
		text-decoration: none;
		text-transform: uppercase;
		white-space: nowrap;
		box-shadow: 0 4px 18px rgb(0 0 0 / 25%) !important;
	}
	#chef-siri-floating-book::before,
	#chef-siri-floating-book::after {
		content: none !important;
		display: none !important;
	}
	#chef-siri-floating-book > span {
		margin: 0 !important;
		padding: 0 !important;
	}
	#chef-siri-floating-book > i {
		display: inline-block !important;
		position: static !important;
		float: none !important;
		margin: 0 0 0 15px !important;
		padding: 0 !important;
		width: 1em;
		font-size: 1.15em;
		line-height: 1;
		flex-shrink: 0;
	}
	#chef-siri-floating-book:focus-visible {
		outline: 2px solid #fff;
		outline-offset: 4px;
	}
	body.chef-siri-has-floating-book { padding-bottom: var(--chef-siri-book-space, 100px); }
}
@media (prefers-reduced-motion: no-preference) {
	html { scroll-behavior: smooth; }
}

/* Booking decorations intentionally extend beyond their columns. Clip only the
   page's horizontal paint; keep vertical overlap, sticky elements and scrolling. */
body.chef-siri-booking-page #wrapper {
  overflow-x: clip;
  overflow-y: visible;
}
/* Let form columns shrink instead of honouring input/textarea intrinsic widths. */
.elementor-3662 .elementor-element-17e8d0d8 .elementor-column,
.elementor-3662 .elementor-element-3274b579,
.elementor-3662 .wpcf7-form-control-wrap {
  min-width: 0;
  max-width: 100%;
}
.elementor-3662 .wpcf7 input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]),
.elementor-3662 .wpcf7 select,
.elementor-3662 .wpcf7 textarea {
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}
/* The phone glyph's custom font is unreliable, as with the TikTok glyph. */
.elementor-3662 .elementor-element-3c59d5d .icon-phone-call2::before {
  content: "";
  display: inline-block;
  width: 1em;
  height: 1em;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.24 11.4 11.4 0 0 0 3.6.58 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1 11.4 11.4 0 0 0 .58 3.6 1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.6 10.8a15 15 0 0 0 6.6 6.6l2.2-2.2a1 1 0 0 1 1-.24 11.4 11.4 0 0 0 3.6.58 1 1 0 0 1 1 1V20a1 1 0 0 1-1 1A17 17 0 0 1 3 4a1 1 0 0 1 1-1h3.5a1 1 0 0 1 1 1 11.4 11.4 0 0 0 .58 3.6 1 1 0 0 1-.25 1z'/%3E%3C/svg%3E") center / contain no-repeat;
}
@media (max-width: 767px) {
  /* Preserve the existing three-column navigation without fixed widget widths
     and side margins pushing the logo/button outside their columns. */
  #elementor-header .elementor-element-8caa290 {
    width: 60px;
    max-width: 100%;
    --container-widget-width: 60px;
  }
  #elementor-header .elementor-element-8caa290 > .elementor-widget-container,
  #elementor-header .elementor-element-32580b7 > .elementor-widget-container {
    margin: 0;
  }
  #elementor-header .elementor-element-8caa290 img {
    display: block;
    width: 60px;
    max-width: 100%;
    height: auto;
    object-fit: contain;
  }
  #elementor-header .elementor-element-32580b7,
  #elementor-header .elementor-element-1ce5790 {
    width: auto;
    max-width: 100%;
    --container-widget-width: auto;
    min-width: 0;
  }
  .elementor-3662 .elementor-element-3c59d5d .elementor-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    max-width: 100%;
    min-height: 44px;
    padding: 12px 24px;
    background: transparent;
    color: #ececec;
    fill: #ececec;
    border: 1px solid #cb9c5e;
    border-radius: 1px;
    font-size: 14px;
    text-decoration: none;
  }
  .elementor-3662 .elementor-element-3c59d5d .elementor-button-content-wrapper {
    display: flex;
    flex-direction: row-reverse;
    align-items: center;
    gap: 12px;
  }
  .elementor-3662 .elementor-element-3c59d5d .elementor-button-icon {
    margin: 0;
    line-height: 1;
  }
  .elementor-3662 .elementor-element-3c59d5d .elementor-button:hover,
  .elementor-3662 .elementor-element-3c59d5d .elementor-button:focus-visible {
    color: #fff;
    background: #cb9c5e;
  }
}
/* Tablet columns previously totalled 101%, wrapping the menu onto the heading. */
@media (min-width: 768px) and (max-width: 1024px) {
  #elementor-header .elementor-element-a044641 { width: 25%; }
  #elementor-header .elementor-element-98ae411 { width: 55%; }
  #elementor-header .elementor-element-1509394 { width: 20%; }
  #elementor-header .elementor-element-8caa290,
  #elementor-header .elementor-element-8caa290 img {
    width: 96px;
    max-width: 100%;
    height: auto;
    --container-widget-width: 96px;
  }
  #elementor-header .elementor-element-1ce5790 {
    width: auto;
    max-width: 100%;
    --container-widget-width: auto;
  }
  .elementor-3662 .elementor-element.elementor-element-17e8d0d8 { padding-top: 190px; }
}

/* Contain overflow at the viewport too: off-canvas widgets and overlays can be
   siblings of #wrapper. Slug-based attributes work with different live page IDs.
   clip preserves native vertical scrolling and does not create a scroll container.
   Do not override overflow-y: the mobile menu still controls vertical scroll lock. */
html[data-chef-siri-booking="true"],
body.chef-siri-booking-page,
body.chef-siri-booking-page #wrapper {
  overflow-x: clip !important;
}
/* Absolute children otherwise use the initial containing block and can escape
   body clipping. Establish the booking body as their containing block. Fixed
   navigation and overlays keep their viewport positioning. */
body.chef-siri-booking-page {
  position: relative;
}
