/* Shared header additions use the site's typography tokens. */
#lsl-main-header .lsl-gift-button svg { width:16px; height:16px; flex:0 0 16px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
#lsl-main-header { --lsl-header-shadow: 0 6px 20px rgba(22,21,21,.13); }
#lsl-main-header.has-mega-open, #lsl-main-header.has-mega-closing { box-shadow: none; }
#lsl-main-header .lsl-mega-panel { box-shadow: var(--lsl-header-shadow); }
/* Allow the bottom shadow to survive the reveal's clip mask. */
@keyframes lsl-mega-reveal {
  from { clip-path: inset(0 0 100% 0); }
  to { clip-path: inset(0 -32px -32px -32px); }
}
@keyframes lsl-mega-dismiss {
  from { clip-path: inset(0 -32px -32px -32px); opacity: 1; }
  to { clip-path: inset(0 0 100% 0); opacity: .98; }
}
#lsl-main-header .lsl-header-signin,
#lsl-main-header .lsl-header-account summary {
  display: inline-flex; align-items: center; gap: 7px; min-height: 36px;
  font-family: var(--lsl-font-display,'Bebas Neue',sans-serif); font-weight: 400;
  font-size: 16px; line-height: 1; white-space: nowrap; cursor: pointer;
  text-transform: uppercase; list-style: none;
}
#lsl-main-header .lsl-header-account { position: relative; }
#lsl-main-header .lsl-header-account summary::-webkit-details-marker { display: none; }
#lsl-main-header .lsl-account-icon { display: flex; width: 22px; height: 22px; flex: 0 0 22px; align-items:center; justify-content:center; }
#lsl-main-header .lsl-account-icon svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
#lsl-main-header .lsl-account-icon.is-current-account { color:var(--lsl-red,#df3550); }
#lsl-main-header .lsl-account-name { max-width:88px; overflow:hidden; text-overflow:ellipsis; }
#lsl-main-header .lsl-account-chevron { width:10px; height:10px; fill:none; stroke:currentColor; stroke-width:1.4; transition:transform .2s ease; }
#lsl-main-header .lsl-header-account[open] .lsl-account-chevron { transform:rotate(180deg); }
#lsl-main-header .lsl-account-popover {
  position:absolute; top:calc(100% + 10px); right:0; width:200px; padding:8px;
  background:#fff; border:1px solid #e9e7e8; box-shadow:var(--lsl-header-shadow);
  font-family:var(--lsl-font-body,'Inter Tight',sans-serif); font-size:14px; font-weight:400;
  line-height:1.35; text-transform:none; letter-spacing:0;
  animation:lsl-account-reveal .18s ease-out;
}
#lsl-main-header .lsl-account-popover a { display:block; padding:11px 12px; font:inherit; }
#lsl-main-header .lsl-account-popover a:hover,
#lsl-main-header .lsl-account-popover a:focus-visible { background:#f5f5f5; }
#lsl-main-header .lsl-account-popover .lsl-account-logout { border-top:1px solid #e9e7e8; margin-top:4px; }
#lsl-main-header .lsl-header-account summary:focus-visible,
#lsl-main-header .lsl-header-signin:focus-visible { outline:2px solid currentColor; outline-offset:4px; }
#lsl-main-header .lsl-mobile-account-link { display:flex; flex-direction:column; gap:5px; }
#lsl-main-header .lsl-mobile-account-name { font-family:var(--lsl-font-body,'Inter Tight',sans-serif); font-size:14px; text-transform:none; color:#717175; }
@keyframes lsl-account-reveal { from { opacity:0; transform:translateY(-4px); } to { opacity:1; transform:translateY(0); } }
@media (min-width:1151px) and (max-width:1350px) {
  #lsl-main-header .lsl-header-inner { gap:20px; padding-left:28px; padding-right:28px; }
  #lsl-main-header .lsl-header-links { gap:16px; }
  #lsl-main-header .lsl-header-tools { gap:10px; padding-left:12px; }
}
@media (prefers-reduced-motion:reduce) {
  #lsl-main-header .lsl-account-popover { animation:none; }
  #lsl-main-header .lsl-account-chevron { transition:none; }
}

/* One icon header for every phone and tablet width. */
@media(max-width:1150px) {
 html body { padding-top:64px; }
 #lsl-main-header { height:64px; }
 #lsl-main-header .lsl-mobile-panel { top:64px; height:calc(100dvh - 64px); }
 #lsl-main-header .lsl-header-inner { grid-template-columns:44px 44px minmax(0,1fr) 44px 44px; gap:2px; padding:0 8px; height:64px; align-items:center; }
 #lsl-main-header .lsl-header-actions, #lsl-main-header .lsl-header-tools { display:contents; }
 #lsl-main-header .lsl-wordmark { grid-column:3; grid-row:1; justify-self:center; font-size:26px!important; white-space:nowrap; }
 #lsl-main-header .lsl-header-actions .lsl-book-button,
 #lsl-main-header .lsl-header-tools > .lsl-header-icon,
 #lsl-main-header .lsl-header-signin,
 #lsl-main-header .lsl-header-account summary,
 #lsl-main-header .lsl-menu-toggle {
  display:flex; align-items:center; justify-content:center; width:44px; height:44px!important; min-height:44px!important;
  margin:0; padding:0!important; gap:0!important; border:0; background:transparent; color:var(--lsl-ink,#1c1c20); border-radius:0;
  -webkit-tap-highlight-color:transparent; touch-action:manipulation;
 }
 #lsl-main-header .lsl-book-button { grid-column:1; grid-row:1; }
 #lsl-main-header .lsl-header-tools > .lsl-header-icon { grid-column:2; grid-row:1; }
 #lsl-main-header .lsl-header-account, #lsl-main-header .lsl-header-signin { grid-column:4; grid-row:1; }
 #lsl-main-header .lsl-header-account { display:block; align-self:center; }
 #lsl-main-header .lsl-menu-toggle { grid-column:5; grid-row:1; }
 #lsl-main-header .lsl-header-actions .lsl-gift-button,
 #lsl-main-header .lsl-book-button span,
 #lsl-main-header .lsl-header-signin > span:not(.lsl-account-icon),
 #lsl-main-header .lsl-account-name, #lsl-main-header .lsl-account-chevron{ display:none!important; }
 #lsl-main-header .lsl-header-actions .lsl-book-button svg,
 #lsl-main-header .lsl-header-tools > .lsl-header-icon svg,
 #lsl-main-header .lsl-account-icon svg,
 #lsl-main-header .lsl-menu-toggle svg { display:block; width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; transform:none; }
 #lsl-main-header .lsl-account-icon { width:24px; height:24px; flex:0 0 24px; }
 #lsl-main-header .lsl-account-popover { left:auto; right:0; top:calc(100% + 7px); }
}

/* A short drawer transition and a stable three-line-to-cross morph. */
@media(max-width:1150px) {
 #lsl-main-header .lsl-mobile-panel {
  display:flex; flex-direction:column; visibility:hidden; opacity:0; transform:translateY(-8px); pointer-events:none;
  transition:opacity 180ms ease,transform 220ms cubic-bezier(.2,.7,.3,1),visibility 0s linear 220ms;
  padding:24px 24px max(24px,env(safe-area-inset-bottom));
  overscroll-behavior:contain; overflow-anchor:none;
 }
 #lsl-main-header.is-open .lsl-mobile-panel { display:flex; visibility:visible; opacity:1; transform:none; pointer-events:auto; transition-delay:0s; }
 #lsl-main-header .lsl-menu-line { transform-box:fill-box; transform-origin:center; transition:transform 200ms ease,opacity 140ms ease; }
 #lsl-main-header.is-open .lsl-menu-line-top { transform:translateY(6px) rotate(45deg); }
 #lsl-main-header.is-open .lsl-menu-line-middle { opacity:0; transform:scaleX(.5); }
 #lsl-main-header.is-open .lsl-menu-line-bottom { transform:translateY(-6px) rotate(-45deg); }
 #lsl-main-header :is(.lsl-menu-toggle,.lsl-mobile-menu-toggle,.lsl-mobile-panel a) { -webkit-tap-highlight-color:transparent; touch-action:manipulation; }
 #lsl-main-header .lsl-mobile-menu-toggle { transition:color 180ms ease; }
 #lsl-main-header .lsl-mobile-menu-toggle[aria-expanded="true"] { color:var(--lsl-red,#d93850); }
 #lsl-main-header .lsl-mobile-menu-toggle svg { transition:transform 180ms ease; }
 /* Keep the first item in place when a category expands. */
 #lsl-main-header .lsl-mobile-content { flex:0 0 auto; width:100%; margin:0; text-align:left; }
 #lsl-main-header .lsl-mobile-panel nav { gap:4px; }
 #lsl-main-header .lsl-mobile-menu-toggle,
 #lsl-main-header .lsl-mobile-panel nav > a { display:flex; align-items:center; min-height:44px; width:100%; font-family:var(--lsl-font-display,'Bebas Neue',sans-serif)!important; font-weight:400!important; font-size:28px; line-height:1.1; }
 #lsl-main-header .lsl-mobile-links { display:block; padding:0; }
 #lsl-main-header .lsl-mobile-links-inner { display:grid; gap:24px; padding:12px 0 24px; }
 #lsl-main-header #lsl-mobile-links-events,
 #lsl-main-header #lsl-mobile-links-workshops { gap:24px; }
 #lsl-main-header .lsl-mobile-category { gap:0; }
 #lsl-main-header .lsl-mobile-category h3 { font:400 26px/1.1 var(--lsl-font-display,'Bebas Neue',sans-serif); color:var(--lsl-ink,#1c1c20); letter-spacing:0; text-transform:uppercase; margin:0 0 12px; }
 #lsl-main-header .lsl-mobile-panel .lsl-mobile-links a { display:flex; align-items:center; gap:8px; font-family:var(--lsl-font-body,'Inter Tight',sans-serif)!important; font-weight:400!important; font-size:18px; line-height:1.35; padding:6px 0; min-height:40px; }
 #lsl-main-header .lsl-mobile-panel .lsl-mobile-links .lsl-mobile-view-all { font-size:18px; }
 #lsl-main-header .lsl-mobile-links .lsl-menu-badge { font-size:9px; padding:2px 4px; line-height:1.2; flex-shrink:0; }
}
/* Account shortcuts and actions share the same rhythm as the Figma menu. */
@media(max-width:1150px) {
 #lsl-main-header .lsl-mobile-account-links { display:grid; gap:4px; margin-bottom:24px; padding-bottom:20px; border-bottom:1px solid #e9e7e8; }
 #lsl-main-header .lsl-mobile-account-links a { display:flex; align-items:center; gap:14px; min-height:44px; font:400 28px/1.1 var(--lsl-font-display,'Bebas Neue',sans-serif); }
 #lsl-main-header .lsl-mobile-account-links svg { display:block; flex:0 0 24px; width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
 #lsl-main-header .lsl-mobile-cta { display:grid; gap:12px; margin-top:20px; }
 #lsl-main-header .lsl-mobile-cta a { display:flex; align-items:center; justify-content:center; gap:8px; height:42px; min-height:42px; padding:0 14px; border:1px solid var(--lsl-ink,#1c1c20); border-radius:2px; font:400 18px/1 var(--lsl-font-display,'Bebas Neue',sans-serif); letter-spacing:.015em; text-align:center; color:var(--lsl-ink,#1c1c20); background:#fff; transition:background-color .2s ease,color .2s ease,border-color .2s ease; }
 #lsl-main-header .lsl-mobile-cta svg { display:block; flex:0 0 20px; width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
 #lsl-main-header .lsl-mobile-cta .lsl-mobile-cta-book:is(:hover,:focus-visible) { background:var(--lsl-ink,#1c1c20); color:#fff; }
 #lsl-main-header .lsl-mobile-cta .lsl-mobile-cta-gift { position:relative; overflow:hidden; isolation:isolate; color:#fff; background:var(--lsl-red,#d93850); border-color:var(--lsl-red,#d93850); }
 #lsl-main-header .lsl-mobile-cta .lsl-mobile-cta-gift:is(:hover,:focus-visible) { background:#b82239; border-color:#b82239; }
 #lsl-main-header .lsl-mobile-cta-gift::after { content:''; position:absolute; z-index:1; top:-30%; bottom:-30%; left:-55%; width:40%; pointer-events:none; transform:skewX(-22deg); background:linear-gradient(90deg,transparent,rgba(255,255,255,.08) 25%,rgba(255,255,255,.5) 50%,rgba(255,255,255,.08) 75%,transparent); animation:lsl-mobile-gift-shine 5.5s ease-in-out infinite; }
 #lsl-main-header .lsl-mobile-bottom-row { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:20px; }
 #lsl-main-header .lsl-mobile-socials { display:flex; align-items:center; gap:0; margin:0; }
 #lsl-main-header .lsl-mobile-socials a { display:flex; align-items:center; justify-content:center; width:44px; height:44px; }
 #lsl-main-header .lsl-mobile-socials svg { display:block; width:24px; height:24px; }
 #lsl-main-header :is(.lsl-mobile-account-links a,.lsl-mobile-cta a,.lsl-mobile-socials a):focus-visible { outline:2px solid var(--lsl-red,#d93850); outline-offset:3px; }
}

@keyframes lsl-mobile-gift-shine { 0% { left:-55%; } 20%,100% { left:125%; } }
@media(prefers-reduced-motion:reduce) {
 #lsl-main-header .lsl-mobile-cta-gift::after { animation:none; display:none; }
 #lsl-main-header :is(.lsl-mobile-panel,.lsl-menu-line,.lsl-mobile-menu-toggle svg) { transition:none; }
}
#lsl-main-header .lsl-header-signin:hover .lsl-account-icon,
#lsl-main-header .lsl-header-signin:active .lsl-account-icon,
#lsl-main-header .lsl-header-account[open] .lsl-account-icon{color:var(--lsl-red,#df3550)}
@media(min-width:1151px){
 #lsl-main-header .lsl-header-tools{align-items:center}
 #lsl-main-header .lsl-header-signin,#lsl-main-header .lsl-header-account summary{height:40px;padding:0;gap:8px;align-items:center;line-height:1}
 #lsl-main-header .lsl-header-tools>.lsl-header-icon,#lsl-main-header .lsl-account-icon{width:24px;height:24px;display:flex;align-items:center;justify-content:center}
 #lsl-main-header .lsl-header-tools>.lsl-header-icon svg,#lsl-main-header .lsl-account-icon svg{display:block;width:22px;height:22px;transform:none}
}

.lsl-booking-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 4px;border-radius:999px;background:#df3550;color:#fff!important;font:600 11px/1 Arial,sans-serif;vertical-align:middle;margin-left:6px}
.lsl-account-bottom-nav a{position:relative}
.lsl-account-bottom-nav .lsl-booking-badge{position:absolute;top:3px;left:calc(50% + 4px);margin:0}

/* Stable mobile document dimensions; no offscreen cover over native chrome. */
@media(max-width:1150px){
 html.lsl-stable-mobile-viewport{overscroll-behavior-y:none;background:#fff}
 html.lsl-stable-mobile-viewport body{overscroll-behavior-y:none}
 #lsl-main-header{-webkit-tap-highlight-color:transparent}
}
/* Explicit QA URL only: do not change ordinary iPhone/Safari scrolling.
   Clip a viewport-sized inner scroll surface instead of the native root scroller.
   No persistence: leaving the test URL restores normal document scrolling. */
@media(max-width:1150px){
 html.lsl-webview-clip-test{height:100%;overflow:hidden}
 html.lsl-webview-clip-test body{
  box-sizing:border-box;height:100%;min-height:0;position:relative;
  overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:none;
  clip-path:inset(0);-webkit-overflow-scrolling:touch;background:#fff
 }
 html.lsl-webview-clip-test body.lsl-nav-open,
 html.lsl-webview-clip-test.lsl-bp-open body{overflow:hidden}
}
