.erSkipLink { position:absolute; top:-100px; left:1rem; z-index:10000; padding:1rem 1.5rem; background:#fff; border:2px solid var(--red); border-radius:12px; }
.erSkipLink:focus { top:1rem; }
.topbar { position:sticky; top:0; transition:transform .2s ease; }
.topbar.erHeaderHidden { transform:translateY(-100%); }
.topbar:focus-within { transform:translateY(0); }
@media (prefers-reduced-motion:reduce) { .topbar { transition:none; } }
.admin-bar .topbar { top:32px; }
html { scroll-padding-top:calc(var(--header-h) + 1rem); }
.erGalleryViewport { display:flex; height:100%; width:100%; overflow-x:auto; overflow-y:hidden; scroll-snap-type:x mandatory; scrollbar-width:none; overscroll-behavior-x:contain; overflow-anchor:none; border-radius:inherit; }
.erGalleryViewport::-webkit-scrollbar { display:none; }
.erGalleryViewport:focus-visible { outline:none; }
.erGallerySlide { flex:0 0 100%; height:100%; min-width:0; margin:0; scroll-snap-align:start; scroll-snap-stop:always; }
.erGallerySlide img { width:100%; height:100%; object-fit:cover; }
.erGalleryControls { position:absolute; left:50%; bottom:1rem; transform:translateX(-50%); display:flex; align-items:center; }
.erGalleryControls[hidden] { display:none; }
.erGalleryControls button { display:inline-flex; align-items:center; justify-content:center; width:26px; height:44px; padding:0; border:0; border-radius:50%; background:transparent; cursor:pointer; }
.erGalleryDot::before { content:""; width:10px; height:10px; border:2px solid white; border-radius:50%; background:rgba(0,0,0,.2); box-shadow:0 1px 5px rgba(0,0,0,.45); transition:background .2s ease; }
.erGalleryDot[aria-current="true"]::before,.erGalleryDot:hover::before { background:white; }
.erGalleryControls button:focus-visible { outline:none; }
.erGalleryDot:focus-visible::before,
.erGalleryViewport:focus-visible ~ .erGalleryControls .erGalleryDot[aria-current="true"]::before { box-shadow:0 0 0 3px rgba(0,0,0,.65),0 0 0 5px white,0 0 0 6px rgba(0,0,0,.65); }
@media (forced-colors:active) {
    .erGalleryDot:focus-visible::before,
    .erGalleryViewport:focus-visible ~ .erGalleryControls .erGalleryDot[aria-current="true"]::before { outline:2px solid Highlight; outline-offset:3px; }
}
@media (prefers-reduced-motion:reduce) { .erGalleryDot::before { transition:none; } }
.erContactOffice { padding:6rem 6vw 0; }
.erContactOfficePhoto { margin:0; }
.erContactOfficePhoto img { width:100%; height:auto; border-radius:clamp(34px,5vw,78px); }
.erServiceContacts { padding:0 6vw 6rem; }
.erContactPeople { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:3vw; }
.erContactCard { display:grid; grid-template-columns:.85fr 1fr; min-width:0; background:white; border-radius:38px; overflow:hidden; }
.erContactCard>img { width:100%; height:100%; min-height:300px; object-fit:cover; object-position:50% 30%; }
.erContactCard>div { min-width:0; align-self:center; padding:1.7rem; }
.erContactCard h2 { margin:0 0 1rem; font-size:clamp(1.9rem,2.6vw,3rem); line-height:1.05; }
.erContactCard .erContactRole { font-size:.83rem; line-height:1.55; margin-bottom:1.8rem; }
.erContactLinks { display:flex; flex-direction:column; align-items:flex-start; gap:.65rem; font-size:.85rem; line-height:1.5; overflow-wrap:anywhere; }
.erContactLinks a { text-decoration:underline; text-underline-offset:3px; }
.erContactLinks a:hover { color:var(--red); }
.erContactCard { align-content:start; }
.erContactQuote { grid-column:1/-1; margin:0; padding:1.5rem 1.7rem 1.8rem; border-top:1px solid var(--soft); }
.profileGrid blockquote,.erContactQuote { color:var(--red); font-size:1.25rem; line-height:1.45; }
.erOrganisationGroups { display:grid; gap:3rem; min-width:0; }
.erOrganisationGroup h3 { margin:0 0 1.25rem; color:var(--red); font-size:.78rem; font-weight:800; line-height:1.4; letter-spacing:.12em; text-transform:uppercase; }
.erOrganisationGroup a { display:grid; grid-template-columns:140px minmax(0,1fr) 1em; gap:1.25rem; min-height:116px; padding:1rem 0; }
.erOrganisationLogo { display:flex; width:140px; height:80px; padding:.65rem; align-items:center; justify-content:center; background:var(--white); border-radius:12px; }
.erOrganisationLogo img { width:100%; height:100%; object-fit:contain; }
.erOrganisationLogoDark { background:var(--ink); }
.erOrganisationName { min-width:0; line-height:1.45; hyphens:auto; overflow-wrap:break-word; }
@media (max-width:620px) {
    .erOrganisationGroup a { grid-template-columns:92px minmax(0,1fr) 1em; gap:.75rem; min-height:96px; font-size:.95rem; }
    .erOrganisationLogo { width:92px; height:64px; padding:.4rem; }
}
@media (max-width:359px) {
    .erOrganisationGroup a { grid-template-columns:72px minmax(0,1fr) 1em; gap:.5rem; font-size:.85rem; }
    .erOrganisationLogo { width:72px; height:60px; }
}
.serviceGuide.erGuideTextOnly { grid-template-columns:minmax(0,1fr); }
.erGuideTextOnly .guideContent { width:100%; max-width:1050px; margin-inline:auto; }
.erServicePhotos { padding:0 6vw 6rem; }
.erServicePhotos .erPhotoGallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; gap:2.5vw; }
.erPhotoGallery figure { margin:0; min-width:0; break-inside:avoid; }
.erPhotoGallery img { width:100%; height:auto; border-radius:38px; }
.erReferenceGallery { padding:0 5vw 8rem; }
.erReferenceGallery .erPhotoGallery { columns:3; column-gap:2vw; }
.erReferenceGallery figure { margin-bottom:2vw; }
@media (max-width:1100px) {
    .erContactCard { grid-template-columns:minmax(0,1fr); }
    .erContactCard>img { height:430px; min-height:0; }
}
@media (max-width:782px) { .admin-bar .topbar { top:46px; } }
@media (max-width:620px) {
    .erContactPeople,.erServicePhotos .erPhotoGallery { grid-template-columns:minmax(0,1fr); gap:2rem; }
    .erContactCard>img { height:auto; aspect-ratio:3/4; }
    .erContactCard h2 { font-size:2.2rem; }
    .erServiceContacts,.erServicePhotos { padding-bottom:4rem; }
    .erReferenceGallery .erPhotoGallery { columns:1; }
    .erReferenceGallery figure { margin-bottom:2rem; }
}
.screen-reader-text { border:0; clip-path:inset(50%); width:1px; height:1px; margin:-1px; overflow:hidden; padding:0; position:absolute; word-wrap:normal!important; }
.footerMeta nav { display:flex; flex-wrap:wrap; gap:1rem 2rem; justify-content:flex-end; }
.footerCredits { grid-column:1/-1; display:flex; flex-wrap:wrap; justify-content:space-between; gap:1rem 2rem; padding-top:2rem; border-top:1px solid rgba(255,255,255,.3); font-size:.72rem; }
.footerCredits a { text-decoration:underline; text-underline-offset:3px; }
.erArrow { display:inline-block; width:1em; height:1em; vertical-align:-.125em; flex:none; }
.erArrowVertical { width:.5em; }
.textLink .erArrow,.pathCards b .erArrow { margin-inline-end:.06em; }
.erNewsFeed { padding:0 6vw 6rem; background:var(--paper); }
.erNewsGrid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2rem; }
.erNewsCard { background:white; border-radius:38px; overflow:hidden; }
.erNewsImage { display:block; aspect-ratio:4/3; overflow:hidden; }
.erNewsImage img { width:100%; height:100%; object-fit:cover; transition:transform .3s ease; }
.erNewsImage:hover img { transform:scale(1.025); }
.erNewsContent { padding:2rem; }
.erNewsContent .eyebrow { margin-bottom:1.4rem; }
.erNewsContent h3 { margin:0 0 1.4rem; font-size:clamp(2rem,2.6vw,3.2rem); line-height:1.05; font-weight:500; }
.erNewsContent>p:not(.eyebrow) { font-size:.95rem; line-height:1.65; }
.erNewsContent h3 a:hover { color:var(--red); }
.erPagination { margin:3rem 0 0; }
.erPagination ul { display:flex; flex-wrap:wrap; list-style:none; gap:.75rem; justify-content:center; }
.erPagination a,.erPagination span { display:block; border:1px solid var(--ink); border-radius:24px; padding:.7rem 1rem; }
.erPagination .current,.erPagination a:hover { background:var(--ink); color:white; }
.erArticleHero { min-height:auto; padding:clamp(3.5rem,5vw,5rem) 6vw clamp(3.5rem,5vw,5rem); }
.erArticleHero .eyebrow { margin-bottom:1.5rem; }
.erArticleHero h1 { max-width:1300px; font-size:clamp(2.8rem,3.5vw,4.2rem); line-height:1; overflow-wrap:break-word; }
.erArticle .techPhoto { width:88%; height:clamp(340px,38vw,560px); margin:0 auto clamp(3.5rem,6vw,6rem); }
.erArticle .techPhoto img { width:100%; height:100%; object-fit:cover; }
.erArticleBody { max-width:820px; margin:0 auto; padding:0 2rem 5rem; font-size:1.08rem; line-height:1.75; }
.erArticleBody h2,.erArticleBody h3 { margin:3rem 0 1.5rem; line-height:1.1; font-weight:500; }
.erArticleBody h2 { font-size:clamp(2.5rem,4vw,4.3rem); }
.erArticleBody h3 { font-size:clamp(2rem,3vw,3rem); }
.erArticleBody p,.erArticleBody ul,.erArticleBody ol { margin:0 0 1.6rem; }
.erArticleBody ul,.erArticleBody ol { padding-left:1.5rem; list-style:revert; }
.erArticleBody a { text-decoration:underline; text-underline-offset:4px; }
.erArticleBody a:hover { color:var(--red); }
.erArticleBody img { max-width:100%; height:auto; border-radius:24px; }
.erArticleBody blockquote { margin:2rem 0; padding:1rem 0 1rem 2rem; border-left:3px solid var(--red); }
.erArticleBack { padding:0 6vw 6rem; }
.erArticleBack .nav-links { display:flex; justify-content:space-between; flex-wrap:wrap; gap:2rem; margin-top:2rem; }
@media (max-width:900px) {
    .erNewsGrid { grid-template-columns:1fr 1fr; }
    .footerMeta nav { justify-content:flex-start; }
}
@media (max-width:620px) {
    .hero,.pathSection,.homeCharacter,.guideTeaser,.homeFirm,.homeNews,.serviceOverview,.splitStory,.legacySection,.firmValues,.memberships,.serviceTips,.education,.referenceIntro,.newsIntro,.newsAdmin,.contactGrid,.contactPreparation,.serviceGuide,.profileGrid article,.contactHero,.contactOptions,.serviceChoice,.firmRouteGrid,.firmScope,.guidePeople,.futurePeople,.referenceStrip,.referenceGrid { grid-template-columns:minmax(0,1fr); }
    .hero { overflow:visible; }
    .hero>div,section>*,.profileGrid article>*,.firmValueList article>*,.serviceOverviewList article>*,.guideContent li>* { min-width:0; }
    h3 { overflow-wrap:anywhere; }
    .proofLink>div { max-width:100%; }
    .mobileMenu nav { width:min(280px,calc(100vw - 120px)); }
}
@media (max-width:600px) {
    .erNewsGrid { grid-template-columns:1fr; }
    .erNewsFeed { padding-bottom:4rem; }
    .erArticleHero { min-height:auto; padding:3.75rem 6vw 3.5rem; }
    .erArticleHero h1 { font-size:clamp(2.3rem,10vw,3.4rem); line-height:1; }
    .erArticle .techPhoto { width:92%; height:auto; aspect-ratio:4/3; margin-bottom:3.5rem; border-radius:38px; }
    .erArticleBody { padding:0 6vw 4rem; font-size:1.05rem; }
}
@media (max-width:359px) {
    .topbar { gap:.5rem; }
    .brand { width:124px; }
    .headerActions { gap:.5rem; }
}
@media (prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    *,*::before,*::after { transition:none!important; animation:none!important; }
}

/* Large headings wrap at spaces; their font size fits the longest actual word. */
h1,h2,.erArticleHero h1 { overflow-wrap:normal; word-break:normal; hyphens:none; text-wrap:balance; }
.heroCopy,section>div,section>article { min-width:0; }
