/* Site Editor base styles.
   Layout and default look for every section in _base/sections.html. Themes load after this
   file and restyle through the same classes (and their own tokens), scoped .ws-theme-{key}.
   Everything is scoped under .ws-site so a page built with the editor can sit inside any
   master page without the master's CSS and this file fighting over plain elements.
   Colours only come from the tokens set on .ws-site (engine.js tokenCss / SiteThemeTokens.cs).
   Sizes are px, never rem: the site bundle's main.css sets html{font-size:10px}, which would
   shrink every rem-sized thing to 62% on the live site (the editor canvas has no such rule). */

.ws-site{
  --primary:#4d0404;--secondary:#7a9a4e;--bg:#fff;--tint:#f7f7f3;--fg:#1e1c1a;--muted:#64605b;--line:#e8e5df;
  --on-primary:#fff;--on-secondary:#fff;--primary-text:#4d0404;--secondary-text:#4c6430;--primary-deep:#360303;
  --secondary-on-primary:#a5bd85;--primary-on-secondary:#4d0404;
  --primary-soft:color-mix(in srgb,var(--primary) 7%,var(--bg));
  --secondary-soft:color-mix(in srgb,var(--secondary) 16%,var(--bg));
  --page-bg:var(--bg);--page-fg:var(--fg);--page-muted:var(--muted);--page-line:var(--line);--page-tint:var(--tint);
  --page-primary-text:var(--primary-text);--page-secondary-text:var(--secondary-text);--page-secondary-soft:var(--secondary-soft);
  --display:system-ui,sans-serif;--body:system-ui,sans-serif;
  --radius:16px;--btn-radius:999px;--shadow:0 24px 50px -32px rgba(20,14,10,.45);
  --gut:max(16px,env(safe-area-inset-left,0px));--wrap:1180px;--pad:clamp(64px,9vw,110px);
  --head-weight:700;--head-track:-.025em;--head-case:none;
  background:var(--bg);color:var(--fg);font-family:var(--body);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:clip
}
.ws-site *,.ws-site *::before,.ws-site *::after{box-sizing:border-box}
/* Wrapper around a sticky header (Site Editor master page, editor canvas): no box of its own, so the header sticks to the page. */
.ws-site.ws-site--contents{display:contents}
.ws-site img{max-width:100%}
.ws-site h1,.ws-site h2,.ws-site h3{font-family:var(--display);font-weight:var(--head-weight);letter-spacing:var(--head-track);text-transform:var(--head-case);line-height:1.08;text-wrap:balance;margin:0;color:inherit}
.ws-site p{margin:0}
.ws-site a{color:inherit;text-transform:inherit}
.ws-site ul{margin:0}
/* Host page guard. Master pages load the site bundle (Bootstrap, assets/css/main.css,
   Content/styles/style.css), whose bare element rules would otherwise reach into sections:
   p{color;font-size:13px;text-align:center;margin-bottom}, a{color:white}, a:hover{color}, nav a{text-transform},
   transition:all .3s on most elements, select{... !important}, input[type=tel|email|date|text]{height:55px} and
   i{margin-top:-5px;margin-left:-14px;font-size:1.2em;cursor:pointer} (pulled the live wait minutes over "Collection"/"Delivery",
   and shifted every dot, badge and step number drawn with <i>). These put the elements back to inheriting from the section;
   section rules (two classes or more) still win. */
.ws-site :is(p,li,dt,dd,label,blockquote,figcaption){font-size:inherit;line-height:inherit;color:inherit;text-align:inherit;font-weight:inherit;margin:0}
.ws-site i{margin:0;font-size:inherit;cursor:inherit}
.ws-site a:where(:hover,:focus){color:inherit}
.ws-site :where(a,button,span,p,input,select,textarea,li,img,h1,h2,h3){transition:none}
.ws-site :is(.ws-field,.ws-bar__cell,.ws-blank) :is(input,textarea){height:auto}
.ws-site .ws-field select{font-size:var(--ws-field-size,15.36px)!important;background-color:var(--ws-field-bg,var(--bg))!important;color:var(--fg)!important;text-align:left!important;padding:var(--ws-field-pad,12px 13px)!important}
.ws-site :focus-visible{outline:2px solid var(--secondary);outline-offset:3px}
.ws-site [hidden]{display:none!important}
.ws-site section[id],.ws-site header[id]{scroll-margin-top:90px}

/* ---------- Shared pieces ---------- */
.ws-site .ws-wrap{max-width:var(--wrap);margin:0 auto;padding-left:var(--gut);padding-right:var(--gut)}
.ws-site .ws-sec{position:relative}
.ws-site section.ws-sec,.ws-site .ws-sec.ws-pad{padding-block:var(--pad)}
/* Spacing presets. --sp-k scales the padding of sections that set their own (photo bands, scrolling strip) */
.ws-site .ws-space--tight{--pad:clamp(14px,2.4vw,28px);--sp-k:.28}
.ws-site .ws-space--compact{--pad:clamp(40px,6vw,64px);--sp-k:.6}
.ws-site .ws-space--roomy{--pad:clamp(88px,12vw,150px);--sp-k:1.3}
.ws-site .ws-space--none{--pad:0px;--sp-k:0}
/* Custom spacing: exact padding and margin in px (--sp-* on the section's own tag), whatever the section sets itself */
.ws-site .ws-sec.ws-space--custom{padding-top:var(--sp-t)!important;padding-bottom:var(--sp-b)!important;margin-top:var(--sp-mt);margin-bottom:var(--sp-mb)}
/* Size: everything in the section (text, buttons, cards) smaller or larger; backgrounds stay full size */
.ws-site .ws-sec.ws-sized>:not(.ws-band__bg){zoom:var(--sp-z)}
.ws-site .ws-eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--secondary-text)}
.ws-site .ws-eyebrow--mark::before{content:"";width:18px;height:2px;border-radius:2px;background:currentColor;flex:none}
.ws-site .ws-head{display:grid;gap:12px;margin-bottom:40px;max-width:660px}
.ws-site .ws-head h2{font-size:clamp(30.4px,3.6vw,44.8px)}
.ws-site .ws-head p{color:var(--muted);max-width:60ch}
.ws-site .ws-head--center{margin-inline:auto;text-align:center;justify-items:center}
.ws-site .ws-divider{display:none}
.ws-site .ws-btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;border:0;border-radius:var(--btn-radius);padding:.9em 1.5em;font:700 15.2px/1 var(--body);letter-spacing:.01em;cursor:pointer;text-decoration:none;background:var(--primary);color:var(--on-primary);transition:transform .2s,background-color .2s,box-shadow .2s,color .2s;white-space:nowrap}
.ws-site .ws-btn:hover{transform:translateY(-2px);box-shadow:0 10px 22px -10px color-mix(in srgb,var(--fg) 60%,transparent)}
.ws-site .ws-btn--accent{background:var(--secondary);color:var(--on-secondary)}
.ws-site .ws-btn--ghost{background:transparent;color:inherit;box-shadow:inset 0 0 0 1.5px currentColor}
.ws-site .ws-btn--ghost:hover{background:color-mix(in srgb,currentColor 10%,transparent);box-shadow:inset 0 0 0 1.5px currentColor}
.ws-site .ws-btn--sm{padding:.7em 1.15em;font-size:13.76px}
.ws-site .ws-link{font-weight:700;color:var(--primary-text);text-decoration:none;width:fit-content;display:inline-flex;gap:.3em}
.ws-site .ws-link:hover{text-decoration:underline;text-underline-offset:3px}
.ws-site .ws-img{position:relative;overflow:hidden;background:var(--tint);isolation:isolate;display:block}
.ws-site .ws-img>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.ws-site .ws-img:hover>img{transform:scale(1.05)}
.ws-site .ws-ph{position:absolute;inset:0;display:block;background:
  radial-gradient(circle at 30% 30%,color-mix(in srgb,var(--secondary) 28%,transparent),transparent 55%),
  radial-gradient(circle at 75% 70%,color-mix(in srgb,var(--primary) 22%,transparent),transparent 60%),
  linear-gradient(135deg,var(--tint),color-mix(in srgb,var(--primary) 10%,var(--tint)))}
.ws-site .ws-ph::after{content:"";position:absolute;inset:0;background-image:radial-gradient(color-mix(in srgb,var(--fg) 9%,transparent) 1px,transparent 1.5px);background-size:16px 16px}
.ws-site .ws-tag{display:inline-block;font:700 9.92px/1.6 var(--body);letter-spacing:.06em;text-transform:uppercase;padding:1px 7px;border-radius:4px;background:var(--secondary-soft);color:var(--fg);vertical-align:middle}
.ws-site .ws-tag--new{background:var(--secondary);color:var(--on-secondary)}
.ws-site .ws-phone{font-weight:700;text-decoration:none;font-variant-numeric:tabular-nums}
.ws-site a.ws-phone:hover{text-decoration:underline}
.ws-site .ws-note{font-size:13.12px;color:var(--muted);font-style:italic}
.ws-site .ws-muted{color:var(--muted)}
.ws-site .ws-stars{color:var(--secondary-text);letter-spacing:3px}
.ws-site .ws-live{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--secondary);flex:none;animation:ws-pulse 2s infinite}
@keyframes ws-pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--secondary) 60%,transparent)}70%{box-shadow:0 0 0 8px transparent}100%{box-shadow:0 0 0 0 transparent}}
.ws-site .ws-empty{display:none}
.ws-site .ws-prose{display:grid;gap:14px;color:var(--muted);max-width:62ch}
.ws-site .ws-prose p,.ws-site .ws-prose li{color:inherit}
.ws-site .ws-prose strong,.ws-site .ws-prose b{color:var(--fg)}
.ws-site .ws-prose h2{font-size:clamp(24px,2.6vw,32px);color:var(--fg);margin-top:8px}
.ws-site .ws-prose h3{font-size:20px;color:var(--fg);margin-top:6px}
.ws-site .ws-prose ul,.ws-site .ws-prose ol{padding-left:20px;display:grid;gap:6px}
.ws-site .ws-prose a{color:var(--primary-text);text-underline-offset:3px}
.ws-site .ws-prose blockquote{margin:0;padding:6px 0 6px 18px;border-left:3px solid var(--secondary);font-size:17.6px;color:var(--fg)}
.ws-site .ws-prose h4{font-family:var(--display);font-size:17.6px;line-height:1.25;margin:4px 0 0;color:var(--fg)}
.ws-site .ws-prose img{max-width:100%;height:auto;border-radius:calc(var(--radius) * .6);vertical-align:middle}
.ws-site .ws-prose hr{border:0;border-top:1px solid var(--line);margin:6px 0;width:100%}
.ws-site .ws-prose table{width:100%;border-collapse:collapse;font-size:15px}
.ws-site .ws-prose th,.ws-site .ws-prose td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.ws-site .ws-prose th{color:var(--fg);font-weight:700}
.ws-site .ws-prose sup,.ws-site .ws-prose sub{font-size:.75em;line-height:0}
.ws-site .ws-ticks{list-style:none;padding:0;display:grid;gap:9px}
.ws-site .ws-ticks li{display:flex;gap:12px;align-items:baseline}
.ws-site .ws-ticks li::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--secondary);transform:translateY(-1px)}
.ws-site .ws-reveal{transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .9s}
.ws-site.ws-js .ws-reveal.is-pending{transform:translateY(30px);opacity:.001}
/* Motion picked in the editor (runtime initMotion): --an-d duration, --an-w delay, --an-st stagger step, --an-i place in the group */
.ws-site .ws-a{transition:opacity var(--an-d,.9s) cubic-bezier(.2,.7,.2,1),transform var(--an-d,.9s) cubic-bezier(.2,.7,.2,1),filter var(--an-d,.9s) ease,clip-path var(--an-d,.9s) cubic-bezier(.7,0,.2,1);transition-delay:calc(var(--an-w,0ms) + var(--an-i,0) * var(--an-st,90ms))}
.ws-site .ws-a.is-pending{opacity:0}
.ws-site .ws-a--up.is-pending{transform:translateY(44px)}
.ws-site .ws-a--down.is-pending{transform:translateY(-44px)}
.ws-site .ws-a--left.is-pending{transform:translateX(-64px)}
.ws-site .ws-a--right.is-pending{transform:translateX(64px)}
.ws-site .ws-a--zoom.is-pending{transform:scale(.9)}
.ws-site .ws-a--zoomout.is-pending{transform:scale(1.12)}
.ws-site .ws-a--blur.is-pending{filter:blur(14px)}
.ws-site .ws-a--wipe.is-pending{opacity:1;clip-path:inset(100% 0 0 0)}
/* Shorter text for phones: .ws-dual shows on desktop, .ws-m-alt on phones */
@media (max-width:767px){.ws-site .ws-dual{display:none!important}}
@media (min-width:768px){.ws-site .ws-m-alt{display:none!important}}
/* Shown on one screen size only (section or block "Show on"); the editor canvas dims it instead */
@media (max-width:767px){.ws-site:not(.is-editing) [data-dev="desktop"]{display:none!important}}
@media (min-width:768px){.ws-site:not(.is-editing) [data-dev="mobile"]{display:none!important}}
.ws-site .ws-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}

/* ---------- Tones: any section can sit on a coloured background ---------- */
.ws-site .ws-tone--tint{background-color:var(--tint);border-block:1px solid var(--line)}
.ws-site .ws-tone--soft{background-color:var(--secondary-soft)}
.ws-site .ws-tone--primary{
  --bg:var(--primary);--fg:var(--on-primary-sm);
  --muted:var(--primary-muted);
  --line:color-mix(in srgb,var(--on-primary) 20%,var(--primary));
  --tint:var(--primary-tint);
  --primary-text:var(--on-primary);--secondary-text:var(--secondary-on-primary);
  --secondary-soft:var(--primary-tint);
  background-color:var(--primary);color:var(--fg)}
.ws-site .ws-tone--secondary{
  --bg:var(--secondary);--fg:var(--on-secondary-sm);
  --muted:var(--secondary-muted);
  --line:color-mix(in srgb,var(--on-secondary) 30%,var(--secondary));
  --tint:var(--secondary-tint);
  --primary-text:var(--primary-on-secondary);--secondary-text:var(--on-secondary);
  --secondary-soft:var(--secondary-tint);
  background-color:var(--secondary);color:var(--fg)}
.ws-site .ws-tone--dark{
  --bg:var(--page-fg);--fg:var(--page-bg);
  --muted:var(--dark-muted);
  --line:color-mix(in srgb,var(--page-bg) 16%,var(--page-fg));
  --tint:var(--dark-tint);
  --primary-text:var(--page-bg);--secondary-text:var(--dark-accent);
  --secondary-soft:var(--dark-tint);
  background-color:var(--bg);color:var(--fg)}
/* Custom: any colour (--tone-bg on the section's own tag) */
.ws-site .ws-tone--custom{--bg:var(--tone-bg);background-color:var(--tone-bg);color:var(--fg)}
/* Text colour, on any background: dark or light text, with muted text, lines and tints mixed from the section's own --bg */
.ws-site .ws-sec.ws-ink--dark{
  --fg:#16181d;--muted:color-mix(in srgb,#16181d 74%,var(--bg));
  --line:color-mix(in srgb,#16181d 15%,var(--bg));--tint:color-mix(in srgb,#16181d 6%,var(--bg));
  --primary-text:var(--page-primary-text);--secondary-text:var(--page-secondary-text);--secondary-soft:var(--tint);color:var(--fg)}
.ws-site .ws-sec.ws-ink--light{
  --fg:#fff;--muted:color-mix(in srgb,#fff 82%,var(--bg));
  --line:color-mix(in srgb,#fff 22%,var(--bg));--tint:color-mix(in srgb,#fff 10%,var(--bg));
  --primary-text:#fff;--secondary-text:color-mix(in srgb,var(--secondary) 45%,#fff);
  --secondary-soft:var(--tint);color:var(--fg)}
.ws-site :is(.ws-tone--primary,.ws-tone--secondary,.ws-tone--dark,.ws-ink--light) :is(.ws-dish,.ws-review,.ws-proofcard,.ws-form,.ws-strip__grid,.ws-hourssec__card,.ws-feature){
  --bg:var(--page-bg);--fg:var(--page-fg);--muted:var(--page-muted);--line:var(--page-line);--tint:var(--page-tint);
  --primary-text:var(--page-primary-text);--secondary-text:var(--page-secondary-text);--secondary-soft:var(--page-secondary-soft);color:var(--fg)}
.ws-site .ws-tone--primary .ws-btn:not(.ws-btn--ghost):not(.ws-btn--accent){background:var(--secondary);color:var(--on-secondary)}
.ws-site .ws-tone--primary .ws-btn--accent{background:var(--on-primary);color:var(--primary)}
.ws-site .ws-tone--secondary .ws-btn:not(.ws-btn--ghost){background:var(--primary);color:var(--on-primary)}
.ws-site :is(.ws-tone--dark,.ws-ink--light) .ws-btn:not(.ws-btn--ghost):not(.ws-btn--accent){background:var(--secondary);color:var(--on-secondary)}
.ws-site :is(.ws-tone--primary,.ws-tone--secondary,.ws-tone--dark,.ws-ink--light) :is(.ws-dish,.ws-review,.ws-proofcard,.ws-form,.ws-strip__grid,.ws-hourssec__card,.ws-feature) .ws-btn:not(.ws-btn--ghost){background:var(--primary);color:var(--on-primary)}
.ws-site :is(.ws-tone--primary,.ws-tone--secondary,.ws-tone--dark,.ws-ink--light) :focus-visible{outline-color:currentColor}

/* ---------- Info bar ---------- */
.ws-site .ws-topbar{font-size:13.6px;background:var(--bg);color:var(--fg);position:relative;z-index:51}
.ws-site .ws-topbar__row{display:flex;flex-wrap:wrap;gap:6px 24px;align-items:center;justify-content:space-between;padding-block:8px}
.ws-site .ws-topbar__msgs{display:flex;gap:6px 20px;flex-wrap:wrap;align-items:center}
.ws-site .ws-topbar__msgs>span{display:inline-flex;align-items:center;gap:7px}
.ws-site .ws-topbar__msgs>span+span::before{content:"";width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.45;margin-right:6px}
.ws-site .ws-topbar__acct{display:flex;gap:12px;align-items:center}
.ws-site .ws-topbar__acct a{text-decoration:none}
.ws-site .ws-topbar__acct a:hover{text-decoration:underline}
/* wait-times pill: "Wait times | bag 25 min | van 45 min", or the closed message; refreshed live by runtime initWait.
   Only the bar's own text colour is used (outline, divider, icons), so it reads on every tone. */
.ws-site .ws-topbar__wait{gap:0;border:1px solid color-mix(in srgb,currentColor 30%,transparent);border-radius:999px;padding:2px 12px;line-height:1.35;white-space:nowrap}
.ws-site .ws-topbar__wait [hidden]{display:none}
.ws-site .ws-topbar__waitlbl{font-weight:700;font-size:.86em;letter-spacing:.04em;text-transform:uppercase;padding-right:10px;margin-right:10px;border-right:1px solid color-mix(in srgb,currentColor 30%,transparent)}
.ws-site .ws-topbar__waitv,.ws-site .ws-topbar__waitoff{display:inline-flex;align-items:center;gap:5px}
.ws-site .ws-topbar__waitv+.ws-topbar__waitv{margin-left:14px}
.ws-site .ws-topbar__waitv svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.ws-site .ws-topbar__waitv b{font-weight:700}
.ws-site .ws-topbar__waitv i,.ws-site .ws-topbar__waitoff em{font-style:normal}
.ws-site .ws-topbar__waitk{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ws-site .ws-topbar__waitoff::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:#d93025;box-shadow:0 0 0 2px color-mix(in srgb,currentColor 25%,transparent)}
.ws-site .ws-topbar__waitoff small{font-size:inherit}
.ws-site .ws-topbar__waitoff small::before{content:"·";margin-right:5px}
/* the words beside the icons when there is room */
@media (min-width:900px){.ws-site .ws-topbar__waitk{position:static;width:auto;height:auto;overflow:visible;clip:auto}}
/* a long closed message wraps inside the pill on phones instead of running off the screen */
@media (max-width:640px){.ws-site .ws-topbar__wait{white-space:normal;max-width:100%;flex-wrap:wrap;justify-content:center;row-gap:2px;border-radius:16px;padding:3px 12px}.ws-site .ws-topbar__waitlbl{white-space:nowrap}.ws-site .ws-topbar__waitoff{flex-wrap:wrap;justify-content:center;column-gap:5px}.ws-site .ws-topbar__waitoff small{white-space:nowrap}.ws-site .ws-topbar__wait:has(.ws-topbar__waitoff:not([hidden])) .ws-topbar__waitlbl{border-right:0;margin-right:0;padding-right:0;width:100%;text-align:center}}
@media (max-width:640px){.ws-site .ws-topbar__msgs>span:not(:first-child){display:none}.ws-site .ws-topbar__row{justify-content:center;text-align:center}}

/* ---------- Header / navigation ---------- */
.ws-site .ws-header{z-index:50;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .3s,box-shadow .3s}
.ws-site .ws-header.is-sticky{position:sticky;top:0}
.ws-site .ws-header.is-scrolled{border-color:var(--line);box-shadow:0 6px 20px -16px rgba(0,0,0,.35)}
.ws-site .ws-header__bar{display:flex;align-items:center;gap:20px;padding-block:14px;position:relative}
.ws-site .ws-logo{display:flex;align-items:center;gap:12px;text-decoration:none;min-width:0;flex:none}
.ws-site .ws-logo__img{height:52px;width:auto;max-width:220px;object-fit:contain;transition:height .3s}
.ws-site .ws-header.is-scrolled .ws-logo__img{height:42px}
.ws-site .ws-logo__text{display:grid;line-height:1}
.ws-site .ws-logo__text b{font-family:var(--display);font-weight:800;letter-spacing:-.02em;font-size:22.4px;color:var(--primary-text)}
.ws-site .ws-logo__text small{font:600 10.24px/1.8 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ws-site .ws-header__nav{margin-left:auto}
.ws-site .ws-header__links{display:flex;gap:2px;list-style:none;padding:0}
.ws-site .ws-header__links a{display:block;padding:8px 10px;text-decoration:none;font-weight:600;font-size:14.72px;position:relative;white-space:nowrap}
.ws-site .ws-header__links a::after{content:"";position:absolute;left:10px;right:10px;bottom:3px;height:2px;border-radius:2px;background:var(--secondary);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.ws-site .ws-header__links a:hover::after,.ws-site .ws-header__links a.is-active::after{transform:scaleX(1)}
.ws-site .ws-header__actions{display:flex;align-items:center;gap:10px}
.ws-site .ws-header__toggle{display:none;background:none;border:1px solid var(--line);border-radius:10px;width:42px;height:42px;cursor:pointer;color:inherit;padding:0}
.ws-site .ws-header__toggle span{display:block;width:18px;height:2px;background:currentColor;margin:4px auto;transition:transform .3s,opacity .3s}
.ws-site .ws-header--centered .ws-header__bar{display:grid;grid-template-columns:1fr auto 1fr;grid-template-areas:"pad logo actions" "nav nav nav";row-gap:6px}
.ws-site .ws-header--centered .ws-logo{grid-area:logo;justify-self:center}
.ws-site .ws-header--centered .ws-header__nav{grid-area:nav;margin:0;justify-self:center}
.ws-site .ws-header--centered .ws-header__actions{grid-area:actions;justify-self:end}
.ws-site .ws-header--split{background:var(--primary);color:var(--on-primary);--bg:var(--primary);--tint:var(--primary-tint);--fg:var(--on-primary);--line:color-mix(in srgb,var(--on-primary) 22%,var(--primary));--primary-text:var(--on-primary);--secondary-text:var(--secondary-on-primary);--secondary-soft:var(--primary-tint);--muted:var(--primary-muted);backdrop-filter:none}
/* a coloured header is solid: the see-through bar would let the page lighten (or darken) its text */
.ws-site .ws-header:is(.ws-tone--primary,.ws-tone--secondary,.ws-tone--dark,.ws-ink--light){background-color:var(--bg)}
.ws-site .ws-header--split .ws-btn{background:var(--secondary);color:var(--on-secondary)}
.ws-site .ws-header--split .ws-header__links a{text-transform:uppercase;letter-spacing:.08em;font-size:12.8px;font-weight:700}
@media (max-width:1080px){
  .ws-site .ws-header__toggle{display:block}
  .ws-site .ws-header__nav{position:absolute;left:0;right:0;top:100%;margin:0;background:var(--bg);border-bottom:1px solid var(--line);padding:8px var(--gut) 16px;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .35s ease,visibility 0s .35s;box-shadow:0 20px 30px -24px rgba(0,0,0,.35)}
  .ws-site .ws-header__links{flex-direction:column}
  .ws-site .ws-header__links a{padding:12px 4px;font-size:16px;border-bottom:1px solid var(--line)}
  .ws-site .ws-header__links a::after{display:none}
  .ws-site .ws-header.is-open .ws-header__nav{clip-path:inset(0 -20px -40px -20px);visibility:visible;transition:clip-path .35s ease}
  .ws-site .ws-header.is-open .ws-header__toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .ws-site .ws-header.is-open .ws-header__toggle span:nth-child(2){opacity:0}
  .ws-site .ws-header.is-open .ws-header__toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  .ws-site .ws-header--centered .ws-header__bar{grid-template-areas:"logo pad actions";grid-template-columns:auto 1fr auto}
  .ws-site .ws-header--centered .ws-logo{justify-self:start}
  .ws-site .ws-header__actions{margin-left:auto}
}
@media (max-width:520px){.ws-site .ws-header__actions .ws-btn{display:none}.ws-site .ws-logo__img{height:42px}}

/* ---------- Navigation over the hero photo (header "Over the hero photo") ----------
   runtime.js adds .is-over only when the page starts with a photo, and sets --ws-hdr-h. */
.ws-site .ws-header.is-over{margin-bottom:calc(-1 * var(--ws-hdr-h,84px));transition:background-color .35s,box-shadow .35s,border-color .35s}
.ws-site .ws-header.is-over:not(.is-scrolled):not(.is-open){background:linear-gradient(180deg,rgba(0,0,0,.5),rgba(0,0,0,0));border-color:transparent;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff;--fg:#fff;--muted:rgba(255,255,255,.82);--line:rgba(255,255,255,.3);--primary-text:#fff}
.ws-site .ws-header.is-over:not(.is-scrolled):not(.is-open) .ws-header__links a{color:#fff}
.ws-site .ws-header.is-over:not(.is-scrolled):not(.is-open) .ws-logo__text b{color:#fff}
.ws-site .ws-header.is-over.is-white-logo:not(.is-scrolled):not(.is-open) .ws-logo__img{filter:brightness(0) invert(1)}
/* runtime initLogoInk: a logo that would blend into the solid strip is shown white (dark strip) or black (light strip) */
.ws-site .ws-header.is-logo-white:is(.is-scrolled,.is-open,:not(.is-over)) .ws-logo__img{filter:brightness(0) invert(1)}
.ws-site .ws-header.is-logo-black:is(.is-scrolled,.is-open,:not(.is-over)) .ws-logo__img{filter:brightness(0)}
.ws-site .ws-header.is-over:not(.is-scrolled):not(.is-open) .ws-header__toggle{border-color:rgba(255,255,255,.45);color:#fff}
.ws-site .ws-header.is-over.is-scrolled .ws-header__bar{padding-block:8px}
.ws-site .ws-hero{--over:var(--ws-over-h,0px)}
.ws-site .ws-hero .ws-slide__copy{padding-top:calc(24px + var(--over))}
/* Full-screen hero: the rest of the first screen below whatever sits above it (top bar, and the header unless it
   runs over the photo). runtime initHeroFit measures that as --ws-hero-top on the hero itself. */
.ws-site .ws-hero{--hero-top:var(--ws-hero-top,var(--ws-top-offset,0px))}
.ws-site .ws-hero--h-full .ws-hero__slides{height:max(560px,calc(100vh - var(--hero-top)));height:max(560px,calc(100svh - var(--hero-top)))}
/* The editor's zoomed-out canvas is taller than a real screen: show a typical laptop height there */
.ws-site.is-editing .ws-hero--h-full .ws-hero__slides{height:max(560px,calc(min(100vh,860px) - var(--hero-top)))}
/* Phones: a lower floor, so small screens (360 x 640) still see the whole hero */
@media (max-width:767px){.ws-site .ws-hero--h-full .ws-hero__slides{height:max(440px,calc(100vh - var(--hero-top)));height:max(440px,calc(100svh - var(--hero-top)))}}

/* ---------- Hero ---------- */
.ws-site .ws-hero{--ov:60%;--ui-bottom:28px;--copy-bottom:84px;position:relative;background:var(--primary-deep);color:#fff;overflow:hidden;padding:0}
.ws-site .ws-hero:has(+ .ws-strip.is-overlap){--ui-bottom:76px;--copy-bottom:132px}
.ws-site .ws-hero__slides{position:relative;height:clamp(560px,56vw,680px)}
.ws-site .ws-hero--h-medium .ws-hero__slides{height:clamp(440px,42vw,540px)}
.ws-site .ws-hero--h-short .ws-hero__slides{height:clamp(340px,30vw,420px)}
.ws-site .ws-slide{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 0s 1.1s}
.ws-site .ws-slide.is-active{opacity:1;visibility:visible;transition:opacity 1.1s ease}
.ws-site .ws-slide__media{position:absolute;inset:0;background:var(--primary-deep)}
.ws-site .ws-slide__media:hover>img{transform:none}
.ws-site .ws-slide__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .8s ease;pointer-events:none}
.ws-site .ws-slide__video.is-ready{opacity:1}
.ws-site .ws-slide.is-active .ws-slide__media>img{animation:ws-kenburns 9s ease-out forwards}
@keyframes ws-kenburns{from{transform:scale(1.12)}to{transform:scale(1)}}
.ws-site .ws-slide::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:
  linear-gradient(90deg,color-mix(in srgb,var(--ov-c,var(--primary-deep)) min(100%,calc(var(--ov) + 25%)),transparent) 0%,color-mix(in srgb,var(--ov-c,var(--primary-deep)) var(--ov),transparent) 46%,color-mix(in srgb,var(--ov-c,var(--primary-deep)) calc(var(--ov) * .1),transparent) 100%),
  linear-gradient(0deg,rgba(0,0,0,.4) 0%,transparent 35%)}
.ws-site .ws-slide__copy{position:absolute;inset:0;z-index:2;display:flex;align-items:center;padding-top:24px;padding-bottom:var(--copy-bottom)}
.ws-site .ws-slide__copy>.ws-wrap{width:100%}
.ws-site .ws-slide__inner{max-width:600px;display:grid;gap:18px;justify-items:start}
.ws-site .ws-hero .ws-eyebrow{color:color-mix(in srgb,var(--secondary) 45%,#fff)}
.ws-site .ws-slide .ws-slide__title{font-size:clamp(33.6px,4.8vw,60.8px)!important;font-weight:800}
.ws-site .ws-slide .ws-slide__title em{font-style:normal;color:color-mix(in srgb,var(--secondary) 45%,#fff)}
.ws-site .ws-slide p{font-size:17.28px;max-width:46ch;color:rgba(255,255,255,.88)}
.ws-site .ws-slide__ctas{display:flex;gap:12px;flex-wrap:wrap}
.ws-site .ws-slide.is-active .ws-slide__inner>*{animation:ws-rise .9s cubic-bezier(.2,.7,.2,1) both}
.ws-site .ws-slide.is-active .ws-slide__inner>*:nth-child(2){animation-delay:.12s}
.ws-site .ws-slide.is-active .ws-slide__inner>*:nth-child(3){animation-delay:.24s}
.ws-site .ws-slide.is-active .ws-slide__inner>*:nth-child(4){animation-delay:.36s}
@keyframes ws-rise{from{transform:translateY(26px);opacity:0}to{transform:none;opacity:1}}
.ws-site .ws-hero__ui{position:absolute;z-index:4;left:0;right:0;bottom:var(--ui-bottom)}
.ws-site .ws-hero__ui-row{display:flex;align-items:center;gap:16px}
.ws-site .ws-hero__dots{display:flex;gap:8px}
.ws-site .ws-hero__dots button{width:44px;height:4px;border:0;border-radius:2px;background:rgba(255,255,255,.35);cursor:pointer;padding:0;position:relative;overflow:hidden}
.ws-site .ws-hero__dots button::before{content:"";position:absolute;inset:-12px 0}
.ws-site .ws-hero__dots i{position:absolute;inset:0;background:var(--secondary);transform:scaleX(0);transform-origin:left}
.ws-site .ws-hero__dots .is-active i{animation:ws-progress var(--ws-interval,6000ms) linear forwards}
.ws-site .ws-hero.is-paused .ws-hero__dots .is-active i{animation:none;transform:scaleX(1)}
.ws-site .ws-hero__dots .is-done i{transform:scaleX(1)}
@keyframes ws-progress{to{transform:scaleX(1)}}
.ws-site .ws-hero__arrows{margin-left:auto;display:flex;gap:8px}
.ws-site .ws-hero__arrows button{width:46px;height:46px;border-radius:50%;border:1px solid rgba(255,255,255,.45);background:rgba(0,0,0,.22);color:#fff;cursor:pointer;font-size:17.6px;transition:background-color .2s,color .2s,border-color .2s}
.ws-site .ws-hero__arrows button:hover{background:var(--secondary);color:var(--on-secondary);border-color:var(--secondary)}
/* Split: copy on a solid panel, image to the right */
.ws-site .ws-hero--split{background:var(--bg);color:var(--fg)}
.ws-site .ws-hero--split .ws-slide::after{display:none}
.ws-site .ws-hero--split .ws-slide__media{left:auto;width:50%;border-radius:0 0 0 var(--radius)}
.ws-site .ws-hero--split .ws-slide__inner{max-width:min(520px,44vw)}
.ws-site .ws-hero--split .ws-eyebrow{color:var(--secondary-text)}
.ws-site .ws-hero--split .ws-slide .ws-slide__title em{color:var(--primary-text);font-style:italic}
.ws-site .ws-hero--split .ws-slide p{color:var(--muted)}
.ws-site .ws-hero--split .ws-btn--ghost{color:var(--fg)}
.ws-site .ws-hero--split .ws-hero__dots button{background:var(--line)}
.ws-site .ws-hero--split .ws-hero__arrows{margin-left:0}
.ws-site .ws-hero--split .ws-hero__arrows button{border-color:var(--line);background:var(--bg);color:var(--fg)}
.ws-site .ws-hero--split .ws-hero__ui-row{justify-content:flex-start}
/* Centred: copy centred over the image */
.ws-site .ws-hero--centered .ws-slide::after{background:linear-gradient(0deg,color-mix(in srgb,var(--ov-c,var(--primary-deep)) min(100%,calc(var(--ov) + 10%)),transparent),color-mix(in srgb,var(--ov-c,var(--primary-deep)) var(--ov),transparent))}
.ws-site .ws-hero--centered .ws-slide__inner{margin:0 auto;text-align:center;justify-items:center;max-width:760px}
.ws-site .ws-hero--centered .ws-slide p{margin-inline:auto}
.ws-site .ws-hero--centered .ws-slide__ctas{justify-content:center}
.ws-site .ws-hero--centered .ws-hero__ui-row{justify-content:center}
.ws-site .ws-hero--centered .ws-hero__arrows{display:none}
@media (max-width:860px){
  .ws-site .ws-hero--split .ws-slide__media{position:absolute;left:0;width:100%;height:48%;top:auto;bottom:0;border-radius:0}
  .ws-site .ws-hero--split .ws-slide__copy{align-items:flex-start;padding-top:40px}
  .ws-site .ws-hero--split .ws-slide__inner{max-width:none}
  .ws-site .ws-hero--split .ws-hero__slides{height:clamp(720px,170vw,880px)}
  .ws-site .ws-hero--split .ws-hero__ui{bottom:auto;top:calc(52% - 64px)}
}
@media (max-width:560px){.ws-site .ws-hero__arrows{display:none}.ws-site .ws-slide__ctas .ws-btn{flex:1 1 auto}}
/* ---- Hero layout controls (the hero's Layout, "Photo, video & shade" and "On phones" settings) ----
   Text position on a 7 x 7 grid: ws-hp-xN (column 0-6) and ws-hp-yN (row 0-6) on desktop, and on phones too unless
   ws-hpm-xN / ws-hpm-yN are set (engine pos7; older 3 x 3 choices land on columns and rows 0, 3 and 6). Empty spacers
   before and after the text share the free room in that ratio, so every step moves the text by the same amount
   whatever the hero's height or the text's width. */
.ws-site .ws-hero.ws-hp-x0{--hpl:0;--hpr:6;--hp-ta:left;--hp-ji:start;--hp-ml:0;--hp-mr:auto}
.ws-site .ws-hero.ws-hp-x1{--hpl:1;--hpr:5;--hp-ta:left;--hp-ji:start;--hp-ml:0;--hp-mr:auto}
.ws-site .ws-hero.ws-hp-x2{--hpl:2;--hpr:4;--hp-ta:left;--hp-ji:start;--hp-ml:0;--hp-mr:auto}
.ws-site .ws-hero.ws-hp-x3{--hpl:3;--hpr:3;--hp-ta:center;--hp-ji:center;--hp-ml:auto;--hp-mr:auto}
.ws-site .ws-hero.ws-hp-x4{--hpl:4;--hpr:2;--hp-ta:right;--hp-ji:end;--hp-ml:auto;--hp-mr:0}
.ws-site .ws-hero.ws-hp-x5{--hpl:5;--hpr:1;--hp-ta:right;--hp-ji:end;--hp-ml:auto;--hp-mr:0}
.ws-site .ws-hero.ws-hp-x6{--hpl:6;--hpr:0;--hp-ta:right;--hp-ji:end;--hp-ml:auto;--hp-mr:0}
.ws-site .ws-hero.ws-hp-y0{--hpt:0;--hpb:6}
.ws-site .ws-hero.ws-hp-y1{--hpt:1;--hpb:5}
.ws-site .ws-hero.ws-hp-y2{--hpt:2;--hpb:4}
.ws-site .ws-hero.ws-hp-y3{--hpt:3;--hpb:3}
.ws-site .ws-hero.ws-hp-y4{--hpt:4;--hpb:2}
.ws-site .ws-hero.ws-hp-y5{--hpt:5;--hpb:1}
.ws-site .ws-hero.ws-hp-y6{--hpt:6;--hpb:0}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__copy{flex-direction:column;align-items:stretch;justify-content:flex-start}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__copy::before{content:"";flex:var(--hpt,3) 1 0px}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__copy::after{content:"";flex:var(--hpb,3) 1 0px}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__copy>.ws-wrap{display:flex;flex:0 0 auto}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__copy>.ws-wrap::before{content:"";flex:var(--hpl,3) 1 0px}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__copy>.ws-wrap::after{content:"";flex:var(--hpr,3) 1 0px}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__inner{flex:0 1 100%;min-width:0;margin-left:0;margin-right:0;text-align:var(--hp-ta);justify-items:var(--hp-ji)}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__inner p{margin-left:var(--hp-ml);margin-right:var(--hp-mr)}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-slide__ctas{justify-content:var(--hp-ji)}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hp-x"] .ws-hero__logo{margin-left:var(--hp-ml);margin-right:var(--hp-mr)}
@media (max-width:767px){
.ws-site .ws-hero.ws-hpm-x0{--hpl:0;--hpr:6;--hp-ta:left;--hp-ji:start;--hp-ml:0;--hp-mr:auto}
.ws-site .ws-hero.ws-hpm-x1{--hpl:1;--hpr:5;--hp-ta:left;--hp-ji:start;--hp-ml:0;--hp-mr:auto}
.ws-site .ws-hero.ws-hpm-x2{--hpl:2;--hpr:4;--hp-ta:left;--hp-ji:start;--hp-ml:0;--hp-mr:auto}
.ws-site .ws-hero.ws-hpm-x3{--hpl:3;--hpr:3;--hp-ta:center;--hp-ji:center;--hp-ml:auto;--hp-mr:auto}
.ws-site .ws-hero.ws-hpm-x4{--hpl:4;--hpr:2;--hp-ta:right;--hp-ji:end;--hp-ml:auto;--hp-mr:0}
.ws-site .ws-hero.ws-hpm-x5{--hpl:5;--hpr:1;--hp-ta:right;--hp-ji:end;--hp-ml:auto;--hp-mr:0}
.ws-site .ws-hero.ws-hpm-x6{--hpl:6;--hpr:0;--hp-ta:right;--hp-ji:end;--hp-ml:auto;--hp-mr:0}
.ws-site .ws-hero.ws-hpm-y0{--hpt:0;--hpb:6}
.ws-site .ws-hero.ws-hpm-y1{--hpt:1;--hpb:5}
.ws-site .ws-hero.ws-hpm-y2{--hpt:2;--hpb:4}
.ws-site .ws-hero.ws-hpm-y3{--hpt:3;--hpb:3}
.ws-site .ws-hero.ws-hpm-y4{--hpt:4;--hpb:2}
.ws-site .ws-hero.ws-hpm-y5{--hpt:5;--hpb:1}
.ws-site .ws-hero.ws-hpm-y6{--hpt:6;--hpb:0}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__copy{flex-direction:column;align-items:stretch;justify-content:flex-start}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__copy::before{content:"";flex:var(--hpt,3) 1 0px}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__copy::after{content:"";flex:var(--hpb,3) 1 0px}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__copy>.ws-wrap{display:flex;flex:0 0 auto}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__copy>.ws-wrap::before{content:"";flex:var(--hpl,3) 1 0px}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__copy>.ws-wrap::after{content:"";flex:var(--hpr,3) 1 0px}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__inner{flex:0 1 100%;min-width:0;margin-left:0;margin-right:0;text-align:var(--hp-ta);justify-items:var(--hp-ji)}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__inner p{margin-left:var(--hp-ml);margin-right:var(--hp-mr)}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-slide__ctas{justify-content:var(--hp-ji)}
.ws-site .ws-hero:not(.ws-hero--split)[class*=" ws-hpm-x"] .ws-hero__logo{margin-left:var(--hp-ml);margin-right:var(--hp-mr)}
.ws-site .ws-hero.ws-hov-side:is(.ws-hpm-x0,.ws-hpm-x1,.ws-hpm-x2,.ws-hpm-x3) .ws-slide::after{transform:none}
.ws-site .ws-hero.ws-hov-side:is(.ws-hpm-x4,.ws-hpm-x5,.ws-hpm-x6) .ws-slide::after{transform:scaleX(-1)}
}
.ws-site .ws-hero.ws-hw-narrow .ws-slide__inner{max-width:460px}
.ws-site .ws-hero.ws-hw-medium .ws-slide__inner{max-width:640px}
.ws-site .ws-hero.ws-hw-wide .ws-slide__inner{max-width:880px}
.ws-site .ws-hero.ws-hw-full .ws-slide__inner{max-width:none}
.ws-site .ws-hero:is(.ws-hw-wide,.ws-hw-full) .ws-slide p{max-width:64ch}
.ws-site .ws-hero.ws-hts-s .ws-slide .ws-slide__title{font-size:clamp(28px,3.4vw,44px)!important}
.ws-site .ws-hero.ws-hts-m .ws-slide .ws-slide__title{font-size:clamp(32px,4.4vw,58px)!important}
.ws-site .ws-hero.ws-hts-l .ws-slide .ws-slide__title{font-size:clamp(38px,5.8vw,78px)!important;line-height:1.02}
.ws-site .ws-hero.ws-hts-xl .ws-slide .ws-slide__title{font-size:clamp(44px,7.4vw,108px)!important;line-height:.98}
.ws-site .ws-hero.ws-hts-xxl .ws-slide .ws-slide__title{font-size:clamp(52px,9.8vw,148px)!important;line-height:.94;letter-spacing:-.02em}
@media (max-width:767px){
.ws-site .ws-hero.ws-htsm-s .ws-slide .ws-slide__title{font-size:28px!important}
.ws-site .ws-hero.ws-htsm-m .ws-slide .ws-slide__title{font-size:34px!important}
.ws-site .ws-hero.ws-htsm-l .ws-slide .ws-slide__title{font-size:42px!important}
.ws-site .ws-hero.ws-htsm-xl .ws-slide .ws-slide__title{font-size:52px!important}
.ws-site .ws-hero.ws-htsm-xxl .ws-slide .ws-slide__title{font-size:64px!important}
.ws-site .ws-hero.ws-hhm-full .ws-hero__slides{height:max(480px,calc(100vh - var(--hero-top)));height:max(480px,calc(100svh - var(--hero-top)))}
.ws-site .ws-hero.ws-hhm-tall .ws-hero__slides{height:max(520px,82svh)}
.ws-site .ws-hero.ws-hhm-medium .ws-hero__slides{height:440px}
.ws-site .ws-hero.ws-hhm-short .ws-hero__slides{height:340px}
.ws-site .ws-hero.ws-hm-eyebrow .ws-slide .ws-eyebrow,.ws-site .ws-hero.ws-hm-text .ws-slide__inner>p,
.ws-site .ws-hero.ws-hm-second .ws-slide__ctas .ws-btn--ghost,.ws-site .ws-hero.ws-hm-extras .ws-slide__inner .ws-x,
.ws-site .ws-hero.ws-hm-ui .ws-hero__ui{display:none}
}
/* Shade over the photo or video: --ov strength, --ov-c colour (the theme's dark primary unless picked) */
.ws-site .ws-hero.ws-hovc-black{--ov-c:#000}
.ws-site .ws-hero.ws-hovc-white{--ov-c:#fff}
.ws-site .ws-hero.ws-hovc-primary{--ov-c:var(--primary)}
.ws-site .ws-hero.ws-hovc-deep{--ov-c:var(--primary-deep)}
.ws-site .ws-hero.ws-hovc-secondary{--ov-c:var(--secondary)}
.ws-site .ws-hero.ws-hov-even .ws-slide::after{background:color-mix(in srgb,var(--ov-c,var(--primary-deep)) var(--ov),transparent)}
.ws-site .ws-hero.ws-hov-bottom .ws-slide::after{background:linear-gradient(0deg,color-mix(in srgb,var(--ov-c,var(--primary-deep)) min(100%,calc(var(--ov) + 25%)),transparent) 0%,color-mix(in srgb,var(--ov-c,var(--primary-deep)) calc(var(--ov) * .5),transparent) 45%,transparent 75%)}
.ws-site .ws-hero.ws-hov-topbottom .ws-slide::after{background:linear-gradient(180deg,color-mix(in srgb,var(--ov-c,var(--primary-deep)) var(--ov),transparent) 0%,transparent 30%,transparent 55%,color-mix(in srgb,var(--ov-c,var(--primary-deep)) min(100%,calc(var(--ov) + 20%)),transparent) 100%)}
.ws-site .ws-hero.ws-hov-side .ws-slide::after{background:linear-gradient(90deg,color-mix(in srgb,var(--ov-c,var(--primary-deep)) min(100%,calc(var(--ov) + 25%)),transparent) 0%,color-mix(in srgb,var(--ov-c,var(--primary-deep)) var(--ov),transparent) 46%,transparent 100%)}
.ws-site .ws-hero.ws-hov-side:is(.ws-hp-x4,.ws-hp-x5,.ws-hp-x6) .ws-slide::after{transform:scaleX(-1)}
.ws-site .ws-hero.ws-hov-vignette .ws-slide::after{background:radial-gradient(ellipse at center,color-mix(in srgb,var(--ov-c,var(--primary-deep)) calc(var(--ov) * .35),transparent) 30%,color-mix(in srgb,var(--ov-c,var(--primary-deep)) min(100%,calc(var(--ov) + 25%)),transparent) 100%)}
.ws-site .ws-hero.ws-hov-none .ws-slide::after{background:none}
/* Photo movement: slow zoom is the default; drift pans slowly; still stops it */
.ws-site .ws-hero.ws-hbg-none .ws-slide.is-active .ws-slide__media img{animation:none}
.ws-site .ws-hero.ws-hbg-drift .ws-slide.is-active .ws-slide__media img{animation:ws-drift 24s ease-in-out infinite alternate}
@keyframes ws-drift{from{transform:scale(1.14) translate(-2.5%,-1.5%)}to{transform:scale(1.14) translate(2.5%,1.5%)}}
/* A photo for phones (picture + source) keeps the photo rules */
.ws-site .ws-img>picture{display:contents}
.ws-site .ws-img>picture>img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;display:block;transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.ws-site .ws-slide.is-active .ws-slide__media>picture>img{animation:ws-kenburns 9s ease-out forwards}
/* The site logo above the heading */
.ws-site .ws-slide__title.ws-m-alt{font-family:var(--display);font-weight:var(--head-weight);letter-spacing:var(--head-track);text-transform:var(--head-case);line-height:1.08;text-wrap:balance;margin:0}
.ws-site .ws-hero__logo{display:block;width:var(--hl,160px);max-width:70vw;max-height:38vh;height:auto;object-fit:contain}
/* Scroll cue */
.ws-site .ws-hero__cue{position:absolute;z-index:4;left:50%;bottom:22px;transform:translateX(-50%);display:grid;justify-items:center;gap:8px;color:inherit;text-decoration:none;font-size:11.5px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;opacity:.85}
.ws-site .ws-hero__cue i{display:block;width:1px;height:42px;background:linear-gradient(currentColor,currentColor) 0 0/100% 40% no-repeat,color-mix(in srgb,currentColor 30%,transparent);animation:ws-cue 2.2s ease-in-out infinite}
.ws-site .ws-hero:has(.ws-hero__cue) .ws-hero__ui-row{justify-content:space-between}
/* Text placed at the bottom stays clear of the cue */
.ws-site .ws-hero:not(.ws-hero--book):has(.ws-hero__cue){--copy-bottom:124px}
.ws-site .ws-hero:not(.ws-hero--book):has(.ws-hero__cue):has(+ .ws-strip.is-overlap){--copy-bottom:156px}
@keyframes ws-cue{0%{background-position:0 -40%}100%{background-position:0 160%}}
/* A hero with its own text motion replaces the slide text's built-in rise */
.ws-site .ws-hero[data-anim-t] .ws-slide.is-active .ws-slide__inner>*{animation:none}


/* ---------- Service strip ---------- */
.ws-site .ws-strip{z-index:5;padding-block:28px}
.ws-site .ws-strip.is-overlap{margin-top:-64px;padding-top:0}
.ws-site .ws-strip__grid{display:grid;grid-template-columns:1.25fr 1fr 1fr;background:var(--bg);border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);box-shadow:var(--shadow);overflow:hidden}
.ws-site .ws-strip__grid>*{padding:24px 26px;display:grid;gap:8px;align-content:start}
.ws-site .ws-strip__grid>*+*{border-left:1px solid var(--line)}
.ws-site .ws-strip h3{font-size:18.4px}
.ws-site .ws-strip__big{font-family:var(--display);font-weight:800;font-size:41.6px;letter-spacing:-.02em;line-height:1;color:var(--secondary-text)}
.ws-site .ws-strip p{color:var(--muted);font-size:15.2px}
.ws-site .ws-strip .ws-btn{width:fit-content;margin-top:4px}
.ws-site .ws-strip__phone{font-size:20px}
.ws-site .ws-strip__go{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin-top:4px}
.ws-site .ws-strip__go .ws-btn{margin-top:0}
.ws-site .ws-strip__or{color:var(--muted);font-size:14.4px;font-weight:600}
@media (max-width:860px){.ws-site .ws-strip__grid{grid-template-columns:1fr}.ws-site .ws-strip__grid>*+*{border-left:0;border-top:1px solid var(--line)}}

/* ---------- Opening hours ---------- */
.ws-site .ws-hours{display:grid;gap:10px;align-content:start}
.ws-site .ws-hours__head{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between}
.ws-site .ws-hours__list{display:grid;gap:5px;margin:0;font-size:14.88px}
.ws-site .ws-hours__row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:0 16px}
.ws-site .ws-hours__row dt{color:var(--muted)}
.ws-site .ws-hours__row dd{margin:0 0 0 auto;text-align:right;font-variant-numeric:tabular-nums}
.ws-site .ws-hours__row.is-today dt,.ws-site .ws-hours__row.is-today dd{color:var(--fg);font-weight:700}
.ws-site .ws-hours__text{color:var(--muted);font-size:14.88px}
.ws-site .ws-status{display:inline-flex;align-items:center;gap:7px;width:fit-content;font-size:12.8px;font-weight:700;padding:4px 11px;border-radius:999px;background:var(--tint);color:var(--muted);white-space:nowrap}
.ws-site .ws-status::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.6}
.ws-site .ws-status.is-open{background:var(--secondary-soft);color:var(--fg)}
.ws-site .ws-status.is-open::before{background:var(--secondary);opacity:1;animation:ws-pulse 2s infinite}
.ws-site .ws-wait{display:flex;gap:10px;flex-wrap:wrap}
.ws-site .ws-wait__item{display:grid;gap:2px;padding:12px 16px;border-radius:12px;background:var(--tint);border:1px solid var(--line);min-width:120px}
.ws-site .ws-wait__item span{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ws-site .ws-wait__item b{font-family:var(--display);font-size:25.6px;line-height:1.1}
.ws-site .ws-wait__item small{font-size:12.8px;font-family:var(--body);font-weight:600;color:var(--muted)}
.ws-site .ws-hourssec__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(24px,5vw,56px);align-items:stretch}
.ws-site .ws-hourssec__grid.no-image{grid-template-columns:minmax(0,680px);justify-content:center}
.ws-site .ws-hourssec__card{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(24px,4vw,40px);gap:16px;box-shadow:var(--shadow)}
.ws-site .ws-hourssec__card h2{font-size:clamp(27.2px,3vw,36.8px)}
.ws-site .ws-hourssec__text{color:var(--muted)}
.ws-site .ws-hourssec__card .ws-hours__list{font-size:16px;gap:8px;padding-block:6px;border-block:1px dashed var(--line)}
.ws-site .ws-hourssec__card .ws-hours__row{padding-block:3px}
.ws-site .ws-hourssec__media{border-radius:var(--radius);min-height:320px}
@media (max-width:820px){.ws-site .ws-hourssec__grid{grid-template-columns:1fr}.ws-site .ws-hourssec__media{min-height:240px}}

/* ---------- Page banner ---------- */
.ws-site .ws-banner{padding-block:clamp(48px,8vw,96px);overflow:hidden}
.ws-site .ws-banner__inner{display:grid;gap:14px;max-width:760px;position:relative;z-index:2}
.ws-site .ws-banner h1{font-size:clamp(36.8px,5.4vw,62.4px)!important;font-weight:800}
.ws-site .ws-banner p{color:var(--muted);font-size:17.6px;max-width:58ch}
.ws-site .ws-banner.ws-align--center .ws-banner__inner{margin-inline:auto;text-align:center;justify-items:center}
.ws-site .ws-banner.has-image{--fg:#fff;--muted:rgba(255,255,255,.85);--secondary-text:color-mix(in srgb,var(--secondary) 45%,#fff);color:#fff;background:var(--primary-deep);border:0}
.ws-site .ws-banner__bg{position:absolute;inset:0;z-index:0}
.ws-site .ws-banner__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,color-mix(in srgb,var(--primary-deep) 88%,transparent),color-mix(in srgb,var(--primary-deep) 45%,transparent))}
.ws-site .ws-banner__bg:hover>img{transform:none}

/* ---------- About ---------- */
.ws-site .ws-about__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,6vw,80px);align-items:center}
.ws-site .ws-about.is-reverse .ws-about__copy{order:2}
.ws-site .ws-about__copy{display:grid;gap:20px;min-width:0;justify-items:start}
.ws-site .ws-about h2{font-size:clamp(30.4px,3.6vw,44.8px)}
.ws-site .ws-about__media{position:relative;aspect-ratio:1/1.05;max-width:100%;width:100%}
.ws-site .ws-about__media .ws-img{position:absolute;border-radius:calc(var(--radius) + 2px)}
.ws-site .ws-about__img1{inset:0 18% 18% 0}
.ws-site .ws-about__img2{inset:48% 0 0 46%;border:6px solid var(--bg)}
.ws-site .ws-about--single .ws-about__img1{inset:0}
.ws-site .ws-about--single .ws-about__media{aspect-ratio:4/4.4}
.ws-site .ws-stats{display:flex;gap:16px 36px;flex-wrap:wrap;margin-top:6px}
.ws-site .ws-stat{display:grid}
.ws-site .ws-stat b{font-family:var(--display);font-size:40px;font-weight:800;line-height:1.1;color:var(--primary-text);font-variant-numeric:tabular-nums}
.ws-site .ws-stat span{font-size:13.12px;color:var(--muted)}
.ws-site .ws-seal{position:absolute;right:3%;top:3%;z-index:3;width:128px;height:128px;border-radius:50%;background:var(--primary);color:var(--on-primary);display:grid;place-items:center;box-shadow:0 14px 30px -12px rgba(0,0,0,.45)}
.ws-site .ws-seal::before{content:"";position:absolute;inset:5px;border-radius:50%;border:1px solid color-mix(in srgb,var(--on-primary) 30%,transparent)}
.ws-site .ws-seal svg{position:absolute;inset:8px;width:calc(100% - 16px);height:calc(100% - 16px);overflow:visible;animation:ws-spin 26s linear infinite}
.ws-site .ws-seal text{fill:currentColor;font:800 8.6px var(--body);letter-spacing:1.6px;text-transform:uppercase}
.ws-site .ws-seal__mark{font-family:var(--display);font-weight:800;font-size:41.6px;line-height:1}
@keyframes ws-spin{to{transform:rotate(360deg)}}
@media (max-width:860px){.ws-site .ws-about__grid{grid-template-columns:1fr}.ws-site .ws-about.is-reverse .ws-about__copy{order:0}}

/* ---------- Image + text ---------- */
.ws-site .ws-split__grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,6vw,72px);align-items:center}
.ws-site .ws-split.is-reverse .ws-split__media{order:2}
.ws-site .ws-split__media{aspect-ratio:4/3;border-radius:calc(var(--radius) + 4px);width:100%}
.ws-site .ws-split__copy{display:grid;gap:18px;min-width:0;justify-items:start}
.ws-site .ws-split__copy h2{font-size:clamp(28.8px,3.4vw,41.6px)}
@media (max-width:820px){.ws-site .ws-split__grid{grid-template-columns:1fr}.ws-site .ws-split.is-reverse .ws-split__media{order:0}}

/* ---------- Feature cards ---------- */
.ws-site .ws-features__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.ws-site .ws-features__grid.ws-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ws-site .ws-features__grid.ws-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.ws-site .ws-feature{display:grid;gap:10px;align-content:start;padding:28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);transition:transform .3s,box-shadow .3s}
.ws-site .ws-feature:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.ws-site .ws-feature__icon{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;background:var(--secondary-soft);color:var(--secondary-text);margin-bottom:4px}
.ws-site .ws-feature__icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ws-site .ws-feature h3{font-size:19.2px}
.ws-site .ws-feature p{color:var(--muted);font-size:15.2px}
@media (max-width:980px){.ws-site .ws-features__grid.ws-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){.ws-site .ws-features__grid,.ws-site .ws-features__grid.ws-cols-2,.ws-site .ws-features__grid.ws-cols-4{grid-template-columns:1fr}}

/* ---------- Ticker ---------- */
.ws-site .ws-marquee{overflow:hidden;padding-block:calc(18px * var(--sp-k,1));background:var(--bg);color:var(--fg)}
.ws-site .ws-marquee__track{display:flex;width:max-content;animation:ws-marquee var(--speed,30s) linear infinite}
.ws-site .ws-marquee:hover .ws-marquee__track{animation-play-state:paused}
.ws-site .ws-marquee__run{display:flex;align-items:center;gap:28px;padding-right:28px;flex:none}
.ws-site .ws-marquee__run span{font-family:var(--display);font-weight:800;font-size:clamp(20.8px,2.4vw,30.4px);letter-spacing:-.01em;white-space:nowrap}
.ws-site .ws-marquee__run i{width:10px;height:10px;transform:rotate(45deg);background:currentColor;opacity:.5;flex:none}
@keyframes ws-marquee{to{transform:translateX(-50%)}}

/* ---------- Text ---------- */
.ws-site .ws-richtext__inner{display:grid;gap:16px;max-width:760px}
.ws-site .ws-richtext h2{font-size:clamp(28.8px,3.4vw,41.6px)}
.ws-site .ws-richtext .ws-prose{max-width:68ch;font-size:16.64px}
.ws-site .ws-richtext.ws-align--center .ws-richtext__inner{margin-inline:auto;text-align:center;justify-items:center}
.ws-site .ws-richtext.ws-align--center .ws-prose{margin-inline:auto}

/* ---------- Custom HTML ---------- */
.ws-site .ws-html__full{width:100%}
.ws-site .ws-html__body{min-width:0;overflow-wrap:break-word}
.ws-site .ws-html__body img{max-width:100%;height:auto}

/* ---------- Call to action ---------- */
.ws-site .ws-cta{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 40px;align-items:center;padding:clamp(30px,5vw,56px);border-radius:calc(var(--radius) + 8px);background:var(--primary);color:var(--on-primary);position:relative;overflow:hidden;isolation:isolate}
.ws-site .ws-cta::before{content:"";position:absolute;z-index:-1;right:-60px;top:-60px;width:260px;height:260px;border-radius:50%;background:color-mix(in srgb,var(--secondary) 35%,transparent);filter:blur(4px)}
.ws-site .ws-cta h2{font-size:clamp(27.2px,3.4vw,40px)}
.ws-site .ws-cta p{margin-top:10px;max-width:54ch}
.ws-site .ws-cta__actions{display:flex;gap:12px;flex-wrap:wrap}
.ws-site .ws-cta .ws-btn--ghost{color:var(--on-primary)}
.ws-site .ws-tone--primary .ws-cta{background:var(--secondary);color:var(--on-secondary);--fg:var(--on-secondary);--muted:var(--secondary-muted)}
.ws-site .ws-tone--primary .ws-cta .ws-btn--accent{background:var(--primary);color:var(--on-primary)}
.ws-site .ws-tone--primary .ws-cta .ws-btn--ghost{color:var(--on-secondary)}
@media (max-width:760px){.ws-site .ws-cta{grid-template-columns:1fr}}

/* ---------- Menu highlights ---------- */
.ws-site .ws-menu__top{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:end;justify-content:space-between;margin-bottom:28px}
.ws-site .ws-menu__top .ws-head{margin:0}
.ws-site .ws-menu__cats{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 12px;margin-bottom:22px;scrollbar-width:thin;scrollbar-color:var(--line) transparent;-webkit-mask:linear-gradient(90deg,#000 92%,transparent);mask:linear-gradient(90deg,#000 92%,transparent)}
.ws-site .ws-cat{flex:none;scroll-snap-align:start;display:grid;gap:2px;min-width:150px;padding:12px 16px;border-radius:14px;border:1px solid var(--line);background:var(--tint);text-decoration:none;transition:background-color .2s,transform .2s,border-color .2s}
.ws-site .ws-cat span{font-weight:800;font-size:15.2px;white-space:nowrap}
.ws-site .ws-cat small{font-size:12.16px;color:var(--muted)}
.ws-site .ws-cat:hover{transform:translateY(-2px);border-color:var(--fg)}
.ws-site .ws-menu__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.ws-site .ws-dish{display:grid;grid-template-rows:auto 1fr;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;transition:transform .3s,box-shadow .3s}
.ws-site .ws-dish:hover{transform:translateY(-3px);box-shadow:0 18px 34px -24px rgba(0,0,0,.55)}
.ws-site .ws-dish__img{aspect-ratio:4/3}
.ws-site .ws-dish__body{display:grid;gap:6px;padding:14px 16px 16px;align-content:start}
.ws-site .ws-dish__cat{font-size:10.88px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--secondary-text)}
.ws-site .ws-dish h3{font-family:var(--body);font-size:16.48px;letter-spacing:0;text-transform:none;font-weight:700}
.ws-site .ws-dish p{font-size:13.76px;line-height:1.45;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ws-site .ws-dish__foot{display:flex;justify-content:space-between;align-items:center;margin-top:6px}
.ws-site .ws-price{font-weight:800;font-variant-numeric:tabular-nums;white-space:nowrap}
.ws-site .ws-add{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--primary);background:var(--bg);color:var(--primary-text);font:700 20px/1 var(--body);display:grid;place-items:center;text-decoration:none;transition:background-color .2s,color .2s,transform .2s}
.ws-site .ws-add:hover{background:var(--primary);color:var(--on-primary);transform:rotate(90deg)}
.ws-site .ws-menu__list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 56px}
.ws-site .ws-mitem{display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"main dots price";align-items:baseline;gap:0 12px;padding:16px 0;border-bottom:1px solid var(--line)}
.ws-site .ws-mitem__main{grid-area:main;min-width:0;max-width:44ch}
.ws-site .ws-mitem h3{font-family:var(--body);font-size:16.64px;letter-spacing:0;text-transform:none;font-weight:700}
.ws-site .ws-mitem p{font-size:13.76px;color:var(--muted);margin-top:3px;line-height:1.45}
.ws-site .ws-mitem__dots{grid-area:dots;border-bottom:2px dotted var(--line);transform:translateY(-5px);min-width:16px}
.ws-site .ws-mitem .ws-price{grid-area:price;color:var(--primary-text)}
@media (max-width:980px){.ws-site .ws-menu__cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:760px){
  .ws-site .ws-menu__list{grid-template-columns:1fr}
  .ws-site .ws-menu__cards{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:12px;padding-bottom:10px;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut);scrollbar-width:none}
  .ws-site .ws-menu__cards>.ws-dish{flex:0 0 76%;scroll-snap-align:start}
}

/* ---------- Gallery ---------- */
.ws-site .ws-gallery__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:210px;gap:12px}
.ws-site .ws-gallery__item{border:0;padding:0;border-radius:calc(var(--radius) - 2px);cursor:zoom-in;font:inherit;width:100%;height:100%}
.ws-site .ws-gallery--mosaic .ws-gallery__item:nth-child(7n+1){grid-column:span 2;grid-row:span 2}
.ws-site .ws-gallery--mosaic .ws-gallery__item:nth-child(7n+4){grid-row:span 2}
.ws-site .ws-gallery--mosaic .ws-gallery__item:nth-child(7n+6){grid-column:span 2}
.ws-site .ws-gallery--grid .ws-gallery__grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto}
.ws-site .ws-gallery--grid .ws-gallery__item{aspect-ratio:4/3;height:auto}
.ws-site .ws-gallery--strip .ws-gallery__grid{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;grid-auto-rows:auto;padding-bottom:12px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}
.ws-site .ws-gallery--strip .ws-gallery__item{flex:0 0 clamp(240px,30vw,380px);aspect-ratio:3/4;height:auto;scroll-snap-align:start}
.ws-site .ws-gallery__item::after{content:attr(data-caption);position:absolute;left:0;right:0;bottom:0;z-index:2;padding:30px 14px 12px;color:#fff;font-weight:600;font-size:14.08px;text-align:left;background:linear-gradient(0deg,rgba(0,0,0,.6),transparent);opacity:0;transform:translateY(8px);transition:opacity .35s,transform .35s}
.ws-site .ws-gallery__item[data-caption=""]::after{display:none}
.ws-site .ws-gallery__item:hover::after,.ws-site .ws-gallery__item:focus-visible::after{opacity:1;transform:none}
.ws-site .ws-gallery__item:hover>img{transform:scale(1.07) rotate(.5deg)}
@media (max-width:760px){
  .ws-site .ws-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:150px}
  .ws-site .ws-gallery--mosaic .ws-gallery__item:nth-child(7n+6){grid-column:span 2}
  .ws-site .ws-gallery--grid .ws-gallery__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* ---- Gallery layouts and options (galcls): --gcols across, --gg gap, --grat photo shape ---- */
.ws-site .ws-gallery{--gg:12px}
.ws-site .ws-gallery.ws-ggap-none{--gg:0px}
.ws-site .ws-gallery.ws-ggap-small{--gg:6px}
.ws-site .ws-gallery.ws-ggap-large{--gg:26px}
.ws-site .ws-gallery .ws-gallery__grid{gap:var(--gg)}
.ws-site .ws-gallery.ws-grat-square{--grat:1/1}
.ws-site .ws-gallery.ws-grat-landscape{--grat:4/3}
.ws-site .ws-gallery.ws-grat-portrait{--grat:3/4}
.ws-site .ws-gallery.ws-grat-wide{--grat:16/9}
.ws-site .ws-gallery.ws-grat-tall{--grat:9/16}
.ws-site .ws-gallery[class*=" ws-grat-"]:not(.ws-gallery--mosaic,.ws-gallery--masonry) .ws-gallery__item{aspect-ratio:var(--grat);height:auto}
.ws-site .ws-gallery.ws-gcol-2{--gcols:2}.ws-site .ws-gallery.ws-gcol-3{--gcols:3}.ws-site .ws-gallery.ws-gcol-4{--gcols:4}.ws-site .ws-gallery.ws-gcol-5{--gcols:5}.ws-site .ws-gallery.ws-gcol-6{--gcols:6}
.ws-site .ws-gallery--grid[class*=" ws-gcol-"] .ws-gallery__grid{grid-template-columns:repeat(var(--gcols),minmax(0,1fr))}
.ws-site .ws-gallery.ws-gcap-always .ws-gallery__item::after{opacity:1;transform:none}
.ws-site .ws-gallery.ws-gcap-none .ws-gallery__item::after{display:none}
.ws-site .ws-gallery--bleed .ws-gallery__grid{margin-inline:calc(50% - 50vw);padding-inline:var(--gg)}
.ws-site .ws-gallery--bleed.ws-ggap-none .ws-gallery__grid{padding-inline:0}
.ws-site .ws-gallery__grid[data-open="none"] .ws-gallery__item{cursor:default}
/* masonry: each photo keeps its own shape */
.ws-site .ws-gallery--masonry .ws-gallery__grid{display:block;columns:var(--gcols,3);column-gap:var(--gg)}
.ws-site .ws-gallery--masonry .ws-gallery__item{display:block;height:auto;margin-bottom:var(--gg);break-inside:avoid}
.ws-site .ws-gallery--masonry .ws-gallery__item>img{position:static;height:auto}
/* side-scroll, slideshow and thumbnail slideshow share one scrolling track */
.ws-site .ws-gallery:is(.ws-gallery--scroll,.ws-gallery--carousel,.ws-gallery--thumbs) .ws-gallery__grid{position:relative;display:flex;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;grid-auto-rows:auto}
.ws-site .ws-gallery:is(.ws-gallery--scroll,.ws-gallery--carousel,.ws-gallery--thumbs) .ws-gallery__grid::-webkit-scrollbar{display:none}
.ws-site .ws-gallery:is(.ws-gallery--scroll,.ws-gallery--carousel,.ws-gallery--thumbs) .ws-gallery__item{scroll-snap-align:start;height:auto}
.ws-site .ws-gallery--scroll .ws-gallery__item{flex:0 0 calc((100% - (var(--gcols,3) - 1) * var(--gg)) / var(--gcols,3));aspect-ratio:var(--grat,4/5)}
.ws-site .ws-gallery:is(.ws-gallery--carousel,.ws-gallery--thumbs) .ws-gallery__item{flex:0 0 100%;aspect-ratio:var(--grat,16/9)}
.ws-site .ws-gallery__grid.is-drag{scroll-snap-type:none;cursor:grabbing}
.ws-site .ws-gallery__grid.is-drag .ws-gallery__item{pointer-events:none}
.ws-site .ws-gallery__ui{display:flex;align-items:center;gap:16px;margin-top:16px}
.ws-site .ws-gallery__dots{display:flex;flex-wrap:wrap;gap:8px}
.ws-site .ws-gallery__dots button{width:9px;height:9px;padding:0;border:0;border-radius:50%;background:color-mix(in srgb,currentColor 25%,transparent);cursor:pointer;position:relative}
.ws-site .ws-gallery__dots button::before{content:"";position:absolute;inset:-8px}
.ws-site .ws-gallery__dots button.is-on{background:var(--primary-text,currentColor);transform:scale(1.25)}
.ws-site .ws-gallery__arrows{display:flex;gap:8px;margin-left:auto}
.ws-site .ws-gallery__arrows button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--fg);font-size:17px;cursor:pointer;transition:background-color .2s,color .2s,opacity .2s}
.ws-site .ws-gallery__arrows button:hover{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}
.ws-site .ws-gallery__arrows button:disabled{opacity:.35;cursor:default;background:var(--bg);color:var(--fg);border-color:var(--line)}
.ws-site .ws-gallery--scroll .ws-gallery__dots{display:none}
.ws-site .ws-gallery__thumbs{display:flex;gap:8px;margin-top:10px;overflow-x:auto;scrollbar-width:none;padding:2px}
.ws-site .ws-gallery__thumbs::-webkit-scrollbar{display:none}
.ws-site .ws-gallery__thumbs button{flex:0 0 auto;width:92px;aspect-ratio:4/3;padding:0;border:0;border-radius:calc(var(--radius) - 4px);overflow:hidden;cursor:pointer;opacity:.55;transition:opacity .2s,box-shadow .2s;background:var(--tint)}
.ws-site .ws-gallery__thumbs button img{width:100%;height:100%;object-fit:cover;display:block}
.ws-site .ws-gallery__thumbs button:hover{opacity:.85}
.ws-site .ws-gallery__thumbs button.is-on{opacity:1;box-shadow:0 0 0 2px var(--primary)}
.ws-site .ws-gallery--thumbs .ws-gallery__ui .ws-gallery__dots{display:none}
/* moving ribbon: the runtime doubles the photos and the track slides by half its width, forever */
.ws-site .ws-gallery--marquee .ws-gallery__grid{display:flex;overflow:hidden;grid-auto-rows:auto;--gm-dur:40s}
.ws-site .ws-gallery--marquee .ws-gallery__track{display:flex;gap:var(--gg);padding-right:var(--gg);flex:none;animation:ws-gm var(--gm-dur) linear infinite}
.ws-site .ws-gallery--marquee .ws-gallery__grid:hover .ws-gallery__track{animation-play-state:paused}
.ws-site .ws-gallery--marquee .ws-gallery__item{flex:0 0 auto;height:clamp(200px,24vw,320px);width:auto;aspect-ratio:var(--grat,3/4)}
@keyframes ws-gm{to{transform:translateX(-50%)}}
@media (max-width:760px){
  .ws-site .ws-gallery--scroll .ws-gallery__item{flex-basis:78%}
  .ws-site .ws-gallery--masonry .ws-gallery__grid{columns:2}
  .ws-site .ws-gallery.ws-gcolm-1{--gcolsm:1}.ws-site .ws-gallery.ws-gcolm-2{--gcolsm:2}.ws-site .ws-gallery.ws-gcolm-3{--gcolsm:3}
  .ws-site .ws-gallery--grid[class*=" ws-gcolm-"] .ws-gallery__grid{grid-template-columns:repeat(var(--gcolsm),minmax(0,1fr))}
  .ws-site .ws-gallery--masonry[class*=" ws-gcolm-"] .ws-gallery__grid{columns:var(--gcolsm)}
  .ws-site .ws-gallery--scroll[class*=" ws-gcolm-"] .ws-gallery__item{flex-basis:calc((100% - (var(--gcolsm) - 1) * var(--gg)) / var(--gcolsm) - 8%)}
  .ws-site .ws-gallery__thumbs button{width:68px}
}
/* Full screen viewer */
.ws-lightbox{position:fixed;inset:0;z-index:2147483000;background:rgba(10,8,6,.92);display:grid;place-items:center;padding:24px;animation:ws-fade .25s}
.ws-lightbox figure{margin:0;display:grid;gap:12px;justify-items:center;max-width:min(1000px,100%)}
.ws-lightbox img{max-height:82vh;max-width:100%;width:auto;border-radius:14px;animation:ws-zoom .4s cubic-bezier(.2,.7,.2,1)}
.ws-lightbox figcaption{color:#fff;font:600 15.2px system-ui,sans-serif}
.ws-lightbox button{position:absolute;width:46px;height:46px;border-radius:50%;border:0;background:#fff;color:#111;font-size:20.8px;cursor:pointer;display:grid;place-items:center}
.ws-lightbox [data-lb-close]{top:16px;right:16px}
.ws-lightbox [data-lb-dir="-1"]{left:16px;top:50%;transform:translateY(-50%)}
.ws-lightbox [data-lb-dir="1"]{right:16px;top:50%;transform:translateY(-50%)}
.ws-lightbox{touch-action:pan-y}
.ws-lightbox .ws-lb__count{position:absolute;top:24px;left:24px;color:rgba(255,255,255,.8);font:600 13px system-ui,sans-serif;letter-spacing:.08em}
.ws-lightbox.has-thumbs{grid-template-rows:1fr auto;padding-bottom:12px}
.ws-lightbox.has-thumbs img{max-height:70vh}
.ws-lightbox .ws-lb__thumbs{display:flex;gap:8px;max-width:100%;overflow-x:auto;padding:6px;scrollbar-width:thin}
.ws-lightbox .ws-lb__thumbs button{position:static;flex:0 0 auto;width:76px;height:56px;border-radius:8px;padding:0;overflow:hidden;opacity:.5;background:#222;transition:opacity .2s}
.ws-lightbox .ws-lb__thumbs button.is-on{opacity:1;box-shadow:0 0 0 2px #fff}
.ws-lightbox .ws-lb__thumbs img{width:100%;height:100%;object-fit:cover;max-height:none;border-radius:0;animation:none}
@media (max-width:600px){.ws-lightbox [data-lb-dir]{top:auto;bottom:14px;transform:none}.ws-lightbox.has-thumbs [data-lb-dir]{bottom:90px}}
@keyframes ws-fade{from{opacity:0}}
@keyframes ws-zoom{from{transform:scale(.92)}to{transform:none}}

/* ---------- Reviews ---------- */
.ws-site .ws-reviews__grid{display:grid;grid-template-columns:280px minmax(0,1fr);gap:44px;align-items:center}
.ws-site .ws-reviews__grid.no-score{grid-template-columns:1fr}
.ws-site .ws-reviews__score{display:grid;gap:10px;justify-items:start}
.ws-site .ws-reviews__score h2{font-size:clamp(25.6px,2.8vw,35.2px)}
.ws-site .ws-reviews__num{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-top:6px}
.ws-site .ws-reviews__num b{font-family:var(--display);font-size:70.4px;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--primary-text)}
.ws-site .ws-reviews__score small{color:var(--muted)}
.ws-site .ws-reviews__ctrl{display:flex;gap:8px;margin-top:10px}
.ws-site .ws-reviews__ctrl button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.ws-site .ws-reviews__ctrl button:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.ws-site .ws-reviews__track{overflow:hidden;min-width:0;padding:6px 2px 16px;container-type:inline-size}
.ws-site .ws-reviews__rail{display:flex;gap:18px;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.ws-site .ws-reviews__rail>*{flex:0 0 calc(50% - 9px)}
@container (max-width:700px){.ws-site .ws-reviews__rail>*{flex-basis:100%}}
.ws-site .ws-reviews--grid .ws-reviews__ctrl{display:none}
.ws-site .ws-reviews--grid .ws-reviews__track{overflow:visible}
.ws-site .ws-reviews--grid .ws-reviews__rail{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));transform:none!important}
.ws-site .ws-review{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:26px;display:grid;gap:12px;align-content:start;margin:0;box-shadow:0 14px 30px -26px rgba(0,0,0,.5)}
.ws-site .ws-review__title{font-weight:800;font-size:16.32px}
.ws-site .ws-review blockquote{margin:0;font-size:16.32px;line-height:1.6;color:var(--fg)}
.ws-site .ws-review figcaption{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13.44px;color:var(--muted)}
.ws-site .ws-review figcaption b{color:var(--fg)}
@media (max-width:860px){.ws-site .ws-reviews__grid{grid-template-columns:1fr;gap:28px}}

/* ---------- Trust badges ---------- */
.ws-site .ws-proof__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.ws-site .ws-proofcard{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);padding:28px;display:grid;gap:8px;align-content:start;box-shadow:0 14px 30px -26px rgba(0,0,0,.5)}
.ws-site .ws-proofcard__big{font-family:var(--display);font-weight:800;font-size:52.8px;letter-spacing:-.03em;line-height:1;color:var(--primary-text)}
.ws-site .ws-proofcard__label{font-weight:800}
.ws-site .ws-proofcard p{color:var(--muted);font-size:15.2px}

/* ---------- Forms (reservation + contact) ---------- */
.ws-site .ws-book__grid{display:grid;grid-template-columns:1fr 1.2fr;gap:clamp(28px,5vw,64px);align-items:start}
.ws-site .ws-reservation--centered .ws-book__grid{grid-template-columns:minmax(0,760px);justify-content:center}
.ws-site .ws-reservation--centered .ws-head{margin-bottom:8px}
.ws-site .ws-book__side{display:grid;gap:18px}
.ws-site .ws-book__side .ws-head{margin:0}
.ws-site .ws-book__img{aspect-ratio:4/3;border-radius:var(--radius)}
.ws-site .ws-book__side .ws-ticks{color:var(--muted);font-size:15.04px}
.ws-site .ws-form{position:relative;background:var(--bg);border:1px solid var(--line);border-radius:calc(var(--radius) + 2px);padding:clamp(20px,3vw,34px);display:grid;grid-template-columns:1fr 1fr;gap:16px;box-shadow:var(--shadow)}
.ws-site .ws-field{display:grid;gap:6px;min-width:0;align-content:start}
.ws-site .ws-field--full{grid-column:1/-1}
.ws-site .ws-field label,.ws-site .ws-field .ws-label{font-size:13.12px;font-weight:700}
.ws-site .ws-field input,.ws-site .ws-field select,.ws-site .ws-field textarea{width:100%;font:inherit;font-size:15.36px;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:calc(var(--radius) * .6);padding:12px 13px;transition:border-color .2s,box-shadow .2s;min-height:46px}
.ws-site .ws-field textarea{resize:vertical;min-height:96px}
.ws-site .ws-field input:focus,.ws-site .ws-field select:focus,.ws-site .ws-field textarea:focus{outline:none;border-color:var(--secondary);box-shadow:0 0 0 3px color-mix(in srgb,var(--secondary) 25%,transparent)}
.ws-site .ws-field .is-invalid{border-color:#b3261e;box-shadow:0 0 0 3px rgba(179,38,30,.15)}
.ws-site .ws-party,.ws-site .ws-chips{display:flex;gap:6px;flex-wrap:wrap}
.ws-site .ws-party button{width:44px;height:44px;border-radius:calc(var(--radius) * .6);border:1px solid var(--line);background:var(--bg);color:var(--fg);font:700 14.72px var(--body);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.ws-site .ws-party button:hover{border-color:var(--primary)}
.ws-site .ws-party button.is-active{background:var(--primary-sm);color:var(--on-primary-sm);border-color:var(--primary-sm)}
.ws-site .ws-chips label{position:relative;display:inline-flex;align-items:center;padding:9px 15px;border:1px solid var(--line);border-radius:999px;font-size:14.08px;font-weight:600;cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.ws-site .ws-chips input{position:absolute;opacity:0;pointer-events:none}
.ws-site .ws-chips label:has(input:checked){background:var(--primary-sm);color:var(--on-primary-sm);border-color:var(--primary-sm)}
.ws-site .ws-chips label:has(input:focus-visible){outline:2px solid var(--secondary);outline-offset:2px}
.ws-site .ws-form__msg{grid-column:1/-1;padding:13px 15px;border-radius:12px;background:var(--secondary-soft);font-size:14.88px;font-weight:600}
.ws-site .ws-form__msg.is-error{background:#fdecea;color:#8a1f12}
.ws-site .ws-form>.ws-btn{grid-column:1/-1;padding-block:1.05em}
.ws-site .ws-form.is-busy>.ws-btn{opacity:.7;pointer-events:none}
.ws-site .ws-form.is-done>:not(.ws-form__msg){display:none}
.ws-site .ws-form.is-done{display:block;text-align:center;padding-block:48px}
.ws-site .ws-form.is-done .ws-form__msg{background:none;font-size:17.6px;padding:0}
.ws-site .ws-form.is-done .ws-form__msg::before{content:"";display:block;width:56px;height:56px;margin:0 auto 14px;border-radius:50%;background:var(--secondary-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23333' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/26px no-repeat}
@media (max-width:860px){.ws-site .ws-book__grid{grid-template-columns:1fr}}
@media (max-width:520px){.ws-site .ws-form{grid-template-columns:1fr}}

/* ---------- Contact ---------- */
.ws-site .ws-contact__grid{display:grid;gap:32px}
.ws-site .ws-contact__items{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px}
.ws-site .ws-contact__grid.has-form{grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:start}
.ws-site .ws-contact__grid.has-form .ws-contact__items{grid-template-columns:1fr 1fr}
.ws-site .ws-contact__item{border-top:2px solid var(--secondary);padding-top:16px;display:grid;gap:8px;align-content:start}
.ws-site .ws-contact__item h3{font-size:18.4px}
.ws-site .ws-contact__item p{color:var(--muted)}
.ws-site .ws-contact__item a{text-decoration:none}
.ws-site .ws-contact__item p a{color:var(--fg)}
.ws-site .ws-copy{width:fit-content;border:1px solid var(--line);background:var(--bg);color:var(--fg);border-radius:8px;padding:5px 10px;font:600 12.48px var(--body);cursor:pointer}
.ws-site .ws-copy:hover{border-color:var(--secondary)}
.ws-site .ws-map{margin-top:36px;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);aspect-ratio:21/8;min-height:260px}
.ws-site .ws-map iframe{width:100%;height:100%;border:0;display:block;filter:saturate(.85)}
@media (max-width:860px){.ws-site .ws-contact__grid.has-form{grid-template-columns:1fr}}
@media (max-width:520px){.ws-site .ws-contact__grid.has-form .ws-contact__items{grid-template-columns:1fr}}

/* ---------- Footer ---------- */
.ws-site .ws-footer{font-size:14.4px;color:var(--muted);padding:0}
.ws-site .ws-footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1.1fr 1.2fr;gap:32px;padding-block:56px 36px}
.ws-site .ws-footer h3{font-family:var(--body);font-size:12.16px;letter-spacing:.14em;text-transform:uppercase;color:var(--fg);margin-bottom:12px;font-weight:800}
.ws-site .ws-footer ul{list-style:none;padding:0;display:grid;gap:7px}
.ws-site .ws-footer a{text-decoration:none}
.ws-site .ws-footer a:hover{color:var(--fg);text-decoration:underline}
.ws-site .ws-footer__brand{display:grid;gap:14px;max-width:34ch;align-content:start}
.ws-site .ws-footer .ws-logo__img{height:64px}
.ws-site .ws-footer .ws-hours__list{font-size:14.08px}
.ws-site .ws-footer__simple{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;padding-block:40px 28px}
.ws-site .ws-footer__inline{display:flex!important;flex-wrap:wrap;gap:8px 22px!important;margin-right:auto!important}
.ws-site .ws-footer__legal{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;border-top:1px solid var(--line);padding-block:20px}
.ws-site .ws-footer__legal-links{display:flex;gap:18px;flex-wrap:wrap}
.ws-site .ws-social{display:flex!important;gap:10px!important;flex-wrap:wrap}
.ws-site .ws-social__a{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);color:var(--fg);transition:background-color .2s,color .2s,border-color .2s}
.ws-site .ws-social__a::before{content:"";width:17px;height:17px;background:currentColor;-webkit-mask:var(--ws-icon) center/contain no-repeat;mask:var(--ws-icon) center/contain no-repeat}
.ws-site .ws-social__a:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.ws-site .ws-social--facebook{--ws-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M14 8h3V4h-3a4 4 0 0 0-4 4v2H8v4h2v8h4v-8h3l1-4h-4V8.5a.5.5 0 0 1 .5-.5z'/%3E%3C/svg%3E")}
.ws-site .ws-social--instagram{--ws-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Crect x='3' y='3' width='18' height='18' rx='5'/%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Ccircle cx='17.5' cy='6.5' r='1' fill='%23000'/%3E%3C/svg%3E")}
.ws-site .ws-social--twitter{--ws-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M17.8 3h3.1l-6.8 7.8 8 10.2h-6.3l-4.9-6.4L5.3 21H2.2l7.3-8.3L1.9 3h6.4l4.4 5.9L17.8 3zm-1.1 16.2h1.7L7.4 4.7H5.6l11.1 14.5z'/%3E%3C/svg%3E")}
.ws-site .ws-social--youtube{--ws-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M22 8.2a3 3 0 0 0-2.1-2.1C18 5.6 12 5.6 12 5.6s-6 0-7.9.5A3 3 0 0 0 2 8.2 31 31 0 0 0 1.6 12a31 31 0 0 0 .4 3.8 3 3 0 0 0 2.1 2.1c1.9.5 7.9.5 7.9.5s6 0 7.9-.5a3 3 0 0 0 2.1-2.1 31 31 0 0 0 .4-3.8 31 31 0 0 0-.4-3.8zM10 15.2V8.8l5.2 3.2z'/%3E%3C/svg%3E")}
.ws-site .ws-social--pinterest{--ws-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 0 0-3.6 19.3c-.1-.8-.2-2 0-2.9l1.3-5.5s-.3-.7-.3-1.6c0-1.5.9-2.7 2-2.7.9 0 1.4.7 1.4 1.5 0 .9-.6 2.3-.9 3.6-.3 1.1.5 2 1.6 2 1.9 0 3.4-2 3.4-4.9 0-2.6-1.9-4.4-4.5-4.4-3.1 0-4.9 2.3-4.9 4.7 0 .9.4 1.9.8 2.5.1.1.1.2.1.3l-.3 1.2c0 .2-.2.2-.4.1-1.4-.6-2.2-2.6-2.2-4.2 0-3.4 2.5-6.6 7.2-6.6 3.8 0 6.7 2.7 6.7 6.3 0 3.8-2.4 6.8-5.7 6.8-1.1 0-2.2-.6-2.5-1.3l-.7 2.6c-.2 1-.9 2.2-1.4 2.9A10 10 0 1 0 12 2z'/%3E%3C/svg%3E")}
.ws-site .ws-social--tripadvisor{--ws-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2'%3E%3Ccircle cx='7' cy='13' r='3.5'/%3E%3Ccircle cx='17' cy='13' r='3.5'/%3E%3Cpath d='M3 9c5-4 13-4 18 0M12 9l-1.5 3M12 9l1.5 3'/%3E%3C/svg%3E")}
.ws-site .ws-social--tiktok{--ws-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M16 3c.3 2.4 1.8 3.9 4 4v3.2c-1.5 0-2.8-.4-4-1.2V15a6 6 0 1 1-6-6h.5v3.3A2.8 2.8 0 1 0 12.8 15V3z'/%3E%3C/svg%3E")}
@media (max-width:980px){.ws-site .ws-footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ws-site .ws-footer__grid{grid-template-columns:1fr}}

/* ---------- Hero photo card (Split layout) ---------- */
.ws-site .ws-slide__card{position:absolute;z-index:3;left:calc(50% - 44px);bottom:clamp(64px,9vw,104px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;align-items:center;min-width:220px;max-width:290px;padding:14px 14px 14px 18px;border-radius:var(--radius);background:var(--bg);color:var(--fg);box-shadow:0 24px 44px -20px rgba(0,0,0,.55)}
.ws-site .ws-slide.is-active .ws-slide__card{animation:ws-rise .8s cubic-bezier(.2,.7,.2,1) .45s both}
.ws-site .ws-slide__card-label{grid-column:1;font-size:10.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--secondary-text)}
.ws-site .ws-slide__card b{grid-column:1;font-family:var(--display);font-weight:var(--head-weight);font-size:19.2px;line-height:1.15}
.ws-site .ws-slide__card .ws-price{grid-column:1}
.ws-site .ws-slide__card .ws-add{grid-column:2;grid-row:1/4}
@media (max-width:860px){.ws-site .ws-slide__card{left:16px;bottom:24px;max-width:calc(100% - 32px)}}

/* ---------- Hero with a booking form (any form style) ----------
   Beside the text: a card on the right of the photo. Along the bottom: a wide strip over the
   lower edge of the photo; runtime.js measures it into --book-h so the text keeps clear.
   On a split hero, and on tablets and phones, the form sits under the photo instead. */
.ws-site .ws-hero__book{position:absolute;z-index:5;inset:0;display:flex;align-items:center;padding-top:var(--over);pointer-events:none}
.ws-site .ws-hero__book-row{width:100%;display:flex;justify-content:flex-end}
.ws-site .ws-hero__book .ws-rf{pointer-events:auto;color:var(--fg);width:min(420px,100%);gap:12px;padding:24px;box-shadow:0 30px 60px -24px rgba(0,0,0,.6)}
.ws-site .ws-hero__book :is(.ws-rf--calendar,.ws-rf--ticket,.ws-rf--steps,.ws-rf--boxed){width:min(540px,100%)}
.ws-site .ws-hero__book .ws-rf--mini{width:min(470px,100%)}
.ws-site .ws-hero__book :is(.ws-rf--chat,.ws-rf--ticket){padding:0}
.ws-site .ws-hero__book .ws-field label,.ws-site .ws-hero__book .ws-field .ws-label{font-size:12px}
.ws-site .ws-hero__book .ws-field :is(input,select){--ws-field-pad:10px 11px;padding:10px 11px;min-height:42px}
.ws-site .ws-hero__book .ws-rf>.ws-btn{padding-block:1em}
.ws-site .ws-hero__book .ws-rf.is-done{padding-block:36px}
.ws-site .ws-hero__book .ws-chat__log{max-height:min(440px,62vh)}
.ws-site .ws-hero--book-side .ws-slide__inner{max-width:min(560px,46vw)}
.ws-site .ws-hero--book-side .ws-hero__slides{min-height:max(620px,calc(var(--book-h,0px) + 140px + var(--over,0px)),calc(var(--copy-h,0px) + 120px + var(--over,0px)))}
/* A side form: the text block sits at the other end, lined up with that edge, whatever the hero
   variant (centred) or the theme (Palace's right-hand text) would otherwise do. bookAt:left
   (ws-hero--book-left) swaps them. The split variant puts the form below, so it keeps its layout. */
@media (min-width:981px){
  .ws-site .ws-hero.ws-hero--book-side:not(.ws-hero--split) .ws-slide__inner{margin-inline:0 auto;max-width:min(560px,46vw);text-align:left;justify-items:start}
  .ws-site .ws-hero.ws-hero--book-side:not(.ws-hero--split) .ws-slide p{margin-inline:0}
  .ws-site .ws-hero.ws-hero--book-side:not(.ws-hero--split) .ws-slide__inner :is(.ws-slide__ctas,.ws-extras){justify-content:flex-start}
  .ws-site .ws-hero.ws-hero--book-left .ws-hero__book-row{justify-content:flex-start}
  .ws-site .ws-hero.ws-hero--book-side.ws-hero--book-left:not(.ws-hero--split) .ws-slide__inner{margin-inline:auto 0;text-align:right;justify-items:end}
  .ws-site .ws-hero.ws-hero--book-side.ws-hero--book-left:not(.ws-hero--split) .ws-slide__inner :is(.ws-slide__ctas,.ws-extras){justify-content:flex-end}
  .ws-site .ws-hero.ws-hero--book-left:not(.ws-hero--split) .ws-hero__ui-row{justify-content:flex-end}
}
.ws-site .ws-hero--book-bottom{--copy-bottom:calc(var(--book-h,0px) + clamp(48px,7vh,80px))}
.ws-site .ws-hero--book-bottom .ws-hero__book{align-items:flex-end;padding-bottom:clamp(20px,4vh,40px)}
.ws-site .ws-hero--book-bottom .ws-hero__book .ws-rf{width:min(1080px,100%)}
.ws-site .ws-hero--book-bottom .ws-hero__book .ws-rf--chat{width:min(640px,100%)}
.ws-site .ws-hero--book-bottom .ws-hero__book-row{justify-content:center}
.ws-site .ws-hero--book-bottom .ws-hero__slides{min-height:max(calc(var(--book-h,0px) + 400px + var(--over,0px)),calc(var(--copy-h,0px) + var(--book-h,0px) + 140px + var(--over,0px)))}
.ws-site .ws-hero--book-bottom .ws-hero__ui{display:none}
.ws-site .ws-hero--book.ws-hero--split{--copy-bottom:0px}
.ws-site .ws-hero--book.ws-hero--split .ws-hero__book{position:relative;inset:auto;display:block;padding:8px 0 36px;pointer-events:auto}
.ws-site .ws-hero--book.ws-hero--split .ws-hero__book-row{justify-content:center}
.ws-site .ws-hero--book.ws-hero--split .ws-hero__book .ws-rf{width:min(1080px,100%);box-shadow:var(--shadow)}
.ws-site .ws-hero--book.ws-hero--split .ws-hero__slides{min-height:calc(var(--copy-h,0px) + 96px + var(--over,0px))}
.ws-site .ws-hero--book .ws-wrap .ws-hero__book .ws-wrap{padding-inline:0}
/* An info strip that overlaps the hero: the bottom form sits above it */
.ws-site .ws-hero--book-bottom:has(+ .ws-strip.is-overlap){--copy-bottom:calc(var(--book-h,0px) + 64px + clamp(48px,7vh,80px))}
.ws-site .ws-hero--book-bottom:has(+ .ws-strip.is-overlap) .ws-hero__book{padding-bottom:calc(64px + clamp(16px,3vh,28px))}
@media (max-width:980px){
  .ws-site .ws-hero--book{--copy-bottom:24px}
  .ws-site .ws-hero--book-side .ws-slide__inner{max-width:600px}
  .ws-site .ws-hero__book{position:relative;inset:auto;padding:0 0 28px;margin-top:-28px;display:block;background:linear-gradient(180deg,transparent 28px,var(--bg) 28px)}
  .ws-site .ws-hero__book-row,.ws-site .ws-hero--book-bottom .ws-hero__book-row{justify-content:center}
  .ws-site .ws-hero__book .ws-rf,.ws-site .ws-hero--book-bottom .ws-hero__book .ws-rf{width:100%;max-width:560px}
  .ws-site .ws-hero--book .ws-hero__ui{display:none}
  .ws-site .ws-hero--book:not(.ws-hero--split) .ws-hero__slides{height:max(clamp(500px,80vw,600px),calc(460px + var(--over,0px)));min-height:0}
  .ws-site .ws-hero--book.ws-hero--split .ws-hero__book{margin-top:0}
  .ws-site .ws-hero--book-bottom:has(+ .ws-strip.is-overlap){--copy-bottom:24px}
  .ws-site .ws-hero--book-bottom:has(+ .ws-strip.is-overlap) .ws-hero__book{padding-bottom:28px}
  .ws-site .ws-hero--book + .ws-strip.is-overlap{margin-top:0}
}

/* ---------- Image adjustments (an image's Adjust panel: fxc / fxs / fxo partials) ---------- */
/* Flip and rotate use the individual scale/rotate properties, so they stack with the hover zoom and
   the hero's Ken Burns transform. --fx-z (set by runtime initImageFx) zooms a turned or tilted
   photo just enough to keep its box covered. */
.ws-site .ws-fx>img,.ws-site .ws-fx>video{rotate:calc(var(--fx-r,0deg) + var(--fx-tilt,0deg));scale:calc(var(--fx-sx,1) * var(--fx-z,1)) calc(var(--fx-sy,1) * var(--fx-z,1))}
.ws-site .ws-fx--fx{--fx-sx:-1}
.ws-site .ws-fx--fy{--fx-sy:-1}
.ws-site .ws-fx--t1{--fx-r:90deg}
.ws-site .ws-fx--t2{--fx-r:180deg}
.ws-site .ws-fx--t3{--fx-r:270deg}
.ws-site .ws-fxo{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:calc(var(--fx-a,60) / 100);--fx-end:var(--fx-c2,transparent)}
.ws-site .ws-fx--c-black{--fx-c:#000}
.ws-site .ws-fx--c-white{--fx-c:#fff}
.ws-site .ws-fx--c-primary{--fx-c:var(--primary)}
.ws-site .ws-fx--c-deep{--fx-c:var(--primary-deep)}
.ws-site .ws-fx--c-secondary{--fx-c:var(--secondary)}
.ws-site .ws-fx--to-black{--fx-c2:#000}
.ws-site .ws-fx--to-white{--fx-c2:#fff}
.ws-site .ws-fx--to-primary{--fx-c2:var(--primary)}
.ws-site .ws-fx--to-deep{--fx-c2:var(--primary-deep)}
.ws-site .ws-fx--to-secondary{--fx-c2:var(--secondary)}
.ws-site .ws-fx--o-bottom .ws-fxo{background:linear-gradient(0deg,var(--fx-c,#000),var(--fx-end) 75%)}
.ws-site .ws-fx--o-top .ws-fxo{background:linear-gradient(180deg,var(--fx-c,#000),var(--fx-end) 75%)}
.ws-site .ws-fx--o-left .ws-fxo{background:linear-gradient(90deg,var(--fx-c,#000),var(--fx-end) 80%)}
.ws-site .ws-fx--o-right .ws-fxo{background:linear-gradient(270deg,var(--fx-c,#000),var(--fx-end) 80%)}
.ws-site .ws-fx--o-diagonal .ws-fxo{background:linear-gradient(135deg,var(--fx-c,#000),var(--fx-end))}
.ws-site .ws-fx--o-vignette .ws-fxo{background:radial-gradient(ellipse at center,var(--fx-c2,transparent) 35%,var(--fx-c,#000) 100%)}
.ws-site .ws-fx--o-tint .ws-fxo{background:var(--fx-c,#000)}
/* When clicked: a photo can open full screen or go to a link (the whole photo is the target) */
.ws-site .ws-imgzoom,.ws-site .ws-imglink{position:absolute;inset:0;z-index:3;display:block;margin:0;padding:0;border:0;background:none;border-radius:0;cursor:zoom-in}
.ws-site .ws-imglink{cursor:pointer}
.ws-site .ws-imgzoom::after,.ws-site .ws-ximg.is-zoom .ws-ximg__img::after{content:"";position:absolute;right:10px;bottom:10px;width:34px;height:34px;border-radius:50%;background:rgba(0,0,0,.55) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M15 4h5v5M9 20H4v-5M20 4l-6 6M4 20l6-6'/%3E%3C/svg%3E") center/16px no-repeat;opacity:0;transform:scale(.85);transition:opacity .2s,transform .2s;z-index:4}
.ws-site .ws-img:hover .ws-imgzoom::after,.ws-site .ws-imgzoom:focus-visible::after,.ws-site .ws-ximg.is-zoom:is(:hover,:focus-visible) .ws-ximg__img::after{opacity:1;transform:none}

/* Image element: a small photo in a section */
.ws-site .ws-ximg{display:inline-grid;gap:6px;width:var(--xw,140px);max-width:100%;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;text-decoration:none;vertical-align:top}
.ws-site .ws-ximg--small{--xw:140px}
.ws-site .ws-ximg--medium{--xw:240px}
.ws-site .ws-ximg--large{--xw:380px}
.ws-site .ws-ximg--wide{--xw:100%;flex-basis:100%}
.ws-site .ws-ximg__img{width:100%;aspect-ratio:4/3;border-radius:var(--radius)}
.ws-site .ws-ximg--square .ws-ximg__img{aspect-ratio:1/1}
.ws-site .ws-ximg--portrait .ws-ximg__img{aspect-ratio:3/4}
.ws-site .ws-ximg--circle .ws-ximg__img{aspect-ratio:1/1;border-radius:50%}
.ws-site .ws-ximg--circle .ws-ximg__img::after{right:50%;bottom:50%;translate:50% 50%}
.ws-site .ws-ximg.is-zoom{cursor:zoom-in}
.ws-site a.ws-ximg:hover .ws-ximg__img>img{transform:scale(1.05)}
.ws-site .ws-ximg__cap{font-size:13px;line-height:1.35;opacity:.8}
.ws-site .ws-ximg--circle .ws-ximg__cap{text-align:center}
.ws-site .ws-ximg:focus-visible{outline:2px solid var(--secondary);outline-offset:3px;border-radius:var(--radius)}

/* Seal: the favicon in the middle */
.ws-site .ws-seal__icon{width:44px;height:44px;object-fit:contain;display:block}
/* A favicon on a solid square (runtime initFavicon): blend the square into the disc behind it,
   with a little extra contrast so off-white or near-black edges go fully, and saturation back. */
.ws-site img.ws-fav.is-flat-light{mix-blend-mode:multiply;filter:brightness(1.05) contrast(1.15) saturate(1.2)}
.ws-site img.ws-fav.is-flat-dark{mix-blend-mode:screen;filter:brightness(.95) contrast(1.15) saturate(1.2)}
.ws-site img.ws-fav.is-flat-tile{border-radius:50%;object-fit:cover;filter:saturate(1.1);box-shadow:0 0 0 2px color-mix(in srgb,currentColor 30%,transparent)}
.ws-site .ws-seal__icon.is-flat-tile{width:58px;height:58px}
.ws-site .ws-chat__avatar img.is-flat-tile{width:100%;height:100%;box-shadow:none}
/* Logo colour (sealTint): runtime initInk lays .ws-ftint__ink, cut to the logo's shape, over the logo. */
.ws-site .ws-ftint{--ft-c:#fff}
.ws-site .ws-ftint--black{--ft-c:#000}
.ws-site .ws-ftint--primary{--ft-c:var(--primary)}
.ws-site .ws-ftint--deep{--ft-c:var(--primary-deep)}
.ws-site .ws-ftint--secondary{--ft-c:var(--secondary)}
.ws-site .ws-seal__mark.ws-ftint,.ws-site .ws-ftint>b{color:color-mix(in srgb,var(--ft-c) calc(var(--ft-s,100) * 1%),currentColor)}
.ws-site .ws-ftint__box{display:grid;isolation:isolate}
.ws-site .ws-ftint__box>*{grid-area:1/1}
.ws-site .ws-ftint__box--cut>img{opacity:calc(100 - var(--ft-s,100))}
.ws-site .ws-ftint__ink{place-self:stretch;background:var(--ft-c);opacity:calc(var(--ft-s,100) / 100);pointer-events:none;-webkit-mask:var(--ft-m) center/var(--ft-fit,contain) no-repeat;mask:var(--ft-m) center/var(--ft-fit,contain) no-repeat}
.ws-site .ws-ftint__ink--photo{mix-blend-mode:color;-webkit-mask:none;mask:none}
.ws-site .ws-ftint__ink--round{border-radius:50%}

/* ---------- Menu categories ---------- */
.ws-site .ws-cats{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:16px}
.ws-site .ws-cattile{display:grid;justify-items:center;align-content:start;gap:4px;text-align:center;text-decoration:none;min-width:0}
.ws-site .ws-cattile__img{width:100%;aspect-ratio:1/1;border-radius:var(--radius);transition:transform .35s}
.ws-site .ws-cattile:hover .ws-cattile__img{transform:translateY(-4px)}
.ws-site .ws-cattile b{font-family:var(--display);font-weight:var(--head-weight);font-size:16.5px;line-height:1.2;margin-top:8px}
.ws-site .ws-cattile small{font-size:12.5px;color:var(--muted)}
.ws-site .ws-cattile__mark{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:42px;font-weight:var(--head-weight);color:var(--secondary);background:var(--primary)}
.ws-site .ws-categories--arches .ws-cattile__img{aspect-ratio:3/4;border-radius:999px 999px 12px 12px}
.ws-site .ws-categories--chips .ws-cats{display:flex;flex-wrap:wrap;gap:10px}
.ws-site .ws-categories--chips .ws-cattile{display:flex;align-items:baseline;gap:8px;padding:10px 16px;border:1px solid var(--line);border-radius:999px;background:var(--bg);transition:border-color .2s,transform .2s}
.ws-site .ws-categories--chips .ws-cattile:hover{border-color:var(--fg);transform:translateY(-2px)}
.ws-site .ws-categories--chips .ws-cattile__img{display:none}
.ws-site .ws-categories--chips .ws-cattile b{margin:0;font-family:var(--body);font-weight:700;font-size:15px}
@media (max-width:760px){
  .ws-site .ws-categories:not(.ws-categories--chips) .ws-cats{display:flex;overflow-x:auto;scroll-snap-type:x proximity;gap:14px;scrollbar-width:none;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut)}
  .ws-site .ws-categories:not(.ws-categories--chips) .ws-cattile{flex:0 0 112px;scroll-snap-align:start}
}

/* ---------- Dish tabs ---------- */
.ws-site .ws-tabs{display:flex;flex-wrap:wrap;gap:6px;padding:5px;border-radius:999px;background:var(--tint)}
.ws-site .ws-tabs:empty{display:none}
.ws-site .ws-tabs button{border:0;background:none;padding:8px 16px;border-radius:999px;font:700 13.76px var(--body);color:var(--muted);cursor:pointer;transition:background-color .2s,color .2s}
.ws-site .ws-tabs button:hover{color:var(--fg)}
.ws-site .ws-tabs button.is-active,.ws-site .ws-dishtabs:not(.is-tabbed) .ws-tabs button:first-child{background:var(--primary);color:var(--on-primary)}
.ws-site .ws-tabs__panel~.ws-tabs__panel{display:none}
.ws-site .ws-dishtabs.is-tabbed .ws-tabs__panel{display:none}
.ws-site .ws-dishtabs.is-tabbed .ws-tabs__panel.is-active{display:block;animation:ws-fade .4s}
.ws-site .ws-scroller{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 3 * 20px) / 4);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding-bottom:4px}
.ws-site .ws-scroller::-webkit-scrollbar{display:none}
.ws-site .ws-scroller>*{scroll-snap-align:start}
.ws-site .ws-scroller__nav{display:flex;justify-content:center;gap:10px;margin-top:22px}
.ws-site .ws-scroller__nav button{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--fg);cursor:pointer;transition:background-color .2s,color .2s,border-color .2s}
.ws-site .ws-scroller__nav button:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.ws-site .ws-dishtabs__more{display:flex;justify-content:center;margin-top:18px}
.ws-site .ws-dcard{display:grid;grid-template-rows:auto 1fr;background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;min-width:0}
.ws-site .ws-dcard__img{aspect-ratio:4/3}
.ws-site .ws-dcard__img .ws-tag{position:absolute;z-index:2;left:10px;top:10px}
.ws-site .ws-dcard:hover .ws-dcard__img>img{transform:scale(1.06)}
.ws-site .ws-dcard__body{display:grid;gap:6px;padding:14px 16px 16px;align-content:start}
.ws-site .ws-dcard h3{font-family:var(--body);font-size:16.48px;letter-spacing:0;text-transform:none;font-weight:700}
.ws-site .ws-dcard p{font-size:13.76px;line-height:1.45;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.ws-site :is(.ws-tone--primary,.ws-tone--secondary,.ws-tone--dark,.ws-ink--light) .ws-dcard{--bg:var(--page-bg);--secondary-soft:var(--page-secondary-soft);--fg:var(--page-fg);--muted:var(--page-muted);--line:var(--page-line);--tint:var(--page-tint);--primary-text:var(--page-primary-text);--secondary-text:var(--page-secondary-text);color:var(--fg)}
@media (max-width:1080px){.ws-site .ws-scroller{grid-auto-columns:calc((100% - 2 * 20px) / 3)}}
@media (max-width:760px){.ws-site .ws-scroller{grid-auto-columns:72%;gap:14px;margin-inline:calc(-1 * var(--gut));padding-inline:var(--gut);scroll-padding-inline:var(--gut)}.ws-site .ws-scroller__nav{display:none}}

/* ---------- Offer panels ---------- */
.ws-site .ws-offers__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,440px),1fr));gap:20px}
.ws-site .ws-offer{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:22px;padding:clamp(24px,3.5vw,40px) clamp(24px,3.5vw,40px) 0;border-radius:calc(var(--radius) + 6px);overflow:hidden;min-height:340px;border:0;background-color:var(--bg);color:var(--fg)}
.ws-site .ws-offer.ws-tone--tint{background-color:var(--tint)}
.ws-site .ws-offer__copy{display:grid;gap:12px;align-content:center;justify-items:start;padding-bottom:clamp(24px,3.5vw,40px)}
.ws-site .ws-offer h3{font-size:clamp(28.8px,3.2vw,41.6px);line-height:1.02}
.ws-site .ws-offer h3 em{display:block;font-style:normal;color:var(--secondary-text)}
.ws-site .ws-offer.ws-tone--secondary h3 em{color:var(--primary-on-secondary)}
.ws-site .ws-offer p{color:var(--muted)}
.ws-site .ws-offer .ws-btn{margin-top:4px}
.ws-site .ws-offer__img{align-self:end;aspect-ratio:3/4;width:100%;border-radius:calc(var(--radius) + 4px) calc(var(--radius) + 4px) 0 0}
@media (max-width:520px){.ws-site .ws-offer{grid-template-columns:1fr 38%;gap:14px;min-height:0}}
/* Both a collection and a delivery discount: one half each across the top, then the button beside a shorter photo that starts level with it */
.ws-site .ws-offer.ws-offer--pair{grid-template-columns:minmax(0,1fr) minmax(0,1fr);row-gap:clamp(20px,2.6vw,28px);min-height:0}
.ws-site .ws-offer__pair{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:inherit;column-gap:22px}
.ws-site .ws-offer__half{display:grid;gap:12px;align-content:start;justify-items:start}
.ws-site .ws-offer--pair h3{font-size:clamp(32px,3.6vw,48px)}
.ws-site .ws-offer--pair h3 em{font-size:.5em;line-height:1.15;margin-top:6px}
.ws-site .ws-offer--pair .ws-offer__copy{align-content:start}
.ws-site .ws-offer--pair .ws-btn{margin-top:0}
.ws-site .ws-offer__note{font-size:14px;line-height:1.45}
.ws-site .ws-offer--pair .ws-offer__img{align-self:stretch;aspect-ratio:auto;min-height:170px}

/* ---------- Image band ---------- */
.ws-site .ws-band{--ov:75%;--band-bg:color-mix(in srgb,var(--primary) 30%,#000);--fg:#fff;--muted:rgba(255,255,255,.88);--line:rgba(255,255,255,.3);--tint:rgba(255,255,255,.12);--primary-text:#fff;--secondary-text:color-mix(in srgb,var(--secondary) 45%,#fff);isolation:isolate;overflow:clip;color:#fff;text-align:center;background:var(--band-bg);padding-block:calc(clamp(90px,12vw,150px) * var(--sp-k,1))}
.ws-site .ws-band--h-tall{padding-block:calc(clamp(130px,16vw,210px) * var(--sp-k,1))}
.ws-site .ws-band__bg{position:absolute;inset:-8% 0;z-index:-1;background:var(--band-bg)} /* dark enough for white and accent text when there is no photo */
.ws-site .ws-band__bg::after{content:"";position:absolute;inset:0;z-index:1;background:color-mix(in srgb,var(--primary-deep) var(--ov),transparent)}
.ws-site .ws-band.ws-tone--custom{--band-bg:var(--tone-bg);color:var(--fg)}
.ws-site .ws-band.ws-tone--custom .ws-band__bg::after{background:color-mix(in srgb,var(--tone-bg) var(--ov),transparent)}
.ws-site .ws-band__bg:hover>img{transform:none}
.ws-site .ws-band__inner{display:grid;justify-items:center;gap:18px}
.ws-site .ws-band .ws-eyebrow{color:color-mix(in srgb,var(--secondary) 45%,#fff)}
.ws-site .ws-band h2{font-size:clamp(40px,6.6vw,84px);line-height:.98;max-width:16ch}
.ws-site .ws-band h2 em{font-style:normal;color:var(--secondary-on-dark)}
.ws-site .ws-band p{max-width:46ch;opacity:.9;font-size:17.28px}
.ws-site .ws-band__ctas{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:6px}
.ws-site .ws-band__ctas:empty{display:none}
@supports (animation-timeline:view()){.ws-site .ws-band__bg>img{animation:ws-parallax linear both;animation-timeline:view()}}
@keyframes ws-parallax{from{transform:translateY(-6%) scale(1.06)}to{transform:translateY(6%) scale(1.06)}}

/* ---------- How it works ---------- */
.ws-site .ws-steps__list{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:20px;counter-reset:none}
.ws-site .ws-step{position:relative;display:grid;gap:10px;align-content:start;padding:30px 26px 28px;border:1px solid var(--line);border-radius:var(--radius);background:var(--bg)}
.ws-site .ws-step__num{position:absolute;top:18px;right:22px;font-family:var(--display);font-weight:var(--head-weight);font-size:44px;line-height:1;color:color-mix(in srgb,var(--primary-text) 18%,transparent)}
.ws-site .ws-step h3{font-size:19.2px}
.ws-site .ws-step p{color:var(--muted);font-size:15.2px}
.ws-site .ws-steps__cta{display:flex;justify-content:center;margin-top:32px}
.ws-site :is(.ws-tone--primary,.ws-tone--secondary,.ws-tone--dark,.ws-ink--light) .ws-step{--bg:var(--page-bg);--secondary-soft:var(--page-secondary-soft);--fg:var(--page-fg);--muted:var(--page-muted);--line:var(--page-line);--tint:var(--page-tint);--primary-text:var(--page-primary-text);--secondary-text:var(--page-secondary-text);color:var(--fg)}

/* ---------- Questions & answers ---------- */
.ws-site .ws-faq__grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(28px,5vw,72px);align-items:start}
.ws-site .ws-faq__intro{display:grid;gap:18px;justify-items:start;position:sticky;top:110px}
.ws-site .ws-faq__intro .ws-head{margin:0}
.ws-site .ws-faq__list{display:grid;gap:10px}
.ws-site .ws-faq__item{border:1px solid var(--line);border-radius:var(--radius);background:var(--bg);overflow:hidden}
.ws-site .ws-faq__item summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;cursor:pointer;list-style:none;font-weight:700;font-size:16.5px}
.ws-site .ws-faq__item summary::-webkit-details-marker{display:none}
.ws-site .ws-faq__item summary::after{content:"";flex:none;width:10px;height:10px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .25s;opacity:.7}
.ws-site .ws-faq__item[open] summary::after{transform:rotate(225deg) translateY(-2px)}
.ws-site .ws-faq__a{padding:0 22px 20px;color:var(--muted);font-size:15.5px}
.ws-site :is(.ws-tone--primary,.ws-tone--secondary,.ws-tone--dark,.ws-ink--light) .ws-faq__item{--bg:var(--page-bg);--secondary-soft:var(--page-secondary-soft);--fg:var(--page-fg);--muted:var(--page-muted);--line:var(--page-line);--tint:var(--page-tint);--primary-text:var(--page-primary-text);--secondary-text:var(--page-secondary-text);color:var(--fg)}
@media (max-width:860px){.ws-site .ws-faq__grid{grid-template-columns:1fr}.ws-site .ws-faq__intro{position:static}}

/* ---------- WhatsApp: button style, floating chat button, phone numbers as WhatsApp ---------- */
.ws-site .ws-waicon{width:1.25em;height:1.25em;flex:none}
.ws-site .ws-btn--whatsapp{background:#128c4a;color:#fff;border-color:#128c4a}
.ws-site .ws-btn--whatsapp:hover{background:#0e7a40;border-color:#0e7a40;color:#fff}
.ws-site .ws-wa{display:inline-flex;align-items:center;gap:.5em}
.ws-site .ws-wafab{position:fixed;z-index:70;bottom:max(18px,env(safe-area-inset-bottom,0px));right:18px;display:grid;justify-items:end;gap:10px;padding:0;margin:0;background:none;pointer-events:none}
.ws-site .ws-wafab--left{right:auto;left:18px;justify-items:start}
.ws-site .ws-wafab>*{pointer-events:auto}
.ws-site .ws-wafab__btn{display:inline-flex;align-items:center;gap:10px;min-width:58px;height:58px;padding:0 17px;border-radius:999px;background:#25d366;color:#fff;text-decoration:none;font-weight:700;font-size:15px;box-shadow:0 10px 26px -8px rgba(0,0,0,.45);transition:transform .2s,box-shadow .2s}
.ws-site .ws-wafab__btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 14px 30px -8px rgba(0,0,0,.5);color:#fff}
.ws-site .ws-wafab__btn .ws-waicon{width:26px;height:26px}
.ws-site .ws-wafab__btn span{color:#0b2e17}
.ws-site .ws-wafab.is-pulse .ws-wafab__btn{animation:ws-wapulse 2.8s ease-out infinite}
@keyframes ws-wapulse{0%{box-shadow:0 10px 26px -8px rgba(0,0,0,.45),0 0 0 0 rgba(37,211,102,.55)}70%{box-shadow:0 10px 26px -8px rgba(0,0,0,.45),0 0 0 16px rgba(37,211,102,0)}100%{box-shadow:0 10px 26px -8px rgba(0,0,0,.45),0 0 0 0 rgba(37,211,102,0)}}
.ws-site .ws-wafab__bubble{position:relative;max-width:240px;padding:12px 34px 12px 14px;border-radius:14px;background:#fff;color:#16181d;font-size:14px;line-height:1.4;box-shadow:0 12px 30px -10px rgba(0,0,0,.35);animation:ws-rise .5s cubic-bezier(.2,.7,.2,1)}
.ws-site .ws-wafab__bubble[hidden]{display:none}
.ws-site .ws-wafab__bubble button{position:absolute;top:4px;right:4px;width:26px;height:26px;border:0;border-radius:50%;background:transparent;color:inherit;font-size:18px;line-height:1;cursor:pointer;opacity:.6}
.ws-site.is-editing .ws-wafab__bubble[hidden]{display:block}
@media (max-width:760px){
  body:has(.ws-orderbar) .ws-site .ws-wafab{bottom:calc(88px + env(safe-area-inset-bottom,0px))}
  .ws-site .ws-wafab__btn{height:54px;min-width:54px;padding:0 15px}
}
.ws-site a.ws-wa-link{display:inline-flex;align-items:center;gap:.4em}
.ws-site .ws-wa-mini{display:inline-grid;place-items:center;width:1.9em;height:1.9em;margin-left:.45em;border-radius:50%;background:#25d366;color:#fff;vertical-align:middle;text-decoration:none}
.ws-site .ws-wa-mini .ws-waicon{width:1.15em;height:1.15em}
/* ---------- Mobile action bar ---------- */
.ws-site .ws-orderbar{display:none}
@media (max-width:760px){
  .ws-site .ws-orderbar{display:block;padding:0}
  .ws-site .ws-orderbar__space{height:calc(76px + env(safe-area-inset-bottom,0px))}
  .ws-site .ws-orderbar__bar{position:fixed;z-index:60;left:0;right:0;bottom:0;display:flex;gap:8px;align-items:center;padding:10px max(12px,env(safe-area-inset-left,0px)) calc(10px + env(safe-area-inset-bottom,0px));background:var(--bg);color:var(--fg);border-top:1px solid var(--line);box-shadow:0 -10px 30px -18px rgba(0,0,0,.45);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
  .ws-site.ws-js .ws-orderbar:not(.is-shown) .ws-orderbar__bar{transform:translateY(120%)}
  .ws-site .ws-orderbar__bar .ws-btn{flex:1 1 0;padding-block:1em}
  .ws-site .ws-orderbar__call{flex:none;display:grid;justify-items:center;gap:1px;width:56px;font-size:11px;font-weight:700;text-decoration:none;color:inherit}
  .ws-site .ws-orderbar__call svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
}
/* In the editor it shows in place, so it can be edited at any width */
.ws-site.is-editing .ws-orderbar{display:block;padding:12px 0}
.ws-site.is-editing .ws-orderbar__space{display:none}
.ws-site.is-editing .ws-orderbar__bar{position:relative;display:flex;gap:8px;align-items:center;max-width:460px;margin:0 auto;padding:10px 12px;transform:none;border:1px dashed var(--line);border-radius:var(--radius);background:var(--bg)}
.ws-site.is-editing .ws-orderbar__bar .ws-btn{flex:1 1 0}
.ws-site.is-editing .ws-orderbar__call{display:grid;justify-items:center;width:56px;font-size:11px;font-weight:700;text-decoration:none}
.ws-site.is-editing .ws-orderbar__call svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8}

/* ---------- Form styles (sections.html rf-* and cf-*) ----------
   Every style is a .ws-form with .ws-rf--{style}; each form is a size container (rf) so a
   style lays itself out for the space it is in: a hero card, a page column or a phone. */
.ws-site .ws-rf{container:rf/inline-size}
.ws-site .ws-rf__title{grid-column:1/-1;font-size:24px;margin:0 0 2px}
.ws-site .ws-rf .ws-pane{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;border:0;margin:0;padding:0;min-width:0}
.ws-site .ws-rf .ws-pane:not(.is-active){display:none}
.ws-site .ws-rf[data-flow="stack"] .ws-pane.is-answered{display:grid}
.ws-site .ws-rf__q{float:left;width:100%;grid-column:1/-1;padding:0;margin:0 0 2px;font-family:var(--display);font-weight:var(--head-weight);font-size:21px;line-height:1.2}
.ws-site .ws-rf__nav{grid-column:1/-1;display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:4px}
.ws-site .ws-rf__nav .ws-btn{min-width:132px;padding-block:1em}
/* Back takes its colours from the form card itself: themes repaint ghost buttons for a dark hero,
   an accent or a call-to-action band, and none of that may reach a button on the card. */
.ws-site .ws-rf .ws-btn.ws-rf__back{background:var(--bg);color:var(--fg);border:0;box-shadow:inset 0 0 0 1.5px color-mix(in srgb,var(--fg) 75%,var(--bg))}
.ws-site .ws-rf .ws-btn.ws-rf__back:hover{background:color-mix(in srgb,var(--fg) 7%,var(--bg));box-shadow:inset 0 0 0 1.5px var(--fg)}
.ws-site .ws-rf .ws-btn.ws-rf__back:focus-visible{outline:2px solid var(--secondary);outline-offset:2px}
.ws-site .ws-rf__sum{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin:0;padding:11px 14px;border-radius:calc(var(--radius) * .6);background:var(--tint);font-weight:700;font-size:14.4px}
.ws-site .ws-rf__sum i{width:4px;height:4px;border-radius:50%;background:currentColor;opacity:.4}
.ws-site .ws-rf__change{margin-left:auto;background:none;border:0;padding:0;color:var(--primary-text);font:700 13.6px var(--body);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.ws-site .ws-field.is-invalid :is(.ws-days,.ws-slots,.ws-cal,.ws-party,.ws-stepper){outline:2px solid #b3261e;outline-offset:4px;border-radius:10px}
/* Host guard for the pickers that are not inside .ws-field */
.ws-site :is(.ws-blank,.ws-bar__cell) select{font-size:inherit!important;background-color:transparent!important;color:inherit!important;text-align:left!important;padding:2px 22px 2px 4px!important}

/* Progress, day chips, time slots, guest stepper and month calendar */
.ws-site .ws-rf__progress{grid-column:1/-1;display:flex;gap:6px;list-style:none;margin:0 0 4px;padding:0}
.ws-site .ws-rf__progress li{flex:1;display:flex;align-items:center;gap:8px;min-width:0;padding-bottom:10px;border-bottom:3px solid var(--line);font-size:12.8px;font-weight:700;color:var(--muted);transition:border-color .3s,color .3s}
.ws-site .ws-rf__progress span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ws-site .ws-rf__progress i{flex:none;display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--line);color:var(--fg);font:800 12px/1 var(--body);font-style:normal}
.ws-site .ws-rf__progress li.is-active{color:var(--fg);border-color:var(--primary)}
.ws-site .ws-rf__progress li:is(.is-active,.is-done) i{background:var(--primary-sm);color:var(--on-primary-sm)}
.ws-site .ws-rf__progress li.is-done{border-color:color-mix(in srgb,var(--primary) 45%,var(--line))}
.ws-site .ws-days{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x proximity;padding:2px 2px 8px;margin:0 -2px;scrollbar-width:thin;overscroll-behavior-x:contain}
.ws-site .ws-days>*{flex:0 0 auto;scroll-snap-align:start;position:relative;display:grid;justify-items:center;gap:1px;min-width:62px;padding:8px 6px;border:1px solid var(--line);border-radius:calc(var(--radius) * .6 + 4px);background:var(--bg);color:var(--fg);font:inherit;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.ws-site .ws-days small{font-size:10.9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.ws-site .ws-days b{font-family:var(--display);font-size:20px;line-height:1.15}
.ws-site .ws-days>*:hover{border-color:var(--primary)}
.ws-site .ws-days .is-active{background:var(--primary-sm);border-color:var(--primary-sm);color:var(--on-primary-sm)}
.ws-site .ws-days .is-active small{color:inherit;opacity:.85}
.ws-site .ws-days__more input{position:absolute;inset:0;width:100%;height:100%;min-height:0;padding:0;border:0;opacity:0;cursor:pointer}
.ws-site .ws-slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(74px,1fr));gap:8px}
.ws-site .ws-slots button{padding:10px 6px;border:1px solid var(--line);border-radius:calc(var(--radius) * .6);background:var(--bg);color:var(--fg);font:700 14.4px var(--body);font-variant-numeric:tabular-nums;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.ws-site .ws-slots button:hover{border-color:var(--primary)}
.ws-site .ws-slots button.is-active{background:var(--primary-sm);color:var(--on-primary-sm);border-color:var(--primary-sm)}
.ws-site .ws-slots__empty{grid-column:1/-1;color:var(--muted);font-size:14.4px;padding:8px 0}
.ws-site .ws-stepper{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:46px;padding:4px;border:1px solid var(--line);border-radius:calc(var(--radius) * .6);background:var(--bg)}
.ws-site .ws-stepper button{width:38px;height:38px;border:0;border-radius:calc(var(--radius) * .5);background:var(--tint);color:var(--fg);font:700 20px/1 var(--body);cursor:pointer}
.ws-site .ws-stepper button:disabled{opacity:.35;cursor:default}
.ws-site .ws-stepper output{font-weight:700}
.ws-site .ws-cal{padding:12px;border:1px solid var(--line);border-radius:calc(var(--radius) * .6 + 4px);background:var(--bg)}
.ws-site .ws-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.ws-site .ws-cal__head b{font-family:var(--display);font-size:17px}
.ws-site .ws-cal__head button{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--bg);color:var(--fg);font:400 22px/1 var(--body);cursor:pointer}
.ws-site .ws-cal__head button:disabled{opacity:.3;cursor:default}
.ws-site .ws-cal__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:3px;text-align:center}
.ws-site .ws-cal__dow{padding:4px 0;font-size:11px;font-weight:800;color:var(--muted)}
.ws-site .ws-cal__grid button{height:clamp(34px,9cqi,44px);width:min(100%,44px);justify-self:center;border:0;border-radius:50%;background:none;color:var(--fg);font:600 14px var(--body);cursor:pointer}
.ws-site .ws-cal__grid button:hover:not(:disabled){background:var(--tint)}
.ws-site .ws-cal__grid button:disabled{opacity:.3;cursor:default}
.ws-site .ws-cal__grid button[data-today]{box-shadow:inset 0 0 0 1.5px var(--line)}
.ws-site .ws-cal__grid button.is-active{background:var(--primary-sm);color:var(--on-primary-sm)}

/* Sentence: the details are blanks in two lines of text */
.ws-site .ws-says{margin:0;font-family:var(--display);font-weight:var(--head-weight);font-size:clamp(20px,2.3vw,27px);line-height:2;color:var(--fg)}
.ws-site .ws-blank{display:inline-block;position:relative;vertical-align:baseline}
.ws-site .ws-blank :is(input,select){font:inherit;font-size:inherit;line-height:1.3;color:var(--fg);background:transparent;border:0;border-bottom:2px solid color-mix(in srgb,var(--primary) 55%,var(--line));border-radius:0;padding:0 4px 2px;min-height:0;width:9ch;-webkit-appearance:none;appearance:none;cursor:pointer}
.ws-site .ws-blank select{width:auto;padding-right:22px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M1 1l5 5 5-5'/%3E%3C/svg%3E") right 4px center/11px no-repeat}
.ws-site .ws-blank input[type="date"]{width:auto}
.ws-site .ws-blank--wide input{width:15ch}
.ws-site .ws-blank--full{display:block}
.ws-site .ws-blank--full input{width:100%}
.ws-site .ws-blank :is(input,select):focus{outline:none;border-bottom-color:var(--secondary)}
.ws-site .ws-blank input::placeholder{color:var(--muted);opacity:.65;font-style:italic;font-weight:400}
.ws-site .ws-blank .is-invalid{border-bottom-color:#b3261e}
/* Boxed labels: each label sits inside the top of its box; "Your visit" over "Your details". */
.ws-site .ws-rf--boxed{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.ws-site .ws-rf--boxed>*{grid-column:span 3}
.ws-site .ws-rf--boxed>.ws-field--third{grid-column:span 2}
.ws-site .ws-rf--boxed>:is(.ws-rf__title,.ws-rf__group,.ws-field--full,.ws-form__msg,.ws-btn){grid-column:1/-1}
.ws-site .ws-rf__group{margin:6px 0 -2px;font:700 12px/1.3 var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--secondary-text)}
.ws-site .ws-rf--boxed>.ws-rf__group:first-of-type{margin-top:0}
.ws-site .ws-rf:is(.ws-rf--boxed,.ws-rf--mini) .ws-field:not(:has(.ws-chips)){--ws-field-bg:transparent;--ws-field-pad:2px 13px 10px;gap:0;border:1px solid var(--line);border-radius:calc(var(--radius) * .6);background:var(--bg);transition:border-color .2s,box-shadow .2s}
.ws-site .ws-rf:is(.ws-rf--boxed,.ws-rf--mini) .ws-field:not(:has(.ws-chips)) label{padding:9px 13px 0;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);cursor:text}
.ws-site .ws-rf:is(.ws-rf--boxed,.ws-rf--mini) .ws-field :is(input,select,textarea){border:0;border-radius:inherit;background:transparent;box-shadow:none;padding:2px 13px 10px;min-height:0;font-size:15.36px}
.ws-site .ws-rf:is(.ws-rf--boxed,.ws-rf--mini) .ws-field :is(input,select,textarea):focus{box-shadow:none}
.ws-site .ws-rf:is(.ws-rf--boxed,.ws-rf--mini) .ws-field:not(:has(.ws-chips)):focus-within{border-color:var(--secondary);box-shadow:0 0 0 3px color-mix(in srgb,var(--secondary) 25%,transparent)}
.ws-site .ws-rf:is(.ws-rf--boxed,.ws-rf--mini) .ws-field:has(.is-invalid){border-color:#b3261e;box-shadow:0 0 0 3px rgba(179,38,30,.15)}
.ws-site :is(.ws-rf--boxed,.ws-rf--mini) .ws-field textarea{min-height:72px}
.ws-site .ws-rf:is(.ws-rf--boxed,.ws-rf--mini) .ws-field:has(.ws-chips) .ws-label{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
@container rf (max-width:420px){.ws-site .ws-rf--boxed>*,.ws-site .ws-rf--boxed>.ws-field--third{grid-column:1/-1}}

/* Steps: one question at a time */
.ws-site .ws-rf--steps{grid-template-columns:1fr}

/* Compact steps: guests, date and time on one line, then the details; labels sit in the boxes */
.ws-site .ws-rf--mini{grid-template-columns:1fr;gap:12px}
.ws-site .ws-rf.ws-rf--mini .ws-pane{grid-template-columns:repeat(12,minmax(0,1fr));gap:10px}
.ws-site .ws-rf--mini .ws-pane>*{grid-column:1/-1}
/* Side by side when there is room: a phone number is short and an email address long; with a
   title, the title and the names share a row. */
@container rf (min-width:401px){
  .ws-site .ws-rf--mini .ws-pane>.ws-field:not(.ws-field--full){grid-column:span 6}
  .ws-site .ws-rf--mini .ws-pane>.ws-field:has([name="telephone"]){grid-column:span 5}
  .ws-site .ws-rf--mini .ws-pane>.ws-field:has([name="email"]){grid-column:span 7}
  .ws-site .ws-rf--mini .ws-pane:has([name="titleId"])>.ws-field:has(:is([name="titleId"],[name="firstName"],[name="lastName"])){grid-column:span 4}
  .ws-site .ws-rf--mini .ws-pane:has([name="titleId"])>.ws-field:has([name="fullName"]){grid-column:span 8}
}
.ws-site .ws-rf__legend{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ws-site .ws-rf__when{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) minmax(0,1fr);gap:10px}
.ws-site .ws-rf--mini .ws-rf__progress{margin:0}
.ws-site .ws-rf--mini .ws-rf__progress li{gap:7px;padding-bottom:8px;border-bottom-width:2px;font-size:12px}
.ws-site .ws-rf--mini .ws-rf__progress i{width:20px;height:20px;font-size:11px}
.ws-site .ws-rf--mini .ws-rf__sum{padding:9px 12px;font-size:13.6px}
.ws-site .ws-rf--mini .ws-chips{gap:5px}
.ws-site .ws-rf--mini .ws-chips label{padding:7px 13px;font-size:13.44px}
.ws-site .ws-rf--mini .ws-field:has(.ws-chips){gap:5px}
.ws-site .ws-rf.ws-rf--mini .ws-field textarea{min-height:58px;height:62px}
.ws-site .ws-rf--mini .ws-rf__nav{flex-wrap:nowrap;margin-top:2px}
.ws-site .ws-rf--mini .ws-rf__nav .ws-btn{flex:1 1 auto;min-width:0;padding-block:.95em}
.ws-site .ws-rf--mini .ws-rf__nav .ws-rf__back{flex:0 0 auto;padding-inline:1.25em}
@container rf (max-width:400px){
  .ws-site .ws-rf__when{grid-template-columns:1fr 1fr}
  .ws-site .ws-rf__when>.ws-field--date{grid-column:1/-1;order:-1}
}
/* Date fields read "23 Feb" (runtime.js dateFace): the browser's own text, with the year, is hidden under it */
.ws-site .ws-date{position:relative;display:block;min-width:0}
.ws-site .ws-rf .ws-date>input{color:transparent;cursor:pointer}
.ws-site .ws-rf .ws-date>input::-webkit-datetime-edit{opacity:0}
/* the browser's calendar icon is black (and the host page makes it white), so it is drawn in the card's colours instead */
.ws-site .ws-rf .ws-date>input::-webkit-calendar-picker-indicator{opacity:0;filter:none;cursor:pointer}
.ws-site .ws-date__face{position:absolute;inset:0;display:flex;align-items:center;gap:8px;overflow:hidden;white-space:nowrap;color:var(--fg);pointer-events:none}
.ws-site .ws-date__face.is-empty{color:var(--muted)}
.ws-site .ws-date__face::after{content:"";flex:none;width:16px;height:16px;margin-left:auto;background:var(--muted);-webkit-mask:var(--ws-cal-icon) center/contain no-repeat;mask:var(--ws-cal-icon) center/contain no-repeat;--ws-cal-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Crect x='3.5' y='5' width='17' height='15.5' rx='2'/%3E%3Cpath d='M3.5 10h17M8 3v4M16 3v4'/%3E%3C/svg%3E")}

/* Booking bar: date, time and guests in one line, details after */
.ws-site .ws-rf--bar{grid-template-columns:1fr;gap:12px;padding:12px}
.ws-site .ws-rf--bar .ws-pane{grid-template-columns:1fr;gap:12px}
.ws-site .ws-rf--bar[data-flow] .ws-pane.is-answered{display:none}
.ws-site .ws-rf--bar .ws-rf__title{margin:4px 6px 0;font-size:20px}
.ws-site .ws-bar{display:flex;flex-wrap:wrap;align-items:stretch;border:1px solid var(--line);border-radius:calc(var(--radius) * .6 + 4px);background:var(--bg);overflow:hidden}
.ws-site .ws-bar__cell{flex:1 1 150px;display:grid;gap:2px;align-content:center;min-width:0;padding:10px 16px;border-right:1px solid var(--line);cursor:pointer}
.ws-site .ws-bar__cell--wide{flex-basis:230px}
.ws-site .ws-bar__cell>span{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ws-site .ws-bar__cell :is(input,select){width:100%;min-height:28px;padding:2px 0;border:0;background:transparent;color:var(--fg);font:700 16px var(--body);outline:none}
.ws-site .ws-bar__cell:focus-within{background:var(--tint)}
.ws-site .ws-bar__cell:has(.is-invalid){box-shadow:inset 0 -3px #b3261e}
.ws-site .ws-bar>.ws-btn{flex:0 0 auto;min-height:64px;margin:0;padding:0 28px;border-radius:0}
.ws-site .ws-bar>.ws-btn:hover{transform:none;box-shadow:none;filter:brightness(1.08)}
@container rf (max-width:660px){
  .ws-site .ws-bar{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
  .ws-site .ws-bar__cell{border-bottom:1px solid var(--line)}
  .ws-site .ws-bar__cell:nth-child(3n){border-right:0}
  .ws-site .ws-bar__cell--wide,.ws-site .ws-bar>.ws-btn{grid-column:1/-1;border-right:0}
  .ws-site .ws-bar>.ws-btn{min-height:54px}
}
@container rf (max-width:440px){
  .ws-site .ws-bar{grid-template-columns:1fr 1fr}
  .ws-site .ws-bar__cell:nth-child(3n){border-right:1px solid var(--line)}
  .ws-site .ws-bar__cell:nth-child(2n){border-right:0}
  .ws-site .ws-bar__cell:nth-child(3):not(.ws-bar__cell--wide){grid-column:1/-1;border-right:0}
}

/* Chat: questions as messages, answers as quick replies */
.ws-site .ws-rf--chat{grid-template-columns:1fr;gap:0;padding:0;overflow:hidden}
.ws-site .ws-chat__head{display:flex;align-items:center;gap:12px;padding:14px 18px;background:var(--primary);color:var(--on-primary)}
.ws-site .ws-chat__avatar{flex:none;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;overflow:hidden;isolation:isolate;background:var(--bg);color:var(--primary-text);font:800 17px var(--display)}
.ws-site .ws-chat__avatar img{width:72%;height:72%;object-fit:contain}
.ws-site .ws-chat__head b{display:block;font-size:15.5px;line-height:1.2}
.ws-site .ws-chat__head small{display:block;font-size:12px;opacity:.8}
.ws-site .ws-chat__log{display:grid;gap:14px;align-content:start;padding:18px;max-height:min(560px,72vh);overflow:auto;background:var(--tint)}
.ws-site .ws-rf--chat .ws-pane{grid-template-columns:1fr;gap:10px}
.ws-site .ws-bubble{justify-self:start;max-width:86%;padding:10px 14px;border-radius:18px 18px 18px 5px;background:var(--bg);box-shadow:0 1px 2px rgba(0,0,0,.08);font-size:15.2px;line-height:1.45;animation:ws-pop .35s cubic-bezier(.2,.8,.3,1.2) both}
.ws-site .ws-bubble--me{justify-self:end;border-radius:18px 18px 5px 18px;background:var(--primary-sm);color:var(--on-primary-sm);cursor:pointer}
.ws-site .ws-rf--chat .ws-pane:not(.is-answered) [data-answer]{display:none}
.ws-site .ws-rf--chat .ws-pane.is-answered>:not(.ws-bubble){display:none}
.ws-site .ws-replies{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end}
.ws-site .ws-rf--chat .ws-party button{width:auto;min-width:44px;height:40px;padding:0 14px;border-radius:999px}
.ws-site .ws-rf--chat .ws-days{max-width:100%;justify-self:end}
.ws-site .ws-rf--chat .ws-slots{display:flex;flex-wrap:wrap;justify-content:flex-end}
.ws-site .ws-rf--chat .ws-slots button{padding:8px 14px;border-radius:999px}
.ws-site .ws-chat__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:14px;border-radius:16px;background:var(--bg)}
.ws-site .ws-rf--chat .ws-pane>.ws-btn,.ws-site .ws-rf--chat .ws-rf__nav{justify-self:end}
.ws-site .ws-rf--chat .ws-pane>.ws-field textarea{background:var(--bg)}
.ws-site .ws-rf--chat .ws-form__msg{margin:0 18px 18px}
.ws-site .ws-rf--chat.is-done{padding:48px 24px}
@keyframes ws-pop{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@container rf (max-width:460px){.ws-site .ws-chat__fields,.ws-site .ws-rf .ws-pane{grid-template-columns:1fr}}

/* Calendar: a month to pick from, times and guests beside it */
.ws-site .ws-calwrap{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:20px;align-items:start}
.ws-site .ws-calside{display:grid;gap:16px;min-width:0}
.ws-site .ws-rf--calendar .ws-slots{grid-template-columns:repeat(auto-fill,minmax(68px,1fr));max-height:236px;overflow:auto;padding:2px}
@container rf (max-width:500px){.ws-site .ws-calwrap{grid-template-columns:1fr}}

/* Ticket: a live booking stub beside the fields, with punched notches */
.ws-site .ws-rf--ticket{display:block;padding:0;background:transparent;border:0;box-shadow:none}
.ws-site .ws-ticket{--r:calc(var(--radius) + 2px);display:grid;grid-template-columns:minmax(190px,.42fr) minmax(0,1fr);filter:drop-shadow(0 22px 28px rgba(20,14,10,.16))}
.ws-site .ws-ticket__stub{display:flex;flex-direction:column;gap:16px;padding:28px 26px;background:var(--primary);color:var(--on-primary);border-radius:var(--r) 0 0 var(--r);
  -webkit-mask:radial-gradient(circle 12px at 100% 0,#0000 97%,#000) top/100% 51% no-repeat,radial-gradient(circle 12px at 100% 100%,#0000 97%,#000) bottom/100% 51% no-repeat;
  mask:radial-gradient(circle 12px at 100% 0,#0000 97%,#000) top/100% 51% no-repeat,radial-gradient(circle 12px at 100% 100%,#0000 97%,#000) bottom/100% 51% no-repeat}
.ws-site .ws-ticket__label{font-size:11px;font-weight:800;letter-spacing:.24em;text-transform:uppercase;opacity:.8}
.ws-site .ws-ticket__venue{font-family:var(--display);font-weight:var(--head-weight);font-size:24px;line-height:1.12}
.ws-site .ws-ticket__facts{display:grid;gap:12px;margin:auto 0 0}
.ws-site .ws-ticket__facts div{display:grid;gap:1px;padding-top:10px;border-top:1px solid color-mix(in srgb,var(--on-primary) 24%,transparent)}
.ws-site .ws-ticket__facts dt{font-size:11px;letter-spacing:.14em;text-transform:uppercase;opacity:.75}
.ws-site .ws-ticket__facts dd{margin:0;font-size:18px;font-weight:700}
.ws-site .ws-ticket__code{height:34px;border-radius:2px;opacity:.55;background:repeating-linear-gradient(90deg,currentColor 0 2px,transparent 2px 4px,currentColor 4px 5px,transparent 5px 9px,currentColor 9px 12px,transparent 12px 14px)}
.ws-site .ws-ticket__body{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-content:start;padding:28px;background:var(--bg);border-left:2px dashed var(--line);border-radius:0 var(--r) var(--r) 0;
  -webkit-mask:radial-gradient(circle 12px at 0 0,#0000 97%,#000) top/100% 51% no-repeat,radial-gradient(circle 12px at 0 100%,#0000 97%,#000) bottom/100% 51% no-repeat;
  mask:radial-gradient(circle 12px at 0 0,#0000 97%,#000) top/100% 51% no-repeat,radial-gradient(circle 12px at 0 100%,#0000 97%,#000) bottom/100% 51% no-repeat}
.ws-site .ws-ticket__body>.ws-btn{grid-column:1/-1;padding-block:1.05em}
.ws-site .ws-rf--ticket>.ws-form__msg{margin-top:14px}
.ws-site .ws-rf--ticket.is-done{background:var(--bg);border:1px solid var(--line);border-radius:calc(var(--radius) + 2px)}
@container rf (max-width:620px){
  .ws-site .ws-ticket{grid-template-columns:1fr}
  .ws-site .ws-ticket__stub{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 16px;padding:20px 22px 24px;border-radius:var(--r) var(--r) 0 0;
    -webkit-mask:radial-gradient(circle 12px at 0 100%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 12px at 100% 100%,#0000 97%,#000) right/51% 100% no-repeat;
    mask:radial-gradient(circle 12px at 0 100%,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 12px at 100% 100%,#0000 97%,#000) right/51% 100% no-repeat}
  .ws-site .ws-ticket__venue{font-size:20px;flex:1 1 auto}
  .ws-site .ws-ticket__facts{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;margin:0}
  .ws-site .ws-ticket__facts dd{font-size:15px}
  .ws-site .ws-ticket__code{display:none}
  .ws-site .ws-ticket__body{border-left:0;border-top:2px dashed var(--line);border-radius:0 0 var(--r) var(--r);padding:22px;
    -webkit-mask:radial-gradient(circle 12px at 0 0,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 12px at 100% 0,#0000 97%,#000) right/51% 100% no-repeat;
    mask:radial-gradient(circle 12px at 0 0,#0000 97%,#000) left/51% 100% no-repeat,radial-gradient(circle 12px at 100% 0,#0000 97%,#000) right/51% 100% no-repeat}
}
@container rf (max-width:400px){.ws-site .ws-ticket__body{grid-template-columns:1fr}}

/* ---------- Extras: small elements dropped into any section ---------- */
.ws-site .ws-extras{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:8px}
.ws-site .ws-extras:not(:has(>:not(.ws-x--empty))){display:none}
.ws-site :is(.ws-head--center,.ws-align--center,.ws-hero--centered .ws-slide__inner,.ws-band__inner,.ws-offers__extras,.ws-footer__simple) .ws-extras{justify-content:center}
.ws-site .ws-offers__extras{margin-top:28px}
.ws-site .ws-extras--top{margin:0 0 16px}
.ws-site .ws-extras--title,.ws-site .ws-extras--text{margin:4px 0 16px}
.ws-site .ws-x--empty{display:none}
.ws-site.is-editing .ws-extras{display:flex}
.ws-site.is-editing .ws-x--empty{display:inline-flex;padding:7px 12px;border:1.5px dashed color-mix(in srgb,currentColor 35%,transparent);border-radius:10px;font-size:12.5px;line-height:1.3;opacity:.75}
.ws-site .ws-btn--link{background:none;color:var(--primary-text);padding:.45em 0;box-shadow:none;text-decoration:underline;text-underline-offset:4px}
.ws-site .ws-btn--link:hover{transform:none;box-shadow:none}
.ws-site :is(.ws-hero,.ws-band,.ws-banner.has-image) .ws-btn--link{color:inherit}
.ws-site .ws-badge{display:inline-flex;align-items:center;gap:7px;padding:7px 13px;border-radius:999px;font-size:13px;font-weight:700;line-height:1.2}
.ws-site .ws-badge svg{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.ws-site .ws-badge--soft{background:var(--secondary-soft);color:var(--fg)}
.ws-site .ws-badge--solid{background:var(--secondary);color:var(--on-secondary)}
.ws-site .ws-badge--outline{box-shadow:inset 0 0 0 1.5px currentColor}
.ws-site .ws-rating{display:inline-flex;align-items:center;gap:8px;font-size:14px}
.ws-site .ws-rating b{font-family:var(--display);font-size:24px;line-height:1}
.ws-site .ws-rating small{font-size:13px}
.ws-site :is(.ws-hero,.ws-band,.ws-banner.has-image) .ws-extras .ws-stars{color:var(--secondary-on-dark)}
.ws-site .ws-open{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 12px;border-radius:999px;background:var(--tint);font-size:14px}
.ws-site :is(.ws-hero,.ws-band,.ws-banner.has-image) .ws-open{background:color-mix(in srgb,currentColor 14%,transparent)}
.ws-site .ws-open i{flex:none;width:8px;height:8px;border-radius:50%;background:currentColor;opacity:.5}
.ws-site .ws-open.is-open i{background:#2e9b4e;opacity:1;animation:ws-open 2s infinite}
.ws-site .ws-open.is-closed i{background:#c0392b;opacity:1}
.ws-site .ws-open b{font-weight:800}
@keyframes ws-open{0%{box-shadow:0 0 0 0 rgba(46,155,78,.55)}70%{box-shadow:0 0 0 7px rgba(46,155,78,0)}100%{box-shadow:0 0 0 0 rgba(46,155,78,0)}}
.ws-site .ws-call svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linejoin:round}
.ws-site .ws-waitx{display:inline-flex;flex-wrap:wrap;gap:8px}
.ws-site .ws-waitx>span{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:999px;background:var(--tint);font-size:13.5px}
.ws-site :is(.ws-hero,.ws-band,.ws-banner.has-image) .ws-waitx>span{background:color-mix(in srgb,currentColor 14%,transparent)}
.ws-site .ws-waitx svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}
.ws-site .ws-waitx [hidden]{display:none}
.ws-site .ws-waitx i{font-style:normal}
.ws-site .ws-waitx em{font-style:normal}
.ws-site .ws-waitx small{font-size:inherit}
.ws-site .ws-waitx small::before{content:"·";margin-right:6px}
.ws-site .ws-waitx__closed::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:#c0392b}
.ws-site .ws-waitx__go{display:inline-flex;align-items:center;padding:7px 4px;font-size:13.5px;font-weight:800;color:inherit;text-decoration:underline;text-underline-offset:4px}
.ws-site .ws-dir{display:inline-flex;align-items:center;gap:10px;max-width:440px;text-decoration:none}
.ws-site .ws-dir svg{flex:none;width:34px;height:34px;padding:7px;border-radius:50%;background:var(--secondary-soft);color:var(--fg);fill:none;stroke:currentColor;stroke-width:1.8}
.ws-site .ws-dir>span{display:grid;line-height:1.3}
.ws-site .ws-dir small{font-size:13px}
.ws-site .ws-dir b{font-size:14px;text-decoration:underline;text-underline-offset:3px}
.ws-site .ws-extras .ws-social{list-style:none;padding:0;margin:0}
.ws-site :is(.ws-hero,.ws-band,.ws-banner.has-image) .ws-extras .ws-social__a{color:inherit;border-color:color-mix(in srgb,currentColor 45%,transparent)}
.ws-site .ws-xquote{display:grid;gap:4px;max-width:440px;margin:0;padding:10px 0 10px 16px;border-left:3px solid var(--secondary)}
.ws-site .ws-xquote blockquote{margin:0;font-family:var(--display);font-style:italic;font-size:17.6px;line-height:1.4}
.ws-site .ws-xquote figcaption{font-size:12.5px;font-weight:700}
.ws-site .ws-xquote .ws-stars{font-size:13px}
.ws-site :is(.ws-head--center,.ws-align--center,.ws-hero--centered .ws-slide__inner,.ws-band__inner,.ws-offers__extras,.ws-footer__simple) .ws-xquote{border-left:0;padding:4px 0;text-align:center;justify-items:center}
.ws-site .ws-diet{display:flex;flex-wrap:wrap;gap:8px 16px;list-style:none;padding:0;margin:0;font-size:13px;font-weight:600}
.ws-site .ws-diet li{display:inline-flex;align-items:center;gap:6px}
.ws-site .ws-diet i{display:grid;place-items:center;min-width:26px;height:26px;padding:0 5px;border:1.5px solid currentColor;border-radius:999px;font:800 10.5px/1 var(--body);font-style:normal}
.ws-site .ws-diet__hot svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* ---------- Background photo or video under any section (Section style > Background image; engine bgLayer) ----------
   The layer is the section's first child, behind its content (the section is its own stacking context).
   --sbg-x / --sbg-y (desktop) and --sbg-mx / --sbg-my (phones) anchor the photo; --sbg-o is its strength over the
   section colour and --sbg-b its blur. The shade (ws-sbg--sh-*) is --sbg-c at --sbg-a: the section's own colour
   unless one is picked. Fading edges let the photo melt into the section colour. */
.ws-site .ws-has-bg{position:relative;isolation:isolate}
.ws-site .ws-sbg{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.ws-site .ws-sbg>picture{display:contents}
.ws-site .ws-sbg>img,.ws-site .ws-sbg>picture>img,.ws-site .ws-sbg__video{position:absolute;top:calc(var(--sbg-b,0px) * -2);left:calc(var(--sbg-b,0px) * -2);width:calc(100% + var(--sbg-b,0px) * 4);height:calc(100% + var(--sbg-b,0px) * 4);max-width:none;margin:0;display:block;object-fit:cover;object-position:var(--sbg-x,50%) var(--sbg-y,50%);opacity:var(--sbg-o,1);filter:blur(var(--sbg-b,0px)) grayscale(var(--sbg-g,0));border-radius:0}
.ws-site .ws-sbg__video{opacity:0;transition:opacity .8s ease}
.ws-site .ws-sbg__video.is-ready{opacity:var(--sbg-o,1)}
.ws-site .ws-sbg--contain>img,.ws-site .ws-sbg--contain>picture>img,.ws-site .ws-sbg--contain .ws-sbg__video{object-fit:contain}
.ws-site .ws-sbg--mono{--sbg-g:1}
.ws-site .ws-sbg--zoom>img,.ws-site .ws-sbg--zoom>picture>img{animation:ws-sbg-zoom 22s ease-in-out infinite alternate}
.ws-site .ws-sbg--drift>img,.ws-site .ws-sbg--drift>picture>img{animation:ws-drift 26s ease-in-out infinite alternate}
@keyframes ws-sbg-zoom{from{transform:scale(1)}to{transform:scale(1.14)}}
/* Fixed: the photo stays put while the section scrolls over it */
.ws-site .ws-sbg--fixed{clip-path:inset(0)}
.ws-site .ws-sbg--fixed>img,.ws-site .ws-sbg--fixed>picture>img,.ws-site .ws-sbg--fixed .ws-sbg__video{position:fixed;top:0;left:0;width:100vw;height:100vh}
/* Fade in: the photo settles in as its section arrives (runtime initSectionBg) */
.ws-site .ws-sbg--reveal>img,.ws-site .ws-sbg--reveal>picture>img{transition:opacity 1.4s ease,transform 2.2s cubic-bezier(.2,.7,.2,1)}
.ws-site .ws-sbg--reveal.is-pending>img,.ws-site .ws-sbg--reveal.is-pending>picture>img{opacity:0;transform:scale(1.08)}
.ws-site .ws-sbg--fade-top{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 38%);mask-image:linear-gradient(180deg,transparent 0,#000 38%)}
.ws-site .ws-sbg--fade-bottom{-webkit-mask-image:linear-gradient(0deg,transparent 0,#000 38%);mask-image:linear-gradient(0deg,transparent 0,#000 38%)}
.ws-site .ws-sbg--fade-both{-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 28%,#000 72%,transparent 100%);mask-image:linear-gradient(180deg,transparent 0,#000 28%,#000 72%,transparent 100%)}
.ws-site .ws-sbg--fade-edges{-webkit-mask-image:radial-gradient(ellipse 70% 70% at center,#000 40%,transparent 100%);mask-image:radial-gradient(ellipse 70% 70% at center,#000 40%,transparent 100%)}
.ws-site .ws-sbg__shade{position:absolute;inset:0;margin:0}
.ws-site .ws-sbg--c-black{--sbg-c:#000}
.ws-site .ws-sbg--c-white{--sbg-c:#fff}
.ws-site .ws-sbg--c-primary{--sbg-c:var(--primary)}
.ws-site .ws-sbg--c-deep{--sbg-c:var(--primary-deep)}
.ws-site .ws-sbg--c-secondary{--sbg-c:var(--secondary)}
.ws-site .ws-sbg--sh-even .ws-sbg__shade{background:color-mix(in srgb,var(--sbg-c,var(--bg)) var(--sbg-a,50%),transparent)}
.ws-site .ws-sbg--sh-top .ws-sbg__shade{background:linear-gradient(180deg,color-mix(in srgb,var(--sbg-c,var(--bg)) min(100%,calc(var(--sbg-a,50%) + 20%)),transparent) 0%,color-mix(in srgb,var(--sbg-c,var(--bg)) calc(var(--sbg-a,50%) * .45),transparent) 50%,transparent 100%)}
.ws-site .ws-sbg--sh-bottom .ws-sbg__shade{background:linear-gradient(0deg,color-mix(in srgb,var(--sbg-c,var(--bg)) min(100%,calc(var(--sbg-a,50%) + 20%)),transparent) 0%,color-mix(in srgb,var(--sbg-c,var(--bg)) calc(var(--sbg-a,50%) * .45),transparent) 50%,transparent 100%)}
.ws-site .ws-sbg--sh-left .ws-sbg__shade{background:linear-gradient(90deg,color-mix(in srgb,var(--sbg-c,var(--bg)) min(100%,calc(var(--sbg-a,50%) + 20%)),transparent) 0%,color-mix(in srgb,var(--sbg-c,var(--bg)) calc(var(--sbg-a,50%) * .55),transparent) 50%,transparent 100%)}
.ws-site .ws-sbg--sh-right .ws-sbg__shade{background:linear-gradient(270deg,color-mix(in srgb,var(--sbg-c,var(--bg)) min(100%,calc(var(--sbg-a,50%) + 20%)),transparent) 0%,color-mix(in srgb,var(--sbg-c,var(--bg)) calc(var(--sbg-a,50%) * .55),transparent) 50%,transparent 100%)}
.ws-site .ws-sbg--sh-radial .ws-sbg__shade{background:radial-gradient(ellipse at center,transparent 25%,color-mix(in srgb,var(--sbg-c,var(--bg)) min(100%,calc(var(--sbg-a,50%) + 20%)),transparent) 100%)}
.ws-site .ws-sbg--sh-spot .ws-sbg__shade{background:radial-gradient(ellipse 60% 70% at center,color-mix(in srgb,var(--sbg-c,var(--bg)) var(--sbg-a,50%),transparent) 0%,color-mix(in srgb,var(--sbg-c,var(--bg)) calc(var(--sbg-a,50%) * .5),transparent) 50%,transparent 85%)}
@media (max-width:767px){
  .ws-site .ws-sbg>img,.ws-site .ws-sbg>picture>img,.ws-site .ws-sbg__video{object-position:var(--sbg-mx,50%) var(--sbg-my,50%)}
  .ws-site .ws-sbg--mhide{display:none}
}

/* ---------- Navigation background (header "Navigation background") ----------
   At the top of the page, and while scrolling with "Keep this look": see-through (frosted or not), a shade that
   fades down to nothing, or clear. --hb-a is the strength; the colour is the one picked, else black over a photo
   and the navigation's own colour anywhere else. A menu opened on a phone is always solid. */
.ws-site .ws-header{--hb-cc:var(--hb-c,var(--bg))}
.ws-site .ws-header.is-over{--hb-cc:var(--hb-c,#000)}
.ws-site .ws-header.ws-hbc-black{--hb-c:#000}
.ws-site .ws-header.ws-hbc-white{--hb-c:#fff}
.ws-site .ws-header.ws-hbc-primary{--hb-c:var(--primary)}
.ws-site .ws-header.ws-hbc-deep{--hb-c:var(--primary-deep)}
.ws-site .ws-header.ws-hbc-secondary{--hb-c:var(--secondary)}
.ws-site .ws-header.ws-hbs-glass:is(:not(.is-scrolled),.ws-hbs-keep):not(.is-open){background:color-mix(in srgb,var(--hb-cc) var(--hb-a,50%),transparent);backdrop-filter:blur(14px) saturate(1.3);-webkit-backdrop-filter:blur(14px) saturate(1.3);border-color:transparent;box-shadow:none}
.ws-site .ws-header.ws-hbs-tint:is(:not(.is-scrolled),.ws-hbs-keep):not(.is-open){background:color-mix(in srgb,var(--hb-cc) var(--hb-a,50%),transparent);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;box-shadow:none}
.ws-site .ws-header.ws-hbs-clear:is(:not(.is-scrolled),.ws-hbs-keep):not(.is-open),.ws-site .ws-header.ws-hbs-fade:is(:not(.is-scrolled),.ws-hbs-keep):not(.is-open){background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;border-color:transparent;box-shadow:none}
.ws-site .ws-header.ws-hbs-fade:not(.is-sticky){position:relative}
.ws-site .ws-header.ws-hbs-fade:is(:not(.is-scrolled),.ws-hbs-keep):not(.is-open)::before{content:"";position:absolute;left:0;right:0;top:0;height:calc(100% + var(--hb-ext,0%));z-index:-1;pointer-events:none;background:linear-gradient(180deg,color-mix(in srgb,var(--hb-cc) var(--hb-a,50%),transparent) 0%,color-mix(in srgb,var(--hb-cc) calc(var(--hb-a,50%) * .5),transparent) 50%,transparent 100%)}
.ws-site .ws-header.is-over.ws-hbs-fade{--hb-ext:70%}
/* runtime overInk: a light see-through colour on the photo keeps dark links, icons and logo */
.ws-site .ws-header.is-over.is-over-ink:not(.is-scrolled):not(.is-open){color:#16130f;--fg:#16130f;--muted:rgba(22,19,15,.72);--line:rgba(22,19,15,.22);--primary-text:var(--primary)}
.ws-site .ws-header.is-over.is-over-ink:not(.is-scrolled):not(.is-open) :is(.ws-header__links a,.ws-logo__text b){color:#16130f}
.ws-site .ws-header.is-over.is-over-ink:not(.is-scrolled):not(.is-open) :is(.ws-header__toggle,.ws-header__acct){border-color:rgba(22,19,15,.3);color:#16130f}
.ws-site .ws-header.is-over.is-over-ink.is-white-logo:not(.is-scrolled):not(.is-open) .ws-logo__img{filter:none}

/* Account icon in the navigation (header "Account icon") */
.ws-site .ws-header__acct{position:relative;display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;color:inherit;text-decoration:none;transition:background-color .2s,border-color .2s}
.ws-site .ws-header__acct:hover{background:color-mix(in srgb,currentColor 10%,transparent)}
.ws-site .ws-header__acct svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round}
.ws-site .ws-header__acctdot{position:absolute;top:6px;right:6px;width:9px;height:9px;border-radius:50%;background:#1e9e5a;box-shadow:0 0 0 2px var(--bg)}
.ws-site .ws-header.is-over:not(.is-scrolled):not(.is-open) .ws-header__acct{border-color:rgba(255,255,255,.45);color:#fff}

/* ---------- Top bar on phones: one slim strip ----------
   Just the wait times (or the first message when there are none), plus the phone number when "Phone number on
   phones" is on. */
/* The navigation's account icon replaces the top bar's log in links */
:root:has(.ws-header__acct) .ws-site .ws-topbar__acct>:not(.ws-phone){display:none}
@media (max-width:640px){
  .ws-site .ws-topbar__row{flex-wrap:nowrap;justify-content:center;gap:12px;padding-block:5px;min-height:30px;line-height:1.3}
  .ws-site .ws-topbar__msgs{flex-wrap:nowrap;min-width:0;justify-content:center}
  .ws-site .ws-topbar__msgs>span{min-width:0;white-space:nowrap}
  .ws-site .ws-topbar__msgs>span:not(.ws-topbar__wait){overflow:hidden;text-overflow:ellipsis}
  .ws-site .ws-topbar__msgs:has(.ws-topbar__wait)>span:not(.ws-topbar__wait){display:none}
  .ws-site .ws-topbar .ws-topbar__wait{border:0;border-radius:0;padding:0;max-width:100%;flex-wrap:nowrap;white-space:nowrap;justify-content:center;row-gap:0}
  .ws-site .ws-topbar .ws-topbar__waitlbl{display:none}
  .ws-site .ws-topbar .ws-topbar__waitoff{flex-wrap:nowrap;min-width:0}
  .ws-site .ws-topbar .ws-topbar__waitoff em{overflow:hidden;text-overflow:ellipsis;min-width:0}
  .ws-site .ws-topbar__acct{flex:none;gap:10px}
  .ws-site .ws-topbar:not(.ws-topbar--mphone) .ws-topbar__acct .ws-phone{display:none}
  :root:has(.ws-header__acct) .ws-site .ws-topbar:not(.ws-topbar--mphone) .ws-topbar__acct{display:none}
  .ws-site .ws-topbar--mphone .ws-topbar__row{justify-content:space-between}
}

/* ---------- Toast ---------- */
.ws-toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,160%);background:#111;color:#fff;padding:12px 18px;border-radius:999px;font:600 14.4px system-ui,sans-serif;z-index:2147483001;transition:transform .35s cubic-bezier(.2,.7,.2,1);box-shadow:0 10px 30px -10px rgba(0,0,0,.5);max-width:calc(100% - 32px)}
.ws-toast.is-shown{transform:translate(-50%,0)}

@media (prefers-reduced-motion:reduce){.ws-site *,.ws-site *::before,.ws-site *::after{animation:none!important;transition:none!important}}
