/* Persian (Farsi) overrides — loaded after the main Webflow CSS.
   Vazirmatn covers Arabic-script glyphs via unicode-range, so Latin text
   (brand names, numbers) keeps the original Franklin/Geist faces. */

html.is-dish-boards section.is-benefits .dish-board-media[hidden],
html.is-dish-boards section.is-benefits .dish-board-media.is-empty-media {
  display: none !important;
}

@font-face {
  font-family: 'Vazirmatn';
  src: url('../assets/fonts/Vazirmatn-Variable.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-display: swap;
}

/* Shadow the original families for Arabic-script ranges only */
@font-face {
  font-family: 'Franklin Gothic Atf';
  src: url('../assets/fonts/Vazirmatn-Variable.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200D;
}
@font-face {
  font-family: 'Franklin Gothic Atf';
  src: url('../assets/fonts/Vazirmatn-Variable.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-style: italic;
  font-display: swap;
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200D;
}
@font-face {
  font-family: 'Geist';
  src: url('../assets/fonts/Vazirmatn-Variable.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200D;
}

/* Westo mark — cyan brand logo on transparent */
.navbar_logo-link {
  display: flex;
  align-items: center;
  justify-content: center;
}
.navbar_logo {
  object-fit: contain;
  object-position: center;
}
html[data-theme='light'] .navbar_logo {
  filter: brightness(0) saturate(100%) invert(10%);
}
.auth-logo {
  height: 48px !important;
  width: auto !important;
  max-width: 14rem;
  object-fit: contain;
}
#brand-logo {
  max-height: 36px;
  width: auto;
  max-width: 9.5rem;
  object-fit: contain;
}

/* —— Loader: Westo logo with liquid-glass breathe + sheen —— */
.loader_logo-wrap {
  position: absolute !important;
  top: 48% !important;
  left: 50% !important;
  width: min(46vw, 13.5rem) !important;
  height: auto !important;
  transform: translate(-50%, -50%) !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  z-index: 1;
}
.loader_logo {
  position: relative;
  z-index: 2;
  width: 100%;
  height: auto;
  display: block;
  object-fit: contain;
  will-change: transform, filter, opacity;
  animation: westo-loader-breathe 2.4s ease-in-out infinite;
  filter: drop-shadow(0 0 1.2rem rgba(120, 208, 216, 0.28));
}

/* Immersive gate logo: no legacy breathe (SVG draw owns motion) */
.entrance-gate .eg-logo-png.loader_logo,
.entrance-gate .loader_logo {
  animation: none !important;
  filter: drop-shadow(0 12px 28px rgba(0, 0, 0, 0.45)) !important;
  will-change: opacity;
}
.loader_logo-glow {
  position: absolute;
  inset: -35%;
  z-index: 0;
  border-radius: 50%;
  background: radial-gradient(
    circle at 50% 45%,
    rgba(120, 208, 216, 0.34) 0%,
    rgba(120, 208, 216, 0.1) 38%,
    transparent 68%
  );
  animation: westo-loader-glow 2.4s ease-in-out infinite;
  pointer-events: none;
}
.loader_logo-sheen {
  position: absolute;
  inset: -8%;
  z-index: 3;
  border-radius: 1.25rem;
  pointer-events: none;
  background: linear-gradient(
    115deg,
    transparent 35%,
    rgba(255, 255, 255, 0.22) 48%,
    rgba(120, 208, 216, 0.35) 52%,
    transparent 65%
  );
  background-size: 220% 100%;
  mix-blend-mode: soft-light;
  opacity: 0.75;
  animation: westo-loader-sheen 2.6s ease-in-out infinite;
  -webkit-mask-image: radial-gradient(circle at 50% 50%, #000 35%, transparent 72%);
  mask-image: radial-gradient(circle at 50% 50%, #000 35%, transparent 72%);
}
@keyframes westo-loader-breathe {
  0%,
  100% {
    transform: scale(0.96) translateY(0.15rem);
    filter: drop-shadow(0 0 0.7rem rgba(120, 208, 216, 0.18));
  }
  50% {
    transform: scale(1.05) translateY(-0.2rem);
    filter: drop-shadow(0 0 1.8rem rgba(120, 208, 216, 0.48));
  }
}
@keyframes westo-loader-glow {
  0%,
  100% {
    opacity: 0.45;
    transform: scale(0.92);
  }
  50% {
    opacity: 1;
    transform: scale(1.08);
  }
}
@keyframes westo-loader-sheen {
  0% {
    background-position: 120% 0;
    opacity: 0.25;
  }
  40%,
  60% {
    opacity: 0.85;
  }
  100% {
    background-position: -40% 0;
    opacity: 0.25;
  }
}
@media (prefers-reduced-motion: reduce) {
  .loader_logo,
  .loader_logo-glow,
  .loader_logo-sheen {
    animation: none !important;
  }
}
@font-face {
  font-family: 'Geistmono';
  src: url('../assets/fonts/Vazirmatn-Variable.woff2') format('woff2-variations');
  font-weight: 100 900;
  font-display: swap;
  unicode-range: U+0600-06FF, U+0750-077F, U+08A0-08FF, U+FB50-FDFF, U+FE70-FEFF, U+200C-200D;
}

/* Right-to-left reading direction for running text; layout stays LTR so the
   scroll/WebGL choreography is untouched. Headings need it too because
   SplitText wraps words in inline-block spans that would otherwise be laid
   out left-to-right, reversing the Persian word order. */
html[lang='fa'] p,
html[lang='fa'] li,
html[lang='fa'] .w-richtext,
html[lang='fa'] blockquote,
html[lang='fa'] h1,
html[lang='fa'] h2,
html[lang='fa'] h3,
html[lang='fa'] h4,
html[lang='fa'] h5,
html[lang='fa'] h6,
html[lang='fa'] [class*='heading-style'],
html[lang='fa'] [class*='text-size'],
html[lang='fa'] [class*='text-style'],
html[lang='fa'] .faq_question,
html[lang='fa'] .w-dyn-item {
  direction: rtl;
  unicode-bidi: isolate;
}

/* Persian headings: the original faces are italic-latin display fonts;
   keep them upright for Arabic script so letters connect cleanly. */
html[lang='fa'] h1,
html[lang='fa'] h2,
html[lang='fa'] h3 {
  font-style: normal;
}


/* ---- FAQ band (design 101+) — quieter chrome, fog hairlines ---- */
.section.is-faq .faq_separator {
  height: 1px;
  background-color: rgba(236, 232, 226, 0.08);
}
.section.is-faq .faq_question {
  gap: 1rem;
  padding-top: 1.1rem;
  padding-bottom: 1.1rem;
  transition: color 0.2s ease;
}
.section.is-faq .faq_question .heading-style-h5 {
  font-weight: 500;
  color: rgba(236, 232, 226, 0.88);
  line-height: 1.45;
}
.section.is-faq .faq_accordion:hover .faq_question .heading-style-h5 {
  color: rgba(236, 232, 226, 0.98);
}
.section.is-faq .faq_icon-wrapper {
  color: rgba(236, 232, 226, 0.35);
  flex-shrink: 0;
}
.section.is-faq .faq_answer .text-size-medium {
  color: rgba(236, 232, 226, 0.48);
  line-height: 1.65;
  font-size: 0.95rem;
}

.section.is-faq .heading-style-custom-2 {
  font-size: clamp(2.25rem, 5.5vw, 4.5rem);
  font-style: normal;
  font-weight: 550;
  line-height: 1.05;
  letter-spacing: -0.01em;
  color: rgba(236, 232, 226, 0.92);
  text-align: center;
}
.section.is-faq .faq_component > .margin-bottom.margin-xxlarge {
  margin-bottom: 2.25rem;
}

.section.is-faq .faq_question:focus {
  outline: none;
}
.section.is-faq .faq_question:focus-visible {
  box-shadow: inset 0 0 0 1px rgba(236, 232, 226, 0.22);
  border-radius: 0.25rem;
}

.section.is-faq .faq_list > .w-dyn-item:first-child > .faq_separator {
  display: none;
}
.section.is-faq .faq_icon-wrapper svg,
.section.is-faq .faq_icon-wrapper svg path {
  stroke: rgba(236, 232, 226, 0.35);
  opacity: 0.85;
}
.section.is-faq .faq_accordion:hover .faq_icon-wrapper svg path {
  stroke: rgba(236, 232, 226, 0.55);
}
.section.is-faq .faq_answer {
  padding-inline: 0.1rem;
}
.section.is-faq .faq_answer .margin-bottom {
  margin-bottom: 0.85rem;
}

/* ---- Newsletter (design 105+) — fog form, no Brevo white card ---- */
#newsletter .sib-form {
  font-family: 'Vazirmatn', 'Geist', sans-serif;
  padding: 0;
  background: transparent;
  direction: rtl;
}
#newsletter #sib-container {
  background: transparent;
  padding: 0;
  max-width: 28rem;
  margin: 0 auto;
  display: block;
}
#newsletter #sib-form {
  text-align: center;
}
#newsletter .sib-form-block p {
  color: rgba(236, 232, 226, 0.88);
  font-size: clamp(1.35rem, 2.5vw, 1.75rem);
  font-weight: 500;
  margin-bottom: 1.25rem;
}
#newsletter .entry__field {
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(236, 232, 226, 0.14);
  border-radius: 0.45rem;
  width: 100%;
}
#newsletter .entry__field:focus-within {
  box-shadow: 0 0 0 1px rgba(236, 232, 226, 0.28);
  border-color: rgba(236, 232, 226, 0.28);
}
#newsletter .input {
  color: rgba(236, 232, 226, 0.92);
  direction: rtl;
  text-align: right;
}
#newsletter .input::placeholder {
  color: rgba(236, 232, 226, 0.35);
}
#newsletter .sib-form-block__button {
  background: rgba(236, 232, 226, 0.1);
  color: rgba(236, 232, 226, 0.92);
  border: 1px solid rgba(236, 232, 226, 0.16);
  border-radius: 0.45rem;
  box-shadow: none;
  text-transform: none;
  font-family: inherit;
  font-weight: 500;
  padding: 0.7rem 1.25rem;
  transition: background 0.2s, border-color 0.2s;
}
#newsletter .sib-form-block__button:hover {
  background: rgba(236, 232, 226, 0.16);
  border-color: rgba(236, 232, 226, 0.28);
}
#newsletter .sib-form-message-panel {
  background: rgba(255, 255, 255, 0.04) !important;
  border: 1px solid rgba(236, 232, 226, 0.12) !important;
  border-radius: 0.45rem !important;
  color: rgba(236, 232, 226, 0.78) !important;
  font-family: inherit !important;
  text-align: center !important;
  max-width: 100% !important;
}
#newsletter #error-message {
  color: rgba(236, 200, 190, 0.85) !important;
  border-color: rgba(236, 180, 160, 0.25) !important;
}
#newsletter #success-message {
  color: rgba(210, 230, 210, 0.9) !important;
  border-color: rgba(180, 210, 180, 0.22) !important;
}
#newsletter .entry__choice,
#newsletter .entry__label {
  color: rgba(236, 232, 226, 0.45);
  font-size: 0.78rem;
  text-align: right;
}


/* Dish thumbs in benefits side nav (menu story) */
.benefits_icon-wrapper .benefits_dish-thumb {
  width: 100%;
  height: 100%;
  object-fit: contain;
  border-radius: 0;
  display: block;
  box-shadow: none;
  background: transparent;
}
.benefits_icon-wrapper .benefits_icon {
  overflow: visible;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* Rail: tiny dish name under each thumb (one word per line) */
.benefits_nav.is-menu-rail .benefits_icon-wrapper {
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.18rem;
  width: 3.15rem;
  min-width: 3.15rem;
  aspect-ratio: auto;
  height: auto;
  padding: 0.2rem 0.1rem 0.25rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-decoration: none;
}
.benefits_nav.is-menu-rail .benefits_icon {
  width: 1.85rem;
  height: 1.85rem;
  flex-shrink: 0;
  border-radius: 0;
  overflow: visible;
  background: transparent;
  box-shadow: none;
  outline: none;
}
.benefits_nav.is-menu-rail .benefits_rail-label {
  display: block;
  width: 100%;
  max-width: 3rem;
  margin: 0;
  padding: 0;
  font-size: 0.48rem;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: 0;
  text-align: center;
  color: rgba(236, 232, 226, 0.52);
  white-space: pre-line;
  word-break: keep-all;
  overflow-wrap: anywhere;
  pointer-events: none;
}
.benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active .benefits_rail-label,
.benefits_nav.is-menu-rail .benefits_icon-wrapper.w--current .benefits_rail-label {
  color: rgba(236, 232, 226, 0.88);
}
.benefits_nav.is-menu-rail .benefits_icon-separator {
  width: 1px;
  height: 0.35rem;
  aspect-ratio: auto;
  margin-inline: auto;
  opacity: 0.35;
}

/* Dish boards: hide leftover ciao category title ghost */
html.is-dish-boards .carousel_title-bis-wrapper,
html.is-dish-boards .carousel_title-bis-collection {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Only the active dish board text is visible (cloned boards lack GSAP ST) */
html.is-dish-boards section.is-benefits .benefits_container {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  transition: opacity 0.35s ease;
  z-index: 10;
}
html.is-dish-boards section.is-benefits.is-dish-active .benefits_container {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

/* Dish stage: rail owns a right gutter; glass card never enters it */
html.is-dish-boards {
  --dish-rail-w: 5.45rem;
  --dish-rail-gap: 0.5rem;
}

/* Ciao HUD chrome is drink-era decoration — hide on dish boards (all viewports) */
html.is-dish-boards .hud,
html.is-dish-boards .hud_container,
html.is-dish-boards .hud_left,
html.is-dish-boards .hud_right,
html.is-dish-boards .gradient_overlay {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Shared dish rail — full height in its own right column */
html.is-dish-boards .benefits_nav.is-menu-rail {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 80;
  position: fixed !important;
  top: max(
    calc(4.75rem + var(--menu-catbar-gap, 0px) + var(--menu-catbar-h, 4.75rem)),
    calc(env(safe-area-inset-top, 0px) + 4.25rem + var(--menu-catbar-gap, 0px) + var(--menu-catbar-h, 4.75rem))
  ) !important;
  bottom: max(0.45rem, env(safe-area-inset-bottom, 0px)) !important;
  right: max(0.15rem, env(safe-area-inset-right, 0px)) !important;
  left: auto !important;
  width: var(--dish-rail-w) !important;
  max-height: none !important;
  height: auto !important;
  transform: none !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 0.2rem;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
  overscroll-behavior: contain;
  touch-action: pan-y;
  scrollbar-width: none;
  -ms-overflow-style: none;
  padding-block: 0.25rem;
  padding-inline: 0;
  box-sizing: border-box;
}
html.is-dish-boards .benefits_nav.is-menu-rail::-webkit-scrollbar {
  display: none;
  width: 0;
  height: 0;
}
html.is-dish-boards .benefits_nav.is-menu-rail.is-rail-solo {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

@media screen and (max-width: 991px) {
  html.is-dish-boards {
    --dish-rail-w: 5.4rem;
    --dish-card-lift: 0px;
  }
  /* menu-story.css owns mobile dish-board geometry (φ stage + fixed card). */
  html.is-dish-boards section.is-benefits .benefits_text,
  html.is-dish-boards section.is-benefits.is-dish-active .benefits_text {
    z-index: 20 !important;
  }

  /* Rail stops above the shared dish card */
  html.is-dish-boards .benefits_nav.is-menu-rail {
    bottom: var(--dish-card-stack, calc(var(--dish-info-h, 12rem) + 1.4rem)) !important;
  }

  /* Do not reposition media here — fights the shared φ layout. */
  html.is-dish-boards section.is-benefits .dish-board-media {
    top: auto !important;
    bottom: auto !important;
  }
}

@media screen and (min-width: 992px) {
  html.is-dish-boards {
    --dish-rail-w: 9rem;
    --dish-rail-gap: 0.85rem;
    --dish-card-w: min(28rem, 34vw);
  }
  html.is-dish-boards .benefits_nav.is-menu-rail {
    top: max(
      calc(5.25rem + var(--menu-catbar-gap, 0px) + var(--menu-catbar-h, 4.75rem)),
      calc(env(safe-area-inset-top, 0px) + 4.75rem + var(--menu-catbar-gap, 0px) + var(--menu-catbar-h, 4.75rem))
    ) !important;
    bottom: max(0.75rem, env(safe-area-inset-bottom, 0px)) !important;
    right: max(0.55rem, env(safe-area-inset-right, 0px)) !important;
    gap: 0.4rem;
    padding-block: 0.45rem;
  }
  html.is-dish-boards .benefits_nav.is-menu-rail .benefits_icon-wrapper {
    width: 7.9rem;
    min-width: 7.9rem;
    padding: 0.35rem 0.22rem 0.4rem;
    border: 0;
    border-radius: 0;
    background: transparent;
    box-shadow: none;
    gap: 0.36rem;
  }
  html.is-dish-boards .benefits_nav.is-menu-rail .benefits_icon {
    width: 4.15rem;
    height: 4.15rem;
    border-radius: 0;
    overflow: visible;
    outline: none;
    box-shadow: none;
    background: transparent;
  }
  html.is-dish-boards .benefits_nav.is-menu-rail .benefits_rail-label {
    max-width: 7.45rem;
    font-size: 0.96rem;
    line-height: 1.25;
    color: rgba(236, 232, 226, 0.62);
  }
}
html.is-dish-boards section.is-benefits .benefits_nav:not(.is-menu-rail) {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
html.is-dish-boards .benefits_icon-wrapper.is-active,
html.is-dish-boards .benefits_icon-wrapper.w--current {
  transform: none;
  outline: none;
  border: 0;
  background: transparent;
  box-shadow: none;
}
html.is-dish-boards .benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active .benefits_icon,
html.is-dish-boards .benefits_nav.is-menu-rail .benefits_icon-wrapper.w--current .benefits_icon {
  outline: none;
  box-shadow: none;
  border: 0;
  background: transparent;
  transform: scale(1.06);
}

/* Hero: never show dish cards until scrolled into benefits */
html:not(.is-dish-boards) section.is-benefits .benefits_container,
html:not(.is-dish-boards) section.is-benefits .benefits_nav,
html:not(.is-dish-boards) .benefits_nav.is-menu-rail {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

/* Category name above dish price chip */
.menu-cat-label {
  display: block;
  width: 100%;
  text-align: center;
  font-size: 0.68rem;
  font-weight: 550;
  letter-spacing: 0.06em;
  color: rgba(255, 255, 255, 0.55);
  margin: 0 0 0.45rem;
}

html.is-dish-boards section.is-benefits .benefits_text,
html.is-dish-boards section.is-benefits .benefits_max-width {
  text-align: center !important;
}

html.is-dish-boards section.is-benefits .benefits_text h2,
html.is-dish-boards section.is-benefits .benefits_text [data-menu-name] {
  display: block;
  width: 100%;
  max-width: none !important;
  margin: 0.15rem auto 0.35rem !important;
  text-align: center !important;
  font-size: clamp(1.2rem, 4.6vw, 1.55rem) !important;
  font-weight: 700 !important;
  line-height: 1.35 !important;
  letter-spacing: -0.015em;
  color: rgba(245, 240, 232, 0.96);
}

/* SplitText wraps — keep titles centered; direction follows guest lang */
html.is-dish-boards section.is-benefits .benefits_text h2 .line,
html.is-dish-boards section.is-benefits .benefits_text [data-menu-name] .line,
html.is-dish-boards section.is-benefits .benefits_text p .line {
  display: block !important;
  width: 100% !important;
  text-align: center !important;
  direction: inherit;
  unicode-bidi: isolate;
}

html.is-dish-boards section.is-benefits .benefits_text h2 .word,
html.is-dish-boards section.is-benefits .benefits_text [data-menu-name] .word {
  display: inline !important;
}

html.is-dish-boards section.is-benefits .benefits_text p[data-menu-desc],
html.is-dish-boards section.is-benefits .benefits_text p {
  display: -webkit-box;
  width: 100%;
  max-width: 36ch !important;
  margin: 0 auto 0.45rem !important;
  text-align: center !important;
  font-size: 0.78rem !important;
  font-weight: 450;
  line-height: 1.55 !important;
  opacity: 0.72;
  direction: inherit;
  unicode-bidi: isolate;
}

html.is-dish-boards section.is-benefits .subhead_wrapper {
  width: 100%;
  justify-content: center !important;
}

html.is-dish-boards section.is-benefits .subhead_text:has([data-menu-price]) {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-inline: auto;
  padding: 0.3rem 0.85rem;
  border-radius: 999px;
  overflow: hidden;
  background: var(--wg-chip-bg, rgba(255, 255, 255, 0.12));
  color: var(--wg-ink, #f4efe6);
  border: 1px solid rgba(255, 255, 255, 0.16);
  -webkit-backdrop-filter: blur(var(--wg-blur, 12px));
  backdrop-filter: blur(var(--wg-blur, 12px));
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.24),
    inset 0 -1px 0 rgba(0, 0, 0, 0.18),
    0 0.15rem 0.45rem rgba(0, 0, 0, 0.22);
}
html.is-dish-boards section.is-benefits .subhead_text:has([data-menu-price])::after {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 44%;
  background: linear-gradient(rgba(255, 255, 255, 0.2) 0%, transparent 100%);
  pointer-events: none;
}
html.is-dish-boards section.is-benefits .subhead_text [data-menu-price] {
  font-size: 0.74rem !important;
  font-weight: 650;
  letter-spacing: -0.01em;
  color: inherit !important;
  text-align: center;
}

/* Menu story: skip ciao profile beat — hero categories go straight to dishes */
section.is-profile[hidden],
section.is-profile[data-westo-skipped='1'] {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
}

/* After last dish: no FAQ / newsletter / packshot / full list */
section.is-argument[hidden],
section.is-argument[data-westo-tail-skipped='1'],
section.is-full-gamme[hidden],
section.is-full-gamme[data-westo-tail-skipped='1'],
section.is-faq[hidden],
section.is-faq[data-westo-tail-skipped='1'],
section.is-last-copy[hidden],
section.is-last-copy[data-westo-tail-skipped='1'],
section.is-last[hidden],
section.is-last[data-westo-tail-skipped='1'],
#newsletter[hidden],
.newsletter_container[hidden],
.footer_container[hidden] {
  display: none !important;
  height: 0 !important;
  min-height: 0 !important;
  max-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  pointer-events: none !important;
  border: 0 !important;
  visibility: hidden !important;
}

a.navbar_link[href='#FAQ'][hidden],
a.navbar_link[href='#newsletter'][hidden] {
  display: none !important;
}

/* Quieter hero chrome while reading dishes */
html.is-dish-boards .carousel_pagination,
html.is-dish-boards .carousel_arrow,
html.is-dish-boards .scroll_discover,
html.is-dish-boards .icon-scroll_wrapper,
html.is-dish-boards .westo-scroll-hint--mobile,
html.is-dish-boards .westo-scroll-hint--mobile-right {
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  display: none !important;
}

/* Keep navbar scroll progress visible on dishes so users see category depth. */
html.is-dish-boards .scroll_component {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
}

/* Keep navbar / table access while on dishes */
html.is-dish-boards .navbar {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transform: none !important;
}

/* Navbar must sit above dish rail (z=80), catbar (z=220), and glass card (z=20) */
.navbar {
  z-index: 300 !important;
}
.navbar_content {
  z-index: 2;
  position: relative;
}
.navbar_menu-wrapper,
.navbar_relative {
  position: relative;
  z-index: 3;
}
.navbar_menu {
  z-index: 210 !important;
}
/* Decorative gradient only — never steal clicks from nav buttons */
.navbar_overlay {
  z-index: 0 !important;
  pointer-events: none !important;
}

/* Back → categories (top-left, next to table) */
.navbar_sound-wrapper {
  display: flex;
  align-items: center;
  min-width: 0;
}

.westo-back-categories {
  position: relative;
  display: none;
  margin: 0;
  border: 0;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.08);
  backdrop-filter: blur(var(--wg-blur, 12px));
  -webkit-backdrop-filter: blur(var(--wg-blur, 12px));
  color: var(--wg-ink, #f4efe6);
  cursor: pointer;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18);
  transition:
    background 0.2s ease,
    transform var(--wg-hover-time, 0.22s) var(--wg-ease, cubic-bezier(0.22, 1, 0.36, 1));
}
.westo-back-categories::before {
  content: '';
  position: absolute;
  inset: 0;
  border-radius: inherit;
  padding: 1px;
  background: var(--wg-glass-edge);
  -webkit-mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  mask:
    linear-gradient(#fff 0 0) content-box,
    linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  pointer-events: none;
}

.westo-back-categories[hidden] {
  display: none !important;
}

html.is-dish-boards .westo-back-categories:not([hidden]) {
  display: inline-flex;
}

.westo-back-categories:hover {
  background: rgba(255, 255, 255, 0.14);
  transform: translateY(-1px);
}

.westo-back-categories:active {
  transform: scale(0.97);
}

.westo-back-categories__icon {
  flex: none;
}

.westo-back-categories__label {
  direction: rtl;
  unicode-bidi: isolate;
}

@media screen and (max-width: 479px) {
  .westo-back-categories__label {
    display: none;
  }
}

/* Decorative ciao × reads as a close button — hide on dish cards */
html.is-dish-boards .subhead_icon,
section.is-benefits .subhead:has([data-menu-price]) .subhead_icon {
  display: none !important;
}

/* Desktop: split stage — glass card left, large plate right, rail far-right */
@media screen and (min-width: 992px) {
  html.is-dish-boards section.is-benefits .benefits_container,
  html.is-dish-boards section.is-benefits.is-dish-active .benefits_container {
    display: flex !important;
    align-items: stretch !important;
    justify-content: flex-start !important;
  }

  html.is-dish-boards section.is-benefits .benefits_container > .padding-global,
  html.is-dish-boards section.is-benefits .container-large,
  html.is-dish-boards section.is-benefits .padding-section-medium {
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    position: relative !important;
  }

  html.is-dish-boards section.is-benefits .dish-board-media {
    position: absolute !important;
    z-index: 1;
    top: max(5.5rem, 10vh);
    bottom: max(2rem, 6vh);
    left: calc(var(--dish-card-w) + 4.5rem);
    right: calc(var(--dish-rail-w) + var(--dish-rail-gap) + 1.25rem);
    margin: 0;
    display: grid;
    place-items: center;
    pointer-events: none;
  }

  html.is-dish-boards section.is-benefits .dish-board-media img {
    display: block;
    width: min(100%, 46rem);
    height: min(100%, 46rem);
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    filter: drop-shadow(0 1.75rem 2.6rem rgba(0, 0, 0, 0.42));
  }

  html.is-dish-boards section.is-benefits .benefits_text {
    position: absolute;
    top: 50%;
    left: max(2.25rem, 3.5vw);
    right: auto;
    bottom: auto;
    transform: translateY(-50%);
    width: var(--dish-card-w);
    max-width: var(--dish-card-w);
    height: auto;
    max-height: min(72vh, 34rem);
    margin: 0;
    padding: 1.35rem 1.4rem 1.25rem;
    text-align: center !important;
    border-radius: 1.4rem;
    background:
      linear-gradient(
        155deg,
        rgba(255, 255, 255, 0.18) 0%,
        rgba(255, 255, 255, 0.06) 45%,
        rgba(14, 12, 14, 0.42) 100%
      );
    backdrop-filter: blur(32px) saturate(1.5);
    -webkit-backdrop-filter: blur(32px) saturate(1.5);
    border: 1px solid rgba(255, 255, 255, 0.22);
    box-shadow:
      0 1.2rem 2.8rem rgba(0, 0, 0, 0.42),
      inset 0 1px 0 rgba(255, 255, 255, 0.3),
      inset 0 -1px 0 rgba(255, 255, 255, 0.06);
    pointer-events: auto;
    z-index: 20;
    overflow: auto;
    scrollbar-width: thin;
  }

  html.is-dish-boards:has(.benefits_nav.is-menu-rail.is-rail-solo) section.is-benefits .benefits_text,
  html.is-dish-boards:has(.benefits_nav.is-menu-rail.is-rail-solo) section.is-benefits.is-dish-active .benefits_text {
    right: auto !important;
  }

  html.is-dish-boards:has(.benefits_nav.is-menu-rail.is-rail-solo) section.is-benefits .dish-board-media {
    left: calc(var(--dish-card-w) + 4.5rem);
    right: max(2.5rem, 4vw);
  }

  html.is-dish-boards section.is-benefits .benefits_max-width {
    max-width: 100% !important;
    margin: 0 !important;
    gap: 0.65rem;
    height: auto;
    align-items: center !important;
    justify-content: flex-start;
    text-align: center !important;
  }

  html.is-dish-boards section.is-benefits .benefits_text .subhead_wrapper {
    justify-content: center !important;
  }

  html.is-dish-boards section.is-benefits .benefits_text h2,
  html.is-dish-boards section.is-benefits .benefits_text [data-menu-name] {
    font-size: clamp(1.45rem, 1.9vw, 1.9rem) !important;
    line-height: 1.3 !important;
    margin: 0.25rem auto 0.4rem !important;
    text-align: center !important;
  }

  html.is-dish-boards section.is-benefits .menu-cat-label {
    text-align: center;
    font-size: 0.74rem;
    margin-bottom: 0.5rem;
  }

  html.is-dish-boards section.is-benefits .subhead_text:has([data-menu-price]) {
    margin-inline: auto;
  }

  html.is-dish-boards section.is-benefits .benefits_text p[data-menu-desc] {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 4;
    overflow: hidden;
    max-width: 34ch !important;
    font-size: 0.9rem !important;
    line-height: 1.55 !important;
    opacity: 0.76;
    margin: 0 auto 0.55rem !important;
    text-align: center !important;
  }

  html.is-dish-boards section.is-benefits .menu-add-wrap {
    width: 100%;
    max-width: none;
    margin-top: 0.35rem !important;
  }

  html.is-dish-boards section.is-benefits .menu-add-btn {
    width: 100%;
    min-height: 2.75rem;
  }
}

@media screen and (min-width: 1400px) {
  html.is-dish-boards {
    --dish-card-w: min(30rem, 30vw);
    --dish-rail-w: 9.7rem;
  }
  html.is-dish-boards section.is-benefits .dish-board-media img {
    width: min(100%, 52rem);
    height: min(100%, 52rem);
  }
}

/* Mobile desc clamp */
@media screen and (max-width: 991px) {
  html.is-dish-boards section.is-benefits .benefits_text p[data-menu-desc] {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
  }
}

/* ---- Sitewide light: hero chrome titles / progress ---- */
html[data-theme='light'] .carousel_list.is-hero .heading-style-h2,
html[data-theme='light'] .carousel_title-b,
html[data-theme='light'] .westo-scroll-hint {
  color: var(--wg-ink, #1a1714) !important;
}

html[data-theme='light'] .scroll_discover {
  --base-color: #8a8176;
  --base-gradient-color: #1a1714;
  color: transparent !important;
  -webkit-text-fill-color: transparent !important;
}

html[data-theme='light'] .gamme_progress-bar,
html[data-theme='light'] .progress_line {
  opacity: 0.95;
}

html[data-theme='light'] .navbar_menu-button,
html[data-theme='light'] .navbar_table,
html[data-theme='light'] .button.is-small {
  background: var(--wg-chrome-bg, #fffcf7) !important;
  color: var(--wg-btn-ink, #1a1714) !important;
  border: 1px solid var(--wg-chrome-border, rgba(26, 23, 20, 0.14)) !important;
  box-shadow: var(
    --wg-chrome-shadow,
    0 1px 1px rgba(26, 23, 20, 0.04),
    0 0.35rem 0.85rem rgba(26, 23, 20, 0.08)
  ) !important;
}

html[data-theme='light'] .navbar_table:hover,
html[data-theme='light'] .navbar_menu-button:hover,
html[data-theme='light'] .button.is-small:hover {
  background: var(--wg-chrome-bg-hover, #fff8ef) !important;
  border-color: var(--wg-chrome-border-hover, rgba(42, 122, 134, 0.45)) !important;
}

html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_bullet,
html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_bullet-text,
html[data-theme='light'] .benefits_nav.is-menu-rail figcaption {
  color: var(--wg-ink, #1a1714);
  opacity: 0.85;
}

html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_rail-label,
html[data-theme='light'].is-dish-boards .benefits_nav.is-menu-rail .benefits_rail-label {
  color: rgba(26, 23, 20, 0.78) !important;
}

html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active .benefits_rail-label,
html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_icon-wrapper.w--current .benefits_rail-label,
html[data-theme='light'].is-dish-boards .benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active .benefits_rail-label {
  color: rgba(26, 23, 20, 0.96) !important;
}

/* ---- Pass2 stage4/9: FAQ + newsletter light ---- */
html[data-theme='light'] .section.is-faq .faq_question .heading-style-h5,
html[data-theme='light'] .section.is-faq .faq_answer,
html[data-theme='light'] .section.is-faq p {
  color: rgba(26, 23, 20, 0.9) !important;
}
html[data-theme='light'] #newsletter .input {
  color: rgba(26, 23, 20, 0.92) !important;
  background: rgba(255, 255, 255, 0.85);
  border-color: rgba(26, 23, 20, 0.14);
}
html[data-theme='light'] #newsletter .button,
html[data-theme='light'] #newsletter button {
  background: var(--wg-cta-bg, #1a1714) !important;
  color: var(--wg-cta-ink, #f7f2ea) !important;
}

/* ---- Pass3 stage4: dish/hero chrome residual ---- */
html[data-theme='light'] .westo-back-categories {
  background: var(--wg-chrome-bg, #fffcf7) !important;
  color: var(--wg-btn-ink, #1a1714) !important;
  border: 1px solid var(--wg-chrome-border, rgba(26, 23, 20, 0.14)) !important;
  box-shadow: var(
    --wg-chrome-shadow,
    0 1px 1px rgba(26, 23, 20, 0.04),
    0 0.35rem 0.85rem rgba(26, 23, 20, 0.08)
  ) !important;
}
html[data-theme='light'] .westo-back-categories:hover {
  background: var(--wg-chrome-bg-hover, #fff8ef) !important;
  border-color: var(--wg-chrome-border-hover, rgba(42, 122, 134, 0.45)) !important;
}
html[data-theme='light'] .westo-back-categories:focus-visible {
  outline: 2px solid var(--wg-focus-ring, rgba(42, 122, 134, 0.65));
  outline-offset: 2px;
}

/* ---- Pass3 stage9: FAQ + newsletter residual ---- */
html[data-theme='light'] .section.is-faq .faq_question .heading-style-h5,
html[data-theme='light'] .section.is-faq .heading-style-custom-2 {
  color: rgba(26, 23, 20, 0.94) !important;
}
html[data-theme='light'] .section.is-faq .faq_answer,
html[data-theme='light'] .section.is-faq .faq_answer p,
html[data-theme='light'] .section.is-faq .faq_answer *,
html[data-theme='light'] .section.is-faq .faq_answer .text-size-medium {
  color: #263238 !important;
  line-height: 1.7 !important;
}
html[data-theme='light'] .legal_link-item {
  color: #263238 !important;
  font-weight: 600 !important;
}
html[data-theme='light'] .legal_link-item.w--current {
  color: #0c555c !important;
  font-weight: 800 !important;
}
html[data-theme='light'] .legal_link-item:hover {
  color: #0c555c !important;
}
html[data-theme='light'] #newsletter #sib-container,
html[data-theme='light'] #newsletter .sib-form {
  background: transparent !important;
  color: rgba(26, 23, 20, 0.9) !important;
}
html[data-theme='light'] #newsletter .sib-form-block p,
html[data-theme='light'] #newsletter .entry__label,
html[data-theme='light'] #newsletter .entry__choice {
  color: rgba(26, 23, 20, 0.72) !important;
}
html[data-theme='light'] #newsletter .sib-form-block__button {
  background: var(--wg-cta-bg, #1a1714) !important;
  color: var(--wg-cta-ink, #f7f2ea) !important;
  border-color: transparent !important;
}
html[data-theme='light'] #newsletter .input {
  color: #1a1714 !important;
  background: rgba(255, 255, 255, 0.9) !important;
  border-color: rgba(26, 23, 20, 0.16) !important;
}
html[data-theme='light'] #newsletter .input::placeholder {
  color: rgba(26, 23, 20, 0.4) !important;
}
