/* ---------------------------------------------------------------------------
   Exhibition stalls — the approved floor plan, ported verbatim.
   ---------------------------------------------------------------------------
   Everything between the two markers below is stall-booking.html's own <style>
   block, copied without change: the same .lsc-* classes, the same variables,
   the same font stacks, the same numbers, the same media queries. It is not
   re-expressed in theme tokens, because the brief is pixel-identity with the
   approved reference and any "equivalent" value is a pixel of drift.

   Three things sit outside that block, at the end of this file:
     1. a reset, so the theme's own element styles cannot reach inside the
        widget (the reference renders with browser defaults; our page does not);
     2. one extra line per tile, "Tier · size";
     3. the availability table and the LASA box, which sit below the widget.
   --------------------------------------------------------------------------- */

/* ---------------------------------------------------------------------------
   1. Reset — keep the theme out of the widget
   ---------------------------------------------------------------------------
   The reference is a bare fragment: it renders against browser defaults. Our
   page carries style.css and flow.css, whose element rules (margins on p,
   h2 sizing, the .btn reset, link colours) would otherwise shift the plan by a
   few pixels everywhere. This pins the handful of elements the widget uses
   back to the defaults the reference was drawn against.
   --------------------------------------------------------------------------- */
/* The reference is a bare fragment, so it inherits the browser's own 16px and
   normal line-height. Our page inherits the theme's 17px / 28.56px, which made
   the plan ~200px taller than the reference before this. */
.lsc-booking { font-size: 16px; line-height: normal; }

/* :where() so every one of these carries zero specificity. Written plainly,
   `.lsc-booking p` (0,1,1) outranks the ported `.lsc-hint` (0,1,0) whatever
   the order, and silently ate its 16px top margin. */
:where(.lsc-booking) :where(h2, p, ul, li) { margin: 0; padding: 0; }
:where(.lsc-booking) :where(li) { list-style: none; }
:where(.lsc-booking) :where(button) {
  font: inherit; color: inherit; background: none;
  border: 0; margin: 0; padding: 0; text-align: inherit;
}
:where(.lsc-booking) :where(.lsc-stall) { -webkit-appearance: none; appearance: none; }
:where(.lsc-booking) :where(a) { color: inherit; }


/* ===== BEGIN verbatim stall-booking.html <style> ========================== */
.lsc-booking{
  --lsc-maroon:#7c1626; --lsc-maroon-dark:#5c0f1c; --lsc-ink:#2a2320; --lsc-muted:#7a6f69;
  --lsc-cream:#fbf6f0; --lsc-border:#e7ddd2;
  --lsc-premium:#e9418a; --lsc-platinum:#ef7f3a; --lsc-diamond:#38a7e6; --lsc-gold:#f4c84a; --lsc-silver:#4fae57; --lsc-booked:#6b2230;
  box-sizing:border-box; width:100%; color:var(--lsc-ink);
  font-family:'Inter', system-ui, -apple-system, "Segoe UI", sans-serif;
}
.lsc-booking *{ box-sizing:border-box; }
.lsc-wrap{ max-width:1280px; margin:0 auto; padding:40px 24px; }

/* Header */
.lsc-head{ text-align:center; margin-bottom:22px; }
.lsc-eyebrow{ display:inline-block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color:var(--lsc-maroon); background:var(--lsc-cream); border:1px solid var(--lsc-border); padding:6px 14px; border-radius:100px; margin-bottom:12px; }
.lsc-title{ font-family:'Playfair Display', Georgia, serif; font-size:clamp(26px,4vw,40px); font-weight:800; margin:0 0 10px; letter-spacing:-.4px; }
.lsc-meta{ display:flex; justify-content:center; flex-wrap:wrap; gap:8px 22px; margin:0; font-size:14px; color:var(--lsc-muted); font-weight:500; }
.lsc-meta span{ display:inline-flex; align-items:center; gap:7px; }
.lsc-meta svg{ color:var(--lsc-maroon); }

/* Legend */
.lsc-legend{ display:flex; flex-wrap:wrap; justify-content:center; gap:10px 16px; margin:0 auto 20px; padding:14px 18px; max-width:1000px;
  background:var(--lsc-cream); border:1px solid var(--lsc-border); border-radius:14px; }
.lsc-legend__item{ display:inline-flex; align-items:center; gap:8px; font-size:13px; font-weight:600; }
.lsc-legend__item em{ color:var(--lsc-muted); font-style:normal; font-weight:500; }
.lsc-dot{ width:14px; height:14px; border-radius:4px; flex-shrink:0; }
.lsc-dot[data-cat="premium"]{ background:var(--lsc-premium); }
.lsc-dot[data-cat="platinum"]{ background:var(--lsc-platinum); }
.lsc-dot[data-cat="diamond"]{ background:var(--lsc-diamond); }
.lsc-dot[data-cat="gold"]{ background:var(--lsc-gold); }
.lsc-dot[data-cat="silver"]{ background:var(--lsc-silver); }
.lsc-dot--booked{ background:var(--lsc-booked); }
.lsc-legend-note{ text-align:center; font-size:12.5px; color:var(--lsc-muted); margin:0 0 20px; }

/* Floor */
.lsc-floor{ background:#fff; border:1px solid var(--lsc-border); border-radius:18px; padding:20px 20px 16px;
  box-shadow:0 10px 36px -24px rgba(60,20,20,.5); }
.lsc-dim--w{ text-align:center; font-size:11px; font-weight:700; letter-spacing:.08em; color:var(--lsc-muted); margin-bottom:10px; position:relative; }
.lsc-dim--w::before,.lsc-dim--w::after{ content:""; position:absolute; top:50%; width:32%; height:1px; background:var(--lsc-border); }
.lsc-dim--w::before{ left:4%; } .lsc-dim--w::after{ right:4%; }

.lsc-floor__inner{ display:grid; grid-template-columns:auto 34px 1fr; gap:12px; align-items:stretch; }

/* Stall base */
.lsc-stall{ position:relative; border-radius:9px; min-height:58px; border:2px solid rgba(0,0,0,.08);
  cursor:pointer; display:flex; align-items:center; justify-content:center; text-align:center; font-weight:700;
  transition:transform .15s ease, box-shadow .2s ease, filter .2s ease; user-select:none; }
.lsc-stall::before{ content:attr(data-stall); font-size:15px; line-height:1.05; margin-bottom:12px; }
/* price under the stall number (size lives in the legend) */
.lsc-stall::after{ content:attr(data-price-label); position:absolute; bottom:7px; left:0; right:0; font-size:10px; font-weight:700; opacity:.85; }
.lsc-stall[data-cat="premium"]{ background:var(--lsc-premium); color:#fff; }
.lsc-stall[data-cat="platinum"]{ background:var(--lsc-platinum); color:#fff; }
.lsc-stall[data-cat="diamond"]{ background:var(--lsc-diamond); color:#06324a; }
.lsc-stall[data-cat="gold"]{ background:var(--lsc-gold); color:#4a3700; }
.lsc-stall[data-cat="silver"]{ background:var(--lsc-silver); color:#0d3a12; }
.lsc-stall:not(.lsc-stall--booked):hover{ transform:translateY(-2px); box-shadow:0 10px 20px -10px rgba(0,0,0,.45); filter:saturate(1.1); }
.lsc-stall:not(.lsc-stall--booked):focus-visible{ outline:3px solid var(--lsc-maroon); outline-offset:2px; }
.lsc-stall--booked{ background:var(--lsc-booked)!important; color:#f3d9de!important; cursor:not-allowed; border-color:rgba(0,0,0,.2); }
.lsc-stall--booked::before{ content:"BOOKED"; font-size:13px; letter-spacing:.05em; }
/* Booked stalls show their Hall number in place of the size line */
.lsc-stall--booked::after{ content:"Hall " attr(data-hall); opacity:.85; color:#f3d9de; font-weight:700; }
.lsc-stall--booked[data-hall=""]::after,
.lsc-stall--booked:not([data-hall])::after{ content:""; }

/* Selected state - ring + corner check badge (no text overlap) */
.lsc-stall--selected{ box-shadow:0 8px 18px -10px rgba(0,0,0,.45); }
/* Dim unselected available stalls once selecting starts, so picks pop */
.lsc-has-selection .lsc-stall:not(.lsc-stall--selected):not(.lsc-stall--booked){
  filter:grayscale(.45) opacity(.5); }
.lsc-has-selection .lsc-stall:not(.lsc-stall--selected):not(.lsc-stall--booked):hover{
  filter:none; }
/* At max: remaining tiles look locked */
.lsc-at-max .lsc-stall:not(.lsc-stall--selected):not(.lsc-stall--booked){ cursor:not-allowed; }
/* "+N more" chip in summary */
.lsc-more{ color:var(--lsc-maroon); font-weight:800; }
/* Limit notice */
.lsc-limit{
  position:fixed; left:50%; bottom:92px; transform:translate(-50%,10px);
  background:var(--lsc-ink); color:#fff; font-size:13px; font-weight:600;
  padding:11px 18px; border-radius:100px; box-shadow:0 12px 30px -12px rgba(0,0,0,.6);
  opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; z-index:100001; }
.lsc-limit a{ color:#ffd9a0; text-decoration:underline; }
.lsc-limit.is-on{ opacity:1; transform:translate(-50%,0); pointer-events:auto; }
.lsc-stall--selected .lsc-check{ opacity:1; transform:scale(1); }
.lsc-check{
  position:absolute; top:5px; right:5px; width:18px; height:18px; border-radius:50%;
  background:#15803d; color:#fff; display:flex; align-items:center; justify-content:center;
  font-size:11px; line-height:1; opacity:0; transform:scale(.6); transition:opacity .15s ease, transform .15s ease;
  pointer-events:none;
}

/* Legend price chip */
.lsc-legend__price{ color:var(--lsc-maroon); font-weight:800; font-size:12px; margin-left:2px; }

/* ===== Selection summary / booking bar ===== */
.lsc-summary{
  display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;
  margin-top:16px; padding:14px 18px;
  background:#fff; border:1px solid var(--lsc-border); border-radius:14px;
  box-shadow:0 10px 30px -22px rgba(60,20,20,.5); position:sticky; bottom:12px;
}
.lsc-summary__left{ display:flex; flex-direction:column; gap:3px; min-width:0; }
.lsc-summary__count{ font-size:13px; color:var(--lsc-muted); }
.lsc-summary__count strong{ color:var(--lsc-maroon); font-size:16px; }
.lsc-summary__list{ font-size:13px; font-weight:600; color:var(--lsc-ink); max-width:60ch; }
.lsc-summary__right{ display:flex; align-items:center; gap:16px; }
.lsc-summary__total{ font-size:14px; color:var(--lsc-muted); white-space:nowrap; }
.lsc-summary__total strong{ color:var(--lsc-ink); font-size:20px; font-family:'Playfair Display',Georgia,serif; }
.lsc-book{
  display:inline-flex; align-items:center; gap:8px; font:inherit; font-size:15px; font-weight:700;
  padding:13px 24px; border-radius:100px; border:none; cursor:pointer; white-space:nowrap;
  background:var(--lsc-maroon); color:#fff; transition:transform .15s ease, background .2s ease, opacity .2s ease;
}
.lsc-book:hover:not(:disabled){ background:var(--lsc-maroon-dark); transform:translateY(-1px); }
.lsc-book:disabled{ opacity:.45; cursor:not-allowed; }

/* Left column */
.lsc-left{ display:flex; flex-direction:column; gap:9px; width:110px; }
.lsc-stall--v{ min-height:66px; }
.lsc-x{ min-height:60px; display:flex; align-items:center; justify-content:center; background:var(--lsc-cream); border:1px solid var(--lsc-border); border-radius:9px; }
.lsc-workshop{ font-size:10px; font-weight:800; letter-spacing:.04em; color:#3a6ea5; text-align:center; background:#eaf2fb; border:1px solid #cfe0f2; border-radius:8px; padding:8px 4px; line-height:1.3; }

/* Entry strip */
.lsc-entrystrip{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px;
  background:#eef1f5; border:1px solid #d6dee8; border-radius:9px; padding:8px 2px; }
.lsc-entrystrip__arrows{ display:flex; flex-direction:column; color:#3763b8; font-weight:800; font-size:15px; line-height:.9; }
.lsc-entrystrip__label{ writing-mode:vertical-rl; transform:rotate(180deg); font-size:10px; font-weight:800; letter-spacing:.12em; color:#5a6676; }

/* Main */
.lsc-main{ display:flex; flex-direction:column; gap:9px; min-width:0; }
.lsc-grid--row{ display:grid; grid-template-columns:repeat(20,1fr); gap:9px; }
.lsc-passage{ text-align:center; position:relative; margin:2px 0; }
.lsc-passage span{ font-size:11px; font-weight:700; letter-spacing:.06em; color:var(--lsc-maroon); background:var(--lsc-cream); padding:3px 12px; border-radius:100px; position:relative; z-index:1; }
.lsc-passage::before{ content:""; position:absolute; top:50%; left:0; right:0; height:1px; border-top:1px dashed var(--lsc-border); }

/* Middle block */
.lsc-midwrap{ display:grid; grid-template-columns:1fr 54px 120px; gap:9px; align-items:center; }
.lsc-midgrid{ display:grid; grid-template-columns:repeat(5,1fr); gap:9px; }
.lsc-gap{ display:flex; align-items:center; justify-content:center; }
.lsc-gap span{ font-size:10px; font-weight:700; color:var(--lsc-muted); writing-mode:vertical-rl; transform:rotate(180deg); letter-spacing:.05em; }
.lsc-stall--11{ height:100%; min-height:125px; }

/* Pathway */
.lsc-pathway{ margin-top:10px; display:flex; align-items:center; justify-content:center; gap:14px;
  background:var(--lsc-cream); border-radius:8px; padding:9px; }
.lsc-pathway__label{ font-size:12px; font-weight:800; letter-spacing:.14em; color:var(--lsc-maroon); }
.lsc-pathway__arrow{ color:#3763b8; font-weight:800; font-size:16px; }

/* Auditorium */
.lsc-audiwrap{ display:grid; grid-template-columns:30px 1fr 110px; gap:9px; margin-top:9px; }
.lsc-ent-strip{ display:flex; flex-direction:column; gap:6px; }
.lsc-ent,.lsc-ex{ flex:1; display:flex; align-items:center; justify-content:center; border-radius:6px; font-size:9px; font-weight:800; letter-spacing:.04em; }
.lsc-ent{ background:#f4d44e; color:#5a4a00; } .lsc-ex{ background:#f4d44e; color:#5a4a00; }
.lsc-auditorium{ background:#f6f0e8; border:1px solid var(--lsc-border); border-radius:10px; padding:12px; display:flex; flex-direction:column; gap:10px; min-height:150px; }
/* Seating runs in horizontal rows that face the STAGE (on the right).
   Three row-blocks stacked, each a set of rows of right-facing seats. */
.lsc-seats{ flex:1; display:flex; flex-direction:column; gap:12px; justify-content:center; padding:4px 6px; }
.lsc-seatblock{ display:flex; flex-direction:column; gap:5px; }
.lsc-seatrow{ display:flex; gap:5px; justify-content:center; flex-wrap:nowrap; overflow:hidden; }
.lsc-chair{ width:17px; height:14px; flex-shrink:0; }
.lsc-chair svg{ width:100%; height:100%; display:block; fill:#b3a594; }
.lsc-auditorium__label{ text-align:center; font-size:12px; font-weight:800; letter-spacing:.1em; color:var(--lsc-maroon);
  background:#fff; border:1px solid var(--lsc-border); border-radius:6px; padding:5px; }
.lsc-stage{ background:linear-gradient(135deg,var(--lsc-maroon),var(--lsc-maroon-dark)); border-radius:10px; display:flex; align-items:center; justify-content:center; }
.lsc-stage span{ color:#fff; font-weight:800; letter-spacing:.3em; writing-mode:vertical-rl; transform:rotate(180deg); font-size:15px; }

.lsc-hint{ text-align:center; font-size:12.5px; color:var(--lsc-muted); margin:16px 0 0; }
.lsc-hint__swipe{ display:none; }
.lsc-scroll{ /* desktop: no scroll needed */ }

/* ===== Modal ===== */
.lsc-modal{ position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center; padding:20px; }
.lsc-modal[hidden]{ display:none; }
.lsc-modal__backdrop{ position:absolute; inset:0; background:rgba(40,12,16,.55); backdrop-filter:blur(3px); }
.lsc-modal__card{ position:relative; background:#fff; width:100%; max-width:440px; border-radius:18px; padding:28px 26px 24px;
  box-shadow:0 30px 70px -28px rgba(0,0,0,.6); z-index:1; animation:lsc-pop .22s ease; }
@keyframes lsc-pop{ from{ transform:translateY(10px) scale(.98); opacity:0; } to{ transform:none; opacity:1; } }
.lsc-modal__close{ position:absolute; top:12px; right:12px; width:34px; height:34px; border:none; background:var(--lsc-cream);
  border-radius:50%; font-size:22px; line-height:1; color:var(--lsc-maroon); cursor:pointer; transition:background .2s ease; }
.lsc-modal__close:hover{ background:#f0e2e4; }
.lsc-modal__kicker{ font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--lsc-maroon); }
.lsc-modal__title{ font-family:'Playfair Display',Georgia,serif; font-size:26px; margin:4px 0 14px; }
.lsc-modal__facts{ list-style:none; margin:0 0 18px; padding:0; display:flex; gap:10px; }
.lsc-modal__facts li{ flex:1; background:var(--lsc-cream); border:1px solid var(--lsc-border); border-radius:10px; padding:10px 12px; }
.lsc-modal__facts span{ display:block; font-size:11px; color:var(--lsc-muted); font-weight:600; text-transform:uppercase; letter-spacing:.05em; }
.lsc-modal__facts strong{ font-size:14px; }
.lsc-form{ display:flex; flex-direction:column; gap:12px; }
.lsc-form label{ display:flex; flex-direction:column; gap:5px; font-size:13px; font-weight:600; }
.lsc-form input{ font:inherit; font-weight:500; padding:11px 13px; border:1px solid var(--lsc-border); border-radius:9px; background:#fff; transition:border-color .2s ease; }
.lsc-form input:focus{ outline:none; border-color:var(--lsc-maroon); }
.lsc-btn{ display:inline-flex; align-items:center; justify-content:center; gap:8px; width:100%; font:inherit; font-size:15px; font-weight:700;
  padding:13px 20px; border-radius:100px; border:none; cursor:pointer; transition:transform .15s ease, background .2s ease; }
.lsc-btn--primary{ background:var(--lsc-maroon); color:#fff; }
.lsc-btn--primary:hover{ background:var(--lsc-maroon-dark); transform:translateY(-1px); }
.lsc-form__note{ font-size:12px; color:var(--lsc-muted); text-align:center; margin:4px 0 0; }

/* ===== Responsive =====
   The layout structure stays IDENTICAL on every screen. On narrow screens the
   whole floor scrolls sideways inside .lsc-scroll, so the UI is 100% the same,
   just smaller + swipeable. No zone is reflowed or re-stacked. */
@media (max-width:980px){
  .lsc-scroll{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    padding-bottom:10px;                 /* room for scrollbar */
    scrollbar-width:thin;
  }
  .lsc-scroll .lsc-floor__inner{
    min-width:900px;                     /* preserve the real layout at this width */
  }
  .lsc-hint__swipe{ display:inline; color:var(--lsc-maroon); font-weight:700; margin-right:4px; }
}

/* Smaller stall buttons + tighter type on phones (structure unchanged) */
@media (max-width:560px){
  .lsc-wrap{ padding:28px 12px; }
  .lsc-floor{ padding:14px 12px 12px; }
  .lsc-scroll .lsc-floor__inner{ min-width:860px; gap:9px; }
  .lsc-stall{ min-height:50px; border-radius:8px; }
  .lsc-stall::before{ font-size:13px; }
  .lsc-stall::after{ font-size:9px; bottom:5px; }
  .lsc-stall--v{ min-height:52px; }
  .lsc-stall--11{ min-height:109px; }
  .lsc-left{ width:96px; }
  .lsc-summary{ flex-direction:column; align-items:stretch; gap:12px; bottom:0; }
  .lsc-summary__right{ justify-content:space-between; }
  .lsc-book{ flex:1; justify-content:center; }
}
/* ===== END verbatim stall-booking.html <style> ============================ */


/* 2. The one extra line each tile carries: tier and size.
      Absolutely positioned so it cannot change the tile's height, which is
      what the pixel diff is measuring. */
.lsc-stall__meta {
  position: absolute; left: 0; right: 0; bottom: 19px;
  font-size: 8.5px; font-weight: 600; line-height: 1.1;
  opacity: .9; pointer-events: none;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.lsc-stall--booked .lsc-stall__meta { color: #f3d9de; }

/* 3. Everything below the widget: availability, the member box, the state the
      reference never had. These are ours and are styled with theme tokens. */
.lsc-after { max-width: 1280px; margin: 0 auto; padding: 0 24px 40px; }
.lsc-after .rtab__h { margin-top: 0; }
.lsc-listtoggle { text-align: center; margin: 0 0 18px; }
.lsc-list { display: none; }
.lsc-booking[data-view="list"] .lsc-list { display: block; }
.lsc-booking[data-view="list"] .lsc-floor { display: none; }
.lsc-listgroup { margin: 0 0 22px; }
.lsc-listgroup h3 { display: flex; align-items: center; gap: 8px; font-size: 15px; margin: 0 0 10px; }
.lsc-listgroup h3 small { font-weight: 400; color: var(--lsc-muted); }
.lsc-listgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(104px, 1fr)); gap: 9px; }
.lsc-listgrid .lsc-stall { min-height: 58px; }

/* The reference put these on the element as style="grid-column:span N".
   Same values, as classes, because this theme allows no inline CSS. */
.lsc-span-3 { grid-column: span 3; }
.lsc-span-4 { grid-column: span 4; }
.lsc-span-5 { grid-column: span 5; }

/* ---------------------------------------------------------------------------
   Line-box compensation
   ---------------------------------------------------------------------------
   These four blocks have no content of their own beyond one short line, so
   their height is the line box. With byte-identical CSS, an identical font
   stack, identical computed font-size and `line-height: normal` on both, the
   reference renders them at 15/15/16/21px and this page renders them at
   18/21/21/27px — and the drift accumulates down the plan, pushing everything
   below the first passage out of alignment.

   I could not attribute the difference: the theme's own stylesheets were
   disabled one by one and it persisted, so it is not a rule reaching in. The
   values below are the reference's own rendered line boxes, measured, and are
   pinned so the two plans line up. If the cause is ever found, delete this
   block rather than carrying it.
   --------------------------------------------------------------------------- */
.lsc-booking .lsc-dim--w  { height: 15px; line-height: 15px; }
.lsc-booking .lsc-passage { height: 15px; line-height: 15px; }
.lsc-booking .lsc-pathway { height: 39px; line-height: 21px; }
/* no height on the hint: it wraps to two lines on a phone and must be free to */
.lsc-booking .lsc-hint    { line-height: 16px; }

/* ---------------------------------------------------------------------------
   Fix 9 -- two deliberate departures from the reference, at the client's
   instruction. Everything else on the plan is still the reference's.

   1. The page title and the text around the plan use the site's own type.
      The title takes the H1 tokens the page hero uses (display face, black
      weight, --fs-h1, -.045em, 1.06, ink); the eyebrow, the date/venue line,
      the legend, its note and the floor-image link use the body face.
   2. A stall block is laid out as a column -- number, then tier and size, then
      price -- with padding and a gap, in the normal flow. Nothing is absolutely
      positioned any more, so the lines cannot overlap, the tier name wraps to
      two lines rather than clip, and a block grows a little rather than cut
      its text. Type scales with the viewport between phone and desktop.
   ------------------------------------------------------------------------ */
.lsc-booking .lsc-title{ font-family:var(--fd); font-size:var(--fs-h1); font-weight:var(--fw-black); letter-spacing:-.045em; line-height:1.06; line-height:round(calc(var(--fs-h1) * 1.06), 1px); color:var(--ink); margin:0 0 12px; }
/* Whole-pixel line boxes in the block above the plan. A fractional line box
   (the body face's "normal" line height, or 1.06 of a fluid size) puts the plan
   at a fractional y, and every 1px rule in it -- the dimension line, the dashed
   passages -- is then antialiased differently from the reference. */
.lsc-booking .lsc-eyebrow{ line-height:16px; }
.lsc-booking .lsc-meta{ line-height:20px; }
.lsc-booking .lsc-legend__item{ line-height:18px; }
.lsc-booking .lsc-legend-note{ line-height:18px; }
.lsc-booking .lsc-eyebrow,
.lsc-booking .lsc-meta,
.lsc-booking .lsc-legend,
.lsc-booking .lsc-legend-note,
.lsc-booking .lsc-floorlink{ font-family:var(--fb); }

.lsc-booking .lsc-floorlink .floorlink{ color:var(--mar); font-weight:var(--fw-semi); text-decoration:none; font-size:var(--fs-md); }
.lsc-booking .lsc-floorlink .floorlink:hover{ text-decoration:underline; text-underline-offset:.2em; color:var(--mar-dp); }

.lsc-booking .lsc-stall{
  flex-direction:column; align-items:center; justify-content:center; gap:1px;
  padding:clamp(4px, .38vw, 6px) clamp(4px, .6vw, 8px);
  font-family:var(--fb);
}
.lsc-booking .lsc-stall::before{ order:1; margin:0; font-size:clamp(13px, 1.05vw, 15px); font-weight:800; line-height:1.05; }
.lsc-booking .lsc-stall .lsc-stall__meta{
  order:2; position:static; max-width:100%;
  font-size:clamp(8.5px, .66vw, 9.5px); font-weight:600; line-height:1.12;
  white-space:normal; overflow:visible; text-overflow:clip; text-wrap:balance; overflow-wrap:anywhere;
}
.lsc-booking .lsc-stall::after{ order:3; position:static; font-size:clamp(9px, .7vw, 10.5px); font-weight:700; line-height:1.1; }
.lsc-booking .lsc-stall--booked::before{ font-size:clamp(11px, .9vw, 13px); }
@media (max-width:560px){
  .lsc-booking .lsc-stall::before{ font-size:13px; }
  .lsc-booking .lsc-stall::after{ font-size:9px; }
  .lsc-booking .lsc-stall{ padding-left:2px; padding-right:2px; }
  .lsc-booking .lsc-stall .lsc-stall__meta{ font-size:8px; letter-spacing:-.01em; }
}

/* The other blocks (11, WAY TO WORKSHOP, the X) already carry the reference's own
   padding -- 8px above and below the workshop text -- which is the same rule, so
   they are left exactly as they were and their geometry does not move. */
