/* PBHI resource slide decks: 1600 x 900 design canvas */
.slide { --g: #1E6B2A; --gb: #2E8B37; --ink: #111312; --tx: #1D1F1E; --mu: #5F6461; --ln: #E3E6E3; --soft: #F4F7F4;
  position: absolute; top: 0; left: 0; width: 1600px; height: 900px; background: #fff; color: var(--tx); overflow: hidden;
  font-family: "Trebuchet MS", Tahoma, "Lucida Grande", sans-serif; font-size: 26px; line-height: 1.4; box-sizing: border-box; }
.slide *, .slide *::before, .slide *::after { box-sizing: border-box; }
.slide h1, .slide h2, .slide h3, .slide p, .slide ul, .slide ol { margin: 0; padding: 0; }
.slide ul, .slide ol { list-style: none; }
.slide img { display: block; max-width: none; }
.slide sup { font-size: .55em; color: var(--g); font-weight: 700; margin-left: 2px; }

.s-head { position: absolute; top: 40px; left: 72px; display: flex; align-items: center; gap: 14px; font-size: 20px; font-weight: 700; color: var(--ink); z-index: 3; }
.s-head img { width: 44px; height: 44px; }
.s-foot { position: absolute; left: 72px; right: 72px; bottom: 34px; display: flex; justify-content: space-between; font-size: 16px; color: var(--mu); border-top: 2px solid var(--g); padding-top: 14px; z-index: 3; }
.s-num { font-weight: 700; color: var(--g); letter-spacing: .04em; }
.s-body { position: absolute; top: 132px; left: 72px; right: 72px; bottom: 100px; display: flex; flex-direction: column; }
.s-kicker { font-size: 20px; font-weight: 700; color: var(--gb); letter-spacing: .02em; margin-bottom: 14px !important; }
.s-title { font-size: 66px; line-height: 1.04; font-weight: 700; color: var(--ink); letter-spacing: -.02em; margin-bottom: 38px !important; }
.s-title--md { font-size: 54px; margin-bottom: 24px !important; }
.s-title--sm { font-size: 52px; margin-bottom: 30px !important; }
.s-lead { font-size: 28px; color: var(--mu); line-height: 1.45; }
.s-note { margin-top: auto !important; font-size: 21px; color: var(--mu); padding-left: 18px; border-left: 4px solid var(--g); }
.vs-h { font-size: 18px; font-weight: 700; color: var(--mu); letter-spacing: .06em; text-transform: uppercase; margin-bottom: 16px !important; }

/* cover */
.s--cover .cv-text { position: absolute; left: 80px; top: 70px; bottom: 70px; width: 820px; display: flex; flex-direction: column; }
.cv-logo { width: 96px; height: 96px; margin-bottom: 40px; }
.cv-title { font-size: 50px; line-height: 1.1; font-weight: 700; color: var(--ink); letter-spacing: -.015em; }
.cv-mark { font-size: 96px; line-height: 1; font-weight: 700; color: var(--g); letter-spacing: -.03em; margin: 26px 0 26px !important; }
.cv-sub { font-size: 27px; color: var(--mu); line-height: 1.4; max-width: 760px; }
.cv-own { margin-top: auto !important; font-size: 19px; font-weight: 700; color: var(--ink); padding-top: 18px; border-top: 2px solid var(--g); }
.cv-photo { position: absolute; top: 0; right: 0; width: 640px; height: 900px; }
.cv-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 55% 50%; }
.cv-photo::after { content: ""; position: absolute; inset: 0; box-shadow: inset 6px 0 0 #fff; }

/* problem */
.vs { display: grid; grid-template-columns: 1fr 120px 1.25fr; align-items: center; gap: 10px; }
.vs-col { border: 2px solid var(--ln); border-radius: 26px; padding: 40px 44px; }
.vs-col--g { border-color: var(--g); background: var(--soft); }
.vs-list li { font-size: 32px; font-weight: 700; color: var(--ink); padding: 13px 0; border-bottom: 1px solid var(--ln); }
.vs-list li:last-child { border-bottom: 0; }
.vs-col:not(.vs-col--g) .vs-list li { color: var(--mu); }
.vs-arrow { color: var(--g); display: flex; justify-content: center; }
.vs-arrow svg { width: 80px; height: 40px; }

/* cards */
.cards3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; margin-top: 10px; }
.card3 { border: 2px solid var(--ln); border-radius: 28px; padding: 46px 44px; min-height: 440px; display: flex; flex-direction: column; }
.card3:nth-child(2) { border-color: var(--g); background: var(--soft); }
.c-num { width: 64px; height: 64px; border-radius: 50%; background: var(--g); color: #fff; font-size: 30px; font-weight: 700; display: grid; place-items: center; margin-bottom: 40px; }
.card3 h3 { font-size: 38px; color: var(--ink); margin-bottom: 18px !important; }
.card3 p { font-size: 29px; color: var(--mu); }

/* split slides */
.s--split .sp-photo { position: absolute; top: 0; left: 0; width: 640px; height: 900px; }
.s--split .sp-photo img { width: 100%; height: 100%; object-fit: cover; }
.s--split .sp-text { position: absolute; top: 132px; left: 716px; right: 72px; bottom: 100px; }
.s--split .s-head { left: 716px; }
.s--split .s-foot { left: 716px; }
.s--split.s--r .sp-photo { left: auto; right: 0; }
.s--split.s--r .sp-text { left: 72px; right: 716px; }
.s--split.s--r .s-head, .s--split.s--r .s-foot { left: 72px; right: 716px; }
.ticks-s li { position: relative; padding: 6px 0 6px 40px; font-size: 24px; }
.ticks-s li::before { content: ""; position: absolute; left: 4px; top: 16px; width: 18px; height: 10px; border-left: 3px solid var(--gb); border-bottom: 3px solid var(--gb); transform: rotate(-45deg); }

/* statement */
.s--statement { background: var(--soft); }
.st-wrap { position: absolute; top: 170px; left: 120px; right: 120px; }
.st-text { font-size: 68px; line-height: 1.16; font-weight: 700; color: var(--ink); letter-spacing: -.02em; }
.st-text span { color: var(--g); }
.st-note { margin-top: 48px !important; font-size: 25px; color: var(--mu); max-width: 1100px; padding-left: 20px; border-left: 4px solid var(--g); }

/* model */
.model { display: grid; grid-template-columns: 1fr 250px; gap: 26px; }
.layers { display: grid; gap: 9px; }
.ly { display: grid; grid-template-columns: 54px 330px 1fr; align-items: center; gap: 18px; padding: 11px 22px; border-radius: 16px; background: #fff; border: 2px solid var(--ln); }
.ly-n { width: 42px; height: 42px; border-radius: 50%; background: var(--g); color: #fff; font-weight: 700; display: grid; place-items: center; font-size: 21px; }
.ly-t { font-size: 25px; font-weight: 700; color: var(--ink); }
.ly-d { font-size: 19px; color: var(--mu); line-height: 1.3; }
.ly1 { background: #F7F8F7; } .ly2 { background: #F1F6F1; } .ly3 { background: #EAF2EA; } .ly4 { background: #E2EEE3; } .ly5 { background: #D9EADB; } .ly6 { background: #1E6B2A; border-color: #1E6B2A; }
.ly6 .ly-t, .ly6 .ly-d { color: #fff; } .ly6 .ly-n { background: #fff; color: var(--g); }
.xcut { border: 2px dashed var(--g); border-radius: 22px; padding: 24px; display: flex; flex-direction: column; }
.xcut p { font-size: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--g); margin-bottom: 14px !important; }
.xcut li { font-size: 24px; font-weight: 700; color: var(--ink); padding: 12px 0; border-bottom: 1px solid var(--ln); }
.xcut li:last-child { border-bottom: 0; }

/* pathway */
.pathway { display: flex; align-items: stretch; gap: 0; margin-top: 6px; }
.pw { flex: 1; border: 2px solid var(--ln); border-radius: 24px; padding: 34px 30px; background: #fff; min-height: 300px; }
.pw:last-child { background: var(--g); border-color: var(--g); }
.pw:last-child p, .pw:last-child .pw-h { color: #fff !important; }
.pw-h { font-size: 18px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--gb); margin-bottom: 14px !important; }
.pw p:not(.pw-h) { font-size: 29px; font-weight: 700; color: var(--ink); line-height: 1.3; }
.pw-arr { width: 54px; flex: none; position: relative; }
.pw-arr::before { content: ""; position: absolute; left: 10px; right: 14px; top: 50%; height: 3px; background: var(--g); }
.pw-arr::after { content: ""; position: absolute; right: 10px; top: calc(50% - 9px); width: 16px; height: 16px; border-top: 3px solid var(--g); border-right: 3px solid var(--g); transform: rotate(45deg); }
.depends { margin-top: 50px; }
.chips { display: flex; flex-wrap: wrap; gap: 14px; }
.chips span { font-size: 24px; font-weight: 700; padding: 12px 24px; border-radius: 999px; border: 2px solid var(--g); color: var(--g); }

/* domains */
.domains { display: grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.dm { border: 2px solid var(--ln); border-radius: 24px; padding: 30px 30px; min-height: 236px; display: flex; flex-direction: column; justify-content: space-between; }
.dm span { font-size: 22px; font-weight: 700; color: var(--g); }
.dm p { font-size: 28px; font-weight: 700; color: var(--ink); line-height: 1.22; }
.dm:nth-child(1), .dm:nth-child(6) { background: var(--soft); border-color: var(--g); }

/* tiers */
.tiers-wrap { display: grid; grid-template-columns: 1.15fr 1fr; gap: 48px; }
.tiers { display: flex; flex-direction: column; gap: 14px; }
.tier { border-radius: 22px; padding: 20px 30px; display: grid; grid-template-columns: 100px 1fr; column-gap: 12px; }
.t1 { background: #1E6B2A; width: 62%; } .t2 { background: #3C8A45; width: 74%; } .t3 { background: #D9EADB; width: 87%; } .t4 { background: #EEF4EE; width: 100%; }
.t-k { grid-row: span 2; font-size: 18px; font-weight: 700; align-self: center; }
.t-n { font-size: 30px; font-weight: 700; }
.t-d { font-size: 22px; line-height: 1.3; }
.t1 *, .t2 * { color: #fff; } .t3 *, .t4 * { color: var(--ink); } .t3 .t-k, .t4 .t-k { color: var(--g); }
.spec { border-left: 4px solid var(--g); padding-left: 36px; align-self: center; }
.spec .ticks-s li { font-size: 27px; padding: 9px 0 9px 42px; }
.spec-n { margin-top: 20px !important; font-size: 21px; color: var(--mu); }

/* roadmap */
.roadmap { display: grid; grid-template-columns: repeat(6, 1fr); gap: 18px; position: relative; padding-top: 34px; }
.roadmap::before { content: ""; position: absolute; top: 12px; left: 12px; right: 12px; height: 4px; background: var(--g); border-radius: 4px; }
.rm { position: relative; background: var(--soft); border-radius: 22px; padding: 26px 22px 30px; min-height: 330px; margin-top: 10px; }
.rm:last-child { background: var(--g); } .rm:last-child p { color: #fff !important; }
.rm-dot { position: absolute; top: -44px; left: 22px; width: 28px; height: 28px; border-radius: 50%; background: #fff; border: 5px solid var(--g); }
.rm:last-child .rm-dot { background: var(--g); }
.roadmap::after { content: none; }
.rm-m { font-size: 20px; font-weight: 700; color: var(--gb); }
.rm-s { font-size: 32px; font-weight: 700; color: var(--ink); margin: 8px 0 10px !important; line-height: 1.15; }
.rm-o { font-size: 24px; color: var(--mu); line-height: 1.32; }

/* reporting */
.levels { display: grid; grid-template-columns: repeat(3, 1fr); gap: 22px; }
.levels div { background: var(--soft); border-radius: 22px; padding: 34px 32px; min-height: 200px; border-top: 6px solid var(--g); }
.levels span { font-size: 18px; font-weight: 700; color: var(--g); text-transform: uppercase; letter-spacing: .06em; }
.levels p { font-size: 30px; font-weight: 700; color: var(--ink); margin-top: 10px !important; line-height: 1.25; }
.guards { margin-top: 34px; }
.guards ul { display: flex; gap: 18px; }
.guards li { flex: 1; font-size: 26px; color: var(--ink); padding: 18px 22px 18px 58px; border: 2px solid var(--ln); border-radius: 18px; position: relative; }
.guards li::before { content: ""; position: absolute; left: 22px; top: 26px; width: 18px; height: 10px; border-left: 3px solid #2E8B37; border-bottom: 3px solid #2E8B37; transform: rotate(-45deg); }

/* outputs */
.outs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.out { border: 2px solid var(--ln); border-radius: 24px; padding: 36px 36px; min-height: 230px; }
.out h3 { font-size: 32px; color: var(--ink); margin-bottom: 12px !important; }
.out p { font-size: 25px; color: var(--mu); }
.papers { margin-top: 34px; }
.papers ol { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; counter-reset: p; }
.papers li { counter-increment: p; font-size: 25px; min-height: 140px; font-weight: 700; color: var(--ink); padding: 20px 22px; background: var(--soft); border-radius: 18px; line-height: 1.25; }
.papers li::before { content: "Paper " counter(p); display: block; font-size: 16px; color: var(--g); text-transform: uppercase; letter-spacing: .06em; margin-bottom: 8px; }

/* work with us */
.contact-s { margin-top: 30px; display: grid; gap: 10px; }
.contact-s p { font-size: 24px; } .contact-s b { color: var(--g); margin-right: 10px; }
.cite-s { margin-top: 30px !important; font-size: 18px; color: var(--mu); }

/* sources */
.srcs { counter-reset: s; display: grid; gap: 12px; }
.srcs li { counter-increment: s; font-size: 19px; line-height: 1.35; padding-left: 40px; position: relative; }
.srcs li::before { content: counter(s); position: absolute; left: 0; top: 0; font-weight: 700; color: var(--g); }
.srcs a { color: var(--g); word-break: break-all; font-size: 16px; }

/* ---------------- on-site viewer ---------------- */
.deck { position: relative; }
.deck-stage { position: relative; width: 100%; aspect-ratio: 16 / 9; border-radius: 22px; overflow: hidden; background: #fff; box-shadow: 0 30px 70px -40px rgba(0,0,0,.45), 0 0 0 1px #E3E6E3; }
.deck-canvas { position: absolute; top: 0; left: 0; width: 1600px; height: 900px; transform-origin: 0 0; }
.deck .slide { opacity: 0; visibility: hidden; transition: opacity .45s cubic-bezier(.22,.61,.36,1), visibility .45s; }
.deck .slide.is-active { opacity: 1; visibility: visible; }
.deck-bar { display: flex; align-items: center; gap: 12px; margin-top: 18px; flex-wrap: wrap; }
.deck-btn { width: 48px; height: 48px; border-radius: 50%; border: 1px solid #D5D9D5; background: #fff; color: #1E6B2A; display: grid; place-items: center; cursor: pointer; transition: background .2s, color .2s; }
.deck-btn:hover { background: #1E6B2A; color: #fff; }
.deck-btn svg { width: 20px; height: 20px; }
.deck-count { font-weight: 700; color: #1D1F1E; min-width: 70px; text-align: center; font-variant-numeric: tabular-nums; }
.deck-progress { flex: 1; min-width: 120px; height: 4px; background: #E6E8E6; border-radius: 4px; overflow: hidden; }
.deck-progress span { display: block; height: 100%; background: #1E6B2A; width: 0; transition: width .35s; }
.deck-thumbs { display: flex; gap: 10px; overflow-x: auto; padding: 16px 2px 6px; scrollbar-width: thin; }
.deck-thumb { flex: none; width: 128px; aspect-ratio: 16 / 9; border-radius: 8px; overflow: hidden; position: relative; border: 2px solid transparent; cursor: pointer; background: #fff; box-shadow: 0 0 0 1px #E3E6E3; padding: 0; }
.deck-thumb.is-active { border-color: #1E6B2A; }
.deck-thumb .mini { position: absolute; top: 0; left: 0; width: 1600px; height: 900px; transform: scale(.08); transform-origin: 0 0; pointer-events: none; }
.deck-thumb .mini .slide { opacity: 1; visibility: visible; transition: none; }
.deck-hint { font-size: .85rem; color: #5F6461; margin-top: 8px; }
.deck:fullscreen { background: #fff; display: flex; flex-direction: column; justify-content: center; padding: 2vh 3vw; }
.deck:fullscreen .deck-stage { width: min(94vw, calc((88vh) * 16 / 9)); margin: 0 auto; border-radius: 0; box-shadow: none; }
.deck:fullscreen .deck-thumbs, .deck:fullscreen .deck-hint { display: none; }
.deck:fullscreen .deck-bar { width: min(94vw, calc((88vh) * 16 / 9)); margin: 14px auto 0; }
@media (prefers-reduced-motion: reduce) { .deck .slide { transition: none; } }
.deck:focus { outline: none; }
.deck:focus-visible .deck-stage { box-shadow: 0 0 0 3px #2E8B37; }
.deck-page .split > * { min-width: 0; }
.deck-page .prose a { overflow-wrap: anywhere; }

/* patient rights deck */
.cv-title--xl { font-size: 92px; line-height: 1.02; letter-spacing: -.025em; margin-top: 30px !important; }
.rg { display: grid; gap: 22px; }
.rg3 { grid-template-columns: repeat(3, 1fr); } .rg2 { grid-template-columns: repeat(2, 1fr); }
.rc { border: 2px solid var(--ln); border-radius: 24px; padding: 28px 32px; display: flex; flex-direction: column; }
.rc h3 { font-size: 30px; color: var(--ink); margin-bottom: 10px !important; }
.rc p { font-size: 23px; color: var(--mu); line-height: 1.38; }
.rc-ref { margin-top: auto; padding-top: 14px; font-size: 16px; font-weight: 700; color: var(--g); text-transform: uppercase; letter-spacing: .05em; }
.rg2 .rc { min-height: 220px; } .rg2 .rc p { font-size: 25px; }
.rg3 .rc:first-child { border-color: var(--g); background: var(--soft); }
.rl { display: grid; gap: 22px; margin-top: 6px; }
.rl div { padding-left: 22px; border-left: 4px solid var(--g); }
.rl h3 { font-size: 28px; color: var(--ink); margin-bottom: 6px !important; }
.rl p { font-size: 23px; color: var(--mu); line-height: 1.4; }
.em { display: flex; align-items: center; gap: 26px; background: var(--g); border-radius: 24px; padding: 18px 30px; margin-bottom: 22px; }
.em-n { font-size: 84px; font-weight: 700; color: #fff; line-height: 1; letter-spacing: -.02em; }
.em p { font-size: 21px; color: #fff; line-height: 1.35; } .em sup { color: #fff; }
.ticks-s--sm li { font-size: 21px; line-height: 1.38; padding: 7px 0 7px 40px; }
.ticks-s--sm li::before { top: 15px; }
.resp { display: grid; grid-template-columns: 1fr 1fr; gap: 16px 40px; counter-reset: r; }
.resp li { counter-increment: r; position: relative; padding: 16px 0 16px 66px; font-size: 26px; color: var(--ink); border-bottom: 1px solid var(--ln); line-height: 1.32; }
.resp li::before { content: counter(r); position: absolute; left: 0; top: 14px; width: 44px; height: 44px; border-radius: 50%; background: var(--soft); color: var(--g); font-weight: 700; display: grid; place-items: center; font-size: 21px; }
.pathway--steps .pw { min-height: 380px; }
.pw-t { font-size: 32px !important; margin-bottom: 14px !important; }
.pathway--steps .pw p.pw-d { font-size: 23px; font-weight: 400; color: var(--mu); line-height: 1.4; }
.pathway--steps .pw:last-child p.pw-d { color: #fff; }
.prep { display: grid; grid-template-columns: 1fr 1fr; gap: 50px; }
.prep .ticks-s li { font-size: 26px; padding: 9px 0 9px 42px; }
.prep-n { margin-top: 22px !important; font-size: 21px; color: var(--ink); background: var(--soft); border-radius: 18px; padding: 18px 22px; }
.ct { width: 100%; border-collapse: collapse; }
.ct th { width: 300px; text-align: left; vertical-align: top; font-size: 23px; color: var(--g); padding: 15px 20px 15px 0; border-top: 1px solid var(--ln); }
.ct td { font-size: 20px; color: var(--mu); padding: 15px 0; border-top: 1px solid var(--ln); line-height: 1.35; }
.ct td b { display: block; font-size: 23px; color: var(--ink); margin-bottom: 3px; }
.ct tr:last-child th, .ct tr:last-child td { border-bottom: 1px solid var(--ln); }
.srcs--sm { gap: 7px; } .srcs--sm li { font-size: 17px; } .srcs--sm a { font-size: 14px; }

.rg-big .rc { min-height: 380px; padding: 40px 38px; } .rg-big .rc h3 { font-size: 34px; margin-bottom: 18px !important; } .rg-big .rc p { font-size: 27px; }
.prep .ticks-s li { font-size: 30px; padding: 13px 0 13px 44px; } .prep .ticks-s li::before { top: 24px; }
.prep-n { font-size: 24px; padding: 22px 26px; }
.ct th { font-size: 24px; padding: 15px 20px 15px 0; } .ct td { font-size: 21px; padding: 15px 0; } .ct td b { font-size: 26px; }
