/* BestDOC Lab-at-Home v2 — clean transactional design system
   Lifted from docs/reference-images/lab-at-home-v2/lab-v2.css
   + production responsive rules + cart/modal scaffolding.
   Brand bridge: top nav + footer come from shared-chrome (Fraunces wordmark + teal accent + voice). */

:root{
  /* Surfaces */
  --lh-bg:#FAFAFA;
  --lh-white:#FFFFFF;
  --lh-line:#E6E6E6;

  /* Type */
  --lh-ink:#1A2A2F;
  --lh-sand:#6B6B6B;

  /* Brand */
  --lh-teal:#0F5E6E;
  --lh-teal-soft:#E8F0F1;
  --lh-orange:#C26500;
  --lh-orange-soft:#FFF4ED;

  /* Hint */
  --lh-hint-bg:#FFFBEB;
  --lh-hint-border:#FDE68A;

  /* Strikethrough / discount */
  --lh-strike:#9CA3AF;

  /* WhatsApp */
  --lh-wa:#25D366;
  --lh-paper:#F6F1E8;
  --lh-hairline:#D6CBB6;

  /* Radius */
  --lh-r-sm:6px;
  --lh-r-md:10px;
  --lh-r-lg:14px;
  --lh-r-pill:999px;
}

/* Page root — light page bg, Inter only inside the catalog
   (top nav + footer keep their site-wide typography via shared-chrome). */
.lh{
  background:var(--lh-bg);
  color:var(--lh-ink);
  font-family:Inter,system-ui,-apple-system,sans-serif;
  font-size:14px;
  line-height:1.4;
}
.lh main{display:block}
.lh *{box-sizing:border-box}

/* ===== Sticky search bar ===== */
/* 1px overlap under the header hides sub-pixel seams while --lh-hdr-h
   settles (webfont load can nudge the header's height). */
.lh-stickyhead{
  position:sticky; top:calc(var(--lh-hdr-h, 64px) - 1px); z-index:50;
  background:var(--lh-white);
  border-bottom:1px solid var(--lh-line);
  padding:10px 14px;
}
/* Home view: the bar toggles with scroll. As a fixed overlay it never occupies
   flow, so appearing/disappearing can't shift the page (the old display:none
   toggle jolted the layout by the bar's height mid-scroll). */
.lh-stickyhead--overlay{
  position:fixed; left:0; right:0; top:calc(var(--lh-hdr-h, 64px) - 1px);
  transform:translateY(0); opacity:1;
  transition:transform .22s ease, opacity .16s ease;
  will-change:transform;
}
.lh-stickyhead--overlay.lh-stickyhead--hidden{
  display:block;
  transform:translateY(-110%); opacity:0;
  pointer-events:none;
}
.lh-search{
  background:var(--lh-bg);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-lg);
  padding:11px 14px;
  display:flex; align-items:center; gap:8px;
  font-size:14px; color:var(--lh-sand);
  cursor:text;
  max-width:720px; margin:0 auto;
}
.lh-search:focus-within{
  border-color:var(--lh-teal);
  color:var(--lh-ink);
  background:var(--lh-white);
}
.lh-search .ic{font-size:16px; flex:none}
.lh-search input{
  flex:1; border:0; outline:none; background:transparent;
  font:14px Inter; color:var(--lh-ink); padding:0;
  min-width:0;
}
/* iOS Safari auto-zooms focused inputs under 16px — keep 16px on touch
   viewports so tapping search never zooms the page. */
@media (max-width:900px){
  .lh-search input{font-size:16px !important}
}
.lh-search input[type="search"]::-webkit-search-decoration,
.lh-search input[type="search"]::-webkit-search-cancel-button{
  -webkit-appearance:none;
  appearance:none;
  display:none;
}
.lh-search input::placeholder{color:var(--lh-sand)}
.lh-search .clear{
  background:transparent; border:0; cursor:pointer;
  font-size:18px; color:var(--lh-sand); padding:0 4px;
}

/* ===== Pill nav ===== */
.lh-pills{
  position:sticky; top:128px; z-index:48;
  background:var(--lh-white);
  border-bottom:1px solid var(--lh-line);
  padding:12px 14px;
  display:flex; gap:6px;
  overflow-x:auto;
  scrollbar-width:none;
  -webkit-mask-image:linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 14px), transparent 100%);
          mask-image:linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 14px), transparent 100%);
}
.lh-pills::-webkit-scrollbar{display:none}
.lh-pill{
  flex:none;
  display:inline-flex; align-items:center; gap:7px;
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-pill);
  padding:5px 14px 5px 5px;
  font:500 13px/1 Inter;
  color:var(--lh-ink);
  white-space:nowrap;
  cursor:pointer;
  font-family:inherit;
  transition:background .15s ease, color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
.lh-pill.no-img{padding:8px 14px}
.lh-pill .lh-pill-img{
  width:28px; height:28px;
  border-radius:50%;
  background:var(--lh-teal-soft);
  object-fit:cover;
  padding:0;
  flex:none;
}
.lh-pill:hover{
  border-color:var(--lh-ink);
  color:var(--lh-ink);
}
.lh-pill.on{
  background:var(--lh-teal);
  color:var(--lh-white);
  border-color:var(--lh-teal);
  font-weight:600;
  box-shadow:0 6px 14px -6px rgba(15,94,110,.5);
}
.lh-pill.on .lh-pill-img{background:rgba(255,255,255,.18)}
.lh-pill.on:hover{background:var(--lh-teal); color:var(--lh-white)}

/* ===== Hero v3 — Healthians-style banner + overlaid search ===== */
.lh-hero2{
  background:var(--lh-white);
  border-bottom:1px solid var(--lh-line);
  padding:12px 14px 16px;
}
.lh-hb-wrap{
  position:relative;
  max-width:1180px; margin:0 auto;
  display:flex; flex-direction:column; gap:12px;
}
/* Mobile: search sits above the banner (Healthians mobile order). */
.lh-hero2-search{order:-1}
.lh-hero2-search .lh-search{
  border:1.5px solid var(--lh-teal);
  border-radius:var(--lh-r-pill);
  background:var(--lh-white);
  padding:13px 18px;
  max-width:none;
}
/* Trust row — three icon claims under the search, no background plate.
   Mobile: search sits on the page background, so ink-on-paper colours.
   Desktop: the whole search block is overlaid on the teal banner, so the
   row flips to light text + white icon tiles (see the >=1024px block). */
/* Desktop-only: on mobile the search sits on the page background and the
   stacked claims just push the banner down, so the row is hidden there. */
.lh-trust3{
  display:none;
  margin:10px 0 2px; padding:0;
  list-style:none;
  grid-template-columns:1fr; gap:8px;
}
.lh-trust3 li{
  display:flex; align-items:center; gap:10px;
  font:500 12.5px/1.3 Inter; color:var(--lh-sand);
}
/* Icons are inline SVG: .main / .accent are the two colour groups, so the
   whole set recolours from these two vars — no image re-export needed. */
.lh-trust3{--lh-icon-main:var(--lh-teal); --lh-icon-accent:var(--lh-orange)}
.lh-trust3 li .ic{
  width:28px; height:28px; flex:0 0 28px;
  display:block; line-height:0;
}
.lh-trust3 li .ic svg{width:100%; height:100%; display:block}
.lh-trust3 li .ic .main{fill:var(--lh-icon-main)}
.lh-trust3 li .ic .accent{fill:var(--lh-icon-accent)}
.lh-trust3 li b{font-weight:700; color:var(--lh-ink)}
/* Hard break is a desktop-only line-balance device; mobile wraps naturally. */
.lh-trust3 li br{display:none}

/* Banner carousel */
.lh-hb-viewport{overflow:hidden; border-radius:var(--lh-r-lg)}
.lh-hb-track{display:flex; transition:transform .45s ease}
.lh-hb-slide{
  flex:0 0 100%;
  min-height:216px;
  background:var(--lh-teal) center right / cover no-repeat;
  color:#fff;
  position:relative;
  display:flex; align-items:center;
  padding:20px 18px;
}
.lh-hb-slide::before{
  content:""; position:absolute; inset:0; pointer-events:none; z-index:1;
  /* Two scrims, not one. The left-to-right wash carries the headline; the
     bottom-up wash exists because the search field and the three trust
     claims are overlaid across the foot of this slide, and the specimen
     photography is pale there — white text on a beige sample container is
     unreadable, which the flat-teal version never had to answer for. */
  background:
    linear-gradient(0deg, rgba(15,94,110,.86) 0%, rgba(15,94,110,.55) 16%, rgba(15,94,110,0) 34%),
    linear-gradient(100deg, rgba(15,94,110,.94) 0%, rgba(15,94,110,.82) 38%, rgba(15,94,110,.35) 62%, rgba(15,94,110,0) 80%);
}
/* The photograph, when there is one. An <img> rather than a background so a
   missing file raises an error the slide can act on — as a background it
   fails silently and leaves bare teal, which is exactly how the banner sat
   broken without anyone being told. */
.lh-hb-art{
  /* Full bleed, not a right-hand panel. At 70% the photograph began with a
     hard vertical seam against flat teal; across the whole slide the scrim
     above it does the blending it was written for, and the copy side reads as
     tinted photography rather than an empty block of colour. */
  position:absolute; inset:0; z-index:0;
  width:100%; height:100%;
  object-fit:cover;
  /* Centred. The banner photography is composed for this frame — subject in
     the right third, quiet left, dark foot — so the middle of the plate is
     what should survive the crop. The old offset existed to push the
     catalogue panels' printed titles out of shot; those are now only the last
     fallback, and an off-centre crop costs more on purpose-made art than the
     stray title costs on a fallback nobody should reach. */
  object-position:center;
}
.lh-hb-badge{
  display:inline-flex; align-items:center; justify-content:center; gap:4px;
  margin-left:8px; padding:5px 8px; border-radius:var(--lh-r-pill);
  background:var(--lh-orange); color:#fff; text-align:center;
  box-shadow:0 5px 14px rgba(15,58,61,.24);
  vertical-align:middle;
}
.lh-hb-badge-off{display:flex; align-items:baseline; font:700 12px/1 Inter}
.lh-hb-badge-off b{font-size:12px; font-weight:800}
.lh-hb-badge-off i{font-style:normal; font-size:10px; margin-left:1px}
.lh-hb-badge-lbl{font:800 9px/1 Inter; letter-spacing:.1em; text-transform:uppercase; opacity:.92}
.lh-hb-badge-save{
  font:700 10px/1 Inter; white-space:nowrap;
  padding-left:4px; border-left:1px solid rgba(255,255,255,.38);
}
/* The savings seal — what fills the frame when there is no photograph.
   Concentric rings drawn with a spread shadow rather than extra elements, so
   the whole mark is one box and costs no layout. */
.lh-hb-seal{
  /* Only a sliver of bleed on mobile. Any more and the mark's centre — where
     the saving is set — falls off the edge with it, which reads as clipped
     rather than cropped. */
  position:absolute; z-index:0; top:50%; inset-inline-end:-8px;
  transform:translateY(-50%);
  width:156px; height:156px; border-radius:50%;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  text-align:center; color:var(--lh-paper); pointer-events:none;
  background:radial-gradient(circle at 50% 45%, rgba(246,241,232,.16) 0%, rgba(246,241,232,.04) 58%, rgba(246,241,232,0) 74%);
  border:1px solid rgba(246,241,232,.34);
  box-shadow:0 0 0 7px rgba(246,241,232,.07), inset 0 0 0 1px rgba(246,241,232,.16);
}
.lh-hb-seal-off{display:flex; align-items:baseline; font-family:Fraunces,Georgia,serif; line-height:.88}
.lh-hb-seal-off b{font-size:46px; font-weight:700; letter-spacing:-.02em}
.lh-hb-seal-off i{font-style:normal; font-size:19px; margin-left:2px; opacity:.9}
.lh-hb-seal-lbl{margin-top:3px; font:700 10px/1 Inter; letter-spacing:.24em; text-transform:uppercase; opacity:.9}
.lh-hb-seal-rule{width:28px; height:2px; border-radius:2px; background:var(--lh-orange); margin:8px 0 6px}
.lh-hb-seal-save{font:600 11px/1 Inter; color:#fff; white-space:nowrap}
.lh-hb-copy{position:relative; z-index:2; display:flex; flex-direction:column; gap:6px; max-width:64%}
.lh-hb-kicker{font:700 11px/1 Inter; letter-spacing:.05em; text-transform:uppercase; color:var(--lh-paper); opacity:.9}
.lh-hb-name{margin:0; font-family:Fraunces,Georgia,serif; font-size:24px; line-height:1.12; color:#fff}
.lh-hb-meta{margin:0; font-size:12.5px; color:var(--lh-teal-soft)}
.lh-hb-price{margin:2px 0 4px; font-size:19px; display:flex; align-items:center; flex-wrap:wrap; gap:4px}
.lh-hb-price b{font-weight:800}
.lh-hb-price s{color:var(--lh-teal-soft); font-size:13px; margin-left:8px}
.lh-hb-cta{
  align-self:flex-start; background:var(--lh-orange); color:#fff; text-decoration:none;
  font-weight:700; font-size:13px; border-radius:var(--lh-r-md); padding:10px 18px;
}
.lh-hb-dots{display:flex; justify-content:center; gap:7px; margin-top:10px}
.lh-hb-dots button{
  width:22px; height:5px; border-radius:3px; border:0;
  background:var(--lh-teal-soft); cursor:pointer; padding:0;
  transition:background .2s ease;
}
.lh-hb-dots button.on{background:var(--lh-teal)}
.lh-hero2-actions{max-width:1180px; margin:12px auto 0; display:grid; gap:8px}

/* H1 + chip row above the packages rail (Healthians pattern) */
.lh-chips-head{max-width:1180px; margin:0 auto; padding:30px 14px 4px}
.lh-chips-h1{
  margin:0 0 14px;
  font:700 24px/1.2 Inter;
  color:var(--lh-teal);
  letter-spacing:-0.01em;
  text-align:center;
}
.lh-chips{display:flex; flex-wrap:wrap; gap:6px}
.lh-chip{
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-pill);
  padding:6px 13px;
  font:400 12px/1.3 Inter;
  color:var(--lh-sand);
  cursor:pointer;
  font-family:inherit;
  box-shadow:0 4px 4px rgba(0,0,0,.02);
  transition:border-color .15s ease, color .15s ease, background .15s ease;
}
.lh-chip:hover{border-color:var(--lh-teal); color:var(--lh-teal)}
.lh-chip.on{
  border-color:var(--lh-teal);
  color:var(--lh-teal);
  background:#F2FBFC;
  font-weight:600;
}
.lh-rx{
  background:var(--lh-teal); color:#fff;
  border-radius:var(--lh-r-lg);
  padding:14px 16px;
  display:flex; align-items:center; gap:12px;
  margin-bottom:12px;
  text-decoration:none;
  border:0;
  width:100%;
  cursor:pointer;
  text-align:left;
  font-family:inherit;
}
.lh-rx .ic{
  width:38px; height:38px;
  background:rgba(255,255,255,.15);
  border-radius:var(--lh-r-md);
  display:grid; place-items:center;
  font-size:18px; font-weight:600;
  flex:none;
}
.lh-rx .tx{flex:1; color:#fff}
.lh-rx .tx b{display:block; font:600 15px Inter}
.lh-rx .tx span{font-size:12px; opacity:.85}
.lh-rx .ar{font-size:18px; color:#fff}
.lh-rx-hidden{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none}

.lh-duo{display:grid; grid-template-columns:1fr 1fr; gap:8px}
.lh-duo a{
  background:var(--lh-bg);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-md);
  padding:11px;
  text-align:center;
  font:500 13px Inter; color:var(--lh-ink);
  text-decoration:none;
  display:flex; align-items:center; justify-content:center; gap:6px;
}
.lh-duo a .em{font-size:15px}


/* Review stats panel (desktop only — mobile hides it) */
.lh-rev-stats{display:none}

/* Mobile defaults for card bits (desktop overrides below) */
.lh-card-compare{display:none}
.lh-card-cta{display:block}
.lh-card-cta .add{
  background:var(--lh-white); color:var(--lh-ink);
  border:1.5px solid var(--lh-ink);
  border-radius:var(--lh-r-sm);
  padding:8px;
  font:600 12px Inter;
  width:100%; margin-top:auto;
  cursor:pointer;
  font-family:inherit;
}

/* Rail desktop-only — mobile keeps grid */
.lh-rail-wrap{position:relative}
.lh-rail-stage{position:relative}
.lh-rail-btn,
.lh-rail-counter{display:none}
.lh-rail-footer{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  padding:8px 14px 0;
  max-width:1180px;
  margin:0 auto;
}
.lh-rail-status{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:14px;
  margin-left:auto;
  flex:none;
}
.lh-rail-pagebadge{
  min-width:43px;
  height:26px;
  padding:0 10px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-pill);
  background:var(--lh-white);
  color:var(--lh-sand);
  font:500 12px/1 Inter;
  font-variant-numeric:tabular-nums;
}
.lh-rail-seeall{
  display:inline-flex;
  align-items:center;
  white-space:nowrap;
  font:600 13px/1 Inter;
  color:var(--lh-teal);
  text-decoration:none;
}

/* ===== Section labels ===== */
.lh-lbl{
  padding:18px 14px 10px;
  display:flex; align-items:baseline; justify-content:space-between;
  gap:8px;
  max-width:1180px; margin:0 auto;
}
.lh-lbl h2{font:600 17px/1.2 Inter; margin:0; color:var(--lh-ink)}
.lh-lbl a{font:600 13px Inter; color:var(--lh-teal); text-decoration:none}
.lh-lbl small{font-size:12px; color:var(--lh-sand); font-weight:400}
.lh-rail-head{
  align-items:center;
  gap:14px;
}

/* ===== Grid containers ===== */
.lh-grid2{
  display:grid; grid-template-columns:1fr 1fr; gap:10px;
  padding:0 14px;
}

/* ===== Panel card ===== */
.lh-card{
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-lg);
  padding:12px;
  display:flex; flex-direction:column; gap:8px;
  text-align:left;
  cursor:pointer;
  font-family:inherit;
}
.lh-card .nm{font:600 14px/1.25 Inter; color:var(--lh-ink)}
.lh-card .pr{display:flex; align-items:baseline; gap:6px}
.lh-card .pr b{font:700 16px/1 Inter; color:var(--lh-ink)}
.lh-card .pr s{font-size:12px; color:var(--lh-strike); text-decoration:line-through}
.lh-card .add{
  background:var(--lh-white); color:var(--lh-ink);
  border:1.5px solid var(--lh-ink);
  border-radius:var(--lh-r-sm);
  padding:8px;
  font:600 12px Inter;
  width:100%;
  cursor:pointer;
}
.lh-card.added .add{background:var(--lh-ink); color:var(--lh-white)}
.lh-card.added .add::before{content:"\2713  "}

/* ===== Single-test wider rows ===== */
.lh-rows{padding:0 0 4px}
.lh-strow{
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-md);
  padding:12px 14px;
  margin:0 14px 8px;
  display:flex; align-items:center; gap:12px;
}
.lh-strow .tx{flex:1; min-width:0}
.lh-strow .tx b{display:block; font:600 14px Inter; color:var(--lh-ink); margin-bottom:1px; overflow-wrap:anywhere}
.lh-strow .tx span{font-size:11px; color:var(--lh-sand)}
.lh-strow .tx .cov{display:block; font-size:11px; color:var(--lh-teal); margin-top:2px}
.lh-strow .pr{font:700 14px Inter; color:var(--lh-ink); margin-right:8px; white-space:nowrap}

/* ── Lab qty stepper — sized to match Add button per slot ─────────────── */
.lh-stepper{
  display:inline-flex; align-items:center; justify-content:space-between;
  background:var(--lh-ink); color:#fff;
  border:1.5px solid var(--lh-ink);
  border-radius:var(--lh-r-sm);
  font-feature-settings:"tnum" 1;
  padding:0;
  box-sizing:border-box;
  font-family:inherit;
}
.lh-stepper button{
  flex:0 0 auto;
  background:transparent; border:0;
  color:inherit;
  font:600 16px/1 Inter,system-ui,sans-serif;
  cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  padding:0 12px;
  height:100%;
  align-self:stretch;
}
.lh-stepper button:hover{color:#fff; background:rgba(255,255,255,.1)}
.lh-stepper button:disabled{opacity:.45; cursor:not-allowed}
.lh-stepper button:disabled:hover{background:transparent}
.lh-stepper b{
  flex:1; min-width:24px; text-align:center;
  font:600 13px Inter; color:inherit;
  letter-spacing:.02em;
}

/* Slot-specific sizes (match each Add button) */
.lh-card-cta .lh-stepper{
  width:100%;
  height:auto; min-height:36px;
  padding:7px 0;
  margin-top:auto;
}
.lh-test-card-foot .lh-stepper{
  height:34px;
  padding:4px 0;
}
.lh-strow .lh-stepper{
  height:32px;
  padding:3px 0;
  flex:none;
}
.lh-strow .lh-stepper button{padding:0 10px; font-size:14px}
.lh-strow .lh-stepper b{min-width:18px; font-size:12px}
.lh-strow .add{
  background:var(--lh-white); color:var(--lh-ink);
  border:1.5px solid var(--lh-ink);
  border-radius:var(--lh-r-sm);
  padding:7px 14px;
  font:600 11px Inter;
  cursor:pointer;
  flex:none;
}
.lh-strow.added .add{background:var(--lh-ink); color:var(--lh-white)}
.lh-strow.added .add::before{content:"\2713  "}

/* ===== Browse mode (/lab-at-home/browse/) — full catalog ===== */
.lh-browse-main{padding-bottom:24px}
/* Compact one-row hero: circular back button + title, nothing else. */
.lh-browse-hero{
  max-width:1180px; margin:0 auto;
  padding:14px 14px 10px;
  display:flex; align-items:center; gap:12px;
}
.lh-browse-back{
  flex:none;
  display:grid; place-items:center;
  width:36px; height:36px;
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:50%;
  color:var(--lh-ink);
  font:400 17px/1 Inter;
  text-decoration:none;
}
.lh-browse-back:hover{border-color:var(--lh-ink)}
.lh-browse-hero h1{
  font:600 22px/1.15 Fraunces, serif;
  color:var(--lh-ink);
  margin:0;
  letter-spacing:-.01em;
}

/* On browse the inline filter is the sticky bar; the main search + pills
   scroll away with the page. */
.lh-is-browse .lh-stickyhead{position:static}
/* Browse pills are jump-links to the category rows — keep them pinned under
   the site header while the rows scroll. No edge-fade mask: it turns the
   bar's own background transparent, so cards scrolling beneath the sticky
   bar bleed through the faded strip. Chip look = landing rail tabs. */
.lh-is-browse .lh-pills{
  position:static;
  border-bottom:0;
  -webkit-mask-image:none;
          mask-image:none;
  padding:10px 14px 8px;
  gap:6px;
}
.lh-is-browse .lh-pill{
  padding:7px 14px;
  font:400 12.5px/1.3 Inter;
  color:var(--lh-sand);
}
.lh-is-browse .lh-pill:hover{color:var(--lh-teal); border-color:var(--lh-teal)}
.lh-is-browse .lh-pill.on{
  border-color:var(--lh-teal);
  color:var(--lh-teal);
  background:#F2FBFC;
  font-weight:600;
  box-shadow:none;
}
/* Jump target lands below header + sticky pills-and-filter block. */
.lh-browse-cat{scroll-margin-top:calc(var(--lh-hdr-h, 64px) + 122px)}
.lh-rail-sub{
  font:400 12px Inter; color:var(--lh-sand);
  flex:1; min-width:0;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
/* Mobile rows: one card per view, next card peeking to invite the swipe. */
@media (max-width:1023px){
  .lh-is-browse .lh-rail.lh-grid2 > article.lh-card{flex:0 0 86%; max-width:none}
}
/* Mode toggle: Health Packages / Individual Tests segmented control. */
.lh-browse-modes-wrap{max-width:1180px; margin:0 auto; padding:0 14px 10px}
.lh-browse-modes{
  display:inline-flex;
  border:1px solid var(--lh-line);
  border-radius:999px;
  background:var(--lh-white);
  padding:3px;
}
.lh-browse-modes button{
  border:0; background:transparent;
  padding:8px 16px;
  font:600 12.5px Inter; color:var(--lh-sand);
  border-radius:999px;
  cursor:pointer;
  white-space:nowrap;
}
.lh-browse-modes button.on{background:var(--lh-teal); color:#fff}

/* Pills + inline filter travel together as one pinned block. */
.lh-browse-sticky{
  position:sticky; top:calc(var(--lh-hdr-h, 64px) - 1px); z-index:48;
  background:var(--lh-white);
  border-bottom:1px solid var(--lh-line);
}
.lh-browse-searchwrap{
  background:var(--lh-white);
  padding:0 14px 10px;
}
.lh-browse-search{
  display:flex; align-items:center; gap:8px;
  max-width:732px; margin:0 auto;
  padding:10px 14px;
  background:var(--lh-bg);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-lg);
  font-size:14px; color:var(--lh-sand);
}
.lh-browse-search:focus-within{border-color:var(--lh-teal)}
.lh-browse-search .ic{font-size:16px; flex:none}
.lh-browse-search input{
  flex:1; border:0; outline:0; background:transparent;
  font:400 14px Inter; color:var(--lh-ink);
  min-width:0;
}
/* iOS Safari auto-zooms focused inputs under 16px — same guard as .lh-search. */
@media (max-width:900px){
  .lh-browse-search input{font-size:16px}
}
.lh-browse-search input::placeholder{color:var(--lh-sand)}
.lh-browse-search input[type="search"]::-webkit-search-decoration,
.lh-browse-search input[type="search"]::-webkit-search-cancel-button{display:none}
.lh-browse-search .clear{
  flex:none; border:0; background:transparent;
  font:400 18px/1 Inter; color:var(--lh-sand);
  cursor:pointer; padding:0 2px;
}

.lh-browse-empty{
  text-align:center;
  padding:32px 14px;
  font:400 14px Inter; color:var(--lh-sand);
}
.lh-browse-empty p{margin:0 0 14px}
.lh-browse-empty .lh-bubbles{justify-content:center; margin-bottom:16px}
.lh-empty-wrap{display:flex; flex-direction:column; gap:12px}
.lh-empty-wa{
  display:inline-block;
  align-self:center;
  margin-top:4px;
  font:600 13px Inter;
  color:var(--lh-teal);
  text-decoration:none;
}
.lh-empty-wa:hover{text-decoration:underline}

.lh-grid2.lh-browse-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
  padding:14px;
}

/* ===== Panel rail (horizontal swipe on mobile too) ===== */
.lh-rail.lh-grid2{
  display:flex;
  grid-template-columns:none;
  gap:12px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  /* Snap rest positions must account for the rail's own side padding or
     every swipe settles 14px off (cards sit flush against the edge). */
  scroll-padding-left:14px;
  scroll-behavior:smooth;
  padding:6px 14px 12px;
  scrollbar-width:none;
}
.lh-rail.lh-grid2::-webkit-scrollbar{display:none}
.lh-rail.lh-grid2 > article.lh-card{
  flex:0 0 70%;
  max-width:280px;
  scroll-snap-align:start;
}

/* ===== Single-test rail (horizontal swipe, 2 rows visible) ===== */
.lh-rail.lh-test-grid{
  display:grid;
  grid-template-rows:1fr 1fr;
  grid-auto-flow:column;
  grid-auto-columns:88%;
  gap:8px 10px;
  overflow-x:auto;
  scroll-snap-type:x mandatory;
  scroll-padding-left:14px;
  scroll-behavior:smooth;
  padding:6px 14px 12px;
  scrollbar-width:none;
}
.lh-rail.lh-test-grid::-webkit-scrollbar{display:none}
.lh-test-card{
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-md);
  padding:10px 12px;
  display:flex; align-items:center; gap:10px;
  scroll-snap-align:start;
  min-width:0;
}
.lh-test-card-body{flex:1; min-width:0}
.lh-test-card-name{
  font:600 14px/1.25 Inter; color:var(--lh-ink);
  margin:0 0 2px;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical;
  overflow:hidden;
}
.lh-test-card-cov{font:400 11px Inter; color:var(--lh-teal); margin:2px 0 0}
.lh-test-card-foot{
  display:flex; align-items:center; justify-content:flex-end;
  flex:none;
  /* Card top-right belongs to the absolute price — keep Add at bottom-right. */
  align-self:flex-end;
}
.lh-test-card{position:relative; align-items:flex-start; padding-right:12px}
.lh-test-card-price{font:700 14px Inter; color:var(--lh-ink); white-space:nowrap;
  position:absolute; top:10px; right:12px}
.lh-test-card-name{padding-right:64px}
.lh-test-card .lh-card-chips{margin:4px 0 0}
.lh-test-card-add{
  background:var(--lh-white); color:var(--lh-ink);
  border:1.5px solid var(--lh-ink);
  border-radius:var(--lh-r-sm);
  padding:6px 12px;
  font:600 11px Inter;
  cursor:pointer;
  flex:none;
}
.lh-test-card.added .lh-test-card-add{background:var(--lh-ink); color:var(--lh-white)}
.lh-test-card.added .lh-test-card-add::before{content:"\2713  "}

/* ===== Smart-bundle hint ===== */
.lh-hint{
  margin:14px;
  background:var(--lh-hint-bg);
  border:1px solid var(--lh-hint-border);
  border-radius:var(--lh-r-md);
  padding:14px;
  display:flex; align-items:center; gap:12px;
}
.lh-hint .em{font-size:24px; flex:none}
.lh-hint .tx{flex:1; min-width:0}
.lh-hint .tx b{display:block; font:600 13px Inter; color:var(--lh-ink); margin-bottom:2px}
.lh-hint .tx span{font-size:11px; color:var(--lh-sand)}
.lh-hint .swap{
  background:var(--lh-teal); color:#fff;
  border:0; border-radius:var(--lh-r-sm);
  padding:8px 14px;
  font:600 11px Inter;
  flex:none; cursor:pointer;
}

/* Body-parts / persona / concern-chip sections removed (owner 2026-07-25). */

/* ===== Editorial trust sections ===== */
.lh-editorial-head{
  max-width:1180px;
  margin:0 auto;
  padding:28px 14px 14px;
}
.lh-kicker{
  margin:0 0 8px;
  font:600 10.5px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--lh-teal);
}
.lh-editorial-head h2{
  max-width:16ch;
  margin:0;
  color:var(--lh-ink);
  font:350 clamp(24px, 6vw, 34px)/1.12 Fraunces, Iowan Old Style, Garamond, serif;
  letter-spacing:-.02em;
  text-wrap:balance;
}
/* One h2 voice across the landing: serif + italic teal highlight (FAQ style) */
.lh-editorial-head h2 em,
.lh-journey-head h2 em{
  font-style:italic;
  font-weight:350;
  color:var(--lh-teal);
}
.lh-editorial-head p:not(.lh-kicker){
  max-width:58ch;
  margin:10px 0 0;
  color:var(--lh-sand);
  font:400 14px/1.65 Inter, system-ui, sans-serif;
}
/* ===== Lab journey ===== */
/* Health Checkup Journey — Healthians-style step row (owner 2026-07-26) */
.lh-journey-head{text-align:center; margin:0 14px 6px}
.lh-journey-sup{
  margin:0 0 8px;
  font:600 10.5px/1.4 ui-monospace, SFMono-Regular, Menlo, monospace;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--lh-teal);
}
.lh-journey-head h2{
  margin:0;
  color:var(--lh-ink);
  font:350 clamp(24px, 6vw, 34px)/1.12 Fraunces, Iowan Old Style, Garamond, serif;
  letter-spacing:-.02em;
  text-wrap:balance;
}
.lh-journey-divider{
  display:inline-block; width:200px; height:2px; margin-top:12px;
  background:linear-gradient(90deg, transparent, #C9A96E 35%, #C9A96E 65%, transparent);
}
.lh-journey{
  margin-left:14px; margin-right:14px;
  padding:22px 14px 26px;
  background:linear-gradient(180deg, #F3FAFA 0%, #E8F3F4 100%);
  border:1px solid #DDECEE;
  border-radius:18px;
}
.lh-journey-steps{
  list-style:none;
  margin:20px 0 0;
  padding:0;
  counter-reset:none;
}
/* Mobile: zigzag rows — icon left, then icon right — joined by curved
   dashed connectors (Healthians journey pattern). */
.lh-journey-steps li{
  position:relative;
  display:flex; align-items:center; gap:16px;
  padding:0 4px;
}
.lh-journey-steps li.rev{flex-direction:row-reverse}
.lh-journey-steps li.rev .tx{text-align:right}
.lh-journey-steps li:not(:last-child){margin-bottom:40px}
.lh-journey-steps li:not(:last-child)::after{
  content:'';
  position:absolute;
  top:calc(100% + 6px);
  left:41px;
  width:2px; height:28px;
  background:repeating-linear-gradient(180deg, #8FBFC8 0 5px, transparent 5px 11px);
  pointer-events:none;
}
.lh-journey-steps li.rev:not(:last-child)::after{left:auto; right:41px}
.lh-journey-steps{counter-reset:jstep}
.lh-journey-steps li{counter-increment:jstep}
.lh-journey-steps .ic{
  flex:none;
  position:relative;
  width:76px; height:76px; border-radius:50%;
  background:#FFFFFF;
  border:1px solid #DDECEE;
  box-shadow:0 4px 12px rgba(15,94,110,.07);
  display:inline-flex; align-items:center; justify-content:center;
}
.lh-journey-steps .ic::after{
  content:counter(jstep);
  position:absolute; top:-3px; right:-3px;
  width:22px; height:22px; border-radius:50%;
  background:var(--lh-teal); color:#F4FAFA;
  font:700 11px/22px Inter, system-ui, sans-serif;
  text-align:center;
}
.lh-journey-steps .ic img{width:50px; height:50px; object-fit:contain; border-radius:50%}
.lh-journey-steps .tx{min-width:0}
.lh-journey-steps h3{
  margin:0 0 4px;
  color:var(--lh-ink);
  font:700 15px/1.3 Inter, system-ui, sans-serif;
}
.lh-journey-steps p{
  margin:0;
  color:var(--lh-sand);
  font:400 12.5px/1.5 Inter, system-ui, sans-serif;
}

.lh-trust .lh-rev-wrap{
  display:grid;
  gap:10px;
  padding:0 14px;
}
.lh-trust .lh-rev{margin:0}

/* ===== Reviews ===== */
.lh-rev{
  background:var(--lh-white);
  margin:0 14px;
  border-radius:var(--lh-r-md);
  padding:14px;
  border:1px solid var(--lh-line);
}
.lh-rev .top{display:flex; align-items:baseline; gap:8px; margin-bottom:8px}
.lh-rev .top b{font:700 22px/1 Inter; color:var(--lh-ink)}
.lh-rev .top .stars{color:#C9A96E; font-size:13px}
.lh-rev .top span{font-size:12px; color:var(--lh-sand); margin-left:auto}
.lh-rev-person{display:flex; flex-direction:column; align-items:flex-start; gap:3px; margin-bottom:8px}
.lh-rev-name-line{display:flex; align-items:baseline; gap:8px}
.lh-rev-name-line .name{font:600 12px/1.2 Inter; color:var(--lh-ink)}
.lh-rev-name-line .stars{color:#C9A96E; font-size:13px}
.lh-rev-person .location{font-size:11px; color:var(--lh-sand)}
.lh-rev q{font:13px/1.5 Inter; color:var(--lh-ink); display:block; margin-bottom:6px}
.lh-rev q::before, .lh-rev q::after{content:'"'}
.lh-rev .by{font-size:11px; color:var(--lh-sand)}

/* ===== Cities ===== */
.lh-cities{display:flex; flex-wrap:wrap; gap:6px; padding:0 14px}
.lh-cities a{
  flex:1; min-width:calc(50% - 3px);
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-md);
  padding:11px 12px;
  text-decoration:none;
  color:var(--lh-ink); font-size:13px;
}
.lh-cities a b{display:block; font:600 13px/1.2 Inter; color:var(--lh-teal); margin-bottom:2px}
.lh-cities a span{font-size:11px; color:var(--lh-sand)}

/* ===== FAQ ===== */
.lh-faq{padding:0 14px; max-width:760px; margin:0 auto}
.lh-faq details{
  border-bottom:1px solid var(--lh-line);
  padding:12px 0;
}
.lh-faq details summary{
  display:flex; align-items:center; justify-content:space-between;
  font:500 13px/1.3 Inter; color:var(--lh-ink);
  cursor:pointer; list-style:none;
}
.lh-faq details summary::after{
  content:"+"; color:var(--lh-sand); font-size:18px; font-weight:300;
}
.lh-faq details[open] summary::after{content:"\2212"}
.lh-faq details p{
  margin:8px 0 0; font-size:12px; color:var(--lh-sand); line-height:1.5;
}

/* ===== Cross-sell ===== */
.lh-xsell{display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:0 14px}
.lh-xsell a{
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-md);
  padding:14px 12px;
  font-size:12px; color:var(--lh-sand);
  text-decoration:none;
  display:block;
}
.lh-xsell a .em{font-size:24px; margin-bottom:6px; display:block}
.lh-xsell a b{display:block; font:600 13px/1.2 Inter; color:var(--lh-teal); margin-bottom:3px}

/* Shared service-detail sections reused on this page should sit on the lab
   surface, not the warmer service-page bands. */
.lh .bd-sd2-faq,
.lh #related.bd-sd2-sec,
.lh #related.bd-sd2-sec.alt{
  background:var(--lh-bg);
}

/* ===== Section spacing ===== */
.lh-section{position:relative; padding-bottom:6px}

/* ===== Collapsed cart sheet (sticky bottom) ===== */
.lh-cart-sheet{
  position:fixed; bottom:0; left:0; right:0;
  background:var(--lh-white);
  border-top:1px solid var(--lh-line);
  padding:12px 14px;
  display:flex; align-items:center; gap:10px;
  box-shadow:0 -6px 20px rgba(0,0,0,.06);
  z-index:90;
}
.lh-cart-sheet .info{flex:1; min-width:0}
.lh-cart-sheet .info b{display:block; font:600 13px Inter; color:var(--lh-ink)}
.lh-cart-sheet .info span{font-size:11px; color:var(--lh-sand); display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis}
.lh-cart-sheet .tot{font:700 15px Inter; color:var(--lh-ink); margin-right:4px}
.lh-cart-sheet .go{
  background:var(--lh-ink); color:#fff;
  border:0; border-radius:var(--lh-r-sm);
  padding:10px 16px;
  font:600 12px Inter;
  cursor:pointer;
}

/* ===== Expanded cart sheet (full) ===== */
.lh-modal-scrim{
  position:fixed; inset:0;
  background:rgba(26,42,47,.5);
  z-index:100;
}
.lh-cart-full{
  position:fixed; bottom:0; left:0; right:0;
  max-width:520px; margin:0 auto;
  max-height:85vh;
  background:var(--lh-white);
  border-radius:18px 18px 0 0;
  z-index:101;
  display:flex; flex-direction:column;
}
.lh-cart-full .head{
  padding:14px;
  border-bottom:1px solid var(--lh-line);
  display:flex; align-items:center; justify-content:space-between;
}
.lh-cart-full .head h3{font:600 17px Inter; margin:0; color:var(--lh-ink)}
.lh-cart-full .head .clear{
  background:transparent; border:0;
  font:500 12px Inter; color:var(--lh-sand); cursor:pointer;
}
.lh-cart-full .body{
  flex:1; overflow-y:auto;
  padding:0 14px;
}
.lh-citem{
  display:flex; align-items:center; gap:10px;
  padding:11px 0;
  border-bottom:1px solid var(--lh-line);
}
.lh-citem .nm{flex:1; font:500 13px Inter; color:var(--lh-ink)}
.lh-citem .nm .kind{
  font:600 9px Inter; letter-spacing:.06em; text-transform:uppercase;
  color:var(--lh-teal); margin-right:5px;
}
.lh-citem .nm.is-test .kind{color:var(--lh-sand)}
.lh-citem .nm .sub{display:block; font:500 11px Inter; color:var(--lh-sand); margin-top:2px}
.lh-citem .nm .sub.warn{color:var(--lh-orange)}
.lh-citem .pr{font:600 13px Inter}
.lh-citem .rm{
  background:transparent; border:0;
  color:var(--lh-sand); font-size:18px;
  cursor:pointer; padding:0 4px;
}
.lh-companion{
  background:var(--lh-bg);
  border-radius:var(--lh-r-md);
  padding:10px 12px;
  margin:10px 0;
  font-size:12px; color:var(--lh-sand);
}
.lh-companion .lbl{display:block; font:600 12px Inter; color:var(--lh-ink); margin-bottom:6px}
.lh-companion .clink{
  display:inline-block; margin:3px 5px 0 0;
  background:var(--lh-white); border:1px solid var(--lh-line);
  border-radius:var(--lh-r-pill); padding:5px 10px;
  font:500 11px Inter; color:var(--lh-ink); text-decoration:none;
  cursor:pointer;
}
.lh-companion .clink em{color:var(--lh-teal); font-style:normal; font-weight:600; margin-left:4px}
.lh-cart-full .totals{
  padding:12px 14px;
  border-top:1px solid var(--lh-line);
  font-size:13px;
}
.lh-cart-full .totals .row{display:flex; justify-content:space-between; margin-bottom:4px; color:var(--lh-sand)}
.lh-cart-full .totals .row.total{font:600 15px Inter; color:var(--lh-ink); margin-top:6px}
.lh-cart-full .totals .row.mingap{color:var(--lh-orange); font-size:12px}
.lh-cart-full .cta{
  padding:12px 14px 16px;
  border-top:1px solid var(--lh-line);
  display:flex; gap:8px;
}
.lh-cart-full .cta .wa-btn{
  flex:1; background:var(--lh-wa); color:#fff;
  border:0; border-radius:var(--lh-r-sm);
  padding:12px; font:600 13px Inter;
  display:flex; align-items:center; justify-content:center; gap:6px;
  text-decoration:none;
}
.lh-cart-full .cta .review{
  flex:1; background:var(--lh-ink); color:#fff;
  border:0; border-radius:var(--lh-r-sm);
  padding:12px; font:600 13px Inter;
  cursor:pointer;
}

/* ===== Package-detail modal ===== */
.lh-modal{
  position:fixed; bottom:0; left:0; right:0;
  max-width:560px; margin:0 auto;
  max-height:92vh;
  background:var(--lh-white);
  border-radius:18px 18px 0 0;
  z-index:101;
  display:flex; flex-direction:column;
  overflow:hidden;
}
.lh-modal .modhead{
  background:var(--lh-white);
  padding:14px;
  border-bottom:1px solid var(--lh-line);
  display:flex; align-items:center; gap:10px;
}
.lh-modal .modhead .close{
  width:32px; height:32px; border-radius:50%;
  background:var(--lh-bg);
  display:grid; place-items:center;
  font-size:18px; color:var(--lh-ink);
  border:0; cursor:pointer;
}
.lh-modal .modhead .ttl{
  flex:1;
  font:600 15px Inter; color:var(--lh-ink);
}
.lh-modal .modbody{padding:0 14px 14px; overflow-y:auto; flex:1}
.lh-modal .hero-img{
  aspect-ratio:1.5;
  background:var(--lh-teal-soft);
  border-radius:var(--lh-r-lg);
  display:grid; place-items:center;
  font-size:64px; color:var(--lh-teal);
  margin:14px 0;
  overflow:hidden;
}
.lh-modal .hero-img img{
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  display:block;
}
.lh-modal h3{font:600 20px/1.2 Inter; margin:0 0 4px; color:var(--lh-ink)}
.lh-modal .modmeta{display:flex; gap:14px; flex-wrap:wrap; font-size:12px; color:var(--lh-sand); margin-bottom:14px}
.lh-modal .modmeta span b{color:var(--lh-ink); font-weight:600; margin-right:3px}
.lh-modal .modsum{font-size:13px; color:var(--lh-sand); line-height:1.5; margin-bottom:18px}
.lh-modal .modpr{display:flex; align-items:baseline; gap:8px; margin-bottom:14px}
.lh-modal .modpr b{font:700 28px/1 Inter; color:var(--lh-ink)}
.lh-modal .modpr s{font-size:15px; color:var(--lh-strike); text-decoration:line-through}
.lh-modal .modpr .off{
  background:var(--lh-teal); color:#fff;
  padding:3px 8px; border-radius:var(--lh-r-sm);
  font:600 11px Inter;
}
.modknow{
  background:var(--lh-bg);
  border-radius:var(--lh-r-md);
  padding:12px;
  margin-bottom:14px;
}
.modknow h4{
  font:600 12px Inter;
  margin:0 0 8px;
  color:var(--lh-teal);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.modknow ul{margin:0; padding:0; list-style:none; display:grid; gap:8px}
.modknow li{display:flex; gap:10px; font-size:12px; line-height:1.5}
.modknow li b{flex:none; width:88px; color:var(--lh-ink); font-weight:600}
.modknow li span{color:var(--lh-sand)}
.lh-biomarker-group{
  background:var(--lh-bg);
  border-radius:var(--lh-r-md);
  padding:12px;
  margin-bottom:10px;
}
.lh-biomarker-group h4{
  font:600 12px Inter;
  margin:0 0 6px;
  color:var(--lh-teal);
  letter-spacing:.04em;
  text-transform:uppercase;
}
.lh-biomarker-group ul{
  margin:0; padding-left:18px;
  font-size:12px; color:var(--lh-ink);
  columns:2; column-gap:12px;
  line-height:1.6;
}
.lh-modal .modcta{
  background:var(--lh-white);
  padding:12px 14px;
  border-top:1px solid var(--lh-line);
  display:flex; gap:8px;
}
.lh-modal .modcta .secondary{
  flex:none;
  background:var(--lh-white);
  border:1.5px solid var(--lh-ink);
  border-radius:var(--lh-r-sm);
  padding:10px 14px;
  font:600 12px Inter;
  cursor:pointer;
}
.lh-modal .modcta .primary{
  flex:1;
  background:var(--lh-ink); color:#fff;
  border:0; border-radius:var(--lh-r-sm);
  padding:12px;
  font:600 13px Inter;
  cursor:pointer;
}

/* ===== Prescription upload result ===== */
.lh-rx-modal{
  position:fixed; bottom:0; left:0; right:0;
  max-width:620px; margin:0 auto;
  max-height:92vh;
  background:var(--lh-white);
  border-radius:18px 18px 0 0;
  z-index:101;
  display:flex; flex-direction:column;
  overflow:hidden;
  box-shadow:0 -12px 42px rgba(26,42,47,.18);
}
.lh-rx-head{
  flex:none;
  padding:14px;
  border-bottom:1px solid var(--lh-line);
  display:flex; align-items:center; gap:10px;
}
.lh-rx-head .close{
  width:32px; height:32px; border-radius:50%;
  border:0; background:var(--lh-bg);
  color:var(--lh-ink);
  font:500 18px/1 Inter;
  display:grid; place-items:center;
  cursor:pointer;
  flex:none;
}
.lh-rx-head h3{
  margin:0 0 2px;
  font:700 17px/1.2 Inter;
  color:var(--lh-ink);
}
.lh-rx-head p{
  margin:0;
  font:500 12px/1.25 Inter;
  color:var(--lh-sand);
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  max-width:38ch;
}
.lh-rx-body{
  flex:1;
  min-height:0;
  overflow-y:auto;
  padding:14px;
}
.lh-rx-preview{
  aspect-ratio:16 / 9;
  max-height:210px;
  background:var(--lh-bg);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-lg);
  overflow:hidden;
  margin-bottom:14px;
}
.lh-rx-preview img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#fff;
}
.lh-rx-preview.is-fallback{
  aspect-ratio:auto;
  max-height:none;
  padding:14px 16px;
  background:#fff;
}
.lh-rx-preview-fallback{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.lh-rx-preview-icon{
  font-size:22px;
  line-height:1;
}
.lh-rx-preview-name{
  font-weight:600;
  color:var(--lh-ink);
  word-break:break-all;
}
.lh-rx-preview-note{
  flex-basis:100%;
  color:var(--lh-ink-soft);
  font-size:12px;
}
.lh-rx-loading,
.lh-rx-error,
.lh-rx-empty{
  background:var(--lh-bg);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-lg);
  padding:18px;
  text-align:center;
  color:var(--lh-sand);
}
.lh-rx-loading b,
.lh-rx-error b{display:block; font:700 15px/1.25 Inter; color:var(--lh-ink); margin-bottom:5px}
.lh-rx-loading p,
.lh-rx-error p{margin:0; font:500 12px/1.45 Inter}
.lh-rx-error a{
  display:inline-flex;
  margin-top:12px;
  background:var(--lh-wa);
  color:#fff;
  border-radius:var(--lh-r-sm);
  padding:10px 14px;
  font:700 12px/1 Inter;
  text-decoration:none;
}
.lh-rx-spinner{
  width:34px;
  height:34px;
  border-radius:50%;
  border:3px solid #DCE7E9;
  border-top-color:var(--lh-teal);
  display:inline-block;
  margin-bottom:12px;
  animation:lh-rx-spin .8s linear infinite;
}
@keyframes lh-rx-spin{to{transform:rotate(360deg)}}
.lh-rx-steps{
  list-style:none;
  margin:14px auto 0;
  padding:0;
  max-width:300px;
  text-align:left;
  display:grid;
  gap:7px;
}
.lh-rx-steps li{
  display:flex;
  align-items:center;
  gap:9px;
  font:500 12.5px/1.3 Inter;
  color:var(--lh-sand);
  opacity:.55;
  transition:opacity .3s ease, color .3s ease;
}
.lh-rx-steps li .tick{
  flex:0 0 auto;
  width:17px;
  height:17px;
  border-radius:50%;
  border:1.5px solid var(--lh-line);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font:700 10px/1 Inter;
  color:#fff;
  background:transparent;
  transition:background .3s ease, border-color .3s ease;
}
.lh-rx-steps li.is-active{
  opacity:1;
  color:var(--lh-ink);
  font-weight:600;
}
.lh-rx-steps li.is-active .tick{
  border-color:var(--lh-teal);
  animation:lh-rx-tick-pulse 1s ease-in-out infinite;
}
.lh-rx-steps li.is-done{
  opacity:.85;
  color:var(--lh-ink);
}
.lh-rx-steps li.is-done .tick{
  background:var(--lh-teal);
  border-color:var(--lh-teal);
}
@keyframes lh-rx-tick-pulse{50%{box-shadow:0 0 0 4px rgba(14,95,102,.14)}}
.lh-rx-panel{
  background:var(--lh-hint-bg);
  border:1px solid var(--lh-hint-border);
  border-radius:var(--lh-r-lg);
  padding:14px;
  margin-bottom:14px;
}
.lh-rx-panel span{
  display:inline-block;
  color:var(--lh-orange);
  font:800 10px/1 Inter;
  letter-spacing:.08em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.lh-rx-panel b{display:block; font:700 16px/1.25 Inter; color:var(--lh-ink); margin-bottom:4px}
.lh-rx-panel p{margin:0 0 12px; font:500 12px/1.45 Inter; color:var(--lh-sand)}
.lh-rx-panel button{
  width:100%;
  border:0;
  border-radius:var(--lh-r-sm);
  background:var(--lh-ink);
  color:#fff;
  padding:11px 12px;
  font:700 12px/1 Inter;
  cursor:pointer;
}
.lh-rx-section-head{
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  gap:12px;
  margin:14px 0 8px;
}
.lh-rx-section-head h4{
  margin:0;
  font:800 12px/1 Inter;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--lh-ink);
}
.lh-rx-section-head span{font:600 12px/1 Inter; color:var(--lh-sand)}
.lh-rx-list{display:grid; gap:8px}
.lh-rx-match{
  display:grid;
  grid-template-columns:18px minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-md);
  padding:11px 12px;
}
.lh-rx-match input{accent-color:var(--lh-teal); width:16px; height:16px}
.lh-rx-match-copy{min-width:0}
.lh-rx-match-copy b{
  display:block;
  font:700 13px/1.25 Inter;
  color:var(--lh-ink);
  margin-bottom:3px;
}
.lh-rx-match-copy small{
  display:block;
  font:500 11px/1.35 Inter;
  color:var(--lh-sand);
}
.lh-rx-match em{
  font:800 12px/1 Inter;
  color:var(--lh-ink);
  font-style:normal;
  white-space:nowrap;
}
.lh-rx-unavailable{display:grid; gap:8px}
.lh-rx-unavailable div{
  background:#FFF7F3;
  border:1px solid #F3D3C3;
  border-radius:var(--lh-r-md);
  padding:10px 12px;
}
.lh-rx-unavailable b{display:block; font:700 13px/1.25 Inter; color:var(--lh-ink); margin-bottom:3px}
.lh-rx-unavailable small{display:block; font:500 11px/1.35 Inter; color:var(--lh-orange)}
.lh-rx-note{
  margin:14px 0 0;
  color:var(--lh-sand);
  font:500 11px/1.45 Inter;
}
.lh-rx-actions{
  flex:none;
  border-top:1px solid var(--lh-line);
  padding:12px 14px 16px;
  display:flex;
  gap:8px;
  background:var(--lh-white);
}
.lh-rx-actions button{
  border-radius:var(--lh-r-sm);
  padding:12px 14px;
  font:700 13px/1 Inter;
  cursor:pointer;
}
.lh-rx-actions .secondary{
  flex:none;
  background:var(--lh-white);
  color:var(--lh-teal);
  border:1.5px solid var(--lh-teal);
}
.lh-rx-actions .primary{
  flex:1;
  background:var(--lh-ink);
  color:#fff;
  border:0;
}
.lh-rx-actions .primary:disabled{
  background:#D1D5DB;
  color:#6B7280;
  cursor:not-allowed;
}

/* ===== Compare panels ===== */
.lh-compare-sheet,
.lh-compare-result{
  position:fixed; bottom:0; left:0; right:0;
  max-width:560px; margin:0 auto;
  max-height:92vh;
  background:var(--lh-white);
  border-radius:18px 18px 0 0;
  z-index:101;
  display:flex; flex-direction:column;
  overflow:hidden;
}
.lh-compare-head{
  padding:14px;
  border-bottom:1px solid var(--lh-line);
  display:flex; align-items:center; gap:10px;
  background:var(--lh-white);
}
.lh-compare-head .close{
  width:32px; height:32px; border-radius:50%;
  background:var(--lh-bg);
  border:0; color:var(--lh-ink);
  font:400 18px/1 Inter;
  display:grid; place-items:center;
  flex:none; cursor:pointer;
}
.lh-compare-head h3{font:600 17px/1.2 Inter; margin:0 0 2px; color:var(--lh-ink)}
.lh-compare-head p{font:400 12px/1.35 Inter; margin:0; color:var(--lh-sand)}
.lh-compare-head .change{
  margin-left:auto;
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-pill);
  padding:7px 11px;
  font:600 11px Inter;
  color:var(--lh-teal);
  cursor:pointer;
}
.lh-compare-search{
  position:relative;
  padding:4px 14px 8px;
}
.lh-compare-search input{
  width:100%;
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-pill);
  padding:9px 32px 9px 14px;
  font:400 14px Inter;
  color:var(--lh-ink);
  outline:none;
}
.lh-compare-search input:focus{
  border-color:var(--lh-teal);
  box-shadow:0 0 0 3px var(--lh-teal-soft);
}
.lh-compare-search .clear{
  position:absolute;
  right:22px; top:50%;
  transform:translateY(-50%);
  width:22px; height:22px;
  background:var(--lh-bg);
  border:0; border-radius:50%;
  font:600 14px Inter; color:var(--lh-ink);
  cursor:pointer;
}
.lh-compare-empty{
  text-align:center;
  padding:20px 0;
  font:400 13px Inter; color:var(--lh-sand);
}
.lh-compare-options{
  overflow-y:auto;
  padding:0 14px 14px;
}
.lh-compare-option{
  display:grid;
  grid-template-columns:24px 1fr;
  gap:10px;
  align-items:start;
  padding:12px 0;
  border-bottom:1px solid var(--lh-line);
  cursor:pointer;
}
.lh-compare-option input{position:absolute; opacity:0; pointer-events:none}
.lh-compare-option .tick{
  width:22px; height:22px; border-radius:50%;
  border:1.5px solid var(--lh-line);
  display:grid; place-items:center;
  color:#fff; background:var(--lh-white);
  font:700 12px/1 Inter;
}
.lh-compare-option.on .tick{background:var(--lh-teal); border-color:var(--lh-teal)}
.lh-compare-option.disabled{opacity:.45; cursor:not-allowed}
.lh-compare-option .copy{min-width:0}
.lh-compare-option .copy b{display:block; font:600 14px/1.25 Inter; color:var(--lh-ink); margin-bottom:3px}
.lh-compare-option .copy small{display:block; font:700 12px/1.25 Inter; color:var(--lh-teal); margin-bottom:3px}
.lh-compare-option .copy em{display:block; font:400 12px/1.4 Inter; color:var(--lh-sand); font-style:normal}
.lh-compare-bar{
  border-top:1px solid var(--lh-line);
  padding:12px 14px 16px;
  background:var(--lh-white);
  display:grid;
  gap:10px;
}
.lh-compare-bar .slots{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.lh-compare-bar .slots span{
  min-width:0;
  border:1px dashed var(--lh-line);
  border-radius:var(--lh-r-md);
  padding:9px 10px;
  color:var(--lh-sand);
  font:600 12px/1.25 Inter;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.lh-compare-bar .slots span.filled{border-style:solid; color:var(--lh-ink); background:var(--lh-bg)}
.lh-compare-bar .slots small{display:block; font:600 10px/1 Inter; color:var(--lh-teal); margin-bottom:4px}
.lh-compare-bar > button{
  width:100%;
  background:var(--lh-ink);
  color:#fff;
  border:0;
  border-radius:var(--lh-r-sm);
  padding:12px;
  font:700 13px Inter;
  cursor:pointer;
}
.lh-compare-bar > button:disabled{
  background:#D1D5DB;
  color:#6B7280;
  cursor:not-allowed;
}
.lh-compare-table{
  overflow-y:auto;
  padding:12px 14px 18px;
}
.lh-compare-plans,
.lh-compare-stats,
.lh-compare-about{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0;
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-md);
  overflow:hidden;
  margin-bottom:10px;
}
.lh-compare-plan{
  padding:12px;
  background:var(--lh-white);
  min-width:0;
}
.lh-compare-plan + .lh-compare-plan,
.lh-compare-stats span:nth-child(even),
.lh-compare-about span + span{border-left:1px solid var(--lh-line)}
.lh-compare-plan b{display:block; font:700 14px/1.25 Inter; color:var(--lh-ink); min-height:36px}
.lh-compare-plan span{display:inline-block; font:800 18px/1 Inter; color:var(--lh-ink); margin:8px 6px 4px 0}
.lh-compare-plan s{font:500 12px Inter; color:var(--lh-strike)}
.lh-compare-plan button{
  display:block;
  width:100%;
  margin-top:8px;
  background:var(--lh-ink);
  color:#fff;
  border:0;
  border-radius:var(--lh-r-sm);
  padding:9px 8px;
  font:700 11px Inter;
  cursor:pointer;
}
.lh-compare-stats span{
  padding:10px 12px;
  font:500 12px/1.25 Inter;
  color:var(--lh-sand);
}
.lh-compare-stats span:nth-child(n+3){border-top:1px solid var(--lh-line)}
.lh-compare-stats b{display:block; font:800 17px/1 Inter; color:var(--lh-teal); margin-bottom:3px}
.lh-compare-about span{
  padding:11px 12px;
  font:400 12px/1.45 Inter;
  color:var(--lh-sand);
}
.lh-compare-group{
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-md);
  background:var(--lh-white);
  margin-bottom:8px;
  overflow:hidden;
}
.lh-compare-group summary{
  list-style:none;
  cursor:pointer;
  display:grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
  gap:0;
  padding:0;
  font:700 13px/1.25 Inter;
  color:var(--lh-ink);
}
.lh-compare-group summary::-webkit-details-marker{display:none}
.lh-compare-group summary span{
  grid-column:1 / -1;
  padding:11px 12px 8px;
  border-bottom:1px solid var(--lh-line);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}
.lh-compare-group summary span::after{
  content:"";
  width:24px;
  height:24px;
  border:1px solid var(--lh-line);
  border-radius:50%;
  background:var(--lh-white) center/12px 12px no-repeat
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230F5E6E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>");
  transition:transform .2s ease;
  flex:none;
}
.lh-compare-group[open] summary span::after{transform:rotate(180deg)}
.lh-compare-group summary:hover span::after{border-color:var(--lh-teal); background-color:var(--lh-teal-soft)}
.lh-compare-group summary em{
  display:block;
  font:700 11px/1 Inter;
  color:var(--lh-teal);
  background:var(--lh-teal-soft);
  border-radius:0;
  padding:9px 12px;
  text-align:center;
  white-space:normal;
}
.lh-compare-group summary em + em{
  border-left:1px solid var(--lh-line);
}
.lh-compare-group > div{
  display:grid;
  grid-template-columns:1fr 1fr;
  border-top:1px solid var(--lh-line);
}
.lh-compare-group ul{
  margin:0;
  padding:10px 12px 10px 24px;
  font:400 11px/1.45 Inter;
  color:var(--lh-ink);
}
.lh-compare-group ul + ul{border-left:1px solid var(--lh-line)}
.lh-compare-group li{margin:0 0 4px}
.lh-compare-group li.more{list-style:none; margin-left:-12px}
.lh-compare-group li.more button{
  background:transparent;
  border:0;
  padding:2px 0;
  font:700 11px/1.2 Inter;
  color:var(--lh-teal);
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:2px;
}
.lh-compare-group li.more button:hover{color:var(--lh-ink)}
.lh-compare-group li.none{color:var(--lh-sand); list-style:none; margin-left:-12px}

.lh-bubbles{display:flex; flex-wrap:wrap; gap:6px}
.lh-bubbles button{
  background:var(--lh-bg);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-pill);
  padding:8px 14px;
  font:400 13px Inter;
  color:var(--lh-ink);
  cursor:pointer;
  font-family:inherit;
}
.lh-bubbles button .pr{font:600 13px Inter; color:var(--lh-teal); margin-left:6px}
.lh-res{
  display:flex; align-items:center; gap:12px;
  padding:11px 0;
  border-bottom:1px solid var(--lh-line);
}
.lh-res .ic{
  width:38px; height:38px;
  border-radius:var(--lh-r-md);
  background:var(--lh-teal-soft);
  display:grid; place-items:center;
  font-size:18px; color:var(--lh-teal); flex:none;
}
.lh-res.is-test .ic{background:var(--lh-orange-soft); color:var(--lh-orange)}
.lh-res .tx{flex:1; min-width:0}
.lh-res .tx b{display:block; font:600 14px Inter; color:var(--lh-ink)}
.lh-res .tx b mark{background:rgba(15,94,110,.15); color:var(--lh-teal); padding:0 2px; border-radius:2px}
.lh-res .tx span{font-size:11px; color:var(--lh-sand)}
.lh-res .pr{font:700 14px Inter; color:var(--lh-ink); margin-right:8px}
.lh-res .add{
  background:var(--lh-ink); color:#fff;
  border:0; border-radius:var(--lh-r-sm);
  padding:7px 12px;
  font:600 11px Inter;
  cursor:pointer;
}
.lh-empty{
  background:var(--lh-white);
  border:1px solid var(--lh-line);
  border-radius:var(--lh-r-lg);
  padding:36px 18px;
  text-align:center;
  color:var(--lh-sand);
  font-size:13px;
}

/* Padding under cart sheet so content isn't covered */
.lh-cart-spacer{height:90px}

/* ===== Desktop responsive (>=1024px) ===== */
@media (min-width:1024px){
  .lh-stickyhead{padding:14px 24px}
  .lh-pills{
    padding:14px 24px;
    gap:8px;
    justify-content:center;
    flex-wrap:wrap;
    -webkit-mask-image:none;
            mask-image:none;
  }
  .lh-pill{font-size:13.5px}
  .lh-pill.no-img{padding:10px 18px}
  .lh-pill.has-img{padding:5px 16px 5px 5px}
  .lh-pill .lh-pill-img{width:30px; height:30px}

  /* Hero v3 — full-width banner, search + trust strip overlaid (Healthians) */
  .lh-hero2{padding:18px 24px 22px}
  .lh-hb-slide{
    min-height:380px;
    padding:44px 56px 150px;
    align-items:flex-start;
  }
  .lh-hb-copy{max-width:46%; gap:8px}
  /* The search bar is overlaid across the bottom of the slide here, so the
     optical centre of the free space sits above the geometric one. */
  .lh-hb-badge{margin-left:12px; padding:6px 11px}
  .lh-hb-badge-off,
  .lh-hb-badge-off b{font-size:13px}
  .lh-hb-badge-off i{font-size:10px}
  .lh-hb-badge-lbl{font-size:9.5px}
  .lh-hb-badge-save{font-size:11px; padding-left:6px}
  .lh-hb-seal{
    width:248px; height:248px; top:42%; inset-inline-end:72px;
    box-shadow:0 0 0 10px rgba(246,241,232,.07), inset 0 0 0 1px rgba(246,241,232,.16);
  }
  .lh-hb-seal-off b{font-size:78px}
  .lh-hb-seal-off i{font-size:30px}
  .lh-hb-seal-lbl{font-size:12px; margin-top:5px}
  .lh-hb-seal-rule{width:44px; margin:13px 0 10px}
  .lh-hb-seal-save{font-size:14px}
  .lh-hb-name{font-size:38px}
  .lh-hb-meta{font-size:15px}
  .lh-hb-price{font-size:26px}
  .lh-hb-price s{font-size:16px}
  .lh-hb-cta{font-size:15px; padding:13px 26px}
  .lh-hero2-search{
    order:0;
    position:absolute; left:56px; bottom:30px; z-index:6;
    width:720px; max-width:calc(100% - 112px);
  }
  .lh-hero2-search .lh-search{box-shadow:0 10px 30px rgba(0,0,0,.22)}
  /* Overlaid on the banner: light text, white icon tiles (Healthians). */
  .lh-trust3{
    display:grid;
    --lh-icon-main:var(--lh-teal); --lh-icon-accent:var(--lh-orange);
    grid-template-columns:1.15fr 1fr .85fr; gap:20px;
    margin-top:14px;
  }
  .lh-trust3 li{
    font-size:13px; line-height:1.3; gap:10px; align-items:center;
    color:#fff; text-shadow:0 1px 6px rgba(0,0,0,.28);
  }
  .lh-trust3 li b{color:#FFC98A; font-weight:700}
  .lh-trust3 li br{display:inline}
  .lh-trust3 li .ic{
    width:38px; height:38px; flex-basis:38px;
    background:#fff; border-radius:9px; padding:5px;
    box-shadow:0 4px 12px rgba(0,0,0,.18);
  }
  .lh-hb-dots{margin-top:12px}
  .lh-hero2-actions{
    grid-template-columns:1.4fr 1fr; gap:10px; align-items:stretch;
    margin-top:14px;
  }
  .lh-rx{padding:18px 20px; margin-bottom:0}
  .lh-rx .tx b{font-size:17px}
  .lh-rx .tx span{font-size:13px}
  .lh-duo{grid-template-columns:1fr 1fr}
  .lh-duo a{font-size:14px}

  /* H1 + chips — centered on desktop like Healthians */
  .lh-chips-head{padding:44px 24px 6px}
  .lh-chips-h1{font-size:28px}
  .lh-chips{justify-content:center; gap:8px}
  .lh-chip{font-size:13px; padding:8px 18px}
  .lh-lbl{padding:28px 24px 12px}
  .lh-lbl h2{font:600 21px Inter}
  .lh-rail-head{padding-bottom:12px}

  /* Most-booked panels — horizontal rail carousel */
  .lh-rail-wrap{
    position:relative;
    max-width:1180px; margin:0 auto;
    padding:0 24px;
  }
  /* Arrows live in their own side gutters so they never overlap cards
     (owner 2026-07-25) — applies to every rail (landing + browse). */
  .lh-rail-stage{padding:0 52px}
  .lh-rail.lh-grid2{
    display:flex;
    grid-template-columns:none;
    gap:18px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scroll-padding-left:4px;
    scroll-behavior:smooth;
    padding:6px 4px 12px;
    margin:0 -4px;
    scrollbar-width:none;
  }
  .lh-rail.lh-grid2::-webkit-scrollbar{display:none}
  .lh-rail.lh-grid2 > article.lh-card{
    flex:0 0 calc((100% - 36px) / 3);
    scroll-snap-align:start;
  }
  .lh-rail.lh-test-grid{
    grid-auto-columns:calc((100% - 32px) / 3);
    gap:12px 16px;
    scroll-padding-left:4px;
    padding:6px 4px 12px;
    margin:0 -4px;
  }
  .lh-browse-hero{padding:22px 24px 12px; gap:14px}
  .lh-browse-back{width:40px; height:40px; font-size:18px}
  .lh-browse-hero h1{font:600 28px/1.1 Fraunces, serif}
  /* Browse pills: short chip labels fit one centered row on desktop. */
  .lh-is-browse .lh-pills{
    flex-wrap:nowrap;
    justify-content:center;
    padding:12px 24px 8px;
  }
  .lh-is-browse .lh-pill{font-size:13px; padding:8px 18px}
  .lh-browse-modes-wrap{padding:0 24px 12px}
  .lh-grid2.lh-browse-grid{
    grid-template-columns:repeat(3, 1fr);
    gap:18px;
    padding:18px 24px;
    max-width:1180px;
    margin:0 auto;
  }
  .lh-rows.lh-browse-rows{
    max-width:1180px; margin:0 auto;
    padding:14px 24px;
    display:grid; grid-template-columns:1fr 1fr; gap:10px;
  }
  .lh-rail-btn{
    display:grid; place-items:center;
    position:absolute;
    top:calc(50% - 14px);
    transform:translateY(-50%);
    width:40px; height:40px;
    border-radius:50%;
    background:var(--lh-white);
    border:1px solid var(--lh-line);
    box-shadow:0 4px 12px rgba(0,0,0,.08);
    font-size:22px; color:var(--lh-ink);
    cursor:pointer;
    z-index:5;
  }
  .lh-rail-btn.prev{left:2px}
  .lh-rail-btn.next{right:2px}
  .lh-rail-btn:disabled{opacity:.35; cursor:default}
  .lh-rail-btn:not(:disabled):hover{background:var(--lh-bg)}
  .lh-rail-footer{
    padding:0 4px;
    max-width:none;
    margin:-2px 0 0;
  }
  .lh-rail-counter{
    display:block;
    position:static;
    font:600 12px Inter;
    color:var(--lh-sand);
    background:var(--lh-bg);
    border:1px solid var(--lh-line);
    border-radius:var(--lh-r-pill);
    padding:4px 10px;
    font-variant-numeric:tabular-nums;
  }

  /* Panel card — Orange-inspired density with editorial pharmacopoeia look */
  .lh-card{
    padding:0;
    overflow:hidden;
    gap:0;
    border-radius:var(--lh-r-lg);
    transition:transform .2s ease, box-shadow .2s ease;
  }
  .lh-card:hover{
    transform:translateY(-2px);
    box-shadow:0 14px 32px -16px rgba(15,94,110,.28);
  }
  .lh-card .nm{
    display:block;
    font:600 16px/1.25 Inter;
    color:var(--lh-ink);
    padding:14px 16px 8px;
  }
  .lh-card .pr{
    padding:12px 16px 12px;
    align-items:center; gap:8px;
  }
  .lh-card .pr b{font:700 19px/1 Inter}
  .lh-card .pr s{font-size:13px}
  .lh-card-cta{
    display:grid; grid-template-columns:1fr 1.2fr;
    gap:8px;
    padding:0 16px 14px;
  }
  .lh-card-cta .add{
    background:var(--lh-ink);
    color:#fff;
    border:0;
    border-radius:var(--lh-r-sm);
    padding:10px;
    font:600 12px Inter;
    cursor:pointer;
    margin:0;
  }
  .lh-card.added .lh-card-cta .add{background:var(--lh-teal)}
  .lh-card-compare{
    display:block;
    width:calc(100% - 32px);
    margin:0 16px 14px;
    background:transparent;
    border:0;
    border-top:1px solid var(--lh-line);
    padding:10px 0 0;
    font:500 11px Inter;
    color:var(--lh-sand);
    cursor:pointer;
    text-align:center;
  }
  .lh-card-compare:hover{color:var(--lh-teal)}
  /* Disable old single-button add on desktop (replaced by lh-card-cta) */
  .lh-card > .add{display:none}

  .lh-rows{
    max-width:1180px; margin:0 auto;
    padding:0 24px;
    display:grid; grid-template-columns:1fr 1fr; gap:10px;
  }
  .lh-strow{margin:0}

  .lh-hint{
    margin:14px auto;
    max-width:1132px;
  }

  .lh-editorial-head{
    padding:42px 24px 18px;
    display:grid;
    grid-template-columns:minmax(260px, .85fr) minmax(340px, 1fr);
    gap:18px 56px;
    align-items:end;
  }
  .lh-editorial-head .lh-kicker,
  .lh-editorial-head h2{grid-column:1}
  .lh-editorial-head h2{font-size:34px}
  .lh-editorial-head p:not(.lh-kicker){
    grid-column:2;
    grid-row:1 / span 2;
    margin:0;
    align-self:end;
    font-size:15px;
  }
  .lh-editorial-head.compact{
    grid-template-columns:1fr;
    gap:0;
  }
  .lh-editorial-head.compact .lh-kicker,
  .lh-editorial-head.compact h2{grid-column:1}
  .lh-journey{max-width:1180px; margin-left:auto; margin-right:auto; padding:30px 24px 36px}
  .lh-journey-head h2{font-size:34px}
  .lh-journey-steps{
    margin:38px 0 0;
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:0 26px;
  }
  /* Desktop: 4 across, centered stacks, curved dashed wave between circles */
  .lh-journey-steps li,
  .lh-journey-steps li.rev{
    flex-direction:column; display:flex; align-items:center; gap:0;
    text-align:center; margin-bottom:0;
  }
  .lh-journey-steps li.rev .tx{text-align:center}
  .lh-journey-steps li:not(:last-child){margin-bottom:0}
  .lh-journey-steps li:not(:last-child)::after{
    top:37px;
    left:calc(50% + 48px);
    right:auto;
    width:calc(100% - 96px + 26px);
    height:2px;
    background:repeating-linear-gradient(90deg, #8FBFC8 0 6px, transparent 6px 13px);
    transform:none;
  }
  .lh-journey-steps li.rev:not(:last-child)::after{left:calc(50% + 48px); right:auto}
  .lh-journey-steps .tx{margin-top:12px}
  .lh-journey-steps h3{font-size:15.5px}
  .lh-journey-steps p{font-size:13px; max-width:230px; margin:0 auto}

  /* Reviews: 3-col on desktop (stats + 2 reviews) */
  .lh-rev-wrap{
    display:grid; grid-template-columns:1fr 1fr 1fr; gap:12px;
    padding:0 24px;
    max-width:1180px; margin:0 auto;
  }
  .lh-trust .lh-rev-wrap{
    gap:12px;
    padding:0 24px;
  }
  .lh-rev{margin:0}
  .lh-rev-stats{display:flex !important; flex-direction:column}
  .lh-rev-stats .top b{font-size:36px}
  .lh-rev-bars{display:flex; flex-direction:column; gap:6px; margin-top:8px}
  .lh-rev-bars > div{
    display:grid; grid-template-columns:22px 1fr 36px;
    align-items:center; gap:8px;
    font-size:11px; color:var(--lh-sand);
  }
  .lh-rev-bars > div > span{color:var(--lh-ink); font-weight:500}
  .lh-rev-bars .bar{
    height:6px; background:var(--lh-bg);
    border-radius:3px; overflow:hidden;
  }
  .lh-rev-bars .bar i{
    display:block; height:100%;
    background:#C9A96E; border-radius:3px;
  }
  .lh-rev-bars em{font-style:normal; text-align:right; font-variant-numeric:tabular-nums}

  .lh-cities{
    padding:0 24px; max-width:1180px; margin:0 auto;
  }
  .lh-cities a{min-width:0; flex:1}

  /* FAQ: 2-col grid on desktop */
  .lh-faq{
    padding:0 24px;
    max-width:1180px; margin:0 auto;
    display:grid; grid-template-columns:1fr 1fr; gap:0 32px;
    align-items:start;
  }
  .lh-faq details{padding:14px 0}

  /* Cross-sell: 3-tile wide rail */
  .lh-xsell{
    padding:0 24px;
    max-width:1180px; margin:0 auto;
    grid-template-columns:1fr 1fr;
    gap:14px;
  }
  .lh-xsell a{padding:20px 18px; font-size:13px}
  .lh-xsell a .em{font-size:28px}
  .lh-xsell a b{font-size:15px; margin-bottom:5px}

  /* Cart sheet stays bottom-fixed; cap width and center on desktop */
  .lh-cart-sheet{
    left:50%; transform:translateX(-50%);
    max-width:520px; right:auto;
    border-radius:14px 14px 0 0;
    border:1px solid var(--lh-line);
    border-bottom:0;
  }

  .lh-modal{
    width:min(820px, calc(100vw - 96px));
    max-width:none;
  }
  .lh-modal .modbody{padding:0 18px 18px}
  .lh-modal .hero-img{
    aspect-ratio:2.1;
    max-height:360px;
  }
  .lh-modal .lh-biomarker-group ul{
    columns:3;
    column-gap:18px;
  }
  .lh-modal .modcta{padding:12px 18px 18px}

  .lh-compare-sheet,
  .lh-compare-result{
    top:50%; bottom:auto;
    transform:translateY(-50%);
    border-radius:14px;
    box-shadow:0 24px 80px rgba(26,42,47,.22);
    max-height:86vh;
  }
  .lh-compare-sheet{max-width:680px}
  .lh-compare-result{max-width:880px}
  .lh-rx-modal{
    top:50%;
    bottom:auto;
    transform:translateY(-50%);
    border-radius:14px;
    max-width:720px;
    max-height:86vh;
    box-shadow:0 24px 80px rgba(26,42,47,.22);
  }
  .lh-rx-body{padding:18px}
  .lh-rx-actions{padding:12px 18px 18px}
  .lh-compare-bar{
    grid-template-columns:1fr 180px;
    align-items:center;
  }
}

/* ===== Wide desktop ===== */
@media (min-width:1280px){
  .lh-rows{grid-template-columns:1fr 1fr 1fr}
}

/* ── Phase 3: multi-select search (Healthians parity) ── */
.lh-ss-bar { display: flex; align-items: center; gap: 8px; }
.lh-ss-chips { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; flex: 1; min-width: 0; }
.lh-ss-chips input { flex: 1; min-width: 120px; border: 0; outline: 0; background: transparent; font: inherit; }
.lh-ss-chip {
  display: inline-flex; align-items: center; gap: 4px;
  background: var(--lh-teal-soft); color: var(--lh-teal);
  border: 1px solid var(--lh-line); border-radius: var(--lh-r-sm);
  padding: 2px 8px 2px 4px; font-size: 13px; line-height: 1.4;
  max-width: 240px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.lh-ss-chip-x {
  border: 0; background: transparent; color: var(--lh-teal); cursor: pointer;
  font-size: 15px; line-height: 1; padding: 0 2px;
}
.lh-ss-chip-x:hover { color: var(--lh-orange); }
.lh-ss-submit {
  border: 0; border-radius: var(--lh-r-md); cursor: pointer;
  background: var(--lh-teal); color: var(--lh-white); font-weight: 600;
  padding: 8px 18px; font-size: 14px; flex-shrink: 0;
}
.lh-ss-submit:hover { filter: brightness(1.08); }
@media (max-width: 899px) {
  .lh-ss-chip { max-width: 160px; }
  .lh-ss-submit { padding: 8px 12px; }
}

/* ── Phase 3: search suggest dropdown ──
   .lh-searchwrap wraps the .lh-search bar and is the positioned anchor for
   the dropdown — .lh-stickyhead itself isn't reliable (it flips to
   position:static on /browse/, see .lh-is-browse .lh-stickyhead above). */
.lh-searchwrap { position: relative; max-width: 720px; margin: 0 auto; }
.lh-ss-dd {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 60;
  background: var(--lh-white); border: 1px solid var(--lh-line); border-radius: var(--lh-r-lg);
  box-shadow: 0 12px 32px rgba(15, 94, 110, .14);
  max-height: min(480px, 60vh); overflow-y: auto; padding: 12px;
  margin-top: 6px;
}
.lh-ss-zones.is-popular { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.lh-ss-zones.is-matches { display: block; }
.lh-ss-zone h4 {
  font: 600 12px/1.4 Inter, sans-serif; letter-spacing: .08em; text-transform: uppercase;
  color: var(--lh-sand); margin: 8px 0 4px;
}
.lh-ss-row {
  display: flex; align-items: center; gap: 10px; width: 100%;
  border: 0; background: transparent; cursor: pointer; text-align: left;
  padding: 8px 10px; border-radius: var(--lh-r-sm); font: 400 14px/1.4 Inter, sans-serif; color: var(--lh-ink);
}
.lh-ss-row:hover, .lh-ss-row.is-hl { background: var(--lh-teal-soft); }
.lh-ss-row.is-sel .lh-ss-row-name { color: var(--lh-teal); font-weight: 600; }
.lh-ss-row-name { flex: 1; min-width: 0; }
.lh-ss-alias { display: block; color: var(--lh-sand); font-size: 12px; }
.lh-ss-row-meta { color: var(--lh-sand); font-size: 13px; flex-shrink: 0; }
.lh-ss-toggle {
  width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 16px; font-weight: 600;
  background: var(--lh-teal-soft); color: var(--lh-teal);
}
.lh-ss-toggle.minus { background: var(--lh-teal); color: var(--lh-white); }
.lh-ss-nohits p { margin: 4px 0 8px; color: var(--lh-sand); font-size: 14px; }
.lh-ss-dd-foot { position: sticky; bottom: 0; background: var(--lh-white); padding-top: 8px; display: flex; justify-content: flex-end; }
@media (max-width: 899px) {
  .lh-ss-dd { max-height: 70vh; }
  .lh-ss-zones.is-popular { grid-template-columns: 1fr; }
}

/* Phase 2: card/search title links inherit card styling */
.lh-card .nm a, .lh-test-card-name a, .lh-strow .tx > b a { color: inherit; text-decoration: none; }
.lh-card .nm a:hover, .lh-test-card-name a:hover { text-decoration: underline; }
.lh-card-cta a.view { text-decoration: none; text-align: center; }

/* Phase 2: analyte cross-links in package accordion (Healthians D2) */

/* ── Phase 3: results view (Healthians anatomy — owner round 2026-07-23) ── */
.lh-sr { padding: 8px 16px 40px; max-width: 1180px; margin: 0 auto; }
.lh-sr-head { margin: 16px 0 4px; }
.lh-sr-head h1 { font: 600 28px/1.2 Fraunces, serif; color: #1a2b32; margin: 0; }
.lh-sr-chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 10px 0; }
.lh-sr-viewtests { display: none; border: 0; background: none; color: #0F5E6E; font-weight: 600; cursor: pointer; text-decoration: underline; margin-left: auto; }
.lh-sr-band {
  background: #eef2fb; color: #33415c; border-radius: 8px;
  padding: 10px 16px; text-align: center; font-size: 14px; margin: 12px 0 20px;
}
.lh-sr-band i { font-style: normal; margin: 0 10px; color: #94a3b8; }

/* Combined bundle card: left content / right buy column, count block pinned top-right */
.lh-sr-bundle {
  position: relative;
  background: #fff; border: 1px solid #e3e8e9; border-radius: 14px;
  box-shadow: 0 8px 24px rgba(15, 94, 110, .08); margin-bottom: 32px;
}
.lh-sr-count {
  position: absolute; top: 0; right: 0;
  background: linear-gradient(135deg, #e4f2f4, #f4fafb); color: #0F5E6E;
  border-radius: 0 14px 0 14px; padding: 14px 20px;
  display: flex; gap: 8px; align-items: center;
}
.lh-sr-count b { font-size: 32px; line-height: 1; }
.lh-sr-count span { font-size: 12px; line-height: 1.2; font-weight: 600; }
.lh-sr-bundle-grid { display: grid; grid-template-columns: 1fr 300px; gap: 24px; padding: 20px; }
.lh-sr-bundle-left h2 { font: 600 22px/1.35 Fraunces, serif; color: #1a2b32; margin: 0 0 14px; padding-right: 130px; }
.lh-sr-bundle-left h3 { font: 700 14px/1.4 Inter, sans-serif; margin: 0 0 4px; }
.lh-sr-included { color: #475569; font-size: 14px; line-height: 1.6; margin: 0 0 16px; }
.lh-sr-more { border: 0; background: none; color: #0F5E6E; font-weight: 600; cursor: pointer; text-decoration: underline; padding: 0; }
.lh-sr-specs { list-style: none; padding: 0; margin: 0; }
.lh-sr-specs li { color: #33415c; font-size: 14px; }
.lh-sr-specs li::before { content: '✓'; color: #0F5E6E; margin-right: 8px; font-weight: 700; }
.lh-sr-specs-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px; }
.lh-sr-bundle-right { display: flex; flex-direction: column; gap: 10px; justify-content: flex-end; padding-top: 52px; }
.lh-sr-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.lh-sr-price b { font-size: 26px; color: #1a2b32; }
.lh-sr-price s { color: #94a3b8; }
.lh-sr-offpill {
  font-style: normal; background: #fdeed3; color: #b9770e; border-radius: 999px;
  font-size: 12px; font-weight: 700; padding: 3px 10px; white-space: nowrap;
}
.lh-sr-details {
  display: block; width: 100%; text-align: center;
  border: 1px solid #bfdce2; background: #edf7f9; color: #0F5E6E;
  border-radius: 8px; padding: 11px 22px; font-weight: 600; cursor: pointer;
  text-decoration: none; box-sizing: border-box;
}
.lh-sr-book {
  display: block; width: 100%;
  border: 0; background: #0F5E6E; color: #fff; border-radius: 8px;
  padding: 12px 26px; font-weight: 600; cursor: pointer; font-size: 15px;
}
.lh-sr-book:hover, .lh-sr-details:hover { filter: brightness(1.05); }
.lh-sr-bundle-detail { padding: 4px 20px 16px; border-top: 1px dashed #e3e8e9; }
.lh-sr-detail-group h4 { font: 600 14px/1.4 Inter, sans-serif; margin: 12px 0 4px; }
.lh-sr-detail-group h4 small { color: #64748b; font-weight: 400; margin-left: 8px; }
.lh-sr-detail-group ul { columns: 2; margin: 0; padding-left: 18px; color: #475569; font-size: 13px; line-height: 1.7; }

/* Customised Packages grid */
.lh-sr-suggest h2 { font: 600 24px/1.3 Fraunces, serif; margin: 8px 0 2px; color: #1a2b32; }
.lh-sr-suggest-sub { color: #64748b; margin: 0 0 18px; font-size: 14px; }
.lh-sr-pkg-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.lh-sr-pkg {
  background: #fff; border: 1px solid #e3e8e9; border-radius: 14px;
  padding: 16px 16px 0; display: flex; flex-direction: column; gap: 8px;
  box-shadow: 0 6px 18px rgba(15, 94, 110, .06); overflow: hidden;
}
.lh-sr-pkg-top { display: flex; justify-content: space-between; align-items: center; min-height: 24px; }
.lh-sr-ribbon {
  border: 1px solid #bfdce2; background: #f4fafb; color: #0F5E6E;
  font-size: 10.5px; font-weight: 700; letter-spacing: .07em;
  border-radius: 6px; padding: 3px 9px;
}
.lh-sr-ribbon::before { content: '⚑ '; font-size: 10px; }
.lh-sr-pkg h3 { margin: 2px 0 0; font: 600 19px/1.3 Fraunces, serif; }
.lh-sr-pkg h3 a { color: #1a2b32; text-decoration: none; }
.lh-sr-pkg h3 a:hover { color: #0F5E6E; text-decoration: underline; }
.lh-sr-pkg-count { margin: 0; color: #33415c; font-size: 14px; }
.lh-sr-pkg-params {
  margin: 4px 0 0; color: #475569; font-size: 13px; line-height: 1.6;
  border-top: 1px dashed #d8dfe1; padding-top: 10px;
}
.lh-sr-specs-row { display: flex; flex-wrap: wrap; gap: 8px 20px; margin: 4px 0 8px; }
.lh-sr-specs-row li { font-size: 13px; }
.lh-sr-pkg-offer {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin: auto -16px 0; padding: 12px 16px; background: #fbf7ef; border-top: 1px solid #f0e6d6;
}
.lh-sr-pkg-offer .lh-sr-price { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.lh-sr-pkg-offer .lh-sr-price small { color: #64748b; font-size: 11px; }
.lh-sr-pkg-offer .lh-sr-price span { display: flex; align-items: baseline; gap: 8px; }
.lh-sr-pkg-offer .lh-sr-price b { font-size: 20px; }
.lh-sr-pkg-offer .lh-sr-details { width: auto; padding: 9px 22px; flex-shrink: 0; }
.lh-sr-pkg-book { margin: 0 -16px; width: calc(100% + 32px); border-radius: 0; }
.lh-sr-showmore {
  margin: 20px auto 0; display: block; border: 1px solid #bfdce2; background: #fff;
  color: #0F5E6E; border-radius: 8px; padding: 10px 24px; font-weight: 600; cursor: pointer;
}

/* "+More" params modal — Healthians package-pop anatomy, Theme A skin */
.lh-pm {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: min(640px, calc(100vw - 32px)); max-height: 80vh;
  background: #fff; border-radius: 14px; z-index: 101;
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 24px 64px rgba(15, 94, 110, .25);
}
.lh-pm-head { position: relative; padding: 20px 56px 14px 22px; border-bottom: 1px solid #eef1f2; }
.lh-pm-head h3 { margin: 0 0 4px; font: 600 22px/1.25 Fraunces, serif; color: #1a2b32; }
.lh-pm-head p { margin: 0; color: #33415c; font-size: 14px; }
.lh-pm-close {
  position: absolute; top: 14px; right: 14px; width: 32px; height: 32px;
  border: 0; border-radius: 50%; background: #eef4f5; color: #0F5E6E;
  font-size: 18px; line-height: 1; cursor: pointer;
}
.lh-pm-body { background: #f4f7f8; padding: 14px; overflow-y: auto; }
.lh-pm-row { background: #fff; border-radius: 10px; margin-bottom: 10px; overflow: hidden; box-shadow: 0 2px 8px rgba(15, 94, 110, .05); }
.lh-pm-row:last-child { margin-bottom: 0; }
.lh-pm-rowhead {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; border: 0; background: none; cursor: pointer; text-align: left;
  padding: 14px 16px; font: 600 15px/1.4 Inter, sans-serif; color: #1a2b32;
}
.lh-pm-rowhead em {
  font-style: normal; background: #eef4f5; color: #0F5E6E;
  font-size: 11.5px; font-weight: 700; border-radius: 999px; padding: 3px 10px; white-space: nowrap;
}
.lh-pm-row.is-open .lh-pm-rowhead { border-bottom: 1px dashed #e3e8e9; }
.lh-pm-subs { padding: 10px 16px 12px; }
.lh-pm-subs p { margin: 0 0 6px; color: #475569; font-size: 13.5px; }
.lh-pm-subs p:last-child { margin-bottom: 0; }
@media (max-width: 899px) {
  .lh-pm { top: auto; left: 0; right: 0; bottom: 0; transform: none; width: auto; max-height: 78vh; border-radius: 18px 18px 0 0; }
}

/* "View Tests" → Added Tests/Packages sheet (Healthians view_selected_test) */
.lh-vt {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 101;
  max-width: 560px; margin: 0 auto; max-height: 70vh;
  background: #fff; border-radius: 18px 18px 0 0;
  display: flex; flex-direction: column; overflow: hidden;
  box-shadow: 0 -12px 48px rgba(15, 94, 110, .25);
}
.lh-vt-head { position: relative; padding: 18px 56px 12px 20px; }
.lh-vt-head h3 { margin: 0; font: 600 21px/1.25 Fraunces, serif; color: #1a2b32; }
.lh-vt-body { overflow-y: auto; padding: 0 20px; }
.lh-vt-row {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 14px 0; border-top: 1px solid #eef1f2;
}
.lh-vt-row span { font: 500 15px/1.4 Inter, sans-serif; color: #1a2b32; }
.lh-vt-remove {
  border: 1px solid #e3c4c1; background: #fdf4f3; color: #B0524C;
  border-radius: 8px; padding: 7px 16px; font-weight: 600; font-size: 13px; cursor: pointer; flex-shrink: 0;
}
.lh-vt-foot {
  display: flex; gap: 10px; padding: 14px 20px 18px;
  border-top: 1px solid #eef1f2; background: #fff;
}
.lh-vt-addmore {
  flex: 1; border: 0; background: #e4f2f4; color: #0F5E6E;
  border-radius: 10px; padding: 12px; font-weight: 600; cursor: pointer;
}
.lh-vt-search {
  flex: 1; border: 0; background: #0F5E6E; color: #fff;
  border-radius: 10px; padding: 12px; font-weight: 600; cursor: pointer;
}
@media (min-width: 900px) {
  .lh-vt { bottom: auto; top: 50%; transform: translateY(-50%); border-radius: 14px; }
}
@media (max-width: 899px) {
  .lh-sr-chips .lh-sr-chip-extra { display: none; }
  .lh-sr-viewtests { display: inline; }
  .lh-sr-head h1 { font-size: 23px; }
  .lh-sr-band { font-size: 12.5px; padding: 8px 12px; }
  .lh-sr-bundle-grid { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
  .lh-sr-bundle-left h2 { font-size: 19px; padding-right: 96px; }
  .lh-sr-count { padding: 10px 14px; }
  .lh-sr-count b { font-size: 26px; }
  .lh-sr-specs-2col { grid-template-columns: 1fr; gap: 8px; }
  .lh-sr-bundle-right { padding-top: 0; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 10px 12px; }
  .lh-sr-bundle-right .lh-sr-price { grid-column: 1; flex-direction: row; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
  .lh-sr-bundle-right .lh-sr-details { grid-column: 2; width: auto; padding: 10px 24px; }
  .lh-sr-bundle-right .lh-sr-book { grid-column: 1 / -1; }
  .lh-sr-detail-group ul { columns: 1; }
  .lh-sr-suggest h2 { font-size: 20px; }
  .lh-sr-pkg-grid { grid-template-columns: 1fr; gap: 16px; }
  .lh-sr-specs-row { flex-direction: column; gap: 6px; }
}

/* ═══════════ lhx — Healthians-clone detail template (tests + packages) ═══════════
   Anatomy mirrors healthians.com/profile/<city>/<test>: white cards on cool-gray
   page, icon meta row in hero, flat included rows, vertical booking steps,
   sticky offer rail with off-ribbon + expert card. BestDOC palette. */
.lhx{background:#F3F6F8; overflow-x:clip}
.lhx main{max-width:1240px; margin:0 auto; padding:0 20px 48px}

/* Breadcrumb — quiet, on page bg */
.lhx-crumbs{display:flex; gap:7px; align-items:center; flex-wrap:wrap; padding:14px 2px 12px; font:400 12.5px/1.5 Inter; color:#8A97A0}
.lhx-crumbs a{color:#8A97A0; text-decoration:none}
.lhx-crumbs a:hover{color:var(--lh-teal); text-decoration:underline}
.lhx-crumbs b{color:#4A5A64; font-weight:500}

/* Two-column shell */
.lhx-grid{display:grid; grid-template-columns:minmax(0,1fr) 320px; gap:20px; align-items:start}
.lhx-main{display:grid; grid-template-columns:minmax(0,1fr); gap:16px; min-width:0}

.lhx-card{background:#fff; border:1px solid #E5EAED; border-radius:10px; padding:22px 24px; box-shadow:0 1px 2px rgba(16,42,53,.04)}

/* ── Hero card ── */
.lhx-hero-head{display:flex; align-items:flex-start; justify-content:space-between; gap:18px}
.lhx-hero-tx h1{font:700 23px/1.3 Inter; color:#152A32; margin:0}
.lhx-aka{font:400 12.5px/1.6 Inter; color:#6B7A84; margin:7px 0 0}
.lhx-aka b{font-weight:600; color:#152A32}
.lhx-count{flex:none; display:flex; align-items:center; gap:9px}
.lhx-count .n{display:grid; place-items:center; width:42px; height:42px; border-radius:50%; background:var(--lh-teal); color:#fff; font:700 18px/1 Inter}
.lhx-count .t{font:700 12px/1.3 Inter; color:var(--lh-teal)}
.lhx-meta{list-style:none; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:20px 0 0; padding:18px 0 0; border-top:1px solid #EDF1F3}
.lhx-meta li{display:flex; align-items:center; gap:10px; min-width:0}
.lhx-meta .ico{flex:none; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:var(--lh-teal-soft); color:var(--lh-teal)}
.lhx-meta .tx{display:grid; gap:2px; min-width:0}
.lhx-meta .k{font:400 11.5px/1.2 Inter; color:#7C8A93}
.lhx-meta .v{font:600 13px/1.35 Inter; color:#152A32}
.lhx-about{margin:20px 0 0}
.lhx-about h2{font:700 14.5px/1.3 Inter; color:#152A32; margin:0 0 8px}
.lhx-about p{font:400 13.5px/1.7 Inter; color:#54646E; margin:0}
.lhx-more{background:none; border:0; padding:0; margin-top:6px; color:var(--lh-teal); font:600 13px/1 Inter; cursor:pointer}
.lhx-whatis{margin:12px 0 0 !important}
.lhx-whatis b{color:#152A32}
.lhx-deep-block{margin:0 0 18px}
.lhx-deep-block:last-child{margin-bottom:0}
.lhx-deep-block p{font:400 13.5px/1.7 Inter; color:#54646E; margin:6px 0 0}
.lhx-why{list-style:none; margin:10px 0 0; padding:0}
.lhx-why li{position:relative; padding:0 0 0 20px; margin:0 0 8px; font:400 13.5px/1.6 Inter; color:#54646E}
.lhx-why li:last-child{margin-bottom:0}
.lhx-why li::before{content:""; position:absolute; left:2px; top:8px; width:6px; height:6px; border-radius:50%; background:var(--lh-teal)}
.lhx-ctas{display:flex; gap:12px; flex-wrap:wrap; margin-top:20px}
.lhx-book{background:var(--lh-teal); color:#fff; border:0; border-radius:7px; padding:12px 30px; font:600 14px/1 Inter; cursor:pointer}
.lhx-book:hover{filter:brightness(1.07)}
.lhx-ghost{display:inline-flex; align-items:center; justify-content:center; background:#fff; color:var(--lh-teal); border:1.5px solid var(--lh-teal); border-radius:7px; padding:11px 24px; font:600 13.5px/1 Inter; cursor:pointer; text-decoration:none}
.lhx-ghost:hover{background:var(--lh-teal-soft)}

/* qty stepper (in-cart state) */
.lhx-qty{display:inline-flex; align-items:center; gap:14px; border:1.5px solid var(--lh-teal); border-radius:7px; padding:9px 14px}
.lhx-qty button{background:none; border:0; font-size:17px; line-height:1; color:var(--lh-teal); cursor:pointer; padding:0 4px}
.lhx-qty button:disabled{opacity:.35; cursor:default}
.lhx-qty b{min-width:1.2em; text-align:center; font:700 14px/1 Inter; color:#152A32}

/* ── Trust strip — Healthians-style benefit rail: 4 fill on desktop, natural-width slide on mobile ── */
.lhx-trust{list-style:none; display:flex; gap:12px; margin:0; padding:0; overflow-x:auto; scroll-behavior:smooth; -webkit-overflow-scrolling:touch; scrollbar-width:none; -ms-overflow-style:none}
.lhx-trust::-webkit-scrollbar{display:none}
.lhx-trust li{flex:1 0 auto; display:flex; align-items:center; gap:9px; height:52px; padding:0 16px 0 12px; border-radius:9px; white-space:nowrap}
.lhx-trust .ico{flex:none; display:grid; place-items:center}
.lhx-trust b{font:italic 500 13px/1.2 Inter; color:#181818}
.lhx-trust li.fill-a{background:#edf8fe} .lhx-trust li.fill-a .ico{color:#1079B4}
.lhx-trust li.fill-b{background:#edf1fe} .lhx-trust li.fill-b .ico{color:#4D61C4}
.lhx-trust li.fill-c{background:#fef5ec} .lhx-trust li.fill-c .ico{color:#C7841F}
.lhx-trust li.fill-d{background:#fdf2f7} .lhx-trust li.fill-d .ico{color:#C2447E}

/* ── Section headings inside cards ── */
.lhx-h2{font:700 17px/1.3 Inter; color:#152A32; margin:0 0 4px}
.lhx-h3{font:700 14.5px/1.3 Inter; color:#152A32; margin:0 0 4px}
.lhx-deep-h2{margin:0 0 16px}
.lhx-sub{font:400 13px/1.6 Inter; color:#6B7A84; margin:0 0 6px}
.lhx-sub a{color:var(--lh-teal); font-weight:600}

/* ── Test Included rows ── */
.lhx-inc{list-style:none; margin:6px 0 0; padding:0}
.lhx-inc-row{border-bottom:1px solid #EDF1F3}
.lhx-inc-row:last-child{border-bottom:0}
.lhx-inc-head{display:flex; align-items:center; gap:13px; width:100%; padding:13px 2px; background:none; border:0; text-align:left}
button.lhx-inc-head{cursor:pointer}
.lhx-inc-ico{flex:none; width:42px; height:42px; border-radius:9px; display:grid; place-items:center; background:var(--lh-teal-soft)}
.lhx-inc-ico img{display:block}
.lhx-inc-tx{flex:1; min-width:0; display:grid; gap:2px}
.lhx-inc-tx .nm{font:600 13.5px/1.35 Inter; color:#152A32}
.lhx-inc-tx .ct{font:400 12px/1.3 Inter; color:#7C8A93}
.lhx-chev{flex:none; width:26px; height:26px; border-radius:50%; border:1px solid #D8E0E4; display:grid; place-items:center; color:#7C8A93; font-size:12px; transition:transform .15s}
.lhx-inc-row.is-open .lhx-chev{transform:rotate(180deg); color:var(--lh-teal); border-color:var(--lh-teal)}
.lhx-inc-mk{list-style:disc; margin:0 0 14px 57px; padding:0 12px 0 16px; columns:2; column-gap:32px; font:400 13px/2 Inter; color:#3D4E58}
.lhx-inc-mk li{break-inside:avoid}

/* ── Booking steps (vertical, dashed connector) ── */
.lhx-steps{list-style:none; margin:12px 0 0; padding:0}
.lhx-step{position:relative; display:flex; gap:14px; padding:0 0 22px}
.lhx-step:last-child{padding-bottom:0}
.lhx-step .n{flex:none; width:34px; height:34px; border-radius:50%; background:var(--lh-teal-soft); color:var(--lh-teal); display:grid; place-items:center; font:700 13px/1 Inter; position:relative; z-index:1}
.lhx-step::before{content:''; position:absolute; left:16px; top:34px; bottom:0; border-left:1.5px dashed #CFDBE0}
.lhx-step:last-child::before{display:none}
.lhx-step .tx b{display:block; font:700 13.5px/1.4 Inter; color:#152A32; margin-bottom:3px}
.lhx-step .tx p{margin:0; font:400 13px/1.6 Inter; color:#54646E; max-width:60ch}

/* ── Related package cards ── */
.lhx-rel{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin-top:12px}
.lhx-rel-card{display:flex; flex-direction:column; gap:6px; background:#fff; border:1px solid #E5EAED; border-radius:10px; padding:16px; text-decoration:none; transition:border-color .15s, box-shadow .15s}
.lhx-rel-card:hover{border-color:var(--lh-teal); box-shadow:0 4px 14px rgba(15,94,110,.10)}
.lhx-rel-card .nm{font:700 14.5px/1.35 Inter; color:#152A32}
.lhx-rel-card .inc{font:600 12px/1.55 Inter; color:var(--lh-teal)}
.lhx-rel-card .mt{font:400 12px/1.5 Inter; color:#7C8A93}
.lhx-rel-card .pr{display:flex; align-items:center; gap:8px; margin-top:auto; padding-top:8px}
.lhx-rel-card .pr b{font:700 16px/1 Inter; color:#152A32}
.lhx-rel-card .pr s{font:400 12px/1 Inter; color:var(--lh-strike)}
.lhx-rel-card .pr em{font-style:normal; background:var(--lh-orange-soft); color:var(--lh-orange); font:700 10.5px/1 Inter; padding:3px 8px; border-radius:999px}

/* ── FAQ ── */
.lhx-faq-list{list-style:none; margin:4px 0 0; padding:0}
.lhx-faq-list li{border-bottom:1px solid #EDF1F3}
.lhx-faq-list li:last-child{border-bottom:0}
.lhx-faq-q{margin:0; font:inherit}
.lhx-faq-list button{width:100%; display:flex; justify-content:space-between; align-items:center; gap:14px; background:none; border:0; padding:14px 2px; cursor:pointer; text-align:left; font:600 13.5px/1.45 Inter; color:#152A32}
.lhx-faq-list button em{font-style:normal; flex:none; font:400 18px/1 Inter; color:var(--lh-teal)}
.lhx-faq-list p{margin:0; padding:0 26px 14px 2px; font:400 13px/1.7 Inter; color:#54646E; max-width:72ch}

/* ── Offer rail ── */
.lhx-side{position:sticky; top:84px; display:grid; gap:14px}
.lhx-offer{position:relative; padding:18px 18px 16px}
.lhx-ribbon{position:absolute; top:16px; right:0; background:var(--lh-orange); color:#fff; font:700 11px/1 Inter; padding:5px 10px 5px 12px; border-radius:4px 0 0 4px}
.lhx-offer-eyebrow{margin:0 0 8px; font:600 11.5px/1 Inter; color:#7C8A93; text-transform:uppercase; letter-spacing:.05em}
.lhx-offer-price{display:flex; align-items:baseline; gap:9px; margin:0; flex-wrap:wrap}
.lhx-offer-price b{font:800 26px/1 Inter; color:#152A32}
.lhx-offer-price s{font:400 14px/1 Inter; color:var(--lh-strike)}
.lhx-offer-price .per{font:400 12px/1 Inter; color:#7C8A93}
.lhx-members{display:grid; gap:5px; margin-top:12px; font:600 11px/1 Inter; color:#7C8A93; text-transform:uppercase; letter-spacing:.04em}
.lhx-members select{width:100%; padding:10px 12px; border:1px solid #D8E0E4; border-radius:7px; background:#fff; font:500 13.5px/1 Inter; color:#152A32}
.lhx-members-note{margin:8px 0 0; font:400 12px/1.5 Inter; color:#7C8A93}
/* ── Group pricing (packages) — Healthians-parity offer card ── */
.lhx-offer--grp{background:#FFF7E6; border:1px solid #EAEAEA; border-radius:12px; padding:14px 22px 18px}
.lhx-offer--grp .lhx-offer-eyebrow{font:400 15px/1.3 Inter; color:#181818; text-transform:none; letter-spacing:0; margin:0 0 3px}
.lhx-offer-pp{margin:0 0 2px; font:600 13px/1.4 Inter; color:#2297BE}
.lhx-offer--grp .lhx-offer-price{gap:8px}
.lhx-offer--grp .lhx-offer-price b{font:700 22px/1.3 Inter; color:#252525}
.lhx-offer--grp .lhx-offer-price s{font:400 16px/1.2 Inter; color:#6D787D}
.lhx-mdd{position:relative; margin-top:12px}
.lhx-mdd-btn{display:flex; align-items:center; justify-content:center; gap:9px; width:100%; padding:12px 18px; background:#fff; border:1px solid #8E8E8E; border-radius:12px; font:500 14px/1.4 Inter; color:#181818; cursor:pointer}
.lhx-mdd-btn em{width:8px; height:8px; margin-top:-4px; border-right:1.8px solid #181818; border-bottom:1.8px solid #181818; transform:rotate(45deg)}
.lhx-mdd-btn[aria-expanded="true"] em{transform:rotate(225deg); margin-top:4px}
.lhx-mdd-overlay{position:fixed; inset:0; z-index:59; background:transparent}
.lhx-mdd-list{box-shadow:0 10px 30px rgba(21,42,50,.18)}
.lhx-mdd-list{position:absolute; top:calc(100% + 6px); left:50%; transform:translateX(-50%); min-width:100%; width:max-content; z-index:60; margin:0; padding:10px; list-style:none; background:rgba(0,0,0,.32); border-radius:12px; display:grid; gap:8px}
.lhx-mdd-list li button{display:flex; align-items:center; gap:10px; width:100%; background:#fff; border:1.5px solid #fff; border-radius:8px; padding:13px 16px; font:400 15.5px/1.3 Inter; color:#333; cursor:pointer}
.lhx-mdd-list li.sel button{border-color:var(--lh-teal); background:#EFFBFB}
.lhx-mdd-list .rad{flex:none; width:16px; height:16px; border:2px solid #9AA6AC; border-radius:50%; background:#fff}
.lhx-mdd-list li.sel .rad{border-color:var(--lh-teal); box-shadow:inset 0 0 0 3px #fff; background:var(--lh-teal)}
.lhx-mdd-list .lab{flex:1; text-align:left; white-space:nowrap}
.lhx-mdd-list .pr{display:flex; align-items:baseline; gap:7px; font:700 15px/1 Inter; color:#252525; white-space:nowrap}
.lhx-mdd-list .pr s{font:400 12.5px/1 Inter; color:#E03E3E}
.lhx-nudge{margin:10px 0 0; padding:0 0 4px; text-align:center; font:500 13px/1.55 Inter; color:#000}
.lhx-nudge b{font-weight:600}
.lhx-nudge span{color:#2297BE; font-weight:600}
.lhx-offer--grp .lhx-book{border-radius:10px; font:600 17px/1.2 Inter; padding:12px 16px}
.lhx-offer .lhx-book{width:100%; margin-top:14px; padding:13px 16px; font-size:14.5px}
.lhx-offer-pill{display:flex; align-items:center; gap:8px; margin-top:12px; background:var(--lh-teal-soft); color:var(--lh-teal); border-radius:999px; padding:8px 13px; font:600 11.5px/1.35 Inter}
.lhx-offer-pill svg{flex:none}
.lhx-offer-row{display:flex; align-items:center; gap:9px; margin-top:14px; padding-top:13px; border-top:1px solid #EDF1F3; font:600 12.5px/1.4 Inter; color:#152A32}
.lhx-offer-row a{color:var(--lh-teal)}
.lhx-incart{display:grid; gap:9px; margin-top:14px}
.lhx-incart .ok{font:600 13px/1.2 Inter; color:var(--lh-teal)}
.lhx-viewcart{width:100%; padding:11px 16px; background:#fff; border:1.5px solid var(--lh-teal); color:var(--lh-teal); border-radius:7px; font:600 13.5px/1 Inter; cursor:pointer}
.lhx-expert{padding:18px}
.lhx-expert b{display:block; font:700 14.5px/1.35 Inter; color:#152A32; margin-bottom:5px}
.lhx-expert p{margin:0 0 12px; font:400 12.5px/1.6 Inter; color:#6B7A84}
.lhx-chat{display:flex; align-items:center; justify-content:center; gap:8px; width:100%; border:1.5px solid #22B15E; color:#1B9950; background:#fff; border-radius:7px; padding:11px 14px; font:600 13.5px/1 Inter; text-decoration:none}
.lhx-chat:hover{background:#F0FBF4}

/* ── Mobile sticky bar / notfound ── */
.lhx-sticky{position:fixed; left:0; right:0; bottom:0; z-index:40; display:none; align-items:center; gap:12px; background:#fff; border-top:1px solid #E5EAED; padding:10px 16px calc(10px + env(safe-area-inset-bottom))}
.lhx-sticky .tx{flex:1; display:grid; gap:3px}
.lhx-sticky .pr{display:flex; align-items:baseline; gap:8px; white-space:nowrap}
.lhx-sticky .pr b{font:700 18px/1 Inter; color:#152A32}
.lhx-sticky .pr s{font:400 12.5px/1 Inter; color:var(--lh-strike)}
.lhx-sticky .sub{font:400 11.5px/1 Inter; color:#7C8A93}
.lhx-sticky button{background:var(--lh-teal); color:#fff; border:0; border-radius:999px; padding:13px 24px; font:600 14px/1 Inter; white-space:nowrap; cursor:pointer}
.lhx-notfound{max-width:640px; margin:0 auto; padding:80px 16px; text-align:center}
.lhx-notfound a{color:var(--lh-teal)}

@media (max-width:980px){
  .lhx-grid{grid-template-columns:1fr}
  .lhx-side{display:none}
  .lhx-sticky{display:flex}
  .lhx main{padding:0 12px 84px}
  .lhx-card{padding:18px 16px}
  .lhx-hero-tx h1{font-size:19px}
  .lhx-count .n{width:36px; height:36px; font-size:15px}
  .lhx-meta{grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px 10px}
  .lhx-trust{gap:10px}
  .lhx-trust li{height:48px; padding:0 14px 0 11px}
  .lhx-rel{grid-template-columns:1fr}
  .lhx-inc-mk{columns:1; margin-left:22px}
}

/* ── lhb: bundle detail page (/lab-at-home/bundle/?t=…) ──────────────── */
.lhb-overlap {
  margin: 12px 0 0; padding: 10px 14px; border-radius: 10px;
  background: #f2f8f4; border: 1px solid #d7e8dc; color: #3c5a46; font-size: 14px;
}
.lhb-overlap b { color: #2c4a36; }
.lhb-acc { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.lhb-acc-item { border: 1px solid #e3e8e9; border-radius: 12px; overflow: hidden; }
.lhb-acc-item.is-open { border-color: #bfdce2; }
.lhb-acc-head {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  width: 100%; border: 0; background: #fff; cursor: pointer; text-align: left;
  padding: 14px 16px; font: 600 15px/1.4 Inter, sans-serif; color: #1a2b32;
}
.lhb-acc-item.is-open .lhb-acc-head { background: #edf7f9; }
.lhb-acc-head em { font-style: normal; color: #0F5E6E; font-size: 18px; line-height: 1; }
.lhb-acc-body { padding: 4px 16px 16px; }
.lhb-acc-body > p { color: #33415c; font-size: 14.5px; line-height: 1.7; margin: 10px 0 0; }
.lhb-acc-body h3 { font: 600 14px/1.4 Inter, sans-serif; color: #1a2b32; margin: 16px 0 6px; }
.lhb-acc-body .lhx-deep-block { margin-top: 4px; }
.lhb-mini-faq { margin: 6px 0; }
.lhb-mini-faq summary { cursor: pointer; font-weight: 500; color: #33415c; font-size: 14px; }
.lhb-mini-faq p { color: #475569; font-size: 13.5px; line-height: 1.65; margin: 6px 0 0 16px; }
@media (max-width: 720px) {
    }

/* Hero search (Task 1; hero v3 keeps the sticky-band handoff) */
.lh-stickyhead--hidden{display:none}
.lh-hero2-search .lh-searchwrap{position:relative; max-width:none}

/* FAQ block reuses service-detail-v2 (bd-sd2) styles, which are scaled for
   service pages — shrink to the lab landing's denser type scale. */
.lh .bd-sd2-faq{padding:52px 0}
.lh .bd-sd2-faq h2{font-size:clamp(24px, 6vw, 34px)}
.lh .bd-sd2-faq .bd-body{font-size:14.5px}
.lh .bd-sd2-faq .bd-faq-row button{font-size:16.5px; padding:17px 0}
.lh .bd-sd2-faq .bd-faq-row p{font-size:14px; margin:0 0 17px}
.lh .bd-sd2-faq .bd-eyebrow{margin-bottom:12px}

/* Anchor scrolls (category tiles → sections) must clear the fixed header +
   sticky search overlay, else the section title lands hidden behind them. */
.lh-section{scroll-margin-top:calc(var(--lh-hdr-h, 64px) + 82px)}

/* Category tiles (Task 2) */
.lh-cattiles{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;max-width:1100px;margin:18px auto 0;padding:0 14px}
.lh-cattile{position:relative;background:var(--lh-white);border:1px solid var(--lh-line);border-radius:var(--lh-r-lg);
  padding:16px 12px;display:flex;flex-direction:column;align-items:center;gap:8px;cursor:pointer;font:inherit;color:var(--lh-ink)}
.lh-cattile:hover{border-color:var(--lh-teal)}
.lh-cattile img{width:44px;height:44px;object-fit:contain}
.lh-cattile .nm{font-size:13px;font-weight:600}
.lh-cattile.is-soon{cursor:default;opacity:.55}
.lh-cattile.is-soon:hover{border-color:var(--lh-line)}
.lh-cattile .ribbon{position:absolute;top:8px;right:8px;font-size:10px;font-weight:700;letter-spacing:.02em;
  color:var(--lh-orange);background:var(--lh-orange-soft);border-radius:var(--lh-r-pill);padding:2px 8px}
@media (max-width:900px){
  .lh-cattiles{grid-template-columns:repeat(4,1fr);gap:8px}
  .lh-cattile{padding:10px 4px;gap:6px}
  .lh-cattile img{width:34px;height:34px}
  .lh-cattile .nm{font-size:11px;line-height:1.25;text-align:center}
  .lh-cattile .ribbon{top:4px;right:4px;font-size:8px;padding:2px 5px}
}

/* Dense cards (Task 3; rail tab strip removed by owner 2026-07-25) */
.lh-card--dense{position:relative;padding:14px 14px 12px;overflow:visible}
.lh-card--dense .lh-card-count{position:absolute;top:0;right:14px;background:var(--lh-teal-soft);
  color:var(--lh-teal);border-radius:0 0 var(--lh-r-md) var(--lh-r-md);padding:6px 10px;text-align:center;line-height:1.05}
.lh-card--dense .lh-card-count b{display:block;font-size:18px}
.lh-card--dense .lh-card-count i{font-style:normal;font-size:10px;font-weight:600}
.lh-card--dense .nm{padding:0 56px 0 0;min-height:2.6em}
.lh-card--dense .nm a{color:inherit;text-decoration:none}
.lh-card-inc{font-size:12px;color:var(--lh-sand);margin:8px 0;line-height:1.45}
.lh-card-inc b{color:var(--lh-ink)}
.lh-card-inc .more{color:var(--lh-teal);font-weight:600;text-decoration:none;
  background:none;border:0;padding:0;font-size:inherit;font-family:inherit;cursor:pointer}
.lh-card-chips{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px;padding:0}
.lh-card-chips li{font-size:11px;color:var(--lh-ink);background:var(--lh-bg);border:1px solid var(--lh-line);
  border-radius:var(--lh-r-pill);padding:3px 9px}
.lh-card--dense .pr{padding:0 0 10px}
.lh-card--dense .lh-card-cta{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.lh-card--dense .lh-card-cta .book{display:block;text-align:center;background:var(--lh-teal);color:#fff;
  border-radius:var(--lh-r-sm);padding:10px 12px;font:700 12px Inter;text-decoration:none}
.lh-card--dense .lh-card-cta .book:hover{background:var(--lh-ink)}
.lh-card--dense .lh-card-compare{width:100%;margin:10px 0 0;padding:10px 0 0}
/* Tick-to-compare inside a panel card (browse): hairline above like the old
   compare slot, visible on mobile too (the legacy button was desktop-only).
   Extra specificity: the .lh-sr-cmpchk base rule sits later in the file. */
.lh-card.lh-card--dense .lh-card-cmpchk{
  width:100%;
  margin:10px 0 0;
  padding:10px 0 0;
  border-top:1px solid var(--lh-line);
  justify-content:center;
}

/* Why-choose numerals + callback band (Task 5) */
.lh-why-grid{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:18px auto 0;padding:0 14px;max-width:1180px}
.lh-why-grid li{background:var(--lh-white);border:1px solid var(--lh-line);border-radius:var(--lh-r-lg);padding:18px 16px 16px;position:relative}
.lh-why-grid .n{font-family:Fraunces,Georgia,serif;font-size:44px;line-height:1;color:var(--lh-teal);opacity:.16;
  position:absolute;top:10px;right:14px;font-weight:600}
.lh-why-grid h3{margin:0 0 4px;font:600 14px Inter;color:var(--lh-ink)}
.lh-why-grid p{margin:0;font:400 12.5px/1.5 Inter;color:var(--lh-sand)}
.lh-callback{background:var(--lh-teal);margin:26px 0 0;padding:22px 14px}
.lh-callback form{max-width:720px;margin:0 auto;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.lh-callback b{color:#fff;font:700 15px Inter}
.lh-callback input{flex:1;min-width:180px;border:0;border-radius:var(--lh-r-md);padding:11px 13px;font:14px Inter;color:var(--lh-ink)}
.lh-callback button{background:var(--lh-orange);color:#fff;border:0;border-radius:var(--lh-r-md);padding:11px 16px;font:700 13px Inter;cursor:pointer}
.lh-callback .err{max-width:720px;margin:6px auto 0;color:var(--lh-orange-soft);font:400 12px Inter}
@media (max-width:900px){.lh-why-grid{grid-template-columns:1fr 1fr}.lh-callback form{flex-direction:column;align-items:stretch}}

/* ── Search coverage highlight + package compare (owner 2026-07-27) ── */
.lh-hl{color:#1F7A4D;font-weight:600}
.lh-pm-subs p.lh-hl::before{content:'✓ ';font-weight:700}
.lh-ss-partof{display:block;font:400 11px Inter;color:var(--lh-sand);margin-top:1px}
.lh-sr-cmpchk{display:inline-flex;align-items:center;margin:2px 0 10px;cursor:pointer;user-select:none;position:relative}
.lh-sr-cmpchk input{position:absolute;opacity:0;pointer-events:none}
.lh-sr-cmpchk span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--lh-line);border-radius:999px;padding:7px 14px;font:600 12.5px Inter;color:var(--lh-teal);background:var(--lh-white)}
.lh-sr-cmpchk.on span{background:var(--lh-teal);border-color:var(--lh-teal);color:#fff}
.lh-sr-cmpchk input:focus-visible + span{box-shadow:0 0 0 3px var(--lh-teal-soft)}
.lh-sr-cmpchk.is-disabled{opacity:.45;cursor:not-allowed}
.lh-cmpbar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(88px + env(safe-area-inset-bottom));z-index:60;display:flex;align-items:center;gap:8px;background:var(--lh-ink);color:#fff;border:1px solid transparent;border-radius:999px;padding:6px 6px 6px 10px;box-shadow:0 12px 34px -12px rgba(8,56,70,.55);font:500 13px Inter;white-space:nowrap;max-width:calc(100vw - 24px);transition:background .2s ease,color .2s ease,border-color .2s ease}
/* Over the dark footer the ink bar vanishes — flip to a light skin. */
.lh-cmpbar.is-light{background:var(--lh-white);color:var(--lh-ink);border-color:var(--lh-line);box-shadow:0 12px 34px -12px rgba(0,0,0,.45)}
.lh-cmpbar.is-light .lh-cmpbar-clear{background:rgba(8,56,70,.08);color:var(--lh-ink)}
.lh-cmpbar > span{padding:4px 8px}
.lh-cmpbar-go{background:var(--lh-teal);color:#fff;border:0;border-radius:999px;padding:10px 18px;font:700 13px Inter;cursor:pointer;white-space:nowrap}
.lh-cmpbar-clear{width:34px;height:34px;flex:none;border-radius:50%;background:rgba(255,255,255,.14);border:0;color:#fff;font:400 17px/1 Inter;cursor:pointer;display:grid;place-items:center}
.lh-cmp{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:101;background:#fff;border-radius:16px;max-width:860px;width:calc(100vw - 28px);max-height:84vh;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px rgba(15,94,110,.25)}
.lh-cmp-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--lh-line)}
.lh-cmp-head h3{margin:0;font:600 17px Inter;color:var(--lh-ink)}
.lh-cmp-scroll{overflow:auto}
.lh-cmp-table{border-collapse:collapse;width:100%;min-width:520px}
.lh-cmp-table th,.lh-cmp-table td{padding:9px 12px;border-bottom:1px solid var(--lh-line);text-align:left;font:400 13px Inter;color:var(--lh-ink);vertical-align:top}
.lh-cmp-table thead th{position:sticky;top:0;background:#fff;z-index:1;border-bottom:2px solid var(--lh-line)}
.lh-cmp-table tbody th{font-weight:400;color:var(--lh-ink);max-width:220px;overflow-wrap:anywhere}
.lh-cmp-corner{min-width:130px}
.lh-cmp-tag{display:inline-block;background:var(--lh-teal-soft);color:var(--lh-teal);border-radius:999px;padding:2px 8px;font:700 10px/1.6 Inter;letter-spacing:.04em;text-transform:uppercase;margin-bottom:5px}
.lh-cmp-name{display:block;font:600 14px Inter;color:var(--lh-ink);margin-bottom:4px}
.lh-cmp-price{display:block;margin-bottom:8px}
.lh-cmp-price b{font:700 15px Inter;color:var(--lh-ink);white-space:nowrap}
.lh-cmp-price s{margin-left:6px;color:var(--lh-sand);font:400 12px Inter;white-space:nowrap}
.lh-cmp-book{background:var(--lh-teal);color:#fff;border:0;border-radius:var(--lh-r-md);padding:7px 12px;font:700 12px Inter;cursor:pointer;white-space:nowrap}
.lh-cmp-table td.on{color:#1F7A4D;font-weight:500}
.lh-cmp-table td.off{color:var(--lh-sand)}
.lh-cmp-table tbody th.lh-hl{font-weight:700;color:#1F7A4D}
.lh-cmp-hlrow th,.lh-cmp-hlrow td{background:rgba(31,122,77,.05)}
.lh-cmp-sect th{font:700 10.5px/1.2 Inter;text-transform:uppercase;letter-spacing:.08em;color:var(--lh-sand);background:var(--lh-bg);padding:7px 12px}
@media (max-width:700px){
  .lh-cmp-table{min-width:0}
  .lh-cmp-corner{min-width:0}
  .lh-cmp-table th,.lh-cmp-table td{padding:8px 9px;font-size:12.5px}
  .lh-cmp-table tbody th{width:42%}
  .lh-cmp-name{font-size:13px}
  .lh-cmp-book{padding:6px 10px}
}

/* ── Edit-selection sheet (bundle page) ────────────────────────────────────
   Price breakdown for the current bundle: one row per selection, remove in
   place, add icon jumps back to search. Six rows are visible; anything past
   that scrolls with no visible scrollbar, so the bottom fade is the only cue
   more exists — it is switched on from JS only when the list actually
   overflows. Logical properties throughout so the AR mirror needs no rules. */
.lhb-edit{
  --lhb-erow:58px; --lhb-egap:8px;
  position:fixed; z-index:101;
  inset-inline:0; bottom:0;
  max-width:460px; margin-inline:auto;
  background:var(--lh-white);
  border-radius:18px 18px 0 0;
  box-shadow:0 -18px 48px rgba(15,94,110,.22);
  display:flex; flex-direction:column;
  animation:lhb-edit-up .34s cubic-bezier(.22,1,.36,1);
}
@keyframes lhb-edit-up{from{transform:translateY(14px);opacity:0}}
@keyframes lhb-edit-fade{from{opacity:0}}
@media (prefers-reduced-motion:reduce){.lhb-edit{animation:none}}

/* The tap that opens the sheet fires a second, ghost click once the sheet is
   painted — on a 390px phone the trigger button sits right on top of the add
   icon at some scroll offsets, so the sheet opened and the page jumped to
   search. Stay inert until that gesture is spent. */
.lhb-edit.is-arming, .lh-modal-scrim.is-arming{pointer-events:none}

@media (min-width:720px){
  .lhb-edit{
    inset-inline:auto; inset-inline-start:50%; bottom:auto; top:50%;
    transform:translate(-50%,-50%); margin-inline:0;
    width:min(460px, calc(100vw - 28px));
    border-radius:16px;
    box-shadow:0 24px 64px rgba(15,94,110,.25);
    animation-name:lhb-edit-fade;
  }
  [dir="rtl"] .lhb-edit{transform:translate(50%,-50%)}
}

.lhb-edit-head{
  position:relative;
  display:flex; align-items:center; gap:10px;
  padding:16px 56px 14px 18px;
  border-bottom:1px solid var(--lh-line);
}
[dir="rtl"] .lhb-edit-head{padding:16px 18px 14px 56px}
.lhb-edit-head .lh-pm-close{top:16px}
[dir="rtl"] .lhb-edit-head .lh-pm-close{right:auto; left:14px}
.lhb-edit-ttl{flex:1; min-width:0}
.lhb-edit-ttl h3{margin:0; font:600 17px/1.2 Inter, sans-serif; color:var(--lh-ink)}
.lhb-edit-ttl span{display:block; margin-top:3px; font:400 12.5px Inter, sans-serif; color:var(--lh-sand)}
.lhb-edit-add{
  flex:none; height:34px;
  display:inline-flex; align-items:center; gap:5px;
  padding:0 13px;
  border:1.5px solid var(--lh-teal); border-radius:999px;
  background:var(--lh-teal-soft); color:var(--lh-teal);
  font:700 13px Inter, sans-serif;
  cursor:pointer; transition:background .18s cubic-bezier(.22,1,.36,1);
}
.lhb-edit-add svg{margin-block-start:1px}
.lhb-edit-add:hover{background:#D8E7E9}

.lhb-edit-list{
  background:#F4F7F8;
  padding:12px;
  overflow-y:auto; overscroll-behavior:contain;
  max-height:calc(var(--lhb-erow) * 6 + var(--lhb-egap) * 5 + 24px);
  scrollbar-width:none; -ms-overflow-style:none;
}
.lhb-edit-list::-webkit-scrollbar{display:none}
.lhb-edit-list.is-scrollable{
  -webkit-mask-image:linear-gradient(to bottom, #000 calc(100% - 30px), transparent);
  mask-image:linear-gradient(to bottom, #000 calc(100% - 30px), transparent);
}

.lhb-edit-row{
  display:flex; align-items:center; gap:12px;
  min-height:var(--lhb-erow);
  padding:10px 8px 10px 14px;
  background:var(--lh-white); border-radius:10px;
  box-shadow:0 2px 8px rgba(15,94,110,.05);
}
[dir="rtl"] .lhb-edit-row{padding:10px 14px 10px 8px}
.lhb-edit-row + .lhb-edit-row{margin-top:var(--lhb-egap)}
.lhb-edit-row .nm{
  flex:1; min-width:0;
  font:600 13.5px/1.35 Inter, sans-serif; color:var(--lh-ink);
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
}
.lhb-edit-row .nm em{
  display:inline-block; margin-inline-start:6px;
  background:var(--lh-teal-soft); color:var(--lh-teal);
  border-radius:999px; padding:1px 7px;
  font:700 9.5px/1.7 Inter, sans-serif; letter-spacing:.05em; text-transform:uppercase; font-style:normal;
  vertical-align:2px;
}
.lhb-edit-row .pr{flex:none; font:700 14px Inter, sans-serif; color:var(--lh-ink); white-space:nowrap}
.lhb-edit-row .rm{
  flex:none; width:34px; height:34px;
  display:inline-flex; align-items:center; justify-content:center;
  border:0; border-radius:50%; background:none; color:var(--lh-sand);
  cursor:pointer; transition:background .18s cubic-bezier(.22,1,.36,1), color .18s cubic-bezier(.22,1,.36,1);
}
.lhb-edit-row .rm:hover{background:#FBEDEC; color:#B0524C}
.lhb-edit-empty{margin:22px 6px; text-align:center; font:400 13.5px/1.6 Inter, sans-serif; color:var(--lh-sand)}

.lhb-edit-foot{
  display:flex; align-items:center; justify-content:space-between; gap:14px;
  padding:14px 18px calc(14px + env(safe-area-inset-bottom));
  border-top:1px solid var(--lh-line);
}
.lhb-edit-foot .sum{display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; min-width:0}
.lhb-edit-foot .sum b{font:700 19px Inter, sans-serif; color:var(--lh-ink); white-space:nowrap}
.lhb-edit-foot .sum .was{font:400 13px Inter, sans-serif; color:var(--lh-sand); text-decoration:line-through; white-space:nowrap}
.lhb-edit-foot .sum em{
  font:700 10.5px/1.7 Inter, sans-serif; font-style:normal; letter-spacing:.04em; text-transform:uppercase;
  color:#4F7A5A; background:#EAF2EC; border-radius:999px; padding:2px 8px; white-space:nowrap;
}
.lhb-edit-done{
  flex:none; background:var(--lh-teal); color:#fff;
  border:0; border-radius:var(--lh-r-md); padding:12px 26px;
  font:700 14px Inter, sans-serif; cursor:pointer;
  transition:background .18s cubic-bezier(.22,1,.36,1);
}
.lhb-edit-done:hover{background:#0B4A57}
