/* Keep footers at the viewport bottom on short pages. */
.public-site{min-height:100svh;display:flex;flex-direction:column}.public-site>.site-header,.public-site>.site-footer{flex-shrink:0}.public-site>main{flex:1;width:100%}.portal-shell{display:flex;flex-direction:column}.portal-topbar,.portal-footer{flex-shrink:0}.portal-main{flex:1;width:100%}

.portal-site{min-height:100svh;display:flex;flex-direction:column}.portal-shell{flex:1;min-height:0}

.service-overview{display:grid;grid-template-columns:1fr 1.4fr;gap:80px}.service-overview-copy{font-size:15px;line-height:1.85}.service-areas{background:var(--canvas)}.service-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 60px}.service-detail{border-top:1px solid #cdd1c2;padding:30px 0 36px;min-width:0}.service-detail-heading{display:grid;grid-template-columns:1fr 180px;gap:24px;align-items:start;margin-bottom:22px}.service-detail-heading .eyebrow{margin-bottom:14px;color:var(--olive)}.service-detail h3{font-size:26px;line-height:1.2;overflow-wrap:anywhere}.service-detail-heading img{width:180px;height:auto;border-radius:5px}.service-detail>p{font-size:14px;line-height:1.85}.service-detail>.text-link{margin-top:22px;font-size:11px;overflow-wrap:anywhere}.intro-portrait{max-width:285px}.intro-portrait img{height:420px;max-height:none;object-position:82% center;filter:none}.intro-content>p:not(.eyebrow){line-height:1.85}
@media(max-width:1000px){.service-overview{gap:40px;grid-template-columns:1fr 1.4fr}.service-detail-grid{gap:0 30px}.service-detail-heading{grid-template-columns:1fr 130px;gap:18px}.service-detail-heading img{width:130px}.service-detail h3{font-size:23px}}
@media(max-width:700px){.service-overview{grid-template-columns:1fr;gap:30px}.service-overview-copy{font-size:14px}.service-detail-grid{grid-template-columns:1fr}.service-detail-heading{grid-template-columns:1fr 150px}.service-detail-heading img{width:150px}.service-detail>p{font-size:13px}.service-detail h3{font-size:24px}.intro-portrait{max-width:240px}.intro-portrait img{height:360px}.hero-photo{object-position:81% center}}
@media(max-width:400px){.service-detail-heading{grid-template-columns:1fr 115px;gap:15px}.service-detail-heading img{width:115px}.service-detail h3{font-size:22px}}


/* Article padding is independent of viewport width: never squeeze the reading column. */
.article-page{width:calc(100% - 48px);max-width:1180px;margin:0 auto;padding:40px 0 72px;min-width:0}
.article-page .breadcrumbs{font-size:12px;line-height:1.6;margin-bottom:34px;display:block}
.article-page .breadcrumbs ol{display:flex;flex-wrap:wrap;gap:8px 12px;list-style:none;padding:0;margin:0}
.article-page .breadcrumbs li+li:before{content:'/';margin-right:12px;color:#777b70}
.article-page .breadcrumbs a{padding:6px 0;text-decoration:underline;text-underline-offset:4px}
.article-header{padding-bottom:42px;border-bottom:1px solid var(--line)}
.article-header.with-cover{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:56px;align-items:center}
.article-heading{min-width:0}.article-heading .eyebrow{font-size:11px;letter-spacing:.1em;color:var(--olive);margin-bottom:18px}
.article-page h1{font-size:clamp(38px,4.4vw,64px);line-height:1.08;margin:0 0 24px;letter-spacing:-.045em;text-wrap:balance;overflow-wrap:break-word}
.article-page .lead{font-size:19px;line-height:1.65;max-width:38ch}
.article-page .article-meta{font-size:12px;line-height:1.7;margin-top:26px;color:var(--muted)}
.article-meta p+p{margin-top:4px}.article-author{font-weight:600;color:var(--ink)}.article-republished{font-size:11px}
.article-figure{margin:0 0 0 auto;min-width:0;width:100%;max-width:350px}.article-main-image{width:100%;height:auto;max-height:none;object-fit:contain;margin:0;border-radius:8px}
.article-layout{padding-top:48px}.article-layout.with-outline{display:grid;grid-template-columns:220px minmax(0,700px);gap:60px;justify-content:space-between}
.article-reading{width:100%;max-width:700px;min-width:0;margin:auto}
.article-outline{align-self:start;position:sticky;top:30px;border-top:2px solid var(--olive);padding-top:20px}
.article-outline>p{font-size:12px;font-weight:700;margin-bottom:14px}.article-outline ol{list-style:none;margin:0;padding:0}
.article-outline li+li{border-top:1px solid var(--line)}.article-outline a{display:block;font-size:13px;line-height:1.6;padding:12px 0;color:var(--muted)}.article-outline a:hover{color:var(--olive);text-decoration:underline}
.article-prose{font-size:18px;line-height:1.85;overflow-wrap:break-word}.article-prose>p:first-child{margin-top:0}
.article-prose p{margin:0 0 24px}.article-prose h2{font-size:30px;line-height:1.25;letter-spacing:-.025em;margin:42px 0 20px;scroll-margin-top:30px}
.article-prose h3{font-size:24px;line-height:1.3}.article-prose blockquote{margin:30px 0;padding:24px 28px;background:var(--canvas);border-left:3px solid var(--olive);font-size:21px;line-height:1.65}
.article-prose blockquote p{margin:0}.article-prose blockquote p+p{margin-top:14px;font-size:14px}
.article-prose img{height:auto;max-width:100%}.article-prose table{display:block;max-width:100%;overflow-x:auto}
.article-page .article-end{margin-top:44px;padding:30px;background:var(--canvas);border:1px solid var(--line);border-radius:8px}
.article-end .eyebrow{font-size:10px;margin-bottom:16px}.article-end h2{font-size:28px;line-height:1.2;margin-bottom:18px}
.article-end>p:not(.eyebrow){font-size:14px;line-height:1.8}.article-end-links{display:flex;flex-wrap:wrap;align-items:center;gap:16px 24px;margin-top:24px}
.article-back{margin-top:30px}.article-related{border-top:1px solid var(--line)}.article-related>h2{margin-bottom:36px}
@media(max-width:1000px){.article-header.with-cover{gap:32px}.article-layout.with-outline{grid-template-columns:190px minmax(0,1fr);gap:36px}.article-page .lead{font-size:18px}}
@media(max-width:750px){.article-page{padding-top:28px;padding-bottom:48px}.article-page .breadcrumbs{margin-bottom:26px;font-size:11px}.article-header.with-cover{grid-template-columns:minmax(0,1fr);gap:28px}.article-page h1{font-size:42px}.article-figure{width:100%;margin:0 auto}.article-layout.with-outline{display:block}.article-layout{padding-top:30px}.article-outline{position:static;margin-bottom:32px;padding-top:16px}.article-outline ol{display:flex;flex-wrap:wrap;gap:0 20px}.article-outline li+li{border:0}.article-outline a{padding:8px 0}.article-prose{font-size:17px;line-height:1.85}.article-prose h2{font-size:27px}.article-prose blockquote{font-size:19px;padding:20px}.article-page .article-end{padding:24px}.article-end h2{font-size:26px}}
@media(max-width:360px){.article-page{width:calc(100% - 40px)}.article-page h1{font-size:36px}.article-page .lead{font-size:17px}.article-end-links .button{padding:15px;font-size:11px;gap:12px}.footer-call{font-size:32px;gap:16px}}

/* Refinements layered over the current release, preserving its content and palette. */
.altcha-field.altcha-automatic{margin:0;min-height:0}
.altcha-automatic altcha-widget{display:block;max-width:100%;height:0;min-height:0}
.captcha-feedback:not([hidden]){margin:12px 0 0;font-size:12px;line-height:1.6;color:var(--ink)}
.altcha-automatic .field-error{margin:12px 0;font-size:12px}
.filter-bar{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr) auto;align-items:end;gap:20px}
.filter-bar .field{min-width:0;margin:0}.filter-bar>.button{align-self:end}.filter-bar>.text-link{grid-column:1/-1;justify-self:start}
.newsletter{align-items:center;gap:clamp(32px,5vw,72px);padding-block:clamp(56px,5.5vw,80px)}
.newsletter .newsletter-form{max-width:520px;margin:0;justify-self:end;min-width:0;width:100%}
.newsletter-signup{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px}
.newsletter-signup .field{margin:0;min-width:0}.newsletter-signup .field>span{font-size:12px}
.newsletter .newsletter-signup .button{margin:0;min-height:48px;padding:15px 20px;gap:18px;width:auto}
.newsletter-form .check{display:flex;align-items:flex-start;flex-wrap:nowrap;gap:10px;font-size:12px;line-height:1.7;margin:20px 0 0}
.newsletter-form .check input{flex:none;margin:3px 0 0}.newsletter-form .check span{min-width:0}
.newsletter .privacy-summary{font-size:11px;line-height:1.8;margin:16px 0 0;color:#29271d}
.newsletter .privacy-summary a{overflow-wrap:break-word}
.form-required-note{font-size:12px;color:var(--muted);margin:0 0 24px;line-height:1.6}
.contact-form .check{align-items:flex-start;flex-wrap:nowrap;gap:10px}.contact-form .check input{flex:none;margin-top:3px}
.contact-form .check span{min-width:0}.form-actions{display:flex;align-items:center;margin-top:24px}
.verification-page.section.narrow{max-width:640px;padding:48px 24px}
.verification-panel{padding:32px}.verification-panel h1{font-size:clamp(32px,4vw,48px);line-height:1.15;margin-bottom:18px}
.verification-panel>p{font-size:14px;margin-bottom:26px}.verification-panel .section-space{margin-top:20px}
.verification-panel>a{margin-top:8px}
.purpose-leadership{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:80px;align-items:start;background:#fff}
.purpose-leadership h2{font-size:clamp(30px,3vw,44px);line-height:1.15;margin-bottom:24px;max-width:20ch}
.purpose-leadership>div>p:last-child{font-size:14px;line-height:1.85;max-width:60ch}
.purpose-companies{list-style:none;padding:0;margin:0}.purpose-companies li{border-top:1px solid var(--line)}
.purpose-companies li+li{margin-top:20px}.purpose-companies a{display:block;padding-top:22px}
.purpose-companies h3{display:flex;justify-content:space-between;font-size:24px;line-height:1.3;margin-bottom:10px}
.purpose-companies h3 span{font-size:20px;font-weight:400}.purpose-companies p{font-size:14px;line-height:1.75;color:var(--muted)}
.purpose-companies a:hover h3{text-decoration:underline;text-underline-offset:5px}
.inline-reference{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#cbd0a2}
.service-detail-heading>div,.service-overview>div,.service-hero>div,.intro-content,.method-grid>*,.contact-page>*,.newsletter>*,.section-heading>*{min-width:0}
.service-detail h3{overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance}
.service-detail-heading{grid-template-columns:minmax(0,1fr) 180px}.service-detail-heading img{max-width:100%;width:180px}
.service-overview,.service-hero,.intro,.method-grid,.newsletter,.contact-page{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.intro{grid-template-columns:minmax(0,.65fr) minmax(0,1.5fr)}
.service-hero h1,.service-overview h2,.section-heading h2,.intro h2,.method-grid h2,.newsletter h2{overflow-wrap:normal;word-break:normal;hyphens:none;text-wrap:balance}
.hero-accent{max-width:100%;white-space:normal;text-wrap:balance}
@media(max-width:1199px){.service-detail-grid{grid-template-columns:minmax(0,1fr)}.service-detail-heading{grid-template-columns:minmax(0,1fr) 180px}.service-detail h3{font-size:clamp(24px,3vw,30px)}}
@media(max-width:900px){.newsletter{grid-template-columns:minmax(0,1fr);gap:32px}.newsletter .newsletter-form{justify-self:start;max-width:600px}.purpose-leadership{gap:40px}.contact-page{grid-template-columns:minmax(0,1fr)}}
@media(max-width:750px){.purpose-leadership,.service-overview,.method-grid{grid-template-columns:minmax(0,1fr);gap:32px}.intro{grid-template-columns:minmax(0,1fr);gap:32px}}
@media(max-width:600px){.hero h1{font-size:clamp(35px,8.5vw,43px)}.hero-accent{font-size:1.35em}.service-hero{grid-template-columns:minmax(0,1fr)}.service-detail-heading{display:block}.service-detail-heading img{width:150px;margin-top:22px}.service-detail h3{font-size:26px;line-height:1.25;max-width:100%}.filter-bar{grid-template-columns:minmax(0,1fr);gap:16px}.filter-bar .field{min-width:0}.filter-bar>.button{justify-self:start;width:auto}.verification-panel{padding:24px}.newsletter-signup{grid-template-columns:minmax(0,1fr)}.newsletter .newsletter-signup .button{justify-self:start}.newsletter .privacy-summary{font-size:11px}.purpose-companies h3{font-size:23px}}

.article-author-box img{object-position:82% center}
