/* Premium clinical laboratory experience. */
body.cm-modern-home:has(.cm-lab-page) { background: #fff; color: #315d94; }
.cm-lab-page { overflow: hidden; }
.cm-lab-page h1,.cm-lab-page h2,.cm-lab-page h3 { color: #123a74; letter-spacing: -.048em; }
.cm-lab-hero { padding: 170px 0 102px; background: radial-gradient(circle at 87% 18%, rgba(54, 150, 216, .24), transparent 27%), linear-gradient(125deg, #f3f9ff 0%, #fff 58%, #e7f4fc); }
.cm-lab-hero-grid { display: grid; grid-template-columns: .96fr 1.04fr; align-items: center; gap: 76px; }
.cm-lab-hero-copy { max-width: 590px; }
.cm-lab-hero h1 { margin: 0 0 24px; font-size: clamp(3.1rem, 5.35vw, 5.15rem); line-height: .98; }
.cm-lab-hero h1 em,.cm-lab-intro h2 em,.cm-lab-quality h2 em { color: #eb7624; font-style: normal; }
.cm-lab-hero-copy > p:not(.cm-eyebrow) { max-width: 552px; margin: 0 0 31px; font-size: 1.08rem; line-height: 1.75; }
.cm-lab-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.cm-lab-text-link { display: inline-flex; align-items: center; gap: 7px; color: #0966a9; font-size: .85rem; font-weight: 750; text-decoration: none; }
.cm-lab-text-link .cm-icon { width: 17px; height: 17px; transition: transform .2s ease; }
.cm-lab-text-link:hover .cm-icon,.cm-lab-text-link:focus-visible .cm-icon { transform: translateX(4px); }
.cm-lab-hero-photo { position: relative; min-height: 462px; isolation: isolate; }
.cm-lab-hero-photo::before { position: absolute; inset: 25px -18px -17px 24px; z-index: -1; border-radius: 31px; background: #e97726; content: ""; }
.cm-lab-hero-photo .cm-visual-slide { position: absolute; inset: 0; z-index: 0; display: block; width: 100%; height: 100%; min-height: 462px; border-radius: 31px; object-fit: cover; object-position: right center; box-shadow: 0 28px 65px rgba(7,33,71,.18); opacity: 0; transform: scale(1.025); transition: opacity 900ms ease, transform 1200ms ease; }
.cm-lab-hero-photo .cm-visual-slide.is-active { opacity: 1; transform: scale(1); }
.cm-lab-photo-note { position: absolute; z-index: 2; bottom: 24px; left: -20px; width: min(268px, calc(100% - 26px)); padding: 17px 20px; border-radius: 14px; font-size: .75rem; line-height: 1.48; }
.cm-lab-assurances { position: relative; z-index: 2; padding: 0 0 106px; background: linear-gradient(#f8fbff, #fff 47%); }
.cm-lab-assurances-grid { display: grid; grid-template-columns: repeat(3, 1fr); overflow: hidden; border: 1px solid #d8e9f5; border-radius: 19px; background: #fff; box-shadow: 0 14px 38px rgba(18,58,116,.07); }
.cm-lab-assurances-grid > div { display: flex; align-items: center; gap: 16px; padding: 29px 31px; }
.cm-lab-assurances-grid > div + div { border-left: 1px solid #dceaf4; }
.cm-lab-assurance-icon { display: grid; flex: 0 0 auto; width: 46px; height: 46px; place-items: center; border-radius: 13px; background: #eaf5fc; color: #0868ad; }
.cm-lab-assurance-icon .cm-icon { width: 24px; height: 24px; }
.cm-lab-assurances strong { display: block; margin-bottom: 4px; color: #123a74; font-size: .91rem; line-height: 1.25; }
.cm-lab-assurances small { display: block; color: #5879a0; font-size: .75rem; line-height: 1.48; }
.cm-lab-intro { padding: 24px 0 118px; }
.cm-lab-intro-grid,.cm-lab-quality-grid { display: grid; grid-template-columns: .92fr 1.08fr; align-items: start; gap: 102px; }
.cm-lab-intro h2,.cm-lab-section-heading h2,.cm-lab-process h2,.cm-lab-quality h2,.cm-lab-contact h2 { margin: 0; font-size: clamp(2.25rem,3.75vw,3.7rem); line-height: 1.06; }
.cm-lab-intro-copy { max-width: 615px; padding-top: 24px; }
.cm-lab-intro-copy p { margin: 0 0 16px; font-size: .98rem; line-height: 1.78; }
.cm-lab-tests { padding: 110px 0 120px; background: #fff; }
.cm-lab-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 35px; margin-bottom: 34px; }
.cm-lab-section-heading > p { max-width: 390px; margin: 0 0 3px; font-size: .91rem; line-height: 1.73; }
.cm-lab-test-filter { display: flex; flex-wrap: wrap; gap: 9px; margin-bottom: 36px; }
.cm-lab-test-filter button { min-height: 0; padding: 9px 15px; border: 1px solid #dce7f1; border-radius: 999px; background: #fff; color: #416a9f; font: 600 .78rem inherit; cursor: pointer; transition: .2s; }
.cm-lab-test-filter button:hover,.cm-lab-test-filter button:focus-visible,.cm-lab-test-filter button.is-active { border-color: #0464a8; background: #0464a8; color: #fff; outline: none; }
.cm-lab-test-filter button:hover { transform: translateY(-2px); }
.cm-lab-test-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; }
.cm-lab-test-grid article { position: relative; display: flex; min-height: 345px; flex-direction: column; padding: 29px; border: 1px solid #e0eaf3; border-radius: 20px; background: #fff; box-shadow: 0 10px 30px rgba(18,58,116,.045); transition: transform .22s, box-shadow .22s, border-color .22s; }
.cm-lab-test-grid article:hover { border-color: #bed9ee; box-shadow: 0 18px 44px rgba(18,58,116,.12); transform: translateY(-5px); }
.cm-lab-test-grid article[hidden] { display: none; }
.cm-lab-test-icon { display: grid; width: 44px; height: 44px; margin-bottom: 22px; place-items: center; border-radius: 12px; background: #eaf4fc; color: #0464a8; }
.cm-lab-test-icon .cm-icon { width: 23px; height: 23px; }
.cm-lab-test-grid h3 { margin: 0 0 10px; font-size: 1.2rem; line-height: 1.2; }
.cm-lab-test-grid p { margin: 0 0 16px; color: #476fa3; font-size: .84rem; line-height: 1.6; }
.cm-lab-test-grid article > a { display: inline-flex; align-items: center; gap: 7px; align-self: flex-start; margin-top: auto; padding: 0; color: #0464a8; font-size: .8rem; font-weight: 700; text-decoration: none; transition: color .2s ease; }
.cm-lab-test-grid article > a .cm-icon { width: 16px; height: 16px; transition: transform .2s ease; }
.cm-lab-test-grid article:hover > a,.cm-lab-test-grid article:focus-within > a { color: #eb7624; }
.cm-lab-test-grid article > a:hover .cm-icon,.cm-lab-test-grid article > a:focus-visible .cm-icon { transform: translateX(4px); }
.cm-lab-test-grid article.cm-lab-test--fresh { animation: cm-lab-card-in .35s ease both; }
@keyframes cm-lab-card-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } }
.cm-lab-tests .cm-lab-test-note { max-width: 680px; margin: 52px 0 0; padding-top: 25px; border-top: 1px solid rgba(233,119,38,.28); color: #e97726; font-size: .91rem; font-weight: 700; line-height: 1.65; }
body.cm-modern-home .cm-lab-tests .cm-lab-test-note a { color: #0464a8 !important; font-weight: 800; }
body.cm-modern-home .cm-lab-tests .cm-lab-test-note a:hover,body.cm-modern-home .cm-lab-tests .cm-lab-test-note a:focus-visible { color: #123a74 !important; }
.cm-lab-test-note .cm-icon { width: 17px; height: 17px; vertical-align: -3px; }
.cm-lab-process { position: relative; overflow: hidden; padding: 103px 0 110px; background: radial-gradient(circle at 88% 18%,rgba(27,123,194,.35),transparent 25%),linear-gradient(115deg,#082756,#0b407c); color: #d6eaff; }
.cm-lab-process::before { position: absolute; top: -230px; right: 5%; width: 510px; height: 510px; border: 1px solid rgba(255,255,255,.16); border-radius: 50%; box-shadow: inset 0 0 0 42px rgba(255,255,255,.035); content: ""; }
.cm-lab-process .cm-container { position: relative; z-index: 1; }
.cm-lab-process .cm-eyebrow { color: #9bdcff; }
body.cm-modern-home .cm-lab-process h2,body.cm-modern-home .cm-lab-process h3 { color: #fff; }
.cm-lab-process-heading { max-width: 630px; margin-bottom: 50px; }
.cm-lab-process ol { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; margin: 0; padding: 0; list-style: none; counter-reset: none; }
.cm-lab-process li { display: grid; grid-template-columns: auto 1fr; gap: 17px; min-height: 151px; padding: 24px 18px 0 0; border-top: 1px solid rgba(191,224,245,.48); }
.cm-lab-process li > span { color: #9bdcff; font-size: 1.04rem; font-weight: 850; }
.cm-lab-process h3 { margin: 1px 0 9px; font-size: 1.03rem; line-height: 1.2; }
.cm-lab-process li p { margin: 0; color: #d8edfc; font-size: .78rem; line-height: 1.65; }
.cm-lab-quality { padding: 117px 0; background: linear-gradient(135deg,#edf7fc,#f8fbff); }
.cm-lab-quality-grid { align-items: center; }
.cm-lab-quality-copy { max-width: 586px; }
.cm-lab-quality h2 { margin-bottom: 22px; }
.cm-lab-quality-copy > p:not(.cm-eyebrow) { margin: 0 0 24px; font-size: .97rem; line-height: 1.78; }
.cm-lab-quality ul { display: grid; gap: 12px; margin: 0; padding: 0; list-style: none; }
.cm-lab-quality li { display: flex; align-items: center; gap: 11px; color: #285c99; font-size: .86rem; font-weight: 650; }
.cm-lab-quality li .cm-icon { flex: 0 0 auto; width: 19px; height: 19px; color: #e97726; }
.cm-lab-quality-panel { position: relative; display: flex; min-height: 405px; flex-direction: column; align-items: center; justify-content: center; overflow: hidden; padding: 47px; border: 1px solid rgba(255,255,255,.22); border-radius: 27px; background: linear-gradient(135deg,#0464a8 0%,#123a74 72%); color: #fff; text-align: center; box-shadow: 0 24px 55px rgba(18,58,116,.24); isolation: isolate; }
.cm-lab-quality-orbit { position: absolute; z-index: 0; width: 440px; height: 440px; border: 1px solid rgba(255,255,255,.17); border-radius: 50%; box-shadow: 0 0 0 48px rgba(255,255,255,.045),0 0 0 108px rgba(255,255,255,.03); }
.cm-lab-quality-panel > :not(.cm-lab-quality-orbit) { position: relative; z-index: 1; }
.cm-lab-quality-icon { display: grid; width: 76px; height: 76px; margin-bottom: 24px; place-items: center; border-radius: 21px; background: #e97726; }
.cm-lab-quality-icon .cm-icon { width: 35px; height: 35px; }
.cm-lab-quality-panel p { margin: 0 0 7px; color: #b9d8ee; font-size: .84rem; font-weight: 750; letter-spacing: .08em; text-transform: uppercase; }
.cm-lab-quality-panel strong { max-width: 350px; color: #fff; font-size: clamp(1.45rem,2.2vw,2rem); line-height: 1.16; letter-spacing: -.04em; }
.cm-lab-quality-panel a { display: inline-flex; align-items: center; gap: 7px; margin-top: 28px; padding: 11px 17px; border: 1px solid rgba(255,255,255,.33); border-radius: 9px; color: #fff; font-size: .8rem; font-weight: 800; transition: background .2s ease, transform .2s ease; }
.cm-lab-quality-panel a:hover,.cm-lab-quality-panel a:focus-visible { background: rgba(255,255,255,.12); transform: translateY(-2px); }
.cm-lab-quality-panel a .cm-icon { width: 16px; height: 16px; }
.cm-lab-contact { position: relative; overflow: visible; padding: 78px 0; border-top: 1px solid #e4edf5; border-bottom: 1px solid #e4edf5; background: linear-gradient(112deg,#fff 0%,#f5faff 100%); }
.cm-lab-contact::before { position: absolute; top: -210px; right: 8%; width: 460px; height: 460px; border: 1px solid rgba(4,100,168,.12); border-radius: 50%; box-shadow: inset 0 0 0 38px rgba(4,100,168,.025); content: ""; }
.cm-lab-contact-inner { position: relative; display: flex; min-height: 320px; align-items: center; justify-content: space-between; gap: 40px; padding: 0; }
.cm-lab-contact-copy { max-width: 570px; }
.cm-lab-contact h2 { margin: 0; color: #123a74; }
.cm-lab-contact .cm-eyebrow { color: #0464a8; }
.cm-lab-contact-copy > p:not(.cm-eyebrow) { max-width: 570px; margin: 20px 0 28px; color: #3d6394; font-size: .97rem; line-height: 1.72; }
.cm-lab-contact-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }
.cm-lab-contact-medi { position: relative; width: 380px; height: 340px; flex: 0 0 380px; align-self: stretch; overflow: visible; }
.cm-lab-contact-medi::after { position: absolute; z-index: 0; right: 24px; bottom: -23px; width: 238px; height: 30px; border-radius: 50%; background: rgba(7,33,71,.22); content: ""; filter: blur(14px); transform: scaleX(.9); }
.cm-lab-contact-medi img { position: absolute; z-index: 1; right: 0; bottom: -20px; width: 300px; max-width: none; height: auto; filter: drop-shadow(0 15px 9px rgba(7,33,71,.13)); }
.cm-lab-reveal { opacity: 0; transform: translateY(20px); transition: opacity .6s ease var(--cm-lab-reveal-delay,0ms), transform .6s ease var(--cm-lab-reveal-delay,0ms); }
.cm-lab-reveal.is-visible { opacity: 1; transform: none; }
@media (max-width: 1100px) { .cm-lab-hero-grid { gap: 51px; } .cm-lab-intro-grid,.cm-lab-quality-grid { gap: 65px; } .cm-lab-contact-inner { gap: 34px; } .cm-lab-contact-medi { width: 320px; height: 310px; flex-basis: 320px; } }
@media (max-width: 850px) { .cm-lab-hero { padding: 142px 0 78px; } .cm-lab-hero-grid,.cm-lab-intro-grid,.cm-lab-quality-grid { grid-template-columns: 1fr; gap: 43px; } .cm-lab-hero-copy { max-width: 650px; } .cm-lab-hero-photo { width: min(100%,640px); min-height: 410px; } .cm-lab-hero-photo .cm-visual-slide { min-height: 410px; } .cm-lab-assurances-grid { grid-template-columns: 1fr; } .cm-lab-assurances-grid > div + div { border-top: 1px solid #dceaf4; border-left: 0; } .cm-lab-section-heading { display: block; } .cm-lab-section-heading > p { margin-top: 20px; } .cm-lab-test-grid { grid-template-columns: repeat(2,1fr); } .cm-lab-process ol { grid-template-columns: repeat(2,1fr); } .cm-lab-process li { min-height: 0; } .cm-lab-intro-copy { padding-top: 0; } .cm-lab-contact-inner { min-height: 285px; gap: 20px; } .cm-lab-contact-medi { width: 265px; height: 285px; flex-basis: 265px; } .cm-lab-contact-medi img { width: 242px; } }
@media (max-width: 560px) { .cm-lab-hero { padding: 124px 0 64px; } .cm-lab-hero h1 { font-size: clamp(2.8rem,14vw,4rem); } .cm-lab-hero-actions { gap: 15px; } .cm-lab-hero-photo { min-height: 315px; } .cm-lab-hero-photo .cm-visual-slide { min-height: 315px; border-radius: 22px; } .cm-lab-hero-photo::before { inset: 16px -10px -11px 16px; border-radius: 22px; } .cm-lab-photo-note { bottom: 15px; left: -7px; width: calc(100% - 15px); padding: 15px 16px; } .cm-lab-assurances { padding-bottom: 75px; } .cm-lab-assurances-grid > div { padding: 23px 20px; } .cm-lab-intro,.cm-lab-process,.cm-lab-quality,.cm-lab-tests { padding-top: 75px; padding-bottom: 78px; } .cm-lab-section-heading h2,.cm-lab-intro h2,.cm-lab-process h2,.cm-lab-quality h2,.cm-lab-contact h2 { font-size: 2.22rem; } .cm-lab-test-grid { grid-template-columns: 1fr; } .cm-lab-test-grid article { min-height: 0; } .cm-lab-tests .cm-lab-test-note { margin-top: 43px; padding-top: 21px; } .cm-lab-process ol { grid-template-columns: 1fr; } .cm-lab-process li { grid-template-columns: 48px 1fr; gap: 16px; padding: 24px 21px 0 0; } .cm-lab-quality-panel { min-height: 340px; padding: 34px 23px; } .cm-lab-contact { padding: 70px 0 0; } .cm-lab-contact-inner { min-height: 0; flex-direction: column; align-items: flex-start; gap: 0; } .cm-lab-contact-medi { width: 250px; height: 310px; min-height: 310px; margin: 0 auto; flex: 0 0 310px; align-self: center; } .cm-lab-contact-medi img { right: 0; bottom: -12px; width: 228px; } .cm-lab-contact-medi::after { right: 4px; bottom: -13px; width: 190px; } }
@media (prefers-reduced-motion: reduce) { .cm-lab-reveal,.cm-lab-hero-photo .cm-visual-slide { transition: none; transform: none; } .cm-lab-test-grid article.cm-lab-test--fresh { animation: none; } }
