/* Source-backed visual explanations and aligned content, release 5.1.0. */
.container.readable-copy,.container.narrow {max-width:none;}
.container.readable-copy>p,.container.narrow>p,.container.narrow>.prose-list {max-width:78ch;}
#primary-nav>a {flex-shrink:0;}
#primary-nav>a.nav-support {position:relative;z-index:1;pointer-events:auto;}
.service-graphic {display:block;width:100%;height:auto;max-width:none;flex-shrink:0;}
.therapy-overview {display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center;margin-bottom:58px;}
.therapy-overview h2 {max-width:760px;}
.therapy-overview>div>p:not(.eyebrow) {font-size:17px;color:var(--muted);line-height:1.8;max-width:650px;margin:22px 0 0;}
.therapy-overview p.lead-copy {font-size:21px;color:var(--deep);font-weight:600;line-height:1.65;}
.service-count {display:flex;align-items:center;gap:18px;margin-top:28px;}
.service-count>strong {font-size:64px;line-height:1;font-weight:750;color:var(--navy);letter-spacing:-.06em;}
.service-count>span {font-size:14px;line-height:1.6;color:var(--muted);}
.care-map {position:relative;min-height:390px;isolation:isolate;}
.care-map-orbit {position:absolute;inset:24px 70px 42px;border:2px dashed #afc2e5;border-radius:50%;z-index:-1;}
.care-map-centre {position:absolute;top:66px;left:50%;transform:translateX(-50%);width:225px;border:1px solid #d8e2f1;border-radius:28px;padding:16px 18px 23px;text-align:center;background:white;box-shadow:var(--shadow-card);}
.care-map-centre .service-graphic {width:160px;margin:auto;}
.care-map-centre strong {display:block;font-size:23px;line-height:1.3;color:var(--deep);}
.care-map-centre>span {display:block;font-size:12px;color:var(--muted);margin-top:8px;}
.care-map-node {position:absolute;display:grid;grid-template-columns:32px 1fr;gap:2px 10px;background:white;border:1px solid var(--line);padding:16px 18px;border-radius:18px;box-shadow:0 5px 16px #1d225b06;}
.care-map-node>span {grid-row:span 2;align-self:center;width:31px;height:31px;display:grid;place-items:center;border-radius:50%;background:var(--yellow);color:var(--deep);font-size:11px;font-weight:700;}
.care-map-node strong {font-size:16px;line-height:1.4;color:var(--deep);}
.care-map-node small {font-size:11px;line-height:1.5;color:var(--muted);}
.node-school {top:0;left:0;}
.node-home {right:0;top:12px;}
.node-community {bottom:0;left:50%;transform:translateX(-50%);white-space:nowrap;}
.therapy-card-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start;}
.therapy-card {border:1px solid var(--line);border-radius:26px;overflow:hidden;background:white;box-shadow:var(--shadow-card);}
.therapy-art {background:#edf3fc;padding:22px 40px;display:flex;align-items:center;justify-content:center;min-height:220px;}
.therapy-art .service-graphic {max-width:300px;}
.therapy-card:nth-child(2) .therapy-art,.therapy-card:nth-child(4) .therapy-art {background:#f6f2da;}
.therapy-card-copy {padding:30px;}
.service-label {font-size:12px;font-weight:700;color:var(--navy);letter-spacing:.05em;margin-bottom:13px;}
.therapy-card h3 {font-size:30px;line-height:1.2;margin-bottom:17px;}
.therapy-card-copy>p:not(.service-label) {font-size:16px;color:var(--muted);line-height:1.8;}
.service-tags {display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:23px 0 27px;list-style:none;}
.service-tags li {border-radius:999px;background:#eef3fb;padding:6px 12px;font-size:12px;line-height:1.5;color:var(--deep);}
.service-detail {border:0;padding:0;border-top:1px solid var(--line);}
.service-detail summary {list-style:none;display:flex;justify-content:space-between;gap:14px;align-items:center;font-size:14px;font-weight:700;line-height:1.6;color:var(--navy);padding:20px 0 0;cursor:pointer;}
.service-detail summary::-webkit-details-marker {display:none;}
.service-detail summary>span {display:grid;place-items:center;width:30px;height:30px;flex-shrink:0;border:1px solid #b6c7e4;border-radius:50%;font-size:21px;font-weight:400;transition:transform .2s;}
.service-detail[open] summary>span {transform:rotate(45deg);}
.service-detail .department-prose {padding:25px 0 0;max-width:none;}
.department-prose h4 {font-size:19px;line-height:1.4;margin:0 0 18px;color:var(--deep);}
.department-prose p {font-size:16px;line-height:1.85;}
.pillar-art {margin:-12px 0 14px;}
.pillar-art .service-graphic {max-width:190px;}
.pillar-card>span {margin-top:8px;}
.history-grid {display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:start;}
.history-grid .lead-copy {font-size:19px;line-height:1.8;color:var(--deep);margin-bottom:30px;max-width:74ch;}
.school-timeline {list-style:none;padding:0;margin:0 0 32px;}
.school-timeline li {position:relative;padding:0 0 29px 32px;border-left:2px solid #ccd8eb;}
.school-timeline li:last-child {padding-bottom:0;border-left-color:transparent;}
.school-timeline li:before {content:'';position:absolute;left:-8px;top:5px;width:14px;height:14px;border:3px solid white;background:var(--navy);border-radius:50%;box-shadow:0 0 0 1px #afc2e5;}
.school-timeline li>span {font-size:12px;font-weight:750;letter-spacing:.06em;color:var(--navy);display:block;margin-bottom:8px;}
.school-timeline h3 {font-size:24px;line-height:1.3;margin:0 0 12px;}
.school-timeline p {font-size:16px;line-height:1.8;max-width:68ch;color:var(--muted);margin:0;}
.history-photo {position:relative;margin:0;padding-bottom:82px;}
.history-photo>img {width:100%;height:470px;object-fit:cover;border-radius:26px;}
.history-photo>figcaption {font-size:13px;line-height:1.7;color:var(--muted);margin:14px 0 0;max-width:42ch;}
.history-date {position:absolute;bottom:0;left:24px;display:flex;gap:18px;align-items:center;border-radius:18px;padding:20px 25px;background:var(--yellow);color:var(--deep);box-shadow:var(--shadow-card);}
.history-date strong {font-size:42px;line-height:1;font-weight:750;letter-spacing:-.05em;}
.history-date span {font-size:12px;line-height:1.6;}
.long-copy {border:1px solid #ced9e9;border-radius:18px;background:white;padding:21px 24px;margin-top:28px;}
.long-copy>summary {font-size:16px;font-weight:650;line-height:1.6;color:var(--navy);cursor:pointer;}
.long-copy>p {font-size:16px;color:var(--muted);line-height:1.85;margin:20px 0 0;max-width:82ch;}
.long-copy p.archive-note {font-size:13px;line-height:1.75;}
.care-feature-list {display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:26px;}
.care-feature-list>div {border:1px solid var(--line);border-radius:17px;background:var(--surface);padding:12px;text-align:center;}
.care-feature-list .service-graphic {max-width:135px;margin:auto;}
.care-feature-list span {font-size:13px;font-weight:650;line-height:1.5;display:block;}
.boarding-features {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-top:42px;}
.boarding-features article {background:white;border:1px solid var(--line);border-radius:22px;padding:22px;}
.boarding-features .service-graphic {max-width:180px;margin:0 auto 17px;}
.boarding-features h3 {font-size:22px;line-height:1.3;margin-bottom:12px;}
.boarding-features p {font-size:15px;color:var(--muted);line-height:1.75;margin:0;}
.hostel-copy {max-width:none;}
.participation-grid {display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.participation-grid>article {display:grid;grid-template-columns:160px 1fr;gap:22px;align-items:center;background:white;border:1px solid var(--line);border-radius:24px;padding:28px;}
.participation-grid h3 {font-size:27px;line-height:1.25;margin-bottom:15px;}
.participation-grid p {font-size:16px;line-height:1.8;color:var(--muted);margin:0;}
.steps.infographic-steps {display:grid;gap:16px;}
.steps.infographic-steps li {display:grid;grid-template-columns:98px 1fr;align-items:start;gap:22px;padding:26px;background:var(--surface);border:1px solid var(--line);border-radius:22px;}
.steps.infographic-steps li>.step-illustration {display:block;width:98px;height:auto;background:transparent;border-radius:0;}
.step-label {font-size:11px;letter-spacing:.08em;font-weight:750;line-height:1.5;color:var(--navy);display:block;margin-bottom:10px;}
.infographic-steps h3 {font-size:25px;line-height:1.3;}
.infographic-steps p {font-size:16px;line-height:1.8;}
.achievement-graphics {display:grid;grid-template-columns:1.25fr .75fr;gap:34px;align-items:start;margin-bottom:42px;}
.graphic-kicker {font-size:11px;font-weight:750;letter-spacing:.07em;line-height:1.6;color:var(--navy);margin-bottom:13px;}
.score-graphic {margin:0;padding:32px 0;}
.score-graphic h3,.rank-graphic h3 {font-size:28px;line-height:1.25;margin-bottom:13px;}
.graphic-intro {font-size:14px;color:var(--muted);line-height:1.6;margin:0 0 28px;}
.score-rows {margin:0;padding:0;}
.score-row {display:grid;grid-template-columns:155px 1fr;gap:18px;align-items:center;margin-bottom:23px;}
.score-row dt {font-size:15px;font-weight:650;line-height:1.5;color:var(--deep);}
.score-row dd {margin:0;display:grid;grid-template-columns:1fr 35px;gap:12px;align-items:center;}
.score-track {height:27px;background:#edf0f5;display:block;border-left:1px solid #7c8ba2;}
.score-fill {display:block;height:100%;background:var(--navy);}
.score-fill.comparison {background:#728098;}
.score-row strong {font-size:20px;line-height:1.3;color:var(--deep);text-align:right;}
.score-axis {display:flex;justify-content:space-between;margin:0 47px 0 173px;border-top:1px solid #7c8ba2;padding-top:8px;font-size:12px;line-height:1.5;color:var(--muted);}
.score-graphic figcaption {font-size:12px;line-height:1.8;color:var(--muted);margin-top:22px;}
.score-graphic figcaption a,.graphic-note a {text-decoration:underline;text-underline-offset:3px;}
.rank-graphic {padding:32px;background:var(--surface-warm);border-radius:24px;}
.rank-pair {display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:24px 0 18px;}
.rank-pair strong {font-size:56px;letter-spacing:-.05em;line-height:1.1;color:var(--deep);font-weight:750;}
.rank-pair strong span {font-size:22px;vertical-align:super;letter-spacing:0;}
.rank-pair p {font-size:14px;margin:8px 0 0;color:var(--deep);}
.graphic-note {font-size:13px;color:var(--muted);line-height:1.8;margin:20px 0;}
.rank-graphic .text-link {font-size:13px;}
.event-stat-block {max-width:850px;margin-bottom:34px;}
.event-stat-block .score-graphic {padding:0;}
.support-funding {background:white;}
.funding-flow {display:grid;grid-template-columns:1fr 35px 1fr 35px 1fr;gap:18px;align-items:center;}
.funding-flow>div {padding:26px;border-radius:24px;background:var(--surface);border:1px solid var(--line);align-self:stretch;}
.funding-flow .service-graphic {max-width:200px;margin:0 auto 20px;}
.funding-flow h3 {font-size:25px;line-height:1.25;margin-bottom:15px;}
.funding-flow p {font-size:15px;color:var(--muted);line-height:1.8;margin:0;}
.funding-flow .funding-outcome {background:var(--surface-warm);border-color:#e8dfa9;}
.flow-symbol {font-size:28px;line-height:1;text-align:center;color:var(--navy);font-weight:650;}
.support-choice-art {margin:-10px 0 16px;}
.support-choice-art .service-graphic {max-width:205px;}
.support-choice {display:flex;flex-direction:column;}
.support-choice .text-link {align-self:flex-start;margin-top:auto;}
.support-contact {display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.support-contact h2 {max-width:650px;}
.support-contact p:not(.eyebrow) {font-size:17px;color:var(--muted);line-height:1.8;margin-top:24px;max-width:68ch;}
.support-contact-options {display:flex;flex-wrap:wrap;align-items:flex-start;gap:16px;padding:32px;border-radius:24px;border:1px solid var(--line);background:var(--surface);}
.support-contact-options .text-link {margin-top:7px;}
@media(min-width:951px) and (max-width:1180px) {
 #primary-nav>a {padding-inline:9px;font-size:12px;}
 #primary-nav>a.nav-support {padding-inline:16px;}
}
@media(max-width:1100px) {
 .therapy-overview {gap:36px;grid-template-columns:1fr 1fr;}
 .care-map {min-height:400px;}
 .care-map-orbit {inset:40px 25px 45px;}
 .care-map-node {padding:12px;gap:2px 7px;}
 .care-map-node small {font-size:10px;}
 .care-map-node strong {font-size:14px;}
 .node-home {top:75px;}
 .care-map-centre {top:102px;width:200px;}
 .care-map-centre .service-graphic {width:140px;}
 .history-grid {gap:40px;grid-template-columns:1fr 1fr;}
 .history-photo>img {height:430px;}
 .boarding-features {grid-template-columns:1fr 1fr;}
 .participation-grid>article {display:block;}
 .participation-grid .service-graphic {max-width:210px;margin-bottom:20px;}
 .achievement-graphics {grid-template-columns:1fr 1fr;gap:28px;}
 .score-row {grid-template-columns:1fr;gap:9px;}
 .score-axis {margin-left:0;}
 .funding-flow {gap:12px;grid-template-columns:1fr 24px 1fr 24px 1fr;}
 .funding-flow>div {padding:22px;}
 .funding-flow h3 {font-size:22px;}
}
@media(max-width:800px) {
 .therapy-overview {grid-template-columns:1fr;gap:38px;}
 .care-map {width:100%;max-width:540px;min-height:375px;margin:auto;}
 .care-map-centre {top:58px;width:225px;}
 .care-map-centre .service-graphic {width:160px;}
 .care-map-node strong {font-size:16px;}
 .care-map-node small {font-size:11px;}
 .care-map-node {padding:15px;}
 .node-home {top:14px;}
 .history-grid {grid-template-columns:1fr;gap:40px;}
 .history-photo {max-width:620px;}
 .history-photo>img {height:460px;}
 .therapy-card-grid {gap:24px;}
 .therapy-card-copy {padding:25px;}
 .therapy-card h3 {font-size:27px;}
 .therapy-art {padding:20px;min-height:190px;}
 .service-tags {gap:7px;}
 .service-tags li {font-size:11px;}
 .care-feature-list {gap:12px;}
 .achievement-graphics {grid-template-columns:1fr;gap:20px;}
 .score-row {grid-template-columns:155px 1fr;gap:18px;}
 .score-axis {margin-left:173px;}
 .rank-graphic {padding:28px;}
 .funding-flow {grid-template-columns:1fr;gap:18px;max-width:620px;}
 .funding-flow>div {display:grid;grid-template-columns:130px 1fr;gap:0 22px;padding:24px;}
 .funding-flow .service-graphic {grid-row:span 2;align-self:center;margin:0;}
 .funding-flow .flow-symbol {transform:rotate(90deg);}
 .support-contact {grid-template-columns:1fr;gap:30px;}
}
@media(max-width:650px) {
 .therapy-overview {margin-bottom:35px;}
 .therapy-overview p.lead-copy {font-size:20px;}
 .therapy-overview>div>p:not(.eyebrow) {font-size:16px;}
 .service-count>strong {font-size:58px;}
 .service-count>span {font-size:13px;}
 .care-map {min-height:365px;}
 .care-map-orbit {inset:34px 20px 48px;}
 .care-map-centre {top:84px;width:198px;padding:10px 12px 18px;}
 .care-map-centre .service-graphic {width:132px;}
 .care-map-centre strong {font-size:22px;}
 .care-map-centre>span {font-size:11px;}
 .care-map-node {padding:12px;gap:2px 8px;border-radius:16px;}
 .care-map-node small {display:none;}
 .care-map-node>span {grid-row:span 1;width:27px;height:27px;font-size:10px;}
 .care-map-node strong {align-self:center;font-size:14px;}
 .node-school {top:0;}
 .node-home {top:33px;}
 .node-community {bottom:0;}
 .therapy-card-grid {grid-template-columns:1fr;gap:25px;}
 .therapy-card {border-radius:23px;}
 .therapy-art {min-height:200px;padding:20px 30px;}
 .therapy-art .service-graphic {max-width:275px;}
 .therapy-card-copy {padding:27px 25px;}
 .therapy-card h3 {font-size:29px;}
 .service-label {font-size:12px;}
 .service-tags li {font-size:12px;}
 .service-detail summary {font-size:14px;}
 .pillar-art .service-graphic {max-width:185px;}
 .history-grid .lead-copy {font-size:18px;}
 .school-timeline h3 {font-size:24px;}
 .school-timeline li {padding-left:26px;}
 .school-timeline p {font-size:16px;}
 .history-photo {padding-bottom:88px;}
 .history-photo>img {height:350px;}
 .history-date {left:15px;padding:19px 22px;}
 .history-date strong {font-size:38px;}
 .long-copy {padding:20px;}
 .long-copy>summary {font-size:15px;}
 .care-feature-list {grid-template-columns:1fr;gap:12px;}
 .care-feature-list>div {display:flex;align-items:center;text-align:left;padding:11px 18px;gap:18px;}
 .care-feature-list .service-graphic {width:95px;margin:0;}
 .care-feature-list span {font-size:15px;}
 .boarding-features {grid-template-columns:1fr;gap:18px;}
 .boarding-features article {padding:25px;}
 .boarding-features .service-graphic {margin:0 0 20px;max-width:190px;}
 .boarding-features h3 {font-size:25px;}
 .boarding-features p {font-size:16px;}
 .participation-grid {grid-template-columns:1fr;gap:22px;}
 .participation-grid>article {padding:26px;}
 .participation-grid h3 {font-size:28px;}
 .steps.infographic-steps li {padding:24px;grid-template-columns:75px 1fr;gap:16px;}
 .steps.infographic-steps li>.step-illustration {width:75px;}
 .infographic-steps h3 {font-size:23px;}
 .infographic-steps p {font-size:15px;}
 .score-graphic {padding-block:16px 26px;}
 .score-graphic h3,.rank-graphic h3 {font-size:27px;}
 .graphic-kicker {font-size:10px;}
 .score-row {grid-template-columns:1fr;gap:10px;margin-bottom:22px;}
 .score-row dt {font-size:16px;}
 .score-row strong {font-size:21px;}
 .score-axis {margin-left:0;}
 .score-track {height:28px;}
 .score-graphic figcaption {font-size:12px;}
 .rank-graphic {padding:27px 25px;}
 .rank-pair strong {font-size:56px;}
 .rank-pair p {font-size:15px;}
 .funding-flow {max-width:none;}
 .funding-flow>div {display:block;padding:26px;}
 .funding-flow .service-graphic {max-width:205px;margin:0 0 22px;}
 .funding-flow h3 {font-size:27px;}
 .funding-flow p {font-size:16px;}
 .support-contact-options {padding:25px;flex-direction:column;align-items:stretch;}
 .support-contact-options .button {justify-content:space-between;}
 .support-contact-options .text-link {align-self:flex-start;font-size:13px;}
}
@media(max-width:370px) {
 .care-map-node {padding:10px;gap:5px;grid-template-columns:25px 1fr;}
 .care-map-node strong {font-size:13px;}
 .node-home {top:38px;}
 .steps.infographic-steps li {display:block;}
 .steps.infographic-steps li>.step-illustration {width:105px;margin-bottom:15px;}
 .support-contact-options {padding:21px;}
 .support-contact-options .button {font-size:13px;gap:12px;}
}
@media print {
 .therapy-overview,.therapy-card-grid,.history-grid,.participation-grid,.achievement-graphics,.boarding-features {display:block;}
 .therapy-card,.history-photo,.score-graphic,.rank-graphic {break-inside:avoid;margin-bottom:24px;}
 .care-map {display:none;}
 .therapy-art {min-height:0;padding:10px;}
 .therapy-art .service-graphic {max-width:170px;}
 .long-copy:not([open])>*:not(summary),.service-detail:not([open])>*:not(summary) {display:block!important;}
 .long-copy,.service-detail {border:0;}
 .score-fill {print-color-adjust:exact;-webkit-print-color-adjust:exact;}
 .score-track {print-color-adjust:exact;-webkit-print-color-adjust:exact;}
}
/* Keep the diagram’s labels in their own cells at every width. */
@media screen {
 .care-map {display:grid;grid-template-columns:1fr 1fr;grid-template-areas:'school home' 'learner learner' 'community community';gap:18px;min-height:0;padding:24px 0;}
 .care-map-centre,.care-map-node {position:relative;inset:auto;transform:none;}
 .care-map-centre {grid-area:learner;justify-self:center;max-width:100%;}
 .node-school {grid-area:school;}
 .node-home {grid-area:home;}
 .node-community {grid-area:community;justify-self:center;white-space:normal;}
 .care-map-orbit {inset:54px 40px 50px;}
}
/* Give the Support action enough room on smaller desktop windows. */
@media(max-width:1100px) {
 .navigation-shell {display:flex;align-items:center;justify-content:space-between;min-height:64px;background:transparent;padding-left:0;}
 .mobile-school {display:block;color:var(--deep);font-size:13px;font-weight:750;}
 .menu-toggle {display:flex;align-items:center;gap:10px;border:0;border-radius:999px;background:var(--deep);color:white;min-height:42px;padding:10px 17px;font-size:13px;font-weight:650;}
 .menu-icon {position:relative;display:block;width:18px;height:14px;border-block:2px solid currentColor;}
 .menu-icon:after {content:'';position:absolute;left:0;right:0;top:4px;height:2px;background:currentColor;}
 .site-header nav {display:none;position:absolute;top:100%;left:0;right:0;padding:14px 5% 24px;max-height:calc(100dvh - 64px);overflow:auto;background:white;box-shadow:0 18px 24px #1d225b12;}
 .site-header nav.is-open {display:flex;flex-direction:column;align-items:stretch;gap:0;}
 #primary-nav>a {font-size:15px;min-height:48px;padding:12px 18px;border:0;border-radius:12px;margin:3px 0;}
 #primary-nav>a.nav-support {margin:14px 0 0;justify-content:space-between;padding:12px 20px;}
}
