/* Tests & Screenings page template — scoped under .tst */
.tst{--tst-blue:var(--bs-primary-hex,#0072bc);--tst-blue-dark:#005b96;--tst-navy:var(--bs-heading-color-hex,#1e2d3b);--tst-ink:#212124;--tst-muted:#495356;--tst-light:var(--bs-light-hex,#f2f8fc);--tst-border:var(--bs-secondary-border-hex,#e7e7e7);--tst-border-2:#cfd8de;--tst-yellow:var(--bs-warning-hex,#ffd240);--tst-yellow-pale:#fff5d6;--tst-sky:#80b7e3;--tst-sky-pale:#cfe4f5;--tst-green:#2e9e5b;--tst-radius:var(--bs-border-radius,10px);--tst-heading:'Catamaran',sans-serif;--tst-body:'Nunito Sans',system-ui,sans-serif;--tst-ease:cubic-bezier(.2,.7,.3,1);
  font-family:var(--tst-body);color:var(--tst-ink);background:#fff;max-width:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.tst *,.tst *::before,.tst *::after{box-sizing:border-box}
.tst p a:not([class]){color:var(--tst-navy)}.tst p a:not([class]):hover{color:var(--tst-blue)}
.tst img{display:block;max-width:100%}
.tst h1,.tst h2,.tst h3{font-family:var(--tst-heading);color:inherit;margin:0}
.tst ul,.tst ol{margin:0;padding:0;list-style:none}
.tst p{margin:0}
.tst-wrap{max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px}
.tst-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px 56px;align-items:start}
.tst-eyebrow{font-family:var(--tst-heading);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--tst-blue);margin:0 0 10px}
.tst-eyebrow--sky{color:var(--tst-sky)}.tst-eyebrow--navy{color:var(--tst-navy);margin-bottom:8px}
.tst-h2{font-weight:800;font-size:clamp(28px,3.6vw,40px);line-height:1.1;letter-spacing:-.015em;color:var(--tst-navy);margin:0 0 14px}
.tst-lead{font-size:18px;line-height:1.55;color:var(--tst-muted);margin:0 0 14px;max-width:46ch}
.tst-btn{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;padding:15px 26px;border-radius:var(--tst-radius);text-decoration:none;border:2px solid transparent;white-space:nowrap;transition:background .2s,border-color .2s,color .2s}
.tst .tst-btn-primary{background:var(--tst-blue);color:#fff;border-color:var(--tst-blue);box-shadow:0 6px 18px rgba(0,114,188,.35)}.tst .tst-btn-primary:hover{background:var(--tst-blue-dark);border-color:var(--tst-blue-dark);color:#fff}
.tst .tst-btn-outline-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}.tst .tst-btn-outline-light:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff}
.tst .tst-btn-outline{background:transparent;color:var(--tst-blue);border-color:var(--tst-blue)}.tst .tst-btn-outline:hover{background:var(--tst-blue);color:#fff}
.tst-pill{display:flex;align-items:center;justify-content:center;font-weight:600;font-size:17px;padding:13px 22px;border-radius:999px;border:2px solid var(--tst-blue);text-decoration:none;transition:background .2s,color .2s,border-color .2s}
.tst .tst-pill-solid{background:var(--tst-blue);color:#fff}.tst .tst-pill-solid:hover{background:var(--tst-blue-dark);border-color:var(--tst-blue-dark);color:#fff}
.tst .tst-pill-outline{background:transparent;color:var(--tst-blue)}.tst .tst-pill-outline:hover{background:var(--tst-blue);color:#fff}
@keyframes tstHeroIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* 1. Hero */
.tst-hero{background:var(--tst-navy);color:#fff;position:relative;overflow:hidden}
.tst-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 85% 20%,rgba(0,114,188,.45),transparent 55%)}
.tst-hero__grid{position:relative;padding-top:60px;padding-bottom:64px;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px 56px;align-items:center}
.tst-crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--tst-heading);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--tst-sky);margin-bottom:14px;animation:tstHeroIn .6s var(--tst-ease) both}
.tst .tst-crumb a{color:var(--tst-sky);text-decoration:none}.tst .tst-crumb a:hover{color:#fff;text-decoration:underline}
.tst-hero h1{font-weight:800;font-size:clamp(34px,5vw,58px);line-height:1.04;letter-spacing:-.02em;margin:0 0 18px;max-width:16ch;text-wrap:balance;animation:tstHeroIn .7s var(--tst-ease) .08s both}
.tst-hero__lede{font-size:clamp(17px,2vw,20px);line-height:1.5;color:#dbe7f0;max-width:50ch;margin:0 0 28px;animation:tstHeroIn .7s var(--tst-ease) .16s both}
.tst-hero__actions{display:flex;flex-wrap:wrap;gap:12px;animation:tstHeroIn .7s var(--tst-ease) .24s both}
.tst-glance{background:#fff;color:var(--tst-ink);border-radius:12px;padding:26px 28px 8px;box-shadow:0 24px 60px rgba(0,0,0,.35);animation:tstHeroIn .7s var(--tst-ease) .2s both}
.tst-glance__eyebrow{font-family:var(--tst-heading);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tst-blue);margin:0 0 6px}
.tst-glance__list{margin:0}
.tst-glance__list>div{display:grid;grid-template-columns:minmax(110px,.38fr) minmax(0,1fr);gap:4px 18px;padding:14px 0;border-bottom:1px solid var(--tst-border);align-items:baseline}
.tst-glance__list dt{font-size:14px;font-weight:700;color:var(--tst-muted)}
.tst-glance__list dd{margin:0}
.tst-glance__list dd strong{display:block;font-family:var(--tst-heading);font-weight:800;font-size:19px;line-height:1.2;color:var(--tst-navy)}
.tst-glance__list dd span{display:block;font-size:14px;line-height:1.45;color:var(--tst-muted)}
.tst-glance__foot{padding:14px 0 16px;font-size:14px;color:var(--tst-muted);display:flex;gap:8px;align-items:center}
.tst-glance__foot::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tst-green);flex:none}

/* 2. Employer band */
.tst-employer{background:var(--tst-yellow);overflow:hidden}
.tst-employer__wrap{max-width:1320px;margin:0 auto;padding:48px 24px;display:flex;flex-wrap:wrap;gap:28px 36px;align-items:center}
.tst-employer__copy{flex:1 1 380px;min-width:0}
.tst-employer h2{font-weight:600;font-size:clamp(24px,2.6vw,32px);line-height:1.2;color:var(--tst-blue);margin:0 0 10px;max-width:26ch}
.tst-employer__copy>p:last-child{font-style:oblique;font-size:16px;line-height:1.5;color:var(--tst-blue);max-width:62ch}
.tst-employer__actions{flex:0 1 300px;min-width:240px;display:flex;flex-direction:column;gap:8px}

/* Generic sections */
.tst-section{background:#fff;border-bottom:1px solid var(--tst-border)}
.tst-section--light{background:var(--tst-light)}
.tst-section>.tst-wrap{padding-top:68px;padding-bottom:68px}

/* 3. Panel table */
.tst-panel .tst-h2{max-width:18ch}
.tst-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.tst-chips li{font-size:14px;font-weight:700;padding:8px 14px;border-radius:999px;border:1.5px solid var(--tst-border-2);color:var(--tst-navy);background:#fff}
.tst-table{border:1px solid var(--tst-border);border-radius:12px;overflow:hidden}
.tst-table__head{background:var(--tst-light);padding:14px 22px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;font-family:var(--tst-heading);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--tst-muted)}
.tst-table__row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:16px;padding:16px 22px;border-top:1px solid var(--tst-border);align-items:start}
.tst-table__row h3{font-weight:800;font-size:17px;line-height:1.25;color:var(--tst-navy)}
.tst-table__row p{font-size:15px;line-height:1.5;color:var(--tst-muted)}
.tst-table__foot{padding:14px 22px;border-top:1px solid var(--tst-border);background:var(--tst-yellow-pale);font-size:14px;line-height:1.5}

/* 4. Steps */
.tst-steps>.tst-wrap{padding-top:60px;padding-bottom:64px}
.tst-steps__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:30px}
.tst-steps__head>div{max-width:60ch}.tst-steps__head .tst-h2{margin:0}
.tst-steps__note{font-size:16px;color:var(--tst-muted)}
.tst-steps__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px}
.tst-steps__list li{background:#fff;border:1px solid var(--tst-border);border-radius:var(--tst-radius);padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px}
.tst-steps__meta{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tst-steps__num{font-family:var(--tst-heading);font-weight:800;font-size:15px;color:var(--tst-blue);letter-spacing:.06em}
.tst-steps__when{font-family:var(--tst-heading);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--tst-muted);background:var(--tst-light);padding:4px 10px;border-radius:999px}
.tst-steps__list h3{font-weight:800;font-size:20px;line-height:1.2}
.tst-steps__list p{font-size:16px;line-height:1.5;color:var(--tst-muted)}

/* 5. Prepare */
.tst-prep .tst-two{gap:40px}
.tst-prep__copy{display:flex;flex-direction:column;gap:24px}
.tst-prep .tst-h2{max-width:18ch;margin-bottom:12px}
.tst-prep .tst-lead{max-width:44ch;margin:0}
.tst-card{border-radius:var(--tst-radius);padding:26px 28px;border:1px solid var(--tst-border)}
.tst-card--light{background:var(--tst-light);border-color:transparent}
.tst-card--note{background:var(--tst-yellow-pale);border-color:var(--tst-yellow);padding:22px 24px;max-width:44ch}
.tst-card h3{font-weight:800;font-size:20px;margin-bottom:12px}
.tst-list{display:flex;flex-direction:column;gap:10px}
.tst-list li{display:flex;gap:10px;font-size:16px;line-height:1.45}
.tst-list--navy li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--tst-navy);margin-top:9px}
.tst-list--check li::before{content:"✓";flex:none;width:20px;height:20px;border-radius:50%;background:var(--tst-blue);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;margin-top:2px}

/* 6. Results */
.tst-results{background:var(--tst-navy);color:#fff}
.tst-results>.tst-wrap{padding-top:64px;padding-bottom:64px}
.tst-results .tst-h2{color:#fff}
.tst-results__head{max-width:60ch;margin-bottom:34px}
.tst-results__head>p:last-child{font-size:18px;line-height:1.55;color:#dbe7f0}
.tst-results__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}
.tst-results__card{border:1px solid rgba(255,255,255,.18);border-radius:var(--tst-radius);padding:22px 24px;background:rgba(255,255,255,.04)}
.tst-results__card h3{font-weight:800;font-size:20px;color:var(--tst-sky);margin-bottom:6px}
.tst-results__when{font-size:14px;color:var(--tst-sky-pale);margin-bottom:12px}
.tst-results__card ul{display:flex;flex-direction:column;gap:8px}
.tst-results__card li{display:flex;gap:10px;font-size:16px;line-height:1.5;color:var(--tst-light)}
.tst-results__card li::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;background:var(--tst-sky);margin-top:9px}

/* 7. FAQ */
.tst-faq .tst-two{gap:40px}
.tst-faq__intro{position:sticky;top:20px}
.tst-faq__intro .tst-h2{max-width:16ch;margin-bottom:12px}
.tst-faq__intro .tst-lead{font-size:17px;max-width:40ch;margin-bottom:24px}
.tst-faq__intro img{width:100%;max-width:480px;aspect-ratio:4/3;object-fit:cover;border-radius:var(--tst-radius)}
.tst-faq__list{border-top:1px solid var(--tst-border)}
.tst-faq__list details{border-bottom:1px solid var(--tst-border)}
.tst-faq__list summary{list-style:none;cursor:pointer;padding:18px 0;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--tst-navy);font-family:var(--tst-heading);font-weight:800;font-size:19px;line-height:1.25}
.tst-faq__list summary::-webkit-details-marker{display:none}
.tst-faq__list summary:hover{color:var(--tst-blue)}
.tst-faq__icon{flex:none;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--tst-border-2);position:relative;transition:transform .2s}
.tst-faq__icon::before,.tst-faq__icon::after{content:"";position:absolute;background:currentColor;left:50%;top:50%;transform:translate(-50%,-50%)}
.tst-faq__icon::before{width:12px;height:1.5px}.tst-faq__icon::after{width:1.5px;height:12px}
.tst-faq__list details[open] .tst-faq__icon{transform:rotate(45deg)}
.tst-faq__a{padding:0 40px 20px 0}
.tst-faq__a p{font-size:16px;line-height:1.6;color:var(--tst-muted)}

/* 8. Related */
.tst-related>.tst-wrap{padding-top:48px;padding-bottom:48px}
.tst-related .tst-eyebrow{margin-bottom:14px}
.tst-related__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.tst .tst-related__grid a{display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff;border:1px solid var(--tst-border);border-radius:var(--tst-radius);padding:14px 18px;text-decoration:none;color:var(--tst-navy);font-family:var(--tst-heading);font-weight:800;font-size:16px;line-height:1.25;transition:border-color .2s,color .2s}
.tst-related__grid a span:last-child{color:var(--tst-blue)}
.tst .tst-related__grid a:hover{border-color:var(--tst-blue);color:var(--tst-blue)}

/* 9. Clinic CTA */
.tst-cta{background:#fff}
.tst-cta__wrap{padding-top:64px;padding-bottom:64px;display:flex;flex-wrap:wrap;gap:28px 40px;align-items:center;justify-content:space-between}
.tst-cta__copy{flex:1 1 380px;min-width:0}
.tst-cta .tst-h2{max-width:22ch;margin-bottom:12px}
.tst-cta .tst-lead{max-width:56ch;margin-bottom:18px}
.tst-cta__clinics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 24px;max-width:56ch}
.tst-cta__clinics li{font-size:15px;line-height:1.4}
.tst-cta__clinics strong{font-family:var(--tst-heading);font-weight:800;font-size:16px;display:block}
.tst .tst-cta__clinics a{color:var(--tst-blue);font-weight:700;text-decoration:none}.tst .tst-cta__clinics a:hover{text-decoration:underline}
.tst-cta__actions{flex:0 1 300px;min-width:240px;display:flex;flex-direction:column;gap:8px}
.tst-cta__actions .tst-btn{display:flex;padding:14px 22px}

@media (prefers-reduced-motion:reduce){.tst *{animation:none!important;transition:none!important}}
@media print{.tst-faq__intro{position:static}}


/* ======================================================================
   ICA build additions — appended, never merged (append-only CSS rule).
   ====================================================================== */
/* reveal fail-open: the site's SAL can leave [data-sal] at opacity:0 */
.tst [data-sal], .tst [data-reveal] { opacity: 1 !important; transform: none !important; animation: none !important; }
/* theme collision: ICA theme sets h1/h2/h3 colour directly; restate the design's inverted colours */
.tst-hero h1, .tst-hero .tst-hero__lede, .tst-hero .tst-crumb, .tst-hero .tst-crumb a { color: #fff; }
.tst-results .tst-h2, .tst-results h3, .tst-results p, .tst-results li { color: #fff; }
.tst-results .tst-results__when { color: #dbe7f0; }
/* step numbering as a CSS counter (MODX has no lpad modifier) */
.tst-steps__list { counter-reset: tststep; }
.tst-steps__list > li { counter-increment: tststep; }
.tst-steps__num::before { content: counter(tststep, decimal-leading-zero); }
/* free-text region ([[*content]]) */
.tst-freetext p { margin: 0 0 12px; } .tst-freetext p:last-child { margin-bottom: 0; }

/* ----------------------------------------------------------------------
   Responsive audit 2026-10-04, item L3 — panel-table label column.
   The 1fr / 1.4fr split leaves the label track 99–112px on phones and on
   two-up tablets (.tst-two goes two columns from a 656px container, i.e.
   704px viewports, leaving each table ~300px). One-word labels such as
   "Amphetamines" (118px at 17px/800) and "Reasonable-suspicion" then overrun
   the track. Floor the label track at 128px, let any future longer word
   break instead of overrunning, tighten the row inset on phones so the value
   column keeps its width, and keep the table section (only that section)
   one-up until 900px so a two-up table is never narrower than ~396px. From
   900px up the fr share exceeds 128px and nothing changes. Browsers without
   :has() keep today's two-up band from 704px; the 128px floor still applies.
   ---------------------------------------------------------------------- */
.tst-table__head,.tst-table__row{grid-template-columns:minmax(128px,1fr) minmax(0,1.4fr)}
.tst-table__row h3,.tst-table__row p{overflow-wrap:break-word}
@media (max-width:575.98px){
  .tst-table__head,.tst-table__row{gap:12px;padding-left:16px;padding-right:16px}
  .tst-table__foot{padding-left:16px;padding-right:16px}
}
@media (min-width:704px) and (max-width:899.98px){
  .tst-two:has(> .tst-table){grid-template-columns:1fr}
}
