/* B2 batch 1 (P1, 2026-10-24): SITE ADDITIONS for the service family + financing + booking (PORT-PLAN §0: a batch's additions live
   in public/css/add-<family>.css, loaded through its templates' pageCss, never in site.css). Each rule serves a part the approved
   templates do not draw but the contract requires; tokens + type from the approved world only (no new colour, no new face). */

/* copy.ts formPrivacyNote (FACT-161) under every booking host (contract §4): the approved system `.rvs-host-foot` look */
.rvb1-form-privacy { margin-top: 14px; max-width: 60ch; font-size: 14px; line-height: 1.5; color: var(--fg-muted); }

/* the stem-cell Leheal GHL form (contract §3.1a): the embed's own 677 px, no inline style; form_embed.js resizes it */
.v1-book-host.rvb1-ghl-host { min-height: 677px; }
.rvb1-ghl-frame { display: block; width: 100%; height: 677px; border: 0; border-radius: 4px; }
/* TASK FX4 (owner phone screenshot 2026-10-25: the form was a narrow column, inputs ~45 % of the screen). At 600 px and below the
   host is CARDLESS (no tint, ring, radius, shadow or padding; CORE30-POPTIN-PLAYBOOK: strip the chrome on mobile, never the height:
   the 677 px min-height and form_embed.js's auto-height stay) and bleeds out of the page gutter to the screen edges. The GHL form
   draws its own white panel (dashed 4 px border + 20 px padding) inside a TRANSPARENT 20 px side padding of its own page
   (hl_form-builder--main, measured 2026-10-25 at 315-440 px frame widths); the frame is 40 px wider than the host and shifted 20 px
   left, and the host clips it, so only that empty side padding falls outside the screen and the white panel runs edge to edge
   (inputs = viewport - 50 px: 86 % at 360, 88 % at 412). */
@media (max-width: 600px) {
  .v1-book-host.rvb1-ghl-host[data-booking-host] { display: block; background: none; box-shadow: none; border: 0; border-radius: 0; padding: 0; margin-inline: calc(-1 * var(--gutter)); overflow: hidden; }
  .v1-book-host.rvb1-ghl-host .rvb1-ghl-frame { width: calc(100% + 40px); max-width: none; margin-inline: -20px; border-radius: 0; }
}

/* lab logistics (contract §3.3 row 22): three short rows under the timeline, the interior glance-list rhythm */
.rvb1-logistics { margin-top: clamp(36px, 4vw, 56px); display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; border-top: 1px solid color-mix(in srgb, var(--fg) 14%, transparent); padding-top: 20px; }
.rvb1-logistics dt { margin-bottom: 6px; font-size: 12px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--fg-muted); }
.rvb1-logistics dd { font-size: 16px; }
@media (max-width: 767px) { .rvb1-logistics { grid-template-columns: minmax(0, 1fr); gap: 16px; } }

/* a five-step lab timeline (the approved lab template draws four: .rvl-tl-4) */
.rvb1-tl-5 .rvi-tl-list { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; }
@media (max-width: 1023px) { .rvb1-tl-5 .rvi-tl-list { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 48px; } .rvb1-tl-5 .rvi-tl-line { display: none; } }
