/* Physical exams overview — scoped under .pxo */
.pxo{--pxo-blue:var(--bs-primary-hex,#0072bc);--pxo-blue-dark:#005b96;--pxo-navy:var(--bs-heading-color-hex,#1e2d3b);--pxo-ink:#212124;--pxo-muted:#495356;--pxo-light:var(--bs-light-hex,#f2f8fc);--pxo-border:var(--bs-secondary-border-hex,#e7e7e7);--pxo-border-2:#d8e3ea;--pxo-yellow:var(--bs-warning-hex,#ffd240);--pxo-yellow-dark:#f5c51e;--pxo-sky:#80b7e3;--pxo-radius:var(--bs-border-radius,10px);--pxo-heading:'Catamaran',sans-serif;--pxo-body:'Nunito Sans',system-ui,sans-serif;
  font-family:var(--pxo-body);color:var(--pxo-ink);background:#fff;max-width:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.pxo *,.pxo *::before,.pxo *::after{box-sizing:border-box}
.pxo a:not([class]){color:var(--pxo-navy)}.pxo a:not([class]):hover{color:var(--pxo-blue)}
.pxo img{display:block;max-width:100%}
.pxo h1,.pxo h2,.pxo h3{font-family:var(--pxo-heading);margin:0;color:inherit}
.pxo p{margin:0}
.pxo ul,.pxo ol{margin:0;padding:0;list-style:none}
.pxo-wrap{max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px}
.pxo-eyebrow{font-family:var(--pxo-heading);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--pxo-blue);margin-bottom:10px}
.pxo-eyebrow--sky{color:var(--pxo-sky)}.pxo-eyebrow--navy{color:var(--pxo-navy);margin-bottom:8px}
.pxo-h2{font-weight:800;font-size:clamp(28px,3.6vw,40px);line-height:1.1;letter-spacing:-.015em;max-width:17ch}

/* Buttons + links */
.pxo-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:17px;padding:16px 28px;border-radius:var(--pxo-radius);text-decoration:none;border:2px solid transparent;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,color .2s ease}
.pxo .pxo-btn--primary{background:var(--pxo-blue);border-color:var(--pxo-blue);color:#fff;box-shadow:0 10px 26px rgba(0,114,188,.4)}
.pxo .pxo-btn--primary:hover{background:var(--pxo-blue-dark);border-color:var(--pxo-blue-dark);color:#fff;transform:translateY(-2px);box-shadow:0 14px 32px rgba(0,114,188,.5)}
.pxo .pxo-btn--ghost{color:#fff;border-color:rgba(255,255,255,.4);padding:16px 22px}
.pxo .pxo-btn--ghost:hover{border-color:var(--pxo-yellow);color:var(--pxo-yellow);background:rgba(255,210,64,.08)}
.pxo .pxo-btn--yellow{background:var(--pxo-yellow);color:var(--pxo-navy);padding:14px 24px;margin-top:10px}
.pxo .pxo-btn--yellow:hover{background:var(--pxo-yellow-dark);color:var(--pxo-navy);transform:translateY(-2px)}
.pxo .pxo-btn--navy-outline{background:transparent;color:var(--pxo-navy);border-color:var(--pxo-navy);padding:14px 22px}
.pxo .pxo-btn--navy-outline:hover{background:var(--pxo-navy);color:#fff}
.pxo-link{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:16px;color:var(--pxo-blue);text-decoration:none;transition:gap .2s ease,color .2s ease}
.pxo .pxo-link:hover{gap:14px;color:var(--pxo-blue-dark)}
.pxo .pxo-link--yellow{color:var(--pxo-yellow)}.pxo .pxo-link--yellow:hover{color:#fff}

/* Hero */
.pxo-hero{position:relative;overflow:hidden;background:var(--pxo-navy);color:#fff;min-height:min(80vh,660px);display:flex;align-items:center}
.pxo-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:66% center;animation:pxoDrift 26s ease-in-out infinite alternate}
.pxo-hero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,45,59,.97) 0%,rgba(30,45,59,.9) 44%,rgba(30,45,59,.45) 80%,rgba(30,45,59,.55) 100%)}
.pxo-hero__inner{position:relative;width:100%;padding-top:92px;padding-bottom:96px}
.pxo-hero__copy{max-width:680px}
.pxo-crumb{display:inline-flex;flex-wrap:wrap;align-items:center;gap:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);border-radius:999px;padding:7px 16px 7px 12px;font-family:var(--pxo-heading);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#cfe3f3;margin-bottom:18px;animation:pxoIn .6s cubic-bezier(.2,.7,.3,1) both}
.pxo-crumb a{color:#cfe3f3;text-decoration:none}.pxo-crumb a:hover{color:#fff;text-decoration:underline}
.pxo-crumb>span[aria-hidden]{opacity:.5}
.pxo-crumb .pxo-crumb__dot{opacity:1;width:9px;height:9px;border-radius:50%;background:var(--pxo-yellow);animation:pxoPulse 2.2s ease-out infinite}
.pxo-hero h1{font-weight:800;font-size:clamp(36px,5.4vw,62px);line-height:1.02;letter-spacing:-.022em;margin:0 0 20px;max-width:15ch;text-wrap:balance;animation:pxoIn .75s cubic-bezier(.2,.7,.3,1) .08s both}
.pxo-hero__lede{font-size:clamp(17px,2vw,21px);line-height:1.5;color:#dbe7f0;max-width:54ch;margin:0 0 30px!important;animation:pxoIn .75s cubic-bezier(.2,.7,.3,1) .18s both}
.pxo-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;animation:pxoIn .75s cubic-bezier(.2,.7,.3,1) .28s both}
.pxo-hero__facts{display:flex;flex-wrap:wrap;gap:10px 28px;margin-top:34px!important;animation:pxoIn .75s cubic-bezier(.2,.7,.3,1) .38s both}
.pxo-hero__facts li{display:flex;align-items:baseline;gap:9px;font-family:var(--pxo-heading);font-weight:700;font-size:15px;letter-spacing:.02em;color:#e4eef6}
.pxo-hero__facts li::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--pxo-yellow);flex:none;transform:translateY(-2px)}

/* Sections */
.pxo-section{padding:76px 0;border-bottom:1px solid var(--pxo-border)}
.pxo-section--white{background:#fff}.pxo-section--light{background:var(--pxo-light)}
.pxo-section--navy{background:var(--pxo-navy);color:#fff;border-bottom:0;padding:72px 0}
.pxo-head{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:24px 56px;align-items:end;margin-bottom:32px}
.pxo-head--stack{display:block;max-width:60ch;margin-bottom:30px}
.pxo-head__lead{font-size:17px;line-height:1.55;color:var(--pxo-muted);max-width:52ch}

/* Two ways */
.pxo-ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px;align-items:stretch}
.pxo-way{border-radius:16px;overflow:hidden;display:flex;flex-direction:column;transition:transform .22s ease,box-shadow .22s ease}
.pxo-way:hover{transform:translateY(-4px)}
.pxo-way--onsite{background:var(--pxo-navy);color:#fff}.pxo-way--onsite:hover{box-shadow:0 20px 44px rgba(30,45,59,.25)}
.pxo-way--clinic{background:var(--pxo-light);border:1px solid var(--pxo-border)}.pxo-way--clinic:hover{box-shadow:0 20px 44px rgba(30,45,59,.12)}
.pxo-way__media{position:relative}
.pxo-way__media img{width:100%;aspect-ratio:16/7;object-fit:cover;object-position:60% center}
.pxo-way__badge{position:absolute;top:16px;left:16px;font-family:var(--pxo-heading);font-weight:800;font-size:12px;letter-spacing:.1em;text-transform:uppercase;background:var(--pxo-yellow);color:var(--pxo-navy);padding:6px 12px;border-radius:999px}
.pxo-way__body{padding:28px 30px 32px;display:flex;flex-direction:column;gap:14px;flex:1}
.pxo-way__body>p{font-size:16px;line-height:1.55;color:var(--pxo-muted)}
.pxo-way--onsite .pxo-way__body>p{color:#dbe7f0}
.pxo-way__eyebrow{font-family:var(--pxo-heading);font-weight:700;font-size:12px!important;letter-spacing:.14em;text-transform:uppercase;color:var(--pxo-blue)!important}
.pxo-way--onsite .pxo-way__eyebrow{color:var(--pxo-yellow)!important}
.pxo-way__title{font-weight:800;font-size:clamp(24px,2.8vw,30px);line-height:1.12}
.pxo-way .pxo-link{margin-top:auto;padding-top:10px}
.pxo-checks{display:flex;flex-direction:column;gap:10px;margin-top:4px!important}
.pxo-checks li{display:flex;gap:12px;font-size:15px;line-height:1.45}
.pxo-checks li::before{content:"✓";flex:none;width:20px;height:20px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;margin-top:1px;background:#fff;border:1px solid var(--pxo-border-2);color:var(--pxo-blue)}
.pxo-way--onsite .pxo-checks li{color:#e4eef6}
.pxo-way--onsite .pxo-checks li::before{background:rgba(255,210,64,.2);border:0;color:var(--pxo-yellow)}

/* Filter + exam cards */
.pxo-filter{display:flex;flex-wrap:wrap;gap:6px;background:#fff;border:1px solid var(--pxo-border-2);border-radius:999px;padding:5px;margin-bottom:20px;width:fit-content;max-width:100%}
.pxo-filter__btn{font:inherit;font-family:var(--pxo-heading);font-weight:800;font-size:14px;cursor:pointer;white-space:nowrap;border:0;border-radius:999px;padding:9px 18px;background:transparent;color:var(--pxo-navy);transition:all .18s ease}
.pxo-filter__btn.is-active{background:var(--pxo-navy);color:#fff}
.pxo-filter__btn:focus-visible{outline:2px solid var(--pxo-blue);outline-offset:2px}
.pxo-exams{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.pxo-exam{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid var(--pxo-border);border-radius:12px;padding:24px 24px 22px;text-decoration:none;color:var(--pxo-ink);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.pxo-exam:hover{transform:translateY(-4px);box-shadow:0 16px 36px rgba(30,45,59,.12);border-color:var(--pxo-blue);color:var(--pxo-ink)}
.pxo-exam[hidden]{display:none}
.pxo-exam__meta{display:flex;flex-wrap:wrap;gap:6px}
.pxo-tag{font-family:var(--pxo-heading);font-weight:800;font-size:11px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;padding:4px 10px;border-radius:999px;background:#eef4f8;color:var(--pxo-navy)}
.pxo-tag--onsite{background:var(--pxo-yellow)}
.pxo-exam__when{font-family:var(--pxo-heading);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--pxo-muted);padding:4px 0}
.pxo-exam__title{font-weight:800;font-size:20px;line-height:1.2;color:var(--pxo-navy)}
.pxo-exam__body{font-size:15px;line-height:1.5;color:var(--pxo-muted);flex:1}
.pxo-exam__more{font-weight:700;font-size:15px;color:var(--pxo-blue);display:flex;align-items:center;gap:6px;padding-top:4px}

/* Navy split + steps */
.pxo-split{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px 56px;align-items:start}
.pxo-split .pxo-h2{max-width:16ch;margin-bottom:14px}
.pxo-navy__p{font-size:18px;line-height:1.55;color:#dbe7f0;margin:0 0 14px!important;max-width:46ch}
.pxo-steps{display:flex;flex-direction:column;gap:10px}
.pxo-step{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:20px 22px;transition:background .2s ease,border-color .2s ease}
.pxo-step:hover{background:rgba(255,255,255,.11);border-color:rgba(255,210,64,.5)}
.pxo-step__n{width:36px;height:36px;border-radius:50%;background:var(--pxo-yellow);color:var(--pxo-navy);display:inline-flex;align-items:center;justify-content:center;font-family:var(--pxo-heading);font-weight:800;font-size:16px}
.pxo-step__text{display:flex;flex-direction:column;gap:4px;min-width:0}
.pxo-step__when{font-family:var(--pxo-heading);font-weight:700;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--pxo-sky)}
.pxo-step__title{font-family:var(--pxo-heading);font-weight:800;font-size:19px;line-height:1.2}
.pxo-step__body{font-size:15px;line-height:1.5;color:#dbe7f0}

/* Benefits */
.pxo-benefits{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.pxo-benefit{border:1px solid var(--pxo-border);border-radius:12px;padding:26px;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.pxo-benefit:hover{transform:translateY(-5px);box-shadow:0 16px 36px rgba(30,45,59,.12);border-color:var(--pxo-blue)}
.pxo-benefit h3{font-weight:800;font-size:19px;line-height:1.2;margin-bottom:8px}
.pxo-benefit p{font-size:15px;line-height:1.5;color:var(--pxo-muted)}

/* FAQ */
.pxo-faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:36px 56px;align-items:start}
.pxo-faq .pxo-h2{max-width:16ch;margin-bottom:12px}
.pxo-faq__lead{font-size:17px;line-height:1.55;color:var(--pxo-muted);margin:0 0 22px!important;max-width:40ch}
.pxo-faq__phone{font-family:var(--pxo-heading);font-weight:800;font-size:22px;color:var(--pxo-navy);text-decoration:none}
.pxo .pxo-faq__phone:hover{color:var(--pxo-blue)}
.pxo-faq__list{display:flex;flex-direction:column;gap:8px}
.pxo-faq__list details{background:#fff;border:1px solid var(--pxo-border);border-radius:10px;overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.pxo-faq__list details[open]{border-color:var(--pxo-blue);box-shadow:0 10px 28px rgba(0,114,188,.12)}
.pxo-faq__list summary{list-style:none;cursor:pointer;display:flex;gap:16px;align-items:center;justify-content:space-between;padding:18px 20px;font-family:var(--pxo-heading);font-weight:800;font-size:18px;line-height:1.3;color:var(--pxo-navy);transition:color .2s ease}
.pxo-faq__list summary::-webkit-details-marker{display:none}
.pxo-faq__list summary:hover{color:var(--pxo-blue)}
.pxo-faq__icon{flex:none;font-weight:700;font-size:26px;line-height:1;color:var(--pxo-blue);transition:transform .25s ease}
.pxo-faq__list details[open] .pxo-faq__icon{transform:rotate(45deg)}
.pxo-faq__list details p{padding:0 20px 20px;font-size:16px;line-height:1.6;color:var(--pxo-muted);max-width:70ch}

/* Final CTA */
.pxo-cta{background:var(--pxo-yellow)}
.pxo-cta__inner{padding-top:60px;padding-bottom:60px;display:flex;flex-wrap:wrap;gap:28px 40px;align-items:center;justify-content:space-between}
.pxo-cta__copy{flex:1 1 380px;min-width:0;color:var(--pxo-navy)}
.pxo-cta__copy .pxo-h2{max-width:22ch;margin-bottom:12px}
.pxo-cta__copy p:last-child{font-size:18px;line-height:1.55;max-width:56ch}
.pxo-cta__actions{flex:0 1 300px;min-width:240px;display:flex;flex-direction:column;gap:8px}
.pxo-cta__actions .pxo-btn{box-shadow:none;padding:14px 22px}

/* Reveal (added by JS) */
.pxo-reveal{opacity:0;transform:translateY(26px);transition:opacity .6s cubic-bezier(.2,.7,.3,1),transform .6s cubic-bezier(.2,.7,.3,1)}
.pxo-reveal.is-in{opacity:1;transform:none}

@keyframes pxoIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes pxoDrift{from{transform:scale(1.06) translate3d(0,0,0)}to{transform:scale(1.16) translate3d(-2%,-1.5%,0)}}
@keyframes pxoPulse{0%{box-shadow:0 0 0 0 rgba(255,210,64,.55)}70%{box-shadow:0 0 0 14px rgba(255,210,64,0)}100%{box-shadow:0 0 0 0 rgba(255,210,64,0)}}
@media (prefers-reduced-motion:reduce){.pxo *,.pxo *::before,.pxo *::after{animation:none!important;transition:none!important}.pxo-reveal{opacity:1;transform:none}}
@media print{.pxo-reveal{opacity:1!important;transform:none!important}.pxo-hero__img{animation:none}}

/* === physical-exams — appended for MODX and the live theme ============= */
/* Everything above is the design stylesheet, shipped in full and unedited
   (BUILD-RECIPE: "Ship the design CSS in full"). Rules below only adapt it to
   the theme and to markup that now comes from TVs and MIGX rows. */

/* The design maps navy to --bs-heading-color-hex, which on this theme is the
   text colour #212124: hero, navy band and on-site card would render ink-black.
   Navy on this theme is --bs-tertiary-hex. */
.pxo { --pxo-navy: var(--bs-tertiary-hex, #1e2d3b); }

/* The theme colours headings directly; restate the design's colours. */
.pxo .pxo-hero h1,
.pxo .pxo-section--navy .pxo-h2,
.pxo .pxo-way--onsite .pxo-way__title,
.pxo .pxo-step__title { color: #fff; }
.pxo .pxo-section--white .pxo-h2,
.pxo .pxo-section--light .pxo-h2,
.pxo .pxo-cta .pxo-h2,
.pxo .pxo-way--clinic .pxo-way__title,
.pxo .pxo-benefit h3 { color: var(--pxo-navy); }
.pxo .pxo-exam__title { color: var(--pxo-navy); }

/* The crumb is a div (no links): keep its pill margin, which `.pxo p` would
   otherwise zero. */
.pxo .pxo-crumb { margin-bottom: 18px; }

/* Buttons and card links are <a>; make sure no theme `a` rule repaints them. */
.pxo a.pxo-btn, .pxo a.pxo-link, .pxo a.pxo-exam { text-decoration: none; }
.pxo a.pxo-btn--primary, .pxo a.pxo-btn--primary:hover { color: #fff; }
.pxo a.pxo-btn--ghost { color: #fff; }
.pxo a.pxo-btn--ghost:hover { color: var(--pxo-yellow); }
.pxo a.pxo-btn--yellow, .pxo a.pxo-btn--yellow:hover { color: var(--pxo-navy); }
.pxo a.pxo-btn--navy-outline { color: var(--pxo-navy); }
.pxo a.pxo-btn--navy-outline:hover { color: #fff; }
.pxo a.pxo-link { color: var(--pxo-blue); }
.pxo a.pxo-link:hover { color: var(--pxo-blue-dark); }
.pxo a.pxo-link--yellow { color: var(--pxo-yellow); }
.pxo a.pxo-link--yellow:hover { color: #fff; }
.pxo a.pxo-exam, .pxo a.pxo-exam:hover { color: var(--pxo-ink); }

/* Setting cards come from one row tpl: photo and badge only on the navy
   (on-site) card. The card paragraph is a richtext TV, so it emits its own <p>. */
.pxo-way--clinic .pxo-way__media { display: none; }
.pxo-way__text > p { font-size: 16px; line-height: 1.55; color: var(--pxo-muted); }
.pxo-way__text > p + p { margin-top: 10px; }
.pxo-way--onsite .pxo-way__text > p { color: #dbe7f0; }

/* Exam cards: meta row and body are spans (the card is a link). */
.pxo-exam__body { display: block; }
.pxo-tag--clinic { background: #eef4f8; }

/* Richtext TVs (types-content, content) render inside a div; restate the
   paragraph styling the design put on its <p> elements. */
.pxo .pxo-freetext > p { font: inherit; color: inherit; margin: 0; }
.pxo .pxo-freetext > p + p { margin-top: 14px; }
.pxo-navy__body { font-size: 18px; line-height: 1.55; color: #dbe7f0; max-width: 46ch; margin: 0 0 14px; }
.pxo-navy__body a { color: var(--pxo-yellow); }

/* Step numerals are a CSS counter, not data. */
.pxo-steps { counter-reset: pxo-step; }
.pxo-step { counter-increment: pxo-step; }
.pxo-step__n::before { content: counter(pxo-step); }

/* FAQ: answers are a richtext div; four clinic phones replace the design's
   single number (no clinic's line is site-wide). */
.pxo-faq__list details .pxo-faq__a > p + p { margin-top: -8px; }
.pxo-faq__phones { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 12px 20px; max-width: 420px; }
.pxo-faq__phones li { display: flex; flex-direction: column; gap: 2px; }
.pxo-faq__phones li > span { font-family: var(--pxo-heading); font-weight: 700; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--pxo-muted); }
.pxo .pxo-faq__phone { font-size: 19px; }

/* Fail open without JS: the filter only works with the script, so it is
   hidden until physical-exams.js adds .pxo-js to the root; every card shows. */
.pxo:not(.pxo-js) .pxo-js-only { display: none; }
.pxo [hidden] { display: none !important; }
.pxo-faq__list summary:focus-visible { outline: 2px solid var(--pxo-blue); outline-offset: -2px; }
.pxo a.pxo-exam:focus-visible, .pxo a.pxo-btn:focus-visible, .pxo a.pxo-link:focus-visible { outline: 2px solid var(--pxo-blue); outline-offset: 3px; }
.pxo-section--navy a.pxo-btn:focus-visible, .pxo-way--onsite a.pxo-link:focus-visible { outline-color: var(--pxo-yellow); }

/* Phones: the design's 320px card minimum overflows a 375px viewport once the
   24px gutters are taken; let the grids collapse to one column. */
@media (max-width: 400px) {
  .pxo-ways, .pxo-exams, .pxo-benefits { grid-template-columns: minmax(0, 1fr); }
  .pxo-head, .pxo-split, .pxo-faq { grid-template-columns: minmax(0, 1fr); }
  .pxo-btn { white-space: normal; }
  .pxo-wrap { padding-left: 16px; padding-right: 16px; }
}
