/* WESTO Production Design System v12 — geometry first
   Goals:
   1) no overlap at any supported viewport,
   2) preserve source state machines and WebGL motion,
   3) retain WESTO glass language + approved v8 pattern,
   4) deterministic mobile / tablet / desktop composition.
*/

:root {
  --prod-cyan:#1cc9d4;
  --prod-cyan-hi:#72eef4;
  --prod-ivory:#f7f3eb;
  --prod-bg:#020708;
  --prod-bg-2:#061113;
  --prod-ink:#f7f3eb;
  --prod-muted:rgba(226,231,229,.66);
  --prod-faint:rgba(226,231,229,.42);
  --prod-line:rgba(120,224,231,.20);
  --prod-line-neutral:rgba(255,255,255,.105);
  --prod-glass:rgba(5,15,18,.72);
  --prod-glass-strong:rgba(5,16,19,.92);
  --prod-shadow:0 30px 90px rgba(0,0,0,.34);
  --prod-pattern-micro:url('../assets/images/entrance/westo-micro-pattern-v8.png');
  --prod-cta-pattern:url('../assets/images/entrance/westo-cta-pattern-v8.webp');
  --cat-wash:#eef3e8;
  --cat-surface:#f6f9f2;
  --cat-accent:#5a7a3e;
  --cat-accent-soft:rgba(90,122,62,.16);
  --cat-glow:rgba(120,160,80,.18);
  --v12-nav-h: 84px;
  --v12-edge: clamp(14px, 2.4vw, 34px);
  --v12-safe-b: max(12px, env(safe-area-inset-bottom, 0px));
  --v12-safe-t: max(0px, env(safe-area-inset-top, 0px));
  --v12-glass-border: rgba(255,255,255,.11);
  --v12-glass-highlight: rgba(255,255,255,.055);
  --v12-ease: cubic-bezier(.22,.82,.22,1);
  --v12-hero-dock-h: 78px;
  --v12-hero-dock-b: 18px;
  --v12-hero-copy-b: 112px;
}
html[data-theme='light'] {
  --prod-bg:#f5f1e9;
  --prod-bg-2:#eef2e8;
  --prod-ink:#111716;
  --prod-muted:rgba(34,40,38,.66);
  --prod-faint:rgba(34,40,38,.40);
  --prod-line:rgba(15,161,173,.18);
  --prod-line-neutral:rgba(12,25,22,.105);
  --prod-glass:rgba(255,255,255,.74);
  --prod-glass-strong:rgba(255,255,255,.94);
  --prod-shadow:0 30px 85px rgba(37,48,43,.12);
  --v12-glass-border: rgba(17,31,28,.105);
  --v12-glass-highlight: rgba(255,255,255,.78);
}



/* v12 is self-contained: v11 is intentionally no longer required in the
   production cascade. Keep the approved WESTO micro-pattern and cinematic
   category atmosphere without inheriting v11's conflicting geometry. */
html{color-scheme:dark;background:var(--prod-bg);scrollbar-color:rgba(102,220,228,.30) transparent}
html[data-theme='light']{color-scheme:light}
body{
  color:var(--prod-ink);
  background:
    radial-gradient(62rem 48rem at 50% 40%,var(--cat-glow),transparent 67%),
    radial-gradient(55rem 36rem at 92% 16%,rgba(240,180,106,.05),transparent 72%),
    linear-gradient(180deg,var(--prod-bg),var(--prod-bg-2));
  text-rendering:optimizeLegibility;
}
body::before{
  content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:var(--prod-pattern-micro);background-size:10px 10px;background-repeat:repeat;
  opacity:.032;mix-blend-mode:screen;
  -webkit-mask-image:radial-gradient(ellipse 62% 54% at 50% 48%,rgba(0,0,0,.14),rgba(0,0,0,.50) 60%,#000 100%);
          mask-image:radial-gradient(ellipse 62% 54% at 50% 48%,rgba(0,0,0,.14),rgba(0,0,0,.50) 60%,#000 100%);
}
html[data-theme='light'] body::before{opacity:.012;mix-blend-mode:multiply}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid color-mix(in srgb,var(--prod-cyan) 76%,white);outline-offset:3px}
::selection{background:rgba(28,201,212,.24);color:inherit}

/* Keep the entire guest experience viewport-owned. Individual source sections
   can be tall for scroll-state bookkeeping, but visible chrome must never
   create horizontal overflow. */
html, body { max-width: 100%; }
body { overflow-x:hidden !important; }
@supports (overflow:clip){ body { overflow-x:clip !important; } }

/* ========================================================================
   PHASE A — Entrance: independent layout bands, zero flex-crush
   ======================================================================== */
#westo-entrance .eg-shell {
  width: min(100%, 1240px) !important;
  height: 100dvh !important;
  min-height: 100svh !important;
  grid-template-rows: 68px minmax(0,1fr) 70px !important;
  gap: 12px !important;
  padding: calc(14px + var(--eg-safe-t)) clamp(14px,2.5vw,30px) calc(12px + var(--eg-safe-b)) !important;
  overflow: hidden !important;
}
#westo-entrance .eg-top {
  height: 68px !important;
  min-height: 68px !important;
  width: min(100%, 940px) !important;
  margin-inline: auto !important;
}
#westo-entrance .eg-mid {
  min-height: 0 !important;
  overflow: hidden !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
}
#westo-entrance .eg-card {
  /* The card is allowed to size itself, but can never exceed its row. */
  width: min(900px, 94vw) !important;
  max-width: 900px !important;
  height: min(100%, 780px) !important;
  min-height: 0 !important;
  max-height: 100% !important;
  overflow: hidden !important;
  flex: none !important;
  display: grid !important;
  grid-template-rows: minmax(0,auto) auto auto minmax(0,1fr) auto !important;
  align-content: center !important;
  justify-items: center !important;
  row-gap: clamp(8px,1.25vh,14px) !important;
  padding: clamp(22px,3.2vh,40px) clamp(24px,4vw,52px) clamp(20px,2.7vh,34px) !important;
  border-radius: 38px !important;
}
/* Protect every flow block from being compressed through zero height. */
#westo-entrance .eg-logo-stage,
#westo-entrance .eg-brand-copy,
#westo-entrance .eg-status,
#westo-entrance .eg-experience,
#westo-entrance .eg-cta-wrap { flex: none !important; min-height: 0 !important; }

#westo-entrance .eg-logo-stage {
  grid-row: 1 !important;
  width: clamp(118px,13vw,158px) !important;
  max-height: 235px !important;
  margin: 0 auto 2px !important;
}
#westo-entrance .eg-logo-png {
  width: 100% !important;
  height: auto !important;
  max-height: 100% !important;
  object-fit: contain !important;
}
/* Correct theme asset: ivory on dark, charcoal on light. */
html[data-theme='dark'] #westo-entrance .eg-brand-wordmark-img {
  content: url('../assets/images/brand/westo-fa-wordmark.png') !important;
}
html[data-theme='light'] #westo-entrance .eg-brand-wordmark-img {
  content: url('../assets/images/brand/westo-fa-wordmark-dark.png') !important;
}
#westo-entrance .eg-brand-copy {
  grid-row: 2 !important;
  width: 100% !important;
  margin: 0 !important;
}
#westo-entrance .eg-brand-title { margin: 0 !important; }
#westo-entrance .eg-brand-wordmark-img {
  display: block !important;
  width: min(390px,62vw) !important;
  height: auto !important;
  max-height: 76px !important;
  margin-inline: auto !important;
  object-fit: contain !important;
}
#westo-entrance .eg-tagline {
  margin: 9px 0 0 !important;
  font-size: clamp(13px,1.1vw,16px) !important;
  line-height: 1.45 !important;
}
#westo-entrance .eg-subtitle {
  margin: 3px 0 0 !important;
  font-size: 10px !important;
  line-height: 1.3 !important;
  letter-spacing: .30em !important;
}
#westo-entrance .eg-status {
  grid-row: 3 !important;
  margin: 0 !important;
  min-height: 42px !important;
  height: auto !important;
  padding: 7px 16px !important;
  border-radius: 999px !important;
  font-size: 12px !important;
  line-height: 1.25 !important;
  white-space: nowrap !important;
}
#westo-entrance .eg-status-text { flex-wrap: nowrap !important; }

#westo-entrance .eg-experience {
  grid-row: 4 !important;
  width: 100% !important;
  height: auto !important;
  min-height: 132px !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-rows: auto auto auto auto !important;
  align-content: center !important;
  gap: 8px !important;
  overflow: visible !important;
}
#westo-entrance .eg-experience__lead {
  margin: 0 !important;
  font-size: 12px !important;
  line-height: 1.4 !important;
}
#westo-entrance .eg-steps-row {
  width: min(570px,100%) !important;
  min-height: 66px !important;
  margin: 0 auto !important;
  gap: clamp(18px,5vw,48px) !important;
  padding: 0 10px !important;
  justify-content: space-between !important;
}
#westo-entrance .eg-steps-row::before {
  top: 29px !important;
  inset-inline: 38px !important;
}
#westo-entrance .eg-step { min-width: 0 !important; gap: 5px !important; }
#westo-entrance .eg-step-icon {
  width: 58px !important;
  height: 58px !important;
  flex: 0 0 58px !important;
}
#westo-entrance .eg-step-icon svg { width: 21px !important; height: 21px !important; }
#westo-entrance .eg-step-label { font-size: 9px !important; line-height: 1.25 !important; white-space: nowrap !important; }
#westo-entrance .eg-progress {
  width: 100% !important;
  min-height: 18px !important;
  margin: 0 !important;
  gap: 12px !important;
}
#westo-entrance .eg-progress__pct { font-size: 11px !important; min-width: 38px !important; }
#westo-entrance .eg-quote {
  margin: 0 !important;
  font-size: 11px !important;
  line-height: 1.4 !important;
}
#westo-entrance .eg-cta-wrap {
  grid-row: 5 !important;
  width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
}
#westo-entrance .eg-cta-wrap::before { display: none !important; }
#westo-entrance .eg-cta {
  min-height: 64px !important;
  height: 64px !important;
  font-size: 15px !important;
  border-radius: 34px !important;
}

#westo-entrance .eg-foot {
  height: 70px !important;
  min-height: 70px !important;
  width: min(100%, 1120px) !important;
  margin-inline: auto !important;
  align-self: end !important;
  position: relative !important;
  z-index: 5 !important;
}
#westo-entrance .eg-dock { min-height: 62px !important; height: 62px !important; }
#westo-entrance .eg-corner { min-height: 58px !important; height: 58px !important; }

/* Desktop / tablet short-height mode: fit without collapsing the loader. */
@media (min-width: 768px) and (max-height: 850px) {
  #westo-entrance .eg-shell {
    grid-template-rows: 58px minmax(0,1fr) 58px !important;
    gap: 8px !important;
    padding-top: calc(8px + var(--eg-safe-t)) !important;
    padding-bottom: calc(8px + var(--eg-safe-b)) !important;
  }
  #westo-entrance .eg-top { height:58px !important; min-height:58px !important; }
  #westo-entrance .eg-top > .eg-glass-btn:first-child { width:56px !important; min-width:56px !important; height:56px !important; min-height:56px !important; }
  #westo-entrance #eg-site-menu.westo-menu-trigger { min-height:54px !important; }
  #westo-entrance .eg-card {
    width:min(820px,92vw) !important;
    height:100% !important;
    row-gap:6px !important;
    padding:14px 38px 14px !important;
    border-radius:30px !important;
  }
  #westo-entrance .eg-logo-stage { width:112px !important; max-height:166px !important; margin-bottom:0 !important; }
  #westo-entrance .eg-brand-wordmark-img { width:min(320px,54vw) !important; max-height:58px !important; }
  #westo-entrance .eg-tagline { margin-top:4px !important; font-size:13px !important; }
  #westo-entrance .eg-subtitle { margin-top:1px !important; font-size:8px !important; }
  #westo-entrance .eg-status { min-height:36px !important; padding:5px 13px !important; font-size:10.5px !important; }
  #westo-entrance .eg-experience { min-height:110px !important; gap:4px !important; }
  #westo-entrance .eg-experience__lead { font-size:10px !important; }
  #westo-entrance .eg-steps-row { min-height:50px !important; width:min(480px,90%) !important; }
  #westo-entrance .eg-steps-row::before { top:22px !important; inset-inline:32px !important; }
  #westo-entrance .eg-step-icon { width:46px !important; height:46px !important; flex-basis:46px !important; }
  #westo-entrance .eg-step-icon svg { width:17px !important; height:17px !important; }
  #westo-entrance .eg-step-label { font-size:7px !important; }
  #westo-entrance .eg-progress { min-height:12px !important; }
  #westo-entrance .eg-progress__pct { font-size:9px !important; }
  #westo-entrance .eg-quote { font-size:9px !important; }
  #westo-entrance .eg-cta { height:56px !important; min-height:56px !important; font-size:14px !important; }
  #westo-entrance .eg-foot { height:58px !important; min-height:58px !important; }
  #westo-entrance .eg-dock { height:54px !important; min-height:54px !important; }
  #westo-entrance .eg-corner { height:52px !important; min-height:52px !important; }
}

/* Mobile portrait: card remains one clean composition. */
@media (max-width: 767px) {
  :root { --v12-nav-h:72px; }
  #westo-entrance .eg-shell {
    width:100% !important;
    grid-template-rows: 58px minmax(0,1fr) 58px !important;
    gap:8px !important;
    padding: calc(8px + var(--eg-safe-t)) 9px calc(8px + var(--eg-safe-b)) !important;
  }
  #westo-entrance .eg-top { height:58px !important; min-height:58px !important; width:100% !important; }
  #westo-entrance .eg-top > .eg-glass-btn:first-child { width:56px !important; min-width:56px !important; height:56px !important; min-height:56px !important; }
  #westo-entrance #eg-site-menu.westo-menu-trigger { min-height:54px !important; min-width:108px !important; }
  #westo-entrance .eg-mid { overflow:auto !important; overscroll-behavior:contain !important; scrollbar-width:none !important; }
  #westo-entrance .eg-mid::-webkit-scrollbar { display:none !important; }
  #westo-entrance .eg-card {
    width:100% !important;
    height:auto !important;
    max-height:none !important;
    min-height:min(610px,100%) !important;
    row-gap:6px !important;
    padding:18px 14px 15px !important;
    border-radius:29px !important;
  }
  #westo-entrance .eg-logo-stage { width:106px !important; max-height:158px !important; }
  #westo-entrance .eg-brand-wordmark-img { width:min(270px,70vw) !important; max-height:54px !important; }
  #westo-entrance .eg-tagline { margin-top:5px !important; font-size:11px !important; }
  #westo-entrance .eg-subtitle { margin-top:2px !important; font-size:8px !important; letter-spacing:.23em !important; }
  #westo-entrance .eg-status { min-height:36px !important; padding:5px 10px !important; font-size:10px !important; max-width:96% !important; }
  #westo-entrance .eg-status-meta,#westo-entrance .eg-status-loc { font-size:9px !important; }
  #westo-entrance .eg-experience { min-height:112px !important; gap:5px !important; }
  #westo-entrance .eg-experience__lead { font-size:10px !important; }
  #westo-entrance .eg-steps-row { min-height:54px !important; width:min(100%,390px) !important; gap:8px !important; }
  #westo-entrance .eg-steps-row::before { top:23px !important; inset-inline:30px !important; }
  #westo-entrance .eg-step-icon { width:46px !important; height:46px !important; flex-basis:46px !important; }
  #westo-entrance .eg-step-icon svg { width:18px !important; height:18px !important; }
  #westo-entrance .eg-step-label { font-size:7px !important; }
  #westo-entrance .eg-progress { min-height:14px !important; gap:8px !important; }
  #westo-entrance .eg-progress__pct { font-size:9px !important; min-width:31px !important; }
  #westo-entrance .eg-quote { font-size:9px !important; }
  #westo-entrance .eg-cta { min-height:56px !important; height:56px !important; font-size:13px !important; }
  #westo-entrance .eg-cta::before { width:min(170px,42%) !important; }
  #westo-entrance .eg-foot { height:58px !important; min-height:58px !important; width:100% !important; }
  #westo-entrance .eg-dock { height:54px !important; min-height:54px !important; max-width:54vw !important; }
  #westo-entrance .eg-dock__btn { padding-inline:5px !important; }
  #westo-entrance .eg-dock__label { display:none !important; }
  #westo-entrance .eg-corner { height:52px !important; min-height:52px !important; }
  #westo-entrance .eg-theme-toggle { width:52px !important; }
  #westo-entrance .eg-lang-switch { min-width:126px !important; padding-inline:10px !important; }
}
@media (max-width: 430px) and (max-height: 790px) {
  #westo-entrance .eg-card { min-height:570px !important; padding-top:13px !important; padding-bottom:12px !important; }
  #westo-entrance .eg-logo-stage { width:78px !important; max-height:116px !important; }
  #westo-entrance .eg-brand-wordmark-img { width:218px !important; max-height:43px !important; }
  #westo-entrance .eg-step-label { display:none !important; }
  #westo-entrance .eg-experience { min-height:96px !important; }
}



.navbar{z-index:80!important;pointer-events:none}
.navbar_content{background:transparent!important;border:0!important;pointer-events:auto}
.navbar_container{margin-inline:auto!important;align-items:center!important}
.navbar_logo-link{grid-column:2!important;justify-self:center!important;display:grid!important;place-items:center!important;padding:0!important;background:transparent!important}
.navbar_logo{width:100%!important;height:100%!important;object-fit:contain!important;filter:drop-shadow(0 6px 16px rgba(0,0,0,.08))}
.navbar_sound-wrapper{grid-column:1!important;justify-self:start!important;display:flex!important;align-items:center!important;gap:9px!important}
.navbar_menu-wrapper{grid-column:3!important;justify-self:end!important}
.navbar_table,.westo-back-categories,.navbar_menu-button,#nav-auth-btn{
  border:1px solid var(--prod-line-neutral)!important;border-radius:999px!important;color:var(--prod-ink)!important;background:var(--prod-glass)!important;
  -webkit-backdrop-filter:blur(14px) saturate(1.08)!important;backdrop-filter:blur(14px) saturate(1.08)!important;
  box-shadow:0 13px 34px rgba(0,0,0,.13),inset 0 1px 0 rgba(255,255,255,.05)!important;
  transition:border-color .22s ease,background .25s ease,transform .18s var(--v12-ease),box-shadow .25s ease!important;
}
.navbar_table:hover,.westo-back-categories:hover,.navbar_menu-button:hover{border-color:color-mix(in srgb,var(--prod-cyan) 42%,transparent)!important;transform:translateY(-1px)!important}
.navbar_table:active,.westo-back-categories:active,.navbar_menu-button:active{transform:translateY(1px)!important}

/* ========================================================================
   PHASE B — Global navbar: stable 3-column geometry
   ======================================================================== */
.navbar_content { height:var(--v12-nav-h) !important; min-height:var(--v12-nav-h) !important; padding:10px var(--v12-edge) !important; }
.navbar_container {
  width:min(100%,1180px) !important;
  height:100% !important;
  grid-template-columns:minmax(140px,1fr) auto minmax(140px,1fr) !important;
  gap:12px !important;
}
.navbar_logo-link { width:clamp(145px,15vw,205px) !important; height:54px !important; }
.navbar_table,.westo-back-categories,.navbar_menu-button,#nav-auth-btn { min-height:52px !important; }
@media(max-width:767px){
  .navbar_content{padding-inline:10px !important}
  .navbar_container{grid-template-columns:minmax(54px,1fr) auto minmax(110px,1fr)!important;gap:7px!important}
  .navbar_logo-link{width:128px!important;height:46px!important}
  .navbar_table,.westo-back-categories,.navbar_menu-button,#nav-auth-btn{min-height:48px!important;height:48px!important}
  .navbar_menu-button{min-width:82px!important;padding-inline:13px!important}
  #nav-auth-btn{min-width:48px!important;padding-inline:11px!important}
}
@media(max-width:390px){.navbar_logo-link{width:112px!important}.navbar_menu-button{min-width:74px!important}}

/* ========================================================================
   PHASE C — Category index: v12 owns copy, source owns canvas + carousel
   ======================================================================== */
html:not(.is-dish-boards) #westo-dish-card,
html:not(.is-dish-boards) .is-benefits,
html:not(.is-dish-boards) .benefits_nav.is-menu-rail,
html:not(.is-dish-boards) .westo-dish-catbar{opacity:0!important;visibility:hidden!important;pointer-events:none!important}

html:not(.is-dish-boards) .section.is-gamme {
  height:100dvh !important;
  min-height:100svh !important;
  overflow:hidden !important;
}
html:not(.is-dish-boards) .section.is-gamme .gamme_container > .padding-global > .container-large > .padding-bottom > .max-width-medium {
  position:relative !important;
  height:100% !important;
  min-height:100% !important;
  padding:var(--v12-nav-h) 10px 12px !important;
}
/* Hide legacy title/meta/pagination to remove duplicate information and collisions. */
html:not(.is-dish-boards) .carousel_title-collection,
html:not(.is-dish-boards) .westo-prod-hero-meta,
html:not(.is-dish-boards) .carousel_pagination,
html:not(.is-dish-boards) .scroll_discover { opacity:0 !important; visibility:hidden !important; pointer-events:none !important; }

.westo-v12-hero-copy {
  position:absolute;
  z-index:10;
  left:50%;
  bottom:calc(var(--v12-hero-dock-b) + var(--v12-hero-dock-h) + 24px);
  transform:translateX(-50%);
  width:min(700px,88vw);
  text-align:center;
  pointer-events:none;
  transition:opacity .22s ease,transform .36s var(--v12-ease);
}
.westo-v12-hero-copy.is-changing { opacity:0; transform:translate(-50%,7px); }
.westo-v12-hero-kicker { color:color-mix(in srgb,var(--cat-accent,var(--prod-cyan)) 76%,var(--prod-muted));font:650 10px/1.3 ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.28em;direction:ltr;text-transform:uppercase; }
.westo-v12-hero-title { margin:6px 0 0;font-size:clamp(42px,5.3vw,66px);line-height:1;font-weight:900;letter-spacing:-.035em;color:var(--prod-ink);text-shadow:0 10px 30px rgba(0,0,0,.16); }
.westo-v12-hero-desc { margin:10px auto 0;max-width:48ch;color:var(--prod-muted);font-size:12px;line-height:1.65;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;overflow:hidden; }
.westo-v12-hero-hint { margin-top:8px;color:var(--prod-muted);font-size:11px;display:flex;align-items:center;justify-content:center;gap:7px; }
.westo-v12-hero-hint svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.westo-v12-hero-rail { position:relative;width:min(520px,72vw);height:18px;margin:10px auto 0;display:grid;grid-template-columns:repeat(16,1fr);align-items:center; }
.westo-v12-hero-rail::before { content:'';position:absolute;inset-inline:2%;height:2px;border-radius:2px;background:linear-gradient(90deg,#b8d48a,#f0b46a,#c9d86a,#f2a070,#e89058,#d4a86a,#e8a888,#a8d478,#8ec8d0,#8fcb7a,#c4a078,#d4b090,#9ec8a0,#f0b0a0,#c8b0e0,#7ec8b0);opacity:.55; }
.westo-v12-hero-dot { width:5px;height:5px;border-radius:50%;justify-self:center;position:relative;z-index:1;background:rgba(255,255,255,.34);transition:transform .3s var(--v12-ease),background .3s ease,box-shadow .3s ease; }
html[data-theme='light'] .westo-v12-hero-dot { background:rgba(10,20,18,.24); }
.westo-v12-hero-dot.is-active { transform:scale(2);background:var(--cat-accent,var(--prod-cyan));box-shadow:0 0 15px var(--cat-glow,rgba(28,201,212,.22)); }

.westo-prod-hero-cats {
  position:absolute !important;
  z-index:14 !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  display:flex !important;
  align-items:center !important;
  overflow-x:auto !important;
  scrollbar-width:none !important;
  background:var(--prod-glass) !important;
  border:1px solid var(--prod-line-neutral) !important;
  -webkit-backdrop-filter:blur(14px) saturate(1.06) !important;
  backdrop-filter:blur(14px) saturate(1.06) !important;
  box-shadow:0 18px 48px rgba(0,0,0,.15),inset 0 1px 0 rgba(255,255,255,.05) !important;
  bottom:var(--v12-hero-dock-b) !important;
  width:min(980px,94vw) !important;
  height:var(--v12-hero-dock-h) !important;
  border-radius:40px !important;
  padding:7px 9px !important;
  gap:4px !important;
  scroll-padding-inline:45% !important;
}
.westo-prod-hero-cats::-webkit-scrollbar{display:none}
.westo-prod-hero-cat { appearance:none;border:0;background:transparent;color:var(--prod-muted);display:grid;align-items:center;cursor:pointer;transition:.22s var(--v12-ease);flex:0 0 104px !important;min-width:104px !important;height:62px !important;border-radius:29px !important;grid-template-columns:38px 1fr !important;padding:5px 8px !important; }
.westo-prod-hero-cat img { width:38px !important;height:38px !important;object-fit:contain!important;filter:drop-shadow(0 4px 7px rgba(0,0,0,.14)); }
.westo-prod-hero-cat span { font-size:9px !important;line-height:1.25 !important; }
.westo-prod-hero-cat.is-active { background:color-mix(in srgb,var(--cat-accent,var(--prod-cyan)) 11%,transparent) !important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cat-accent,var(--prod-cyan)) 42%,transparent),0 8px 20px rgba(0,0,0,.08) !important; }

.carousel_arrow { top:48% !important;width:48px !important;height:48px !important; }
.carousel_arrow.is-prev { inset-inline-start:clamp(12px,3vw,44px) !important; }
.carousel_arrow.is-next { inset-inline-end:clamp(12px,3vw,44px) !important; }


/* Reserve the lower editorial band. The WebGL stage remains source-owned; this
   mask only prevents visible canvas pixels from competing with copy/rail. */
html:not(.is-dish-boards) .gamme_canvas-wrapper,
html:not(.is-dish-boards) .canvas_wrapper,
html:not(.is-dish-boards) .webgl{
  -webkit-mask-image:linear-gradient(180deg,#000 0 68%,rgba(0,0,0,.86) 76%,rgba(0,0,0,.30) 88%,transparent 97%);
          mask-image:linear-gradient(180deg,#000 0 68%,rgba(0,0,0,.86) 76%,rgba(0,0,0,.30) 88%,transparent 97%);
}

/* Dish mode must never leave hero editorial furniture visible underneath. */
html.is-dish-boards .westo-v12-hero-copy,
html.is-dish-boards .westo-prod-hero-cats,
html.is-dish-boards .carousel_title-collection,
html.is-dish-boards .carousel_pagination,
html.is-dish-boards .scroll_discover { opacity:0 !important;visibility:hidden !important;pointer-events:none !important; }

@media(max-width:767px){
  :root{--v12-hero-dock-h:68px;--v12-hero-dock-b:10px}
  .westo-v12-hero-copy{bottom:calc(var(--v12-hero-dock-h) + var(--v12-hero-dock-b) + 17px);width:92vw}
  .westo-v12-hero-kicker{font-size:8px;letter-spacing:.23em}
  .westo-v12-hero-title{font-size:clamp(36px,10vw,48px);margin-top:4px}
  .westo-v12-hero-desc{font-size:10px;max-width:82vw;margin-top:7px;-webkit-line-clamp:1}
  .westo-v12-hero-hint{font-size:9px;margin-top:5px}
  .westo-v12-hero-rail{width:78vw;margin-top:6px;height:13px}
  .westo-prod-hero-cats{width:97vw!important;height:68px!important;padding:5px 6px!important;border-radius:34px!important}
  .westo-prod-hero-cat{flex-basis:84px!important;min-width:84px!important;height:56px!important;grid-template-columns:31px 1fr!important;padding:4px 5px!important}
  .westo-prod-hero-cat img{width:31px!important;height:31px!important}
  .westo-prod-hero-cat span{font-size:8px!important}
  .carousel_arrow{width:40px!important;height:40px!important;top:45%!important;background:rgba(6,16,18,.58)!important}
  html[data-theme='light'] .carousel_arrow{background:rgba(255,255,255,.62)!important}
}
@media(max-width:430px){.westo-v12-hero-desc{display:none}.westo-v12-hero-copy{bottom:92px}.westo-v12-hero-title{font-size:42px}}
@media(max-height:850px) and (min-width:768px){
  :root{--v12-hero-dock-h:64px;--v12-hero-dock-b:10px}
  .westo-v12-hero-copy{bottom:calc(var(--v12-hero-dock-b) + var(--v12-hero-dock-h) + 12px);width:min(660px,80vw)}
  .westo-v12-hero-desc{display:none}
  .westo-v12-hero-title{font-size:42px}
  .westo-v12-hero-hint{margin-top:5px;font-size:9px}
  .westo-v12-hero-rail{margin-top:5px;height:13px}
  .westo-prod-hero-cats{height:64px!important;bottom:10px!important}
  .westo-prod-hero-cat{height:50px!important}
}


/* ========================================================================
   PHASE D — Dish story: stable three-zone desktop / two-zone mobile
   ======================================================================== */
html.is-dish-boards {
  --menu-nav-h: var(--v12-nav-h);
  --menu-catbar-gap: 8px;
  --menu-catbar-base-h: 72px;
  --menu-catbar-h: 72px;
}
.westo-dish-catbar {
  position:fixed !important;
  z-index:175 !important;
  top:calc(var(--v12-nav-h) + 6px) !important;
  left:50% !important;
  right:auto !important;
  transform:translateX(-50%) !important;
  width:min(1120px,94vw) !important;
  min-height:72px !important;
  height:72px !important;
  padding:6px 9px !important;
  border-radius:36px !important;
  overflow:hidden !important;
  background:var(--prod-glass)!important;
  border:1px solid var(--prod-line-neutral)!important;
  -webkit-backdrop-filter:blur(15px) saturate(1.07)!important;backdrop-filter:blur(15px) saturate(1.07)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.055)!important;
}
.westo-dish-catbar__track { height:100% !important;gap:4px !important;padding:0 6px !important;align-items:center !important;scroll-padding-inline:45% !important; }
.westo-dish-catbar__chip { appearance:none;border:1px solid transparent!important;background:transparent!important;color:var(--prod-muted)!important;transition:.22s var(--v12-ease)!important;flex:0 0 96px !important;min-width:96px !important;height:58px !important;border-radius:27px !important;padding:4px 7px !important;gap:3px !important; }
.westo-dish-catbar__icon { width:34px !important;height:34px !important;flex:0 0 34px !important; }
.westo-dish-catbar__label { font-size:8px !important;line-height:1.15 !important;max-width:78px !important; }
.westo-dish-catbar__thumb{object-fit:contain!important;filter:drop-shadow(0 4px 7px rgba(0,0,0,.14))!important}
.westo-dish-catbar__chip.is-active{color:var(--prod-ink)!important;background:color-mix(in srgb,var(--cat-accent) 12%,transparent)!important;border-color:color-mix(in srgb,var(--cat-accent) 44%,transparent)!important;box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cat-accent) 12%,transparent)!important}
.westo-dish-catbar__chip:hover{color:var(--prod-ink)!important}

/* Stable ownership boundaries: source owns state/content; v12 owns visible geometry. */
html.is-dish-boards .benefits_nav.is-menu-rail{
  position:fixed!important;z-index:172!important;overflow-y:auto!important;overflow-x:hidden!important;
  background:var(--prod-glass)!important;border:1px solid var(--prod-line-neutral)!important;
  -webkit-backdrop-filter:blur(15px) saturate(1.06)!important;backdrop-filter:blur(15px) saturate(1.06)!important;
  box-shadow:0 18px 50px rgba(0,0,0,.14),inset 0 1px 0 rgba(255,255,255,.05)!important;
}
html.is-dish-boards .benefits_nav.is-menu-rail .benefits_icon-wrapper{appearance:none;border:1px solid transparent!important;background:transparent!important;color:var(--prod-muted)!important;transition:.2s var(--v12-ease)!important}
html.is-dish-boards .benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active,
html.is-dish-boards .benefits_nav.is-menu-rail .benefits_icon-wrapper[aria-current='true']{color:var(--prod-ink)!important;background:color-mix(in srgb,var(--cat-accent) 11%,transparent)!important;border-color:color-mix(in srgb,var(--cat-accent) 40%,transparent)!important}
html.is-dish-boards section.is-benefits .dish-board-media{position:fixed!important;z-index:34!important;display:grid!important;place-items:center!important;pointer-events:none!important}
html.is-dish-boards #westo-dish-card.is-shared-dish-card{
  position:fixed!important;z-index:168!important;background:var(--prod-glass-strong)!important;border:1px solid var(--prod-line-neutral)!important;
  -webkit-backdrop-filter:blur(18px) saturate(1.05)!important;backdrop-filter:blur(18px) saturate(1.05)!important;
  box-shadow:0 24px 68px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.06)!important;
}
html[data-theme='light'].is-dish-boards #westo-dish-card.is-shared-dish-card{box-shadow:0 22px 58px rgba(36,48,42,.12),inset 0 1px 0 rgba(255,255,255,.88)!important}
html.is-dish-boards #westo-dish-card .subhead_text [data-menu-price]{display:inline-flex!important;align-items:center!important;padding:6px 10px!important;border:1px solid var(--prod-line-neutral)!important;border-radius:999px!important;background:rgba(255,255,255,.045)!important}
html.is-dish-boards #westo-dish-card .menu-allergen{border-top:1px solid var(--prod-line-neutral)!important;color:var(--prod-muted)!important}
html.is-dish-boards #westo-dish-card .menu-add-btn.glass-button{border:1px solid color-mix(in srgb,var(--prod-cyan) 45%,transparent)!important;background:linear-gradient(108deg,rgba(7,92,101,.84),rgba(9,119,128,.86))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.10)!important}

/* Shared card: source owns content and quantity behavior, v12 owns sizing. */
html.is-dish-boards #westo-dish-card.is-shared-dish-card {
  box-sizing:border-box !important;
  overflow:hidden !important;
}
html.is-dish-boards #westo-dish-card .benefits_max-width { min-width:0 !important; }
html.is-dish-boards #westo-dish-card [data-menu-name],
html.is-dish-boards #westo-dish-card [data-menu-desc] { overflow-wrap:anywhere !important; }

@media(min-width:992px){
  :root{--menu-rail-w:clamp(112px,8.4vw,142px);--menu-rail-gap:clamp(12px,1.5vw,24px);--menu-card-w:clamp(370px,27vw,470px)}
  html.is-dish-boards { --dish-chrome-top:calc(var(--v12-nav-h) + 86px); --dish-info-w:var(--menu-card-w); --dish-info-h:clamp(250px,36vh,340px); }
  html.is-dish-boards .benefits_nav.is-menu-rail {
    top:calc(var(--dish-chrome-top) + 8px) !important;
    right:clamp(12px,1.5vw,24px) !important;
    bottom:clamp(18px,3vh,32px) !important;
    width:var(--menu-rail-w) !important;
    padding:7px 5px !important;
    border-radius:27px !important;
  }
  .benefits_nav.is-menu-rail .benefits_icon-wrapper{width:calc(var(--menu-rail-w) - 12px)!important;min-height:86px!important;border-radius:20px!important;padding:7px 4px!important;gap:4px!important}
  .benefits_nav.is-menu-rail .benefits_icon{width:50px!important;height:50px!important;flex-basis:50px!important}
  .benefits_nav.is-menu-rail .benefits_rail-label{font-size:9px!important;line-height:1.2!important;-webkit-line-clamp:2!important}

  html.is-dish-boards section.is-benefits .dish-board-media {
    top:calc(var(--dish-chrome-top) + 4px) !important;
    left:calc(var(--menu-card-w) + clamp(44px,5vw,86px)) !important;
    right:calc(var(--menu-rail-w) + var(--menu-rail-gap) + clamp(20px,2vw,32px)) !important;
    bottom:clamp(20px,3vh,34px) !important;
    overflow:visible !important;
  }
  html.is-dish-boards section.is-benefits .dish-board-media img {
    width:min(100%, clamp(500px,42vw,760px)) !important;
    height:min(100%, calc(100dvh - var(--dish-chrome-top) - 50px)) !important;
    max-width:100% !important;max-height:100% !important;object-fit:contain !important;
  }
  html.is-dish-boards #westo-dish-card.is-shared-dish-card {
    left:clamp(24px,3.5vw,60px) !important;
    right:auto !important;
    top:calc(var(--dish-chrome-top) + (100dvh - var(--dish-chrome-top) - var(--dish-info-h)) * .50) !important;
    bottom:auto !important;
    width:var(--menu-card-w) !important;
    height:var(--dish-info-h) !important;
    min-height:var(--dish-info-h) !important;
    max-height:var(--dish-info-h) !important;
    padding:18px 22px 19px !important;
    border-radius:28px !important;
    transform:none !important;
  }
  html.is-dish-boards #westo-dish-card .benefits_max-width{row-gap:8px!important}
  html.is-dish-boards #westo-dish-card [data-menu-name]{font-size:clamp(24px,2vw,32px)!important;line-height:1.15!important;-webkit-line-clamp:2!important}
  html.is-dish-boards #westo-dish-card [data-menu-desc]{font-size:12px!important;line-height:1.65!important;-webkit-line-clamp:2!important}
  html.is-dish-boards #westo-dish-card .menu-allergen{padding-top:2px!important}
  html.is-dish-boards #westo-dish-card .menu-add-btn.glass-button{min-height:48px!important}
}

/* Mobile and tablets: rail lives only beside the plate, card gets its own band. */
@media(max-width:991px){
  :root{--menu-rail-w:86px;--menu-rail-gap:6px}
  html.is-dish-boards {
    --dish-chrome-top:calc(var(--v12-nav-h) + 80px);
    --dish-safe-bottom:max(10px,env(safe-area-inset-bottom,0px));
    --dish-info-h:clamp(218px,30dvh,270px);
    --menu-card-bottom:var(--dish-safe-bottom);
    --dish-media-gap:8px;
    --dish-card-stack:calc(var(--dish-info-h) + var(--dish-safe-bottom) + var(--dish-media-gap));
  }
  .westo-dish-catbar{top:calc(var(--v12-nav-h) + 4px)!important;width:98vw!important;height:68px!important;min-height:68px!important;padding:5px!important;border-radius:32px!important}
  .westo-dish-catbar__chip{flex-basis:78px!important;min-width:78px!important;height:56px!important;padding:3px 5px!important}
  .westo-dish-catbar__icon{width:31px!important;height:31px!important;flex-basis:31px!important}
  .westo-dish-catbar__label{font-size:8px!important;max-width:68px!important}
  html.is-dish-boards .benefits_nav.is-menu-rail{
    top:calc(var(--dish-chrome-top) + 4px)!important;
    right:4px!important;
    bottom:var(--dish-card-stack)!important;
    width:var(--menu-rail-w)!important;
    padding:5px 3px!important;
    gap:4px!important;
    border-radius:22px!important;
  }
  .benefits_nav.is-menu-rail .benefits_icon-wrapper{width:78px!important;min-height:66px!important;border-radius:16px!important;padding:4px 3px!important;gap:2px!important}
  .benefits_nav.is-menu-rail .benefits_icon{width:42px!important;height:42px!important;flex-basis:42px!important}
  .benefits_nav.is-menu-rail .benefits_rail-label{font-size:8px!important;line-height:1.15!important;-webkit-line-clamp:1!important}

  html.is-dish-boards section.is-benefits .dish-board-media{
    top:var(--dish-chrome-top)!important;
    left:8px!important;
    right:calc(var(--menu-rail-w) + 10px)!important;
    bottom:var(--dish-card-stack)!important;
    overflow:visible!important;
  }
  html.is-dish-boards section.is-benefits .dish-board-media img{
    width:min(100%,78vw)!important;
    height:min(100%,calc(100dvh - var(--dish-chrome-top) - var(--dish-card-stack)))!important;
    max-width:100%!important;max-height:100%!important;object-fit:contain!important;
  }
  html.is-dish-boards #westo-dish-card.is-shared-dish-card{
    left:10px!important;right:10px!important;bottom:var(--dish-safe-bottom)!important;top:auto!important;width:auto!important;
    height:var(--dish-info-h)!important;min-height:var(--dish-info-h)!important;max-height:var(--dish-info-h)!important;
    padding:14px 16px 14px!important;border-radius:24px!important;transform:none!important;
  }
  html.is-dish-boards #westo-dish-card .benefits_max-width{row-gap:5px!important}
  html.is-dish-boards #westo-dish-card [data-menu-name]{font-size:clamp(21px,5.5vw,29px)!important;line-height:1.12!important;-webkit-line-clamp:2!important}
  html.is-dish-boards #westo-dish-card [data-menu-desc]{font-size:11px!important;line-height:1.55!important;-webkit-line-clamp:2!important}
  html.is-dish-boards #westo-dish-card .menu-cat-label{font-size:9px!important}
  html.is-dish-boards #westo-dish-card .subhead_text [data-menu-price]{font-size:10px!important}
  html.is-dish-boards #westo-dish-card .menu-allergen{padding-top:0!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  html.is-dish-boards #westo-dish-card .menu-add-wrap,html.is-dish-boards #westo-dish-card .max-width-xsmall{margin-top:2px!important}
  html.is-dish-boards #westo-dish-card .menu-add-btn.glass-button{min-height:46px!important}
  html.is-dish-boards #westo-dish-card .menu-add-btn .glass-button-text{padding:10px 16px!important;font-size:13px!important}
}
@media(max-width:430px){
  :root{--menu-rail-w:70px}
  html.is-dish-boards{--dish-info-h:224px;--dish-chrome-top:calc(var(--v12-nav-h) + 74px)}
  .westo-dish-catbar{height:64px!important;min-height:64px!important}
  .westo-dish-catbar__chip{flex-basis:70px!important;min-width:70px!important;height:52px!important}
  .westo-dish-catbar__label{font-size:7px!important}
  .benefits_nav.is-menu-rail .benefits_icon-wrapper{width:64px!important;min-height:58px!important}
  .benefits_nav.is-menu-rail .benefits_icon{width:38px!important;height:38px!important;flex-basis:38px!important}
  .benefits_nav.is-menu-rail .benefits_rail-label{display:none!important}
  html.is-dish-boards section.is-benefits .dish-board-media{left:4px!important;right:74px!important}
  html.is-dish-boards #westo-dish-card.is-shared-dish-card{left:7px!important;right:7px!important;padding-inline:13px!important}
  html.is-dish-boards #westo-dish-card [data-menu-desc]{font-size:10.5px!important}
}

/* Landscape / very short viewport: three horizontal columns, no vertical pile-up. */
@media(orientation:landscape) and (max-height:620px){
  :root{--v12-nav-h:58px;--menu-rail-w:92px}
  .navbar_content{height:58px!important;min-height:58px!important;padding-block:5px!important}.navbar_logo-link{height:44px!important}.navbar_table,.westo-back-categories,.navbar_menu-button,#nav-auth-btn{height:46px!important;min-height:46px!important}
  .westo-dish-catbar{top:62px!important;height:58px!important;min-height:58px!important;width:min(940px,82vw)!important}.westo-dish-catbar__chip{height:48px!important;min-width:70px!important;flex-basis:70px!important}.westo-dish-catbar__icon{width:28px!important;height:28px!important;flex-basis:28px!important}
  html.is-dish-boards{--dish-chrome-top:124px;--dish-info-h:calc(100dvh - 140px)}
  html.is-dish-boards .benefits_nav.is-menu-rail{top:128px!important;bottom:10px!important;right:6px!important;width:84px!important}
  html.is-dish-boards section.is-benefits .dish-board-media{top:124px!important;left:calc(min(38vw,390px) + 28px)!important;right:98px!important;bottom:8px!important}
  html.is-dish-boards section.is-benefits .dish-board-media img{width:min(44vw,520px)!important;height:calc(100dvh - 138px)!important}
  html.is-dish-boards #westo-dish-card.is-shared-dish-card{left:12px!important;right:auto!important;top:130px!important;bottom:auto!important;width:min(38vw,390px)!important;height:calc(100dvh - 148px)!important;min-height:0!important;max-height:none!important;padding:12px 14px!important}
  html.is-dish-boards #westo-dish-card [data-menu-name]{font-size:22px!important}html.is-dish-boards #westo-dish-card [data-menu-desc]{font-size:10px!important;-webkit-line-clamp:2!important}
}

/* ========================================================================
   PHASE E — shared overlays / modals / classic menu: hard geometry guards
   ======================================================================== */
.qty-modal__card,.table-drawer__panel,.cm-detail__card,.cm-drawer__panel { max-width:calc(100vw - 20px) !important; }
.qty-modal__card { max-height:calc(100dvh - 24px) !important; overflow:auto !important; }
.table-drawer__panel,.cm-drawer__panel { max-height:100dvh !important; overflow:auto !important; }
.cm-detail__card { max-height:calc(100dvh - 24px) !important; overflow:auto !important; }
@media(max-width:600px){
  .cm-header__bar{min-height:62px!important;border-radius:28px!important}.cm-logo{width:130px!important;height:42px!important}.cm-cats{min-height:68px!important}.cm-cat{min-width:78px!important;min-height:54px!important}.cm-cat__thumb,.cm-cat__thumb--empty{width:32px!important;height:32px!important}.cm-shell{padding:16px 10px 34px!important}.cm-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:9px!important}.cm-item{min-height:260px!important;border-radius:21px!important}.cm-item__media{min-height:150px!important;padding:8px!important}.cm-item__media img{height:150px!important}.cm-item__body{padding:11px 12px 13px!important}.cm-item__name{font-size:14px!important}.cm-item__price{font-size:12px!important}
}
@media(max-width:360px){.cm-grid{grid-template-columns:1fr!important}}

/* ========================================================================
   PHASE F — performance + accessibility
   ======================================================================== */
html[data-perf-tier='economy'] #westo-entrance .eg-card,
html[data-perf-tier='economy'] #westo-entrance .eg-status,
html[data-perf-tier='economy'] #westo-entrance .eg-dock,
html[data-perf-tier='economy'] .westo-prod-hero-cats,
html[data-perf-tier='economy'] .westo-dish-catbar,
html[data-perf-tier='economy'] .benefits_nav.is-menu-rail,
html[data-perf-tier='economy'] #westo-dish-card.is-shared-dish-card {
  -webkit-backdrop-filter:none !important;
  backdrop-filter:none !important;
}
@media(prefers-reduced-motion:reduce){
  .westo-v12-hero-copy,.westo-v12-hero-dot,.westo-prod-hero-cat,.westo-dish-catbar__chip { transition:none!important; }
}

/* v12 classic-menu narrow header: preserve every action without horizontal overflow. */
@media(max-width:430px){
  .classic-menu .cm-header__bar{grid-template-columns:36px minmax(84px,1fr) auto!important;gap:4px!important;padding-inline:6px!important}
  .classic-menu .cm-header__start{min-width:36px!important}
  .classic-menu .cm-logo{min-width:0!important;justify-self:center!important}
  .classic-menu .cm-logo img{max-width:96px!important;height:27px!important;object-fit:contain!important}
  .classic-menu .cm-header__actions{min-width:0!important;gap:2px!important}
  .classic-menu .cm-icon-btn,.classic-menu .cm-lang-btn{width:44px!important;min-width:44px!important;height:44px!important;border-radius:22px!important;padding:0!important}
  .classic-menu .cm-table-btn{width:44px!important;min-width:44px!important;height:44px!important;padding:0!important;display:grid!important;place-items:center!important;border-radius:22px!important}
  .classic-menu .cm-table-btn__label{display:none!important}
  .classic-menu .cm-table-btn__icon{margin:0!important}
}


/* WESTO Production v12.8 QA8 final interaction guards */
.westo-v12-hero-dot:focus-visible{outline:2px solid color-mix(in srgb,var(--cat-accent) 78%,white);outline-offset:4px}
.qty-modal{max-height:var(--vv-height,100dvh);overscroll-behavior:contain}
.qty-modal.is-keyboard-open{height:var(--vv-height,100dvh);max-height:var(--vv-height,100dvh);padding-block:.65rem;align-items:center}
.qty-modal__card{max-height:min(32rem,calc(var(--vv-height,100dvh) - 1.3rem));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.table-drawer{height:var(--vv-height,100dvh);max-height:var(--vv-height,100dvh)}
.table-drawer.is-keyboard-open .table-drawer__panel{height:var(--vv-height,100dvh);max-height:var(--vv-height,100dvh)}
.table-drawer__body,.cm-drawer__panel,.cm-detail__card{overscroll-behavior:contain}
.qty-modal__x,.table-drawer__close,.qty-circle,.cm-detail__x,.cm-qty button,.cm-drawer [data-drawer-close]{min-width:44px!important;min-height:44px!important}
.table-drawer__head h2,.table-drawer__count,.table-drawer .field label,.table-drawer .field-optional,.table-line__name,.table-line__meta,.cm-item__name,.cm-item__en,.cm-detail__body h3,.cm-detail__sub,.cm-detail__desc{overflow-wrap:anywhere;word-break:normal}
@media(max-width:360px){.table-line{grid-template-columns:52px minmax(0,1fr)!important}.table-line__actions{grid-column:1/-1;justify-content:space-between}.cm-detail__actions{flex-direction:column;align-items:stretch}.cm-qty{justify-content:center;min-height:48px}.cm-detail-add{width:100%;min-height:48px}}
@media(max-height:560px) and (orientation:landscape){.qty-modal{align-items:center;padding:.5rem}.qty-modal__card{max-height:calc(var(--vv-height,100dvh) - 1rem)}.cm-detail{align-items:stretch}.cm-detail__card{width:min(44rem,100%);max-height:100dvh;border-radius:0;padding-bottom:max(1rem,env(safe-area-inset-bottom,0px))}html.is-dish-boards #westo-dish-card{max-height:calc(100dvh - 132px)!important;overflow-y:auto!important;overscroll-behavior:contain}}
html[data-theme='light'] .qty-modal__card,html[data-theme='light'] .table-drawer__panel,html[data-theme='light'] .cm-detail__card,html[data-theme='light'] .cm-drawer__panel{border-color:rgba(14,34,31,.13)!important}
html[data-theme='light'] .qty-modal__price,html[data-theme='light'] .table-drawer__count,html[data-theme='light'] .cm-detail__sub,html[data-theme='light'] .cm-detail__desc{color:rgba(25,35,32,.66)!important}
html[data-perf-tier='economy'] body::before{display:none!important}
html[data-perf-tier='economy'] .navbar,html[data-perf-tier='economy'] .navbar_menu-button,html[data-perf-tier='economy'] #westo-entrance .eg-glass-btn,html[data-perf-tier='economy'] .qty-modal__backdrop,html[data-perf-tier='economy'] .qty-modal__card,html[data-perf-tier='economy'] .qty-circle,html[data-perf-tier='economy'] .table-drawer__panel,html[data-perf-tier='economy'] .table-drawer .btn,html[data-perf-tier='economy'] .cm-detail__card,html[data-perf-tier='economy'] .cm-detail-add,html[data-perf-tier='economy'] .cm-drawer__panel{-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
html[data-perf-tier='economy'] .qty-modal__card,html[data-perf-tier='economy'] .table-drawer__panel,html[data-perf-tier='economy'] .cm-detail__card,html[data-perf-tier='economy'] .cm-drawer__panel{background-color:rgba(10,18,19,.96)!important}
html[data-theme='light'][data-perf-tier='economy'] .qty-modal__card,html[data-theme='light'][data-perf-tier='economy'] .table-drawer__panel,html[data-theme='light'][data-perf-tier='economy'] .cm-detail__card,html[data-theme='light'][data-perf-tier='economy'] .cm-drawer__panel{background-color:rgba(250,250,247,.98)!important}


/* ========================================================================
   WESTO v12.9 — Design Logic Refactor
   One primary navigator per hierarchy level; readable states; motor-safe UI.
   ======================================================================== */
/* The category rail is progress/status only. The category dock is the one
   primary direct-choice control, preventing duplicate 16-choice navigation. */
.westo-v12-hero-rail { pointer-events:auto !important; touch-action:manipulation; }
.westo-v12-hero-dot {
  appearance:none; border:0; padding:0; margin:0; cursor:pointer; pointer-events:auto !important;
  width:100%;height:30px;background:transparent !important;display:grid;place-items:center;
  justify-self:stretch;position:relative;z-index:2;border-radius:12px;
  transform:none !important;box-shadow:none !important;
}
.westo-v12-hero-dot::after {
  content:'';width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.34);
  transition:transform .3s var(--v12-ease),background .3s ease,box-shadow .3s ease;
}
html[data-theme='light'] .westo-v12-hero-dot::after { background:rgba(10,20,18,.24); }
.westo-v12-hero-dot.is-active::after {
  transform:scale(2);background:var(--cat-accent,var(--prod-cyan));
  box-shadow:0 0 15px var(--cat-glow,rgba(28,201,212,.22));
}
.westo-v12-hero-dot.is-active { transform:none !important;background:transparent !important;box-shadow:none !important; }
.westo-v12-hero-dot:focus-visible { outline:2px solid color-mix(in srgb,var(--cat-accent,var(--prod-cyan)) 74%,white); outline-offset:1px; }
.westo-prod-hero-cats { touch-action:pan-x; }
.westo-prod-hero-cat { touch-action:manipulation; }

/* Current state must not rely on color alone. */
.westo-prod-hero-cat.is-active,
.westo-dish-catbar__chip.is-active,
.benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active {
  font-weight:700 !important;
}
.westo-prod-hero-cat.is-active::after,
.westo-dish-catbar__chip.is-active::after {
  content:'';
  position:absolute;
  inset-inline:28%;
  bottom:3px;
  height:2px;
  border-radius:999px;
  background:var(--cat-accent,var(--prod-cyan));
  opacity:.8;
}
.westo-prod-hero-cat,.westo-dish-catbar__chip { position:relative !important; }

/* Interactive microcopy stays readable even on compact devices. */
@media(max-width:767px){
  .westo-prod-hero-cat span{font-size:9px!important}
  .westo-dish-catbar__label{font-size:9px!important;line-height:1.2!important}
  .benefits_nav.is-menu-rail .benefits_rail-label{font-size:9px!important;line-height:1.15!important}
}
@media(max-width:430px){
  .westo-dish-catbar__label{font-size:9px!important}
  .benefits_nav.is-menu-rail .benefits_rail-label{
    display:-webkit-box!important;
    max-width:62px!important;
    overflow:hidden!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:1!important;
  }
  /* Direct category dock is already present; arrows add another competing
     navigation mechanism in the narrowest viewport. */
  html:not(.is-dish-boards) .carousel_arrow{display:none!important}
}

/* In dish mode, hero editorial/navigation is absent, not merely transparent:
   no hidden compositing layer and no accidental duplicate navigation surface. */
html.is-dish-boards .westo-v12-hero-copy,
html.is-dish-boards .westo-prod-hero-cats { display:none!important; }

/* Light surfaces use the same state grammar with sufficient edge separation. */
html[data-theme='light'] .westo-prod-hero-cat.is-active,
html[data-theme='light'] .westo-dish-catbar__chip.is-active,
html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active {
  border-color:color-mix(in srgb,var(--cat-accent) 52%,rgba(17,31,28,.20))!important;
}

/* Keyboard focus is a distinct state from hover/active. */
.westo-prod-hero-cat:focus-visible,
.westo-dish-catbar__chip:focus-visible,
.benefits_nav.is-menu-rail .benefits_icon-wrapper:focus-visible {
  outline:2px solid color-mix(in srgb,var(--prod-cyan) 78%,white)!important;
  outline-offset:3px!important;
}

/* Reduced motion preserves state feedback but removes spatial decoration. */
@media(prefers-reduced-motion:reduce){
  .westo-prod-hero-cat,.westo-dish-catbar__chip,
  .benefits_nav.is-menu-rail .benefits_icon-wrapper,
  .navbar_table,.westo-back-categories,.navbar_menu-button,#nav-auth-btn{
    transition:none!important;
    transform:none!important;
  }
}
/* WESTO Design Logic v13.1 — non-invasive human-factor guards.
   Default v8/v12.9 visual language is authoritative. This layer only appears
   for keyboard focus, accessibility preferences, text overflow and edge viewports. */
:root{
  --dl-touch-min:44px;
  --dl-focus:#78d0d8;
  --dl-focus-offset:3px;
  --dl-vv-height:100dvh;
  --dl-vv-width:100vw;
}
html[data-theme='light']{--dl-focus:#176f78}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-padding-top:max(1rem,env(safe-area-inset-top))}
button,input,select,textarea{font:inherit}
button,[role='button'],a,input,select,textarea{touch-action:manipulation}

.dl-skip-link{
  position:fixed;inset-inline-start:max(.75rem,env(safe-area-inset-left));top:max(.75rem,env(safe-area-inset-top));
  z-index:2147483647;transform:translateY(calc(-100% - 2rem));
  padding:.72rem 1rem;border-radius:999px;background:#f7fbfa;color:#071012;
  border:2px solid var(--dl-focus);box-shadow:0 12px 36px rgba(0,0,0,.24);font-weight:800;
  transition:transform .16s ease;
}
.dl-skip-link:focus{transform:translateY(0)}
html[data-input-modality='keyboard'] :where(a,button,input,select,textarea,[role='button'],[tabindex]):focus-visible{
  outline:2px solid var(--dl-focus)!important;outline-offset:var(--dl-focus-offset)!important;
}

/* Only text-resilience; no default sizing, opacity, border, color or shadow changes. */
:where(.auth-sub,.hint,.msg,.checkout-note,.cm-item__name,.cm-item__en,.cm-detail__desc,.table-line__name,.table-line__meta,.text-rich-text p,.text-rich-text li){
  overflow-wrap:anywhere;word-break:normal;
}
body.legal-body{user-select:text!important;-webkit-user-select:text!important}

/* Hit-area expansion without changing the approved visual geometry. */
@media (pointer:coarse){
  :where(.navbar_menu-button,.navbar_menu-close,.eg-glass-btn,.eg-chip-icon,.qty-modal__x,.table-drawer__close,.cm-detail__x,.score-btn,.slot-btn){
    position:relative;
  }
  :where(.navbar_menu-button,.navbar_menu-close,.eg-glass-btn,.eg-chip-icon,.qty-modal__x,.table-drawer__close,.cm-detail__x,.score-btn,.slot-btn)::after{
    content:"";position:absolute;left:50%;top:50%;width:max(100%,44px);height:max(100%,44px);transform:translate(-50%,-50%);
  }
}

@media (max-width:360px){
  .grid-2{grid-template-columns:1fr!important}
  .score-grid{grid-template-columns:repeat(4,minmax(44px,1fr))!important;gap:.45rem!important}
  .checkout-segment{grid-template-columns:1fr!important}
}
@media (max-height:560px) and (orientation:landscape){
  :where(.qty-modal__card,.table-drawer__panel,.cm-detail__card,.eg-sheet){
    max-height:calc(var(--dl-vv-height) - 1rem);overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;
  }
}
html.dl-keyboard-open :where(.qty-modal,.table-drawer,.cm-detail){max-height:var(--dl-vv-height)}

@media (prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto!important}
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important}
}
@media (forced-colors:active){
  :where(a,button,input,select,textarea,[role='button']){forced-color-adjust:auto}
}
@media print{.dl-skip-link{display:none!important}}

/* Compositional tokens are advisory only; they do not override existing v8 geometry. */
:root{
  --dl-phi:1.618;
  --dl-space-1:.5rem;
  --dl-space-2:.8125rem;
  --dl-space-3:1.3125rem;
  --dl-space-4:2.125rem;
  --dl-space-5:3.4375rem;
}
.eg-sheet{position:relative}
.eg-sheet-close{
  position:absolute;inset-inline-end:1rem;top:1rem;z-index:3;
  width:44px;height:44px;border-radius:999px;display:grid;place-items:center;
  border:1px solid rgba(120,208,216,.22);background:rgba(8,18,21,.66);color:inherit;
  font:inherit;font-size:1.2rem;line-height:1;cursor:pointer;
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
}
html[data-theme='light'] .eg-sheet-close{background:rgba(255,255,255,.78);border-color:rgba(16,72,76,.14);color:#111416}
@media (prefers-contrast:more){
  html[data-input-modality='keyboard'] :where(a,button,input,select,textarea,[role='button'],[tabindex]):focus-visible{outline-width:3px!important}
}

/* Semantic helpers introduced by v13.1 must not leak into the visible composition. */
.visually-hidden,.sr-only{
  position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;
  overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;
  white-space:nowrap!important;border:0!important;
}
body.panel-body .auth-link-btn{
  appearance:none;-webkit-appearance:none;border:0;background:transparent;color:inherit;
  display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.3rem .1rem;
  font:inherit;line-height:inherit;text-decoration:underline;text-underline-offset:.2em;cursor:pointer;
}
html[data-theme='light'] body.panel-body .auth-link-btn{
  color:rgba(26,23,20,.82);text-decoration-color:rgba(42,122,134,.55);
}


/* ========================================================================
   WESTO v13.4 ROOT RECOVERY — interaction + liquid glass + media continuity
   This layer is deliberately narrow: no architecture/state ownership changes.
   ======================================================================== */

/* Hero copy is presentation-only, but its progress rail is a real navigation
   control. Override inherited pointer transparency only for the interactive rail. */
.westo-v12-hero-rail,
.westo-v12-hero-rail .westo-v12-hero-dot {
  pointer-events: auto !important;
}
.westo-v12-hero-rail {
  cursor: pointer;
  touch-action: manipulation;
  min-height: 24px;
  padding-block: 3px;
}
.westo-v12-hero-dot {
  appearance: none;
  border: 0;
  padding: 0;
  cursor: pointer;
}
.westo-prod-hero-cats,
.westo-prod-hero-cat,
#westo-dish-catbar,
#westo-dish-catbar .westo-dish-catbar__track,
#westo-dish-catbar .westo-dish-catbar__chip {
  pointer-events: auto !important;
}
.westo-prod-hero-cats,
#westo-dish-catbar .westo-dish-catbar__track { touch-action: pan-x !important; }
.westo-prod-hero-cat,
#westo-dish-catbar .westo-dish-catbar__chip { touch-action: manipulation !important; }

/* Remove the cyan/liquid ring around dish pixels. Selected state lives on the
   rail item's surface + typography, keeping the food image visually clean. */
.benefits_nav.is-menu-rail .benefits_rail-border,
.benefits_nav.is-menu-rail .benefits_rail-border--liquid {
  display: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
}
.benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active .benefits_icon,
.benefits_nav.is-menu-rail .benefits_icon-wrapper.w--current .benefits_icon,
html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active .benefits_icon,
html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_icon-wrapper.w--current .benefits_icon {
  box-shadow: none !important;
  outline: none !important;
}
.benefits_nav.is-menu-rail .benefits_dish-thumb {
  border: 0 !important;
  outline: 0 !important;
}

/* Directional plate transitions can translate without losing their fixed
   geometry. The contact puck follows the same media wrapper automatically. */
html.is-dish-boards section.is-benefits.is-dish-active .dish-board-media,
html.is-dish-boards section.is-benefits.is-dish-leaving .dish-board-media,
html.is-dish-boards section.is-benefits.is-dish-switching .dish-board-media {
  will-change: opacity, transform;
}

/* Light theme liquid-glass restoration. Paper/solid pills were flattening the
   interface; these surfaces regain translucency, edge refraction and depth while
   retaining readable charcoal ink. */
html[data-theme='light'] {
  --westo-liquid-light-bg: linear-gradient(145deg, rgba(255,255,255,.68), rgba(244,247,245,.38) 55%, rgba(231,238,235,.46));
  --westo-liquid-light-border: rgba(255,255,255,.78);
  --westo-liquid-light-shadow: inset 0 1px 0 rgba(255,255,255,.96), inset 0 -1px 0 rgba(26,105,112,.055), 0 10px 28px rgba(42,58,56,.11), 0 0 0 1px rgba(26,139,149,.075);
}
html[data-theme='light'] .navbar_table,
html[data-theme='light'] .westo-back-categories,
html[data-theme='light'] .navbar_menu-button,
html[data-theme='light'] #nav-auth-btn,
html[data-theme='light'] #westo-entrance .eg-dock,
html[data-theme='light'] #westo-entrance .eg-corner,
html[data-theme='light'] #westo-entrance .eg-lang,
html[data-theme='light'] #westo-entrance .eg-theme-toggle,
html[data-theme='light'] #westo-entrance .eg-top > .eg-glass-btn:first-child,
html[data-theme='light'] #westo-entrance #eg-site-menu.westo-menu-trigger {
  background: var(--westo-liquid-light-bg) !important;
  border-color: var(--westo-liquid-light-border) !important;
  color: #111716 !important;
  -webkit-backdrop-filter: blur(22px) saturate(1.42) brightness(1.035) !important;
  backdrop-filter: blur(22px) saturate(1.42) brightness(1.035) !important;
  box-shadow: var(--westo-liquid-light-shadow) !important;
}
html[data-theme='light'] .navbar_table:hover,
html[data-theme='light'] .westo-back-categories:hover,
html[data-theme='light'] .navbar_menu-button:hover,
html[data-theme='light'] #nav-auth-btn:hover,
html[data-theme='light'] #westo-entrance .eg-dock__btn:hover,
html[data-theme='light'] #westo-entrance .eg-glass-btn:hover,
html[data-theme='light'] #westo-entrance .eg-theme-toggle:hover,
html[data-theme='light'] #westo-entrance .eg-lang:hover {
  background: linear-gradient(145deg, rgba(255,255,255,.82), rgba(241,248,246,.52)) !important;
  border-color: rgba(44,188,198,.24) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,1), 0 12px 30px rgba(40,58,57,.13), 0 0 0 1px rgba(38,180,190,.09) !important;
}
html[data-theme='light'] #westo-entrance .eg-lang-seg {
  color: rgba(17,23,22,.50) !important;
  text-shadow: none !important;
}
html[data-theme='light'] #westo-entrance .eg-lang-seg.is-active {
  color: #139ca6 !important;
  font-weight: 800 !important;
}
html[data-theme='light'] #westo-entrance .eg-lang-sep {
  color: rgba(17,23,22,.22) !important;
}
/* Rounded focus treatment: accessible but never a square cyan debug box. */
#westo-entrance .eg-dock__btn:focus-visible,
#westo-entrance .eg-chip-icon:focus-visible,
#westo-entrance .eg-glass-btn:focus-visible,
#westo-entrance .eg-theme-toggle:focus-visible,
#westo-entrance .eg-lang:focus-visible,
#westo-entrance .eg-lang-seg:focus-visible {
  outline: none !important;
  border-radius: 999px !important;
  box-shadow: inset 0 0 0 1.5px rgba(28,201,212,.62), 0 0 0 3px rgba(28,201,212,.12) !important;
}

/* Light dish/category chrome keeps the same glass material instead of becoming
   an opaque white slab. */
html[data-theme='light'] .westo-prod-hero-cats,
html[data-theme='light'] .westo-dish-catbar,
html[data-theme='light'].is-dish-boards .benefits_nav.is-menu-rail {
  background: linear-gradient(150deg, rgba(255,255,255,.62), rgba(247,248,244,.34)) !important;
  border-color: rgba(255,255,255,.72) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.28) !important;
  backdrop-filter: blur(18px) saturate(1.28) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.94), 0 12px 34px rgba(47,58,54,.09), 0 0 0 1px rgba(20,113,120,.055) !important;
}

/* Mobile/tablet geometry: protect the media from the rail and keep header/category
   chrome from visually colliding at CSS-pixel widths. */
@media (max-width: 991px) {
  html.is-dish-boards .benefits_nav.is-menu-rail {
    width: clamp(78px, 20vw, 96px) !important;
    right: max(4px, env(safe-area-inset-right,0px)) !important;
    left: auto !important;
  }
  html.is-dish-boards section.is-benefits .dish-board-media {
    max-width: calc(100vw - clamp(86px, 22vw, 108px)) !important;
  }
}
@media (max-width: 430px) {
  .westo-dish-catbar__chip { min-width: 76px !important; flex-basis: 76px !important; }
  .westo-dish-catbar__label { font-size: 8px !important; }
  html.is-dish-boards .benefits_nav.is-menu-rail { width: 82px !important; }
  html.is-dish-boards .benefits_nav.is-menu-rail .benefits_icon { width: 46px !important; height: 46px !important; flex-basis: 46px !important; }
}


/* v13.4.1 — clean food thumbnails: no cyan contour on any active rail image. */
.benefits_nav.is-menu-rail .benefits_icon-wrapper::before,
.benefits_nav.is-menu-rail .benefits_icon-wrapper::after,
.benefits_nav.is-menu-rail .benefits_icon::before,
.benefits_nav.is-menu-rail .benefits_icon::after {
  box-shadow: none !important;
}
.benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active .benefits_icon,
.benefits_nav.is-menu-rail .benefits_icon-wrapper.w--current .benefits_icon,
.benefits_nav.is-menu-rail .benefits_icon.is-liquid-active,
html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_icon-wrapper.is-active .benefits_icon,
html[data-theme='light'] .benefits_nav.is-menu-rail .benefits_icon-wrapper.w--current .benefits_icon {
  border-color: transparent !important;
  box-shadow: none !important;
  filter: none !important;
}


/* v13.4.2 — light entrance segmented controls keep liquid depth on active state. */
#westo-entrance .eg-dock__btn.is-active,
#westo-entrance .eg-chip-icon.is-active {
  border-radius: 999px !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn,
html[data-theme='light'] .entrance-gate .eg-dock__btn {
  color: #1a2327 !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__label,
html[data-theme='light'] .entrance-gate .eg-dock__label,
html[data-theme='light'] .eg-dock__label {
  color: #1a2327 !important;
  font-weight: 750 !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn svg,
html[data-theme='light'] .entrance-gate .eg-dock__btn svg,
html[data-theme='light'] .eg-dock__btn svg {
  color: #1a2327 !important;
  stroke: #1a2327 !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn+.eg-dock__btn::before,
html[data-theme='light'] .entrance-gate .eg-dock__btn+.eg-dock__btn::before {
  background: rgba(26, 35, 39, 0.18) !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn:hover,
html[data-theme='light'] #westo-entrance .eg-dock__btn:focus-visible {
  color: #0c555c !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn:hover .eg-dock__label,
html[data-theme='light'] #westo-entrance .eg-dock__btn:focus-visible .eg-dock__label {
  color: #0c555c !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn:hover svg,
html[data-theme='light'] #westo-entrance .eg-dock__btn:focus-visible svg {
  color: #0c555c !important;
  stroke: #0c555c !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn.is-active,
html[data-theme='light'] #westo-entrance .eg-chip-icon.is-active {
  background: linear-gradient(145deg, rgba(255,255,255,.78), rgba(226,248,248,.34)) !important;
  border-color: rgba(28,191,201,.24) !important;
  color: #0c555c !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.98), 0 7px 18px rgba(45,80,79,.10), 0 0 0 1px rgba(28,191,201,.07) !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn.is-active .eg-dock__label,
html[data-theme='light'] #westo-entrance .eg-chip-icon.is-active .eg-dock__label {
  color: #0c555c !important;
  font-weight: 800 !important;
}
html[data-theme='light'] #westo-entrance .eg-dock__btn.is-active svg,
html[data-theme='light'] #westo-entrance .eg-chip-icon.is-active svg {
  color: #0c555c !important;
  stroke: #0c555c !important;
}
html[data-theme='light'] #westo-entrance .eg-sheet {
  background: #ffffff !important;
  border-color: rgba(26,35,39,.18) !important;
  color: #111416 !important;
}
html[data-theme='light'] #westo-entrance .eg-sheet-title { color: #111416 !important; }
html[data-theme='light'] #westo-entrance .eg-sheet-close { color: #111416 !important; }
html[data-theme='light'] #westo-entrance .eg-nav-link { color: #1a2327 !important; font-weight: 600 !important; }
html[data-theme='light'] #westo-entrance .eg-nav-link:hover { color: #0c555c !important; }
html[data-theme='light'] #westo-entrance .eg-tab { color: #374151 !important; }
html[data-theme='light'] #westo-entrance .eg-tab.is-active { color: #0c555c !important; font-weight: 800 !important; }
html[data-theme='light'] #westo-entrance .eg-contact { color: #1a2327 !important; }
html[data-theme='light'] #westo-entrance .eg-contact a { color: #0c555c !important; }
/* Preserve a segmented dock silhouette without hard square focus/active tiles. */
#westo-entrance .eg-dock__btn:focus:not(:focus-visible),
#westo-entrance .eg-chip-icon:focus:not(:focus-visible) { outline: none !important; }

/* ========================================================================
   WESTO v13.5 — Light Entrance Material + WESTO Pattern Field
   Goal: preserve approved geometry/state machines while restoring a coherent
   liquid-glass material system and replacing the dark light-theme surround
   with a quiet WESTO-branded pattern field.
   ======================================================================== */
html[data-theme='light'] #westo-entrance {
  --westo-light-paper: rgba(250, 251, 248, .72);
  --westo-light-paper-strong: rgba(253, 253, 250, .84);
  --westo-light-ink: #17201f;
  --westo-light-muted: rgba(23, 32, 31, .62);
  --westo-light-faint: rgba(23, 32, 31, .42);
  --westo-light-edge: rgba(255, 255, 255, .84);
  --westo-light-edge-low: rgba(42, 100, 101, .12);
  --westo-light-teal: #159ba5;
  --westo-light-teal-deep: #10747c;
  --westo-light-teal-soft: rgba(28, 201, 212, .10);
  --westo-light-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    inset 0 -1px 0 rgba(20,88,92,.045),
    0 24px 72px rgba(49,66,63,.13),
    0 2px 10px rgba(49,66,63,.06);
  --westo-light-control-shadow:
    inset 0 1px 0 rgba(255,255,255,.98),
    inset 0 -1px 0 rgba(23,94,98,.055),
    0 10px 30px rgba(46,65,62,.11),
    0 0 0 1px rgba(32,111,116,.045);

  color: var(--westo-light-ink) !important;
  background:
    radial-gradient(62rem 42rem at 50% 42%, rgba(255,255,255,.82), transparent 64%),
    radial-gradient(40rem 32rem at 8% 14%, rgba(28,201,212,.075), transparent 70%),
    radial-gradient(42rem 32rem at 94% 82%, rgba(191,165,105,.06), transparent 72%),
    linear-gradient(145deg, #edf1ec 0%, #e9eee8 46%, #e4ebe6 100%) !important;
}

/* The light theme gets a branded field instead of the dark café photograph.
   Use the approved WESTO geometric artwork as a watermark, not decoration that
   competes with the content card. */
html[data-theme='light'] #westo-entrance .eg-ambient__photo {
  opacity: 0 !important;
  visibility: hidden !important;
}
html[data-theme='light'] #westo-entrance .eg-ambient__base {
  background:
    radial-gradient(55rem 38rem at 50% 42%, rgba(255,255,255,.70), transparent 68%),
    linear-gradient(145deg, #edf1ec 0%, #e8eee8 58%, #e2e9e4 100%) !important;
}
html[data-theme='light'] #westo-entrance .eg-ambient::before {
  content: '';
  position: absolute;
  inset: -8%;
  z-index: 0;
  pointer-events: none;
  background-image: url('../assets/images/entrance/westo-pattern-source.png');
  background-repeat: repeat;
  background-size: clamp(360px, 31vw, 560px) auto;
  background-position: -7vw -5vh;
  opacity: .045;
  mix-blend-mode: multiply;
  filter: saturate(.62) contrast(.86);
  transform: rotate(-2deg) scale(1.04);
  transform-origin: 50% 50%;
  -webkit-mask-image: radial-gradient(ellipse 82% 78% at 50% 48%, rgba(0,0,0,.18) 0%, rgba(0,0,0,.54) 58%, #000 100%);
          mask-image: radial-gradient(ellipse 82% 78% at 50% 48%, rgba(0,0,0,.18) 0%, rgba(0,0,0,.54) 58%, #000 100%);
}
html[data-theme='light'] #westo-entrance .eg-ambient::after {
  content: '';
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(ellipse 54% 72% at 50% 48%, rgba(255,255,255,.48), rgba(255,255,255,.08) 58%, transparent 82%),
    linear-gradient(180deg, rgba(255,255,255,.10), rgba(221,231,226,.14));
}
html[data-theme='light'] #westo-entrance .eg-ambient__veil {
  z-index: 2;
  background:
    radial-gradient(ellipse 62% 62% at 50% 48%, rgba(255,255,255,.18), transparent 70%),
    linear-gradient(180deg, rgba(235,241,236,.03), rgba(220,230,225,.10)) !important;
}
html[data-theme='light'] #westo-entrance .eg-ambient__wash {
  z-index: 3;
  opacity: .55;
  background: radial-gradient(circle at 50% 42%, rgba(28,201,212,.065), transparent 48%) !important;
}
html[data-theme='light'] #westo-entrance .eg-ambient__rays,
html[data-theme='light'] #westo-entrance .eg-ambient__fog,
html[data-theme='light'] #westo-entrance .eg-ambient__noise {
  opacity: .22 !important;
}
html[data-theme='light'] #westo-entrance .eg-ambient__particles { opacity: .20 !important; }

/* Main panel: warm liquid glass, not an opaque white slab. */
html[data-theme='light'] #westo-entrance .eg-card {
  color: var(--westo-light-ink) !important;
  border-color: rgba(255,255,255,.78) !important;
  background:
    linear-gradient(160deg, rgba(255,255,255,.79) 0%, rgba(251,252,249,.69) 36%, rgba(241,247,244,.54) 100%),
    rgba(248,250,247,.58) !important;
  -webkit-backdrop-filter: blur(30px) saturate(1.34) brightness(1.025) !important;
  backdrop-filter: blur(30px) saturate(1.34) brightness(1.025) !important;
  box-shadow: var(--westo-light-shadow) !important;
}
html[data-theme='light'] #westo-entrance .eg-card::before {
  inset-inline: 12% !important;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.88) 25%, rgba(54,189,198,.18) 50%, rgba(255,255,255,.88) 75%, transparent) !important;
  opacity: .58 !important;
}
html[data-theme='light'] #westo-entrance .eg-card__reflect {
  opacity: .19 !important;
  background: linear-gradient(112deg, transparent 27%, rgba(255,255,255,.74) 47%, transparent 63%) !important;
}
html[data-theme='light'] #westo-entrance .eg-card__glow {
  opacity: .46 !important;
  background: radial-gradient(circle at 50% 28%, rgba(28,201,212,.08), transparent 54%) !important;
}
html[data-theme='light'] #westo-entrance .eg-pattern {
  opacity: .035 !important;
  mix-blend-mode: multiply !important;
  filter: saturate(.45) contrast(.88) !important;
}

/* Copy hierarchy: keep secondary information calm but readable. */
html[data-theme='light'] #westo-entrance .eg-tagline { color: rgba(23,32,31,.66) !important; }
html[data-theme='light'] #westo-entrance .eg-subtitle { color: rgba(21,155,165,.70) !important; }
html[data-theme='light'] #westo-entrance .eg-experience__lead,
html[data-theme='light'] #westo-entrance .eg-step-label,
html[data-theme='light'] #westo-entrance .eg-quote { color: var(--westo-light-muted) !important; }

/* Status is a small glass capsule rather than another solid white card. */
html[data-theme='light'] #westo-entrance .eg-status {
  color: var(--westo-light-ink) !important;
  background: linear-gradient(145deg, rgba(255,255,255,.68), rgba(241,247,244,.42)) !important;
  border-color: rgba(255,255,255,.82) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.26) !important;
  backdrop-filter: blur(18px) saturate(1.26) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.98), 0 9px 24px rgba(47,65,62,.09), 0 0 0 1px rgba(28,126,133,.05) !important;
}
html[data-theme='light'] #westo-entrance .eg-status-meta,
html[data-theme='light'] #westo-entrance .eg-status-loc { color: rgba(23,32,31,.58) !important; }
html[data-theme='light'] #westo-entrance .eg-status-dot {
  background: #7bd8a0 !important;
  box-shadow: 0 0 0 5px rgba(123,216,160,.11), 0 0 16px rgba(123,216,160,.22) !important;
}

/* Step system: one material family, state conveyed by tint + edge + icon, not
   aggressive cyan boxes. */
html[data-theme='light'] #westo-entrance .eg-step-icon {
  color: #208f97 !important;
  background: linear-gradient(145deg, rgba(255,255,255,.67), rgba(238,247,244,.40)) !important;
  border-color: rgba(255,255,255,.80) !important;
  -webkit-backdrop-filter: blur(14px) saturate(1.20) !important;
  backdrop-filter: blur(14px) saturate(1.20) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.98), 0 8px 20px rgba(48,68,64,.075), 0 0 0 1px rgba(31,139,146,.06) !important;
}
html[data-theme='light'] #westo-entrance .eg-step-icon.is-active,
html[data-theme='light'] #westo-entrance .eg-step-icon.is-done {
  color: var(--westo-light-teal-deep) !important;
  background: linear-gradient(145deg, rgba(255,255,255,.80), rgba(224,248,247,.48)) !important;
  border-color: rgba(72,205,214,.26) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,1), 0 9px 22px rgba(45,85,83,.09), 0 0 0 1px rgba(28,191,201,.065) !important;
}
html[data-theme='light'] #westo-entrance .eg-steps-row::before {
  background: linear-gradient(90deg, transparent, rgba(28,201,212,.16) 15%, rgba(46,132,136,.12) 85%, transparent) !important;
}
html[data-theme='light'] #westo-entrance .eg-progress__track {
  background: rgba(39,65,63,.08) !important;
  border-color: rgba(255,255,255,.70) !important;
  box-shadow: inset 0 1px 2px rgba(39,65,63,.055) !important;
}
html[data-theme='light'] #westo-entrance .eg-progress__fill {
  background: linear-gradient(90deg, #138d97, #42d6de) !important;
  box-shadow: 0 0 16px rgba(28,201,212,.18) !important;
}
html[data-theme='light'] #westo-entrance .eg-progress__pct { color: #20b6c0 !important; }

/* Shared Liquid Glass material for all entrance chrome. */
html[data-theme='light'] #westo-entrance .eg-dock,
html[data-theme='light'] #westo-entrance .eg-corner,
html[data-theme='light'] #westo-entrance .eg-top > .eg-glass-btn:first-child,
html[data-theme='light'] #westo-entrance #eg-site-menu.westo-menu-trigger {
  color: var(--westo-light-ink) !important;
  background:
    linear-gradient(145deg, rgba(255,255,255,.70), rgba(240,247,244,.35) 58%, rgba(224,235,231,.31)) !important;
  border-color: rgba(255,255,255,.80) !important;
  -webkit-backdrop-filter: blur(24px) saturate(1.42) brightness(1.035) !important;
  backdrop-filter: blur(24px) saturate(1.42) brightness(1.035) !important;
  box-shadow: var(--westo-light-control-shadow) !important;
}
html[data-theme='light'] #westo-entrance .eg-glass-btn::before {
  background: linear-gradient(135deg, rgba(255,255,255,.98), rgba(62,203,211,.20) 44%, rgba(255,255,255,.48) 100%) !important;
}
html[data-theme='light'] #westo-entrance .eg-dock::before,
html[data-theme='light'] #westo-entrance .eg-corner::before {
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: inherit;
  pointer-events: none;
  background: linear-gradient(155deg, rgba(255,255,255,.30), transparent 46%);
  opacity: .72;
}
html[data-theme='light'] #westo-entrance .eg-dock,
html[data-theme='light'] #westo-entrance .eg-corner { position: relative; overflow: hidden; }
html[data-theme='light'] #westo-entrance .eg-dock > *,
html[data-theme='light'] #westo-entrance .eg-corner > * { position: relative; z-index: 1; }

html[data-theme='light'] #westo-entrance .eg-glass-btn:hover,
html[data-theme='light'] #westo-entrance .eg-glass-btn:focus-visible,
html[data-theme='light'] #westo-entrance .eg-dock__btn:hover,
html[data-theme='light'] #westo-entrance .eg-dock__btn:focus-visible,
html[data-theme='light'] #westo-entrance .eg-corner:hover,
html[data-theme='light'] #westo-entrance .eg-corner:focus-visible {
  color: #116e75 !important;
  background: linear-gradient(145deg, rgba(255,255,255,.84), rgba(229,249,247,.46)) !important;
  border-color: rgba(74,208,216,.26) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,1), 0 13px 34px rgba(45,70,67,.13), 0 0 22px rgba(28,201,212,.075) !important;
}

/* Segmented language control: readable inactive choices, quiet active capsule. */
html[data-theme='light'] #westo-entrance .eg-lang-seg {
  position: relative;
  color: rgba(23,32,31,.48) !important;
  padding: .23rem .38rem !important;
  border-radius: 999px !important;
  transition: color .18s ease, background .18s ease, box-shadow .18s ease !important;
}
html[data-theme='light'] #westo-entrance .eg-lang-seg.is-active {
  color: #159ba5 !important;
  background: rgba(255,255,255,.46) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 3px 10px rgba(48,72,68,.06) !important;
  font-weight: 800 !important;
}
html[data-theme='light'] #westo-entrance .eg-lang-seg:hover { color: #11777f !important; }
html[data-theme='light'] #westo-entrance .eg-lang-sep { color: rgba(23,32,31,.18) !important; }

/* Primary action: unmistakably primary, but still glass. */
html[data-theme='light'] #westo-entrance .eg-cta,
html[data-theme='light'] #westo-entrance .eg-cta:hover,
html[data-theme='light'] #westo-entrance .eg-cta:focus-visible {
  color: #f8ffff !important;
  border: 1px solid rgba(116,228,233,.44) !important;
  background:
    linear-gradient(105deg, rgba(22,139,148,.88) 0%, rgba(14,114,124,.94) 58%, rgba(19,124,133,.90) 100%) !important;
  -webkit-backdrop-filter: blur(18px) saturate(1.30) !important;
  backdrop-filter: blur(18px) saturate(1.30) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.34),
    inset 0 -1px 0 rgba(3,62,68,.20),
    0 16px 38px rgba(20,91,96,.19),
    0 0 0 1px rgba(38,174,183,.07) !important;
}
html[data-theme='light'] #westo-entrance .eg-cta::after {
  height: 48% !important;
  background: linear-gradient(180deg, rgba(255,255,255,.22), transparent) !important;
}
html[data-theme='light'] #westo-entrance .eg-cta:not(:disabled):hover,
html[data-theme='light'] #westo-entrance .eg-cta:not(:disabled):focus-visible {
  transform: translateY(-1px) scale(1.002) !important;
  background: linear-gradient(105deg, rgba(27,157,166,.92), rgba(14,123,132,.96)) !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    0 18px 44px rgba(17,94,100,.22),
    0 0 28px rgba(28,201,212,.10) !important;
}
html[data-theme='light'] #westo-entrance .eg-cta:disabled,
html[data-theme='light'] #westo-entrance .eg-cta.is-busy {
  color: rgba(248,255,255,.82) !important;
  opacity: .68 !important;
  background: linear-gradient(105deg, rgba(35,131,139,.68), rgba(25,105,113,.72)) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.20), 0 10px 28px rgba(32,83,86,.12) !important;
}

/* Economy keeps the same hierarchy without expensive live blur. */
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-card,
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-dock,
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-corner,
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-glass-btn,
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-status,
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-step-icon {
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
}
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-card { background: rgba(249,251,248,.96) !important; }
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-dock,
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-corner,
html[data-theme='light'][data-perf-tier='economy'] #westo-entrance .eg-glass-btn { background: rgba(247,250,247,.94) !important; }

@media (max-width: 767px) {
  html[data-theme='light'] #westo-entrance .eg-ambient::before {
    background-size: 300px auto;
    background-position: -92px -46px;
    opacity: .038;
    transform: rotate(-2deg) scale(1.06);
  }
  html[data-theme='light'] #westo-entrance .eg-card {
    -webkit-backdrop-filter: blur(22px) saturate(1.28) !important;
    backdrop-filter: blur(22px) saturate(1.28) !important;
  }
  html[data-theme='light'] #westo-entrance .eg-dock,
  html[data-theme='light'] #westo-entrance .eg-corner,
  html[data-theme='light'] #westo-entrance .eg-glass-btn {
    -webkit-backdrop-filter: blur(18px) saturate(1.32) !important;
    backdrop-filter: blur(18px) saturate(1.32) !important;
  }
}

@media (prefers-contrast: more) {
  html[data-theme='light'] #westo-entrance {
    --westo-light-muted: rgba(20,27,26,.76);
    --westo-light-faint: rgba(20,27,26,.62);
  }
  html[data-theme='light'] #westo-entrance .eg-card,
  html[data-theme='light'] #westo-entrance .eg-dock,
  html[data-theme='light'] #westo-entrance .eg-corner,
  html[data-theme='light'] #westo-entrance .eg-glass-btn { border-color: rgba(54,76,72,.20) !important; }
}

/* ========================================================================
   WESTO v13.7 — CATEGORY HEADER LITE
   Goal: preserve the approved category-strip appearance while making the
   component effectively idle when the user is not touching/changing it.
   ======================================================================== */

/* One static glass surface; no background readback blur. The strip already sits
   over dark/light menu chrome, so a higher-opacity gradient preserves the same
   perceived material without forcing full-width backdrop recomposition. */
#westo-dish-catbar.westo-dish-catbar {
  left: 0 !important;
  right: 0 !important;
  margin-inline: auto !important;
  transform: none !important;
  background: linear-gradient(180deg, rgba(8,14,16,.955), rgba(7,13,15,.91)) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: 0 10px 28px rgba(0,0,0,.12), inset 0 1px 0 rgba(255,255,255,.05) !important;
  contain: layout style !important;
  isolation: isolate;
  will-change: auto !important;
  animation: none !important;
  transition: none !important;
}

html[data-theme='light'] #westo-dish-catbar.westo-dish-catbar {
  background: linear-gradient(180deg, rgba(250,250,247,.965), rgba(244,246,242,.925)) !important;
  border-color: rgba(31,61,58,.10) !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  box-shadow: 0 9px 24px rgba(45,60,56,.075), inset 0 1px 0 rgba(255,255,255,.98) !important;
}

/* The moving full-bar active marker required two independent JS geometry
   observers in previous builds. Active state now belongs to its chip. */
#westo-dish-catbar::before {
  display: none !important;
  content: none !important;
}

#westo-dish-catbar .westo-dish-catbar__track {
  scroll-behavior: auto;
  scroll-snap-type: none !important;
  overscroll-behavior-x: contain !important;
  -webkit-overflow-scrolling: touch;
  contain: layout style !important;
  will-change: auto !important;
}

#westo-dish-catbar .westo-dish-catbar__chip {
  animation: none !important;
  transform: none !important;
  filter: none !important;
  opacity: 1 !important;
  will-change: auto !important;
  contain: layout paint style;
  content-visibility: auto;
  contain-intrinsic-size: 96px 58px;
  transition:
    color .16s ease,
    background-color .16s ease,
    border-color .16s ease !important;
}

#westo-dish-catbar .westo-dish-catbar__chip.is-near,
#westo-dish-catbar .westo-dish-catbar__chip.is-far {
  transform: none !important;
  opacity: 1 !important;
}

#westo-dish-catbar .westo-dish-catbar__icon,
#westo-dish-catbar .westo-dish-catbar__chip.is-active .westo-dish-catbar__icon,
#westo-dish-catbar .westo-dish-catbar__chip:hover .westo-dish-catbar__icon,
#westo-dish-catbar .westo-dish-catbar__chip:active .westo-dish-catbar__icon {
  animation: none !important;
  filter: none !important;
  box-shadow: none !important;
  will-change: auto !important;
  transition: transform .16s cubic-bezier(.22,.8,.24,1) !important;
}

@media (hover:hover) and (pointer:fine) {
  #westo-dish-catbar .westo-dish-catbar__chip:hover .westo-dish-catbar__icon {
    transform: scale(1.035) !important;
  }
}
#westo-dish-catbar .westo-dish-catbar__chip:active .westo-dish-catbar__icon {
  transform: scale(.98) !important;
}
#westo-dish-catbar .westo-dish-catbar__chip.is-active .westo-dish-catbar__icon {
  transform: scale(1.045) !important;
}

#westo-dish-catbar .westo-dish-catbar__thumb {
  filter: none !important;
  box-shadow: none !important;
  image-rendering: auto;
}

#westo-dish-catbar .westo-dish-catbar__label,
#westo-dish-catbar .westo-dish-catbar__chip.is-active .westo-dish-catbar__label {
  text-shadow: none !important;
  transition: color .16s ease, opacity .16s ease !important;
}

/* Local active underline: one small static glow, no keyframe, no filter. */
#westo-dish-catbar .westo-dish-catbar__chip.is-active::after {
  content: '' !important;
  display: block !important;
  left: 50% !important;
  right: auto !important;
  inset-inline: auto !important;
  bottom: 2px !important;
  width: 2rem !important;
  height: 2px !important;
  opacity: .92 !important;
  transform: translateX(-50%) !important;
  animation: none !important;
  filter: none !important;
  background: var(--cat-accent,var(--prod-cyan)) !important;
  box-shadow: 0 0 7px color-mix(in srgb,var(--cat-accent,var(--prod-cyan)) 42%,transparent) !important;
}

/* Mobile/tablet is the thermal priority: no blur, no large shadows, no hover
   effects. Native overflow is the only per-frame work while scrubbing. */
@media (max-width: 991px), (pointer: coarse) {
  #westo-dish-catbar.westo-dish-catbar {
    background: rgba(6,14,16,.965) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 5px 14px rgba(0,0,0,.08) !important;
  }
  html[data-theme='light'] #westo-dish-catbar.westo-dish-catbar {
    background: rgba(248,248,244,.97) !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.98), 0 4px 12px rgba(45,60,56,.055) !important;
  }
  #westo-dish-catbar .westo-dish-catbar__chip,
  #westo-dish-catbar .westo-dish-catbar__icon {
    transition: none !important;
  }
}

/* ========================================================================
   WESTO v13.9 — CATEGORY INDEX DOCK LITE
   The lower category selector is also a full-width translucent surface. On
   touch devices it should not pay for backdrop readback while the WebGL plate
   moves behind it. Keep the approved shape, active state and color language,
   but let native scrolling/compositing do the work.
   ======================================================================== */
@media (max-width:991px), (pointer:coarse) {
  html:not(.is-dish-boards) .westo-prod-hero-cats {
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    background:rgba(6,14,16,.96) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 6px 18px rgba(0,0,0,.09) !important;
    overscroll-behavior-x:contain !important;
    -webkit-overflow-scrolling:touch;
    will-change:auto !important;
  }
  html[data-theme='light']:not(.is-dish-boards) .westo-prod-hero-cats {
    background:rgba(248,248,244,.97) !important;
    border-color:rgba(31,61,58,.10) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.98),0 5px 15px rgba(45,60,56,.06) !important;
  }
  html:not(.is-dish-boards) .westo-prod-hero-cat,
  html:not(.is-dish-boards) .westo-prod-hero-cat img {
    transition:none !important;
    filter:none !important;
    will-change:auto !important;
  }
}

/* ========================================================================
   WESTO v14.0 — HEADER / DISH CATEGORY STRIP RECOVERY
   Fixes the v13.9 mobile regression where the dish-category strip started
   only 4px below a 72px navbar and visually merged with the header. The
   navbar remains a true three-column composition; the strip owns a separate
   vertical band with explicit breathing space.
   ======================================================================== */
:root {
  --westo-header-cat-gap: 18px;
  --westo-header-cat-after-gap: 12px;
}

/* True optical center: equal flexible side columns regardless of the amount
   of chrome inside the left/right clusters. */
.navbar_container {
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
  column-gap: clamp(8px,1.2vw,14px) !important;
}
.navbar_sound-wrapper,
.navbar_menu-wrapper {
  min-width: 0 !important;
  max-width: 100% !important;
  width: auto !important;
  align-items: center !important;
}
.navbar_sound-wrapper { gap: 8px !important; }
.navbar_menu-wrapper { gap: 8px !important; justify-content: flex-end !important; }
.navbar_logo-link { position: relative !important; z-index: 1 !important; }

/* Dish mode: category navigation is a second row, never part of the navbar. */
html.is-dish-boards #westo-dish-catbar.westo-dish-catbar {
  top: calc(var(--v12-nav-h) + var(--westo-header-cat-gap)) !important;
}
html.is-dish-boards {
  --dish-chrome-top: calc(
    var(--v12-nav-h) +
    var(--westo-header-cat-gap) +
    72px +
    var(--westo-header-cat-after-gap)
  );
}

@media (max-width: 991px) {
  :root {
    --westo-header-cat-gap: 16px;
    --westo-header-cat-after-gap: 10px;
  }

  .navbar_content {
    padding-inline: 12px !important;
  }
  .navbar_container {
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
    column-gap: 8px !important;
  }
  .navbar_sound-wrapper,
  .navbar_menu-wrapper { gap: 6px !important; }

  /* Back remains available in dish mode but no longer grows the left cluster. */
  .westo-back-categories:not([hidden]) {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    height: 48px !important;
    min-height: 48px !important;
    padding: 0 !important;
    display: inline-grid !important;
    place-items: center !important;
  }
  .westo-back-categories__label { display: none !important; }

  .navbar_table {
    width: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    padding-inline: 0 !important;
    justify-content: center !important;
  }

  html.is-dish-boards #westo-dish-catbar.westo-dish-catbar {
    top: calc(var(--v12-nav-h) + var(--westo-header-cat-gap)) !important;
  }
  html.is-dish-boards {
    --dish-chrome-top: calc(
      var(--v12-nav-h) +
      var(--westo-header-cat-gap) +
      68px +
      var(--westo-header-cat-after-gap)
    );
  }
}

@media (max-width: 600px) {
  .navbar_logo-link {
    width: clamp(112px,31vw,128px) !important;
  }
  .navbar_menu-button {
    min-width: 80px !important;
    padding-inline: 12px !important;
  }
  #nav-auth-btn {
    min-width: 48px !important;
    padding-inline: 10px !important;
  }
}

@media (max-width: 430px) {
  :root {
    --westo-header-cat-gap: 14px;
    --westo-header-cat-after-gap: 9px;
  }
  .navbar_content { padding-inline: 8px !important; }
  .navbar_container { column-gap: 6px !important; }
  .navbar_sound-wrapper,
  .navbar_menu-wrapper { gap: 5px !important; }
  .westo-back-categories:not([hidden]),
  .navbar_table {
    width: 46px !important;
    min-width: 46px !important;
    max-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
  }
  .navbar_menu-button {
    min-width: 74px !important;
    padding-inline: 10px !important;
  }
  #nav-auth-btn {
    min-width: 46px !important;
    height: 46px !important;
    min-height: 46px !important;
    padding-inline: 8px !important;
  }
  html.is-dish-boards {
    --dish-chrome-top: calc(
      var(--v12-nav-h) +
      var(--westo-header-cat-gap) +
      64px +
      var(--westo-header-cat-after-gap)
    );
  }
}

/* Short landscape is space-constrained, but still keeps a visible boundary
   between global navbar and category navigation. */
@media (orientation: landscape) and (max-height: 620px) {
  :root {
    /* Keep the category rail clearly below the compact landscape header.
       A smaller gap caused both controls to visually merge on short phones. */
    --westo-header-cat-gap: 14px;
    --westo-header-cat-after-gap: 8px;
  }
  html.is-dish-boards #westo-dish-catbar.westo-dish-catbar {
    top: calc(var(--v12-nav-h) + var(--westo-header-cat-gap)) !important;
  }
  html.is-dish-boards {
    --dish-chrome-top: calc(
      var(--v12-nav-h) +
      var(--westo-header-cat-gap) +
      58px +
      var(--westo-header-cat-after-gap)
    );
  }
}
