html { scroll-behavior: smooth; }
body { overflow-x: clip; }
.elementor-invisible { visibility: visible !important; }
#loftloader-wrapper { display: none !important; }
img, video, iframe, object { max-width: 100%; }
.elementor-column, .elementor-widget-wrap { min-width: 0; }
[id] { scroll-margin-top: 90px; }
a:focus-visible,button:focus-visible { outline: 3px solid #b9955b; outline-offset: 4px; }
.joinchat { display: block !important; }
.ch-pdf-viewer { display: grid; gap: 16px; padding: 20px 0; }
.ch-pdf-viewer object { display: block; width: 100%; height: min(78vh, 900px); min-height: 480px; background: #f5f1eb; border: 1px solid #ddd; }
.ch-pdf-link { display: inline-flex; width: fit-content; align-items: center; justify-content: center; padding: 14px 22px; background: #570a12; color: #fff !important; min-height: 48px; border-radius: 3px; text-decoration: none; }
.ch-reservation { padding: 24px 0 64px; display: flex; flex-wrap: wrap; gap: 16px; }
.ch-reservation p { flex-basis: 100%; }
.elementor-gallery__container { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; height: auto !important; }
.elementor-gallery__container .e-gallery-item { display: block; position: relative !important; width: 100% !important; height: auto !important; aspect-ratio: 3 / 2; transform: none !important; top: auto !important; left: auto !important; }
.elementor-gallery__container .e-gallery-image { position: absolute; inset: 0; background-size: cover; background-position: center; }
.ch-lightbox { padding: 60px 64px 36px; border: none; background: #151515; color: white; width: min(95vw,1200px); max-width: 95vw; max-height: 95vh; }
.ch-lightbox::backdrop { background: #000d; }
.ch-lightbox figure { margin: 0; text-align: center; }
.ch-lightbox figure img { max-height: 74vh; max-width: 100%; object-fit: contain; }
.ch-lightbox figcaption { margin-top: 10px; }
.ch-lightbox button { position: absolute; background: transparent; border: 0; color: #fff; padding: 8px; min-width: 44px; min-height: 44px; font-size: 36px; line-height: 1; }
.ch-lightbox-close { top: 8px; right: 8px; }
.ch-lightbox-prev { left: 4px; top: 45%; }
.ch-lightbox-next { right: 4px; top: 45%; }
.elementor-slides-wrapper .swiper-wrapper { display: block; transform: none !important; }
.elementor-slides-wrapper .swiper-slide { display: none !important; width: 100% !important; }
.elementor-slides-wrapper .swiper-slide.ch-slide-active { display: flex !important; }
.elementor-swiper-button { cursor: pointer; min-width: 44px; min-height: 44px; justify-content: center; align-items: center; }
.elementor-image-carousel-wrapper { width: 100%; overflow: hidden; }
.elementor-image-carousel-wrapper .swiper-wrapper { display: flex; width: 100%; overflow-x: auto; scroll-snap-type: x mandatory; transform: none !important; }
.elementor-image-carousel-wrapper .swiper-slide { flex: 0 0 calc((100% - 32px)/3); min-width: 0; max-width: none !important; margin-right: 16px; scroll-snap-align: start; }
.elementor-image-carousel-wrapper figure { margin: 0; }
.elementor-image-carousel-wrapper img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.wprev-slider > ul { display: flex !important; overflow-x: auto; scroll-snap-type: x mandatory; list-style: none; margin: 0; padding: 0; width: 100% !important; }
.wprev-slider > ul > li { display: block !important; flex: 0 0 100%; width: 100% !important; scroll-snap-align: start; }
.wprev-slider .wptripadvisor_t1_outer_div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; padding: 0; }
.wprev-slider .outerrevdiv { width: 100% !important; min-width: 0; padding: 0; }
.ch-review-controls { display: flex; justify-content: center; gap: 12px; padding: 16px 0; }
.ch-review-controls button { min-width: 44px; min-height: 44px; padding: 8px 16px; background: #570a12; color: #fff; border: 0; border-radius: 3px; }
.wprs_rd_more { cursor: pointer; text-decoration: underline; }
.wprev-slider > ul.ch-review-grid { display: grid !important; grid-template-columns: repeat(var(--ch-review-columns,3),minmax(0,1fr)); align-items: start; gap: 24px; overflow: visible; height: auto !important; }
.wprev-slider > ul.ch-review-grid > li { margin: 0; padding: 0; min-width: 0; }
.wprev-slider > ul.ch-review-grid > li[hidden] { display: none !important; }
.wprev-slider .ch-review-card .outerrevdiv { margin: 0; padding: 0; }
.wprev-slider .ch-review-card .wptripadvisor_t1_SPAN_5 { display: block; margin: 12px 0 0; }
.wprev-slider .ch-review-card .indrevdiv { margin: 0; }
.ch-review-controls { align-items: center; padding: 20px 0 0; }
.ch-review-count { min-width: 80px; text-align: center; font-size: 13px; color: #5c4b46; }
.elementor .elementor-element.elementor-element-7fa53e4 { padding: 40px 24px 32px; }
.elementor .elementor-element.elementor-element-7fa53e4 > .elementor-container { max-width: 1180px; }
.elementor .elementor-element.elementor-element-7fa53e4 .elementor-widget-wrap { padding-top: 0; padding-bottom: 0; }
.elementor .elementor-element.elementor-element-457ff5f { padding: 0 !important; margin: 0; }
.elementor .elementor-element.elementor-element-457ff5f > .elementor-container { max-width: none; width: 100%; }
.elementor .elementor-element.elementor-element-457ff5f .elementor-widget-wrap { padding: 0 !important; }
.elementor .elementor-element.elementor-element-457ff5f .elementor-swiper,
.elementor .elementor-element.elementor-element-457ff5f .elementor-slides-wrapper { width: 100% !important; max-width: none !important; }
.elementor-slides-wrapper .swiper-slide-bg { background-size: contain !important; background-position: center !important; background-repeat: no-repeat; background-color: #3b0c13; animation: none !important; transform: none !important; }
.elementor-slides-wrapper .swiper-slide.ch-slide-active { min-height: clamp(360px,56.25vw,720px); height: auto !important; }
.elementor-slides-wrapper .swiper-slide-inner { min-height: inherit; position: relative; width: 100%; }
.ch-search-status { max-width: 1200px; margin: 24px auto; padding: 0 20px; }
article[hidden] { display: none !important; }
@media(max-width:1024px) {
  .elementor-gallery__container { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wprev-slider .wptripadvisor_t1_outer_div { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:921px) {
  .ast-header-break-point .custom-logo-link { display: inline-flex !important; }
  .ast-header-break-point .main-header-bar-navigation { display: none; }
  .ast-header-break-point.ast-main-header-nav-open .main-header-bar-navigation { display: block; }
  .ast-header-break-point .main-header-menu { display: block; background: #202020 !important; padding: 12px 0; }
  .ast-header-break-point .main-header-menu .menu-link { color: white; min-height: 48px; display: flex; align-items: center; }
  .ast-header-break-point .main-header-menu .sub-menu { display: none !important; position: static !important; width: 100%; opacity: 1 !important; visibility: visible !important; background: #292929; }
  .ast-header-break-point .main-header-menu .ch-submenu-open > .sub-menu { display: block !important; }
  .ast-header-break-point .main-header-menu .ast-menu-toggle { color: white; min-width: 48px; min-height: 48px; }
  .menu-toggle { min-width: 48px; min-height: 48px; }
}
@media(max-width:767px) {
  .elementor-image-carousel-wrapper .swiper-slide { flex-basis: 100%; }
  .site-header .custom-logo-link img { width: min(210px,60vw); height: auto; }
  .main-header-bar { padding: 12px 0; }
  .elementor .elementor-top-section { padding-left: 20px; padding-right: 20px; }
  .elementor .elementor-top-section > .elementor-container { max-width: 100%; }
  .elementor .elementor-top-section:not(:first-child) { padding-top: 40px; padding-bottom: 40px; }
  .elementor .elementor-element.elementor-widget-heading h1.elementor-heading-title { font-size: clamp(32px,8vw,44px); line-height: 1.2; overflow-wrap: normal; text-wrap: balance; }
  .elementor .elementor-element.elementor-widget-heading h2.elementor-heading-title { font-size: clamp(26px,7vw,34px); line-height: 1.2; text-wrap: balance; }
  .elementor .elementor-element.elementor-widget-heading h3.elementor-heading-title { font-size: clamp(22px,5.5vw,28px); line-height: 1.3; text-wrap: balance; }
  .elementor-widget-text-editor { font-size: 16px; line-height: 1.75; }
  .elementor-widget-text-editor p { text-align: left !important; }
  .elementor-widget-spacer .elementor-spacer-inner { max-height: 32px; }
  .elementor-gallery__container { gap: 10px; }
  .ch-lightbox { padding: 58px 44px 28px; }
  .ch-pdf-viewer object { min-height: 440px; height: 65vh; }
  .ch-pdf-link { width: 100%; }
  .wprev-slider .wptripadvisor_t1_outer_div { grid-template-columns: 1fr; gap: 24px; }
  .elementor-slides-wrapper .swiper-slide { min-height: 440px; }
  .elementor-slides-wrapper .swiper-slide-inner { padding: 45px !important; }
  .elementor-slide-heading { font-size: 26px !important; }
  .elementor-slide-description { font-size: 16px !important; line-height: 1.6; }
  #ssb-container { display: none; }
  .joinchat { --s: 54px; --sep: 16px; bottom: max(16px,env(safe-area-inset-bottom)); }
  .site-footer { padding-bottom: 72px; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  .elementor-ken-burns { animation: none !important; }
}

/* Mobile navigation: a dedicated, accessible full-screen menu. */
html.ch-nav-open, body.ch-nav-open { overflow: hidden !important; }
.ch-mobile-navigation {
  position: fixed; inset: 0; width: 100%; max-width: none; height: 100vh; height: 100dvh;
  max-height: none; margin: 0; padding: 0; border: 0; border-radius: 0;
  color: #fff8eb; background: radial-gradient(ellipse at 50% 0%, #742532 0%, #4c111b 48%, #320b13 100%);
  overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: #b88666 #4c111b;
  font-family: inherit;
}
.ch-mobile-navigation::backdrop { background: #28070fe6; }
.ch-nav-shell { min-height: 100%; display: flex; flex-direction: column; padding: max(22px,env(safe-area-inset-top)) 24px max(22px,env(safe-area-inset-bottom)); box-sizing: border-box; }
.ch-nav-top { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.ch-nav-brand { display: inline-flex; align-items: center; min-height: 52px; }
.ch-nav-brand img { display: block; width: min(230px,calc(100vw - 136px)); height: auto; }
.ch-nav-close { position: relative; flex: 0 0 48px; width: 48px; height: 48px; padding: 0; border: 1px solid #ffffff38; border-radius: 50%; background: #ffffff08; color: #fff8eb; cursor: pointer; }
.ch-nav-close span::before, .ch-nav-close span::after { content: ''; position: absolute; left: 13px; top: 23px; width: 20px; height: 1.5px; border-radius: 2px; background: currentColor; transform: rotate(45deg); }
.ch-nav-close span::after { transform: rotate(-45deg); }
.ch-nav-close:hover { background: #ffffff15; }
.ch-nav-body { width: 100%; max-width: 500px; margin: auto; padding: 34px 0 26px; text-align: center; }
.ch-nav-eyebrow { margin: 0 0 22px; color: #e2bc8b; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; line-height: 1.5; }
.ch-nav-links { display: grid; gap: 4px; }
.ch-nav-links a { display: flex; align-items: center; justify-content: center; min-height: 50px; padding: 6px 16px; border-radius: 12px; color: #fff8eb; font-size: clamp(24px,6.8vw,30px); line-height: 1.2; font-weight: 500; letter-spacing: .3px; text-decoration: none; transition: color .18s,background .18s; }
.ch-nav-links a:hover, .ch-nav-links a:focus-visible { background: #ffffff0d; color: #efc48f; }
.ch-nav-links a[aria-current="page"] { color: #efc48f; }
.ch-nav-secondary { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 8px; margin-top: 18px; }
.ch-nav-secondary a { display: inline-flex; align-items: center; min-height: 40px; color: #ead9cc; text-decoration: none; font-size: 12px; line-height: 1.4; }
.ch-nav-secondary > span { color: #b88666; }
.ch-nav-bottom { width: 100%; max-width: 380px; margin: 0 auto; text-align: center; }
.ch-nav-reserve { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; min-height: 54px; border-radius: 12px; color: #351018; background: #e3bc89; font-size: 16px; font-weight: 600; text-decoration: none; }
.ch-nav-reserve:hover { color: #351018; background: #f0cfa3; }
.ch-nav-reserve span { font-size: 22px; line-height: 1; }
.ch-nav-socials { display: flex; align-items: center; justify-content: center; gap: 16px; margin-top: 14px; }
.ch-nav-socials a { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; min-width: 44px; color: #fff8eb; font-size: 13px; text-decoration: none; }
.ch-nav-socials svg { width: 19px; height: 19px; fill: currentColor; }
.ch-nav-address { margin: 2px 0 0; color: #d9bfb0; font-size: 12px; line-height: 1.6; }
@media(max-width:921px) {
  #masthead .menu-toggle { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; min-height: 48px; padding: 12px; border: 1px solid #ffffff4d !important; border-radius: 12px; background: #ffffff0d; color: #fff; }
  #masthead .menu-toggle:hover { background: #ffffff21; }
  .ch-burger { display: flex; flex-direction: column; gap: 5px; align-items: flex-end; width: 22px; }
  .ch-burger i { display: block; width: 22px; height: 1.5px; background: currentColor; border-radius: 2px; }
  .ch-burger i:nth-child(2) { width: 16px; }
  .ast-header-break-point.ast-main-header-nav-open .main-header-bar-navigation { display: none; }
}
@media(max-height:680px) {
  .ch-nav-shell { padding-top: 14px; padding-bottom: 14px; }
  .ch-nav-body { padding-top: 20px; padding-bottom: 18px; }
  .ch-nav-eyebrow { margin-bottom: 10px; }
  .ch-nav-links { gap: 0; }
  .ch-nav-links a { min-height: 46px; font-size: 24px; }
  .ch-nav-secondary { margin-top: 8px; }
}
@media(prefers-reduced-motion:no-preference) {
  .ch-mobile-navigation[open] .ch-nav-shell { animation: ch-menu-enter .22s ease-out; }
  @keyframes ch-menu-enter { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
}

/* Native slider: visible copy and background covering the whole panel. */
.elementor-slides-wrapper .swiper-slide-bg { position: absolute; inset: 0; width: 100%; height: 100%; background-size: cover !important; }
.elementor-slides-wrapper .swiper-slide.ch-slide-active { position: relative; }
.elementor-slides-wrapper .ch-slide-active .swiper-slide-inner { display: flex; align-items: center; justify-content: center; z-index: 1; padding: 48px 60px; }
.elementor-slides-wrapper .ch-slide-active .swiper-slide-contents { opacity: 1 !important; visibility: visible !important; transform: none !important; animation: none !important; width: 100%; }
@media(max-width:767px) { .elementor-slides-wrapper .ch-slide-active .swiper-slide-inner { padding: 36px 44px !important; } .elementor-slides-wrapper .ch-slide-active .swiper-slide-contents { max-width: 100% !important; } .elementor-slides-wrapper .elementor-slide-description { font-size: 16px; line-height: 1.5; } }

/* Compact contact and annual site credit. */
.elementor .elementor-element.elementor-element-1d79a0b5 { padding: 36px 25px 24px !important; }
.elementor .elementor-element.elementor-element-1d79a0b5 .elementor-widget-wrap { padding-bottom: 0 !important; }
.elementor .elementor-element.elementor-element-0007d59 { display: none; }
.elementor .elementor-element.elementor-element-fed5d47 { padding: 18px 24px !important; }
.ch-footer-credit { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px; font-size: 12px !important; line-height: 1.5 !important; }
.ch-arcaone-credit { display: inline-flex; align-items: center; gap: 8px; color: inherit !important; text-decoration: none; }
.ch-arcaone-credit img { width: 90px; height: auto; max-height: 28px; filter: brightness(0) invert(1); }
@media(max-width:767px) { .ch-footer-credit { justify-content: center; text-align: center; gap: 10px; } .ch-footer-credit > span { width: 100%; } }

/* Slim full-width slider section. */
.elementor .elementor-slides-wrapper, .elementor .elementor-slides-wrapper .swiper-wrapper { height: auto !important; min-height: 0 !important; }
.elementor .elementor-slides-wrapper .swiper-slide.ch-slide-active { height: auto !important; min-height: 360px !important; }
.elementor .elementor-slides-wrapper .ch-slide-active .swiper-slide-inner { min-height: 360px !important; padding: 40px 64px !important; }
.elementor .elementor-slides-wrapper .elementor-slide-heading { font-size: clamp(23px,2.2vw,32px) !important; line-height: 1.2; margin-bottom: 18px; }
.elementor .elementor-slides-wrapper .swiper-slide-contents { max-width: 1000px !important; }
@media(max-width:767px) { .elementor .elementor-slides-wrapper .swiper-slide.ch-slide-active, .elementor .elementor-slides-wrapper .ch-slide-active .swiper-slide-inner { min-height: 300px !important; } .elementor .elementor-slides-wrapper .ch-slide-active .swiper-slide-inner { padding: 32px 44px !important; } }


.ch-digital-menu { background: #faf7f2; color: #302722; font-family: Poppins,sans-serif; }
.ch-menu-intro { text-align: center; background: #410d16; color: white; padding: 64px 24px 48px; }
.ch-menu-intro h1 { color: white; font-size: clamp(36px,5vw,60px); margin: 10px 0 16px; }
.ch-menu-eyebrow { font-size: 12px; letter-spacing: .18em; font-weight: 600; }
.ch-menu-intro nav { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.ch-menu-intro nav a { background: #fff; color: #410d16; padding: 12px 22px; border-radius: 6px; font-weight: 600; }
.ch-menu-body { max-width: 1180px; padding: 36px 24px 56px; margin: auto; }
.ch-menu-search { max-width: 620px; margin: 0 auto 48px; }
.ch-menu-search label { display: block; font-weight: 600; margin-bottom: 10px; }
.ch-menu-search input { width: 100%; background: white; border: 1px solid #d5c9bd; border-radius: 8px; padding: 16px; font-size: 16px; color: #302722; }
#ch-menu-results { font-size: 12px; min-height: 20px; margin: 8px 0; }
.ch-menu-section-title { display: flex; justify-content: space-between; align-items: center; gap: 20px; margin: 36px 0 24px; }
.ch-menu-section-title h2 { font-size: clamp(26px,4vw,36px); margin: 4px 0; color: #410d16; }
.ch-menu-section-title a { color: #410d16; font-size: 13px; text-decoration: underline; }
.ch-menu-categories { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; }
.ch-menu-categories a { border: 1px solid #d5c9bd; padding: 8px 13px; border-radius: 24px; color: #410d16; font-size: 12px; background: white; }
.ch-menu-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 24px; align-items: start; }
.ch-menu-category { border: 1px solid #e3d9ce; background: white; border-radius: 10px; padding: 26px; }
.ch-menu-category h2 { font-size: 21px; color: #570a12; margin: 0 0 18px; }
.ch-menu-category ul { list-style: none; margin: 0; padding: 0; }
.ch-menu-category li { padding: 10px 0; border-bottom: 1px solid #f0eae3; font-size: 14px; line-height: 1.6; }
.ch-menu-category li:last-child { border: 0; }
.ch-menu-note { font-size: 13px; margin-top: 36px; color: #73645c; }
.ch-digital-menu [hidden] { display: none !important; }
.elementor .elementor-element-1d79a0b5 .ch-contact-columns { display: grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items: start; }
.ch-contact-columns > div { min-width: 0; }
.ch-contact-columns .elementor-widget { margin-bottom: 18px; }
@media(max-width:767px) { .ch-menu-grid { grid-template-columns: 1fr; gap: 16px; } .ch-menu-intro { padding: 44px 20px 32px; } .ch-menu-body { padding: 26px 18px 36px; } .ch-menu-category { padding: 22px; } .ch-menu-section-title { align-items: start; flex-direction: column; gap: 10px; } .elementor .elementor-element-1d79a0b5 .ch-contact-columns { grid-template-columns: 1fr; gap: 20px; } }

/* Flow categories into a gap-free desktop mosaic. */
@media(min-width:768px) {
 .ch-menu-grid { display: block; columns: 2; column-gap: 24px; }
 .ch-menu-category { display: inline-block; width: 100%; box-sizing: border-box; break-inside: avoid; margin-bottom: 24px; vertical-align: top; }
}

.ch-menu-category h2 { font-family: Poppins,sans-serif !important; font-size: clamp(26px,2.3vw,32px) !important; font-weight: 600; line-height: 1.25; margin-bottom: 20px; }
.ch-cooking-guide { margin: 48px 0; }
.ch-cooking-guide .elementor-element-c26a4fe { padding: 24px 0 32px !important; }
.ch-cooking-guide .elementor-element-c26a4fe .elementor-heading-title { font-family: Poppins,sans-serif !important; font-size: clamp(27px,3vw,40px) !important; }
.ch-cooking-guide .elementor-section { width: 100%; left: auto; }
.ch-cooking-guide .elementor-element-cf75490 .elementor-heading-title { font-family: Poppins,sans-serif !important; font-size: 27px !important; }
.ch-cooking-guide .elementor-element-cf75490 .elementor-widget-text-editor { font-size: 16px; line-height: 1.7; }

/* Prominent menu titles and original fourteen dish photographs. */
.ch-menu-section-title h2 { font-size: clamp(52px,8vw,72px) !important; line-height: 1.15; }
.ch-dish-gallery { margin: 48px 0 32px; }
.ch-dish-gallery > h2 { color: #410d16; font-family: Poppins,sans-serif; font-size: 28px; margin-bottom: 24px; }
.ch-dish-gallery .elementor-section { padding: 0 !important; }
.ch-dish-gallery .elementor-widget-wrap { padding: 0 !important; }
.ch-dish-gallery .elementor-image-carousel-wrapper { position: relative; padding-bottom: 52px; }
.ch-dish-gallery .elementor-swiper-button { top: auto; bottom: 0; transform: none; background: #410d16; color: white; border-radius: 4px; }
.ch-dish-gallery .elementor-swiper-button-prev { left: calc(50% - 52px); }
.ch-dish-gallery .elementor-swiper-button-next { right: calc(50% - 52px); }

/* Menu cover and headings follow the site's NOSOTROS typography. */
.ch-menu-intro { min-height: 440px; box-sizing: border-box; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 80px 24px 64px; }
.ch-menu-intro h1 { font-family: Poppins,sans-serif !important; font-size: clamp(48px,6.5vw,88px) !important; font-weight: 600 !important; line-height: 1.1; text-transform: uppercase; margin: 0 0 24px; }
.ch-menu-section-title h2, .ch-menu-category h2, .ch-dish-gallery > h2 { font-family: Poppins,sans-serif !important; font-weight: 600 !important; text-transform: uppercase; }
@media(max-width:767px) { .ch-menu-intro { min-height: 380px; padding: 60px 20px 44px; } .ch-menu-section-title h2 { font-size: 48px !important; } }

/* Five dishes on desktop, controlled by arrows, without a scrollbar. */
.ch-dish-gallery .swiper-wrapper { scrollbar-width: none; -ms-overflow-style: none; }
.ch-dish-gallery .swiper-wrapper::-webkit-scrollbar { display: none; width: 0; height: 0; }
.ch-dish-gallery .elementor-image-carousel-wrapper .swiper-slide { flex-basis: calc((100% - 64px)/5); }
@media(max-width:1024px) and (min-width:768px) { .ch-dish-gallery .elementor-image-carousel-wrapper .swiper-slide { flex-basis: calc((100% - 32px)/3); } }
@media(max-width:767px) { .ch-dish-gallery .elementor-image-carousel-wrapper .swiper-slide { flex-basis: 100%; } }
.ch-dish-gallery .swiper-pagination { display: none !important; }

/* Use the original Carta de comidas script face for menu headings. */
.ch-menu-intro h1, .ch-menu-section-title h2, .ch-menu-category h2, .ch-dish-gallery > h2 { font-family: Allura,cursive !important; font-weight: 400 !important; text-transform: none !important; }
.ch-menu-category h2 { font-size: clamp(32px,2.8vw,40px) !important; }

@media(prefers-reduced-motion:no-preference) {
 .ch-dish-gallery .swiper-wrapper { scroll-behavior: smooth; }
 .ch-menu-intro nav a, .ch-menu-categories a { transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease; }
 .ch-menu-intro nav a:hover, .ch-menu-categories a:hover { transform: translateY(-2px); box-shadow: 0 5px 15px #410d1618; }
 .ch-dish-gallery img { transition: transform .4s ease; }
 .ch-dish-gallery figure { overflow: hidden; }
 .ch-dish-gallery figure:hover img { transform: scale(1.04); }
}

.ch-menu-intro { min-height: 500px; padding-top: 140px; padding-bottom: 76px; }
@media(max-width:767px) { .ch-menu-intro { min-height: 430px; padding-top: 110px; padding-bottom: 52px; } }

/* Keep bare navigation arrows outside the photographs. */
.ch-dish-gallery { padding: 0 48px; }
.ch-dish-gallery .elementor-image-carousel-wrapper { padding-bottom: 0 !important; overflow: visible; }
.ch-dish-gallery .elementor-image-carousel-wrapper .swiper-wrapper { overflow-x: auto; }
.ch-dish-gallery .elementor-image-carousel-wrapper .elementor-swiper-button { top: 50% !important; bottom: auto !important; transform: translateY(-50%) !important; background: transparent !important; color: #410d16 !important; width: 44px; height: 44px; padding: 8px !important; font-size: 28px !important; border: 0; box-shadow: none; }
.ch-dish-gallery .elementor-image-carousel-wrapper .elementor-swiper-button-prev { left: -46px !important; right: auto !important; }
.ch-dish-gallery .elementor-image-carousel-wrapper .elementor-swiper-button-next { right: -46px !important; left: auto !important; }
@media(max-width:767px) { .ch-dish-gallery { padding: 0 32px; } .ch-dish-gallery .elementor-image-carousel-wrapper .elementor-swiper-button-prev { left: -38px !important; } .ch-dish-gallery .elementor-image-carousel-wrapper .elementor-swiper-button-next { right: -38px !important; } }

.ch-dish-gallery .elementor-swiper-button, .ch-dish-gallery .elementor-swiper-button svg { opacity: 1 !important; fill: #410d16 !important; color: #410d16 !important; }

.ch-cooking-guide .elementor-element-c26a4fe .elementor-heading-title { font-family: Allura,cursive !important; font-weight: 400 !important; text-transform: none !important; font-size: clamp(40px,5vw,64px) !important; line-height: 1.2; }

/* Light outline cover navigation. */
.ch-menu-intro nav a { background: transparent !important; color: #fff !important; border: 1px solid #fff; border-radius: 4px; box-shadow: none !important; padding: 12px 22px; }
@media(prefers-reduced-motion:no-preference) { .ch-menu-intro nav a { transition: transform .25s ease; } .ch-menu-intro nav a:hover, .ch-menu-intro nav a:focus-visible { transform: translateY(-5px); } }

.ch-contact-social, .ch-contact-social .elementor-heading-title { text-align: right !important; }
.ch-contact-social .elementor-social-icons-wrapper { display: flex; justify-content: flex-end; gap: 12px; }
.ch-contact-social .elementor-widget-social-icons { text-align: right !important; }

.ch-cooking-guide .elementor-element-cf75490 .elementor-heading-title { font-family: Allura,cursive !important; text-transform: none !important; font-weight: 400 !important; font-size: 44px !important; line-height: 1.2; }

/* Override the original Elementor left and mobile-center alignment. */
.elementor .elementor-element-1d79a0b5 .ch-contact-social { width: 100%; justify-self: end; text-align: right !important; }
.elementor .elementor-element-1d79a0b5 .ch-contact-social .elementor-widget-heading .elementor-heading-title { width: 100%; text-align: right !important; }
.elementor .elementor-element-1d79a0b5 .ch-contact-social .elementor-widget-social-icons .elementor-widget-container { width: 100%; text-align: right !important; }
.elementor .elementor-element-1d79a0b5 .ch-contact-social .elementor-social-icons-wrapper { display: flex !important; width: 100% !important; justify-content: flex-end !important; text-align: right !important; }

@media(max-width:767px) {
 .elementor .elementor-element-1d79a0b5 .ch-contact-columns, .elementor .elementor-element-1d79a0b5 .ch-contact-columns .elementor-heading-title, .elementor .elementor-element-1d79a0b5 .ch-contact-social, .elementor .elementor-element-1d79a0b5 .ch-contact-social .elementor-widget-heading .elementor-heading-title, .elementor .elementor-element-1d79a0b5 .ch-contact-social .elementor-widget-social-icons .elementor-widget-container { text-align: center !important; }
 .elementor .elementor-element-1d79a0b5 .ch-contact-social .elementor-social-icons-wrapper { justify-content: center !important; text-align: center !important; }
 .elementor .elementor-element-1d79a0b5 .ch-contact-details .elementor-icon-box-wrapper { display: flex; flex-direction: column; align-items: center; text-align: center !important; }
 .elementor .elementor-element-1d79a0b5 .ch-contact-details .elementor-icon-box-icon { margin-left: 0 !important; margin-right: 0 !important; margin-bottom: 14px; }
}

.ch-header-reserve { display: inline-flex; align-items: center; justify-content: center; padding: 10px 16px; min-height: 44px; border: 1px solid #fff; border-radius: 5px; color: #fff !important; font-family: Poppins,sans-serif; font-size: 12px; white-space: nowrap; margin-left: 22px; }
.ch-nav-reserve { justify-content: center !important; text-align: center; gap: 10px; }
.ch-nav-reserve span { margin: 0 !important; }
@media(max-width:921px) { .ch-header-reserve { display: none; } }

.rcu-map-consent { min-height: 280px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; padding: 28px; background: #f4f6f7; color: #303840; text-align: center; }
.rcu-map-consent p { max-width: 580px; margin: 0; }
.rcu-map-consent:has(iframe) { padding: 0; }
.rcu-privacy-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 18px; padding: 16px 24px; font-size: 13px; }
.rcu-privacy-links button { color: inherit; border: 0; background: transparent; text-decoration: underline; font: inherit; padding: 8px; }
#rcu-cookie-banner { position: fixed; bottom: 20px; left: 20px; z-index: 999999; width: min(660px,calc(100% - 40px)); padding: 22px; background: #fff; color: #26323a; border: 1px solid #d7e0e5; border-radius: 12px; box-shadow: 0 8px 35px #0003; font-size: 14px; }
#rcu-cookie-banner[hidden] { display: none; }
#rcu-cookie-banner strong { font-size: 19px; }
#rcu-cookie-banner p { margin: 10px 0; line-height: 1.5; }
.rcu-cookie-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
.rcu-cookie-actions button { flex: 1; min-width: 180px; min-height: 44px; border: 1px solid #216b8b; background: #fff; color: #174e66; padding: 12px; border-radius: 6px; font: inherit; cursor: pointer; }
.rcu-policy { max-width: 860px; margin: 40px auto; padding: 24px; color: #26323a; font: 16px/1.7 Arial,sans-serif; }
.rcu-policy h1 { font: bold 34px/1.2 Arial,sans-serif; }
.rcu-policy h2 { font: bold 22px/1.3 Arial,sans-serif; margin-top: 28px; }

.rcu-cookie-actions button {border-color:#570a12;color:#570a12;}

.ch-header-reserve { background: #e3bc89; color: #351018 !important; border-color: #e3bc89; border-radius: 12px; font-weight: 600; transition: background-color .2s ease,transform .2s ease; }
.ch-header-reserve:hover { background: #f0cfa3; border-color: #f0cfa3; color: #351018 !important; transform: translateY(-2px); }

#masthead a.ch-header-reserve { padding: 8px 14px !important; min-height: 0; height: 38px; line-height: 20px !important; font-size: 12px !important; border-radius: 8px; margin-left: 16px; }

#masthead .main-header-container { align-items: center !important; }
#masthead a.ch-header-reserve { align-self: center !important; margin-top: 0 !important; margin-bottom: 0 !important; display: inline-flex; align-items: center; justify-content: center; }
@media(max-width:921px) { #masthead a.ch-header-reserve { display: none; } }
