/* One centered reading axis on every page, in both languages. */
main,.site-footer{text-align:center}
main :is(h1,h2,h3){text-wrap:balance}
main :is(.clients-heading,.confidence-heading,.section-heading,.approach-layout,.specialist-layout,.profile-grid,.profile-intro,.specialism-hero-grid,.specialism-expert,.specialism-faq-layout,.news-page-intro),main .company-intro .container{grid-template-columns:minmax(0,1fr);justify-items:center;gap:24px}
main :is(.clients-heading,.confidence-heading,.section-heading)>*,main .company-intro .container>*{grid-column:1;grid-row:auto;justify-self:center}
main :is(.clients-heading,.confidence-heading,.section-heading) .eyebrow{padding-top:0}
main .clients-heading>p.client-proof{border-left:0;padding-left:0;max-width:54ch;justify-self:center}
main :is(.section-intro,.hero-lead,.hero-tagline,.company-lead,.company-summary,.profile-role,.profile-lead,.profile-prose,.specialist-copy,.specialist-intro,.specialist-promises,.service-list,.specialism-lead,.specialism-section-intro,.specialism-section h2,.news-feed-note,.news-empty){margin-inline:auto}
main :is(.company-summary,.profile-prose,.specialist-copy,.specialism-expert>div,.specialism-faq-layout>div,.profile-section-label){width:100%;max-width:720px}
main .company-intro .company-lead{max-width:32ch}
main :is(.section-intro,.approach-intro>p:not(.eyebrow),.specialist-copy>p:not(.eyebrow),.service-copy>p:not(.eyebrow),.profile-lead,.news-page-intro>p:not(.eyebrow)){max-width:62ch;margin-inline:auto}
main .approach-intro{position:static;max-width:760px}
main .approach-note{margin-inline:auto}
main .process-list{width:100%;max-width:760px}
main .process-list li{grid-template-columns:minmax(0,1fr);gap:12px}
main .process-list p{max-width:60ch;margin-inline:auto}
main :is(.specialist-portrait,.profile-photo){justify-self:center;margin-inline:auto}
main .specialist-portrait figcaption{justify-content:center}
main :is(.specialist-evidence,.specialism-evidence,.product-context,.specialism-breadcrumb ol,.profile-tools){justify-content:center}
main .profile-cert-list{width:100%;max-width:760px}
main .profile-cert-list li{grid-template-columns:minmax(0,1fr);justify-items:center;gap:16px}
main .profile-transcript{text-align:center}
main .meeting-steps{list-style-position:inside;padding-left:0}
main #quote-form{width:100%;max-width:760px}
main .specialism-hero-copy{width:100%;max-width:900px}
main .specialism-hero .specialism-visual{max-width:430px;justify-self:center}
main .specialism-contact .container{flex-direction:column;justify-content:center;gap:24px}
main .top-breaches-heading{flex-direction:column;align-items:center;gap:8px}
main .news-slide-link{grid-template-columns:minmax(0,1fr)}
main .news-identity{border-right:0;border-bottom:1px solid #e1e8f3;padding:24px}
main .news-brand-plaque{max-width:260px;min-height:120px}
main :is(.news-carousel-top,.news-slide-meta,.news-slide-footer,.news-carousel-controls,.news-page-controls){justify-content:center}
main .news-article-copy{align-items:center}
main .contact-layout{grid-template-columns:minmax(0,1fr);gap:28px}
main .contact-layout .contact-heading-row{justify-content:center}
main .contact-layout .contact-heading-row h2{max-width:none}
main .contact-layout .contact-bottom{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;width:100%;max-width:860px;margin-inline:auto;border-left:0;border-top:1px solid #b3c8ff4f;padding:24px 0 0;align-items:center}
main .contact-layout .contact-bottom>p{margin:0 auto}
main .contact-layout .contact-details>a{justify-items:center;grid-template-columns:minmax(0,1fr);position:relative;padding-inline:24px}
main .contact-details>a>span:last-child{position:absolute;right:0;top:50%;transform:translateY(-50%)}
.site-footer :is(.footer-top,.footer-bottom){justify-content:center;flex-wrap:wrap;gap:18px 30px}
.site-footer .footer-specialisms{justify-content:center}
/* Keep the title and 3D artwork on the same central axis. */
.hero-journey .hero.hero--hand .hero-inner{justify-content:flex-start}
.hero-journey .hero.hero--hand .hero-copy{display:block;max-width:760px;width:100%;margin:0 auto;text-align:center;flex:none}
.hero-journey .hero.hero--hand .hero-copy>*{margin-inline:auto}
.hero-journey .hero.hero--hand .hero-lead{max-width:56ch;margin-top:22px}
@media(min-width:761px){
 .hero-journey{--scene-height:1040px}
 .hero-journey .hero.hero--hand h1.hero-brand-heading{font-size:clamp(5rem,8vw,8rem)}
 .hero-journey .hero.hero--hand .hero-inner{padding-top:40px}
 .hero-journey .hero.hero--hand .hero-tagline{margin-top:18px}
 .hero-journey .hero.hero--panoramic>.hero-hand{top:52%;height:48%;min-height:0}
 .hero-journey .hero.hero--panoramic>.hero-hand img{object-position:center}
}
@media(max-width:760px){
 main .contact-layout .contact-bottom{grid-template-columns:minmax(0,1fr);gap:18px}
 main :is(.specialism-hero-grid,.specialist-layout,.profile-grid){gap:30px}
}

main .certification-logo{margin-inline:auto}
main .contact-layout .contact-details>a:hover>span:last-child{transform:translate(3px,calc(-50% - 3px))}

/* Keep rotating words flush with the preceding word within their reserved width. */
main .word-window{text-align:left}

/* Center the bounded text boxes themselves, including nested paragraphs. */
main p,main h1,main h2,main h3{margin-inline:auto}
main .profile-prose p,main .profile-section-label .quote-intro{margin-inline:auto}
main .profile-prose,main .profile-section-label{justify-self:center}

/* The logo and slogan are nested inside h1 and share the hero's center. */
.hero-journey .hero.hero--hand .hero-brand-heading{width:100%;text-align:center}
.hero-journey .hero.hero--hand .hero-brand-name,
.hero-journey .hero.hero--hand .hero-brand-promise{margin-inline:auto;text-align:center;transform-origin:center}

@media(min-width:761px){
 .hero-journey .hero.hero--panoramic>.hero-hand img{object-fit:contain;mask-image:linear-gradient(to right,#000 69%,transparent 75%);-webkit-mask-image:linear-gradient(to right,#000 69%,transparent 75%)}
}

/* Text-only opening: no reserved scene height or scroll stage. */
.hero-journey.hero-journey--text{min-height:0}
.hero-journey.hero-journey--text>.hero{position:relative;top:auto;min-height:0}
.hero-journey.hero-journey--text .hero.hero--hand .hero-inner{height:auto;min-height:0;padding-block:clamp(40px,5vw,72px) clamp(48px,6vw,88px)}

/* Centered intro grows to the same logo size as the homepage. */
.intro-active .brand-intro{place-items:center;background:radial-gradient(ellipse at center,#eaf0ff,#fff 70%)}
.intro-active .intro-center{justify-self:center;align-self:center;margin:0;padding:24px;text-align:center;max-width:100%}
.intro-active .intro-logo{justify-content:center;font-size:clamp(5rem,8vw,8rem);letter-spacing:-.045em;gap:0;line-height:1.2;animation:intro-logo-depth 1s cubic-bezier(.22,1,.36,1) both;transform-origin:center}
.intro-active .intro-logo>span:nth-child(3){margin-inline:.02em}
.intro-active .intro-caption{margin-inline:auto;text-align:center}
@keyframes intro-logo-depth{0%{opacity:0;transform:scale(.3);filter:blur(4px)}80%,100%{opacity:1;transform:scale(1);filter:blur(0)}}
@media(max-width:760px){.intro-active .intro-logo{font-size:clamp(4.6rem,18vw,6.5rem)}}
@media(prefers-reduced-motion:reduce){.intro-active .intro-logo{animation:none;transform:none;filter:none}}
