/* Physicals page template — scoped under .ppt */
.ppt{--ppt-blue:var(--bs-primary-hex,#0072bc);--ppt-blue-dark:#005b96;--ppt-navy:var(--bs-heading-color-hex,#1e2d3b);--ppt-ink:#212124;--ppt-muted:#495356;--ppt-light:var(--bs-light-hex,#f2f8fc);--ppt-border:var(--bs-secondary-border-hex,#e7e7e7);--ppt-border-2:#cfd8de;--ppt-yellow:var(--bs-warning-hex,#ffd240);--ppt-yellow-pale:#fff5d6;--ppt-sky:#80b7e3;--ppt-radius:var(--bs-border-radius,10px);--ppt-heading:'Catamaran',sans-serif;--ppt-body:'Nunito Sans',system-ui,sans-serif;
  font-family:var(--ppt-body);color:var(--ppt-ink);background:var(--ppt-light);max-width:100%;overflow-x:hidden;-webkit-font-smoothing:antialiased}
.ppt *,.ppt *::before,.ppt *::after{box-sizing:border-box}
.ppt a:not([class]){color:var(--ppt-navy)}.ppt a:not([class]):hover{color:var(--ppt-blue)}
.ppt img{display:block;max-width:100%}
.ppt-wrap{max-width:1180px;margin:0 auto;padding-left:24px;padding-right:24px}
.ppt-eyebrow{font-family:var(--ppt-heading);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ppt-blue);margin:0 0 10px}
.ppt h1,.ppt h2,.ppt h3{font-family:var(--ppt-heading);color:inherit;margin:0}
.ppt-h2{font-weight:800;font-size:clamp(28px,3.6vw,40px);line-height:1.1;letter-spacing:-.015em}
.ppt-lead{font-size:18px;line-height:1.55;color:var(--ppt-muted);margin:0}
.ppt-btn{display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:17px;padding:15px 26px;border-radius:var(--ppt-radius);text-decoration:none;border:2px solid transparent;transition:background .15s,border-color .15s,color .15s}
.ppt .ppt-btn-primary{background:var(--ppt-blue);color:#fff;border-color:var(--ppt-blue)}.ppt .ppt-btn-primary:hover{background:var(--ppt-blue-dark);border-color:var(--ppt-blue-dark);color:#fff}
.ppt .ppt-btn-outline{background:transparent;color:var(--ppt-blue);border-color:var(--ppt-blue)}.ppt .ppt-btn-outline:hover{background:var(--ppt-blue);color:#fff}
.ppt .ppt-btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.45)}.ppt .ppt-btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08);color:#fff}
.ppt-btn-pill{border-radius:999px;font-weight:600;padding:13px 22px}

/* Hero */
.ppt-hero{position:relative;background:var(--ppt-navy);color:#fff;overflow:hidden}
.ppt-hero__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;opacity:.7}
.ppt-hero__scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(30,45,59,.9) 0%,rgba(30,45,59,.62) 55%,rgba(30,45,59,.15) 100%)}
.ppt-hero .ppt-wrap{position:relative;padding-top:64px;padding-bottom:56px}
.ppt-hero__crumb{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--ppt-heading);font-weight:700;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--ppt-sky);margin-bottom:14px;animation:pptHeroIn .6s cubic-bezier(.2,.7,.3,1) both}
.ppt-hero__crumb a{color:var(--ppt-sky);text-decoration:none}.ppt-hero__crumb a:hover{color:#fff;text-decoration:underline}
.ppt-hero h1{font-weight:800;font-size:clamp(34px,5.2vw,60px);line-height:1.04;letter-spacing:-.02em;margin:0 0 18px;max-width:17ch;text-wrap:balance;animation:pptHeroIn .7s cubic-bezier(.2,.7,.3,1) .08s both}
.ppt-hero__lede{font-size:clamp(17px,2vw,21px);line-height:1.5;color:var(--ppt-light);max-width:52ch;margin:0 0 28px;animation:pptHeroIn .7s cubic-bezier(.2,.7,.3,1) .16s both}
.ppt-hero__actions{display:flex;flex-wrap:wrap;gap:12px;animation:pptHeroIn .7s cubic-bezier(.2,.7,.3,1) .24s both}
.ppt-hero__actions .ppt-btn-primary{box-shadow:0 6px 18px rgba(0,114,188,.35);white-space:nowrap}

/* Quick facts bar */
.ppt-facts{background:var(--ppt-blue);color:#fff}
.ppt-facts__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:0 24px}
.ppt-fact{padding:24px 0;display:flex;flex-direction:column;gap:4px}
.ppt-fact+.ppt-fact{border-left:1px solid rgba(255,255,255,.22);padding-left:24px}
.ppt-fact__label{font-family:var(--ppt-heading);font-weight:700;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:#cfe4f5}
.ppt-fact__value{font-family:var(--ppt-heading);font-weight:800;font-size:24px;line-height:1.15}
.ppt-fact__note{font-size:15px;line-height:1.45;color:#e6f1f9}
@media (max-width:519px){.ppt-fact+.ppt-fact{border-left:0;padding-left:0;border-top:1px solid rgba(255,255,255,.22)}}

/* Generic sections */
.ppt-section{background:#fff;border-bottom:1px solid var(--ppt-border)}
.ppt-section--light{background:var(--ppt-light)}
.ppt-section .ppt-wrap{padding-top:68px;padding-bottom:68px}
.ppt-two{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:40px;align-items:start}
.ppt-two--center{align-items:center}

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

/* The visit / steps */
.ppt-steps .ppt-wrap{padding-top:60px;padding-bottom:64px}
.ppt-steps__head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px 32px;margin-bottom:30px}
.ppt-steps__head>div:first-child{max-width:60ch}
.ppt-steps__note{font-size:16px;color:var(--ppt-muted)}
.ppt-steps__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.ppt-step{background:#fff;border:1px solid var(--ppt-border);border-radius:var(--ppt-radius);padding:22px 22px 24px;display:flex;flex-direction:column;gap:10px}
.ppt-step__num{font-family:var(--ppt-heading);font-weight:800;font-size:15px;color:var(--ppt-blue);letter-spacing:.06em}
.ppt-step h3{font-weight:800;font-size:20px;line-height:1.2}
.ppt-step p{font-size:16px;line-height:1.5;color:var(--ppt-muted);margin:0}

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

/* What it is */
.ppt-about .ppt-h2{margin-bottom:14px}
.ppt-about p{font-size:18px;line-height:1.55;color:var(--ppt-muted);margin:0 0 14px}
.ppt-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.ppt-chips span{font-size:14px;font-weight:700;padding:8px 14px;border-radius:999px;border:1.5px solid var(--ppt-border-2);color:var(--ppt-navy);background:#fff}
.ppt-about__img{width:100%;aspect-ratio:7/6;object-fit:cover;border-radius:var(--ppt-radius)}

/* After the exam */
.ppt-after{background:var(--ppt-navy);color:#fff}
.ppt-after .ppt-wrap{padding-top:64px;padding-bottom:64px;display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:36px 48px;align-items:start}
.ppt-after .ppt-eyebrow{color:var(--ppt-sky)}
.ppt-after .ppt-h2{max-width:18ch;margin-bottom:14px}
.ppt-after .ppt-lead{color:#dbe7f0;max-width:48ch}
.ppt-outcomes{border-top:1px solid rgba(255,255,255,.18)}
.ppt-outcome{display:grid;grid-template-columns:minmax(120px,.4fr) minmax(0,1fr);gap:8px 20px;padding:16px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.ppt-outcome dt{font-family:var(--ppt-heading);font-weight:800;font-size:17px;color:var(--ppt-sky)}
.ppt-outcome dd{margin:0;font-size:16px;line-height:1.5;color:var(--ppt-light)}
.ppt-outcomes dl{margin:0}

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

/* FAQ */
.ppt-faq__intro{position:sticky;top:20px}
.ppt-faq__intro .ppt-h2{max-width:16ch;margin-bottom:12px}
.ppt-faq__intro p{font-size:17px;line-height:1.55;color:var(--ppt-muted);margin:0 0 24px;max-width:40ch}
.ppt-faq__img{width:100%;max-width:480px;aspect-ratio:4/3;object-fit:cover;border-radius:var(--ppt-radius)}
.ppt-faq__list{border-top:1px solid var(--ppt-border)}
.ppt-faq__list details{border-bottom:1px solid var(--ppt-border)}
.ppt-faq__list summary{list-style:none;cursor:pointer;padding:18px 0;display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--ppt-navy);font-family:var(--ppt-heading);font-weight:800;font-size:19px;line-height:1.25}
.ppt-faq__list summary::-webkit-details-marker{display:none}
.ppt-faq__list summary:hover{color:var(--ppt-blue)}
.ppt-faq__list summary::after{content:"+";flex:none;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--ppt-border-2);display:inline-flex;align-items:center;justify-content:center;font-size:20px;font-weight:400;line-height:1;transition:transform .2s}
.ppt-faq__list details[open] summary::after{transform:rotate(45deg)}
.ppt-faq__list .ppt-faq__a{font-size:16px;line-height:1.6;color:var(--ppt-muted);padding:0 40px 20px 0;animation:pptFadeIn .25s ease both}

@keyframes pptHeroIn{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes pptFadeIn{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.ppt *{animation:none!important;transition:none!important}}
@media print{.ppt-faq__intro{position:static}.ppt-hero__img,.ppt-hero__scrim{display:none}.ppt-hero{background:var(--ppt-navy)}}

/* === physicals: MODX build additions (append-only) ========================= */
.ppt-steps__grid{counter-reset:ppt-step}
.ppt-step{counter-increment:ppt-step}
.ppt-step__num::before{content:counter(ppt-step,decimal-leading-zero)}
.ppt-freetext p{margin:0 0 10px;font:inherit;color:inherit}
.ppt-freetext p:last-child{margin-bottom:0}
.ppt-about__body p:last-child{margin-bottom:6px}
.ppt-faq__a p{margin:0 0 10px;font:inherit;color:inherit}
.ppt-faq__a p:last-child{margin:0}
.ppt-after .ppt-freetext p{color:#dbe7f0}
.ppt-hero__crumb span{color:var(--ppt-sky)}
.ppt .ppt-hero h1,.ppt .ppt-after .ppt-h2,.ppt .ppt-outcome dt{color:inherit}
.ppt .ppt-after .ppt-h2{color:#fff}
.ppt .ppt-hero h1{color:#fff}
/* Theme token fix: --bs-heading-color-hex is the ink colour on this theme, not navy.
   The hero and After-the-exam bands must be navy as designed (same token itp uses). */
.ppt{--ppt-navy:var(--bs-tertiary-hex,#1e2d3b)}
