/* Kit dialog from the LINCEO design system (codex/linceo-design-system-v1: the dialog rules of home-site.css, then home-design-system.css,
   in their order). Loaded last so it replaces the older dialog styles; kit-dialog-ds.js adds the marker-family tabs. */
:where(#product-shell) .kit-actions button:focus-visible, :where(#product-shell) .kit-dialog button:focus-visible, :where(#product-shell) .kit-dialog summary:focus-visible { outline: rgb(52, 106, 95) solid 2px; outline-offset: 4px; }
:where(#product-shell) .kit-dialog { width: min(720px, -32px + 100vw); max-height: calc(100dvh - 32px); padding: 0px; overflow: auto; border-radius: 28px; border: 1px solid rgb(255, 255, 255); background: linear-gradient(125deg, rgba(246, 231, 217, 0.96), rgba(248, 242, 229, 0.96) 48%, rgba(224, 237, 229, 0.96)); backdrop-filter: blur(32px); }
:where(#product-shell) .kit-dialog h2 { font-size: 38px; line-height: 1.12; letter-spacing: -1.2px; max-width: 510px; margin: 0px 0px 14px; }
#kit-detail.km-dialog { width: min(1100px, -40px + 100vw); max-width: none; max-height: calc(100dvh - 40px); padding: 0px; border: 1px solid rgb(255, 255, 255); border-radius: 28px; background: rgb(248, 247, 241); color: rgb(39, 42, 48); box-shadow: rgba(16, 46, 53, 0.25) 0px 30px 100px; overflow: auto; font-family: Inter, Arial, sans-serif; }
.km-dialog * { box-sizing: border-box; }
.km-header { display: flex; align-items: flex-start; justify-content: space-between; padding: 30px 36px 20px; gap: 24px; }
.km-header h2 { font-weight: 400; font-size: clamp(28px, 3.1vw, 40px); letter-spacing: -0.045em; line-height: 1.06; margin: 0px; }
.km-close { flex: 0 0 auto; position: sticky; top: 18px; border: 1px solid rgb(216, 220, 227); background: rgba(255, 255, 255, 0.6); color: rgb(39, 42, 48); border-radius: 50%; width: 42px; height: 42px; font-size: 28px; font-weight: 300; cursor: pointer; z-index: 3; }
.km-tabs { display: flex; gap: 6px; padding: 0px 36px 20px; border-bottom: 1px solid rgba(39, 42, 48, 0.07); }
.km-tabs button { border: 1px solid transparent; border-radius: 24px; background: transparent; padding: 11px 19px; font: 500 13px Inter, Arial, sans-serif; color: rgb(101, 123, 115); cursor: pointer; }
.km-tabs button[aria-selected="true"] { background: rgb(39, 42, 48); color: rgb(255, 255, 255); }
.km-tabs button:hover:not([aria-selected="true"]) { background: rgb(255, 255, 255); border-color: rgb(220, 224, 231); }
.km-content { padding: 26px 36px 32px; }
.km-content [hidden] { display: none !important; }
.km-overview-grid { display: grid; grid-template-columns: 1.08fr 1fr; gap: 38px; align-items: start; }
.km-gallery { min-width: 0px; }
.km-photo { height: 345px; display: grid; place-items: center; border: 1px solid rgb(255, 255, 255); border-radius: 22px; background: radial-gradient(at 20% 80%, rgba(240, 213, 196, 0.48), transparent 65%), rgb(239, 238, 230); overflow: hidden; padding: 16px; }
.km-photo img { display: block; width: 100%; height: 100%; object-fit: contain; max-height: 312px; }
.km-dialog h3 { font-size: 31px; letter-spacing: -0.035em; line-height: 1.12; font-weight: 400; margin: 0px 0px 14px; }
.km-process { padding-top: 8px; }
.km-process ol { list-style: none; margin: 22px 0px; padding: 0px; display: grid; gap: 22px; }
.km-process li { display: flex; gap: 15px; }
.km-process li > span { font-size: 12px; color: rgb(125, 149, 135); padding-top: 3px; }
.km-dialog h4 { font-size: 15px; font-weight: 500; margin: 0px 0px 7px; line-height: 1.3; }
.km-process p { font-size: 13px; line-height: 1.65; color: rgb(100, 123, 112); margin: 0px; }
.km-next { display: flex; width: 100%; justify-content: space-between; align-items: center; padding: 14px 18px; border: 1px solid rgb(207, 214, 226); border-radius: 25px; background: rgb(255, 255, 255); color: rgb(39, 42, 48); font: 500 13px Inter, Arial, sans-serif; cursor: pointer; }
.km-testing-grid { display: grid; grid-template-columns: 1.13fr 1fr; gap: 30px; align-items: start; }
.km-targeted { min-width: 0px; }
.km-dialog .km-lead { font-size: 16px; line-height: 1.4; margin: 0px 0px 9px; }
.km-scope { font-size: 12px; line-height: 1.5; color: rgb(100, 123, 112); max-width: 430px; margin: 0px 0px 20px; }
.km-marker-group { margin: 0px 0px 17px; }
.km-marker-group h4 { font-size: 12px; margin-bottom: 8px; }
.km-marker-group ul { list-style: none; display: flex; flex-wrap: wrap; gap: 6px; padding: 0px; margin: 0px; }
.km-marker-group li { font-size: 11px; line-height: 1.4; border: 1px solid rgb(223, 226, 232); background: rgba(255, 255, 255, 0.65); border-radius: 14px; padding: 6px 10px; color: rgb(65, 97, 85); }
.km-signature { border: 1px solid rgb(255, 255, 255); border-radius: 23px; padding: 25px; background: radial-gradient(at 80% 0px, rgba(215, 223, 236, 0.667), transparent 55%), radial-gradient(at 0px 95%, rgba(240, 221, 201, 0.8), transparent 60%), rgb(238, 238, 231); position: sticky; top: 18px; }
.km-research { display: inline-block; border: 1px solid rgb(159, 173, 184); border-radius: 20px; padding: 5px 10px; color: rgb(88, 107, 124); font-size: 10px; margin-bottom: 14px; }
.km-signature-art { max-width: 290px; margin: 0px auto 12px; }
.km-signature-art svg { display: block; width: 100%; height: auto; fill: none; stroke-width: 2.2; stroke-linecap: round; }
.km-omics { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 18px; }
.km-omics span { font-size: 11px; letter-spacing: 0.02em; }
.km-omics span + span::before { content: "·"; margin-right: 8px; color: rgb(131, 153, 142); }
.km-signature p { font-size: 13px; line-height: 1.6; color: rgb(82, 111, 98); margin: 0px 0px 12px; }
.km-signature a { color: rgb(39, 42, 48); display: flex; justify-content: space-between; text-decoration: none; font-size: 12px; margin-top: 18px; padding-top: 15px; border-top: 1px solid rgba(39, 42, 48, 0.125); }
.km-dialog button:focus-visible, .km-dialog a:focus-visible { outline: rgb(100, 121, 150) solid 2px; outline-offset: 3px; }
.km-header { position: sticky; top: 0px; z-index: 4; background: rgb(248, 247, 241); }
.km-photo { height: auto; padding: 0px; overflow: hidden; aspect-ratio: 4 / 3; background: rgb(233, 225, 216); }
.km-photo img { width: 100%; height: 100%; max-height: none; object-fit: contain; display: block; }
.km-contents { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 18px; list-style: none; margin: 20px 0px 0px; padding: 0px; font-size: 13px; color: rgb(83, 107, 99); }
.km-contents li { display: flex; align-items: center; gap: 8px; }
.km-contents li::before { content: ""; width: 5px; height: 5px; flex: 0 0 auto; border-radius: 50%; background: rgb(139, 157, 145); }
.km-signature-art { width: min(100%, 300px); margin: 20px auto; }
.km-signature-art svg { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1; }
.km-signature-art .loop-signature-web path { fill: none; }
#kit-detail.km-dialog { width: min(1240px, -32px + 100vw); overflow: hidden; }
#kit-detail.km-dialog[open] { display: flex; flex-direction: column; height: min(800px, 100dvh - 32px); max-height: calc(100dvh - 32px); }
.km-header { position: static; flex: 0 0 auto; padding: 20px 28px 12px; align-items: center; }
.km-header h2 { font-size: clamp(26px, 3vw, 36px); }
.km-tabs { flex: 0 0 auto; padding: 0px 28px 12px; }
.km-tabs button { padding: 9px 17px; }
.km-content { flex: 1 1 0%; min-height: 0px; padding: 18px 28px; overflow: auto; }
.km-footer { flex: 0 0 auto; display: flex; justify-content: flex-end; align-items: center; padding: 12px 28px; border-top: 1px solid rgba(39, 42, 48, 0.082); background: rgb(248, 247, 241); }
.km-order { display: inline-flex; align-items: center; gap: 26px; min-height: 44px; padding: 10px 14px 10px 22px; border-radius: 30px; background: rgb(39, 42, 48); color: white; text-decoration: none; font: 500 14px Inter, Arial, sans-serif; transition: background 0.2s; }
.km-order span { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(255, 255, 255, 0.082); transition: background 0.2s, transform 0.2s; }
.km-order:hover { background: rgb(52, 89, 81); }
.km-order:hover span { background: rgb(255, 255, 255); color: rgb(39, 42, 48); transform: rotate(45deg); }
.km-content { overflow: visible; }
.km-content > section, .km-testing-grid, .km-overview-grid { height: 100%; min-height: 0px; }
.km-testing-grid { grid-template-columns: minmax(0px, 1.65fr) minmax(0px, 1fr); gap: 24px; }
.km-targeted { display: flex; flex-direction: column; min-height: 0px; }
.km-dialog h3 { font-size: clamp(23px, 2.3vw, 29px); margin-bottom: 7px; }
.km-dialog .km-lead { font-size: 15px; margin-bottom: 5px; }
.km-scope { font-size: 12px; line-height: 1.4; margin-bottom: 14px; max-width: 620px; }
.km-marker-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 20px; align-content: start; }
.km-marker-group { margin: 0px; }
.km-marker-group h4 { font-size: 12px; margin-bottom: 6px; }
.km-marker-group ul { gap: 5px; }
.km-marker-group li { font-size: 12px; line-height: 1.3; padding: 5px 8px; }
.km-signature { position: static; height: 100%; min-height: 0px; display: flex; flex-direction: column; padding: 18px 20px; border-radius: 20px; }
.km-research { align-self: flex-start; margin-bottom: 8px; padding: 4px 9px; }
.km-signature h3 { flex: 0 0 auto; }
.km-signature-art { flex: 1 1 0%; min-height: 80px; width: 100%; max-width: none; margin: 6px auto; display: flex; align-items: center; justify-content: center; }
.km-signature-art svg { width: auto; height: 100%; max-width: 100%; max-height: 260px; aspect-ratio: 1 / 1; }
.km-omics { flex: 0 0 auto; margin-bottom: 9px; }
.km-signature p { font-size: 12px; line-height: 1.4; margin-bottom: 8px; }
.km-signature a { margin-top: 10px; padding-top: 10px; flex: 0 0 auto; }
.km-overview-grid { gap: 26px; align-items: stretch; }
.km-gallery { display: flex; min-height: 0px; flex-direction: column; }
.km-photo { flex: 1 1 0%; min-height: 0px; aspect-ratio: auto; }
.km-photo img { min-height: 0px; }
.km-contents { flex: 0 0 auto; margin-top: 12px; gap: 8px 14px; font-size: 12px; }
.km-process { display: flex; flex-direction: column; min-height: 0px; padding-top: 2px; }
.km-process h3 br { display: none; }
.km-process ol { flex: 1 1 0%; align-content: space-evenly; margin: 12px 0px; gap: 14px; }
.km-process p { font-size: 13px; line-height: 1.45; }
.km-process li { gap: 12px; }
.km-next { padding: 11px 16px; flex: 0 0 auto; }
.linceo-release :is(.km-close, .medical-team-close, .close, .hs-demo-close) { background: rgb(255, 255, 255); color: var(--ds-ink); border: 1px solid var(--ds-line); box-shadow: none; min-width: 44px; min-height: 44px; }
.linceo-release :is(#detail, #plan-preview, .medical-team-dialog, #kit-detail.km-dialog, .nc-nav-dialog) { background: rgb(255, 255, 255); color: var(--ds-ink); border: 1px solid var(--ds-line); border-radius: var(--ds-radius); font-family: SourceDS, sans-serif; box-shadow: rgba(39, 42, 48, 0.15) 0px 24px 80px; }
.linceo-release :is(.medical-team-dialog-content, #kit-detail) :is(p, li, small, a) { color: var(--ds-muted); font-family: SourceDS, sans-serif; }
.linceo-release #kit-detail :is(.km-tabs button, .km-item, .km-next) { background: var(--ds-paper); color: var(--ds-muted); border-color: var(--ds-line); font-family: SourceDS, sans-serif; font-size: 16px; }
.linceo-release #kit-detail .km-tabs button[aria-selected="true"] { color: var(--ds-ink); background: rgb(255, 255, 255); border-color: rgb(215, 182, 159); box-shadow: rgb(242, 207, 185) 0px -2px inset; }
.linceo-release #kit-detail :is(.km-photo, .km-signature, .km-marker-group, .km-process li) { background: var(--ds-paper); border-color: var(--ds-line); color: var(--ds-ink); }
.linceo-release #kit-detail :is(h2, h3, h4, .km-lead, .km-price strong) { color: var(--ds-ink); font-family: ManropeDS, sans-serif; }
.linceo-release #kit-detail :is(.km-footer, .km-process-number, .km-catalogue-note) { background: var(--ds-paper); color: var(--ds-muted); border-color: var(--ds-line); }
.linceo-release :is(#detail, #plan-preview, .medical-team-dialog, #kit-detail.km-dialog) { background: var(--ds-white); border-color: var(--ds-line); border-radius: 26px; }
.linceo-release :is(#detail, #plan-preview, .medical-team-dialog, #kit-detail.km-dialog) :is(h2, h3, h4) { font-family: ManropeDS, Arial, sans-serif; font-weight: 500; font-style: normal; }
.linceo-release #kit-detail .km-tabs button[aria-selected="true"] { background: var(--ds-white); color: var(--ds-ink); border-color: var(--ds-line); box-shadow: inset 0 -2px var(--ds-blue); }
.linceo-release #kit-detail :is(.km-photo, .km-signature, .km-marker-group, .km-process li) { background: var(--ds-paper); border-color: var(--ds-line); }
html.linceo-release #product-shell #kit-detail { box-sizing: border-box; height: auto !important; min-height: 0px !important; max-height: calc(-48px + 100svh) !important; overflow: hidden !important; }
html.linceo-release #product-shell #kit-detail .km-header, html.linceo-release #product-shell #kit-detail .km-footer { background: none; position: static; flex: 0 0 auto; }
html.linceo-release #product-shell #kit-detail .km-signature { background: rgb(16, 28, 42); color: rgb(245, 247, 250); transform: none; margin: 0px; min-height: 0px; }
html.linceo-release #product-shell #kit-detail .km-signature :is(h3, p, a) { color: rgb(245, 247, 250); }
html.linceo-release #product-shell #kit-detail .km-signature-art { padding: 0px; background: none; border: 0px; }
html.linceo-release #product-shell #kit-detail .km-marker-group { background: none; border: 0px; }
html.linceo-release #product-shell #kit-detail .km-marker-group li { border: 0px; border-radius: 0px; background: none; padding: 0px; }
html.linceo-release #kit-detail { max-width: none; max-height: calc(-48px + 100svh); border-radius: 28px; width: min(1200px, -64px + 100vw) !important; height: auto !important; overflow: hidden !important; padding: 30px !important; }
html.linceo-release #kit-detail .km-header { padding: 0px; margin: 0px 0px 20px; align-items: center; }
html.linceo-release #kit-detail .km-close { width: 42px; height: 42px; font-size: 28px; }
html.linceo-release #kit-detail .km-tabs { padding: 0px; gap: 8px; margin: 0px 0px 20px; }
html.linceo-release #kit-detail .km-tabs button { font-size: 17px; padding: 12px 20px; min-height: 44px; }
html.linceo-release .km-800-summary { font: 400 18px / 1.4 SourceDS, sans-serif; color: rgb(100, 104, 112); margin: 0px 0px 22px; }
html.linceo-release #kit-detail .km-content { padding: 0px !important; overflow: visible !important; height: auto !important; max-height: none !important; }
html.linceo-release #kit-detail .km-testing-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; align-items: stretch; }
html.linceo-release #kit-detail .km-targeted, html.linceo-release #kit-detail .km-signature { padding: 24px; border: 1px solid rgb(224, 226, 229); border-radius: 20px; background: rgb(250, 249, 246); min-width: 0px; min-height: 410px; display: flex; flex-direction: column; }
html.linceo-release #kit-detail .km-targeted h3, html.linceo-release #kit-detail .km-signature h3 { font: 500 27px / 1.15 ManropeDS, sans-serif; letter-spacing: -0.03em; margin: 0px 0px 8px; }
html.linceo-release #kit-detail .km-lead { font: 600 20px / 1.25 SourceDS, sans-serif; margin: 0px 0px 10px; }
html.linceo-release #kit-detail .km-scope { font: 400 15px / 1.4 SourceDS, sans-serif; margin: 0px 0px 18px; color: rgb(100, 104, 112); }
html.linceo-release .km-category-nav { display: flex; flex-wrap: wrap; gap: 7px; margin-bottom: 18px; }
html.linceo-release .km-category-nav button { border: 1px solid rgb(218, 220, 224); border-radius: 9px; padding: 7px 10px; background: white; color: rgb(100, 104, 112); font: 400 15px / 1.3 SourceDS, sans-serif; cursor: pointer; }
html.linceo-release .km-category-nav button[aria-selected="true"] { border-color: rgb(70, 124, 154); color: rgb(39, 42, 48); background: rgb(255, 255, 255); }
html.linceo-release #kit-detail .km-marker-grid { display: block; padding: 0px; overflow: visible; }
html.linceo-release #kit-detail .km-marker-group { border: 0px; padding: 0px; }
html.linceo-release #kit-detail .km-marker-group[hidden] { display: none; }
html.linceo-release #kit-detail .km-marker-group h4 { font-size: 17px; margin: 0px 0px 10px; }
html.linceo-release #kit-detail .km-marker-group ul { display: grid; grid-template-columns: 1fr 1fr; gap: 7px 16px; padding: 0px; list-style: none; margin: 0px; }
html.linceo-release #kit-detail .km-marker-group li { font: 400 16px / 1.3 SourceDS, sans-serif; }
html.linceo-release #kit-detail .km-signature { position: relative; background: rgb(16, 28, 42); color: rgb(245, 247, 250); padding-right: 24px; }
html.linceo-release #kit-detail .km-research { font: 400 13px / 1.3 SourceDS, sans-serif; color: rgb(175, 191, 206); letter-spacing: 0.04em; margin: 0px 0px 8px; }
html.linceo-release #kit-detail .km-signature-art { height: 150px; width: 180px; align-self: center; margin: 0px; flex: 0 0 auto; }
html.linceo-release #kit-detail .km-signature-art svg { width: 100%; height: 100%; overflow: visible; }
html.linceo-release #kit-detail .km-omics { display: flex; justify-content: center; gap: 18px; margin: 0px 0px 12px; font: 400 15px / 1.3 SourceDS, sans-serif; color: rgb(134, 213, 222); }
html.linceo-release #kit-detail .km-signature > p { font: 400 16px / 1.35 SourceDS, sans-serif; margin: 0px 0px 10px; color: rgb(245, 247, 250); }
html.linceo-release #kit-detail .km-signature > a { margin-top: auto; font: 600 17px / 1.3 SourceDS, sans-serif; color: white; padding-top: 6px; text-underline-offset: 5px; }
html.linceo-release #kit-detail .km-footer { padding: 20px 0px 0px; margin: 0px; justify-content: flex-end; }
html.linceo-release #kit-detail .km-order { min-height: 52px; font-size: 17px; }
html.linceo-release #kit-detail .km-overview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; align-items: center; }
html.linceo-release #kit-detail .km-gallery { padding: 0px; border: 0px; background: none; box-shadow: none; }
html.linceo-release #kit-detail .km-photo { padding: 0px; border: 0px; background: none; border-radius: 18px; overflow: hidden; height: 270px; }
html.linceo-release #kit-detail .km-photo img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
html.linceo-release #kit-detail .km-contents { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; font: 400 16px / 1.3 SourceDS, sans-serif; margin: 16px 0px 0px; }
html.linceo-release #kit-detail .km-contents li { font-size: 16px; }
html.linceo-release #kit-detail .km-process { padding: 0px; }
html.linceo-release #kit-detail .km-process h3 { font: 500 28px / 1.18 ManropeDS, sans-serif; margin: 0px 0px 22px; }
html.linceo-release #kit-detail .km-process ol { display: grid; gap: 18px; }
html.linceo-release #kit-detail .km-process li h4 { font: 600 19px / 1.2 SourceDS, sans-serif; margin: 0px 0px 6px; }
html.linceo-release #kit-detail .km-process li p { font: 400 16px / 1.4 SourceDS, sans-serif; margin: 0px; }
html.linceo-release #kit-detail .km-process li > span { font-size: 16px; }
html.linceo-release #kit-detail .km-next { font-size: 17px; margin-top: 22px; }
html.linceo-release #product-shell #kit-detail[open] { display: block !important; }
html.linceo-release #product-shell #kit-detail .km-content { min-height: 0px; flex: 0 0 auto; max-height: none; height: auto !important; }
html.linceo-release #product-shell #kit-detail .km-testing-grid { height: auto; min-height: 0px; align-items: stretch; }
html.linceo-release #product-shell #kit-detail :is(.km-targeted, .km-signature) { position: static; inset: auto; height: 410px; min-height: 0px; margin: 0px; align-self: stretch; box-sizing: border-box; transform: none !important; }
html.linceo-release #product-shell #kit-detail .km-signature { display: grid; grid-template-columns: 1fr 155px; grid-template-rows: auto auto auto auto auto 1fr; gap: 8px 16px; }
html.linceo-release #product-shell #kit-detail .km-research { grid-area: 1 / 1; place-self: end start; margin: 0px; }
html.linceo-release #product-shell #kit-detail .km-signature h3 { grid-area: 2 / 1; margin: 0px; align-self: start; }
html.linceo-release #product-shell #kit-detail .km-signature-art { grid-area: 1 / 2 / 3; width: 155px; height: 155px; margin: 0px; align-self: center; }
html.linceo-release #product-shell #kit-detail .km-omics { grid-column: 1 / -1; margin: 4px 0px 10px; font-size: 15px; }
html.linceo-release #product-shell #kit-detail .km-signature > p { grid-column: 1 / -1; font-size: 17px; line-height: 1.4; margin: 0px; }
html.linceo-release #product-shell #kit-detail .km-signature > a { grid-column: 1 / -1; align-self: end; margin: 0px; border-top: 1px solid rgba(175, 191, 206, 0.25); padding-top: 12px; font-size: 18px; }
html.linceo-release #product-shell #kit-detail[open] { flex-direction: column; gap: 0px; display: flex !important; height: min(850px, -28px + 100svh) !important; max-height: calc(-28px + 100svh) !important; padding: 22px 26px !important; width: min(1300px, -36px + 100vw) !important; }
html.linceo-release #product-shell #kit-detail .km-header { padding: 0px; margin: 0px 0px 12px; }
html.linceo-release #product-shell #kit-detail #kit-title { font-size: 30px; margin: 0px; }
html.linceo-release #product-shell #kit-detail .km-tabs { padding: 0px 0px 12px; margin: 0px; border: 0px; }
html.linceo-release #product-shell #kit-detail .km-tabs button { padding: 9px 18px; font-size: 17px; }
html.linceo-release #product-shell #kit-detail .km-800-summary { font-size: 17px; line-height: 1.3; margin: 0px 0px 14px; }
html.linceo-release #product-shell #kit-detail .km-content { flex: 1 1 0%; min-height: 0px; overflow: visible; padding: 0px; height: auto !important; }
html.linceo-release #product-shell #kit-detail .km-content > section { height: 100%; }
html.linceo-release #product-shell #kit-detail .km-testing-grid { height: 100%; grid-template-columns: 1fr 1fr; gap: 22px; }
html.linceo-release #product-shell #kit-detail :is(.km-targeted, .km-signature) { height: 100%; min-height: 0px; padding: 20px; border-radius: 20px; }
html.linceo-release #product-shell #kit-detail .km-targeted { display: flex; flex-direction: column; gap: 0px; overflow: visible; }
html.linceo-release #product-shell #kit-detail .km-targeted h3 { font-size: 26px; line-height: 1.15; margin: 0px 0px 6px; }
html.linceo-release #product-shell #kit-detail .km-lead { font-size: 18px; margin: 0px 0px 8px; }
html.linceo-release #product-shell #kit-detail .km-scope { font-size: 15px; line-height: 1.3; margin: 0px 0px 14px; }
html.linceo-release #product-shell #kit-detail .km-category-nav { display: flex; flex-wrap: wrap; gap: 6px; margin: 0px 0px 16px; }
html.linceo-release #product-shell #kit-detail .km-category-nav button { font-size: 15px; line-height: 1.2; padding: 7px 10px; }
html.linceo-release #product-shell #kit-detail .km-marker-grid { display: block; flex: 1 1 0%; min-height: 0px; }
html.linceo-release #product-shell #kit-detail .km-marker-group { margin: 0px; }
html.linceo-release #product-shell #kit-detail .km-marker-group h4 { position: absolute; clip-path: inset(50%); height: 1px; width: 1px; overflow: hidden; }
html.linceo-release #product-shell #kit-detail .km-marker-group ul { display: grid; grid-template-columns: repeat(2, minmax(0px, 1fr)); gap: 10px 18px; align-content: start; }
html.linceo-release #product-shell #kit-detail .km-marker-group li { font: 400 17px / 1.3 SourceDS, sans-serif; padding: 0px; margin: 0px; }
html.linceo-release #product-shell #kit-detail .km-signature { display: flex; flex-direction: column; gap: 6px; text-align: center; }
html.linceo-release #product-shell #kit-detail .km-research { place-self: center auto; margin: 0px; padding: 3px 10px; font-size: 12px; color: rgb(175, 191, 206); }
html.linceo-release #product-shell #kit-detail .km-signature h3 { font-size: 25px; line-height: 1.15; margin: 0px; text-align: center; align-self: stretch; }
html.linceo-release #product-shell #kit-detail .km-signature-art { flex: 1 1 0%; min-height: 100px; width: 100%; height: auto; max-width: none; margin: 0px; align-self: center; display: flex; align-items: center; justify-content: center; }
html.linceo-release #product-shell #kit-detail .km-signature-art svg { height: 100%; max-height: 265px; width: auto; max-width: 100%; aspect-ratio: 1 / 1; overflow: visible; }
html.linceo-release #product-shell #kit-detail .km-omics { font-size: 15px; margin: 0px; flex: 0 0 auto; }
html.linceo-release #product-shell #kit-detail .km-signature > p { font-size: 16px; line-height: 1.3; margin: 0px; flex: 0 0 auto; }
html.linceo-release #product-shell #kit-detail .km-signature > a { align-self: stretch; flex: 0 0 auto; font-size: 17px; margin: 4px 0px 0px; padding-top: 10px; }
html.linceo-release #product-shell #kit-detail .km-overview-grid { height: 100%; gap: 36px; grid-template-columns: 1fr 1fr; align-items: stretch; }
html.linceo-release #product-shell #kit-detail .km-gallery { min-height: 0px; display: flex; flex-direction: column; padding: 0px; }
html.linceo-release #product-shell #kit-detail .km-photo { flex: 1 1 0%; min-height: 0px; height: auto; max-height: none; aspect-ratio: auto; margin: 0px; }
html.linceo-release #product-shell #kit-detail .km-photo img { height: 100%; width: 100%; max-height: none; object-fit: contain; }
html.linceo-release #product-shell #kit-detail .km-contents { flex: 0 0 auto; margin: 20px 0px 8px; gap: 12px 18px; }
html.linceo-release #product-shell #kit-detail .km-contents li { font-size: 17px; line-height: 1.3; }
html.linceo-release #product-shell #kit-detail .km-process { display: flex; flex-direction: column; padding: 8px 0px; min-height: 0px; }
html.linceo-release #product-shell #kit-detail .km-process h3 { font-size: 27px; line-height: 1.2; margin: 0px 0px 12px; }
html.linceo-release #product-shell #kit-detail .km-process ol { flex: 1 1 0%; gap: 14px; margin: 0px 0px 18px; align-content: space-evenly; }
html.linceo-release #product-shell #kit-detail .km-process li h4 { font-size: 19px; line-height: 1.2; margin: 0px 0px 5px; }
html.linceo-release #product-shell #kit-detail .km-process li p { font-size: 16px; line-height: 1.35; }
html.linceo-release #product-shell #kit-detail .km-next { margin: 0px; padding: 12px 16px; font-size: 17px; }
html.linceo-release #product-shell #kit-detail .km-footer { padding: 16px 0px 0px; margin: 20px 0px 0px; flex: 0 0 auto; }
html.linceo-release #product-shell #kit-detail .km-800-summary { display: none; }
html.linceo-release #product-shell #kit-detail .km-lead strong { font: 500 28px / 1 ManropeDS, sans-serif; vertical-align: baseline; }
html.linceo-release #product-shell #kit-detail .km-metric-v13 { font: 400 20px / 1.2 SourceDS, sans-serif; margin: 4px 0px; }
html.linceo-release #product-shell #kit-detail .km-metric-v13 strong { font: 500 28px / 1 ManropeDS, sans-serif; color: rgb(255, 255, 255); }
html.linceo-release #product-shell #kit-detail .km-signature-art { min-height: 105px; cursor: crosshair; }
html.linceo-release #product-shell #kit-detail .km-signature-art svg { max-height: 280px; outline-offset: 4px; }
.signature-hint-v13 { font-size: 13px; color: rgb(183, 213, 222); line-height: 1.2; }
html.linceo-release #product-shell #kit-detail .km-signature > p:not(.km-metric-v13) { font-size: 16px; line-height: 1.3; }
html.linceo-release #product-shell #kit-detail .km-signature { display: grid; grid-template-columns: 1fr 1fr; grid-template-rows: 30px 29px minmax(160px, 1fr) 20px auto 34px; gap: 6px; padding: 16px; align-items: center; }
html.linceo-release #product-shell #kit-detail .km-signature .km-research { grid-area: 1 / 1; justify-self: start; margin: 0px; }
html.linceo-release #product-shell #kit-detail .km-signature h3 { grid-area: 2 / 1 / 3 / -1; font-size: 25px; }
html.linceo-release #product-shell #kit-detail .km-metric-v13 { grid-area: 1 / 2; justify-self: end; white-space: nowrap; font-size: 17px; color: rgb(255, 255, 255); }
html.linceo-release #product-shell #kit-detail .km-signature-art { grid-area: 3 / 1 / 4 / -1; height: 100%; width: 100%; min-height: 0px; max-height: none; }
html.linceo-release #product-shell #kit-detail .km-signature-art svg { height: 100%; max-height: 280px; filter: brightness(1.6); width: auto; }
.signature-legend-v13 { grid-area: 4 / 1 / 5 / -1; display: flex; justify-content: center; align-items: center; gap: 16px; }
html.linceo-release #product-shell #kit-detail .signature-legend-v13 .km-omics { display: flex; gap: 10px; margin: 0px; font-size: 13px; }
html.linceo-release #product-shell #kit-detail .km-signature > p:not(.km-metric-v13) { grid-area: 5 / 1 / 6 / -1; font-size: 16px; line-height: 1.25; margin: 0px; }
html.linceo-release #product-shell #kit-detail .km-signature > a { grid-area: 6 / 1 / 7 / -1; margin: 0px; padding-top: 9px; }
html.linceo-release #product-shell #kit-detail .km-footer { padding: 10px 0px 0px; margin: 10px 0px 0px; min-height: 0px; flex: 0 0 auto; }
html.linceo-release #product-shell #kit-detail .km-order { min-height: 46px; padding: 10px 16px; font-size: 17px; }
html.linceo-release #product-shell #kit-detail .km-process ol { gap: 13px; justify-content: center; }
html.linceo-release #product-shell #kit-detail .km-process li { position: relative; padding: 15px 16px; display: grid; grid-template-columns: 40px 1fr; gap: 14px; background: rgb(250, 249, 246); border: 1px solid rgb(228, 227, 223); border-radius: 16px; }
html.linceo-release #product-shell #kit-detail .km-process li > span { display: grid; place-items: center; align-self: start; width: 38px; height: 38px; border-radius: 50%; font: 500 17px / 1 ManropeDS, sans-serif; color: rgb(39, 42, 48); background: rgb(255, 255, 255); border: 1px solid rgb(218, 220, 224); }
html.linceo-release #product-shell #kit-detail .km-process li h4 { font-size: 20px; margin: 0px 0px 5px; }
html.linceo-release #product-shell #kit-detail .km-process li p { font-size: 17px; line-height: 1.35; margin: 0px; }
/* The order button: the design system's dark pill with a circled arrow (its .ds-cta). */
html.linceo-release #kit-detail .km-order{justify-content:space-between;gap:22px;min-height:46px;padding:10px 16px;border:1px solid #272a30;border-radius:999px;background:#272a30;color:#fff;font:600 17px/1.2 SourceDS,Arial,sans-serif}
html.linceo-release #kit-detail .km-order>span{width:36px;height:36px;border:1px solid #ffffff60;background:transparent;color:#fff}
html.linceo-release #kit-detail .km-order:hover{background:#3a3e46}
@media(max-width:900px){
 html.linceo-release #kit-detail .km-order{min-height:52px;padding:8px 9px 8px 24px;font-size:16px}
}
/* Our signature card keeps both of its paragraphs: the second one gets its own row above the link. */
html.linceo-release #product-shell #kit-detail .km-signature{grid-template-rows:30px 29px minmax(160px,1fr) 20px auto auto 34px}
html.linceo-release #product-shell #kit-detail .km-signature>p.km-research-copy{grid-area:6/1/7/-1;font-size:13px;line-height:1.35;color:#b7c3cf}
html.linceo-release #product-shell #kit-detail .km-signature>a{grid-area:7/1/8/-1}

/* Phones and tablets: the same design in one column. The dialog fills the screen, its content scrolls between the
   tabs and the order button, and the cards stack (markers, then the signature; photo, then the steps). */
@media(max-width:980px){
 html.linceo-release #product-shell #kit-detail{width:calc(100vw - 24px)!important;padding:18px 16px 14px!important;border-radius:24px}
 html.linceo-release #product-shell #kit-detail[open]{height:calc(100svh - 24px)!important;max-height:calc(100svh - 24px)!important}
 html.linceo-release #product-shell #kit-detail h2#kit-title{font-size:28px;line-height:1.1}
 html.linceo-release #product-shell #kit-detail .km-content{flex:1 1 0%;min-height:0;overflow:hidden auto!important;padding:0 0 8px!important;overscroll-behavior:contain}
 html.linceo-release #product-shell #kit-detail .km-content>section{height:auto}
 html.linceo-release #product-shell #kit-detail :is(.km-testing-grid,.km-overview-grid){display:flex;flex-direction:column;align-items:stretch;gap:14px;height:auto}
 html.linceo-release #product-shell #kit-detail :is(.km-targeted,.km-signature){height:auto;padding:18px}
 html.linceo-release #product-shell #kit-detail .km-signature{grid-template-columns:1fr auto;grid-template-rows:auto auto 240px auto auto auto auto}
 html.linceo-release #product-shell #kit-detail .km-signature h3{font-size:24px}
 html.linceo-release #product-shell #kit-detail .km-photo{flex:none;height:auto;aspect-ratio:4/3}
 html.linceo-release #product-shell #kit-detail .km-gallery{height:auto}
 html.linceo-release #product-shell #kit-detail .km-process{height:auto}
}
