/* One banner width and one responsive typographic hierarchy across the site. */
:root{--banner-width:90%;--title-size:clamp(2.25rem,3.4vw + .75rem,4.5rem);--section-size:clamp(1.75rem,1.65vw + 1.1rem,3rem);--card-size:clamp(1.5rem,.65vw + 1.25rem,2rem);--subheading-size:clamp(1.125rem,.25vw + 1rem,1.375rem);--copy-size:clamp(1rem,.3vw + .94rem,1.3rem);--eyebrow-size:.75rem}
body main :is(.hero,.page-hero,.program-hero,.event-hero){width:var(--banner-width)!important;max-width:none!important;margin-inline:auto!important;box-sizing:border-box}
body main h1{font-size:var(--title-size)!important;line-height:1.08!important}
body main h2{font-size:var(--section-size)!important;line-height:1.16!important}
body main h3{font-size:var(--card-size)!important;line-height:1.2!important}
body main h4{font-size:var(--subheading-size)!important;line-height:1.35!important}
body main p:not(.eyebrow){font-size:var(--copy-size)!important;line-height:1.6!important}
body main .eyebrow{font-family:var(--body)!important;font-size:var(--eyebrow-size)!important;line-height:1.5!important;letter-spacing:.12em;font-weight:500;text-transform:uppercase}
body main :is(.founder-copy h4,.profile-description h3:not(:first-child)){font-family:var(--body)!important;font-size:var(--eyebrow-size)!important;line-height:1.5!important}
body main :is(.event-challenge-list strong,.event-audience li,.event-faq summary){font-size:var(--copy-size)!important}
body main .event-hero h1{max-width:15ch}
body main .event-list-hero h1{max-width:22ch}
body main .page-hero h1{max-width:28ch}
body main .event-method-layout .event-method-list article{grid-template-columns:44px minmax(0,1fr) minmax(0,1.35fr)}
@media(max-width:1100px){body main .event-method-layout{grid-template-columns:minmax(0,38fr) minmax(0,62fr)}body main .event-method-layout .event-method-list article{grid-template-columns:40px minmax(0,1fr)}}
@media(max-width:767px){body main .event-method-layout{grid-template-columns:minmax(0,1fr)}body main .event-method-layout .event-method-list article{grid-template-columns:40px minmax(0,1fr)}body main .event-hero h1{max-width:16ch}}
/* Every top-level page section uses the homepage hero's outer edges. */
body main>section{width:var(--banner-width)!important;max-width:none!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box}
body main>.event-section,body main>.contact-layout{padding-inline:0}
body main>.event-audience>.event-section{width:100%!important;max-width:none!important}
body main>.about-testimonials>.shell{width:100%;max-width:none}

/* Anchor the Events panel under its trigger, with identical row gutters. */
#main-nav .nav-dropdown{position:relative}
#main-nav .nav-dropdown>summary{display:flex;align-items:center;justify-content:flex-start;gap:12px;list-style:none;cursor:pointer}
#main-nav .nav-dropdown>summary::-webkit-details-marker{display:none}
#main-nav .nav-dropdown[open]>.nav-submenu{left:0;right:auto;top:100%;width:350px;min-width:0;padding:10px 0 0;filter:drop-shadow(0 10px 16px #0001)}
#main-nav .nav-submenu>a{display:flex;align-items:center;min-height:54px;padding:16px 20px;width:100%;margin:0;font-size:14px;line-height:1.4;text-align:left;box-sizing:border-box}
@media(max-width:1200px){#main-nav .nav-dropdown[open]>.nav-submenu{position:static;width:100%;padding-top:12px;filter:none}#main-nav .nav-submenu>a{min-height:48px;padding:14px 16px}}

/* Executive Presence: four challenges in an aligned two-by-two grid. */
.ep-challenges .event-challenge-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px 28px;margin-top:30px}
.ep-challenges .event-challenge-list li{display:flex;align-items:flex-start;border:0;padding:0;gap:12px;min-width:0}
.ep-challenges .event-challenge-list strong{font-weight:700}
/* Emotional Intelligence: both columns share the same top and bottom edges. */
body main .ei-challenges{align-items:stretch}
.ei-challenges>div:first-child{display:flex;flex-direction:column;justify-content:center;height:100%}
.ei-challenges>div:last-child{display:flex;flex-direction:column;justify-content:center;height:100%}
.ei-challenges .event-challenge-list{flex:1;display:flex;flex-direction:column;justify-content:space-between}
.ei-challenges .event-challenge-list li{flex:1;align-items:center}
/* One-day experience: eyebrow, title, subheading and description, centered. */
body main .event-experience-centered{text-align:center}
.event-experience-centered>.eyebrow{margin:0 0 22px}
.event-experience-centered>h2{max-width:30ch;margin:0 auto 26px}
.event-experience-centered>h3{max-width:40ch;margin:0 auto 22px}
.event-experience-centered>p:not(.eyebrow){max-width:72ch;margin-inline:auto}
@media(max-width:767px){.ep-challenges .event-challenge-list{gap:26px 22px}.ei-challenges>div:first-child,.ei-challenges>div:last-child{height:auto}.ei-challenges .event-challenge-list li{padding-block:18px}}
@media(max-width:479px){.ep-challenges .event-challenge-list{grid-template-columns:1fr}}

/* Separate the last content section from the footer on every page. */
body main{padding-bottom:clamp(40px,5vw,80px)}
/* Consistent outer spacing between sections, including Success Stories / Case Study. */
:root{--section-gap:clamp(40px,5vw,80px)}
body main>section{margin-bottom:0!important}
body main>section+section{margin-top:var(--section-gap)!important}
body main{padding-bottom:var(--section-gap)}
.related-icon{width:28px;height:28px;display:block;flex-shrink:0}
.program-index .related-icon{width:23px;height:23px}.step-number .related-icon{width:28px;height:28px}
.solution-row>span:has(.related-icon){display:grid;place-items:center;color:var(--teal)}
.event-directory>.related-icon,.event-directory article>.related-icon{color:var(--deep-teal);margin-bottom:18px}
/* About statistics share the homepage statistic typography and two-column grid. */
body main .about-section-1 .detail-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px;width:100%}
body main .about-section-1 .stat-number{font-family:var(--heading);font-weight:100;font-size:clamp(40px,5vw,80px);line-height:1.1;color:var(--deep-teal)}
body main .about-section-1 .detail-card h3{font-family:var(--body)!important;font-size:var(--copy-size)!important;line-height:1.5!important;font-weight:400!important;max-width:none;margin:12px 0 0;text-wrap:initial}
/* Centered introduction above two full-width, uncropped certificates. */
body.about-page main>.about-section-2{display:block;padding-inline:0}
.about-section-2 .leadership-introduction{max-width:100%!important;text-align:center;margin:0 auto 40px}
.about-section-2 .leadership-introduction .section-intro{margin-bottom:24px}
.about-section-2 .leadership-introduction .section-intro>div{max-width:none}
.about-section-2 .leadership-introduction h2{max-width:none;margin-inline:auto}
.about-section-2 .leadership-introduction p:not(.eyebrow){max-width:75ch;margin-inline:auto!important}
body .about-section-2 .leadership-certificates{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px);align-items:center}
body .about-section-2 .leadership-certificates img{width:100%;height:auto;max-width:none;max-height:none;margin:0;object-fit:contain}
/* Give each portrait half the profile card so its full native framing is visible. */
body.about-page main>.about-section-3{padding-inline:0}
body.about-page .profile-detail{grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}
body.about-page .profile-detail .profile-image{width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:3/4;object-fit:contain;object-position:center;align-self:center}
body.about-page .profile-description{padding:clamp(24px,2.4vw,42px)}
body main .about-section-4 .detail-card h3{min-height:2.4em;text-wrap:initial}
@media(max-width:1024px){body.about-page .profile-detail{grid-template-columns:1fr}.about-page .profile-detail .profile-image{width:100%;max-width:none;max-height:none}body main .about-section-4 .detail-card h3{min-height:0}}
@media(max-width:767px){body .about-section-2 .leadership-certificates{grid-template-columns:1fr;gap:28px}.about-section-2 .leadership-introduction{margin-bottom:28px}body main .about-section-1 .detail-grid{gap:32px 20px}}

/* The text column determines profile height; portraits fill that same height. */
body.about-page .profile-detail{grid-template-columns:minmax(0,38fr) minmax(0,62fr);align-items:stretch}
.profile-portrait{position:relative;min-width:0;min-height:0;overflow:hidden}
body.about-page .profile-detail .profile-portrait .profile-image{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:center 25%;align-self:stretch}
body.about-page .profile-description{align-self:stretch}
@media(max-width:1024px){body.about-page .profile-detail{grid-template-columns:1fr}.profile-portrait{aspect-ratio:3/4;width:min(100%,520px);margin-inline:auto}body.about-page .profile-detail .profile-portrait .profile-image{object-fit:contain}}
/* Site-wide 30px section rhythm: remove the old viewport-sized spacing. */
:root{--section-gap:30px}
body main>section{margin-bottom:0!important}
body main>section+section{margin-top:30px!important}
body main{padding-bottom:30px}
body main>section:not(.hero):not(.page-hero):not(.program-hero):not(.event-hero):not(.story-layout){padding-top:30px!important;padding-bottom:30px!important}
body main>.event-audience>.event-section{padding-block:30px!important}
body main>.solutions>.solutions-copy,body main>.solutions>.solutions-image{padding-top:30px;padding-bottom:30px}
body main>.why>.why-panel{padding-top:30px;padding-bottom:30px}
body main>.about-testimonials>.shell{padding-block:0}
/* Updated site-wide spacing: 40px above/below sections and before the footer. */
:root{--section-gap:40px}
body main>section+section{margin-top:40px!important}
body main{padding-bottom:40px}
body main>section:not(.hero):not(.page-hero):not(.program-hero):not(.event-hero):not(.story-layout){padding-top:40px!important;padding-bottom:40px!important}
body main>.event-audience>.event-section{padding-block:40px!important}
body main>.why>.why-panel{padding-top:40px;padding-bottom:40px}
/* Full-height solutions image; keep the content padding in the right column. */
body main>section.solutions{padding-top:0!important;padding-bottom:0!important;align-items:stretch}
body main>.solutions>.solutions-image{padding:0!important;align-self:stretch;position:relative;overflow:hidden}
body main>.solutions>.solutions-image img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;border-radius:0}
body main>.solutions>.solutions-copy{padding-top:40px;padding-bottom:40px}
body main .solutions .solution-row>span:has(.related-icon),body main .solutions .solution-row .related-icon{color:#fff!important;opacity:1}
body main>section.solutions:not(.hero):not(.page-hero):not(.program-hero):not(.event-hero):not(.story-layout){padding-block:0!important}
/* Individual blog copy follows the full article container instead of a 70ch column. */
body main .article-frame .article-body{width:100%;max-width:none;margin-inline:0}
body main .article-frame .article-body>p{max-width:none}
/* Reduce the article inset so paragraphs use more of the shared page width. */
body main .article-frame{width:90%;max-width:none;padding:30px 20px}
body main .article-frame .article-body{width:100%;max-width:none;margin:0}
@media(max-width:767px){body main .article-frame{padding:24px 16px}}
