/* The Shepherd Friends — Phase 2B Programmes
   Work Sans, typography scale and colours inherited from the established NAKEF-derived design system.
   Intentional editorial art direction: large photographs + typography, not repeating small icon cards. */

.p2b-overview-hero { position:relative; isolation:isolate; min-height:620px; color:#fff; background:#203b4a; overflow:hidden; }
.p2b-overview-visual { position:absolute; inset:0 0 0 43%; z-index:-2; }
.p2b-overview-visual img { width:100%; height:100%; object-fit:cover; object-position:center 45%; display:block; }
.p2b-overview-hero::after { content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(90deg,#1e3847 0%,#1e3847 38%,rgba(30,56,71,.88) 49%,rgba(30,56,71,.08) 100%); }
.p2b-overview-inner { min-height:620px; padding-block:40px 78px; display:flex; flex-direction:column; }
.p2b-crumbs { margin-bottom:auto; }
.p2b-overview-copy { max-width:670px; padding-top:52px; }
.p2b-overview-copy h1 { color:#fff; font-size:clamp(45px,5.3vw,84px); letter-spacing:-.052em; line-height:1.04; margin:17px 0 25px; }
.p2b-overview-copy h1 em { font-style:normal; color:#dfc586; }
.p2b-overview-copy p { max-width:560px; font-size:clamp(16px,1.35vw,19px); line-height:1.72; color:#e0e9e9; margin:0 0 31px; }
.p2b-actions { display:flex; align-items:center; gap:14px; flex-wrap:wrap; }
.p2b-actions .button { text-align:center; justify-content:center; margin:0; }
.p2b-overview-intro { padding:clamp(65px,8vw,110px) 0; background:#fff; }
.p2b-overview-intro-inner { max-width:920px; text-align:center; }
.p2b-overview-intro h2 { font-size:clamp(35px,4.35vw,66px); line-height:1.1; letter-spacing:-.045em; margin:15px 0 24px; }
.p2b-overview-intro h2 em { color:var(--gold-dark); font-style:normal; }
.p2b-overview-intro p { color:#536977; font-size:clamp(15px,1.4vw,18px); line-height:1.8; max-width:790px; margin:0 auto; }
.p2b-showcase { background:#f5f6f3; padding-top:80px; }
.p2b-showcase-heading { padding-bottom:45px; text-align:center; max-width:940px; }
.p2b-showcase-heading h2 { font-size:clamp(38px,4vw,61px); line-height:1.13; letter-spacing:-.045em; margin:14px 0 18px; }
.p2b-showcase-heading h2 em { color:var(--gold-dark); font-style:normal; }
.p2b-showcase-heading p { max-width:760px; color:#60717b; line-height:1.7; font-size:16px; margin:0 auto; }
.p2b-programme-list { display:grid; grid-template-columns:minmax(0,1fr); }
.p2b-programme-feature { display:grid; grid-template-columns:50% 50%; min-height:540px; background:#fff; }
.p2b-programme-feature:nth-child(3n+2) { background:#eff3ee; }
.p2b-programme-feature:nth-child(3n+3) { background:#f7f3eb; }
.p2b-programme-feature-image { grid-column:1; grid-row:1; height:100%; min-height:540px; overflow:hidden; position:relative; }
.p2b-programme-feature-image img { position:absolute; inset:0; width:100%; height:100%; display:block; object-fit:cover; transition:transform 1s cubic-bezier(.2,.65,.2,1); }
.p2b-programme-feature:hover .p2b-programme-feature-image img { transform:scale(1.035); }
.p2b-programme-feature-copy { grid-column:2; grid-row:1; display:flex; align-items:center; min-width:0; }
.p2b-programme-feature.p2b-programme-reverse .p2b-programme-feature-image { grid-column:2; }
.p2b-programme-feature.p2b-programme-reverse .p2b-programme-feature-copy { grid-column:1; }
.p2b-programme-copy-inner { width:100%; max-width:660px; margin:auto; padding:clamp(36px,5.6vw,100px); }
.p2b-programme-copy-inner h3 { font-size:clamp(31px,3.4vw,54px); line-height:1.12; letter-spacing:-.045em; margin:14px 0 21px; }
.p2b-programme-copy-inner .p2b-feature-intro { font-size:clamp(17px,1.55vw,22px); font-weight:600; color:#27495a; line-height:1.52; margin:0 0 16px; }
.p2b-programme-copy-inner p:not(.p2b-feature-intro) { color:#5b6f78; font-size:15px; line-height:1.78; margin:0 0 28px; }
.p2b-programme-copy-inner .button { display:inline-flex; }
.p2b-programmes-pledge { background:#1f3a49; padding:94px 0 100px; text-align:center; color:#fff; }
.p2b-programmes-pledge h2 { max-width:1100px; margin:17px auto 28px; font-size:clamp(35px,4.5vw,65px); line-height:1.17; letter-spacing:-.04em; color:#fff; }
.p2b-programmes-pledge h2 em { color:#e2c688; font-style:normal; }

/* Each detail page follows the same tested template but image and composition vary by programme. */
.p2b-detail-hero { display:grid; grid-template-columns:50% 50%; min-height:595px; background:#213c4b; color:#fff; }
.p2b-detail-hero-copy { grid-column:1; grid-row:1; display:flex; align-items:center; justify-content:flex-end; }
.p2b-detail-hero-inner { width:100%; max-width:790px; padding:42px clamp(30px,5vw,88px) 72px max(24px,calc((100vw - 1380px)/2)); }
.p2b-detail-hero-inner .breadcrumbs { margin-bottom:66px; font-size:12px; flex-wrap:wrap; }
.p2b-detail-hero-inner h1 { color:#fff; font-size:clamp(39px,4.6vw,72px); line-height:1.08; letter-spacing:-.053em; margin:15px 0 23px; }
.p2b-detail-hero-inner > p { max-width:560px; color:#dce5e6; font-size:clamp(16px,1.42vw,20px); line-height:1.7; margin:0 0 32px; }
.p2b-detail-hero-image { grid-column:2; grid-row:1; position:relative; overflow:hidden; min-height:595px; }
.p2b-detail-hero-image img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.p2b-detail-hero-reverse .p2b-detail-hero-copy { grid-column:2; justify-content:flex-start; background:#294553; }
.p2b-detail-hero-reverse .p2b-detail-hero-image { grid-column:1; }
.p2b-detail-hero-reverse .p2b-detail-hero-inner { padding-left:clamp(34px,5vw,88px); padding-right:max(24px,calc((100vw - 1380px)/2)); }
.p2b-detail-intro { background:#fff; }
.p2b-detail-intro-layout { display:grid; grid-template-columns:.98fr 1.02fr; gap:clamp(30px,6vw,110px); align-items:start; }
.p2b-detail-intro h2 { font-size:clamp(35px,4.2vw,60px); letter-spacing:-.045em; line-height:1.14; max-width:670px; margin:15px 0 0; }
.p2b-intro-text .p2b-lead { font-weight:600; font-size:clamp(17px,1.8vw,23px); color:#304c59; line-height:1.58; margin:0 0 23px; }
.p2b-intro-text p:not(.p2b-lead) { color:#526b77; line-height:1.75; font-size:16px; margin:0; }
.p2b-detail-focus { background:#f1f4f0; padding:clamp(63px,7.2vw,105px) 0; scroll-margin-top:110px; }
.p2b-focus-grid { display:grid; grid-template-columns:.87fr 1.13fr; gap:clamp(45px,7vw,130px); align-items:start; }
.p2b-focus-head h2 { font-size:clamp(34px,3.75vw,55px); line-height:1.15; letter-spacing:-.045em; margin:15px 0 21px; }
.p2b-focus-head h2 em { font-style:normal; color:var(--gold-dark); }
.p2b-focus-head p { font-size:15px; line-height:1.76; color:#60717b; max-width:510px; margin:0; }
.p2b-focus-lines { border-top:1px solid #cbd5d0; }
.p2b-focus-line { padding:32px 2px; border-bottom:1px solid #cbd5d0; display:flex; align-items:center; justify-content:space-between; gap:28px; font-weight:650; color:#263f4c; font-size:clamp(17px,1.8vw,23px); line-height:1.35; }
.p2b-focus-line svg { color:#b78b3a; flex:0 0 auto; }
.p2b-response { display:grid; grid-template-columns:50% 50%; background:#f8f7f2; }
.p2b-response-image { position:relative; min-height:665px; overflow:hidden; }
.p2b-response-image img { width:100%; height:100%; position:absolute; inset:0; display:block; object-fit:cover; object-position:center 40%; }
.p2b-response-copy { min-height:665px; display:flex; align-items:center; }
.p2b-response-inner { width:100%; max-width:800px; padding:clamp(40px,5vw,85px); }
.p2b-response-inner h2 { font-size:clamp(34px,3.7vw,57px); line-height:1.13; letter-spacing:-.045em; margin:14px 0 22px; }
.p2b-response-inner > p { color:#536a73; font-size:15px; line-height:1.75; margin:0 0 23px; }
.p2b-response-items { border-top:1px solid #d7ddd8; }
.p2b-response-item { border-bottom:1px solid #d7ddd8; padding:17px 0 16px; }
.p2b-response-item h3 { font-size:19px; margin:0 0 4px; letter-spacing:-.02em; }
.p2b-response-item p { font-size:13px; line-height:1.6; color:#5e7178; margin:0; }
.p2b-programme-path { background:#dfc487; }
.p2b-programme-path-inner { text-align:center; max-width:930px; }
.p2b-programme-path h2 { font-size:clamp(37px,4.15vw,63px); letter-spacing:-.05em; line-height:1.12; margin:15px auto 18px; }
.p2b-programme-path h2 em { font-style:normal; color:#315568; }
.p2b-programme-path p { max-width:740px; margin:0 auto 29px; color:#344e59; line-height:1.68; font-size:16px; }
.p2b-programme-path .p2b-actions { justify-content:center; }
.p2b-programme-path .button-gold { background:#fff; color:#1f3c4b; }
.p2b-related { background:#fff; }
.p2b-related-title { text-align:center; margin-bottom:37px; }
.p2b-related-title h2 { font-size:clamp(33px,4vw,57px); line-height:1.13; margin:15px 0 0; letter-spacing:-.045em; }
.p2b-related-title h2 em { color:var(--gold-dark); font-style:normal; }
.p2b-related-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:21px; }
.p2b-related-card { background:#f4f6f3; min-width:0; text-decoration:none; display:block; color:#243d4a; }
.p2b-related-photo { aspect-ratio:1.48; overflow:hidden; }
.p2b-related-photo img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.p2b-related-card:hover .p2b-related-photo img { transform:scale(1.045); }
.p2b-related-copy { padding:22px 24px 23px; }
.p2b-related-copy h3 { font-size:clamp(19px,1.65vw,25px); letter-spacing:-.035em; line-height:1.2; margin:0 0 12px; }
.p2b-related-copy>span { color:#607783; font-size:12px; font-weight:750; }
.p2b-all-link { display:flex; justify-content:center; margin-top:34px; }

@media(max-width:1100px) {
 .p2b-overview-hero,.p2b-overview-inner { min-height:590px; }
 .p2b-overview-visual { left:34%; }
 .p2b-overview-hero::after { background:linear-gradient(90deg,#1e3847 0%,#1e3847ee 35%,#1e384799 74%,#1e384755 100%); }
 .p2b-overview-copy { max-width:640px; }
 .p2b-programme-feature,.p2b-programme-feature-image { min-height:485px; }
 .p2b-programme-copy-inner { padding:40px; }
 .p2b-programme-copy-inner h3 { font-size:clamp(30px,3.2vw,44px); }
 .p2b-detail-hero,.p2b-detail-hero-image { min-height:540px; }
 .p2b-detail-hero-inner,.p2b-detail-hero-reverse .p2b-detail-hero-inner { padding:38px; }
 .p2b-detail-hero-inner .breadcrumbs { margin-bottom:48px; }
 .p2b-response-image,.p2b-response-copy { min-height:600px; }
 .p2b-response-inner { padding:36px; }
}
@media(max-width:800px) {
 .p2b-overview-hero,.p2b-overview-inner { min-height:570px; }
 .p2b-overview-visual { left:0; }
 .p2b-overview-hero::after { background:linear-gradient(0deg,#1b3648 0%,#1b3648e8 35%,#1b364877 75%,#1b36481d 100%); }
 .p2b-overview-inner { padding-block:30px 42px; }
 .p2b-overview-copy { padding-top:120px; max-width:680px; }
 .p2b-programme-feature { grid-template-columns:1fr; min-height:0; }
 .p2b-programme-feature-image,.p2b-programme-feature.p2b-programme-reverse .p2b-programme-feature-image { grid-row:1; grid-column:1; min-height:360px; height:360px; }
 .p2b-programme-feature-copy,.p2b-programme-feature.p2b-programme-reverse .p2b-programme-feature-copy { grid-row:2; grid-column:1; }
 .p2b-programme-copy-inner { padding:42px 34px 49px; max-width:780px; }
 .p2b-detail-hero { grid-template-columns:1fr; }
 .p2b-detail-hero-copy,.p2b-detail-hero-reverse .p2b-detail-hero-copy { grid-column:1; grid-row:2; justify-content:flex-start; }
 .p2b-detail-hero-image,.p2b-detail-hero-reverse .p2b-detail-hero-image { grid-column:1; grid-row:1; min-height:380px; height:380px; }
 .p2b-detail-hero-inner,.p2b-detail-hero-reverse .p2b-detail-hero-inner { max-width:780px; padding:33px 30px 48px; }
 .p2b-detail-hero-inner .breadcrumbs { margin-bottom:34px; }
 .p2b-detail-intro-layout { grid-template-columns:1fr; gap:23px; }
 .p2b-focus-grid { grid-template-columns:1fr; gap:34px; }
 .p2b-response { grid-template-columns:1fr; }
 .p2b-response-image { min-height:430px; height:430px; }
 .p2b-response-copy { min-height:0; }
 .p2b-response-inner { padding:52px 30px 64px; max-width:760px; }
 .p2b-related-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .p2b-related-card:last-child { display:none; }
}
@media(max-width:540px) {
 .p2b-overview-hero,.p2b-overview-inner { min-height:630px; }
 .p2b-overview-visual img { object-position:center 26%; }
 .p2b-overview-copy { padding-top:170px; }
 .p2b-overview-copy h1 { font-size:clamp(37px,9.8vw,52px); margin:13px 0 17px; }
 .p2b-overview-copy p { font-size:14px; line-height:1.6; margin-bottom:21px; }
 .p2b-actions { justify-content:center; gap:9px; }
 .p2b-overview-copy .p2b-actions { justify-content:flex-start; }
 .p2b-actions .button { padding:12px 14px; min-height:46px; font-size:11px; }
 .p2b-overview-intro { padding:65px 0; }
 .p2b-overview-intro h2 { font-size:clamp(33px,8.3vw,43px); }
 .p2b-overview-intro p { font-size:14px; }
 .p2b-showcase { padding-top:61px; }
 .p2b-showcase-heading { padding-bottom:29px; }
 .p2b-showcase-heading h2 { font-size:38px; }
 .p2b-showcase-heading p { font-size:14px; }
 .p2b-programme-feature-image,.p2b-programme-feature.p2b-programme-reverse .p2b-programme-feature-image { height:270px; min-height:270px; }
 .p2b-programme-copy-inner { padding:37px 23px 44px; }
 .p2b-programme-copy-inner h3 { font-size:clamp(31px,8vw,43px); margin:12px 0 14px; }
 .p2b-programme-copy-inner .p2b-feature-intro { font-size:17px; }
 .p2b-programme-copy-inner p:not(.p2b-feature-intro) { font-size:14px; margin-bottom:21px; }
 .p2b-programmes-pledge { padding:68px 0 73px; }
 .p2b-programmes-pledge h2 { font-size:clamp(34px,8.6vw,43px); }
 .p2b-detail-hero-image,.p2b-detail-hero-reverse .p2b-detail-hero-image { min-height:280px; height:280px; }
 .p2b-detail-hero-inner,.p2b-detail-hero-reverse .p2b-detail-hero-inner { padding:25px 21px 42px; }
 .p2b-detail-hero-inner .breadcrumbs { font-size:10px; margin-bottom:27px; gap:7px; }
 .p2b-detail-hero-inner h1 { font-size:clamp(38px,9.7vw,50px); line-height:1.09; margin:13px 0 17px; }
 .p2b-detail-hero-inner > p { font-size:15px; margin-bottom:22px; }
 .p2b-detail-intro h2 { font-size:clamp(32px,8.5vw,43px); }
 .p2b-intro-text .p2b-lead { font-size:17px; }
 .p2b-intro-text p:not(.p2b-lead) { font-size:14px; }
 .p2b-detail-focus { padding:60px 0; }
 .p2b-focus-head h2 { font-size:clamp(34px,8.5vw,43px); }
 .p2b-focus-head p { font-size:14px; }
 .p2b-focus-line { padding:22px 1px; font-size:17px; }
 .p2b-response-image { min-height:290px; height:290px; }
 .p2b-response-inner { padding:47px 22px 57px; }
 .p2b-response-inner h2 { font-size:clamp(32px,8.2vw,43px); }
 .p2b-programme-path h2 { font-size:clamp(34px,8.6vw,44px); }
 .p2b-programme-path p { font-size:14px; }
 .p2b-related-title h2 { font-size:clamp(31px,8.3vw,42px); }
 .p2b-related-grid { grid-template-columns:1fr; }
 .p2b-related-card:last-child { display:block; }
 .p2b-related-photo { aspect-ratio:1.66; }
 .p2b-related-copy { padding:19px 22px 23px; }
}
@media(max-width:355px) {
 .p2b-overview-copy { padding-top:154px; }
 .p2b-overview-copy .p2b-actions { flex-direction:column; align-items:stretch; }
 .p2b-detail-hero-inner .p2b-actions { flex-direction:column; align-items:stretch; }
}
@media(prefers-reduced-motion:reduce) {
 .p2b-programme-feature-image img,.p2b-related-photo img { transition:none; transform:none!important; }
}
