:root .hero-bg {
    background-image: linear-gradient(90deg, rgba(5, 20, 36, .98) 0%, rgba(5, 20, 36, .88) 48%, rgba(5, 20, 36, .28)), url('../legacy/assets/original/services/service-01.jpg') !important;
}

/* Accessible, consistent typography across desktop, tablet and mobile. */
html { font-size: 16px; -webkit-text-size-adjust: 100%; }
body { font-size: 1rem; line-height: 1.7; }
.site-header { min-height: 96px; height: auto; }
.brand { gap: 15px; }
.brand img { width: 58px; height: 58px; }
:root .brand-wordmark b { font-size: 1.42rem; line-height: 1.1; letter-spacing: .025em; }
:root .brand-wordmark small { font-size: .78rem; line-height: 1.4; letter-spacing: .075em; margin-top: 4px; }
.site-header nav > a { font-size: 1rem; min-height: 46px; display: inline-flex; align-items: center; }
.nav-cta { padding: 13px 20px; }
.kicker, .section-label, .hero-proof span, .case-card small, .solution-no,
.service-content article > span, .faq > span, .client-copy > span { font-size: .8rem; line-height: 1.5; letter-spacing: .1em; }
.hero-content h1 { font-size: clamp(2.75rem, 5vw, 4.4rem); line-height: 1.18; max-width: 18ch; }
.hero-content > p { font-size: clamp(1.05rem, 1.35vw, 1.2rem); line-height: 1.75; max-width: 64ch; }
.btn { min-height: 50px; min-width: 180px; padding: 13px 22px; font-size: 1rem; display: inline-flex; align-items: center; justify-content: center; gap: 18px; }
.hero-proof strong { font-size: 1.05rem; line-height: 1.55; }
.trust-strip > span, .trust-strip b { font-size: .9rem; }
.intro h2, .solution-head h2, .case-head h2, .process-head h2, .client-copy h2, .cta-v2 h2 {
    font-size: clamp(2.15rem, 4vw, 3.5rem); line-height: 1.25;
}
.intro-copy > div p, .solution-head p, .process-head p, .client-copy p,
.case-card p, .solution-grid p, .process-steps p, .prose, .service-content li,
.faq details p, .quote-copy p, .site-footer p { font-size: 1rem; line-height: 1.75; }
.solution-grid h3, .process-steps h3 { font-size: 1.2rem; }
.case-card h3 { font-size: 1.45rem; line-height: 1.4; }
.text-link, .solution-grid a, .service-page a { font-size: .95rem; }
.faq summary { font-size: 1.1rem; line-height: 1.55; }
.site-footer, .site-footer a, .site-footer span { font-size: .95rem; line-height: 1.65; }
input, select, textarea, button { font-size: 1rem !important; min-height: 46px; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible { outline: 3px solid #59b8e9; outline-offset: 3px; }
.logo-wall { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.logo-wall > div { height: 150px; padding: 10px; background: #fff; overflow: hidden; }
.logo-wall > div:has(img[src$="/11.png"]) { display: none; }
.logo-wall > div > a { width: 100%; height: 100%; display: grid; place-items: center; }
.logo-wall img { width: auto; max-width: 96%; max-height: 118px; object-fit: contain; filter: none; opacity: 1; transform: scale(1.1); transition: transform .25s ease, filter .25s ease; }
.logo-wall > div:hover img { transform: scale(1.2); }
.footer-address { display: block; color: inherit; }

@media (max-width: 1024px) {
    .site-header { padding: 14px 24px; gap: 20px; }
    .site-header nav { gap: 18px; }
    .hero-v2 { min-height: 620px; height: auto; padding-top: 80px; padding-bottom: 90px; }
    .hero-content h1 { font-size: clamp(2.55rem, 6vw, 3.8rem); }
    .trust-strip { align-items: flex-start; }
    .trust-strip > div { flex-wrap: wrap; gap: 12px 22px; }
    .logo-wall { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
    .site-header { padding: 12px 18px; align-items: center; }
    .brand img { width: 48px; height: 48px; }
    :root .brand-wordmark b { font-size: 1.18rem; }
    .brand small { display: none; }
    .site-header nav { gap: 12px; margin-left: auto; }
    .site-header nav > a { font-size: .95rem; }
    .site-header nav > a { min-width: 48px; justify-content: center; padding-inline: 6px; }
    .site-header nav > a:nth-child(3), .site-header nav > a:nth-child(4), .site-header .nav-cta { display: none; }
    .hero-v2 { min-height: 590px; padding: 65px 22px 100px; align-items: flex-start; }
    .hero-bg { background-position: 64% center; }
    .hero-content h1 { font-size: clamp(2.25rem, 10vw, 3rem); margin: 18px 0; }
    .hero-content > p { font-size: 1.05rem; line-height: 1.7; }
    .hero-actions { flex-direction: column; align-items: stretch; }
    .hero-actions .btn { width: 100%; }
    .hero-proof { left: 22px; right: auto; bottom: 30px; }
    .trust-strip { display: none; }
    .logo-wall { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .logo-wall > div { height: 125px; padding: 10px; }
    .logo-wall img { max-height: 96px; transform: scale(1.05); }
    .logo-wall > div:hover img { transform: scale(1.05); }
    .section-v2 { padding: 72px 22px; }
    .intro h2, .solution-head h2, .case-head h2, .process-head h2, .client-copy h2, .cta-v2 h2 { font-size: 2.15rem; }
    .case-card h3 { font-size: 1.3rem; }
    .mobile-contact a { min-height: 50px; display: grid; place-items: center; font-size: 1rem; }
    .site-footer > div:not(.footer-brand):not(.footer-bottom) > a { min-height: 44px; display: flex; align-items: center; }
}

@media (max-width: 420px) {
    :root .brand-wordmark b { font-size: 1.05rem; }
    .site-header nav { gap: 9px; }
    .site-header nav > a { font-size: .9rem; }
    .hero-content h1 { font-size: 2.15rem; }
    .kicker { font-size: .75rem; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
