/* Shared typography and interaction rules for catalogue, directory and forms. */
:root{--ink:#173b2e;--muted:#40544b;--line:#cedbd3;--box-shadow:0 3px 0 #173b2e0b,0 8px 24px #173b2e08}
body,button,input,select,textarea{font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.6}
h1,h2,h3,h4{font-family:'DM Sans',Arial,sans-serif;letter-spacing:-.025em;font-weight:700}
h1{font-size:clamp(28px,3.5vw,44px);line-height:1.18}h2{font-size:clamp(24px,2.5vw,32px);line-height:1.25}h3{font-size:20px;line-height:1.35}
p,.muted,small,.smallLabel{color:#40544b}input::placeholder,textarea::placeholder{color:#58685f;opacity:1}
a,button,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid #a67b28;outline-offset:3px}
.btn,button[type=submit],.packageTabs button{min-height:44px;border-radius:7px;font-weight:700}.btn:hover{filter:brightness(.94)}.btn:disabled{cursor:not-allowed}
nav a{border-radius:5px;font-size:14px;padding:10px 14px}nav a[aria-current=page]{background:#fff;color:#153c2e;border-color:#fff;box-shadow:inset 0 -3px #b08b44}
.catalogueScope{font-size:14px;padding:10px 24px;margin-top:16px;margin-bottom:0;background:#f3f7f4;border-left-width:3px}
.portalSearch{padding-top:30px;padding-bottom:26px}.portalSearch h1{max-width:900px;margin-left:auto;margin-right:auto}.eyebrow,.promoKicker{font-size:12px;letter-spacing:.11em;font-weight:700;color:#285343}.portalSearch .eyebrow{font-size:12px}
.portalSearch input,.search input{font-size:15px}.popularQueries{font-size:14px}.portalBanner{border-radius:14px}.bannerCopy h2{font-size:clamp(30px,4vw,44px);line-height:1.13}.bannerCopy p{max-width:34ch;font-size:16px;line-height:1.6}.bannerCopy small{font-size:12px;color:#40544b}.bannerCopy{width:57%}
.quickCare a{border-radius:9px}.quickCare b{font-size:16px}.quickCare small{font-size:13px;line-height:1.5;color:#40544b}.homeSection,.concernSection{padding-top:40px;padding-bottom:40px}.sectionHead p{font-size:16px}.sectionHead .textlink{font-size:14px}
.card,.panel,.referenceBooking,.detailContent,.steps>div{border-radius:10px;border:1px solid #cedbd3;box-shadow:var(--box-shadow)}.cardBody{padding:22px}.cardBody h3{font-size:21px}.cardBody p{font-size:15px;line-height:1.6}.cardBottom,.card .price small,.sampleBadge,.offerBadge{font-size:13px}.card .testCount{font-size:14px}.card .btn.small{font-size:14px;min-height:44px}.packageTabs button{font-size:14px}.steps>div{padding:24px}.steps p{font-size:16px}.stepTop{margin-bottom:16px}
.referenceBooking h2{font-size:26px;background:transparent;color:#173b2e;padding:0}.referenceBooking label,.referenceBooking input,.referenceBooking select,.referenceBooking textarea{font-size:16px}.referenceBooking input:not([type=checkbox]),.referenceBooking select,.referenceBooking textarea{border:1px solid #aebfb4;border-radius:6px;min-height:46px}.referenceBooking input[type=checkbox]{width:18px;height:18px;flex-shrink:0}.bookingPreview{font-size:15px!important;line-height:1.65!important}.referenceBooking .bookingSubmit{width:100%;min-height:50px}.referenceDetail .listTests>div{font-size:15px;padding:12px;color:#24392d}.detailShortcuts a{min-height:44px;display:inline-flex;align-items:center}.factsGrid strong{font-size:16px}.factsGrid small{font-size:14px}
.editorialContent{max-width:1264px}.editorialContent p,.editorialContent li{max-width:78ch}.editorialContent h2{margin-bottom:18px}.faqSection details{border-bottom:1px solid #cedbd3}.faqSection summary{padding-top:16px;padding-bottom:16px;font-size:16px}.businessContact{font-size:14px}
@media(max-width:700px){.bannerCopy{width:70%;padding:24px}.bannerCopy h2{font-size:30px}.bannerCopy p{font-size:14px}.portalBanner{min-height:385px}.portalSearch{padding-top:24px}.wrap{padding-left:20px;padding-right:20px}.homeSection,.concernSection{padding-top:30px;padding-bottom:30px}.quickCare{grid-template-columns:repeat(2,minmax(0,1fr))}.quickCare a{padding:14px;align-items:flex-start}.quickCare a>span{width:32px;height:36px;flex-shrink:0}.quickCare .medicalIllustration{width:28px;height:28px}.quickCare b{font-size:14px}.quickCare small{font-size:12px}.sectionHead{gap:14px}.sectionHead .textlink{font-size:13px;white-space:normal}.popularQueries{font-size:13px}.referenceBooking{padding:20px}.referenceDetail .listTests{grid-template-columns:1fr}.cardBody{padding:20px}.concernCircles b{font-size:13px}.editorialTable{max-width:100%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}
/* Consistent text/FAQ width, with no oversized gap before the footer. */
main>section.wrap.prose.alignedProse{max-width:1264px;width:100%;padding-top:24px;padding-bottom:32px}main>.editorialContent{margin-bottom:0;padding-bottom:24px}main>.editorialContent+section.prose{margin-top:0;padding-top:24px;border-top:1px solid #d6e1da}.alignedProse h2{margin:0 0 16px}.alignedProse details{padding:15px 0;border-bottom:1px solid #d6e1da}.alignedProse summary{font-size:16px;font-weight:600}.alignedProse p{max-width:85ch}
.directoryPage .pageTitle{max-width:24ch}.directoryFilters{background:#f4f8f5;border:1px solid #cdded3;border-radius:12px;padding:24px;gap:18px;box-shadow:0 6px 20px #173b2e06}.directoryFilters input,.directoryFilters select{height:50px;border-color:#b9cbbf}.directoryNotice{background:#f7f8f4;border:1px solid #e1e5d9;border-left:3px solid #a5843b;padding:14px 18px}.directoryStats{gap:12px;margin:24px 0;flex-wrap:wrap}.directoryStats>span{border:1px solid #d7e2da;padding:8px 14px;border-radius:7px;background:#f4f8f5}.directoryStateCards{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}.directoryStateCard{border:1px solid #cfddd3;border-radius:12px;box-shadow:0 4px 12px #173b2e07}.directoryStateHead{padding:20px;background:#edf5f0;color:#173b2e;border-bottom:1px solid #d3e1d8;align-items:flex-start}.directoryStateHead h2,.directoryStateHead h2 a{color:#173b2e;font-size:21px}.directoryStateHead>span{color:#405c4d;font-size:13px;white-space:normal;max-width:110px;text-align:right}.directoryCityRows{padding:0 20px}.directoryCityRows>a{padding:12px 0;font-size:15px;gap:12px}.directoryCityRows>a:hover{background:#f1f7f3}.directoryCityRows b{font-size:13px}.directoryViewAll{padding:16px 20px;background:#f9fbf9;font-size:14px}.cityLinks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 24px;margin-top:24px}.cityLinks a{padding:12px 0;border-bottom:1px solid #d6e1da;color:#07533f;text-decoration:underline;text-underline-offset:4px}
footer.siteFooter{background:#073f34;color:#fff;padding:0;border-top:0}.siteFooter .footerGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:32px;padding-top:44px;padding-bottom:36px}.siteFooter h2{color:#fff;font-size:16px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 24px}.siteFooter h2:after{content:'';display:block;width:42px;height:3px;background:#cfb77b;margin-top:12px}.siteFooter .footerGrid a{display:block;color:#edf5f0;font-size:15px;line-height:1.6;padding:7px 0}.siteFooter a:hover{color:#ffe5a8;text-decoration:underline;text-underline-offset:4px}.siteFooter .footerBase{background:#05352c;border-top:1px solid #ffffff24}.siteFooter .footerBase>.wrap{padding-top:22px;padding-bottom:22px}.siteFooter nav{display:flex!important;background:transparent;max-width:none;padding:0;flex-wrap:wrap;justify-content:flex-start;gap:8px 22px}.siteFooter nav a{border:0!important;padding:4px 0;margin:0;border-radius:0;background:none!important;color:#fff;font-size:14px;font-weight:400}.siteFooter p{color:#d5e5dc;font-size:13px;margin:12px 0 0}
@media(max-width:900px){.siteFooter .footerGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.directoryStateHead{flex-direction:column;gap:6px}.directoryStateHead>span{text-align:left;max-width:none}}
@media(max-width:650px){.directoryStateCards{grid-template-columns:1fr}.directoryFilters{padding:18px}.directoryStateHead{flex-direction:row;justify-content:space-between;gap:16px}.directoryStateHead>span{max-width:110px;text-align:right}.cityLinks{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 16px}.cityLinks a{font-size:14px}.siteFooter .footerGrid{gap:28px 20px}.siteFooter .footerGrid a{font-size:14px}.siteFooter h2{font-size:14px}.siteFooter nav a{min-height:36px;display:flex;align-items:center}.siteFooter nav{gap:6px 18px}.siteFooter .footerGrid{padding-top:32px}.alignedProse{padding-left:20px;padding-right:20px}}
.patientPrices{margin:24px 0}.patientPrices h3{font-size:18px;margin-bottom:14px}.patientPriceGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.patientPriceGrid button{text-align:left;background:#fff;border:1px solid #c6d8cd;border-radius:10px;padding:16px;position:relative;color:#173b2e;min-height:150px}.patientPriceGrid button[aria-pressed=true]{border:2px solid #07533f;background:#f0f7f3;padding:15px}.patientCount{display:flex;justify-content:space-between;gap:8px;font-size:15px;font-weight:700}.patientCheck{visibility:hidden;background:#07533f;color:#fff;border-radius:50%;width:21px;height:21px;text-align:center;line-height:21px}.patientPriceGrid button[aria-pressed=true] .patientCheck{visibility:visible}.patientPriceGrid strong{display:block;font-size:24px;margin:12px 0 2px}.patientPriceGrid del{font-size:13px;color:#61736a}.patientPriceGrid small{display:block;font-size:13px;margin-top:6px}.groupRate{display:block;font-size:12px;color:#07533f;margin-top:7px;font-weight:700}.patientPrices>p{font-size:13px;line-height:1.6}.testingProcess{padding-top:36px;padding-bottom:36px;border-top:1px solid #d6e2da}.processIntro{display:flex;gap:28px;align-items:center;padding:24px;background:#eef6f1;border-radius:12px}.processIntro img{width:150px;height:auto;flex-shrink:0}.processIntro p{margin:8px 0}.processIntro h2{font-size:28px}.processSteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;list-style:none;padding:0;margin:24px 0}.processSteps li{border:1px solid #d5e2d9;border-radius:10px;padding:22px;background:#fff}.processSteps h3{font-size:18px;margin-top:14px}.processSteps p{font-size:15px;margin-bottom:0}.processNumber{width:32px;height:32px;display:grid;place-items:center;background:#07533f;color:#fff;border-radius:50%;font-weight:700}.processNote{font-size:14px;border-left:3px solid #b08b44;padding-left:14px}@media(max-width:650px){.patientPriceGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.patientPriceGrid strong{font-size:22px}.processIntro{display:block;padding:20px}.processIntro img{width:130px;margin-bottom:16px}.processIntro h2{font-size:24px}.processSteps{grid-template-columns:1fr}.processSteps li{padding:20px}}
/* Retain the same horizontal gutters as the page content. */
footer.siteFooter>.footerGrid{max-width:1264px;width:100%;margin:0 auto;padding:44px 32px 36px}@media(max-width:650px){footer.siteFooter>.footerGrid{padding:32px 20px}}

.partnerLabHeading{font-size:28px;margin:32px 0 20px}.testingProcess .processSteps{grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}.testingProcess .processSteps li{min-width:0;overflow-wrap:anywhere}.testingProcess .processSteps h3{line-height:1.4}.testingProcess .processSteps p{line-height:1.7}@media(max-width:650px){.testingProcess .processSteps{grid-template-columns:1fr}}

.medicalIllustration.colourMedicalIcon{overflow:visible;flex-shrink:0}.packageIcon:has(.colourMedicalIcon),.categoryIcon:has(.colourMedicalIcon),.serviceIcon:has(.colourMedicalIcon){background:#f5f8ff;box-shadow:none}.concernCircles a:nth-child(4n+1)>span{background:#fff0f3}.concernCircles a:nth-child(4n+2)>span{background:#eef3ff}.concernCircles a:nth-child(4n+3)>span{background:#f4edff}.concernCircles a:nth-child(4n)>span{background:#e9f8f3}
