/* Final responsive and accessibility refinements, shared by all routes. */
:root{--body-font:Onest,system-ui,sans-serif;--display-font:Unbounded,system-ui,sans-serif}
img{max-width:100%}main{min-width:0}button,a,input,textarea,summary{touch-action:manipulation}
input,textarea,select{font-size:16px!important;max-width:100%}textarea{resize:vertical}
:where(.wrap,.service-hero-grid,.builds-hero-grid,.industry-shell,.job-detail-grid,.journal-article-layout,.contact-grid,.reviews-layout)>*{min-width:0}
.button{min-height:44px;white-space:normal;text-align:center;line-height:1.45}
.eyebrow,.industry-card__foot,.team-card__body p,.team-card__body small,.team-card__body a,.footer-grid nav,.footer-contact{font-size:14px}
.team-card__body{padding:18px}.team-card__body h3{font-size:17px}.team-card__badge{font-size:12px!important}
.team-card__body a{display:inline-flex;align-items:center;min-height:44px}
.model-card dl>div{grid-template-columns:minmax(0,0.7fr) minmax(0,1fr);gap:16px}.model-tabs button{overflow-wrap:anywhere;padding:10px 8px;font-size:14px}
.industry-shell .four-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.industry-shell .models .wrap{width:100%}
.industry-shell .model-grid{grid-template-columns:1fr}.industry-shell .model-tabs{display:none}.industry-shell .model-card[hidden]{display:flex!important}
.industry-shell .model-card{padding:24px}.industry-shell .section{scroll-margin-top:90px}
.form-delivery-note{font-size:14px;line-height:1.6;color:#665344;margin:12px 0 20px}.lead-form .form-status{overflow-wrap:anywhere}
.lead-form .consent input,.job-form-consent input{width:20px;height:20px;flex-shrink:0;margin-top:3px}
.lead-form .consent{align-items:flex-start}.lead-form .consent span{font-size:14px;line-height:1.6}
.form-submit{width:100%}.form-status a{text-decoration:underline;display:inline-block;min-height:32px}
.service-faq,.journal-prose section,.job-application{scroll-margin-top:90px}
.review-cards{scrollbar-width:none!important;-ms-overflow-style:none}.review-cards::-webkit-scrollbar{display:none;width:0;height:0}.review-cards:focus-visible{outline:2px solid #8b5e3c;outline-offset:4px}
.review-controls button,.growth-pagination button{min-width:44px;min-height:44px}.review-read-more{min-height:44px}
.mobile-menu .navdrop__panel a,.mobile-menu__bottom a{min-height:44px;display:flex;align-items:center}
.mobile-menu .navdrop>summary{min-height:44px}.mobile-menu__bottom .lang a{display:inline-flex}
.mobile-menu{overscroll-behavior:contain}.bottom-bar a{font-size:14px;line-height:1.3;text-align:center;padding-inline:8px}
.site-footer{padding-bottom:calc(88px + env(safe-area-inset-bottom))}.footer-bottom{overflow-wrap:anywhere}
.site-footer a:focus-visible{outline-offset:3px}.site-header .brand{flex-shrink:0}
.growth-panel img{display:block}.growth-copy{min-width:0}.job-card__bottom{flex-wrap:wrap;gap:14px}
.journal-prose{max-width:720px;min-width:0}.journal-prose a,.job-description a{overflow-wrap:anywhere}
@media(min-width:1200px){.site-header__row{gap:10px}.site-header .desktop-nav{gap:12px}.site-header .desktop-nav a,.site-header .desktop-nav summary{font-size:14px}.site-header .header-actions{gap:8px}.site-footer{padding-bottom:25px}}
@media(max-width:1199px){.site-header .desktop-nav,.site-header .header-actions{display:none!important}.site-header .mobile-controls{display:flex!important}.site-header{height:72px}.site-header.scrolled{height:64px}.site-header .mobile-menu{display:none!important;top:72px;height:calc(100dvh - 72px)}.site-header.scrolled .mobile-menu{top:64px;height:calc(100dvh - 64px)}.site-header.menu-open .mobile-menu{display:flex!important}.bottom-bar{display:flex!important}.hero-actions{flex-wrap:wrap}.site-header .brand{max-width:220px}}
@media(max-width:799px){.service-task-grid,.builds-scope-grid{grid-template-columns:1fr}.service-task{padding:24px}.service-task-mark{margin-bottom:16px}.job-heading h1,.journal-article-heading h1{font-size:clamp(27px,5.5vw,40px);line-height:1.3}.journal-toc{position:static;order:-1}.hero-actions .button{max-width:100%}}
@media(max-width:600px){.industry-shell .four-grid{grid-template-columns:1fr}.model-card dl>div{grid-template-columns:1fr;gap:5px}.model-card dt{font-size:13px}.model-card dd{font-size:15px}.model-top{min-height:0}.model-card{padding:22px}.model-top h3{font-size:20px;line-height:1.35}.review-feature__mark{font-size:80px}.service-hero,.builds-hero{padding-top:26px}.service-hero h1,.builds-hero-copy h1{font-size:30px}.service-section,.builds-scope-section,.builds-maintenance{padding-block:42px}.growth-years button{min-width:48px}.growth-years{overflow-x:auto}.job-recruiter{padding:24px}.contact-page-grid{border-radius:18px}.job-application{padding:20px}.job-application .button{width:100%}}
@media(max-width:479px){.team-grid--people-only .team-people{grid-template-columns:1fr}.team-card .person-photo{aspect-ratio:1/1}.team-card__body{padding:20px}.team-card__body h3{font-size:19px}.team-card__body p,.team-card__body small{font-size:15px}.hero-actions{display:grid;grid-template-columns:1fr;width:100%}.hero-actions .button{width:100%}.hero-alt__content h1{font-size:30px;line-height:1.2}.hero-alt__content>p:not(.eyebrow){font-size:16px}.service-actions{gap:12px}.service-actions .button{width:100%}.usp-stats{column-gap:18px}.growth-copy{padding:22px}.growth-copy h2{font-size:23px;line-height:1.35}.trust-pause{width:40px;height:44px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.trust-logos{animation:none!important}.trust-pause{display:none}.reveal{opacity:1!important;transform:none!important}}
/* Restore the original uninterrupted client-logo strip. */
.trust-marquee:focus-within .trust-logos{animation-play-state:paused}
/* Team: swipeable portrait cards on phones, existing grid on larger screens. */
@media(max-width:699px){
 .team-grid--people-only .team-people{display:flex;gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:0;overscroll-behavior-x:contain;padding:2px 12px 16px 0;scrollbar-width:thin;align-items:stretch}
 .team-grid--people-only .team-people>.team-card{flex:0 0 min(82vw,330px);min-width:0;scroll-snap-align:start;display:flex;flex-direction:column;transform:none!important;opacity:1!important}
 .team-grid--people-only .team-card .person-photo{width:100%;aspect-ratio:1/1;flex-shrink:0}
 .team-grid--people-only .team-card__body{display:flex;flex:1;flex-direction:column;padding:20px;gap:8px}
 .team-grid--people-only .team-card__body h3{font-size:19px}
 .team-grid--people-only .team-card__body p{font-size:15px;min-height:48px}
 .team-grid--people-only .team-card__body small{font-size:14px}
 .team-grid--people-only .team-card__body a{font-size:14px;margin-top:auto}
 .team-grid--people-only .team-card__badge{align-self:flex-start}
 .team-people:focus-visible{outline:2px solid #8b5e3c;outline-offset:3px}
}

/* CV picker: local selection, ready for a later delivery integration. */
.job-cv{padding:18px;border:1px dashed #bda28a;border-radius:12px;background:#faf6f1;min-width:0}
.job-cv>label{font-weight:600;display:block}
.job-cv p{font-size:14px;line-height:1.5;margin:8px 0;color:#685545}
.job-cv input[type=file]{width:100%;max-width:100%;min-width:0;padding:8px 0;border:0;background:transparent;font-size:14px;color:#46352a}
.job-cv input::file-selector-button{padding:12px 16px;margin-right:12px;border:1px solid #8b5e3c;border-radius:8px;background:#fff;color:#5f402c;font:inherit;cursor:pointer}
.job-cv input:focus-visible{outline:2px solid #8b5e3c;outline-offset:3px}
.job-cv-selection{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center}
.job-cv-selection span{font-size:14px;overflow-wrap:anywhere;flex:1;min-width:0}
.job-cv-remove{min-height:44px;padding:8px 0;background:none;border:0;text-decoration:underline;color:#5f402c;cursor:pointer;font:inherit;font-size:14px}
.job-cv-remove[hidden]{display:none}
.job-cv input[aria-invalid=true]{outline:2px solid #a53221}
