/* Accessibility and responsive release fixes. Loaded after the original theme. */
[hidden]{display:none!important}*,*::before,*::after{box-sizing:border-box}
img{max-width:100%;height:auto}input,select,textarea{max-width:100%;font-size:16px}
:focus-visible{outline:3px solid #53821e;outline-offset:5px}
.skip-link:focus{z-index:10000}.header{z-index:1000}.header-inner{position:relative}
.header a,.menu-toggle{min-height:44px}.menu-toggle{min-width:44px}
.header nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}
.container>*{min-width:0}.contact-email{overflow-wrap:anywhere}
p{line-height:1.75}.eyebrow,.challenge-title small,.editorial-note,.record-gap{font-size:11px}
.challenge-content p,.leadership-section p,.enquiry-card>p,.footer-main p,.footer-main>div>a:not(.footer-wordmark){font-size:15px}
.footer-bottom{font-size:12px}.challenge-title small,.editorial-note,.challenge-cost{color:#526943}.button,.premium-button{min-height:48px}
#navigation{max-height:calc(100dvh - 96px);overflow-y:auto}
@media(max-width:1000px) and (min-width:801px){.brand>span{display:none}.header nav{gap:16px}.container{width:calc(100% - 48px)}}
@media(max-width:800px){.header-inner{height:80px}.header #navigation{top:100%;left:calc((100vw - 100%)/-2);width:100vw;padding:20px 24px;gap:4px}.header nav>a{padding:14px 12px}.container{width:calc(100% - 40px)}.challenge-intro{position:static}.challenge-section{gap:32px}.challenge-content{padding-left:0}.footer-bottom{gap:16px;flex-wrap:wrap}.draft-actions{flex-wrap:wrap}.leadership-art>span,.leadership-disciplines small{font-size:11px}}
@media(max-width:500px){.container{width:calc(100% - 32px)}.brand>span{display:none}.challenge-content{grid-template-columns:1fr}.challenge summary{gap:12px}.challenge-title strong{font-size:24px}.record-visual{max-width:100%}.problem-ticker>.container{flex-wrap:wrap;gap:12px;font-size:11px}.problem-ticker i{display:none}.form-grid{grid-template-columns:1fr}.form-wide{grid-column:auto}.enquiry-card{padding:24px 18px;box-shadow:none}.draft-actions>*{width:100%;justify-content:center}.page-hero h1{font-size:clamp(34px,10vw,48px)}.footer-bottom{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.motion-target{opacity:1!important;transform:none!important}}

/* Second pass: unified controls and uncropped original hero artwork. */
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:24px;height:88px}
.brand{display:flex;align-items:center;flex-shrink:0}.brand img{width:176px;height:auto}.brand>span{line-height:1.5}
.header #navigation{align-items:center;gap:24px;overflow:visible;max-height:none}
.header #navigation>a{display:inline-flex;align-items:center;justify-content:center;min-height:48px;margin:0;line-height:1.2;padding:12px 0;font-size:14px;white-space:nowrap}
.header #navigation>.nav-contact{padding:12px 22px;gap:16px}
.button,.premium-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:48px;padding:13px 22px;margin-block:0;line-height:1.4;font-size:14px;font-weight:700;border-radius:28px;white-space:normal;text-align:center;vertical-align:middle;max-width:100%}
.button .icon,.premium-button .icon{flex-shrink:0;width:20px;height:20px}.premium-button .button-arrow{width:28px;height:28px;flex-shrink:0}
.product-hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.product-hero-actions>*{margin:0}
.page-hero{padding-block:64px 48px}.page-hero h1{font-size:clamp(36px,4.8vw,64px);line-height:1.1;letter-spacing:-.045em;max-width:19ch;text-wrap:balance;margin:20px 0 24px}.page-hero p{font-size:16px;line-height:1.75;max-width:65ch}.premium-button{grid-column:2;justify-self:start}
@media(max-width:1000px){.brand>span{display:none}.header #navigation{gap:18px}}
@media(max-width:800px){.header-inner{height:76px}.header #navigation{align-items:stretch;gap:4px;max-height:calc(100dvh - 76px);overflow-y:auto}.header #navigation>a{justify-content:flex-start;padding:14px 16px}.header #navigation>.nav-contact{justify-content:space-between;padding:14px 16px;margin-top:8px}.page-hero{padding-block:40px 32px}.page-hero h1{font-size:clamp(34px,6vw,48px)}.brand img{width:150px}}
@media(max-width:500px){.page-hero h1{font-size:36px;overflow-wrap:normal}.product-hero-actions{align-items:stretch}.product-hero-actions .button{width:100%}.button,.premium-button{min-height:48px;font-size:14px;padding:13px 20px}.next-link{font-size:16px}.header-inner{gap:16px}}

.engineering-hero-art .engineering-art,.upcoming .engineering-art{min-height:0;height:auto;aspect-ratio:16/9;background:#1d2922 url('hero.webp') center/contain no-repeat}.page-solutions .page-hero::before,.page-engineering-intelligence .page-hero::before{background:#1d2922}.engineering-hero-art{align-self:center;width:100%}.engineering-float-one,.engineering-float-two{font-size:10px}.text-link{display:inline-flex;align-items:center;gap:10px;min-height:44px;font-size:14px;line-height:1.5}.text-link .icon{flex-shrink:0}
/* Content never depends on scroll observers to become readable. */
.motion-target{opacity:1;transform:none}

/* Preserve the original layered hero; fit the complete artwork without cropping. */
.premium-hero{display:block;min-height:740px}
.premium-hero-inner{min-height:740px}
.hero-scene img{object-fit:contain;object-position:center;opacity:.92}
.premium-hero .hero-copy{display:block}
.premium-hero .premium-button{margin-top:29px;padding:8px 8px 8px 24px;gap:31px;font-size:12px}
.premium-hero .button-arrow{width:43px;height:43px}
@media(min-width:1101px){.premium-hero,.premium-hero-inner{min-height:max(740px,56.25vw)}}
@media(max-width:800px){
.premium-hero,.premium-hero-inner{min-height:760px}
.premium-hero-inner{padding:44px 0 100px;align-items:flex-start}
.hero-scene img{object-position:center bottom;opacity:.92}
.scene-shade{background:linear-gradient(180deg,#19251e 0%,#19251ef2 42%,#19251e44 70%,#19251e22 100%)}
.premium-hero h1{font-size:clamp(44px,9.5vw,76px)}
.hero-dossier{display:none}.hero-bottom{bottom:20px}
}
@media(max-width:500px){
.premium-hero,.premium-hero-inner{min-height:760px}
.premium-hero h1{font-size:clamp(42px,12.8vw,63px);margin:26px 0 25px}
.premium-hero .hero-copy>p{font-size:14px;max-width:320px}
.hero-bottom>span{font-size:8px}.hero-bottom>a{font-size:8px}
}
