/* =========================================================================
   Todays Med Clinic — global styles
   Theme tokens, fonts, animations, component states, and responsive rules.
   Section layout lives inline in index.html (faithful to the approved design);
   this file holds everything cross-cutting and the desktop/mobile breakpoints.
   ========================================================================= */

:root {
  /* Brand accent — "Violet" theme from the original design */
  --accent: oklch(0.56 0.16 292);
  --accent-deep: oklch(0.46 0.14 293);
  --accent-tint: oklch(0.95 0.035 292);
  --radius: 20px;
}

* { box-sizing: border-box; }

html { scroll-behavior: smooth; }

/* Lock horizontal page scroll while keeping the sticky nav + carousels working.
   overflow-x:hidden on <html> ONLY is the iOS-safe combo (clip needs iOS 16+ and
   fell back to scrollable on older Safari; hidden on <body> too breaks sticky). */
html { overflow-x: hidden; overscroll-behavior-x: none; }
html { -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }   /* stop iOS Safari from inflating text and breaking layouts */
body { overscroll-behavior-x: none; }

body {
  margin: 0;
  font-family: 'Hanken Grotesk', system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  color: #14181F;
  background: #F6F8FB;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

a { color: inherit; text-decoration: none; }

img { max-width: 100%; }

::selection { background: var(--accent-tint, #f0eafb); }

/* honour the OS "reduce motion" setting */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .001ms !important; transition-duration: .001ms !important; }
}

/* ---------- Keyframes ---------- */
@keyframes tmcfloat { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes tmcrise  { from{opacity:0;transform:translateY(18px)} to{opacity:1;transform:none} }
@keyframes tmcback  { from{opacity:0} to{opacity:1} }
@keyframes tmcpop   { from{opacity:0;transform:translateY(22px) scale(.985)} to{opacity:1;transform:none} }
@keyframes tmcslide { from{opacity:0;transform:translateX(40px)} to{opacity:1;transform:none} }

/* ---------- Brand logo (option A: "Box MED") ---------- */
.tmc-logo { display: inline-flex; align-items: center; gap: 7px; white-space: nowrap; }
.tmc-logo__side { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 18px; letter-spacing: -.02em; color: #14181F; }
.tmc-logo__med {
  font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 15.5px; letter-spacing: .03em;
  color: #fff; background: linear-gradient(160deg, #8a6bf0, #6a48d8);
  border-radius: 7px; padding: 3px 8px 4px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.3);
}
.tmc-logo--dark .tmc-logo__side { color: #fff; font-size: 16.5px; }
.tmc-logo--dark .tmc-logo__med { font-size: 14px; }

/* ---------- Interactive states ---------- */
.tmc-nav-link:hover { color: var(--accent-deep, oklch(.46 .14 293)) !important; }

.tmc-card { transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease; }
.tmc-card:hover,
.tmc-card:focus-visible {
  transform: translateY(-4px);
  box-shadow: 0 18px 40px -22px rgba(20,24,31,.28);
  border-color: var(--accent, oklch(.56 .16 292)) !important;
  outline: none;
}

/* ============ tile-grid catalog (variant) ============ */
/* Option B — single row of six (smaller tiles) */
.tmc-tilegrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; }
@media (min-width: 560px) { .tmc-tilegrid { grid-template-columns: repeat(3, 1fr); gap: 12px; } }
@media (min-width: 980px) { .tmc-tilegrid { grid-template-columns: repeat(6, 1fr); gap: 12px; } }
@media (min-width: 980px) { .tmc-tile-art { height: 104px; } .tmc-tile-name { font-size: 14px; } }

.tmc-tile {
  position: relative; background: #fff; border: 1px solid #E7EAEF; border-radius: 16px;
  overflow: hidden; cursor: pointer; display: flex; flex-direction: column;
}
/* the base .tmc-card lift is fine, but keep tiles calmer */
.tmc-tile:hover, .tmc-tile:focus-visible { transform: translateY(-3px) !important; }
.tmc-tile-art { position: relative; height: 124px; display: flex; align-items: center; justify-content: center; background: #fff; border-bottom: 1px solid #EEF1F5; }
.tmc-tile-art img { width: auto; max-width: 88%; object-fit: contain; display: block; mix-blend-mode: multiply; transition: opacity .15s ease; }
.tmc-tile-badge {
  position: absolute; top: 8px; left: 8px; z-index: 2;
  font-family: 'JetBrains Mono', monospace; font-size: 8.5px; letter-spacing: .05em; text-transform: uppercase;
  color: #fff; padding: 3px 8px; border-radius: 999px;
}
.tmc-tile-body { padding: 10px 12px 12px; display: flex; flex-direction: column; gap: 3px; flex: 1; }
.tmc-tile-cat {
  align-self: flex-start; font-family: 'JetBrains Mono', monospace; font-size: 8.5px; letter-spacing: .05em;
  padding: 2px 7px; border-radius: 5px; margin-bottom: 2px;
}
.tmc-tile-name { font-family: 'Sora','Hanken Grotesk', sans-serif; font-weight: 700; font-size: 15px; letter-spacing: -.015em; margin: 0; line-height: 1.15; color: #14181F; }
.tmc-tile-mech { font-family: 'JetBrains Mono', monospace; font-size: 10px; color: #8A93A2; line-height: 1.3; min-height: 26px; }
.tmc-tile-foot { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 9px; }
.tmc-tile-add {
  flex: none; border-radius: 999px; border: none; cursor: pointer;
  background: #14181F; color: #fff; font-family: 'Sora','Hanken Grotesk',sans-serif;
  font-size: 12.5px; font-weight: 700; line-height: 1; letter-spacing: -.01em;
  padding: 8px 13px; display: inline-flex; align-items: center; gap: 5px; white-space: nowrap;
  transition: background .15s ease;
}
.tmc-tile-add span { font-size: 15px; font-weight: 400; }
@media (max-width: 640px) { .tmc-tile-add { padding: 7px 11px; font-size: 11.5px; } }
.tmc-tile-add:hover { background: var(--card-accent, #7C5CE0); }

.tmc-cta { transition: transform .15s ease, box-shadow .2s ease, opacity .2s ease; }
.tmc-cta:hover { transform: translateY(-2px); box-shadow: 0 14px 30px -12px var(--accent, oklch(.56 .16 292)); }

.tmc-pill:hover {
  border-color: var(--accent, oklch(.56 .16 292)) !important;
  color: var(--accent-deep, oklch(.46 .14 293)) !important;
}

.tmc-quizopt { transition: box-shadow .15s ease, border-color .15s ease, background .15s ease; }
.tmc-quizopt:hover { box-shadow: 0 8px 22px -13px rgba(20,24,31,.32); }

.tmc-input:focus {
  border-color: var(--accent, oklch(.56 .16 292)) !important;
  box-shadow: 0 0 0 3px var(--accent-tint, #f0eafb);
}

.tmc-thumb:hover { border-color: var(--accent, oklch(.56 .16 292)) !important; }

.tmc-addbtn:hover { filter: brightness(1.06); }

/* clear keyboard focus everywhere for accessibility */
:focus-visible { outline: 2px solid var(--accent, oklch(.56 .16 292)); outline-offset: 2px; }
button:focus:not(:focus-visible) { outline: none; }

/* ---------- Range slider (estimator) ---------- */
input[type="range"] { -webkit-appearance: none; appearance: none; background: transparent; }
input[type="range"]::-webkit-slider-runnable-track { height: 6px; border-radius: 999px; background: #EEF0F4; }
input[type="range"]::-moz-range-track { height: 6px; border-radius: 999px; background: #EEF0F4; }
input[type="range"]::-webkit-slider-thumb {
  -webkit-appearance: none; appearance: none;
  width: 22px; height: 22px; margin-top: -8px; border-radius: 50%;
  background: var(--accent, oklch(.56 .16 292)); border: 3px solid #fff;
  box-shadow: 0 2px 8px -2px rgba(20,24,31,.4); cursor: pointer;
}
input[type="range"]::-moz-range-thumb {
  width: 22px; height: 22px; border-radius: 50%;
  background: var(--accent, oklch(.56 .16 292)); border: 3px solid #fff;
  box-shadow: 0 2px 8px -2px rgba(20,24,31,.4); cursor: pointer;
}

/* ---------- Mobile / desktop visibility ---------- */
.tmc-burger { display: none; }
.tmc-mobilecta { display: none; }
.tmc-mobile-menu[hidden] { display: none; }
.tmc-mobile-menu { display: flex; }

/* Tablet / mobile nav: < 820px */
@media (max-width: 820px) {
  .tmc-desk-nav { display: none !important; }
  .tmc-navcta   { display: none !important; }
  .tmc-navplan  { display: none !important; }
  .tmc-burger   { display: flex !important; }
  .tmc-mobilecta { display: flex !important; }
  body { padding-bottom: 76px; }   /* room for the sticky mobile CTA bar */
}

/* Phones: < 560px — tighten section padding, drop hero stat dividers */
@media (max-width: 560px) {
  .tmc-sec-pad  { padding-top: 52px !important; padding-bottom: 52px !important; }
  .tmc-hero-pad { padding-top: 40px !important; padding-bottom: 52px !important; }
  .tmc-hdiv     { display: none !important; }
}

/* ---------- Catalog: vial/pen format toggle ---------- */
.tmc-fmt {
  border: none; cursor: pointer; font-family: 'Hanken Grotesk', sans-serif;
  font-weight: 600; font-size: 14px; padding: 10px 22px; border-radius: 999px;
  background: transparent; color: #5B6472; transition: background .18s, color .18s;
  white-space: nowrap;
}
.tmc-fmt.is-active { background: var(--accent, oklch(.56 .16 292)); color: #fff; }
.tmc-fmt-img { transition: opacity .13s ease; }

/* ---------- Hero: full-width headline + ring, directly on the page (no boxes);
   only the row-2 cards are boxed ---------- */
.tmc-hero-top { display: grid; grid-template-columns: 1fr; }
.tmc-hero-main {
  padding: 0;
  display: grid; grid-template-columns: 1fr 1.1fr; gap: 28px; align-items: center;
}

/* ---------- Hero: goal hub (center card + floating pills + dashed spokes) ---------- */
.tmc-spot { width: 100%; max-width: 580px; margin: 0 auto; }
.tmc-hub { position: relative; width: 100%; aspect-ratio: 660/470; }
.tmc-hub-lines { position: absolute; inset: 0; width: 100%; height: 100%; }
.tmc-hub-lines line { stroke: #D5D9E2; stroke-width: 1.5; stroke-dasharray: 2.5 5; stroke-linecap: round; }

/* floating goal pills */
.tmc-hpill {
  position: absolute; transform: translate(-50%,-50%);
  display: inline-flex; align-items: center; gap: 9px; white-space: nowrap;
  font-family: inherit; font-size: 15px; font-weight: 600; letter-spacing: -.005em; color: #14181F;
  background: #fff; border: 1px solid #EDF0F4; border-radius: 999px;
  padding: 13px 20px; cursor: pointer;
  box-shadow: 0 10px 26px -14px rgba(20,24,31,.22);
  transition: border-color .15s ease, box-shadow .15s ease, color .15s ease;
}
.tmc-hpill svg { width: 18px; height: 18px; flex: none; }
.tmc-hpill:hover, .tmc-hpill.is-active {
  border-color: var(--accent, oklch(.56 .16 292));
  color: var(--accent-deep, oklch(.46 .14 293));
  box-shadow: 0 14px 32px -14px rgba(20,24,31,.35);
}

/* the central card: "Most popular" at rest, category preview on hover */
.tmc-hub-card {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 58%; min-height: 56%; border-radius: 26px;
  background: #fff; border: 1px solid #EDF0F4;
  box-shadow: 0 30px 65px -36px rgba(20,24,31,.35);
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 9px; text-align: center; padding: 24px 20px;
}
.tmc-wcenter-link { font-weight: 700; font-size: 13.5px; color: var(--accent-deep, oklch(.46 .14 293)); }
.tmc-wcenter-link:hover { text-decoration: underline; text-underline-offset: 3px; }
/* hovered-category center: plain-terms bullet points */
.tmc-wpoints { list-style: none; margin: 0; padding: 0; display: grid; gap: 5px; text-align: left; }
.tmc-wpoints li {
  position: relative; padding-left: 20px;
  font-size: 12.5px; line-height: 1.4; font-weight: 600; color: #14181F;
}
.tmc-wpoints li::before {
  content: "✓"; position: absolute; left: 0; top: 0;
  color: var(--accent, oklch(.56 .16 292)); font-weight: 800;
}

/* hovered-category center: one real product photo + a couple of lines */
.tmc-wlead { height: 74px; max-width: 84%; object-fit: contain; mix-blend-mode: multiply; }
.tmc-wlead-name { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 17px; letter-spacing: -.015em; color: #14181F; }
.tmc-wlead-name em { font-style: normal; font-weight: 600; font-size: 12px; color: #8A93A2; }
.tmc-wblurb {
  font-size: 12px; font-weight: 600; line-height: 1.45; color: #14181F; max-width: 92%;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
/* center-card type: bold, crisp black */
.tmc-disc-label {
  font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 16px; letter-spacing: -.015em;
  line-height: 1.15; color: #14181F; max-width: 94%; margin-bottom: 4px;
}
.tmc-disc-label.tmc-disc-cat { font-size: 15px; white-space: normal; }
.tmc-disc-vials { display: flex; align-items: flex-end; justify-content: center; gap: 10px; max-width: 100%; }
.tmc-disc-item { display: flex; flex-direction: column; align-items: center; gap: 5px; width: 88px; flex: none; }
.tmc-disc-item img { height: 82px; width: auto; mix-blend-mode: multiply; }
.tmc-disc-item span { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 11.5px; letter-spacing: -.015em; color: #14181F; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 86px; }
.tmc-disc-pen { height: 30px; width: 70%; object-fit: contain; mix-blend-mode: multiply; }
.tmc-disc-cap { font-family: 'Sora','Hanken Grotesk',sans-serif; font-size: 12.5px; font-weight: 700; letter-spacing: -.01em; color: #14181F; white-space: nowrap; max-width: 92%; line-height: 1.4; }
.tmc-disc-mut { font-size: 11.5px; font-weight: 700; color: #14181F; }

/* catalog dose chips — selectable strength; the picked one enlarges & repriced */
.tmc-dose {
  display: inline-block; font-family: 'JetBrains Mono', monospace; font-size: 10.5px;
  padding: 4px 8px; border-radius: 6px; white-space: nowrap; line-height: 1.2;
  background: var(--ctint, #EEF0F4); color: var(--cdeep, #3c434f);
  transition: transform .12s ease, box-shadow .12s ease;
}
.tmc-dose[data-dose] { cursor: pointer; }
.tmc-dose[data-dose]:hover { box-shadow: 0 3px 9px -4px rgba(20,24,31,.32); }
.tmc-dose.is-active {
  background: var(--cmain, #14181F); color: #fff; font-weight: 700;
}
.tmc-dose[data-dose].is-active {
  transform: scale(1.12); box-shadow: 0 6px 14px -5px rgba(20,24,31,.4); position: relative; z-index: 1;
}

/* pricing: highlight the plan the visitor has clicked (Advanced keeps its
   default outline; selection adds a stronger accent ring on top) */
.tmc-plan { transition: box-shadow .18s ease, border-color .18s ease; }
.tmc-plan.is-selected {
  border-color: var(--accent, oklch(.56 .16 292)) !important;
  box-shadow: 0 0 0 2px var(--accent, oklch(.56 .16 292)), 0 22px 46px -24px rgba(123,92,255,.55);
}

/* ---- category donut wheel (hero right) ---- */
.tmc-wheel { position: relative; width: 100%; max-width: 500px; margin: 0 0 0 auto; aspect-ratio: 1 / 1; }
.tmc-wheel-svg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.tmc-seg {
  fill: #ECE7FA; stroke: #F6F8FB; stroke-width: 3; cursor: pointer;
  transition: fill .18s ease;
}
.tmc-seg:hover, .tmc-seg.is-active { fill: var(--segtint, #DED4F7); }
.tmc-wheel-labels { position: absolute; inset: 0; pointer-events: none; }
.tmc-seg-label {
  position: absolute; transform: translate(-50%,-50%);
  display: flex; flex-direction: column; align-items: center; gap: 3px;
  width: 80px; text-align: center; color: #4E4867;
  transition: color .15s ease;
}
.tmc-seg-label svg { width: 22px; height: 22px; }
.tmc-seg-label span {
  font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700;
  font-size: 12.5px; letter-spacing: -.01em; line-height: 1.15; color: #14181F;
}
.tmc-seg-label.is-active { color: var(--accent-deep, oklch(.46 .14 293)); }

/* center hub — raised white disc holding the "Most popular" / category preview */
.tmc-wheel-center {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%,-50%);
  width: 53%; aspect-ratio: 1 / 1; border-radius: 50%;
  background: #fff; box-shadow: 0 20px 48px -20px rgba(20,24,31,.34), 0 0 0 1px #EFECF9;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 6px; text-align: center; padding: 8%;
}
/* center content sized to fit the round hub — two GLP-1 vials side by side
   (a bit larger now there are only two), with the Retatrutide pen featured
   prominently underneath so pens read as a first-class format */
.tmc-wheel-center .tmc-disc-vials { gap: 10px; }
.tmc-wheel-center .tmc-disc-item { width: 80px; }
.tmc-wheel-center .tmc-disc-item img { height: 64px; }
.tmc-wheel-center .tmc-disc-item span { font-size: 10.5px; max-width: 80px; }
.tmc-disc-penwrap { display: flex; flex-direction: column; align-items: center; gap: 3px; width: 100%; }
.tmc-wheel-center .tmc-disc-pen { height: auto; width: 92%; max-width: 210px; object-fit: contain; mix-blend-mode: multiply; }
.tmc-disc-penname { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 10.5px; letter-spacing: -.01em; color: #14181F; }
.tmc-wheel-center .tmc-disc-label { font-size: 14px; margin-bottom: 2px; }
.tmc-wheel-center .tmc-disc-cap { font-size: 11px; white-space: normal; }
.tmc-wheel-center .tmc-disc-mut { font-size: 10px; }
.tmc-wheel-center .tmc-wlead { height: 60px; }
.tmc-wheel-center .tmc-wpoints li { font-size: 11px; padding-left: 17px; }
.tmc-wheel-center .tmc-wcenter-link { font-size: 12px; }

@media (max-width: 640px) {
  /* let the wheel bleed to the screen edges so the whole circle — and its
     labels/prices — scale up, without shifting the headline or CTA above it */
  .tmc-wheel { max-width: none; width: auto; margin: 10px -21px 2px; }
  .tmc-seg-label { width: 62px; gap: 2px; }
  .tmc-seg-label svg { width: 17px; height: 17px; }
  .tmc-seg-label span { font-size: 9.5px; line-height: 1.1; }
  /* FIXED circle (equal width & height) so the tap-preview can never balloon
     into an oval; content is sized to fit and clipped as a last resort */
  .tmc-wheel-center {
    width: 59%; height: 59%; aspect-ratio: auto;
    padding: 5%; gap: 4px; overflow: hidden;
  }
  /* resting "Most popular" — bigger vials + labels */
  .tmc-wheel-center .tmc-disc-item { width: 66px; }
  .tmc-wheel-center .tmc-disc-item img { height: 50px; }
  .tmc-wheel-center .tmc-disc-item span { font-size: 9.5px; max-width: 66px; }
  .tmc-wheel-center .tmc-disc-vials { gap: 10px; }
  .tmc-wheel-center .tmc-disc-label { font-size: 14px; margin-bottom: 2px; }
  .tmc-wheel-center .tmc-disc-pen { max-width: 158px; }
  .tmc-wheel-center .tmc-disc-penname { font-size: 11px; }
  .tmc-wheel-center .tmc-disc-mut { font-size: 9.5px; }
  /* category preview — larger, more readable */
  .tmc-wheel-center .tmc-disc-cat { font-size: 13.5px; }
  .tmc-wheel-center .tmc-wlead { height: 46px; }
  .tmc-wheel-center .tmc-disc-cap { font-size: 11px; }
  .tmc-wheel-center .tmc-wpoints { gap: 3px; }
  .tmc-wheel-center .tmc-wpoints li { font-size: 11px; line-height: 1.25; padding-left: 16px; }
  .tmc-wheel-center .tmc-wcenter-link { font-size: 11.5px; }
}

/* small screens: hub becomes card-on-top with pills wrapped below
   (the radial layout is wider than a phone screen) */
@media (max-width: 640px) {
  /* card on top (showcase, spans both columns), 8 categories as a 2x4 tile grid */
  .tmc-hub { aspect-ratio: auto; display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
  .tmc-hub-lines { display: none; }
  .tmc-hpill {
    position: static; transform: none;
    width: 100%; justify-content: flex-start;
    font-size: 12.5px; padding: 10px 11px; gap: 8px; border-radius: 12px;
  }
  .tmc-hpill svg { width: 15px; height: 15px; }
  .tmc-hub-card {
    position: static; transform: none; order: -1;
    grid-column: 1 / -1; width: auto; min-height: 0; margin-bottom: 4px;
    border-radius: 20px; padding: 18px 14px;
  }
  .tmc-disc-item { width: 96px; }
  .tmc-disc-item img { height: 64px; }
  .tmc-disc-item span { font-size: 10.5px; max-width: 96px; }
  .tmc-disc-pen { height: 24px; }
  .tmc-disc-cap { font-size: 11px; white-space: normal; }
  .tmc-disc-label { font-size: 14px; }
  .tmc-wlead { height: 64px; }
  .tmc-wblurb { font-size: 11px; }
}

/* ---------- Hero: slim action strip (qualify / format / how-it-works) ---------- */
.tmc-strip {
  margin-top: 24px; margin-bottom: 20px;
  background: #fff; border: 1px solid #E7EAEF; border-radius: 18px;
  display: grid; grid-template-columns: 1fr 1fr;
}
.tmc-strip__col {
  min-width: 0; padding: 14px 22px;
  display: flex; flex-direction: column; justify-content: center; gap: 7px;
  border-left: 1px solid #EEF1F5;
}
.tmc-strip__col:first-child { border-left: none; }
.tmc-strip__k { font-family: 'JetBrains Mono', monospace; font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-deep, oklch(.46 .14 293)); }
.tmc-strip__t { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 15.5px; letter-spacing: -.015em; color: #14181F; }
.tmc-strip__row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.tmc-strip__btn {
  border: none; cursor: pointer; font-family: inherit;
  background: var(--accent-tint, #f0eafb); color: #14181F;
  font-weight: 800; font-size: 13.5px; padding: 10px 20px; border-radius: 999px; white-space: nowrap;
  transition: transform .15s ease, background .15s ease;
}
.tmc-strip__btn:hover { transform: translateY(-1px); background: #E4DAF8; }
.tmc-strip__mut { font-size: 11px; color: #8A93A2; }
.tmc-strip__fmt {
  display: inline-flex; gap: 3px; background: #F6F8FB;
  border: 1px solid #E7EAEF; border-radius: 999px; padding: 3px;
}
.tmc-strip__fmt .tmc-fmt {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 7px 14px; font-size: 12.5px;
}
.tmc-strip__fmt .tmc-fmt svg { width: 14px; height: 14px; flex: none; }
.tmc-strip__fmt .tmc-fmt.is-active {
  background: var(--accent-tint, #f0eafb); color: var(--accent-deep, oklch(.46 .14 293));
  font-weight: 700;
}
.tmc-hsteps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.tmc-hstep { position: relative; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 6px; min-width: 0; }
.tmc-hstep__n {
  width: 30px; height: 30px; border-radius: 50%; flex: none;
  background: var(--accent-tint, #f0eafb); color: var(--accent-deep, oklch(.46 .14 293));
  font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 14px;
  display: flex; align-items: center; justify-content: center;
}
/* connector line between bubbles */
.tmc-hstep:not(:last-child)::after {
  content: ""; position: absolute; top: 14px;
  left: calc(50% + 22px); right: calc(-50% + 22px); height: 1.5px;
  background: #D9CFF5;
}
.tmc-hstep__t { font-size: 10.5px; line-height: 1.35; font-weight: 600; color: #3c434f; }
.tmc-strip__more { align-self: flex-start; font-size: 12px; font-weight: 700; color: var(--accent-deep, oklch(.46 .14 293)); }
.tmc-strip__more:hover { text-decoration: underline; text-underline-offset: 3px; }
/* phones/tablets: strip shows only the format toggle, centered and roomy —
   "Start your order" lives in the sticky bar, "How it works" is its own section */
@media (max-width: 820px) {
  .tmc-strip { margin-top: 18px; margin-bottom: 18px; }
  .tmc-strip__col:nth-child(1),
  .tmc-strip__col:nth-child(3) { display: none; }
  .tmc-strip__col:nth-child(2) {
    border-top: none; align-items: center; text-align: center;
    padding: 12px 16px 14px; gap: 8px;
  }
  .tmc-strip__col:nth-child(2) .tmc-strip__k { display: none; }         /* drop eyebrow on mobile */
  .tmc-strip__col:nth-child(2) .tmc-strip__t { font-size: 15px; margin: 0; }
  .tmc-strip__col:nth-child(2) .tmc-strip__mut { display: none; }        /* drop tagline on mobile */
  .tmc-strip__col:nth-child(2) .tmc-strip__row { gap: 0; }
  .tmc-strip__fmt { width: 100%; max-width: 360px; }
  .tmc-strip__fmt .tmc-fmt { flex: 1; justify-content: center; padding: 10px 12px; font-size: 13.5px; }
}

@media (max-width: 980px) {
  .tmc-strip { grid-template-columns: 1fr; }
  .tmc-strip__col { border-left: none; border-top: 1px solid #EEF1F5; }
  .tmc-strip__col:first-child { border-top: none; }
}

/* ---------- Hero: responsive ---------- */
@media (max-width: 900px) {
  .tmc-hero-main { grid-template-columns: 1fr; }
}
/* category-colored card hover (overrides the default violet) */
.tmc-card:hover, .tmc-card:focus-visible { border-color: var(--card-accent, var(--accent)) !important; }

/* ---------- Collapsible category sections ---------- */
.tmc-cat-head:hover .tmc-cat-arrow { border-color: currentColor; }
.tmc-cat-head:hover h3 { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.tmc-cat-body[hidden] { display: none; }

/* ---------- Horizontal swipe rows on mobile/tablet ---------- */
/* Card grids (catalog categories, team, testimonials) become edge-to-edge
   scroll-snap carousels; the 78vw card width leaves the next card peeking
   in as the swipe cue. Assumes the parent container's 28px side padding. */
@media (max-width: 820px) {
  .tmc-swipe-row {
    grid-template-columns: none !important;
    grid-auto-flow: column;
    grid-auto-columns: min(78vw, 330px);
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-left: 28px;
    margin: 0 -28px;
    padding: 4px 28px 18px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .tmc-swipe-row::-webkit-scrollbar { display: none; }
  .tmc-swipe-row > * { scroll-snap-align: start; }
}

/* ---------- Catalog search (docked beside the first category heading) ---------- */
.tmc-search-row { position: absolute; top: 12px; right: 28px; z-index: 5; }
@media (max-width: 900px) {
  .tmc-search-row { position: static; display: flex; justify-content: center; padding: 10px 0 2px; }
}
.tmc-search {
  display: flex; align-items: center; gap: 11px;
  width: min(360px, 100%);
  background: #fff; border: 1.5px solid #E3E6EC; border-radius: 999px;
  padding: 10px 18px; color: #8A93A2; cursor: text;
  transition: border-color .15s, box-shadow .15s;
}
.tmc-search:focus-within { border-color: var(--accent, oklch(.56 .16 292)); box-shadow: 0 0 0 3px var(--accent-tint, #f0eafb); }
.tmc-search svg { width: 19px; height: 19px; flex: none; }
.tmc-search input {
  flex: 1; border: none; outline: none; background: transparent;
  font-family: inherit; font-size: 15px; color: #14181F; min-width: 0;
}
.tmc-search input::placeholder { color: #A6AEBA; }
.tmc-search input::-webkit-search-cancel-button { -webkit-appearance: none; }

/* ---------- Catalog carousels: 3 cards per view, arrows page through ---------- */
.tmc-carousel { position: relative; }
.tmc-car-track { display: grid; gap: 16px; }   /* base; mobile swipe-row rules refine below 821px */
.tmc-car-btn {
  position: absolute; top: 50%; transform: translateY(-50%); z-index: 5;
  width: 44px; height: 44px; border-radius: 50%;
  border: 2px solid #14181F; background: #fff; color: #14181F;
  box-shadow: 0 12px 26px -12px rgba(20,24,31,.4);
  cursor: pointer; font-size: 24px; font-weight: 700; line-height: 1; font-family: inherit;
  display: flex; align-items: center; justify-content: center;
  transition: background .15s, color .15s, border-color .15s;
}
.tmc-car-btn:hover {
  background: var(--accent-tint, #f0eafb);
  border-color: var(--accent, oklch(.56 .16 292));
  color: var(--accent-deep, oklch(.46 .14 293));
}
.tmc-car-prev { left: -12px; }
.tmc-car-next { right: -12px; }
@media (min-width: 821px) {
  .tmc-car-track {
    display: grid; grid-auto-flow: column;
    grid-auto-columns: calc((100% - 32px) / 3);   /* 3 cards + 2 gaps per view */
    gap: 16px;
    overflow-x: auto; scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain; scrollbar-width: none;
    padding: 4px 2px 10px;
  }
  .tmc-car-track::-webkit-scrollbar { display: none; }
  .tmc-car-track > * { scroll-snap-align: start; }
}
@media (max-width: 820px) {
  .tmc-car-btn { display: none; }   /* touch swipe takes over on mobile */
}

/* ---------- Catalog headings: keep to 1-2 lines on phones ---------- */
@media (max-width: 560px) {
  [data-catsec] h3 { font-size: 17px !important; letter-spacing: -.01em !important; line-height: 1.2 !important; }
  .tmc-cat-head { gap: 10px !important; }
}

/* ---------- Safety cards: keep two columns on phones ---------- */
@media (max-width: 560px) {
  .tmc-safety-grid { grid-template-columns: 1fr 1fr !important; gap: 12px !important; }
  .tmc-safety-grid > div { padding: 16px !important; }
}

/* ---------- "Book an appointment" process banner (Variation 2) ---------- */
.tmc-book { display: flex; align-items: stretch; gap: clamp(16px,2.2vw,26px); background: #fff; border: 1px solid #E7EAEF; border-radius: 20px; padding: clamp(16px,1.8vw,22px); margin: 44px 0 20px; }
.tmc-book__intro { flex: 0 0 auto; width: clamp(240px,26%,320px); display: flex; align-items: center; gap: 15px; background: #fff; border: 1px solid #EAEDF2; box-shadow: 0 10px 26px -20px rgba(20,24,31,.25); color: #14181F; border-radius: 16px; padding: 22px; cursor: pointer; transition: border-color .15s ease, transform .15s ease; }
.tmc-book__cal { flex: none; width: 58px; height: 58px; border-radius: 50%; background: var(--accent-tint,#f0eafb); color: var(--accent-deep,oklch(.46 .14 293)); display: flex; align-items: center; justify-content: center; }
.tmc-book__cal svg { width: 28px; height: 28px; }
.tmc-book__h { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 20px; letter-spacing: -.02em; margin: 0 0 4px; color: #14181F; }
.tmc-book__sub { font-size: 14px; line-height: 1.4; color: #5B6472; }
.tmc-book__intro:hover { border-color: var(--accent,oklch(.56 .16 292)); transform: translateY(-1px); }
.tmc-book__steps { flex: 1 1 auto; display: flex; align-items: flex-start; justify-content: space-between; padding: 8px clamp(6px,1.5vw,20px); }
.tmc-book__step { position: relative; flex: 1; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 7px; padding: 0 6px; min-width: 0; }
.tmc-book__step:not(:last-child)::after { content: ''; position: absolute; top: 17px; left: 50%; width: 100%; height: 2px; background: #D8D2F2; z-index: 0; }
.tmc-book__num { position: relative; z-index: 1; flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--accent,oklch(.56 .16 292)); color: #fff; font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.tmc-book__st { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 13.5px; line-height: 1.25; letter-spacing: -.01em; color: #14181F; }
.tmc-book__ss { font-size: 12px; color: #8A93A2; }
.tmc-book__ctacard { flex: 0 0 auto; width: clamp(180px,20%,230px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; text-align: center; background: #fff; border: 1px solid #EAEDF2; border-radius: 16px; padding: 22px 18px; box-shadow: 0 12px 30px -22px rgba(20,24,31,.3); }
.tmc-book__cta { border: none; cursor: pointer; font-family: 'Hanken Grotesk',sans-serif; font-weight: 700; font-size: 15px; color: #fff; background: var(--accent,oklch(.56 .16 292)); padding: 13px 24px; border-radius: 12px; display: inline-flex; align-items: center; gap: 9px; white-space: nowrap; transition: filter .15s ease; margin-bottom: 8px; }
.tmc-book__cta:hover { filter: brightness(1.05); }
.tmc-book__ctak { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 14px; color: #14181F; }
.tmc-book__ctas { font-size: 12.5px; color: #8A93A2; }

/* pen/vial format toggle, relocated above the catalog */
.tmc-fmtbar { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 0 16px; }
.tmc-fmtbar__k { font-family: 'JetBrains Mono',monospace; font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: #5B6472; }
.tmc-fmtbar__mut { font-size: 12.5px; color: #8A93A2; }

@media (max-width: 1000px) {
  .tmc-book { flex-direction: column; }
  .tmc-book__intro, .tmc-book__ctacard { width: 100%; }
  .tmc-book__ctacard { flex-direction: row; justify-content: space-between; align-items: center; }
  .tmc-book__ctacard .tmc-book__cta { margin-bottom: 0; }
}
@media (max-width: 620px) {
  .tmc-book__steps { flex-wrap: wrap; row-gap: 18px; }
  .tmc-book__step { flex-basis: 50%; }
  .tmc-book__step:not(:last-child)::after { display: none; }
  .tmc-book__ctacard { flex-direction: column; }
  .tmc-book__ctacard .tmc-book__cta { margin-bottom: 8px; }
}

/* format switcher: two selectable cards (replaces the small fmtbar) */
.tmc-fmtbar2-wrap { display: flex; flex-direction: column; align-items: center; gap: 12px; margin: 0 0 26px; }
.tmc-fmtbar2-k { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 16px; letter-spacing: -.01em; color: #14181F; }
.tmc-fmtbar2 { display: flex; justify-content: center; gap: 14px; flex-wrap: wrap; }
.tmc-fmtcard {
  width: 290px; max-width: 100%; background: #fff; border: 2px solid #E7EAEF; border-radius: 14px;
  padding: 10px 14px 10px 12px; display: flex; gap: 11px; align-items: center; position: relative;
  white-space: normal;   /* the base .tmc-fmt pill sets nowrap — cards must wrap */
  cursor: pointer; text-align: left; font-family: inherit; color: #14181F;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.tmc-fmtcard:hover { border-color: #C9B8F2; }
.tmc-fmtcard.is-active { background: #fff; color: #14181F; border-color: var(--accent,oklch(.56 .16 292)); box-shadow: 0 12px 30px -18px rgba(124,92,224,.45); }
.tmc-fmtcard__ico { flex: none; width: 38px; height: 38px; border-radius: 10px; background: var(--accent-tint,#f0eafb); color: var(--accent-deep,oklch(.46 .14 293)); display: flex; align-items: center; justify-content: center; }
.tmc-fmtcard__ico svg { width: 20px; height: 20px; }
.tmc-fmtcard__tx { min-width: 0; padding-right: 16px; }
.tmc-fmtcard__tx b { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 13.5px; letter-spacing: -.01em; display: block; margin-bottom: 1px; }
.tmc-fmtcard__tx small { font-size: 11px; font-weight: 500; color: #5B6472; line-height: 1.35; display: block; }
.tmc-fmtcard__chk { position: absolute; top: 8px; right: 8px; width: 19px; height: 19px; border-radius: 50%; border: 1.5px solid #D5D9E2; color: transparent; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; }
.tmc-fmtcard.is-active .tmc-fmtcard__chk { background: var(--accent,oklch(.56 .16 292)); border-color: var(--accent,oklch(.56 .16 292)); color: #fff; }

/* search bar sized + aligned to match the format cards beside it */
@media (min-width: 901px) {
  .tmc-search-row { top: 33px; }   /* aligns with the top of the format cards */
  .tmc-search { height: 62px; border-radius: 14px; border: 2px solid #E7EAEF; padding: 10px 18px; }
  .tmc-search input { font-size: 15px; }
}

/* banner without the intro card: steps spread wide and read bigger */
.tmc-book__steps { padding: 16px clamp(10px,2vw,30px); }
.tmc-book__num { width: 44px; height: 44px; font-size: 18px; }
.tmc-book__step:not(:last-child)::after { top: 22px; }
.tmc-book__st { font-size: 15.5px; }
.tmc-book__ss { font-size: 13px; }

/* format selector cards: both keep the purple outline; the selected one fills in */
.tmc-fmtcard { background: #fff; border-color: var(--accent,oklch(.56 .16 292)); }
.tmc-fmtcard:hover { border-color: var(--accent,oklch(.56 .16 292)); }
.tmc-fmtcard__ico { background: #F1F3F7; color: #98A0AD; }
.tmc-fmtcard__chk { border-color: #D5D9E2; }
.tmc-fmtcard.is-active {
  background: var(--accent-tint,#f0eafb); border-color: var(--accent,oklch(.56 .16 292));
  box-shadow: 0 14px 32px -18px rgba(124,92,224,.55);
}
.tmc-fmtcard.is-active .tmc-fmtcard__ico { background: var(--accent,oklch(.56 .16 292)); color: #fff; }

/* per-tile pen/vial toggle */
.tmc-tile-fmt { display: inline-flex; align-items: center; gap: 3px; background: #F1F3F7; border-radius: 999px; padding: 3px; margin-top: 7px; align-self: flex-start; min-height: 38px; }
.tmc-tile-fmt button {
  border: none; cursor: pointer; font-family: inherit; font-weight: 700; font-size: 13px;
  padding: 8px 15px; border-radius: 999px; background: transparent; color: #5B6472;
  display: inline-flex; align-items: center; gap: 5px; transition: background .12s ease, color .12s ease;
}
.tmc-tile-fmt button svg { width: 15px; height: 15px; }
/* single-format products: bold pill in the same slot as the toggle */
.tmc-tile-fmt--solo { background: transparent; padding: 0; min-height: 38px; }
.tmc-tile-fmt--solo span {
  display: inline-flex; align-items: center; gap: 6px;
  font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 13px; color: #fff;
  padding: 9px 16px; border-radius: 999px;
}
.tmc-tile-fmt--solo span svg { width: 15px; height: 15px; }
.tmc-tile-fmt button.is-active { background: #fff; color: var(--accent-deep,oklch(.46 .14 293)); box-shadow: 0 1px 4px rgba(20,24,31,.14); }

/* align the search's right edge with the Get Started card above it
   (the banner is inset by its own padding + 1px border) */
@media (min-width: 901px) {
  .tmc-search-row { right: calc(29px + clamp(16px, 1.8vw, 22px)); }
}

/* ============ cart dock (toast + pinned mini-cart) ============ */
#tmc-cartdock { position: fixed; right: 16px; bottom: 16px; z-index: 80; }
@media (max-width: 820px) { #tmc-cartdock { bottom: 84px; right: 12px; } }
.tmc-dock__card {
  width: 264px; background: #fff; border: 1px solid #E7EAEF; border-radius: 16px;
  box-shadow: 0 24px 50px -24px rgba(20,24,31,.5); overflow: hidden;
  animation: tmcpop .25s cubic-bezier(.2,.85,.25,1);
}
.tmc-dock__hd {
  display: flex; align-items: center; gap: 8px; padding: 11px 14px;
  border-bottom: 1px solid #EEF1F5;
  font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 13.5px; color: #14181F;
}
.tmc-dock__hd em { font-style: normal; background: var(--accent-tint,#f0eafb); color: var(--accent-deep,oklch(.46 .14 293)); font-size: 11px; font-weight: 700; padding: 1px 8px; border-radius: 999px; }
.tmc-dock__min { margin-left: auto; border: none; background: none; cursor: pointer; color: #8A93A2; font-size: 15px; font-weight: 700; padding: 2px 6px; line-height: 1; }
.tmc-dock__min:hover { color: #14181F; }
.tmc-dock__list { max-height: 224px; overflow-y: auto; }
.tmc-dock__row { display: flex; gap: 10px; align-items: center; padding: 8px 14px; border-bottom: 1px solid #F4F6F9; }
.tmc-dock__thumb { flex: none; width: 36px; height: 36px; border: 1px solid #EEF1F5; border-radius: 9px; background: #fff; display: flex; align-items: center; justify-content: center; }
.tmc-dock__thumb img { max-width: 84%; max-height: 84%; object-fit: contain; mix-blend-mode: multiply; }
.tmc-dock__tx { min-width: 0; }
.tmc-dock__tx b { display: block; font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 12.5px; color: #14181F; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tmc-dock__tx small { font-family: 'JetBrains Mono',monospace; font-size: 10px; color: #8A93A2; }
.tmc-dock__x { margin-left: auto; flex: none; border: none; cursor: pointer; width: 20px; height: 20px; border-radius: 50%; background: #F1F2F5; color: #5B6472; font-size: 9px; display: flex; align-items: center; justify-content: center; }
.tmc-dock__x:hover { background: #E3E6EC; color: #14181F; }
.tmc-dock__go { display: block; width: calc(100% - 28px); margin: 10px 14px 12px; border: none; cursor: pointer; font-family: inherit; text-align: center; background: var(--accent,oklch(.56 .16 292)); color: #fff; font-weight: 700; font-size: 13px; padding: 11px; border-radius: 999px; transition: filter .15s ease; }
.tmc-dock__go:hover { filter: brightness(1.05); }
.tmc-dock__bubble { position: relative; width: 54px; height: 54px; border: none; cursor: pointer; border-radius: 50%; background: var(--accent,oklch(.56 .16 292)); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: 0 14px 30px -12px rgba(124,92,224,.7); }
.tmc-dock__bubble svg { width: 22px; height: 22px; }
.tmc-dock__bubble em { position: absolute; top: -4px; right: -4px; width: 21px; height: 21px; border-radius: 50%; background: #14181F; color: #fff; font-style: normal; font-weight: 800; font-size: 11px; display: flex; align-items: center; justify-content: center; border: 2px solid #F6F8FB; }

#tmc-carttoast {
  position: fixed; right: 16px; z-index: 81;
  display: flex; gap: 10px; align-items: center;
  background: #fff; border: 1px solid #E7EAEF; border-left: 3px solid #2FA35C; border-radius: 13px;
  padding: 10px 16px 10px 12px; box-shadow: 0 16px 36px -18px rgba(20,24,31,.45);
  max-width: 290px; animation: tmcslide .25s ease; transition: opacity .3s ease, transform .3s ease;
}
@media (max-width: 820px) { #tmc-carttoast { right: 12px; } }
#tmc-carttoast.is-out { opacity: 0; transform: translateY(8px); }
.tmc-toast__ck { flex: none; width: 20px; height: 20px; border-radius: 50%; background: color-mix(in srgb,#2FA35C 18%,#fff); color: #1c7d47; font-weight: 800; font-size: 11px; display: flex; align-items: center; justify-content: center; }

/* hero CTA on phones: one big bold line + arrow, centered */
@media (max-width: 640px) {
  .tmc-herocta { width: 100%; padding: 16px 12px !important; gap: 10px !important; justify-content: center !important; }
  .tmc-herocta b { font-size: clamp(13.5px, 4.2vw, 17px) !important; letter-spacing: -.02em !important; white-space: nowrap; }
  .tmc-herocta > span { flex: none; width: 26px !important; height: 26px !important; font-size: 13px !important; }
}

/* bigger brand logo + tighter header on phones */
@media (max-width: 820px) {
  #tmc-nav > div { padding-top: 8px !important; padding-bottom: 8px !important; }
  .tmc-logo__side { font-size: 26px; }
  .tmc-logo__med { font-size: 22px; }
}

/* ============ testing promo (premium split card) ============ */
.tmc-testpromo {
  display: grid; grid-template-columns: 1.15fr .85fr; align-items: stretch; overflow: hidden;
  background: #fff; border: 1px solid #E7EAEF; border-radius: 24px;
  box-shadow: 0 24px 55px -34px rgba(20,24,31,.35);
  transition: box-shadow .2s ease, transform .2s ease;
}
.tmc-testpromo:hover { transform: translateY(-2px); box-shadow: 0 30px 64px -32px rgba(124,92,224,.4); }
.tmc-testpromo__copy { padding: clamp(24px,3vw,40px); display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.tmc-testpromo__k { font-family: 'JetBrains Mono',monospace; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; color: var(--accent-deep,oklch(.46 .14 293)); }
.tmc-testpromo__h { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: clamp(20px,2.4vw,28px); letter-spacing: -.02em; color: #14181F; line-height: 1.1; }
.tmc-testpromo__s { font-size: 15px; color: #5B6472; line-height: 1.6; max-width: 46ch; }
.tmc-testpromo__chips { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 2px; }
.tmc-testpromo__chips span { display: inline-flex; align-items: center; gap: 6px; font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 12px; color: #14181F; background: #F6F8FB; border: 1px solid #E7EAEF; border-radius: 999px; padding: 6px 13px; }
.tmc-testpromo__chips svg { width: 14px; height: 14px; color: var(--accent-deep,oklch(.46 .14 293)); }
.tmc-testpromo__cta { display: inline-flex; align-items: center; gap: 9px; align-self: flex-start; margin-top: 8px; background: var(--accent,oklch(.56 .16 292)); color: #fff; font-weight: 800; font-size: 15px; padding: 13px 24px; border-radius: 13px; }
.tmc-testpromo__ph { position: relative; min-height: 220px; }
.tmc-testpromo__ph img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.tmc-testpromo__badge { position: absolute; right: 14px; bottom: 14px; background: rgba(255,255,255,.95); border-radius: 999px; padding: 7px 14px; font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 12px; color: var(--accent-deep,oklch(.46 .14 293)); box-shadow: 0 10px 24px -12px rgba(20,24,31,.4); }
@media (max-width: 760px) {
  .tmc-testpromo { grid-template-columns: 1fr; }
  .tmc-testpromo__ph { order: -1; min-height: 160px; }
}

/* ============ mobile compaction (banner steps + how-it-works) ============ */
@media (max-width: 640px) {
  .tmc-book { padding: 12px; }
  .tmc-book__steps { row-gap: 10px; padding: 8px 2px; }
  .tmc-book__num { width: 30px; height: 30px; font-size: 13px; }
  .tmc-book__step { gap: 4px; }
  .tmc-book__st { font-size: 12.5px; }
  .tmc-book__ss { font-size: 10.5px; }
  .tmc-book__ctacard { padding: 12px 14px; }
  .tmc-book__ctacard .tmc-book__cta { padding: 11px 20px; font-size: 13.5px; margin-bottom: 4px; }
  .tmc-book__ctak { font-size: 12.5px; }
  .tmc-book__ctas { font-size: 11px; }

  #how > div:first-child { margin-bottom: 22px !important; }
  #how h2 { font-size: 26px !important; }
  #how > div:nth-child(2) { gap: 10px !important; }
  #how > div:nth-child(2) > div { padding: 16px !important; }
  #how > div:nth-child(2) > div > div:first-child { width: 32px !important; height: 32px !important; font-size: 14px !important; margin-bottom: 10px !important; border-radius: 9px !important; }
  #how > div:nth-child(2) > div h3 { font-size: 15.5px !important; margin-bottom: 5px !important; }
  #how > div:nth-child(2) > div p { font-size: 13px !important; }
}

/* ============ care team + member stories: 2-up tiles on phones ============ */
@media (max-width: 820px) {
  .tmc-swipe-row {
    grid-template-columns: 1fr 1fr !important;
    grid-auto-flow: row !important;
    grid-auto-columns: unset !important;
    overflow-x: visible !important;
    gap: 10px !important;
  }
  .tmc-swipe-row > div > div:last-child { padding: 12px !important; }
  .tmc-swipe-row h3 { font-size: 14px !important; }
  .tmc-swipe-row p { font-size: 11.5px !important; line-height: 1.5 !important; margin-bottom: 10px !important; }
}

/* branded test-kit box illustration */
.tmc-testpromo__ph--box { display: flex; align-items: center; justify-content: center; background: linear-gradient(140deg,#EFEAFC,#E7EEFB); }
.tmc-kitbox { width: min(76%, 290px); border-radius: 16px; overflow: hidden; box-shadow: 0 30px 55px -25px rgba(84,60,180,.5); transform: rotate(-3deg); margin: 30px 0; border: 1px solid #E4DCF9; }
.tmc-kitbox__lid { background: linear-gradient(120deg,#8a6bf0,#6a48d8); padding: 13px 18px; display: flex; align-items: center; gap: 8px; }
.tmc-kitbox__logo { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 15px; color: #fff; letter-spacing: -.01em; }
.tmc-kitbox__logo b { background: #fff; color: #6a48d8; border-radius: 6px; padding: 1px 7px; margin: 0 2px; }
.tmc-kitbox__sub { margin-left: auto; font-family: 'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .18em; color: rgba(255,255,255,.85); }
.tmc-kitbox__face { background: #fff; padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 9px; align-items: flex-start; }
.tmc-kitbox__k { font-family: 'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .14em; color: #8A93A2; }
.tmc-kitbox__dots { display: flex; gap: 8px; }
.tmc-kitbox__dots i { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; font-style: normal; }
.tmc-kitbox__dots svg { width: 17px; height: 17px; }
.tmc-kitbox__t { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 13px; color: #14181F; }
.tmc-kitbox__mail { font-size: 10.5px; color: #8A93A2; }

/* story badges: small corner chips on phones (never cover faces) */
@media (max-width: 820px) {
  .tmc-swipe-row span[style*="position:absolute"] {
    font-size: 12.5px !important; padding: 3px 9px !important; border-radius: 8px !important;
    bottom: 8px !important; left: 8px !important;
  }
}

/* how-it-works: 2x2 on phones */
@media (max-width: 640px) {
  #how > div:nth-child(2) { grid-template-columns: 1fr 1fr !important; }
  #how > div:nth-child(2) > div h3 { font-size: 14px !important; }
  #how > div:nth-child(2) > div p { font-size: 11.5px !important; }

  /* promo card: slim on phones */
  .tmc-testpromo__copy { padding: 14px 16px 16px; gap: 5px; }
  .tmc-testpromo__h { font-size: 17px; }
  .tmc-testpromo__s { font-size: 12.5px; }
  .tmc-testpromo__chips { display: none; }   /* the box already shows the 2 samples */
  .tmc-testpromo__cta { font-size: 13px; padding: 10px 18px; margin-top: 3px; }
  .tmc-testpromo__ph--box { min-height: 0; }
  .tmc-kitbox { margin: 12px 0; width: min(54%, 190px); transform: rotate(-2deg); }
  .tmc-kitbox__lid { padding: 8px 12px; }
  .tmc-kitbox__logo { font-size: 11px; }
  .tmc-kitbox__logo b { padding: 1px 5px; border-radius: 4px; }
  .tmc-kitbox__sub { font-size: 8px; }
  .tmc-kitbox__face { padding: 10px 12px 12px; gap: 6px; }
  .tmc-kitbox__k { font-size: 8px; }
  .tmc-kitbox__dots i { width: 26px; height: 26px; border-radius: 8px; }
  .tmc-kitbox__dots svg { width: 13px; height: 13px; }
  .tmc-kitbox__t { font-size: 10.5px; }
  .tmc-kitbox__mail { font-size: 8.5px; }
  .tmc-testpromo__badge { padding: 5px 10px; font-size: 10.5px; right: 10px; bottom: 10px; }
}

/* phones: format cards as two compact squares side by side, tighter spacing */
@media (max-width: 640px) {
  .tmc-fmtbar2-wrap { gap: 8px; margin: 0 0 12px; }
  .tmc-fmtbar2-k { font-size: 14px; }
  .tmc-fmtbar2 { flex-wrap: nowrap; gap: 8px; width: 100%; }
  .tmc-fmtcard {
    width: calc(50% - 4px); min-width: 0;
    flex-direction: column; align-items: center; text-align: center;
    padding: 12px 8px 11px; gap: 7px;
  }
  .tmc-fmtcard__ico { width: 34px; height: 34px; border-radius: 9px; }
  .tmc-fmtcard__ico svg { width: 18px; height: 18px; }
  .tmc-fmtcard__tx { padding-right: 0; }
  .tmc-fmtcard__tx b { font-size: 12.5px; margin-bottom: 1px; }
  .tmc-fmtcard__tx small { font-size: 9.5px; line-height: 1.3; }
  .tmc-fmtcard__chk { top: 6px; right: 6px; width: 17px; height: 17px; font-size: 10px; }
  .tmc-search-row { padding: 6px 0 0 !important; }
}

/* phones: even breathing room around the format picker + search */
@media (max-width: 640px) {
  .tmc-fmtbar2-wrap { gap: 12px; margin: 6px 0 0; }
  .tmc-search-row { padding: 16px 0 18px !important; }
  .tmc-testpromo__ph { min-height: 0; height: 190px; }
}

/* ============ wheel autoplay polish ============ */
/* resting wedges sit slightly grayer, and the active wedge deepens well toward
   its category color — so even Weight (purple family) clearly reads as lit.
   Long fills fades = the glow travels; center swap is a pure cross-fade
   (no movement, no blur, images preloaded). */
.tmc-seg { fill: #ECEBF2; transition: fill .6s ease; }
.tmc-seg.is-active {
  fill: var(--segtint, #DED4F7);
  fill: color-mix(in srgb, var(--segmain, #7C5CE0) 32%, #fff);
}
@media (hover: hover) {
  .tmc-seg:hover {
    fill: var(--segtint, #DED4F7);
    fill: color-mix(in srgb, var(--segmain, #7C5CE0) 32%, #fff);
  }
}
/* center panels: all sections pre-built and stacked; switching = pure opacity
   crossfade (no DOM churn, no image re-decode — glitch-free on mobile Safari) */
.tmc-spot-panel {
  position: absolute; inset: 0; padding: inherit;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: inherit; text-align: center;
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .3s ease, visibility 0s linear .3s;
}
.tmc-spot-panel.is-on {
  opacity: 1; visibility: visible; pointer-events: auto;
  transition: opacity .3s ease, visibility 0s;
}
@media (prefers-reduced-motion: reduce) {
  .tmc-spot-panel { transition: none; }
}

/* phones: keep the center bullets clear of the disc's curved edge */
@media (max-width: 640px) {
  .tmc-wheel-center { padding: 9% 12%; }
  .tmc-wheel-center .tmc-wpoints li { font-size: 10.5px; }
}

/* phones: category title must stay inside the disc's narrow top curve */
@media (max-width: 640px) {
  .tmc-wheel-center { padding: 13% 12% 10%; }
  .tmc-wheel-center .tmc-disc-cat { font-size: 12px; line-height: 1.2; max-width: 78%; text-wrap: balance; }
}

/* roulette sweep intro: quick color flash as it laps the ring —
   during the sweep every wedge fades fast BOTH ways, so no glow trails behind */
.tmc-wheel.is-sweeping .tmc-seg { transition: fill .14s ease; }
.tmc-seg.is-sweep {
  fill: var(--segtint, #DED4F7);
  fill: color-mix(in srgb, var(--segmain, #7C5CE0) 38%, #fff);
}

/* ============ desktop hero: scale copy up to fill the column (2A) ============ */
@media (min-width: 900px) {
  header h1 { font-size: clamp(41px, 4.5vw, 60px) !important; margin-bottom: 18px !important; }
  header h1 + p { font-size: 18px !important; max-width: 510px !important; }
  header h1 + p + p { font-size: 17px !important; margin-bottom: 18px !important; }
  .tmc-herocta { padding: 15px 26px !important; }
  .tmc-herocta b { font-size: 18.5px !important; }
  .tmc-herocta > span { width: 27px; height: 27px; font-size: 13.5px; }
  header span[style*="10.5px"] { font-size: 12.5px !important; }
  header span[style*="10.5px"] svg { width: 15px; height: 15px; }
  header div[style*="F5A623"] { font-size: 21px !important; }
  header div[style*="F5A623"] + span { font-size: 15px !important; }
}

/* ============ desktop nav: bigger logo + slimmer pills meet in the middle (3C) ============ */
@media (min-width: 821px) {
  .tmc-logo__side { font-size: 22px; }
  .tmc-logo__med { font-size: 18.5px; }
  .tmc-logo--dark .tmc-logo__side { font-size: 16.5px; }   /* footer logo stays as-is */
  .tmc-logo--dark .tmc-logo__med { font-size: 14px; }
  .tmc-navplan { height: 37px !important; }
  .tmc-navcta { padding: 9px 18px !important; font-size: 14.5px !important; }
  #tmc-nav > div { padding-top: 10px !important; padding-bottom: 10px !important; }
}

/* wheel label icons: gentle pop when their wedge is lit */
.tmc-seg-label svg { transition: transform .3s ease; }
.tmc-seg-label.is-active svg { transform: scale(1.14); }

/* rotation handoff: incoming wedge blooms in, outgoing lets go fast —
   kills the two-wedges-half-lit glow between sections */
.tmc-seg { transition: fill .34s ease; }
.tmc-seg.is-active { transition: fill .5s ease .14s; }

/* wheel label icons: the owner's illustrated set */
/* icons drawn straight on the wedges — bolded artwork, no chip */
.tmc-seg-ico { width: 33px; height: 33px; object-fit: contain; display: block; transition: transform .3s ease; }
.tmc-seg-label.is-active .tmc-seg-ico { transform: scale(1.14); }
@media (max-width: 640px) {
  .tmc-seg-ico { width: 26px; height: 26px; }
  /* long label: slightly smaller so it clears the center disc */
  .tmc-seg-label[data-seglabel="gh"] span { font-size: 10.5px; }
}

/* mobile hero: shrink so each phrase ("Wholesale pricing." / "Doctor-prescribed.") stays on one line */
@media (max-width: 640px) {
  header h1 { font-size: clamp(29px, 8.7vw, 37px) !important; }
}

/* ============ dose picker (tile quick-add) ============ */
.tmc-dp-ov { position: fixed; inset: 0; z-index: 110; display: flex; align-items: flex-end; justify-content: center; }
.tmc-dp-back { position: absolute; inset: 0; background: rgba(15,18,23,.45); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); animation: tmcback .2s ease; }
.tmc-dp {
  position: relative; z-index: 1; width: min(430px, 100%); max-height: 78vh; overflow: auto;
  background: #fff; border-radius: 22px 22px 0 0; padding: 18px 18px 22px;
  box-shadow: 0 -24px 60px -20px rgba(0,0,0,.45); animation: tmcdpup .3s cubic-bezier(.2,.85,.25,1);
}
@keyframes tmcdpup { from { transform: translateY(40px); opacity: 0; } to { transform: none; opacity: 1; } }
@media (min-width: 641px) {
  .tmc-dp-ov { align-items: center; }
  .tmc-dp { border-radius: 22px; }
}
.tmc-dp-head { display: flex; align-items: center; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid #EEF0F4; margin-bottom: 6px; }
.tmc-dp-head img { width: 46px; height: 46px; object-fit: contain; mix-blend-mode: multiply; flex: none; }
.tmc-dp-head b { font-family: 'Sora','Hanken Grotesk',sans-serif; font-size: 16px; display: block; color: #14181F; }
.tmc-dp-head span { font-size: 12px; color: #8A93A2; }
.tmc-dp-head button { margin-left: auto; flex: none; border: none; background: #F1F2F5; color: #5B6472; width: 36px; height: 36px; border-radius: 50%; cursor: pointer; font-size: 15px; }
.tmc-dp-row {
  display: flex; justify-content: space-between; align-items: center; width: 100%;
  border: 1.5px solid #E7EAEF; background: #fff; border-radius: 13px; padding: 13px 16px;
  margin-top: 8px; cursor: pointer; font-family: inherit; font-size: 15px; font-weight: 700; color: #14181F;
  transition: border-color .12s ease, background .12s ease;
}
.tmc-dp-row:hover { border-color: var(--accent,oklch(.56 .16 292)); background: #FAF8FF; }
.tmc-dp-row.is-active { border-color: var(--accent,oklch(.56 .16 292)); background: #FAF8FF; }
.tmc-dp-dose i { font-style: normal; font-size: 11px; font-weight: 600; color: #8A93A2; margin-left: 4px; }
.tmc-dp-price { font-family: 'JetBrains Mono',monospace; font-size: 14px; font-weight: 600; color: var(--accent-deep,oklch(.46 .14 293)); }
.tmc-dp-note { font-size: 11px; color: #8A93A2; line-height: 1.5; margin: 14px 2px 0; }

/* ============ first-order offer card ============ */
#tmc-offer {
  position: fixed; right: 20px; bottom: 44px; z-index: 95;   /* default: bottom-right */
  width: min(300px, calc(100vw - 24px));
  background: #fff; border: 1px solid #E7EAEF; border-radius: 18px; padding: 16px;
  box-shadow: 0 26px 64px -22px rgba(20,24,31,.45);
  transform: translateY(18px); opacity: 0;
  transition: transform .38s cubic-bezier(.2,.85,.25,1), opacity .38s ease;
}
#tmc-offer.is-in { transform: none; opacity: 1; }
/* wide screens: float it up beside the hero wheel (real space to its right) */
@media (min-width: 1500px) {
  #tmc-offer { top: 96px; bottom: auto; right: 24px; transform: translateY(-12px); }
}
@media (max-width: 640px) {
  #tmc-offer { right: 12px; left: 12px; width: auto; top: auto; bottom: 86px; }   /* clears the sticky CTA bar */
}
.tmc-offer-x { position: absolute; top: 8px; right: 8px; border: none; background: #F1F2F5; color: #5B6472; width: 34px; height: 34px; border-radius: 50%; cursor: pointer; font-size: 15px; display: flex; align-items: center; justify-content: center; }
.tmc-offer-k { font-family: 'JetBrains Mono',monospace; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--accent-deep,oklch(.46 .14 293)); margin-bottom: 6px; }
.tmc-offer-h { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 17.5px; letter-spacing: -.02em; color: #14181F; margin-bottom: 4px; }
.tmc-offer-s { font-size: 12.5px; color: #5B6472; line-height: 1.55; margin: 0 0 12px; }
.tmc-offer-form { display: flex; gap: 8px; }
.tmc-offer-form input { flex: 1; min-width: 0; border: 1.5px solid #E7EAEF; border-radius: 11px; padding: 10px 12px; font-family: inherit; font-size: 13.5px; outline: none; }
.tmc-offer-form input:focus { border-color: var(--accent,oklch(.56 .16 292)); }
.tmc-offer-form button { flex: none; border: none; cursor: pointer; font-family: inherit; background: var(--accent,oklch(.56 .16 292)); color: #fff; font-weight: 700; font-size: 13px; padding: 10px 14px; border-radius: 11px; }
.tmc-offer-err { font-size: 11.5px; color: #c0392b; font-weight: 600; margin: 8px 0 0; }
.tmc-offer-code { color: var(--accent-deep,oklch(.46 .14 293)); font-family: 'JetBrains Mono',monospace; letter-spacing: .04em; }

/* wheel taps land cleanly below the sticky nav */
[id^="cat-"] { scroll-margin-top: 84px; }

/* desktop: care team + member stories in a single row of four */
@media (min-width: 821px) {
  .tmc-swipe-row { grid-template-columns: repeat(4, 1fr) !important; gap: 14px !important; }
  .tmc-swipe-row > div > div:last-child { padding: 18px !important; }
  .tmc-swipe-row p { font-size: 13px !important; }
  .tmc-swipe-row h3 { font-size: 16px !important; }
}

/* the whole center disc is tappable — it opens the section it shows */
.tmc-wheel-center { cursor: pointer; }

/* ============ tile strengths line ============ */
.tmc-tile-dose {
  font-family: 'Hanken Grotesk', sans-serif; font-weight: 800; font-size: 13.5px;
  letter-spacing: -.01em; color: #14181F; line-height: 1.3; margin: 3px 0 0;
  min-height: 18px;   /* reserve a line so the row below stays level across tiles */
}
@media (max-width: 640px) { .tmc-tile-dose { font-size: 11.5px; min-height: 30px; } }

/* ============ compact product detail (fits one screen, no scroll) ============ */
.tmc-dt {
  position: relative; z-index: 1; width: 100%; max-width: 760px; max-height: 94vh;
  overflow: hidden; background: #fff; border-radius: 24px;
  box-shadow: 0 50px 120px -28px rgba(0,0,0,.55); animation: tmcpop .3s cubic-bezier(.2,.85,.25,1);
  display: grid; grid-template-columns: 300px 1fr;
}
.tmc-dt-x {
  position: absolute; top: 14px; right: 14px; z-index: 2; border: none; background: #F1F2F5;
  color: #5B6472; width: 38px; height: 38px; border-radius: 50%; cursor: pointer; font-size: 16px;
  display: flex; align-items: center; justify-content: center;
}
.tmc-dt-media {
  background: linear-gradient(180deg,#FFFFFF,#F7F8FB); display: flex; flex-direction: column;
  align-items: center; justify-content: center; gap: 16px; padding: 26px;
}
.tmc-dt-media img { max-width: 88%; max-height: 240px; object-fit: contain; display: block; transition: opacity .16s ease; }
.tmc-dt-fmt { display: flex; gap: 4px; background: #fff; border: 1px solid #E3E6EC; border-radius: 999px; padding: 4px; }
.tmc-dt-fmt--solo { align-items: center; gap: 7px; padding: 8px 15px; font-family: 'Hanken Grotesk'; font-weight: 700; font-size: 12.5px; }
.tmc-dt-body { padding: 30px 30px 26px; overflow: auto; display: flex; flex-direction: column; }
.tmc-dt-cat { display: inline-block; align-self: flex-start; font-family: 'JetBrains Mono',monospace; font-size: 10.5px; letter-spacing: .04em; text-transform: uppercase; color: #fff; padding: 5px 11px; border-radius: 7px; margin-bottom: 12px; }
.tmc-dt-name { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 26px; letter-spacing: -.02em; margin: 0 0 5px; line-height: 1.05; }
.tmc-dt-mech { font-family: 'JetBrains Mono',monospace; font-size: 11.5px; color: #8A93A2; margin-bottom: 12px; }
.tmc-dt-desc { font-size: 14px; line-height: 1.55; color: #3c434f; margin: 0 0 14px; }
.tmc-dt-chips { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 14px; }
.tmc-dt-benefits { list-style: none; margin: 0 0 14px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 7px 16px; }
.tmc-dt-benefits li { display: flex; gap: 8px; align-items: flex-start; font-size: 13px; color: #14181F; line-height: 1.4; }
.tmc-dt-benefits li span { flex: none; font-weight: 700; }
.tmc-dt-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 1px; background: #E7EAEF; border: 1px solid #E7EAEF; border-radius: 12px; overflow: hidden; margin-bottom: 16px; }
.tmc-dt-fact { background: #fff; padding: 9px 13px; }
.tmc-dt-fact span { display: block; font-family: 'JetBrains Mono',monospace; font-size: 9.5px; letter-spacing: .05em; text-transform: uppercase; color: #8A93A2; margin-bottom: 2px; }
.tmc-dt-fact b { font-weight: 600; font-size: 13px; color: #14181F; }
.tmc-dt-cta { display: flex; gap: 9px; margin-top: auto; }
.tmc-dt-add, .tmc-dt-qual { flex: 1; border: none; cursor: pointer; font-family: inherit; font-weight: 600; font-size: 14px; padding: 12px 14px; border-radius: 999px; }
.tmc-dt-add { background: #14181F; color: #fff; }
.tmc-dt-qual { background: var(--accent, oklch(.56 .16 292)); color: #fff; }
.tmc-dt-rsf { display: inline-block; margin-top: 10px; font-size: 13px; font-weight: 700; color: var(--accent-deep,oklch(.46 .14 293)); }
.tmc-dt-legal { font-size: 10.5px; color: #A6AEBA; line-height: 1.5; margin: 12px 0 0; }

@media (max-width: 720px) {
  .tmc-dt { grid-template-columns: 1fr; max-height: 92vh; }
  .tmc-dt-media { flex-direction: row; justify-content: center; gap: 14px; padding: 16px; }
  .tmc-dt-media img { max-height: 120px; max-width: 46%; }
  .tmc-dt-body { padding: 16px 20px 20px; }
  .tmc-dt-name { font-size: 22px; }
  .tmc-dt-desc { font-size: 13px; margin-bottom: 12px; }
  .tmc-dt-benefits { gap: 6px 14px; }
  .tmc-dt-cta { flex-direction: column; }
}

/* phones: the order card's grid forced a 300px column into a narrower space,
   pushing content off-center. Stack to a single fit-to-width column, evenly padded. */
@media (max-width: 640px) {
  #order > div { padding-left: 18px; padding-right: 18px; }
  #order > div > div { grid-template-columns: minmax(0, 1fr) !important; gap: 26px !important; padding: 26px 22px !important; }
  #order h2 { font-size: clamp(30px, 8vw, 40px) !important; }
  #order p { font-size: 16px !important; }
}

/* quarterly free-test perk on the plan cards */
.tmc-freetest {
  display: flex; gap: 10px; align-items: center;
  background: rgba(123,92,255,.15); border: 1px solid rgba(156,140,255,.4);
  border-radius: 12px; padding: 11px 13px; margin: -8px 0 22px;
}
.tmc-freetest__ico { flex: none; width: 30px; height: 30px; border-radius: 8px; background: var(--accent,oklch(.56 .16 292)); color: #fff; display: flex; align-items: center; justify-content: center; }
.tmc-freetest__tx b { display: block; font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 13px; color: #fff; letter-spacing: -.01em; }
.tmc-freetest__tx small { font-size: 11px; color: #c9b8ff; line-height: 1.35; display: block; }

/* mid-width browsers: the offer collapses to a slim pill at the bottom-right;
   tapping it expands to the full card (wide screens keep the wheel-side card,
   phones keep the bottom dock) */
@media (min-width: 641px) and (max-width: 1499px) {
  #tmc-offer:not(.is-open) {
    top: auto; bottom: 20px; right: 20px; left: auto;
    width: auto; max-width: calc(100vw - 40px); padding: 11px 12px 11px 18px;
    border-radius: 999px; cursor: pointer;
    display: flex; align-items: center; gap: 10px;
    transform: translateY(18px);
  }
  #tmc-offer.is-in:not(.is-open) { transform: translateY(0); }
  #tmc-offer:not(.is-open) .tmc-offer-k,
  #tmc-offer:not(.is-open) .tmc-offer-s,
  #tmc-offer:not(.is-open) .tmc-offer-form,
  #tmc-offer:not(.is-open) .tmc-offer-err { display: none; }
  #tmc-offer:not(.is-open) .tmc-offer-h {
    margin: 0; font-size: 15px; white-space: nowrap; display: flex; align-items: center;
  }
  #tmc-offer:not(.is-open) .tmc-offer-h::after {
    content: 'Claim \2192'; margin-left: 12px; padding: 6px 13px; border-radius: 999px;
    background: var(--accent,oklch(.56 .16 292)); color: #fff; font-size: 12.5px; font-weight: 700;
  }
  #tmc-offer:not(.is-open) .tmc-offer-x {
    position: static; width: 24px; height: 24px; font-size: 12px; margin-left: 2px; flex: none;
  }
  /* expanded back to the full card, anchored bottom-right */
  #tmc-offer.is-open { top: auto; bottom: 20px; right: 20px; transform: translateY(0); }
}

/* free-$99-test badge on the testing promo card */
.tmc-testpromo__gift {
  display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
  background: var(--accent,oklch(.56 .16 292)); color: #fff;
  font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 600; font-size: 12.5px;
  padding: 7px 13px; border-radius: 999px; margin-bottom: 12px;
  box-shadow: 0 10px 24px -12px rgba(124,92,224,.6);
}
.tmc-testpromo__gift b { font-weight: 800; }
@media (max-width: 640px) { .tmc-testpromo__gift { font-size: 11px; padding: 6px 11px; } }

/* ============ order review (pay-first modal) ============ */
#tmc-paywall {
  position: relative; z-index: 1; width: 100%; max-width: 720px; max-height: 94vh; overflow: auto;
  background: #F6F8FB; border-radius: 24px; box-shadow: 0 50px 120px -28px rgba(0,0,0,.6);
  animation: tmcpop .3s cubic-bezier(.2,.85,.25,1);
}
.tmc-pw-x { position: absolute; top: 16px; right: 16px; z-index: 2; border: none; background: #fff; color: #5B6472; width: 38px; height: 38px; border-radius: 50%; cursor: pointer; font-size: 16px; box-shadow: 0 4px 12px -4px rgba(20,24,31,.25); }
.tmc-pw-head { text-align: center; padding: 34px 26px 4px; }
.tmc-pw-step { display: inline-block; font-family: 'JetBrains Mono',monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--accent-deep,oklch(.46 .14 293)); background: var(--accent-tint,#f0eafb); padding: 5px 12px; border-radius: 999px; margin-bottom: 14px; }
.tmc-pw-head h3 { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: clamp(24px,3.4vw,32px); letter-spacing: -.025em; margin: 0 0 8px; color: #14181F; }
.tmc-pw-head p { font-size: 14px; color: #5B6472; line-height: 1.55; margin: 0 auto; max-width: 52ch; }
.tmc-pw-body { padding: 20px 22px 6px; display: grid; gap: 14px; }
.tmc-pw-order { display: grid; gap: 10px; }
.tmc-pw-orow { display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid #E7EAEF; border-radius: 16px; padding: 12px 16px; }
.tmc-pw-othumb { flex: none; width: 48px; height: 48px; border: 1px solid #EEF1F5; border-radius: 12px; background: #fff; display: flex; align-items: center; justify-content: center; }
.tmc-pw-othumb img { max-width: 84%; max-height: 84%; object-fit: contain; mix-blend-mode: multiply; }
.tmc-pw-otx { min-width: 0; display: flex; flex-direction: column; }
.tmc-pw-otx b { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 700; font-size: 15px; letter-spacing: -.01em; color: #14181F; }
.tmc-pw-otx small { font-family: 'JetBrains Mono',monospace; font-size: 11px; color: #8A93A2; }
.tmc-pw-owhole { margin-left: auto; flex: none; font-size: 11px; font-weight: 700; letter-spacing: -.01em; color: var(--accent-deep,oklch(.46 .14 293)); background: var(--accent-tint,#f0eafb); border-radius: 999px; padding: 5px 11px; white-space: nowrap; }
.tmc-pw-empty { text-align: center; background: #fff; border: 1px dashed #D8DDE5; border-radius: 18px; padding: 34px 20px; }
.tmc-pw-empty__ico { width: 52px; height: 52px; border-radius: 15px; background: #F1F2F5; color: #C7CCD6; margin: 0 auto 14px; display: flex; align-items: center; justify-content: center; font-size: 24px; }
.tmc-pw-empty p { font-size: 14.5px; line-height: 1.55; color: #5B6472; margin: 0 auto; max-width: 44ch; }
.tmc-pw-inc { background: #fff; border: 1px solid #E7EAEF; border-radius: 18px; padding: 18px 20px; }
.tmc-pw-inc__k { font-family: 'JetBrains Mono',monospace; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #8A93A2; margin-bottom: 12px; }
.tmc-pw-feats { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.tmc-pw-feats li { display: flex; gap: 9px; align-items: flex-start; font-size: 13.5px; color: #14181F; line-height: 1.4; }
.tmc-pw-feats svg { width: 15px; height: 15px; color: var(--accent,oklch(.56 .16 292)); flex: none; margin-top: 1px; }
.tmc-pw-foot { position: sticky; bottom: 0; background: linear-gradient(#F6F8FB00, #F6F8FB 30%); padding: 12px 22px 24px; text-align: center; }
.tmc-pw-go { width: 100%; max-width: 460px; border: none; cursor: pointer; font-family: inherit; background: var(--accent,oklch(.56 .16 292)); color: #fff; font-weight: 700; font-size: 16px; padding: 16px; border-radius: 999px; box-shadow: 0 18px 40px -16px rgba(124,92,224,.6); }
.tmc-pw-alt { display: block; width: 100%; max-width: 460px; margin: 10px auto 0; border: 1px solid #D8DDE5; background: #fff; color: #14181F; cursor: pointer; font-family: inherit; font-weight: 600; font-size: 14.5px; padding: 13px; border-radius: 999px; }
.tmc-pw-note { font-size: 12px; color: #8A93A2; margin: 12px 0 0; }

/* ============ special-offer badge (gold wax-seal) ============ */
/* sits beside "Get your test now" and matches its pill exactly: the row
   stretches both children to one height, so padding differences can't
   knock them out of alignment. */
.tmc-testpromo__actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: stretch; margin-top: 12px; }
.tmc-testpromo__actions > .tmc-testpromo__cta { align-self: auto; margin-top: 0; }
.tmc-offer-badge {
  display: inline-flex; align-items: center; gap: 9px;
  background: linear-gradient(#FEF9EC,#FDF3DC); border: 1.5px solid #EAC163;
  border-radius: 13px; padding: 12px 20px 12px 15px;
  box-shadow: 0 8px 20px -14px rgba(180,120,20,.5);
}
.tmc-offer-badge__seal { position: relative; flex: none; width: 22px; height: 22px; }
.tmc-offer-badge__seal .seal-svg { width: 22px; height: 22px; display: block; filter: drop-shadow(0 2px 3px rgba(140,25,15,.4)); }
.tmc-offer-badge__sp1, .tmc-offer-badge__sp2 { display: none; }   /* sparkles are too busy at pill scale */
.tmc-offer-badge__tx { display: inline-flex; align-items: baseline; gap: 6px; line-height: 1.2; }
.tmc-offer-badge__tx b { font-family: 'Sora','Hanken Grotesk',sans-serif; font-weight: 800; font-size: 14px; letter-spacing: -.01em; color: #C0392B; white-space: nowrap; }
.tmc-offer-badge__tx > span { font-size: 14px; font-weight: 600; color: #14181F; }
@media (max-width: 640px) {
  .tmc-offer-badge { padding: 10px 16px 10px 12px; gap: 8px; border-radius: 11px; }
  .tmc-offer-badge__seal, .tmc-offer-badge__seal .seal-svg { width: 19px; height: 19px; }
  .tmc-offer-badge__tx b, .tmc-offer-badge__tx > span { font-size: 12.5px; }
}

/* ------------------- MDside availability + hosted checkout ------------------ */
/* a dose MDside marks unsellable: visible but inert */
.tmc-dose.is-off { opacity: .38; cursor: default; text-decoration: line-through; }
.tmc-dp-row.is-off { opacity: .45; cursor: not-allowed; }
.tmc-dp-row.is-off:hover { border-color: #E7EAEF; background: #fff; }
/* per-item "Checkout →" pill on order-review rows */
.tmc-pw-buy { margin-left: auto; flex: none; font-size: 12.5px; font-weight: 700; letter-spacing: -.01em; color: #fff; background: #14181F; border-radius: 999px; padding: 8px 14px; white-space: nowrap; text-decoration: none; }
.tmc-pw-buy:hover { background: #2A303B; }
/* shipping-coverage soft warning under a cart line */
.tmc-pw-cov { display: block; color: #B45309; font-size: 11px; font-weight: 600; margin-top: 2px; }
