/* Final client-update sections: uses the existing brand, spacing, and responsive system. */
.client-split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}.client-split img{width:100%;max-height:520px;object-fit:cover;border-radius:28px;box-shadow:var(--shadow)}.client-copy p{color:#655e66;margin:16px 0}.client-copy h2{max-width:650px}.client-program-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.client-program{overflow:hidden;border-radius:24px;background:#fff8fb;box-shadow:0 12px 28px #54203314}.client-program img{width:100%;height:190px;object-fit:cover}.client-program>div{padding:22px}.client-program h3{font-size:1.35rem;margin:7px 0}.client-program p{font-size:.86rem;color:#685e66}.client-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:180px;gap:16px}.client-gallery a{overflow:hidden;border-radius:18px}.client-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.client-gallery a:hover img{transform:scale(1.04)}.client-gallery a:nth-child(1),.client-gallery a:nth-child(6){grid-column:span 2;grid-row:span 2}.client-graphic{max-width:850px;margin:36px auto 0;border-radius:22px;box-shadow:var(--shadow);cursor:zoom-in}.client-partners{display:grid;grid-template-columns:repeat(6,1fr);gap:18px}.client-partners img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:50%;border:4px solid var(--yellow)}.client-partners+.logo-grid{margin-top:56px}.logo-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;align-items:center}.logo-grid div{min-height:116px;padding:16px;border:1px solid #f2dce4;border-radius:18px;display:grid;place-items:center;background:#fff}.logo-grid img{max-width:100%;max-height:78px;object-fit:contain}.client-contact{background:linear-gradient(135deg,#fff1f6,#fff8df)}.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px}.contact-cards article{background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 12px 28px #54203314}.contact-cards img{width:100%;height:170px;object-fit:cover}.contact-cards div{padding:18px}.contact-cards h3{font-size:1.2rem}.contact-cards p{margin-top:7px;color:#655e66;font-size:.86rem}/* CEO Message: identical desktop look as before (image on one side, title
   stacked above the message on the other — row-gap is zeroed so the title
   still sits its original 16px above the message via the paragraph's own
   margin, only the image-to-text column-gap of 64px is kept). Named grid
   areas let mobile reorder the title above the image without touching any
   other .client-split section (Curriculum keeps its original markup/order). */
#ceo-message .client-split{grid-template-areas:"pic title" "pic message";row-gap:0;column-gap:64px}
#ceo-message .client-split>img{grid-area:pic;align-self:center}
#ceo-message .client-split>.ceo-title{grid-area:title;align-self:end;margin:0}
#ceo-message .client-split>.client-copy{grid-area:message;align-self:start}

.client-gallery .extra-item{display:none}
.client-gallery.expanded .extra-item{display:block;animation:galleryReveal .5s ease both;animation-delay:calc(var(--reveal-index,0) * 60ms)}
@keyframes galleryReveal{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:scale(1)}}
.gallery-more-wrap{display:flex;justify-content:center;margin-top:32px}
.gallery-more-btn{cursor:pointer;border:0}
.gallery-more-btn .label-less{display:none}
.gallery-more-btn[aria-expanded="true"] .label-more{display:none}
.gallery-more-btn[aria-expanded="true"] .label-less{display:inline}
@media(max-width:850px){.client-split{grid-template-columns:1fr;gap:35px}.client-program-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.client-gallery{grid-template-columns:repeat(3,1fr)}.client-partners{grid-template-columns:repeat(3,1fr)}.logo-grid{grid-template-columns:repeat(3,1fr)}
#ceo-message .client-split{grid-template-columns:1fr;grid-template-areas:"title" "pic" "message";row-gap:0;column-gap:0}
#ceo-message .client-split>.ceo-title{align-self:start;margin:0 0 20px}
#ceo-message .client-split>img{margin:0 0 22px}
#ceo-message .client-split>.client-copy p{margin:0}
}@media(max-width:560px){.client-program-grid,.contact-cards{grid-template-columns:1fr}.client-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:130px}.client-partners{grid-template-columns:repeat(2,1fr)}.logo-grid{grid-template-columns:repeat(2,1fr)}.client-partners+.logo-grid{margin-top:40px}.client-gallery a:nth-child(1),.client-gallery a:nth-child(6){grid-column:span 2;grid-row:span 1}}
