/* ==========================================================================
   LegalSportsBetting.com — Design System v3  (lsb-)
   A FULL REPAINT. Soft-rounded, layered "card on panel" depth (shadows AND
   borders), punchy red/white/blue on white. Mobile-first. Deliberately a
   different visual language from the flat/sharp sister sites.
   Scoped under .lsb-page. Loaded only on pages the redesigner has applied.
   ========================================================================== */

/* ==========================================================================
   WORDPRESS BLOCK-LAYOUT OVERRIDE  (must stay at the top)
   The redesigner converts every layout <div> into a core/group block, which
   WordPress + the theme render with their own layout classes (wp-block-group,
   is-layout-flow / -constrained / -flex). Those set `display` and inject child
   margins, which flatten our grids and flex rows into a single column. We use
   !important here deliberately: it is the one reliable way to win against
   framework CSS we do not control, and every rule is scoped under .lsb-page so
   it can never affect any other page on the site. This restores the layout on
   already-applied pages without needing to re-Apply.
   ========================================================================== */

/* ----------------------------------------------------------------------------
   STRUCTURAL FIX — the core/group wrapper (MUST come first)
   The converter renders every group as TWO nested elements:
       <div class="wp-block-group lsb-X">
         <div class="wp-block-group__inner-container is-layout-flow"> ...kids... </div>
       </div>
   Our class (lsb-X) sits on the OUTER div, but the real children live inside the
   INNER container. A layout rule on the outer element therefore had no real
   children to lay out, so grids/flex rows collapsed. The fix: every layout rule
   below is written for BOTH `.lsb-X` AND `.lsb-X > .wp-block-group__inner-container`
   (see the grouped selectors), so the grid/flex is applied to whichever element
   actually holds the items. To make that automatic we also force the inner
   container to inherit its parent's display so it becomes the real layout box.
   We do NOT use display:contents (engines compute it away when the element is
   itself a grid/flex item). Scoped to .lsb-page so no other page is affected.
   ------------------------------------------------------------------------------ */
.lsb-page .wp-block-group{ display:block; }
/* The inner container is a pass-through wrapper; remove it from the box
   tree so the real children become the grid/flex items defined on the
   lsb- element. Placed FIRST and scoped to .lsb-page. */
.lsb-page > .wp-block-group__inner-container,
.lsb-page .wp-block-group > .wp-block-group__inner-container{ display:contents !important; }
/* WordPress injects margin-block-start between every flow-layout child via its
   "block gap" (the --wp--style--block-gap custom property, default ~24px).
   Because our inner containers are display:contents, those promoted children
   keep WP's margins and our components balloon in height. We remove the block
   gap at its source by zeroing the variable on the page, and belt-and-braces
   zero the margin WP's :where() rule sets (zero specificity, so our own
   per-element design margins below still win). Scoped to .lsb-page. */
.lsb-page{ --wp--style--block-gap:0px; }
:where(.lsb-page .is-layout-flow) > *{ margin-block-start:0; margin-block-end:0; }

.lsb-page .lsb-qf,
.lsb-page .lsb-opgrid,
.lsb-page .lsb-srgrid,
.lsb-page .lsb-stategrid,
.lsb-page .lsb-statesummary,
.lsb-page .lsb-steps,
.lsb-page .lsb-stats,
.lsb-page .lsb-rg,
.lsb-page .lsb-auth-grid,
.lsb-page .lsb-pc,
.lsb-page .lsb-sr-mini,
.lsb-page .lsb-review-cols,
.lsb-page .lsb-callout,
.lsb-page .lsb-glance,
.lsb-page .lsb-qfstrip,
.lsb-page .lsb-ctagrid,
.lsb-page .lsb-herocards,
.lsb-page .lsb-hcard-stats,
.lsb-page .lsb-offhead,
.lsb-page .lsb-offhead-stats,
.lsb-page .lsb-vs{ display:grid !important; }
.lsb-page .lsb-sh,
.lsb-page .lsb-cta-row,
.lsb-page .lsb-crosslink,
.lsb-page .lsb-trust,
.lsb-page .lsb-trust-names,
.lsb-page .lsb-toc-h,
.lsb-page .lsb-toc-grid,
.lsb-page .lsb-opcard,
.lsb-page .lsb-opcard-top,
.lsb-page .lsb-opcard-body,
.lsb-page .lsb-review-head,
.lsb-page .lsb-qf-chip,
.lsb-page .lsb-qf-ic,
.lsb-page .lsb-qf-list li,
.lsb-page .lsb-sr,
.lsb-page .lsb-sr-head,
.lsb-page .lsb-sr-foot,
.lsb-page .lsb-statecard,
.lsb-page .lsb-statecard-top,
.lsb-page .lsb-statecard-meta,
.lsb-page .lsb-ss-box .h,
.lsb-page .lsb-auth-logos,
.lsb-page .lsb-hcard,
.lsb-page .lsb-hcard-applied,
.lsb-page .lsb-vs-head,
.lsb-page .lsb-vs-list li,
.lsb-page .lsb-bookbar,
.lsb-page .lsb-bars,
.lsb-page .lsb-barcol,
.lsb-page .lsb-barpair,
.lsb-page .lsb-ctabox{ display:flex !important; }
/* Containers that flex but were still being flattened, plus flex-direction
   and alignment that the block system strips. */
.lsb-page .lsb-glance-row,
.lsb-page .lsb-glance-row .ic,
.lsb-page .lsb-qf-ic,
.lsb-page .lsb-hcard-stat,
.lsb-page .lsb-vs-head,
.lsb-page .lsb-herocards-label,
.lsb-page .lsb-step-n,
.lsb-page .lsb-callout-ic,
.lsb-page .lsb-rg-ic{ display:flex !important; }
/* Vertical (column) flex containers — these must NOT become rows. */
.lsb-page .lsb-opcard-body,
.lsb-page .lsb-sr,
.lsb-page .lsb-hcard,
.lsb-page .lsb-ctabox,
.lsb-page .lsb-newscard-body{ flex-direction:column !important; }
/* Card-stat / qf tiles stack their label over value. */
.lsb-page .lsb-hcard-stat,
.lsb-page .lsb-glance-rows,
.lsb-page .lsb-sr-mini div,
.lsb-page .lsb-offerbox{ display:block !important; }
/* Push the value to the right edge inside glance rows + qf facts. */
.lsb-page .lsb-glance-row .v{ margin-left:auto !important; }
/* Inner label/value spans that became inline blocks must stack again. */
.lsb-page .lsb-offerbox .k,
.lsb-page .lsb-offerbox .v,
.lsb-page .lsb-qf-num,
.lsb-page .lsb-qf-lbl,
.lsb-page .lsb-hcard-stat .k,
.lsb-page .lsb-hcard-stat .v,
.lsb-page .lsb-sr-mini div b,
.lsb-page .lsb-statecard-name,
.lsb-page .lsb-glance-tile .n,
.lsb-page .lsb-glance-tile .l{ display:block !important; }
/* The block system injects margin-block-start:24px on every child block via
   :where(.wp-block-group.is-layout-*) > *. That inflates our rows and cards at
   every nesting level. Kill it on ALL descendants of lsb- containers in one
   rule (covers every nesting depth so none is missed), scoped to .lsb-page.
   Spacing inside our components comes from `gap` and explicit paddings. */
.lsb-page [class*="lsb-"] > *{ margin-block-start:0 !important; margin-block-end:0 !important; }
/* Restore the spacing that SHOULD exist: prose paragraphs/lists/headings stack
   with vertical rhythm, and stacked .lsb-panel sections keep their gap. */
.lsb-page .lsb-prose > p,
.lsb-page .lsb-prose > ul,
.lsb-page .lsb-prose > ol{ margin-block-end:1.05rem !important; }
.lsb-page .lsb-prose > h3,
.lsb-page .lsb-prose > h4{ margin-block-start:1.4rem !important; margin-block-end:.5rem !important; }
.lsb-page .lsb-panel + .lsb-panel,
.lsb-page .lsb-panel{ margin-block-start:18px !important; }
.lsb-page .lsb-timeline li + li{ margin-block-start:10px !important; }
/* Restore spacing on the connective section labels, sub-headings and captions
   that sit between major blocks. The blanket reset above flattened these; their
   own margins are what separate them from the elements above and below. */
.lsb-page .lsb-subhead{ margin-block-start:24px !important; margin-block-end:14px !important; }
.lsb-page .lsb-subhead.lg{ margin-block-start:26px !important; }
.lsb-page .lsb-subhead.tight{ margin-block-start:24px !important; margin-block-end:6px !important; }
.lsb-page .lsb-subhead.tbl{ margin-block-start:26px !important; margin-block-end:12px !important; }
.lsb-page .lsb-sub{ margin-block-start:10px !important; margin-block-end:20px !important; }
.lsb-page .lsb-sub.mb-sm{ margin-block-end:14px !important; }
.lsb-page .lsb-note-sm{ margin-block-start:10px !important; margin-block-end:6px !important; }
/* The section header rule (red bar + H2) and its kicker sublabel under it. */
.lsb-page .lsb-sh{ margin-block-end:6px !important; }
.lsb-page .lsb-herocards-label{ margin-block-start:22px !important; margin-block-end:14px !important; }

/* TABLE FIX. The converter wraps <table> as a core/table block:
   <figure class="wp-block-table lsb-table"><table class="has-fixed-layout">. The
   custom lsb-table class lives on the FIGURE only (core/table puts no custom
   class on the inner <table>), and the caption is a
   <figcaption class="wp-element-caption"> after the table. So target the inner
   table as `figure.lsb-table table`. WordPress gives the figure its own margins
   and (under constrained layout) can stop the table filling the card, leaving a
   top gap and dead space on the right. Force the figure and table to fill the
   width with no stray margin. */
.lsb-page .lsb-tablescroll > figure,
.lsb-page figure.wp-block-table,
.lsb-page figure.lsb-table{
  margin:0 !important; width:100% !important; max-width:100% !important;
  display:block !important; float:none !important;
}
.lsb-page figure.wp-block-table > table,
.lsb-page figure.lsb-table > table{ width:100% !important; min-width:100% !important; display:table !important; margin:0 !important; }
.lsb-page figure.lsb-table > table > thead{ display:table-header-group !important; }
.lsb-page figure.lsb-table > table > tbody{ display:table-row-group !important; }
.lsb-page figure.lsb-table table tr{ display:table-row !important; }
.lsb-page figure.lsb-table table th,
.lsb-page figure.lsb-table table td{ display:table-cell !important; }
/* caption (figcaption) sits with no injected gap */
.lsb-page figure.lsb-table > figcaption{ margin:0 !important; }

/* STEP FIX (How We Rate). .lsb-step is a block card with an absolutely
   positioned number badge (top:-12px). It must NOT be flex (that put the title
   beside the body) and its h4 needs its top/bottom margin back (the blanket
   reset removed the badge clearance and the title-to-body gap). */
.lsb-page .lsb-step{ display:block !important; }
.lsb-page .lsb-step > h4,
.lsb-page .lsb-step h4{ margin-block-start:14px !important; margin-block-end:6px !important; display:block !important; }
.lsb-page .lsb-step > p,
.lsb-page .lsb-step p{ display:block !important; }

.lsb-page{
  --navy:#0a2a5e; --navy-2:#0f366f; --navy-3:#16448a;
  --red:#e2231a; --red-2:#bd1a12; --red-wash:#fdecea;
  --blue:#1a6dd4; --blue-2:#1457ad; --blue-wash:#eaf3fd;
  --ink:#14181f; --ink-2:#39434f;
  --slate:#5e6a7a; --slate-2:#8995a6;
  --gold:#f5a623;
  --green:#1a7f46; --green-wash:#e7f5ec;
  --page:#eef2f8; --panel:#f4f7fb; --card:#ffffff;
  --line:#e2e8f1; --line-2:#cdd6e3;
  --r-sm:8px; --r:12px; --r-lg:16px; --r-xl:22px; --pill:999px;
  --sh-sm:0 1px 2px rgba(10,42,94,.06), 0 1px 3px rgba(10,42,94,.10);
  --sh:0 2px 6px rgba(10,42,94,.06), 0 8px 22px -8px rgba(10,42,94,.18);
  --sh-lg:0 4px 10px rgba(10,42,94,.07), 0 22px 48px -16px rgba(10,42,94,.28);
  --sh-red:0 8px 22px -8px rgba(226,35,26,.5);
  --display:"Archivo","Helvetica Neue",sans-serif;
  --narrow:"Archivo Narrow","Archivo",sans-serif;
  --serif:"Roboto Serif",Georgia,serif;
  --body:"Archivo","Helvetica Neue",Arial,sans-serif;
  color:var(--ink); font-family:var(--body); font-size:16px; line-height:1.65;
  background:var(--page); -webkit-font-smoothing:antialiased;
}
.lsb-page *{ box-sizing:border-box; }
.lsb-page img{ max-width:100%; height:auto; }
.lsb-page ::selection{ background:var(--navy); color:#fff; }
.lsb-page a{ color:var(--blue); text-decoration:none; transition:color .12s ease; }
.lsb-page a:hover{ color:var(--red); }
.lsb-page strong{ font-weight:700; color:var(--ink); }

.lsb-wrap{ max-width:1400px; margin:0 auto; padding:0 22px; }
.lsb-panel{ background:var(--card); border:1px solid var(--line-2); border-radius:var(--r-xl);
  box-shadow:var(--sh); padding:26px; margin:18px 0; }
/* On state pages, FAQ items and other white cards sit inside white panels, so
   give those a faint tint to keep their edge against the white panel. */
.lsb-page .lsb-panel .lsb-faq-item{ background:var(--panel); }

/* ---- Reading rhythm for flowing text inside panels ----
   The homepage zeroes block margins because its content is component-dense.
   State pages are text-heavy (long runs of <p>, <h2>, <h3>, <ul>), so without
   restored spacing the prose reads cramped. Re-add vertical rhythm to the text
   elements that flow directly inside a panel, leaving component internals (which
   set their own spacing) untouched. */
.lsb-page .lsb-panel > p,
.lsb-page .lsb-panel > .wp-block-group > p,
.lsb-page .lsb-panel p{ margin:0 0 16px; }
.lsb-page .lsb-panel > h2,
.lsb-page .lsb-panel h2{ margin:28px 0 12px; }
.lsb-page .lsb-panel > h3,
.lsb-page .lsb-panel h3{ margin:26px 0 10px; font-size:1.22rem; }
.lsb-page .lsb-panel > h4,
.lsb-page .lsb-panel h4{ margin:22px 0 9px; font-size:1.05rem; }
.lsb-page .lsb-panel > ul,
.lsb-page .lsb-panel > ol{ margin:0 0 18px; padding-left:22px; }
.lsb-page .lsb-panel > ul > li,
.lsb-page .lsb-panel > ol > li{ margin-bottom:8px; line-height:1.6; }
/* The section header (lsb-sh) leads each panel, so it needs no top margin; and
   the first element after it shouldn't get a big gap. */
.lsb-page .lsb-panel > .lsb-sh{ margin-top:0; }
.lsb-page .lsb-panel > .lsb-sh + p,
.lsb-page .lsb-panel > .lsb-sh + .wp-block-group{ margin-top:4px; }
/* Headings that belong to a component manage their own spacing; keep the
   reading-rhythm margins above from disturbing them. */
.lsb-page .lsb-sh h2,
.lsb-page .lsb-herocards-label h3,
.lsb-page .lsb-prop h3,
.lsb-page .lsb-prop h4,
.lsb-page .lsb-faq-q,
.lsb-page .lsb-timeline-h{ margin-top:0; }
.lsb-page h1,.lsb-page h2,.lsb-page h3,.lsb-page h4{ font-family:var(--display); font-weight:800;
  line-height:1.12; color:var(--navy); margin:0; }
.lsb-sh{ display:flex; align-items:center; gap:13px; margin:0 0 6px; }
.lsb-sh::before{ content:""; flex:0 0 auto; width:6px; height:30px; background:var(--red); border-radius:var(--pill); }
.lsb-sh h2{ font-size:1.7rem; letter-spacing:-.018em; }
.lsb-sh .lsb-kick{ margin-left:auto; font-family:var(--narrow); font-weight:700; letter-spacing:.1em;
  text-transform:uppercase; font-size:.72rem; color:var(--blue-2); background:var(--blue-wash);
  border:1px solid var(--line-2); padding:5px 11px; border-radius:var(--pill); }
a.lsb-kick-link{ transition:all .12s; text-decoration:none; }
a.lsb-kick-link:hover{ background:var(--navy); color:#fff !important; border-color:var(--navy); }
.lsb-sub{ color:var(--slate); margin:10px 0 20px; max-width:none; font-size:1.02rem; }

.lsb-cta{ display:inline-flex; align-items:center; gap:8px; font-family:var(--display); font-weight:800;
  text-transform:uppercase; letter-spacing:.03em; font-size:.9rem; padding:13px 22px; border-radius:var(--pill);
  transition:all .14s ease; cursor:pointer; border:2px solid transparent; }
.lsb-cta-red{ background:var(--red); color:#fff !important; box-shadow:var(--sh-red); }
.lsb-cta-red:hover{ background:var(--red-2); color:#fff !important; transform:translateY(-1px); }
.lsb-cta-navy{ background:var(--navy); color:#fff !important; }
.lsb-cta-navy:hover{ background:var(--navy-3); color:#fff !important; transform:translateY(-1px); }
.lsb-cta-ghost{ background:#fff; color:var(--blue-2) !important; border-color:var(--line-2); box-shadow:var(--sh-sm); }
.lsb-cta-ghost:hover{ border-color:var(--blue); color:var(--blue) !important; }
.lsb-cta-row{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.lsb-crosslink{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:space-between;
  background:var(--blue-wash); border:1px solid var(--line-2); border-left:5px solid var(--blue);
  border-radius:var(--r); padding:16px 20px; margin:18px 0; }
.lsb-crosslink p{ margin:0; font-weight:600; color:var(--navy); font-size:1rem; }

.lsb-pill{ display:inline-flex; align-items:center; gap:5px; font-family:var(--narrow); font-weight:700;
  font-size:.72rem; letter-spacing:.03em; text-transform:uppercase; padding:4px 11px; border-radius:var(--pill); white-space:nowrap; }
.lsb-pill-yes,.lsb-pill-reg{ background:var(--green-wash); color:var(--green); border:1px solid rgba(26,127,70,.28); }
.lsb-pill-off,.lsb-pill-partial{ background:var(--blue-wash); color:var(--blue-2); border:1px solid rgba(26,109,212,.26); }
.lsb-pill-no{ background:#eef1f5; color:var(--slate); border:1px solid var(--line-2); }
.lsb-pill-pending{ background:#fdf3e1; color:#b9770f; border:1px solid rgba(245,166,35,.4); }
.lsb-pill-red{ background:var(--red-wash); color:var(--red-2); border:1px solid rgba(226,35,26,.26); }

.lsb-prose p{ font-family:var(--serif); font-size:1.04rem; color:var(--ink-2); line-height:1.74; margin:0 0 1.05rem; }
.lsb-prose h3{ font-size:1.25rem; margin:26px 0 10px; }
.lsb-prose h4{ font-size:1.06rem; margin:20px 0 8px; color:var(--navy-2); }
.lsb-prose ul{ list-style:none; margin:1rem 0 1.3rem; padding:0; }
.lsb-prose ul li{ position:relative; padding:8px 0 8px 30px; border-bottom:1px solid var(--line); }
.lsb-prose ul li:last-child{ border-bottom:none; }
.lsb-prose ul li::before{ content:""; position:absolute; left:4px; top:15px; width:12px; height:12px; border-radius:3px; background:var(--red); }
.lsb-prose ul li strong{ color:var(--navy); }
.lsb-prose ol{ margin:1rem 0 1.3rem 1.1rem; }
.lsb-prose ol li{ padding:5px 0 5px 5px; }
.lsb-prose a{ color:var(--blue); font-weight:600; border-bottom:1px solid rgba(26,109,212,.32); }
.lsb-prose a:hover{ color:var(--red); border-bottom-color:var(--red); }

.lsb-hero{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-xl);
  box-shadow:var(--sh-lg); overflow:hidden; margin:18px 0; position:relative; }
.lsb-hero::before{ content:""; position:absolute; inset:0 0 auto 0; height:6px;
  background:linear-gradient(90deg,var(--navy) 0 33%,#fff 33% 66%,var(--red) 66%); }
.lsb-hero-body{ padding:40px 38px 30px; }
.lsb-hero .lsb-eyebrow{ display:inline-flex; align-items:center; gap:9px; font-family:var(--narrow); font-weight:700;
  letter-spacing:.14em; text-transform:uppercase; font-size:.74rem; color:var(--red); margin-bottom:14px; }
.lsb-hero .lsb-eyebrow::before{ content:""; width:24px; height:3px; background:var(--red); border-radius:var(--pill); }
.lsb-hero h1{ font-family:var(--display); font-weight:900; font-size:3.1rem; letter-spacing:-.025em;
  line-height:1.02; color:var(--navy); margin-bottom:16px; max-width:none; }
.lsb-hero h1 em{ font-style:normal; color:var(--red); }
.lsb-hero-lead{ font-family:var(--serif); font-size:1.12rem; color:var(--ink-2); line-height:1.7; max-width:none; margin:0 0 8px; }
.lsb-updated{ margin-top:16px; font-family:var(--narrow); font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; font-size:.72rem; color:var(--slate); display:inline-flex; align-items:center; gap:8px; }
.lsb-updated::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--green); box-shadow:0 0 0 3px var(--green-wash); }
.lsb-qf{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; padding:0 38px 34px; }
.lsb-qf-chip{ background:var(--panel); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-sm);
  padding:14px; display:flex; align-items:center; gap:13px; }
.lsb-qf-ic{ flex:0 0 auto; min-width:64px; height:58px; padding:0 12px; border-radius:var(--r-sm); display:flex; align-items:center;
  justify-content:center; font-family:var(--display); font-weight:900; font-size:1.7rem; color:#fff; background:var(--navy); letter-spacing:-.02em; }
.lsb-qf-chip:nth-child(2) .lsb-qf-ic{ background:var(--blue); }
.lsb-qf-chip:nth-child(3) .lsb-qf-ic{ background:var(--slate); }
.lsb-qf-chip:nth-child(4) .lsb-qf-ic{ background:var(--red); }
.lsb-qf-lbl{ font-size:.88rem; color:var(--ink-2); line-height:1.4; font-weight:600; }
.lsb-trust{ display:flex; align-items:center; gap:22px; flex-wrap:wrap; padding:16px 24px; background:var(--card);
  border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-sm); margin:14px 0; }
.lsb-trust-k{ font-family:var(--narrow); font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  font-size:.72rem; color:var(--slate); border-right:1px solid var(--line-2); padding-right:22px; }
.lsb-trust-names{ display:flex; gap:20px; flex-wrap:wrap; font-family:var(--display); font-weight:800; color:var(--navy); font-size:.98rem; }

.lsb-opgrid{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.lsb-opcard{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh);
  overflow:hidden; display:flex; flex-direction:column; position:relative; transition:transform .14s ease, box-shadow .14s ease; }
.lsb-opcard:hover{ transform:translateY(-3px); box-shadow:var(--sh-lg); }
.lsb-opcard-top{ padding:9px 14px; display:flex; align-items:center; justify-content:space-between;
  font-family:var(--narrow); font-weight:700; font-size:.68rem; letter-spacing:.1em; text-transform:uppercase; color:#fff; }
.lsb-opcard.reg .lsb-opcard-top{ background:var(--green); }
.lsb-opcard.off .lsb-opcard-top{ background:var(--blue-2); }
.lsb-opcard-rank{ background:rgba(255,255,255,.25); width:20px; height:20px; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-weight:800; }
.lsb-opcard-body{ padding:18px 16px; flex:1; display:flex; flex-direction:column; text-align:center; }
.lsb-opcard-logo{ font-family:var(--display); font-weight:900; font-size:1.35rem; color:var(--navy);
  text-transform:uppercase; letter-spacing:-.01em; }
.lsb-opcard-rating{ display:inline-flex; align-self:center; align-items:center; gap:5px; margin:8px 0 4px;
  font-family:var(--narrow); font-weight:700; font-size:.78rem; color:var(--gold); }
.lsb-opcard-offer{ font-family:var(--serif); font-size:.92rem; color:var(--ink-2); margin:8px 0 14px; flex:1; }
.lsb-opcard-states{ background:var(--blue-wash); border:1px dashed var(--blue); border-radius:var(--r-sm); padding:9px 11px; margin:0 0 13px; }
.lsb-opcard-states .k{ font-family:var(--narrow); font-weight:700; letter-spacing:.06em; text-transform:uppercase;
  font-size:.64rem; color:var(--blue-2); display:block; margin-bottom:4px; }
.lsb-opcard-states .v{ font-family:var(--display); font-weight:700; font-size:.82rem; color:var(--navy); line-height:1.45; word-spacing:2px; }
.lsb-opcard-cta{ display:block; text-align:center; background:var(--red); color:#fff !important;
  font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:.03em; font-size:.86rem;
  padding:12px; border-radius:var(--pill); box-shadow:var(--sh-red); }
.lsb-opcard-cta:hover{ background:var(--red-2); color:#fff !important; }

.lsb-toc{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh); padding:22px 24px; }
.lsb-toc-h{ display:flex; align-items:center; gap:10px; font-family:var(--display); font-weight:800; color:var(--navy);
  text-transform:uppercase; letter-spacing:.02em; font-size:1.05rem; margin-bottom:14px; }
.lsb-toc-h::before{ content:""; width:6px; height:22px; background:var(--blue); border-radius:var(--pill); }
.lsb-toc-grid{ display:flex; flex-wrap:wrap; gap:9px; }
.lsb-toc-grid a{ display:inline-flex; align-items:center; gap:7px; background:var(--panel); border:1px solid var(--line-2);
  border-radius:var(--pill); padding:8px 15px; font-weight:600; font-size:.9rem; color:var(--navy) !important; transition:all .12s; }
.lsb-toc-grid a:hover{ background:var(--navy); color:#fff !important; border-color:var(--navy); }
.lsb-toc-grid a span{ font-family:var(--narrow); font-weight:700; color:var(--red); }
.lsb-toc-grid a:hover span{ color:#fff; }

.lsb-callout{ display:grid; grid-template-columns:auto 1fr; gap:16px; align-items:start; padding:20px 24px;
  border-radius:var(--r); margin:20px 0; box-shadow:var(--sh-sm); }
.lsb-callout .lsb-callout-ic{ width:40px; height:40px; border-radius:50%; display:flex; align-items:center;
  justify-content:center; font-family:var(--display); font-weight:900; font-size:1.2rem; color:#fff; }
.lsb-callout p{ margin:0; font-size:.98rem; } .lsb-callout p+p{ margin-top:8px; }
.lsb-callout .lsb-callout-h{ font-family:var(--display); font-weight:800; color:var(--navy); font-size:1.05rem; margin:0 0 5px; }
.lsb-tip{ background:var(--green-wash); border:1px solid rgba(26,127,70,.22); }
.lsb-tip .lsb-callout-ic{ background:var(--green); }
.lsb-warn{ background:var(--red-wash); border:1px solid rgba(226,35,26,.2); }
.lsb-warn .lsb-callout-ic{ background:var(--red); }
.lsb-note{ background:var(--blue-wash); border:1px solid rgba(26,109,212,.2); }
.lsb-note .lsb-callout-ic{ background:var(--blue); }

.lsb-review{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-lg); overflow:hidden; margin:18px 0; }
.lsb-review-head{ display:flex; align-items:center; gap:16px; padding:22px 26px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.lsb-review.reg .lsb-review-head{ background:linear-gradient(0deg,var(--green-wash),#fff); }
.lsb-review.off .lsb-review-head{ background:linear-gradient(0deg,var(--blue-wash),#fff); }
.lsb-review-badge{ font-family:var(--narrow); font-weight:700; letter-spacing:.08em; text-transform:uppercase;
  font-size:.68rem; padding:5px 12px; border-radius:var(--pill); color:#fff; }
.lsb-review.reg .lsb-review-badge{ background:var(--green); }
.lsb-review.off .lsb-review-badge{ background:var(--blue-2); }
.lsb-review-logo{ font-family:var(--display); font-weight:900; font-size:1.7rem; color:var(--navy); text-transform:uppercase; }
.lsb-review-rate{ display:inline-flex; align-items:center; gap:6px; font-family:var(--narrow); font-weight:700;
  font-size:.82rem; color:#fff; background:var(--gold); padding:5px 12px; border-radius:var(--pill); }
.lsb-review-cols{ display:grid; grid-template-columns:1.5fr 1fr; }
.lsb-review-main{ padding:24px 26px; border-right:1px solid var(--line); }
.lsb-review-main h3{ font-size:1.35rem; margin-bottom:12px; }
.lsb-review-main p{ font-family:var(--serif); font-size:1rem; color:var(--ink-2); margin:0 0 12px; line-height:1.7; }
.lsb-review-side{ padding:24px; background:var(--panel); }
.lsb-qf-list{ list-style:none; margin:0 0 16px; padding:0; }
.lsb-qf-list li{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:11px 0; border-bottom:1px solid var(--line); }
.lsb-qf-list li:last-child{ border-bottom:none; }
.lsb-qf-list .lab{ display:flex; align-items:center; gap:9px; color:var(--slate); font-size:.92rem; }
.lsb-qf-list .lab i{ width:26px; height:26px; border-radius:50%; background:var(--blue-wash); display:inline-flex;
  align-items:center; justify-content:center; color:var(--blue-2); font-style:normal; font-weight:800; font-size:.78rem; }
.lsb-qf-list .val{ font-family:var(--display); font-weight:800; color:var(--navy); font-size:.96rem; }
.lsb-offerbox{ background:var(--navy); color:#fff; border-radius:var(--r); padding:16px 18px; text-align:center; margin-bottom:14px; }
.lsb-offerbox .k{ font-family:var(--narrow); font-weight:700; letter-spacing:.1em; text-transform:uppercase; font-size:.66rem; color:var(--gold); }
.lsb-offerbox .v{ font-family:var(--display); font-weight:900; font-size:1.2rem; line-height:1.15; margin-top:5px; }
.lsb-reviewlink{ display:block; text-align:center; margin-top:10px; font-family:var(--narrow); font-weight:700;
  text-transform:uppercase; letter-spacing:.04em; font-size:.74rem; color:var(--blue-2) !important; }
.lsb-reviewlink:hover{ color:var(--red) !important; }
.lsb-pc{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin:6px 0 0; }
.lsb-pc-box{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-sm); padding:16px 18px; }
.lsb-pc-box h4{ display:flex; align-items:center; gap:8px; text-transform:uppercase; font-size:.92rem; margin-bottom:10px; letter-spacing:.04em; }
.lsb-pc-pros{ border-top:3px solid var(--green); }
.lsb-pc-cons{ border-top:3px solid var(--red); }
.lsb-pc-box ul{ list-style:none; margin:0; padding:0; }
.lsb-pc-box li{ position:relative; padding:6px 0 6px 26px; font-size:.9rem; line-height:1.45; }
.lsb-pc-pros li::before{ content:"\2713"; position:absolute; left:2px; top:6px; color:var(--green); font-weight:900; }
.lsb-pc-cons li::before{ content:"\2715"; position:absolute; left:2px; top:6px; color:var(--red); font-weight:900; }

.lsb-srgrid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.lsb-sr{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh);
  overflow:hidden; display:flex; flex-direction:column; transition:transform .14s, box-shadow .14s; }
.lsb-sr:hover{ transform:translateY(-2px); box-shadow:var(--sh-lg); }
.lsb-sr-head{ display:flex; align-items:center; gap:12px; padding:16px 18px; border-bottom:1px solid var(--line); }
.lsb-sr.reg .lsb-sr-head{ background:linear-gradient(110deg,var(--navy),var(--blue)); }
.lsb-sr.off .lsb-sr-head{ background:linear-gradient(110deg,var(--red-2),var(--red)); }
.lsb-sr.reg .lsb-sr-logo,.lsb-sr.off .lsb-sr-logo{ color:#fff; }
.lsb-sr-logo .sub{ display:block; font-family:var(--narrow); font-weight:700; font-size:.68rem; letter-spacing:.04em;
  text-transform:uppercase; opacity:.85; margin-top:2px; }
.lsb-sr.reg .lsb-sr-head .lsb-pill,.lsb-sr.off .lsb-sr-head .lsb-pill{ background:rgba(255,255,255,.22); color:#fff; border-color:rgba(255,255,255,.4); }
.lsb-sr-logoimg{ max-height:30px; max-width:130px; object-fit:contain; background:#fff; border-radius:6px; padding:5px 9px; }
.lsb-sr-bonus{ background:var(--red-wash); border:1px solid rgba(226,35,26,.22); border-radius:var(--r-sm);
  padding:8px 12px; margin-bottom:12px; font-size:.86rem; color:var(--ink-2); }
.lsb-sr-bonus b{ color:var(--red-2); font-family:var(--display); font-weight:800; }
.lsb-sr-logo{ font-family:var(--display); font-weight:900; font-size:1.15rem; color:var(--navy); text-transform:uppercase; }
.lsb-sr-tag{ margin-left:auto; }
.lsb-sr-body{ padding:16px 18px; flex:1; }
.lsb-sr-body p{ font-family:var(--serif); font-size:.93rem; color:var(--ink-2); margin:0 0 12px; line-height:1.6; }
.lsb-sr-mini{ display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:0 0 14px; }
/* The stat cells are plain <div>s. WordPress may place them directly in the
   group or inside a .wp-block-group__inner-container, so match both depths. */
.lsb-sr-mini > div,
.lsb-page .lsb-sr-mini > .wp-block-group__inner-container > div{ font-size:.74rem; color:var(--slate); background:var(--panel); border:1px solid var(--line);
  border-radius:var(--r-sm); padding:8px 11px; font-family:var(--narrow); font-weight:700; text-transform:uppercase; letter-spacing:.03em; }
.lsb-sr-mini b{ display:block; font-family:var(--display); font-weight:800; color:var(--navy); font-size:.96rem;
  text-transform:none; letter-spacing:0; margin-top:3px; }
.lsb-sr-foot{ display:flex; gap:10px; align-items:center; padding:0 18px 18px; }
.lsb-sr-btn{ display:inline-block; font-family:var(--display); font-weight:700; text-transform:uppercase;
  letter-spacing:.03em; font-size:.78rem; padding:9px 18px; border-radius:var(--pill); }
.lsb-sr-btn.red{ background:var(--red); color:#fff !important; box-shadow:var(--sh-red); }
.lsb-sr-btn.red:hover{ background:var(--red-2); color:#fff !important; }
.lsb-sr-btn.ghost{ background:#fff; color:var(--navy) !important; border:2px solid var(--line-2); }
.lsb-sr-btn.ghost:hover{ border-color:var(--navy); }

.lsb-tablewrap{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh); overflow:hidden; }
.lsb-tablescroll{ overflow-x:auto; }
/* .lsb-table is on the FIGURE; the actual table is figure.lsb-table > table.
   The figcaption (was <caption>) carries the wp-element-caption class. */
.lsb-table > table{ width:100%; border-collapse:collapse; font-size:.92rem; background:var(--card); }
.lsb-table > figcaption{ caption-side:top; text-align:left; font-family:var(--narrow); font-weight:700; letter-spacing:.06em;
  text-transform:uppercase; font-size:.74rem; color:var(--slate); padding:16px 18px 10px; background:var(--card); }
.lsb-table thead th{ background:var(--navy); color:#fff; font-family:var(--narrow); font-weight:700; letter-spacing:.05em;
  text-transform:uppercase; font-size:.76rem; padding:13px 15px; text-align:left; border-right:1px solid rgba(255,255,255,.12); position:sticky; top:0; }
.lsb-table thead th:last-child{ border-right:none; }
.lsb-table tbody td{ padding:12px 15px; border-bottom:1px solid var(--line); border-right:1px solid var(--line); vertical-align:middle; }
.lsb-table tbody td:last-child{ border-right:none; }
.lsb-table tbody tr:nth-child(even){ background:var(--panel); }
.lsb-table tbody tr:hover{ background:var(--blue-wash); }
.lsb-table tbody td:first-child{ font-weight:700; color:var(--navy); }
.lsb-flag{ width:22px; height:22px; border-radius:4px; object-fit:cover; vertical-align:middle; margin-right:8px;
  border:1px solid var(--line-2); box-shadow:var(--sh-sm); display:inline-block; }
.lsb-tbl-btn{ display:inline-block; background:var(--red); color:#fff !important; font-family:var(--display); font-weight:700;
  text-transform:uppercase; letter-spacing:.02em; font-size:.72rem; padding:7px 15px; border-radius:var(--pill); white-space:nowrap; box-shadow:var(--sh-sm); }
.lsb-tbl-btn:hover{ background:var(--red-2); color:#fff !important; }
.lsb-table td a:not(.lsb-tbl-btn){ color:var(--blue); font-weight:600; }
.lsb-table tr.lsb-table-group td{ background:var(--navy-3); color:var(--gold); font-family:var(--narrow); font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; font-size:.76rem; }

.lsb-stategrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:11px; margin-top:6px; }
.lsb-statecard{ display:flex; align-items:center; gap:13px; background:var(--card); border:1px solid var(--line);
  border-radius:var(--r); box-shadow:var(--sh-sm); padding:13px 15px; transition:all .14s; color:inherit;
  border-left:4px solid var(--line-2); }
.lsb-statecard.cat-online{ border-left-color:var(--green); }
.lsb-statecard.cat-retail{ border-left-color:var(--blue); }
.lsb-statecard.cat-none{ border-left-color:var(--slate-2); }
.lsb-statecard:hover{ transform:translateY(-1px); box-shadow:var(--sh); border-color:var(--line-2); }
.lsb-statecard img{ width:44px; height:44px; border-radius:9px; object-fit:cover; flex:0 0 auto;
  border:1px solid var(--line-2); box-shadow:var(--sh-sm); background:#fff; }
.lsb-statecard-body{ flex:1; min-width:0; }
.lsb-statecard-top{ display:flex; align-items:center; gap:8px; }
.lsb-statecard-name{ font-family:var(--display); font-weight:800; color:var(--navy); font-size:1.02rem; line-height:1.1; }
.lsb-statecard-badge{ margin-left:auto; }
.lsb-statecard-meta{ display:flex; align-items:center; gap:6px; margin-top:5px; flex-wrap:wrap;
  font-family:var(--narrow); font-size:.77rem; color:var(--slate); }
.lsb-statecard-meta b{ color:var(--navy-2); font-weight:700; }
.lsb-statecard-meta span.dot{ width:3px; height:3px; border-radius:50%; background:var(--slate-2); display:inline-block; }
.lsb-statecard-sub{ margin-top:5px; font-size:.74rem; color:var(--slate-2); line-height:1.3; }
.lsb-statecard-sub.off{ color:var(--red-2); }
.lsb-statecard-arrow{ flex:0 0 auto; color:var(--slate-2); font-weight:800; font-size:1.1rem; }
.lsb-statecard:hover .lsb-statecard-arrow{ color:var(--red); }

/* states quick-fact box */
.lsb-statesummary{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:4px 0 20px; }
.lsb-ss-box{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-sm); padding:16px 18px; }
.lsb-ss-box .h{ display:flex; align-items:baseline; gap:9px; margin-bottom:8px; }
.lsb-ss-box .n{ font-family:var(--display); font-weight:900; font-size:1.7rem; line-height:1; }
.lsb-ss-box.online .n{ color:var(--green); } .lsb-ss-box.retail .n{ color:var(--blue-2); } .lsb-ss-box.none .n{ color:var(--red); }
.lsb-ss-box .t{ font-family:var(--display); font-weight:800; color:var(--navy); font-size:.92rem; text-transform:uppercase; letter-spacing:.02em; }
.lsb-ss-box .list{ font-size:.82rem; color:var(--slate); line-height:1.5; }

.lsb-steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:14px; }
.lsb-step{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-sm); padding:20px; position:relative; }
.lsb-step-n{ position:absolute; top:-12px; left:20px; width:34px; height:34px; border-radius:50%; background:var(--red); color:#fff;
  font-family:var(--display); font-weight:900; font-size:1.05rem; display:flex; align-items:center; justify-content:center; box-shadow:var(--sh-red); }
.lsb-step h4{ margin:14px 0 6px; font-size:1.05rem; text-transform:uppercase; letter-spacing:.01em; }
.lsb-step p{ margin:0; font-size:.92rem; color:var(--slate); line-height:1.55; }

.lsb-authority{ background:linear-gradient(120deg,var(--navy),var(--navy-3)); color:#fff; border-radius:var(--r-xl); box-shadow:var(--sh-lg); padding:34px 36px; }
.lsb-authority h3{ color:#fff; font-size:1.6rem; margin-bottom:8px; }
.lsb-authority p{ color:#c8d6ec; max-width:none; margin:0 0 22px; font-size:1.04rem; line-height:1.65; }
.lsb-auth-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
.lsb-auth-item{ background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.16); border-radius:var(--r); padding:18px; text-align:center; }
.lsb-auth-item .n{ font-family:var(--display); font-weight:900; font-size:1.9rem; color:var(--gold); line-height:1; }
.lsb-auth-item .l{ font-size:.86rem; color:#c8d6ec; margin-top:7px; }
.lsb-auth-logos{ display:flex; align-items:center; gap:20px; flex-wrap:wrap; margin-top:22px; padding-top:20px; border-top:1px solid rgba(255,255,255,.16); }
.lsb-auth-logos span{ font-family:var(--narrow); font-weight:700; letter-spacing:.08em; text-transform:uppercase; font-size:.78rem; color:#9fb4d4; }

.lsb-news{ display:flex; flex-direction:column; gap:14px; }
.lsb-newscard{ display:grid; grid-template-columns:200px 1fr; background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--sh); overflow:hidden; transition:transform .14s, box-shadow .14s; }
.lsb-newscard:hover{ transform:translateY(-2px); box-shadow:var(--sh-lg); }
.lsb-newscard-img{ background:linear-gradient(135deg,var(--navy),var(--blue-2)); display:flex; align-items:center;
  justify-content:center; color:#fff; font-family:var(--display); font-weight:900; font-size:1.1rem; letter-spacing:.05em; min-height:130px; }
.lsb-newscard-body{ padding:18px 22px; }
.lsb-newscard-date{ font-family:var(--narrow); font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:.72rem; color:var(--slate); }
.lsb-newscard-body h4{ margin:6px 0 7px; font-size:1.12rem; }
.lsb-newscard-body p{ margin:0 0 10px; font-size:.93rem; color:var(--slate); line-height:1.55; }
.lsb-newscard-link{ font-family:var(--narrow); font-weight:700; text-transform:uppercase; letter-spacing:.04em; font-size:.76rem; color:var(--red) !important; }
.lsb-newscard-link::after{ content:" \2192"; }

.lsb-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:18px 0; }
.lsb-stat-tile{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh); padding:22px; }
.lsb-stat-tile .k{ font-size:.84rem; color:var(--slate); font-weight:600; }
.lsb-stat-tile .n{ font-family:var(--display); font-weight:900; font-size:2.6rem; color:var(--navy); line-height:1; margin:8px 0 14px; }
.lsb-stat-tile .n span{ color:var(--red); }
.lsb-timeline{ list-style:none; margin:18px 0 0; padding:0 0 0 6px; position:relative; }
.lsb-timeline::before{ content:""; position:absolute; left:9px; top:8px; bottom:8px; width:2px; background:var(--line-2); }
.lsb-timeline li{ position:relative; padding:0 0 20px 32px; }
.lsb-timeline li::before{ content:""; position:absolute; left:3px; top:3px; width:14px; height:14px; border-radius:50%;
  background:#fff; border:3px solid var(--red); box-shadow:var(--sh-sm); }
.lsb-timeline .yr{ font-family:var(--display); font-weight:900; color:var(--navy); font-size:1.02rem; }
.lsb-timeline .bd{ font-size:.95rem; color:var(--ink-2); }

.lsb-faq-item{ background:var(--card); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-sm); margin-bottom:11px; overflow:hidden; }
.lsb-faq-q{ font-family:var(--display); font-weight:700; color:var(--navy); font-size:1.05rem; padding:17px 50px 17px 20px;
  position:relative; cursor:pointer; list-style:none; }
.lsb-faq-q::-webkit-details-marker{ display:none; }
.lsb-faq-q::after{ content:"+"; position:absolute; right:18px; top:50%; transform:translateY(-50%); width:28px; height:28px;
  border-radius:50%; background:var(--blue-wash); color:var(--blue-2); font-size:1.3rem; font-weight:400; display:flex; align-items:center; justify-content:center; }
details[open] .lsb-faq-q{ border-bottom:1px solid var(--line); }
details[open] .lsb-faq-q::after{ content:"\2212"; background:var(--red); color:#fff; }
.lsb-faq-a{ padding:16px 20px; font-family:var(--serif); color:var(--ink-2); font-size:.97rem; line-height:1.7; }
.lsb-faq-a p:last-child{ margin-bottom:0; }

.lsb-rg{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:8px 0 0; }
.lsb-rg-card{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-sm); padding:24px; text-align:center; }
.lsb-rg-ic{ width:54px; height:54px; border-radius:50%; margin:0 auto 12px; display:flex; align-items:center; justify-content:center; font-size:1.5rem; color:#fff; background:var(--blue); }
.lsb-rg-card:nth-child(1) .lsb-rg-ic{ background:var(--green); }
.lsb-rg-card:nth-child(3) .lsb-rg-ic{ background:var(--red); }
.lsb-rg-card h4{ font-size:1.1rem; margin-bottom:6px; text-transform:uppercase; }
.lsb-rg-card p{ margin:0; font-size:.93rem; color:var(--slate); line-height:1.55; }
.lsb-disclaimer{ margin-top:20px; padding:22px 26px; background:var(--navy); color:#c8d6ec; border-radius:var(--r-lg); font-size:.9rem; line-height:1.6; box-shadow:var(--sh); }
.lsb-disclaimer strong{ color:#fff; }

/* regulated vs offshore comparison */
.lsb-vs{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:6px; position:relative; }
.lsb-vs-col{ border-radius:var(--r-lg); box-shadow:var(--sh); overflow:hidden; border:1px solid var(--line); }
.lsb-vs-col.reg{ background:var(--card); }
.lsb-vs-col.off{ background:var(--card); }
.lsb-vs-head{ padding:16px 20px; color:#fff; display:flex; align-items:center; gap:10px; }
.lsb-vs-col.reg .lsb-vs-head{ background:linear-gradient(110deg,var(--green),#15945a); }
.lsb-vs-col.off .lsb-vs-head{ background:linear-gradient(110deg,var(--red-2),var(--red)); }
.lsb-vs-head .t{ font-family:var(--display); font-weight:900; font-size:1.15rem; text-transform:uppercase; letter-spacing:.01em; }
.lsb-vs-head .ic{ width:30px; height:30px; border-radius:50%; background:rgba(255,255,255,.22); display:flex;
  align-items:center; justify-content:center; font-weight:900; }
.lsb-vs-list{ list-style:none; margin:0; padding:8px 0; }
.lsb-vs-list li{ display:flex; align-items:flex-start; gap:11px; padding:12px 20px; border-bottom:1px solid var(--line);
  font-size:.93rem; color:var(--ink-2); line-height:1.45; }
.lsb-vs-list li:last-child{ border-bottom:none; }
.lsb-vs-list li::before{ flex:0 0 auto; width:20px; height:20px; border-radius:50%; display:flex; align-items:center;
  justify-content:center; font-size:.74rem; font-weight:900; color:#fff; margin-top:1px; }
.lsb-vs-col.reg .lsb-vs-list li::before{ content:"\2713"; background:var(--green); }
.lsb-vs-col.off .lsb-vs-list li::before{ content:"\2713"; background:var(--blue); }
.lsb-vs-col.off.win .lsb-vs-head{ background:linear-gradient(110deg,var(--blue-2),var(--blue)); }
.lsb-vs-list li b{ color:var(--navy); }

/* CTA explore boxes */
.lsb-explore{ margin:18px 0; }
.lsb-ctagrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:11px; margin-top:4px; }
.lsb-ctabox{ display:flex; flex-direction:column; align-items:flex-start; gap:7px; background:var(--card);
  border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-sm); padding:15px 16px; color:inherit; transition:all .14s; }
.lsb-ctabox:hover{ transform:translateY(-2px); box-shadow:var(--sh); border-color:var(--blue); }
.lsb-ctabox .ic{ width:38px; height:38px; border-radius:9px; display:flex; align-items:center; justify-content:center;
  font-family:var(--display); font-weight:900; font-size:.92rem; color:#fff; letter-spacing:-.02em; }
.lsb-ctabox.c-navy .ic{ background:var(--navy); } .lsb-ctabox.c-red .ic{ background:var(--red); }
.lsb-ctabox.c-blue .ic{ background:var(--blue); } .lsb-ctabox.c-green .ic{ background:var(--green); }
.lsb-ctabox.c-gold .ic{ background:var(--gold); } .lsb-ctabox.c-slate .ic{ background:var(--slate); }
.lsb-ctabox .nm{ font-family:var(--display); font-weight:800; color:var(--navy); font-size:.98rem; line-height:1.15; }
.lsb-ctabox .ds{ font-size:.8rem; color:var(--slate); line-height:1.35; }
.lsb-ctabox .go{ margin-top:auto; font-family:var(--narrow); font-weight:700; text-transform:uppercase;
  letter-spacing:.05em; font-size:.72rem; color:var(--blue-2); }
.lsb-ctabox:hover .go{ color:var(--red); } .lsb-ctabox .go::after{ content:" \2192"; }

/* operator-count list */
.lsb-oplist{ display:grid; grid-template-columns:repeat(2,1fr); gap:8px 22px; margin:6px 0 0; padding:0; list-style:none; }
.lsb-oplist li{ display:flex; align-items:center; gap:11px; padding:9px 2px; border-bottom:1px solid var(--line); }
.lsb-oplist li .rank{ font-family:var(--display); font-weight:900; color:var(--slate-2); font-size:.86rem; width:22px; }
.lsb-oplist li .nm{ font-family:var(--display); font-weight:800; color:var(--navy); font-size:.98rem; }
.lsb-oplist li .ct{ margin-left:auto; font-family:var(--narrow); font-weight:700; font-size:.82rem; color:var(--blue-2);
  background:var(--blue-wash); border:1px solid var(--line-2); border-radius:var(--pill); padding:3px 11px; }
.lsb-oplist li .ct.off{ color:var(--red-2); background:var(--red-wash); }

/* revenue-by-year chart */
.lsb-chart{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh); padding:24px 26px; margin-top:6px; }
.lsb-chart-legend{ display:flex; gap:18px; margin-bottom:18px; font-family:var(--narrow); font-weight:700; font-size:.82rem; }
.lsb-chart-legend span{ display:inline-flex; align-items:center; gap:7px; color:var(--slate); }
.lsb-chart-legend i{ width:14px; height:14px; border-radius:3px; display:inline-block; }
.lsb-chart-legend i.h{ background:var(--navy); } .lsb-chart-legend i.r{ background:var(--red); }
.lsb-bars{ display:flex; align-items:flex-end; gap:14px; height:280px; padding-top:10px; }
.lsb-barcol{ flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; gap:7px; }
.lsb-barpair{ display:flex; align-items:flex-end; gap:5px; width:100%; justify-content:center; height:100%; }
.lsb-bar{ width:34px; border-radius:6px 6px 0 0; position:relative; display:flex; justify-content:center; }
.lsb-bar.h{ background:linear-gradient(180deg,var(--blue),var(--navy)); }
.lsb-bar.r{ background:linear-gradient(180deg,#ef5b53,var(--red)); }
.lsb-bar .v{ position:absolute; top:-19px; font-family:var(--display); font-weight:800; font-size:.7rem; color:var(--navy); white-space:nowrap; }
.lsb-bar.r .v{ color:var(--red-2); }
.lsb-barcol .yr{ font-family:var(--display); font-weight:800; color:var(--slate); font-size:.86rem; }
.lsb-chart-note{ margin-top:14px; font-size:.8rem; color:var(--slate); }

/* utility classes (replace inline styles for clean import) */
.lsb-subhead{ font-family:var(--display); color:var(--navy); font-size:1.2rem; margin:24px 0 14px; }
.lsb-subhead.lg{ font-size:1.3rem; }
.lsb-subhead.tight{ margin:24px 0 6px; }
.lsb-subhead.tbl{ margin:26px 0 12px; }
.lsb-timeline-h{ margin:22px 0 0; color:var(--navy); font-family:var(--display); }
.lsb-cta.full{ width:100%; justify-content:center; }
.lsb-mt-sm{ margin-top:14px; } .lsb-mt-md{ margin-top:16px; } .lsb-mt-lg{ margin-top:18px; } .lsb-mt-xl{ margin-top:20px; }
.lsb-prose.mt-lg{ margin-top:18px; }
.lsb-prose.mt-xl{ margin-top:20px; }
.lsb-note-sm{ margin-top:-2px; font-size:.82rem; }
.lsb-sub.mb-sm{ margin-bottom:14px; }
.lsb-cta-row.center{ justify-content:center; margin-top:18px; }
.lsb-cta.sm{ font-size:.78rem; padding:9px 16px; }

/* ===== HERO OPERATOR CARDS (casino.us-style, light theme) ===== */
.lsb-herocards{ display:grid; grid-template-columns:repeat(4,1fr); gap:15px; margin:18px 0; }
.lsb-hcard{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-xl);
  box-shadow:var(--sh-lg); padding:22px 20px 20px; position:relative; display:flex; flex-direction:column;
  align-items:center; text-align:center; transition:transform .15s ease, box-shadow .15s ease; }
.lsb-hcard:hover{ transform:translateY(-4px); box-shadow:0 8px 16px rgba(10,42,94,.1),0 30px 60px -20px rgba(10,42,94,.4); }
.lsb-hcard-rank{ position:absolute; top:14px; left:14px; width:30px; height:30px; border-radius:9px;
  display:flex; align-items:center; justify-content:center; font-family:var(--display); font-weight:900;
  font-size:.82rem; color:#fff; }
.lsb-hcard.reg .lsb-hcard-rank{ background:var(--navy); }
.lsb-hcard.off .lsb-hcard-rank{ background:var(--red); }
.lsb-hcard-tag{ position:absolute; top:14px; right:14px; font-family:var(--narrow); font-weight:700;
  letter-spacing:.06em; text-transform:uppercase; font-size:.62rem; padding:4px 9px; border-radius:var(--pill); }
.lsb-hcard.reg .lsb-hcard-tag{ background:var(--green-wash); color:var(--green); border:1px solid rgba(26,127,70,.3); }
.lsb-hcard.off .lsb-hcard-tag{ background:var(--red-wash); color:var(--red-2); border:1px solid rgba(226,35,26,.28); }
.lsb-hcard-logo{ width:78px; height:78px; border-radius:50%; background:#fff; display:flex; align-items:center;
  justify-content:center; margin:8px 0 14px; font-family:var(--display); font-weight:900; font-size:1.5rem;
  color:var(--navy); position:relative; }
.lsb-hcard.reg .lsb-hcard-logo{ box-shadow:0 0 0 4px var(--card),0 0 22px 2px rgba(26,109,212,.5),0 6px 18px rgba(10,42,94,.25); }
.lsb-hcard.off .lsb-hcard-logo{ box-shadow:0 0 0 4px var(--card),0 0 22px 2px rgba(226,35,26,.45),0 6px 18px rgba(10,42,94,.25); }
.lsb-hcard-logo.logo-img{ background:transparent; width:auto; height:auto; max-height:50px; padding:0; border:0; border-radius:0; margin:34px 0 14px; display:block; }
.lsb-hcard-logo.logo-img img{ display:block; max-width:100%; max-height:50px; width:auto; object-fit:contain; }
/* Image logos render as just the logo — no box, no ring, same height as the
   text-badge logos — so all four hero cards line up the same regardless of
   legal/offshore. (Overrides the round glow-ring badge box-shadow.) */
.lsb-hcard.reg .lsb-hcard-logo.logo-img,
.lsb-hcard.off .lsb-hcard-logo.logo-img{ box-shadow:none; border:0; background:transparent; }
.lsb-hcard-name{ font-family:var(--display); font-weight:800; color:var(--navy); font-size:1.08rem; }
.lsb-hcard-offer{ font-family:var(--display); font-weight:900; color:var(--navy); font-size:1.18rem; line-height:1.18;
  margin:12px 0 6px; letter-spacing:-.01em; }
.lsb-hcard-offer em{ font-style:normal; color:var(--red); }
.lsb-hcard-sub{ font-family:var(--narrow); font-weight:700; letter-spacing:.04em; text-transform:uppercase;
  font-size:.68rem; color:var(--slate); margin-bottom:16px; }
.lsb-hcard-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:8px; width:100%; margin-bottom:15px; }
.lsb-hcard-stat{ background:var(--panel); border:1px solid var(--line); border-radius:var(--r-sm); padding:9px 6px; }
.lsb-hcard-stat .k{ font-size:.62rem; color:var(--slate); text-transform:uppercase; letter-spacing:.04em; font-family:var(--narrow); font-weight:700; }
.lsb-hcard-stat .v{ font-family:var(--display); font-weight:800; color:var(--navy); font-size:.86rem; margin-top:3px; line-height:1.18; }
.lsb-hcard-applied{ width:100%; display:flex; align-items:center; justify-content:center; gap:8px;
  border:2px dashed var(--blue); border-radius:var(--pill); padding:9px; margin-bottom:11px;
  font-weight:700; font-size:.8rem; color:var(--navy); }
.lsb-hcard-applied .ck{ width:18px; height:18px; border-radius:50%; background:var(--blue); color:#fff;
  display:flex; align-items:center; justify-content:center; font-size:.68rem; flex:0 0 auto; }
.lsb-hcard.off .lsb-hcard-applied{ border-color:var(--slate-2); color:var(--slate); }
.lsb-hcard.off .lsb-hcard-applied .ck{ background:var(--slate); }
.lsb-hcard-cta{ width:100%; display:block; text-align:center; background:var(--red); color:#fff !important;
  font-family:var(--display); font-weight:800; text-transform:uppercase; letter-spacing:.03em; font-size:.92rem;
  padding:13px; border-radius:var(--pill); box-shadow:var(--sh-red); transition:background .14s; }
.lsb-hcard-cta:hover{ background:var(--red-2); color:#fff !important; }
.lsb-hcard.reg .lsb-hcard-cta{ background:var(--navy); box-shadow:0 8px 22px -8px rgba(10,42,94,.5); }
.lsb-hcard.reg .lsb-hcard-cta:hover{ background:var(--navy-3); }
/* The converter turns these CTAs into core/button blocks, so the styled class
   (.lsb-hcard-cta / .lsb-cta) ends up on the OUTER wrapper and the real <a>
   inside carries WordPress's default .wp-element-button styling — a grey pill.
   Make that inner link transparent and inherit the wrapper's colour so only
   our red/navy shows. Scoped to our two CTA wrappers; nothing else is touched. */
.lsb-page .lsb-hcard-cta > .wp-block-button__link,
.lsb-page .lsb-cta > .wp-block-button__link,
.lsb-page .lsb-hcard-cta.wp-block-button .wp-block-button__link,
.lsb-page .lsb-cta.wp-block-button .wp-block-button__link{
  background:transparent !important; background-color:transparent !important;
  color:inherit !important; box-shadow:none !important; border:0 !important;
  padding:0 !important; margin:0 !important; border-radius:inherit !important;
  font:inherit !important; letter-spacing:inherit !important; text-transform:inherit !important;
  width:100%; display:block; text-decoration:none !important; }
.lsb-hcard-tc{ margin-top:11px; font-family:var(--narrow); font-weight:700; font-size:.74rem; letter-spacing:.03em;
  color:var(--slate-2) !important; text-decoration:underline; }
.lsb-hcard-tc:hover{ color:var(--red) !important; }
.lsb-herocards-label{ display:flex; align-items:center; gap:11px; margin:18px 0 2px; }
.lsb-herocards-label h2{ font-size:1.35rem; font-family:var(--display); font-weight:800; color:var(--navy); }
.lsb-herocards-label::before{ content:""; width:6px; height:26px; border-radius:var(--pill); }
.lsb-herocards-label.reg::before{ background:var(--green); }
.lsb-herocards-label.off::before{ background:var(--red); }
.lsb-herocards-label .sub{ margin-left:auto; font-family:var(--narrow); font-weight:700; letter-spacing:.08em;
  text-transform:uppercase; font-size:.7rem; color:var(--slate); }

@media (max-width:1000px){ .lsb-herocards{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .lsb-herocards{ grid-template-columns:1fr; } }

/* section quick-fact strip (under headings) */
.lsb-qfstrip{ display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin:0 0 22px; }
.lsb-qfstrip.three{ grid-template-columns:repeat(3,1fr); }
.lsb-qfstrip.five{ grid-template-columns:repeat(5,1fr); }
.lsb-qfs{ background:var(--card); border:1px solid var(--line); border-top:3px solid var(--blue);
  border-radius:var(--r); box-shadow:var(--sh-sm); padding:15px 16px; }
.lsb-qfs.reg{ border-top-color:var(--green); } .lsb-qfs.off{ border-top-color:var(--red); }
.lsb-qfs .n{ font-family:var(--display); font-weight:900; font-size:1.7rem; color:var(--navy); line-height:1; }
.lsb-qfs.reg .n{ color:var(--green); } .lsb-qfs.off .n{ color:var(--red); }
.lsb-qfs .l{ font-size:.8rem; color:var(--slate); line-height:1.35; margin-top:6px; }

/* ENHANCED at-a-glance: big stat tiles + highlight rows */
.lsb-glance{ display:grid; grid-template-columns:repeat(4,1fr); gap:13px; margin-bottom:18px; }
.lsb-glance-tile{ border-radius:var(--r-lg); box-shadow:var(--sh); padding:20px 18px; color:#fff; position:relative; overflow:hidden; }
.lsb-glance-tile::after{ content:""; position:absolute; right:-18px; bottom:-18px; width:80px; height:80px;
  border-radius:50%; background:rgba(255,255,255,.1); }
.lsb-glance-tile.navy{ background:linear-gradient(135deg,var(--navy),var(--navy-3)); }
.lsb-glance-tile.blue{ background:linear-gradient(135deg,var(--blue),var(--blue-2)); }
.lsb-glance-tile.green{ background:linear-gradient(135deg,#1a9152,var(--green)); }
.lsb-glance-tile.red{ background:linear-gradient(135deg,var(--red),var(--red-2)); }
.lsb-glance-tile .n{ font-family:var(--display); font-weight:900; font-size:2.4rem; line-height:1; }
.lsb-glance-tile .l{ font-size:.84rem; opacity:.92; margin-top:8px; line-height:1.35; position:relative; z-index:1; }
.lsb-glance-rows{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh); overflow:hidden; }
.lsb-glance-row{ display:flex; align-items:center; gap:14px; padding:14px 20px; border-bottom:1px solid var(--line); }
.lsb-glance-row:last-child{ border-bottom:none; }
.lsb-glance-row:nth-child(even){ background:var(--panel); }
.lsb-glance-row .k{ color:var(--slate); font-size:.95rem; }
.lsb-glance-row .v{ margin-left:auto; font-family:var(--display); font-weight:800; color:var(--navy); font-size:1.02rem; text-align:right; }
.lsb-glance-row .ic{ flex:0 0 auto; width:30px; height:30px; border-radius:8px; background:var(--blue-wash);
  display:flex; align-items:center; justify-content:center; color:var(--blue-2); font-family:var(--display); font-weight:900; font-size:.8rem; }

/* offshore header banner with stats + visual */
.lsb-offhead{ display:grid; grid-template-columns:1.3fr 1fr; gap:16px; margin-bottom:20px; align-items:stretch; }
.lsb-offhead-stats{ display:grid; grid-template-columns:1fr 1fr; gap:11px; }
.lsb-offhead-visual{ background:linear-gradient(135deg,var(--navy),var(--blue-2)); border-radius:var(--r-lg);
  box-shadow:var(--sh); padding:26px 24px; color:#fff; display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.lsb-offhead-visual::before{ content:"\26A0"; position:absolute; right:-10px; top:-10px; font-size:7rem; opacity:.1; }
.lsb-offhead-visual .big{ font-family:var(--display); font-weight:900; font-size:1.5rem; line-height:1.1; margin-bottom:8px; }
.lsb-offhead-visual p{ margin:0; color:#cfe0f5; font-size:.92rem; line-height:1.5; }

/* MAJOR BOOKS redesigned: ranked bar list */
.lsb-bookbars{ display:flex; flex-direction:column; gap:9px; margin:6px 0 0; }
.lsb-bookbar{ display:flex; align-items:center; gap:14px; }
.lsb-bookbar .rk{ flex:0 0 auto; width:26px; height:26px; border-radius:50%; background:var(--navy); color:#fff;
  font-family:var(--display); font-weight:800; font-size:.8rem; display:flex; align-items:center; justify-content:center; }
.lsb-bookbar:nth-child(1) .rk{ background:var(--gold); } .lsb-bookbar:nth-child(2) .rk{ background:#9aa7b8; } .lsb-bookbar:nth-child(3) .rk{ background:#c08a3e; }
.lsb-bookbar .nm{ flex:0 0 130px; font-family:var(--display); font-weight:800; color:var(--navy); font-size:.96rem; }
.lsb-bookbar .track{ flex:1; display:block; height:22px; background:var(--panel); border:1px solid var(--line); border-radius:var(--pill); overflow:hidden; }
.lsb-bookbar .fill{ display:block; height:100%; border-radius:var(--pill); background:linear-gradient(90deg,var(--blue),var(--navy)); }
.lsb-bookbar .ct{ flex:0 0 70px; text-align:right; font-family:var(--display); font-weight:800; color:var(--blue-2); font-size:.92rem; }

@media (max-width:1000px){
  .lsb-opgrid{ grid-template-columns:repeat(2,1fr); }
  .lsb-qf{ grid-template-columns:repeat(2,1fr); }
  .lsb-steps,.lsb-stats,.lsb-rg,.lsb-auth-grid{ grid-template-columns:1fr 1fr; }
  .lsb-review-cols{ grid-template-columns:1fr; } .lsb-review-main{ border-right:none; border-bottom:1px solid var(--line); }
  .lsb-hero h1{ font-size:2.5rem; }
  .lsb-stategrid{ grid-template-columns:repeat(2,1fr); }
  .lsb-statesummary{ grid-template-columns:1fr; }
  .lsb-vs{ grid-template-columns:1fr; }
  .lsb-ctagrid{ grid-template-columns:repeat(2,1fr); }
  .lsb-qfstrip,.lsb-qfstrip.three,.lsb-qfstrip.five{ grid-template-columns:repeat(2,1fr); }
  .lsb-glance{ grid-template-columns:repeat(2,1fr); }
  .lsb-offhead{ grid-template-columns:1fr; }
}
@media (max-width:640px){
  .lsb-page{ font-size:15.5px; }
  .lsb-wrap{ padding:0 13px; } .lsb-panel{ padding:18px 15px; border-radius:var(--r-lg); }
  .lsb-hero-body{ padding:28px 20px 22px; } .lsb-hero h1{ font-size:1.95rem; }
  .lsb-qf{ grid-template-columns:1fr 1fr; padding:0 20px 24px; gap:9px; }
  .lsb-qf-chip{ padding:12px; flex-direction:column; text-align:center; gap:8px; }
  .lsb-opgrid,.lsb-srgrid,.lsb-steps,.lsb-stats,.lsb-rg,.lsb-auth-grid,.lsb-pc{ grid-template-columns:1fr; }
  .lsb-newscard{ grid-template-columns:1fr; } .lsb-newscard-img{ min-height:120px; }
  .lsb-sh{ flex-wrap:wrap; } .lsb-sh h2{ font-size:1.4rem; } .lsb-sh .lsb-kick{ margin-left:0; }
  .lsb-trust{ flex-direction:column; align-items:flex-start; gap:11px; }
  .lsb-trust-k{ border-right:none; padding-right:0; }
  .lsb-callout{ grid-template-columns:1fr; }
  .lsb-stategrid{ grid-template-columns:1fr; }
  .lsb-cta{ width:100%; justify-content:center; }
  .lsb-crosslink{ flex-direction:column; align-items:flex-start; }
  .lsb-oplist{ grid-template-columns:1fr; }
  .lsb-ctagrid{ grid-template-columns:1fr 1fr; }
  .lsb-bars{ gap:7px; height:220px; } .lsb-bar{ width:20px; } .lsb-bar .v{ font-size:.56rem; top:-15px; }
  .lsb-barpair{ gap:3px; }
  .lsb-qfstrip,.lsb-qfstrip.three,.lsb-qfstrip.five,.lsb-glance{ grid-template-columns:1fr 1fr; }
  .lsb-offhead-stats{ grid-template-columns:1fr 1fr; }
  .lsb-bookbar .nm{ flex:0 0 92px; font-size:.84rem; } .lsb-bookbar .ct{ flex:0 0 52px; font-size:.82rem; }
  .lsb-table > table{ font-size:.84rem; } .lsb-table thead th,.lsb-table tbody td{ padding:9px 10px; }
  /* On phones, force tables to fit the screen: table-layout:fixed makes the
     columns share the container width equally no matter how long the cell text
     is, and word wrapping lets long values break instead of forcing the page to
     scroll sideways. Both betting-site tables now behave the same. */
  .lsb-page figure.lsb-table > table{ table-layout:fixed !important; min-width:0 !important; width:100% !important; }
  .lsb-page figure.lsb-table table th,
  .lsb-page figure.lsb-table table td{ overflow-wrap:anywhere; word-break:break-word; }
}

/* ============================================================
   STATE PAGE COMPONENTS (California and the 49 to follow)
   All scoped under .lsb-page; reuses the homepage design tokens.
   ============================================================ */

/* Slate variant for the glance tiles used on state pages. */
.lsb-page .lsb-glance-tile.slate{ background:linear-gradient(135deg,var(--slate),#46505e); }

/* Legal-status verdict banner: the big clear yes/no at the top. */
.lsb-page .lsb-verdict{ display:flex; align-items:center; gap:18px; background:var(--card); border:1px solid var(--line);
  border-radius:var(--r-xl); box-shadow:var(--sh); padding:20px 24px; margin:0 0 6px; border-left:6px solid var(--red); }
.lsb-page .lsb-verdict.yes{ border-left-color:var(--green); }
/* When the verdict sits inside the hero card (under the fact boxes), it should
   read as part of that card, not a second floating box: drop the border,
   radius, shadow and side accent; match the hero's horizontal padding; and use
   a tinted strip with a top divider to separate it from the chips above. */
.lsb-page .lsb-hero .lsb-verdict{ margin:0; border:0; border-radius:0; box-shadow:none; border-left:0;
  border-top:1px solid var(--line); background:var(--red-wash); padding:22px 38px; }
.lsb-page .lsb-hero .lsb-verdict.yes{ background:var(--green-wash); }
.lsb-page .lsb-verdict-badge{ flex:0 0 auto; width:62px; height:62px; border-radius:50%; display:flex; align-items:center;
  justify-content:center; background:var(--red-wash); }
.lsb-page .lsb-verdict.yes .lsb-verdict-badge{ background:var(--green-wash); }
.lsb-page .lsb-verdict-x{ font-size:2rem; line-height:1; color:var(--red); font-weight:900; }
.lsb-page .lsb-verdict.yes .lsb-verdict-x{ color:var(--green); }
.lsb-page .lsb-verdict-k{ font-family:var(--narrow); font-weight:700; text-transform:uppercase; letter-spacing:.06em;
  font-size:.74rem; color:var(--slate); }
.lsb-page .lsb-verdict-a{ font-family:var(--display); font-weight:900; color:var(--red); font-size:1.5rem; line-height:1.15;
  margin:2px 0 4px; letter-spacing:-.01em; }
.lsb-page .lsb-verdict.yes .lsb-verdict-a{ color:var(--green); }
.lsb-page .lsb-verdict-sub{ color:var(--slate); font-size:.95rem; line-height:1.5; }
.lsb-page .lsb-verdict-sub strong{ color:var(--navy); }

/* Proposition vote cards (Prop 26 / Prop 27) with a "NO" result bar. */
.lsb-page .lsb-propgrid{ display:grid; grid-template-columns:1fr 1fr; gap:16px; margin:8px 0 6px; }
.lsb-page .lsb-prop{ background:var(--card); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh);
  padding:18px 20px; }
.lsb-page .lsb-prop-head{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:8px; }
.lsb-page .lsb-prop-num{ font-family:var(--display); font-weight:900; color:var(--navy); font-size:1.15rem; }
.lsb-page .lsb-prop-tag{ font-family:var(--narrow); font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  font-size:.66rem; color:var(--slate); background:var(--panel); border:1px solid var(--line); border-radius:var(--pill);
  padding:3px 10px; }
.lsb-page .lsb-prop-title{ font-family:var(--display); font-weight:700; color:var(--navy); font-size:.98rem; margin-bottom:12px; }
.lsb-page .lsb-prop-bar{ height:34px; background:var(--panel); border-radius:8px; overflow:hidden; border:1px solid var(--line); }
.lsb-page .lsb-prop-fill{ height:100%; background:linear-gradient(135deg,var(--red),var(--red-2)); display:flex; align-items:center;
  justify-content:flex-end; }
.lsb-page .lsb-prop-fill span{ color:#fff; font-family:var(--display); font-weight:800; font-size:.82rem; padding:0 12px;
  letter-spacing:.02em; }
.lsb-page .lsb-prop-result{ font-family:var(--narrow); font-weight:700; color:var(--red); font-size:.82rem;
  text-transform:uppercase; letter-spacing:.03em; margin:9px 0 12px; }
.lsb-page .lsb-prop-list{ margin:0; padding:0; list-style:none; }
.lsb-page .lsb-prop-list li{ position:relative; padding:0 0 7px 18px; font-size:.88rem; color:var(--slate); line-height:1.45; }
.lsb-page .lsb-prop-list li::before{ content:""; position:absolute; left:0; top:8px; width:7px; height:7px; border-radius:50%;
  background:var(--red); }

/* Footer-style related state/topic links. */
.lsb-page .lsb-statelinks{ display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 4px; }
.lsb-page .lsb-statelinks a{ display:inline-flex; align-items:center; font-family:var(--narrow); font-weight:700;
  font-size:.82rem; color:var(--navy); background:var(--panel); border:1px solid var(--line-2); border-radius:var(--pill);
  padding:8px 15px; text-decoration:none; transition:background .14s, color .14s; }
.lsb-page .lsb-statelinks a:hover{ background:var(--navy); color:#fff; border-color:var(--navy); }

@media (max-width:640px){
  .lsb-page .lsb-propgrid{ grid-template-columns:1fr; }
  .lsb-page .lsb-verdict{ flex-direction:column; align-items:flex-start; gap:12px; }
  .lsb-page .lsb-verdict-a{ font-size:1.3rem; }
}

/* Small italic note under a table (e.g. offshore disclaimer). */
.lsb-page .lsb-tnote{ font-size:.84rem; color:var(--slate); font-style:italic; margin:10px 0 0; line-height:1.5; }

/* ============================================================
   US LEGALITY MAP  (states-with-legal-sports-betting hub)
   No JavaScript. Category color comes from class on each <a>.
   Survives the block parser as one core/html (svg) block.
   ============================================================ */
.lsb-page .lsb-mapwrap{ margin:6px 0 8px; }
.lsb-page .lsb-mapcard{
  background:#fff; border:1px solid var(--line-2); border-radius:var(--rad);
  box-shadow:var(--sh-card); padding:18px 18px 14px; }
.lsb-page .lsb-map-head{ display:flex; flex-wrap:wrap; align-items:baseline;
  gap:6px 12px; margin:0 2px 12px; }
.lsb-page .lsb-map-head h3{ margin:0; font-size:1.18rem; color:var(--navy); }
.lsb-page .lsb-map-head .lsb-map-note{ color:var(--slate); font-size:.92rem; font-weight:600; }

/* Legend */
.lsb-page .lsb-legend{ display:flex; flex-wrap:wrap; gap:8px 14px; margin:0 2px 14px; }
.lsb-page .lsb-legend-item{ display:inline-flex; align-items:center; gap:7px;
  font-size:.9rem; font-weight:700; color:var(--navy); }
.lsb-page .lsb-legend-sw{ width:15px; height:15px; border-radius:4px; flex:0 0 auto;
  border:1px solid rgba(0,0,0,.12); }
.lsb-page .lsb-sw-fo{ background:var(--green); }
.lsb-page .lsb-sw-os{ background:var(--navy-3); }
.lsb-page .lsb-sw-ro{ background:var(--slate); }
.lsb-page .lsb-sw-pe{ background:#c9a24a; }
.lsb-page .lsb-sw-nl{ background:var(--red); }

/* The SVG map */
.lsb-page .lsb-usmap-svg{ width:100%; height:auto; display:block;
  max-width:920px; margin:0 auto; }
.lsb-page .lsb-usmap-svg .lsb-st path{
  stroke:#fff; stroke-width:1.1; stroke-linejoin:round;
  transition:fill .12s ease, opacity .12s ease; cursor:pointer; }
.lsb-page .lsb-usmap-svg .lsb-st.fo path{ fill:var(--green); }
.lsb-page .lsb-usmap-svg .lsb-st.os path{ fill:var(--navy-3); }
.lsb-page .lsb-usmap-svg .lsb-st.ro path{ fill:var(--slate); }
.lsb-page .lsb-usmap-svg .lsb-st.pe path{ fill:#c9a24a; }
.lsb-page .lsb-usmap-svg .lsb-st.nl path{ fill:var(--red); }
.lsb-page .lsb-usmap-svg .lsb-st:hover path{ fill:var(--navy); }
.lsb-page .lsb-usmap-svg .lsb-st:focus path{ outline:none; fill:var(--navy); }

/* Tile grid: bulletproof, every jurisdiction reachable (esp. mobile) */
.lsb-page .lsb-statetiles{ display:grid;
  grid-template-columns:repeat(auto-fill,minmax(132px,1fr)); gap:8px; margin-top:16px; }
.lsb-page .lsb-stile{ display:flex; align-items:center; gap:9px;
  padding:9px 11px; border-radius:12px; text-decoration:none;
  border:1px solid var(--line-2); background:#fff; transition:transform .1s, box-shadow .1s; }
.lsb-page .lsb-stile:hover{ transform:translateY(-1px); box-shadow:var(--sh-card); }
.lsb-page .lsb-stile .lsb-stile-dot{ width:11px; height:11px; border-radius:3px; flex:0 0 auto; }
.lsb-page .lsb-stile .lsb-stile-nm{ font-weight:700; color:var(--navy); font-size:.93rem; line-height:1.15; }
.lsb-page .lsb-stile .lsb-stile-st{ display:block; font-weight:600; color:var(--slate);
  font-size:.76rem; margin-top:1px; }
.lsb-page .lsb-stile.fo .lsb-stile-dot{ background:var(--green); }
.lsb-page .lsb-stile.os .lsb-stile-dot{ background:var(--navy-3); }
.lsb-page .lsb-stile.ro .lsb-stile-dot{ background:var(--slate); }
.lsb-page .lsb-stile.pe .lsb-stile-dot{ background:#c9a24a; }
.lsb-page .lsb-stile.nl .lsb-stile-dot{ background:var(--red); }

/* Count chips row under the map */
.lsb-page .lsb-mapstats{ display:flex; flex-wrap:wrap; gap:8px; margin:14px 2px 2px; }
.lsb-page .lsb-mapstat{ background:var(--paper,#f6f8fb); border:1px solid var(--line-2);
  border-radius:10px; padding:7px 12px; font-size:.86rem; font-weight:700; color:var(--navy); }
.lsb-page .lsb-mapstat b{ font-size:1.02rem; }

@media (max-width:600px){
  .lsb-page .lsb-statetiles{ grid-template-columns:repeat(auto-fill,minmax(108px,1fr)); }
  .lsb-page .lsb-mapcard{ padding:14px 12px 12px; }
}

/* ============================================================
   STATE PROFILE CARDS  (legal-state profiles on hub page)
   Styled heading row + compact fact strip above each blurb.
   ============================================================ */
.lsb-page .lsb-stateblock{ border:1px solid var(--line-2); border-radius:var(--rad);
  background:#fff; box-shadow:var(--sh-card); padding:16px 18px; margin:14px 0; }
.lsb-page .lsb-stateblock-head{ display:flex; align-items:center; flex-wrap:wrap;
  gap:8px 12px; margin-bottom:4px; }
.lsb-page .lsb-stateblock-head h4{ margin:0; font-size:1.18rem; color:var(--navy);
  border:none; padding:0; }
.lsb-page .lsb-stateblock-head h4 a{ color:var(--navy); text-decoration:underline;
  text-decoration-thickness:2px; text-underline-offset:3px; text-decoration-color:var(--navy-3); }
.lsb-page .lsb-stateblock-head h4 a:hover{ color:var(--red); text-decoration-color:var(--red); }
.lsb-page .lsb-state-tag{ font-family:var(--narrow,inherit); font-weight:800; font-size:.72rem;
  letter-spacing:.04em; text-transform:uppercase; padding:4px 10px; border-radius:var(--pill);
  color:#fff; }
.lsb-page .lsb-state-tag.fo{ background:var(--green); }
.lsb-page .lsb-state-tag.os{ background:var(--navy-3); }
.lsb-page .lsb-state-tag.ro{ background:var(--slate); }
.lsb-page .lsb-state-tag.pe{ background:#c9a24a; }

.lsb-page .lsb-state-headline{ color:var(--slate); font-weight:600; font-size:.9rem;
  margin:0 0 12px; }

.lsb-page .lsb-statefacts{ display:grid; grid-template-columns:repeat(5,1fr); gap:8px;
  margin:0 0 13px; }
.lsb-page .lsb-statefact{ background:var(--paper,#f6f8fb); border:1px solid var(--line-2);
  border-radius:10px; padding:8px 9px; text-align:center; }
.lsb-page .lsb-statefact .sf-k{ display:block; font-size:.67rem; font-weight:700;
  letter-spacing:.05em; text-transform:uppercase; color:var(--slate); margin-bottom:3px; }
.lsb-page .lsb-statefact .sf-v{ display:block; font-weight:800; color:var(--navy); font-size:.9rem;
  line-height:1.15; }
.lsb-page .lsb-statefact .sf-v.yes{ color:var(--green); }
.lsb-page .lsb-statefact .sf-v.no{ color:var(--slate); }
.lsb-page .lsb-statefact .sf-v.part{ color:var(--navy-3); }
.lsb-page .lsb-stateblock p{ margin:0; color:var(--ink,#1f2733); line-height:1.62; }

@media (max-width:680px){
  .lsb-page .lsb-statefacts{ grid-template-columns:repeat(3,1fr); }
}
@media (max-width:420px){
  .lsb-page .lsb-statefacts{ grid-template-columns:repeat(2,1fr); }
}

/* ---- Inline headline beside the state heading + tag ---- */
.lsb-page .lsb-stateblock-head{ row-gap:2px; }
.lsb-page .lsb-state-headline-inline{ flex:1 1 100%; color:var(--slate);
  font-weight:600; font-size:.9rem; margin-top:2px; }
@media (min-width:760px){
  /* On wider screens, let the headline sit on the same line, pushed right */
  .lsb-page .lsb-stateblock-head{ flex-wrap:nowrap; }
  .lsb-page .lsb-stateblock-head h4{ flex:0 0 auto; }
  .lsb-page .lsb-state-tag{ flex:0 0 auto; }
  .lsb-page .lsb-state-headline-inline{ flex:1 1 auto; text-align:right; margin-top:0;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
}
.lsb-page .lsb-state-tag.nl{ background:var(--red); }

/* ---- Not-legal fact strip: 4 cells instead of 5 ---- */
.lsb-page .lsb-statefacts.nl-facts{ grid-template-columns:repeat(4,1fr); }
@media (max-width:680px){
  .lsb-page .lsb-statefacts.nl-facts{ grid-template-columns:repeat(2,1fr); }
}
.lsb-page .nl-block .lsb-qf-list{ margin-top:12px; }

/* ---- Not-legal labeled list: normal flowing rows, not split flex ---- */
.lsb-page .lsb-deflist{ list-style:none; margin:14px 0 0; padding:0; }
.lsb-page .lsb-deflist li{ position:relative; padding:10px 0 10px 20px;
  border-bottom:1px solid var(--line); color:var(--ink,#1f2733); line-height:1.6;
  font-size:.96rem; display:block; }
.lsb-page .lsb-deflist li:last-child{ border-bottom:none; }
.lsb-page .lsb-deflist li::before{ content:""; position:absolute; left:2px; top:17px;
  width:8px; height:8px; border-radius:2px; background:var(--red); }
.lsb-page .lsb-deflist li strong{ color:var(--navy); font-weight:800; }
