/* Lab-data landing page: the reference's spacing and density, with original teal artwork. */
.partnership-page { --data-ink: #101827; --data-muted: #6b7280; color: var(--data-ink); }
.partnership-page h1,.partnership-page h2 { font-weight: 400; letter-spacing: -.025em; }
.partnership-page h2 { font-size: 36px; line-height: 45px; }
.partnership-page h3 { font-size: 20px; line-height: 28px; font-weight: 400; letter-spacing: normal; }
.partnership-page .btn { height: 40px; padding-inline: 20px; font-weight: 400; }
.partnership-page .btn-outline { border-color: #e5e7eb; box-shadow: 0 1px 2px rgb(0 0 0 / .03); }
.anchor-alias { position: absolute; top: 0; pointer-events: none; }
.partnership-page [id] { scroll-margin-top: 96px; }
.data-opening { position: relative; isolation: isolate; }
.data-art { position: absolute; inset: 0 0 0; overflow: hidden; z-index: -1; pointer-events: none; background: radial-gradient(ellipse at 92% 42%, #0bb69c 0%, #51d2be 26%, #a7e9dc 45%, #fff 72%); }
.data-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(125deg,#fff 10%,#fff 28%,rgb(255 255 255 / .85) 39%,transparent 65%),linear-gradient(to bottom,transparent 54%,#fff 96%); }
.assay-field { position: absolute; width: 1280px; height: 1160px; right: -220px; top: 70px; display: grid; grid-template-columns: repeat(8,1fr); grid-auto-rows: 126px; gap: 18px; transform: rotate(-32deg) skew(16deg,10deg) scale(.98); transform-origin: 70% 40%; }
.assay-tile { position: relative; border-radius: 21px; background: linear-gradient(130deg,rgb(255 255 255 / .88),rgb(255 255 255 / .3) 45%,rgb(170 244 227 / .58)); border: 1px solid rgb(255 255 255 / .82); box-shadow: inset 2px 3px 6px rgb(255 255 255 / .9), inset -2px -3px 8px rgb(1 104 96 / .21), 0 5px 7px rgb(6 107 92 / .19); animation: assay-float 8s ease-in-out infinite; animation-delay: var(--delay); }
.assay-tile:nth-child(4n) { background: linear-gradient(135deg,#65d9c7aa,#079e8c77); }
.assay-tile:nth-child(7n) { opacity: .35; }
.assay-wells { position: absolute; inset: 24px 27px; display: grid; grid-template-columns: repeat(3,1fr); gap: 9px; opacity: .78; }
.assay-wells i { border: 1px solid rgb(255 255 255 / .72); border-radius: 50%; background: radial-gradient(circle at 40% 30%,#e1fff6b0,#0b9c8e55); box-shadow: inset 1px 2px 4px rgb(4 95 79 / .15),0 1px 0 rgb(255 255 255 / .8); }
.assay-tile svg { position: absolute; inset: 24px; width: calc(100% - 48px); height: calc(100% - 48px); color: rgb(255 255 255 / .77); stroke-width: 1.4; }
@keyframes assay-float { 0%,100%{transform:translateY(0);filter:brightness(1)} 45%{transform:translateY(-12px);filter:brightness(1.08)} }
.partner-hero { position: relative; display: flex; align-items: center; min-height: 90vh; padding-top: 192px; padding-bottom: 192px; }
.partner-hero-copy { max-width: 576px; }
.partner-hero h1 { font-size: 48px; line-height: 60px; }
.partner-hero p { font-size: 18px; line-height: 28px; margin-top: 24px; color: #64748b; text-wrap: pretty; }
.partner-hero .btn-row { margin-top: 32px; }
.partner-hero .btn-primary { background: #000; color: #fff; }
.partner-hero .btn-primary:hover { background: #222; }
.process-wrap { position: relative; padding-top:24px; }
.data-process { position:relative; background:#fff; border:0; border-radius:12px 12px 0 0; padding:0 40px; }
.process-controls { position:absolute; right:24px; bottom:8px; }
.process-layout { display: grid; grid-template-columns: 1fr 1fr; align-items: center; min-height: 448px; }
.partner-flow-steps { padding: 40px 10% 40px 20px; margin: 0; list-style: none; }
.partner-flow-step { position: relative; border-bottom: 1px solid #e5e7eb; }
.partner-flow-step button { display: flex; gap: 20px; width: 100%; padding: 20px 0; text-align: left; }
.step-index,.step-title { font-size: 24px; line-height: 32px; font-weight: 400; }
.step-index { color: #d1d5db; font-variant-numeric: tabular-nums; transition: color .3s; }
.step-content { min-width: 0; flex: 1; }
.step-title { display: block; }
.step-description { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s ease; }
.step-description > span { overflow: hidden; min-height: 0; color: var(--data-muted); font-size: 18px; line-height: 28px; }
.step-description > span::before { content: ""; display: block; height: 20px; }
.partner-flow-step.is-active .step-index { color: var(--brand); }
.partner-flow-step.is-active .step-description { grid-template-rows: 1fr; }
.step-progress { position: absolute; bottom: -1px; left: 0; width: 100%; height: 2px; background: var(--brand); transform: scaleX(0); transform-origin: left; }
.partner-flow-step.is-active .step-progress { transform: scaleX(var(--step-progress,0)); }
.flow-visual { position: relative; height: 448px; min-width: 0; }
.flow-scene { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; opacity: 0; visibility: hidden; transform: translateY(12px) scale(.98); transition: opacity .5s ease,transform .6s cubic-bezier(.2,.7,.2,1),visibility .5s; pointer-events: none; }
.flow-scene.is-active { opacity: 1; visibility: visible; transform: none; }
.source-list { padding: 8px 18px; border: 1px solid #eef0f2; border-radius: 12px; background: #fff; }
.source-row { display: flex; align-items: center; gap: 14px; min-height: 64px; border-bottom: 1px solid #e5e7eb; opacity: 0; transform: translateX(15px); }
.source-row:last-child { border: 0; }
.scene-export.is-active .source-row { animation: source-arrive .55s ease forwards; animation-delay: calc(var(--row) * .12s); }
.source-logo { display: flex; align-items: center; justify-content: center; width: 68px; height: 34px; flex: none; }
.source-logo img { max-width: 68px; max-height: 30px; width: auto; height: auto; }
.source-row:nth-child(n+4) .source-logo img { width: 28px; height: 28px; }
.source-copy { min-width: 0; flex: 1; }
.source-copy strong { display: block; font-size: 14px; line-height: 20px; font-weight: 500; }
.source-copy > span { display: block; color: var(--data-muted); font-size: 12px; line-height: 18px; }
.source-state { display: flex; align-items: center; gap: 5px; background: #f3f4f6; border: 1px solid #e5e7eb; border-radius: 20px; padding: 3px 7px; color: #6b7280; font-size: 11px; flex: none; }
.source-state i { width: 11px; height: 11px; border: 1.5px solid #a7b1ae; border-right-color: transparent; border-radius: 50%; animation: source-spin 1.2s linear infinite; }
.source-row.is-ready .source-state { color: #087460; background: #effaf5; border-color: #ceeadf; }
.source-row.is-ready .source-state i { animation: none; border: 0; border-radius: 0; width: 9px; height: 5px; border-left: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(-45deg) translateY(-1px); }
.visual-note { margin-top: 12px; text-align: center; color: #94a3a0; font-size: 11px; line-height: 16px; }
@keyframes source-arrive {to{opacity:1;transform:none}}
@keyframes source-spin {to{transform:rotate(360deg)}}
.scope-cloud { position: relative; height: 270px; }
.scope-document { position: absolute; top: 25px; width: 190px; padding: 20px; border: 1px solid #e0e8e5; border-radius: 12px; background: linear-gradient(145deg,#fff,#f5fbf8); box-shadow: 0 12px 34px rgb(26 92 73 / .08); }
.scope-left { left: 8%; transform: rotate(-9deg); animation: paper-drift 5s ease-in-out infinite; }
.scope-right { right: 7%; top: 50px; transform: rotate(8deg); animation: paper-drift 5s 1s ease-in-out infinite reverse; }
.document-label { display: block; font-family: var(--mono); font-size: 9px; color: #8ba49c; letter-spacing: .1em; margin-bottom: 10px; }
.scope-document b { display: block; font-size: 15px; font-weight: 500; margin-bottom: 12px; }
.paper-line { display: block; background: #d9e9e2; height: 5px; border-radius: 4px; margin-bottom: 7px; }
.paper-line.short { width: 60%; }
.scope-document svg { margin-top: 12px; }
.tiny-table { display: grid; grid-template-columns: repeat(3,1fr); gap: 6px; }
.tiny-table i { height: 14px; border-radius: 2px; background: #deeee7; }
.tiny-table i:nth-child(3n) { background: #c2e5d9; }
.scope-main { position: absolute; display: grid; grid-template-columns: 38px 1fr; gap: 3px 10px; align-items: center; left: 10%; right: 5%; bottom: 12px; padding: 20px; border: 1px solid #cde7dc; border-radius: 12px; background: #fff; box-shadow: 0 10px 30px rgb(18 98 80 / .08); }
.scope-main > span:not(.scope-check) { font-size: 16px; }
.scope-main small { color: #8ba097; font-size: 12px; grid-column: 2; }
.scope-check { grid-row: span 2; width: 34px; height: 34px; border: 1px solid #b7e0cf; border-radius: 9px; display: grid; place-items: center; background: #e8f7f0; color: #0c9a7a; }
.source-orbit { display: flex; justify-content: center; gap: 10px; margin-top: 24px; }
.source-orbit > span { width: 72px; height: 52px; border: 1px solid #e5e7eb; border-radius: 10px; background: #fff; display: grid; place-items: center; box-shadow: 0 4px 10px rgb(20 55 43 / .025); }
.source-orbit img { max-width: 54px; max-height: 25px; }
.source-orbit > span:nth-child(n+4) img { width: 26px; height: 26px; }
@keyframes paper-drift { 50%{translate:0 -8px} }
.record-card,.payment-card { border: 1px solid #e5e7eb; border-radius: 12px; box-shadow: 0 2px 2px rgb(0 0 0 / .03); background: #fff; overflow: hidden; }
.record-heading { display: flex; gap: 12px; align-items: center; padding: 24px; font-size: 15px; border-bottom: 1px solid #edf1ef; }
.record-heading small { display: block; color: var(--data-muted); font-size: 12px; margin-top: 3px; }
.mini-plate { color: var(--brand); font-size: 34px; line-height: 1; }
.record-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 22px 24px 12px; }
.record-fields span { position: relative; color: #6b7280; font-size: 12px; background: #f8faf9; border: 1px solid #edf1ef; padding: 10px; border-radius: 6px; }
.record-fields i { float: right; font-style: normal; color: #0c9a7a; opacity: 0; }
.scene-prepare.is-active .record-fields i { animation: source-arrive .5s forwards; }
.record-fields span:nth-child(2) i { animation-delay: .5s; }
.record-fields span:nth-child(3) i { animation-delay: 1s; }
.record-fields span:nth-child(4) i { animation-delay: 1.5s; }
.record-trace { position: relative; margin: 0 24px; overflow: hidden; }
.record-trace svg { height: 80px; width: 100%; }
.record-trace > span { position: absolute; inset: 0 auto 0 0; width: 30%; background: linear-gradient(90deg,transparent,#b8e9d888,transparent); animation: record-scan 3.2s linear infinite; }
@keyframes record-scan {from{transform:translateX(-120%)}to{transform:translateX(440%)}}
.record-bottom { border-top: 1px solid #edf1ef; padding: 14px 24px; display: flex; align-items: center; gap: 8px; color: #6b7280; font-size: 12px; }
.record-bottom i,.payment-status i { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: #10b981; }
.payment-heading { padding: 24px 24px 22px; border-bottom: 1px solid #edf1ef; }
.payment-heading strong { font-size: 17px; font-weight: 500; }
.payment-heading p { margin-top: 5px; font-size: 14px; color: var(--data-muted); }
.payment-transfer { display: flex; align-items: center; gap: 16px; padding: 22px 24px; }
.payment-logos { display: flex; flex: none; }
.payment-logos > span { width: 34px; height: 34px; border: 1px solid #e5e7eb; border-radius: 50%; padding: 5px; margin-right: -8px; background: #fff; display: grid; place-items: center; }
.payment-logos img { max-width: 24px; max-height: 20px; }
.payment-label { margin-left: 10px; font-size: 14px; color: #6b7280; }
.payment-check { display: grid; place-items: center; width: 30px; height: 30px; margin-left: auto; background: #f1f7f4; border: 1px solid #dce7e1; border-radius: 50%; color: #0c9a7a; opacity: 0; scale: .7; }
.scene-payment.is-active .payment-check { animation: payment-done .6s 1.4s forwards; }
@keyframes payment-done {to{opacity:1;scale:1}}
.payment-status { margin: 0 4px 4px; padding: 14px 16px; display: flex; align-items: center; justify-content: space-between; border-radius: 9px; background: #f6f7f8; color: #6b7280; font-size: 13px; }
.payment-status i { margin-right: 8px; }
.payment-ready { color: var(--brand-600); }
.process-controls { display: flex; justify-content: flex-end; min-height: 30px; }
.motion-toggle { display: inline-flex; align-items: center; gap: 7px; padding: 5px; color: #80928c; font-size: 11px; border-radius: 4px; }
.motion-toggle:hover { color: #0a8569; }
.data-section-heading { max-width: 672px; }
.data-section-heading p { margin-top: 24px; color: var(--data-muted); font-size: 18px; line-height: 28px; text-wrap: pretty; }
.data-section-heading .btn { margin-top: 32px; }
.data-section-heading.centered { text-align: center; margin-inline: auto; }
.data-principles { padding-top: 96px; padding-bottom: 96px; }
.data-principles .data-section-heading p { font-size:16px;line-height:26px;max-width:525px;margin:16px auto 0; }
.principle-grid { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:80px; }
.principle-grid article { min-width:0;padding:0 20px 28px; }
.principle-grid article img { width:200px;height:150px;object-fit:contain;margin:-30px auto 12px; }
.principle-grid h3 { margin-bottom:8px; }
.principle-grid p { font-size:14px;line-height:19.25px;color:var(--data-muted); }
.data-categories { padding-top: 24px; padding-bottom: 96px; }
.data-catalogue { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;border-radius:12px;overflow:hidden;background:#e5e7eb;box-shadow:0 1px 3px #0000001a,0 0 0 1px #1118271a; }
.data-catalogue > .data-section-heading { display:flex;flex-direction:column;justify-content:space-between;gap:32px;grid-column:span 2;grid-row:span 2;width:auto;max-width:none;margin:0;padding:32px;background:#fff; }
.data-catalogue > .data-section-heading p { max-width:none;font-size:16px;line-height:24px;margin-top:16px; }
.data-catalogue > .data-section-heading .data-context { margin-top:24px;font-size:14px;line-height:22px;max-width:430px; }
.data-catalogue > .data-section-heading .btn { margin-top:0;align-self:flex-start; }
.data-type-grid { display:contents; }
.data-type { position:relative;display:flex;flex-direction:column;gap:16px;min-width:0;padding:32px;background:#fff; }
.data-type-icon { display:grid;place-items:center;width:40px;height:40px;flex:none;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0002,0 0 0 1px #0c9a7a1a; }
.data-type-icon svg { width:24px;height:24px;color:var(--brand);stroke-width:1.4; }
.data-type h3 { margin:0 0 6px; }
.data-type p { color:var(--data-muted);font-size:16px;line-height:24px; }
.data-context { color:#7a8985;position:relative; }
.data-partners { padding: 128px 0; text-align: center; background: radial-gradient(ellipse at 50% 100%,#e9f8f2,transparent 75%),#fafcfb; }
.partner-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 48px; margin: 56px auto 40px; }
.partner-grid article { position: relative; }
.partner-index { display: block; color: #7bb7a5; font-size: 14px; margin-bottom: 18px; }
.partner-grid h3 { margin-bottom: 12px; }
.partner-grid p { max-width: 300px; margin-inline: auto; font-size: 16px; line-height: 26px; color: var(--data-muted); }
.data-faq { padding-top: 112px; padding-bottom: 128px; }
.data-faq > h2 { text-align: center; margin-bottom: 40px; }
.data-faq-list { max-width: 900px; margin: 0 auto; }
.data-faq details { border-bottom: 1px solid #e5e7eb; }
.data-faq summary { list-style:none;display:flex;gap:32px;align-items:flex-start;justify-content:space-between;padding:24px 0;font-size:20px;line-height:26px;cursor:pointer; }
.data-faq details:last-child{border-bottom:0}
.data-faq summary>svg{flex:none;width:32px;height:32px;margin-top:2px;transition:transform .2s}
.data-faq details[open] summary>svg{transform:rotate(180deg)}
.data-faq summary::-webkit-details-marker { display: none; }
.data-faq summary > span { flex: none; color: #9ca3af; font-size: 24px; font-weight: 300; transition: transform .2s; }
.data-faq details[open] summary > span { transform: rotate(45deg); }
.data-faq details p { max-width: 800px; padding-bottom: 24px; color: var(--data-muted); font-size: 16px; line-height: 26px; }
.data-faq a { color: var(--brand-700); text-decoration: underline; text-underline-offset: 3px; }
.data-process.is-paused *,body.data-motion-paused .assay-tile { animation-play-state: paused !important; }
.data-process.is-out-of-view *,body.art-document-hidden .data-process * { animation-play-state: paused !important; }
.data-process.is-paused .source-row { opacity: 1; transform: none; animation: none; }
@media (max-width:1199px) {
  .data-process { padding-inline: 24px; }
  .partner-flow-steps { padding-left: 0; padding-right: 8%; }
  .source-list { padding-inline: 12px; }
  .source-row { gap: 9px; }
  .source-logo { width: 56px; }
  .source-logo img { max-width: 56px; }
  .source-state { width: 23px; height: 23px; padding: 5px; }
  .source-state > span { display: none; }
  .payment-transfer { gap: 10px; padding-inline: 18px; }
  .payment-label { font-size: 12px; }
  .principle-grid,.data-type-grid { gap: 32px 24px; }
}
@media (max-width:1023px) {
  .partner-hero { padding-top: 192px; padding-bottom: 192px; min-height: 90vh; }
  .assay-field { right: -490px; top: 140px; }
  .data-art::after { background: linear-gradient(125deg,#fff 10%,#fff 27%,rgb(255 255 255 / .8) 48%,transparent 80%),linear-gradient(to bottom,transparent 40%,#fff 90%); }
  .process-layout { grid-template-columns: 1fr; }
  .partner-flow-steps { padding: 24px 0 0; }
  .partner-flow-step button { padding: 16px 0; }
  .flow-visual { max-width: 560px; width: 100%; margin-inline: auto; height: 400px; }
  .partner-flow-step > .flow-visual { margin-top:8px; margin-bottom:24px; }
  .source-logo { width: 68px; }
  .source-logo img { max-width: 68px; }
  .source-state { width: auto; height: auto; padding: 3px 7px; }
  .source-state > span { display: block; }
  .data-principles { padding-top: 80px; padding-bottom: 80px; }
  .principle-grid,.data-type-grid { grid-template-columns: repeat(2,1fr); gap: 40px; }
  .principle-grid article img { margin-left: 0; }
  .data-partners { padding: 96px 0; }
  .partner-grid { gap: 24px; }
  .data-faq { padding-top: 80px; padding-bottom: 96px; }
}
@media (min-width:640px) and (max-width:767px) {
  .partner-hero { padding-top:144px; padding-bottom:144px; align-items:flex-start; }
  .process-wrap { padding-inline:0; }
  .data-process { padding-inline:32px; border-radius:0; }
  .partner-flow-steps { padding:32px 0; }
}
@media (max-width:639px) {
  .partner-hero { min-height: 90vh; padding-top: 128px; padding-bottom: 112px; align-items: flex-start; }
  .partner-hero h1 { max-width: 330px; font-size: 36px; line-height: 45px; }
  .partner-hero p { font-size: 16px; line-height: 26px; max-width: 350px; }
  .partner-hero .btn-row { gap: 10px; }
  .partner-hero .btn { padding-inline: 15px; }
  .data-art { background: radial-gradient(ellipse at 120% 40%,#28bda7,#b2ecdd 30%,#fff 65%); }
  .assay-field { right: -820px; top: 315px; }
  .data-art::after { background: linear-gradient(to bottom,#fff 10%,#ffffffcc 24%,transparent 40%,#fff 68%); }
  .process-wrap { padding-inline: 0; }
  .data-process { padding-inline: 20px; border-radius: 0; }
  .partner-flow-steps { padding: 20px 0; }
  .partner-flow-step { border-bottom:0; box-shadow:inset 0 -1px #e5e7eb; }
  .partner-flow-step > .flow-visual { margin-top:0; }
  .step-index,.step-title { font-size: 20px; line-height: 27.5px; }
  .partner-flow-step button { gap: 16px; }
  .step-description > span { font-size: 16px; line-height: 22px; }
  .step-description > span::before { height: 16px; }
  .flow-visual { height: 368px; }
  .source-list { padding-inline: 10px; }
  .source-row { gap: 9px; min-height: 57px; }
  .source-logo { width: 49px; }
  .source-logo img { max-width: 49px; }
  .source-copy strong { font-size: 12px; line-height: 18px; }
  .source-copy > span { font-size: 10px; line-height: 14px; }
  .source-state { width: 20px; height: 20px; padding: 4px; }
  .source-state > span { display: none; }
  .scope-document { width: 155px; padding: 16px; }
  .scope-left { left: 0; }
  .scope-right { right: 0; }
  .scope-main { left: 0; right: 0; padding: 14px; }
  .scope-main > span:not(.scope-check) { font-size: 14px; }
  .scope-main small { font-size: 10px; }
  .source-orbit { gap: 7px; margin-top: 12px; }
  .source-orbit > span { width: 50px; height: 42px; }
  .source-orbit img { max-width: 40px; }
  .record-heading { padding: 18px; font-size: 12px; }
  .record-fields { padding: 16px; gap: 8px; }
  .record-fields span { font-size: 10px; padding: 8px; }
  .record-bottom { padding-inline: 16px; }
  .payment-heading { padding: 20px 16px; }
  .payment-heading p { font-size: 12px; }
  .payment-transfer { padding: 20px 16px; flex-wrap: wrap; }
  .payment-logos > span { width: 30px; height: 30px; }
  .payment-label { font-size: 10px; margin-left: 2px; }
  .payment-check { width: 24px; height: 24px; }
  .payment-status { font-size: 10px; padding: 12px; }
  .partnership-page h2 { font-size: 30px; line-height: 38px; }
  .data-section-heading p { font-size: 16px; line-height: 26px; }
  .data-principles { padding-top: 64px; padding-bottom: 72px; }
  .principle-grid { gap: 36px 24px; margin-top: 32px; }
  .principle-grid article img { width: 140px; max-width: 100%; height: 105px; margin-bottom: 14px; }
  .principle-grid h3,.data-type h3 { font-size: 17px; line-height: 24px; }
  .principle-grid p { font-size: 14px; line-height: 22px; }
  .data-type-grid { gap: 32px 24px; }
  .data-type p { font-size: 13px; line-height: 21px; }
  .data-categories { padding-bottom: 72px; }
  .data-partners { padding: 80px 0; }
  .partner-grid { grid-template-columns: 1fr; gap: 32px; margin-top: 40px; }
  .partner-index { margin-bottom: 8px; }
  .data-faq { padding-top: 64px; padding-bottom: 80px; }
  .data-faq summary { font-size: 16px; line-height: 24px; }
  .data-faq details p { font-size: 14px; line-height: 24px; }
}
@media (prefers-reduced-motion:reduce) {
  .partnership-page *, .partnership-page *::before, .partnership-page *::after { animation: none !important; transition: none !important; }
  .scene-export .source-row,.record-fields i,.payment-check { opacity: 1; transform: none; scale: 1; }
}

.data-process.is-paused .payment-check,.data-process.is-paused .record-fields i{opacity:1;scale:1;transform:none}

.data-categories,.data-partners{position:relative}

/* The closing referral section mirrors the opening assay-tile field. */
.data-referral { position: relative; isolation: isolate; overflow: hidden; padding: 144px 0; }
.referral-art { transform: scaleX(-1); background: radial-gradient(ellipse at 95% 10%,#0bb69c 0%,#51d2be 24%,#b6eee2 45%,#fff 73%); }
.referral-art .assay-field { right: -220px; top: -210px; }
.referral-art::after { background: linear-gradient(125deg,#fff 8%,#fff 25%,rgb(255 255 255 / .88) 43%,transparent 68%),linear-gradient(to bottom,transparent 30%,rgb(255 255 255 / .4) 72%,#fff 100%); }
.referral-heading { max-width: 590px; margin: 0 auto; text-align: center; }
.referral-heading h2 { font-size: 36px; line-height: 45px; }
.referral-heading p { margin:16px auto 0;color:var(--data-muted);font-size:16px;line-height:26px;max-width:525px;text-wrap:pretty; }
.referral-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); margin: 48px 8px 0; padding: 0; list-style: none; background: #fff; border: 0; border-radius: 12px; box-shadow: 0 2px 3px rgb(0 0 0 / .04); overflow: hidden; }
.referral-steps li { display: flex; align-items: flex-start; gap: 20px; padding: 32px; }
.referral-steps li + li { border-left: 1px solid #e5e7eb; }
.referral-number { flex: none; color: #d1d5db; font-size: 20px; line-height: 28px; font-variant-numeric: tabular-nums; }
.referral-steps h3 { font-size: 20px; line-height: 28px; }
.referral-steps p { margin-top: 8px; color: var(--data-muted); font-size: 16px; line-height: 22px; }
.referral-actions { display: flex; flex-direction: column; align-items: center; gap: 20px; margin-top: 32px; }
.referral-actions .motion-toggle { position:absolute;right:var(--gutter);bottom:24px;color:#6b7280; }
@media(min-width:1440px) {
  .referral-steps li { padding: 40px; gap: 24px; }
}
@media(max-width:1023px) {
  .data-referral { padding-top: 128px; }
  .referral-art .assay-field { right: -380px; top: -180px; }
  .referral-steps li { padding: 24px; gap: 12px; }
  .referral-steps h3 { font-size: 18px; line-height: 26px; }
  .referral-steps p { font-size: 14px; line-height: 22px; }
}
@media(max-width:767px) {
  .data-referral { padding: 128px 0 64px; }
  .referral-heading { max-width: 540px; }
  .referral-heading h2 { font-size: 30px; line-height: 38px; }
  .referral-heading p { font-size: 16px; line-height: 26px; }
  .referral-art { background: radial-gradient(ellipse at 105% 0%,#50cdb5,#c8f1e7 34%,#fff 70%); }
  .referral-art .assay-field { right: -680px; top: -170px; }
  .referral-art::after { background: linear-gradient(125deg,#fff 5%,#ffffffed 40%,#ffffff66 68%,transparent),linear-gradient(to bottom,transparent,#fff 65%); }
  .referral-steps { grid-template-columns: 1fr; margin-top: 40px; }
  .referral-steps li { gap: 20px; padding: 28px 24px; }
  .referral-steps li + li { border-left: 0; border-top: 1px solid #e5e7eb; }
  .referral-steps h3 { font-size: 20px; line-height: 28px; }
  .referral-steps p { font-size: 16px; line-height: 24px; margin-top: 12px; }
}

/* Catalogue breakpoints follow the reference: one, two, three, then four columns. */
@media(min-width:768px) and (max-width:1023px){.data-catalogue{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:767px){
 .data-catalogue{grid-template-columns:repeat(2,minmax(0,1fr))}
 .data-catalogue>.data-section-heading{grid-column:1/-1;grid-row:auto}
}
@media(max-width:639px){
 .data-catalogue{grid-template-columns:minmax(0,1fr)}
 .data-catalogue>.data-section-heading,.data-type{padding:24px}
 .data-catalogue .data-section-heading h2{font-size:30px;line-height:37.5px}
 .data-catalogue .data-type h3{font-size:20px;line-height:28px}
 .data-catalogue .data-type p{font-size:16px;line-height:24px}
}
@media(max-width:1023px){.process-controls{position:static;padding-bottom:12px}}

@media(max-width:639px){.data-faq summary{font-size:18px;line-height:28px;padding:20px 0;gap:16px}.data-faq summary>svg{width:24px;height:24px}.principle-grid article{padding-inline:0}}
@media(prefers-reduced-motion:reduce){.data-faq summary>svg{transition:none}}

/* Principle cards, framed like the reference security cards: a tinted top, a thin teal
   border and centred copy, with the 520 x 520 illustration (7/12 of the card) seated on the
   tinted area's bottom edge so it rises above the card. */
.data-principles .principle-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:16px; margin-top:96px; }
.data-principles .principle-grid article { position:relative; isolation:isolate; display:flex; flex-direction:column; min-width:0; padding:0 20px 28px; border-radius:8px; background:#fff; text-align:center; text-wrap:balance; }
.data-principles .principle-grid article::before { content:""; position:absolute; z-index:-1; inset:0 0 auto; aspect-ratio:350/150; border-radius:8px 8px 0 0; background:linear-gradient(to bottom,rgb(230 247 243 / .8) 0%,rgb(230 247 243 / .7) 16.7%,rgb(230 247 243 / 0) 66.7%); }
.data-principles .principle-grid article::after { content:""; position:absolute; inset:0; border:1px solid #d1f0e9; border-radius:8px; pointer-events:none; }
.data-principles .principle-grid article img { position:relative; z-index:1; display:block; width:calc((100% + 40px) * 7 / 12); max-width:none; height:auto; aspect-ratio:1; object-fit:contain; margin:calc((100% + 40px) * (150 / 350 - 7 / 12)) auto 0; }
.data-principles .principle-grid h3 { margin:12px 0 8px; font-size:20px; line-height:25px; font-weight:400; }
.data-principles .principle-grid p { font-size:14px; line-height:19.25px; color:#6b7280; }
@media (max-width:1023px) {
  .data-principles .principle-grid { grid-template-columns:minmax(0,1fr); max-width:480px; margin:48px auto 0; }
  .data-principles .principle-grid article::before { aspect-ratio:350/220; }
  .data-principles .principle-grid article img { margin-top:calc((100% + 40px) * (220 / 350 - 7 / 12)); }
  .data-principles .principle-grid h3 { font-size:18px; line-height:22.5px; }
}

/* Second pass against the reference: heading ink, the principle grid 80px under its heading with
   28px title lines, black titles in the industries card and the steps, slate copy, and the steps
   card at the reference's 1152px with 32px cells. */
.partnership-page{--data-ink:#020817}
.data-principles .data-section-heading.centered h2{max-width:590px;margin-inline:auto}
.data-principles .principle-grid{margin-top:80px}
.data-principles .principle-grid h3{line-height:28px}
.data-categories h3,.referral-steps h3{color:#000}
.data-categories .data-section-heading>p{color:#64748b}
.referral-steps{max-width:1152px;margin:48px auto 0;border-radius:8px}
.referral-steps li,.referral-steps li:where(*){padding:32px;gap:12px}
.referral-actions .btn-primary{font-weight:500}
@media(max-width:1023px){.referral-steps{margin-inline:8px}}
/* FAQ answers as in the reference: the full 900px column and 20px below. */
.data-faq details p { max-width: none; padding-bottom: 20px; text-wrap: pretty; }

/* Controls and hints on the reference's 12/16 and 14/20 lines. */
.motion-toggle { color: #6b7280; font-size: 12px; line-height: 16px; }
.data-catalogue > .data-section-heading .data-context, .data-context { color: #6b7280; line-height: 20px; }
@media (max-width: 639px) { body[data-page=partnerships] main h2 { line-height: 1.25; } }
/* The referral field a little lighter, as the user asked: a soft white glow behind the heading and
   steps and an even 16% veil over the glass, on top of the existing fades. */
.data-closing .referral-art::after { background:
  radial-gradient(ellipse 760px 440px at 50% 64%, rgb(255 255 255 / .62), rgb(255 255 255 / 0) 72%),
  linear-gradient(rgb(255 255 255 / .16), rgb(255 255 255 / .16)),
  linear-gradient(125deg, #fff 8%, #fff 25%, rgb(255 255 255 / .88) 43%, transparent 68%),
  linear-gradient(to bottom, transparent 30%, rgb(255 255 255 / .4) 72%, #fff 100%); }
