/* Shared enterprise presentation. Loaded after page-specific styles. */
:root {
 --ff-heading: 'Manrope', 'Segoe UI', Arial, sans-serif;
 --ff-brand: 'Manrope', 'Segoe UI', Arial, sans-serif;
 --clr-primary: #173b61; --clr-primary-dk: #102e4e;
 --clr-heading: #173b61; --clr-text: #24384b; --clr-text-muted: #526579;
 --clr-bg: #fff; --clr-bg-alt: #fff; --clr-border: #dce6ee;
 --clr-cta: #c54c13; --clr-cta-dk: #a43b0b;
 --shadow-md: 0 8px 28px rgba(23,59,97,.06);
}
body { background: #fff; }
h1,h2,h3,h4,h5,h6,.section-title,.footer-col-heading,.cs-h1 {
 font-family: var(--ff-heading) !important; font-weight: 700; letter-spacing: -.035em;
}
h1 { font-size: clamp(2.15rem,4.5vw,3.8rem); line-height: 1.15; }
h2,.section-header h2,.bfp-intro h2 { font-size: clamp(1.8rem,3vw,2.65rem); line-height: 1.22; }
h3 { font-size: clamp(1.1rem,1.5vw,1.3rem); line-height: 1.4; letter-spacing: -.02em; }
.section-header { max-width: 800px; margin-inline: auto; margin-bottom: 3rem; }
.section-header p { max-width: 680px; margin-inline: auto; }
.site-header { background: rgba(255,255,255,.98); box-shadow: 0 1px 0 #dce6ee; }
.nav-link { font-weight: 600; }
.hero,.page-hero,.cta-band,.section-dark {
 background: linear-gradient(115deg,#eaf5ff 0%,#f7fbff 48%,#fff1e5 100%) !important;
 color: var(--clr-text) !important;
}
.hero,.page-hero { border-bottom: 1px solid var(--clr-border); }
.page-hero { padding: clamp(3rem,6vw,5.5rem) 0; }
.hero::before,.page-hero::after,.cta-band::before { opacity: .12; }
.hero-bg-svg { opacity: .12; }
.hero-bg-glow { opacity: .12; }
.hero h1,.hero .cs-h1-white,.hero .cs-h1-gradient,.hero .cs-typer,
.page-hero :is(h1,h2,h3,h4),.cta-band :is(h2,h3),.section-dark :is(h2,h3,h4) {
 color: var(--clr-primary) !important; -webkit-text-fill-color: var(--clr-primary) !important;
 background: none; background-clip: border-box;
}
.hero .cs-h1 { font-size: clamp(2.2rem,4.1vw,3.65rem); line-height: 1.15; }
.hero .cs-h1-gradient { color: #b64a17 !important; -webkit-text-fill-color: #b64a17 !important; }
.hero :is(.cs-desc,.cs-stat-lbl,.cs-card-name,.cs-badge,.cs-pill,.hero-desc),
.page-hero :is(p,li,a:not(.btn),span:not(.btn)),
.cta-band p,.section-dark :is(p,.stat-label,.feature-content p) {
 color: var(--clr-text-muted) !important; -webkit-text-fill-color: currentColor !important;
}
.page-hero [style*="color:var(--clr-text-muted)"],
.page-hero [style*="color:var(--clr-heading)"],
.page-hero [style*="color:var(--clr-text)"] { color: var(--clr-text-muted) !important; }
.page-hero .breadcrumb :is(a,li),.page-hero nav[aria-label="Breadcrumb"] :is(a,li) { color: #526579 !important; }
.hero :is(.cs-pill,.cs-badge),.page-hero .hero-label { background: #fff !important; border: 1px solid #cfdfec; color: #24577d !important; }
.hero .cs-stat-num,.section-dark .stat-num { color: var(--clr-primary) !important; }
.hero .cs-stats { border-color: #cfdfec; }
.hero .cs-card { background: #fff !important; border: 1px solid #dce6ee !important; box-shadow: var(--shadow-md); }
.hero .cs-card :is(p,span) { color: var(--clr-text) !important; -webkit-text-fill-color: currentColor !important; }
.hero .cs-card.cs-active { border-color: #78add1 !important; background: #edf6ff !important; }
main > section.section[style*="background"],main > section.section-sm[style*="background"] { background: #fff !important; }
main > section.section-alt[style*="background"] { background: #fff !important; }
.section-dark .stat-item,.section-dark .card { background: #fff; border: 1px solid #dce6ee; }
.btn,.cs-btn-primary,.cs-btn-outline { border-radius: 6px; font-weight: 600; }
.btn-primary,.cs-btn-primary { background: #c54c13 !important; border-color: #c54c13 !important; color: #fff !important; -webkit-text-fill-color: #fff !important; }
.btn-primary:hover,.cs-btn-primary:hover { background: #a43b0b !important; }
.btn-outline-white,.cta-band .btn-white,.hero .cs-btns > a:nth-child(2) {
 background: #fff !important; color: #173b61 !important; -webkit-text-fill-color: #173b61 !important; border: 1px solid #b8cddd !important;
}
.card,.service-card,.product-card,.testimonial-card,.blog-card { box-shadow: 0 4px 20px rgba(23,59,97,.035); }
.card:hover,.service-card:hover,.blog-card:hover { box-shadow: var(--shadow-md); }
.site-footer { background: #fff !important; color: #526579 !important; border-top: 1px solid #dce6ee; }
.site-footer::before,.site-footer::after { display: none; }
.site-footer :is(p,a,li,span,div) { color: #526579; }
.site-footer .footer-col-heading { color: #173b61 !important; -webkit-text-fill-color: #173b61 !important; background: none; }
.site-footer a:hover { color: #b64a17; }
.enterprise-delivery { padding-block: clamp(3rem,6vw,5rem); background: #fff; border-top: 1px solid #dce6ee; }
.enterprise-eyebrow { color: #a43b0b; font-size: .75rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.enterprise-delivery h2 { max-width: 720px; margin: .75rem 0 1rem; }
.enterprise-delivery > .container > p { max-width: 720px; color: #526579; }
.enterprise-steps { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 2rem; margin-top: 2.5rem; }
.enterprise-step { border-top: 2px solid #cde3f4; padding-top: 1.5rem; }
.enterprise-step > span { color: #a43b0b; font-size: .8rem; font-weight: 700; }
.enterprise-step h3 { margin: .75rem 0; }
.enterprise-step p { color: #526579; margin: 0; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline: 3px solid #2068a0; outline-offset: 4px; }
@media(max-width: 700px) {
 .enterprise-steps { grid-template-columns: 1fr; gap: 1.5rem; }
 .hero .cs-h1 { font-size: clamp(2rem,8vw,3rem); }
 .page-hero h1 { font-size: clamp(2rem,7vw,2.8rem); }
 .section-header { margin-bottom: 2rem; }
}

/* Light surfaces for the shared hero panel and footer utilities. */
.hero .cs-panel { background: rgba(255,255,255,.75) !important; border: 1px solid #dce6ee; box-shadow: var(--shadow-md); }
.hero .cs-panel-lbl { color: #526579 !important; }
.hero .bfp-card { background: #fff !important; border-color: #dce6ee; }
.hero .bfp-card :is(h3,p),.hero .bfp-title { color: #173b61 !important; -webkit-text-fill-color: currentColor !important; }
.hero .bfp-figure { color: #b64a17 !important; -webkit-text-fill-color: currentColor !important; font-size: 1.4rem; }
.site-footer .footer-brand-desc,.site-footer .footer-links a,.site-footer .footer-contact a,.site-footer .footer-bottom :is(p,a,span) { color: #526579 !important; }
.site-footer .social-link { background: #fff; border-color: #dce6ee; color: #24577d; }
.footer-grid,.footer-bottom { border-color: #dce6ee; }
.footer-accent-bar { height: 3px; background: linear-gradient(90deg,#b7dcf6,#f6c5a6); }

/* Overlay the actual hero surface: no separate header gradient. */
.site-header {
 position: sticky;
 top: 0;
 z-index: 1000;
 background: transparent;
 border-bottom-color: transparent;
 box-shadow: none;
 transition: background-color .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.site-header.scrolled {
 background: #fff;
 border-bottom-color: #dce6ee;
 box-shadow: 0 4px 20px rgba(23,59,97,.08);
}
@media (prefers-reduced-motion: reduce) {
 .site-header { transition: none; }
}

/* The header remains sticky in flow, while its negative margin lets the hero
   paint underneath it. Extra hero padding keeps content clear of navigation. */
body:has(main > :is(.hero,.page-hero):first-child) .site-header {
 margin-bottom: -73px;
}
main > .hero:first-child { padding-top: calc(4rem + 73px); }
main > .page-hero:first-child { padding-top: calc(clamp(3rem,6vw,5.5rem) + 73px); }
.site-header:not(.scrolled) {
 background: transparent !important;
 border-bottom-color: transparent;
 box-shadow: none;
 backdrop-filter: none;
}
.site-header.scrolled { background: #fff !important; }

/* Preserve the brand colours on transparent logo assets. */
.site-logo-img,.site-logo-img--footer { background: transparent; filter: none; }

/* Section backgrounds: white or the shared section-dark treatment only. */
:root { --enterprise-section-background: linear-gradient(115deg,#eaf5ff 0%,#f7fbff 48%,#fff1e5 100%); }
section:not(.section-dark):not(.hero):not(.page-hero):not(.cta-band),
main > section.section-alt[style*="background"] {
 background: #fff !important;
}
section.section-dark,section.hero,section.page-hero,section.cta-band {
 background: var(--enterprise-section-background) !important;
}
.hero-bg-svg,.hero-bg-glow,.hero::before,.page-hero::after,.cta-band::before { display: none; }
.hero-wave-divider path { fill: #fff; }
.site-footer { background: #fff !important; }

/* Enterprise layout: restrained surfaces, strong hierarchy, predictable spacing. */
:root { --max-w: 1240px; --radius: 6px; --radius-lg: 10px; --radius-xl: 12px; }
body { font-size: 16px; line-height: 1.75; }
.container { padding-inline: clamp(1.25rem,3vw,2.5rem); }
main > .section { padding-block: clamp(3.5rem,6vw,5.5rem); }
h1,h2,h3,h4 { text-wrap: balance; }
p { text-wrap: pretty; }
.section-label,.hero-label { font-size: .75rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.section-header > p,.lead { font-size: 1.08rem; line-height: 1.8; }
.section-header { margin-bottom: 3rem; }
.nav-link { font-size: .875rem; letter-spacing: 0; padding-inline: .75rem; }
.mega-menu { border: 1px solid #dce6ee; border-radius: 8px; box-shadow: 0 16px 40px rgba(23,59,97,.1); }
.mega-item { font-size: .85rem; line-height: 1.5; }
.hero .cs-grid { grid-template-columns: minmax(0,1fr); }
.hero .cs-h1 { max-width: 1050px; font-size: clamp(2.5rem,5vw,4.5rem); line-height: 1.12; letter-spacing: -.045em; margin-block: 1.5rem; }
.hero .cs-desc { max-width: 800px; font-size: 1.125rem; line-height: 1.8; margin-bottom: 1.75rem; }
.hero .cs-badge { border: 0; background: transparent !important; padding: 0; border-radius: 0; font-size: .75rem; letter-spacing: .1em; text-transform: uppercase; }
.cs-badge-dot { animation: none !important; }
.hero .cs-pills { gap: 1.25rem; }
.hero .cs-pill { padding: 0; border: none; border-radius: 0; background: transparent !important; font-size: .85rem; }
.hero .cs-pill + .cs-pill { padding-left: 1.25rem; border-left: 1px solid #b8cddd; }
.hero .cs-btns { margin-block: 2rem 2.5rem; }
.hero .cs-stats { max-width: 800px; border-top: 1px solid #cbdde9; padding-top: 1.75rem; gap: clamp(2rem,6vw,5rem); }
.hero .cs-stat-num { font-family: var(--ff-heading); font-size: 2rem; font-weight: 700; }
.hero .cs-stat-lbl { font-size: .8rem; font-weight: 500; }
.hero-wave-divider { display: none; }
main > .hero:first-child { padding-bottom: 4rem; }
.btn,.cs-btn-primary,.cs-btn-outline { min-height: 46px; padding: .75rem 1.4rem; font-size: .9rem; letter-spacing: 0; box-shadow: none; }
.btn:hover,.cs-btn-primary:hover { transform: none; }
.card,.card-alt,.service-card,.svc-cat-card,.industry-tile,.blog-card,.product-card,.testimonial-card,.bfp-card {
 border-radius: 8px; border: 1px solid #dce6ee; box-shadow: none; background: #fff;
}
.card:hover,.service-card:hover,.svc-cat-card:hover,.industry-tile:hover,.product-card:hover,.blog-card:hover,.testimonial-card:hover {
 transform: none; border-color: #92b3cd; box-shadow: 0 8px 24px rgba(23,59,97,.06);
}
.service-card,.svc-cat-card,.testimonial-card { padding: clamp(1.5rem,3vw,2rem); }
.practice-visual { border-radius: 10px; box-shadow: none; }
.practice-feature { gap: clamp(2rem,5vw,4rem); }
.card[style*="background:linear-gradient"],.product-card-header {
 background: #fff !important; color: #24384b !important; border-color: #dce6ee !important;
}
.card[style*="background:linear-gradient"] :is(h2,h3,h4,p,li),
.product-card-header :is(h3,h4,p,.product-tagline,.product-card-badge) {
 color: #173b61 !important; -webkit-text-fill-color: currentColor !important;
}
.product-card-header { border-bottom: 1px solid #dce6ee; }
.product-card-badge { border-color: #dce6ee; background: #fff; }
.bfp-layout { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(2rem,5vw,4rem); align-items: start; }
.bfp-intro { position: sticky; top: calc(72px + 2rem); align-self: start; }
.bfp-grid[data-static] { display: grid; gap: 1rem; }
.bfp-grid[data-static] .bfp-card { display: block; padding: 1.5rem; min-height: 0; border-left: 3px solid #d0e2ef; }
.bfp-grid[data-static] .bfp-title { font-size: 1.1rem; margin-bottom: .5rem; }
.bfp-grid[data-static] .bfp-card p { font-size: .95rem; color: #526579; }
.bfp-grid[data-static] .bfp-figure { display: none; }
.bfp-toggle { display: none; }
.page-feature-media { max-width: 1160px; margin: 2.5rem auto 0; border-radius: 10px; overflow: hidden; }
.page-feature-media img { display: block; width: 100%; object-fit: cover; }
.cta-band { padding-block: clamp(3rem,5vw,4.5rem); border-block: 1px solid #dce6ee; }
.cta-band h2 { max-width: 850px; margin-inline: auto; }
.site-footer > .container { padding-top: 4rem; }
.footer-brand-desc { text-align: left; font-size: .9rem; }
.footer-links a { font-size: .875rem; line-height: 1.7; }
.footer-col-heading { font-size: .9rem; letter-spacing: 0; }
.footer-bottom { border-top: 1px solid #dce6ee; }
@media(max-width: 767px) {
 .bfp-layout { grid-template-columns: 1fr; }
 .hero .cs-h1 { font-size: clamp(2.25rem,8vw,3.5rem); }
 .hero .cs-desc { font-size: 1rem; }
 .hero .cs-pills { gap: .75rem; }
 .hero .cs-pill + .cs-pill { padding-left: .75rem; }
 .hero .cs-stats { gap: 1.5rem; }
 .hero .cs-stat-num { font-size: 1.65rem; }
 .page-feature-media { margin-inline: 1.25rem; }
}

/* Footer shares the approved section-dark surface. */
.site-footer { background: var(--enterprise-section-background) !important; }

/* Darker legal links for clear contrast on the footer gradient. */
.site-footer .footer-bottom .footer-bottom-links a {
 color: #173b61 !important;
 -webkit-text-fill-color: #173b61;
 font-weight: 600;
}
.site-footer .footer-bottom .footer-bottom-links a:hover,
.site-footer .footer-bottom .footer-bottom-links a:focus-visible {
 color: #102e4e !important;
 -webkit-text-fill-color: #102e4e;
 filter: none;
 text-decoration: underline;
 text-underline-offset: .25em;
}

/* Keep the footer contact CTA label white in every interaction state. */
.site-footer a.footer-cta-btn,
.site-footer a.footer-cta-btn:hover,
.site-footer a.footer-cta-btn:focus-visible,
.site-footer a.footer-cta-btn:visited {
 color: #fff !important;
 -webkit-text-fill-color: #fff !important;
}

/* One typography scale across every page, with sizes assigned by content role. */
:root {
 --type-h1: clamp(2.25rem,4.5vw,3.75rem);
 --type-h2: clamp(1.75rem,3vw,2.5rem);
 --type-h3: 1.25rem; --type-h4: 1.125rem;
 --type-body: 1rem; --type-lead: 1.125rem;
 --type-ui: .875rem; --type-small: .8125rem;
 --type-heading-color: #173b61; --type-body-color: #526579;
}
body { font-family: var(--ff-sans); font-size: var(--type-body); color: var(--type-body-color); }
body :is(main,.site-footer) :is(h1,h2,h3,h4,h5,h6) {
 font-family: var(--ff-heading) !important;
 color: var(--type-heading-color) !important;
 -webkit-text-fill-color: var(--type-heading-color) !important;
 background-image: none !important;
 font-weight: 700; line-height: 1.3; letter-spacing: -.025em;
}
body main h1,body main .hero .cs-h1 { font-size: var(--type-h1) !important; line-height: 1.15; }
body main h2,body main .section-header h2,body main .bfp-intro h2 { font-size: var(--type-h2) !important; }
body main h3,body main .bfp-grid[data-static] .bfp-title { font-size: var(--type-h3) !important; }
body main h4 { font-size: var(--type-h4) !important; }
body main :is(h5,h6) { font-size: var(--type-body) !important; }
body :is(main,.site-footer) p {
 font-family: var(--ff-sans) !important;
 font-size: var(--type-body) !important; line-height: 1.75;
}
body main :is(.lead,.hero-desc,.cs-desc),body main .section-header > p { font-size: var(--type-lead) !important; line-height: 1.8; }
body main :is(ul,ol,dl,td,th,label,input,select,textarea) { font-size: var(--type-body); }
body main :is(.card,.card-alt,.service-card,.svc-cat-card,.blog-card,.testimonial-card,.feature-content,.bfp-card,.product-card,.page-hero,.hero,.cta-band,.section-dark) p {
 color: var(--type-body-color) !important; -webkit-text-fill-color: currentColor !important;
}
body :is(.nav-link,.mobile-nav-link,.mega-item,.btn,.cs-btn-primary,.cs-btn-outline,.footer-links a,.footer-bottom-links a) {
 font-family: var(--ff-sans) !important; font-size: var(--type-ui) !important; font-weight: 600;
}
body :is(.section-label,.hero-label,.cs-badge,.tag,.badge,.breadcrumb,.cs-pill,.cs-stat-lbl,.product-card-badge) {
 font-size: var(--type-small) !important; color: var(--type-heading-color);
}
body .site-footer :is(p,li,a:not(.btn)) { font-size: var(--type-ui) !important; }
body .site-footer .footer-col-heading { font-size: var(--type-body) !important; }
body .site-footer .footer-bottom-links a { color: #173b61 !important; }
body .site-footer a.footer-cta-btn { color: #fff !important; -webkit-text-fill-color: #fff !important; }
body :is(.btn-primary,.btn-cta,.cs-btn-primary) { color: #fff !important; -webkit-text-fill-color: #fff !important; }
body .hero .cs-btns > a:nth-child(2) { color: #173b61 !important; -webkit-text-fill-color: #173b61 !important; }

/* Resolve older component-specific heading and body colour rules. */
body main :is(.card[style],.section-dark .card,.product-card-header,.svc-cat-card,.blog-card) :is(h2,h3,h4,h5,h6) {
 color: var(--type-heading-color) !important; -webkit-text-fill-color: var(--type-heading-color) !important;
}
body main :is(.prose,.feature-content,.card[style],.product-card-header) p {
 color: var(--type-body-color) !important; -webkit-text-fill-color: currentColor !important;
}
body :is(.stat-num,.cs-stat-num,.hero-stat-num) {
 font-family: var(--ff-heading) !important; font-size: clamp(2rem,4vw,3rem) !important;
 color: var(--type-heading-color) !important;
}

/* A common gradient canvas prevents different hero heights from changing
   the colour visible through the transparent header between pages. */
body main > :is(.hero,.page-hero):first-child {
 background-image: var(--enterprise-section-background) !important;
 background-size: 100vw max(900px,100vh) !important;
 background-position: center top !important;
 background-repeat: no-repeat !important;
 background-color: #fff !important;
}
body .site-header:not(.scrolled) {
 background: transparent !important;
 border-bottom-color: transparent;
 box-shadow: none;
}
body .site-header.scrolled { background: #fff !important; }

/* The intro sticks within its grid row, releasing when the right column ends. */
@media (max-width: 900px) {
 .bfp-layout { grid-template-columns: 1fr; }
 .bfp-intro { position: static; top: auto; }
}

/* Shared action palette across headers, content, forms and footers. */
:root {
 --action-primary: #c54c13;
 --action-primary-hover: #a43b0b;
 --action-link: #173b61;
 --action-link-hover: #102e4e;
 --action-border: #b8cddd;
}
body :is(main,.site-header,.site-footer,.mobile-nav) a:not(.btn):not(.cs-btn-primary):not(.cs-btn-outline) {
 color: var(--action-link) !important;
 -webkit-text-fill-color: var(--action-link) !important;
}
body :is(main,.site-header,.site-footer,.mobile-nav) a:not(.btn):not(.cs-btn-primary):not(.cs-btn-outline):is(:hover,:focus-visible) {
 color: var(--action-link-hover) !important;
 -webkit-text-fill-color: var(--action-link-hover) !important;
}
body :is(main,.site-header,.site-footer,.mobile-nav) :is(.btn-primary,.btn-cta,.cs-btn-primary) {
 background: var(--action-primary) !important;
 border-color: var(--action-primary) !important;
 color: #fff !important; -webkit-text-fill-color: #fff !important;
 box-shadow: none; filter: none;
}
body :is(main,.site-header,.site-footer,.mobile-nav) :is(.btn-primary,.btn-cta,.cs-btn-primary):is(:hover,:focus-visible) {
 background: var(--action-primary-hover) !important;
 border-color: var(--action-primary-hover) !important;
 color: #fff !important; -webkit-text-fill-color: #fff !important;
 opacity: 1; filter: none;
}
body :is(main,.site-header,.site-footer,.mobile-nav) :is(.btn-secondary,.btn-white,.btn-outline-white,.cs-btn-outline),
body main .hero .cs-btns > a:nth-child(2) {
 background: #fff !important;
 border: 1px solid var(--action-border) !important;
 color: var(--action-link) !important; -webkit-text-fill-color: var(--action-link) !important;
 box-shadow: none;
}
body :is(main,.site-header,.site-footer,.mobile-nav) :is(.btn-secondary,.btn-white,.btn-outline-white,.cs-btn-outline):is(:hover,:focus-visible),
body main .hero .cs-btns > a:nth-child(2):is(:hover,:focus-visible) {
 background: #fff !important;
 border-color: var(--action-link) !important;
 color: var(--action-link-hover) !important; -webkit-text-fill-color: var(--action-link-hover) !important;
 opacity: 1; filter: none;
}
body :is(.btn,.cs-btn-primary,.cs-btn-outline) :is(span,strong) { color: inherit !important; -webkit-text-fill-color: inherit !important; }
body :is(a,button):focus-visible { outline: 3px solid var(--action-link); outline-offset: 4px; }

/* Enterprise navigation: regular-weight Manrope, quiet dividers and no gradients. */
:root { --ff-menu: var(--ff-heading); }
body :is(.primary-nav,.mobile-nav) *,
body .site-header .header-cta :is(a,button) {
 font-family: var(--ff-menu) !important;
 font-weight: 400 !important;
}
body .site-header .nav-link {
 font-family: var(--ff-menu) !important;
 font-size: .875rem !important;
 font-weight: 400 !important;
 line-height: 1.5;
 padding-block: .7rem;
 border-radius: 0;
 letter-spacing: .01em;
}
body .site-header .nav-link:is(:hover,:focus-visible,[aria-current="page"]) {
 background: transparent !important;
 text-decoration: underline;
 text-decoration-thickness: 1px;
 text-underline-offset: .5rem;
}
body .site-header .nav-link.has-dropdown::after { border-width: 1px; }
body :is(.mega-menu,.mega-menu--sm,.dropdown-menu,.mobile-nav) {
 background: #fff !important;
 border: 1px solid #dce6ee;
 border-radius: 0 0 8px 8px;
 box-shadow: 0 12px 32px rgba(23,59,97,.09);
}
body .mega-menu { padding: 1.75rem; gap: 1.5rem; max-height: calc(100dvh - 96px); }
body .mega-col-heading,
body .mobile-nav-sub-cat {
 font-family: var(--ff-menu) !important;
 font-size: .875rem !important;
 font-weight: 400 !important;
 text-transform: none;
 letter-spacing: 0;
 line-height: 1.5;
 color: #173b61 !important;
 -webkit-text-fill-color: #173b61 !important;
 background: none !important;
 border-bottom: 1px solid #dce6ee;
 padding: .65rem .25rem;
 margin-bottom: .5rem;
 white-space: normal;
}
body :is(.mega-item,.dropdown-item,.mobile-nav-link,.mobile-nav-sublink) {
 font-family: var(--ff-menu) !important;
 font-size: .875rem !important;
 font-weight: 400 !important;
 line-height: 1.6;
 padding: .55rem .5rem;
 border-radius: 3px;
}
body .mega-item { border-left: 1px solid transparent; }
body :is(.mega-item,.dropdown-item,.mobile-nav-link,.mobile-nav-sublink):is(:hover,:focus-visible) {
 background: #fff !important;
 border-left-color: #173b61;
 box-shadow: none;
 transform: none;
 text-decoration: underline;
 text-underline-offset: .25rem;
}
body .mega-item::after { display: none; }
body .mega-view-all,
body .mega-view-all:is(:hover,:focus-visible) {
 font-size: .8125rem !important;
 font-weight: 400 !important;
 color: #173b61 !important;
 -webkit-text-fill-color: #173b61 !important;
 background: #fff !important;
 border: 1px solid #dce6ee;
 border-radius: 4px;
 box-shadow: none;
 transform: none;
 padding: .55rem .75rem;
}
body .mega-view-all:is(:hover,:focus-visible) { border-color: #173b61; }
body .mobile-nav-group > details > summary,
body .mobile-nav-subgroup > summary { font-size: .875rem !important; font-weight: 400 !important; padding-block: .85rem; }

/* Alternating page sections share the two approved surfaces. Explicit markers
   keep the sequence stable when figures or wrapper elements sit between them. */
body main section[data-section-surface][data-section-surface="white"] {
 background: #fff !important;
}
body main section[data-section-surface][data-section-surface="gradient"] {
 background: var(--enterprise-section-background) !important;
}

/* Navigation uses the exact same font token as headings, at regular weight. */
body :is(.primary-nav,.mobile-nav) :is(a,button,summary,span,.mega-col-heading,.mega-view-all),
body .site-header :is(.nav-link,.dropdown-item,.mega-item) {
 font-family: var(--ff-heading) !important;
 font-weight: 400 !important;
}

/* Submenu hover and keyboard focus use the shared section-dark surface. */
body :is(.primary-nav,.mobile-nav) :is(.mega-item,.dropdown-item,.mobile-nav-sublink,.mega-view-all):is(:hover,:focus-visible),
body .primary-nav details.mega-col > summary:is(:hover,:focus-visible),
body .mobile-nav .mobile-nav-subgroup > summary:is(:hover,:focus-visible) {
 background: var(--enterprise-section-background) !important;
 color: var(--action-link) !important;
 -webkit-text-fill-color: var(--action-link) !important;
}

/* Submenus use the background highlight instead of an underline. */
body :is(.primary-nav,.mobile-nav) :is(.mega-item,.dropdown-item,.mobile-nav-sublink,.mega-view-all):is(:hover,:focus-visible),
body .primary-nav details.mega-col > summary:is(:hover,:focus-visible),
body .mobile-nav .mobile-nav-subgroup > summary:is(:hover,:focus-visible) {
 text-decoration: none !important;
}

/* Category headings keep their normal surface on hover and focus. */
body .primary-nav details.mega-col > summary:is(:hover,:focus-visible),
body .mobile-nav .mobile-nav-subgroup > summary:is(:hover,:focus-visible) {
 background: none !important;
}

/* Bold navigation labels across desktop and mobile menus. */
body :is(.primary-nav,.mobile-nav) *,
body .site-header .nav-link,
body :is(.primary-nav,.mobile-nav) :is(a,button,summary,span,.mega-col-heading,.mega-view-all),
body .site-header :is(.dropdown-item,.mega-item),
body .mobile-nav-group > details > summary,
body .mobile-nav-subgroup > summary {
 font-weight: 700 !important;
}

/* A wide consulting image supports the homepage's full-width hero content. */
.homepage-hero-media { margin: 2.5rem 0 0; border-radius: 10px; overflow: hidden; border: 1px solid #dce6ee; }
.homepage-hero-media picture,.homepage-hero-media img { display: block; width: 100%; }
.homepage-hero-media img { height: auto; aspect-ratio: 3 / 1; object-fit: cover; }
/* Inner-page heroes use a more compact scale; the front page is unchanged. */
body main .page-hero h1 { font-size: clamp(1.875rem,3.25vw,2.75rem) !important; line-height: 1.2; }
body main .page-hero :is(p,.lead) { font-size: 1rem !important; line-height: 1.75; }
@media(max-width: 600px) {
 .homepage-hero-media { margin-top: 2rem; }
 .homepage-hero-media img { aspect-ratio: 2 / 1; }
}

/* Homepage headline accent. */
body main .hero .cs-h1 .hero-heading-accent {
 color: var(--action-primary) !important;
 -webkit-text-fill-color: var(--action-primary) !important;
}

/* Blog reading surfaces are always white, regardless of section alternation. */
body.blog-page main,
body.blog-page main article,
body.blog-page main .prose,
body.blog-page main article section,
body.blog-page main section[data-section-surface]:not(.page-hero):not(.hero) {
 background: #fff !important;
}

/* Light photographic homepage hero background, behind the full-width copy. */
body main section.hero[data-section-surface][data-section-surface="gradient"] {
 background-image: linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(245,250,255,.88) 55%,rgba(255,249,243,.35) 100%), url('../images/page-visuals/crm-consulting-team.jpg.webp') !important;
 background-size: cover !important;
 background-position: center !important;
 background-repeat: no-repeat !important;
}

/* Hero headings share the section-heading scale on every page. */
body main .hero h1,
body main .hero .cs-h1,
body main .page-hero h1 {
 font-size: var(--type-h2) !important;
 line-height: 1.3;
}

/* Gentle Ken Burns zoom on the homepage image; copy stays stationary. */
body main section.hero[data-section-surface][data-section-surface="gradient"] {
 background-image: none !important;
 position: relative;
 overflow: hidden;
 isolation: isolate;
}
body main section.hero[data-section-surface]::after {
 content: '';
 position: absolute;
 inset: 0;
 z-index: -1;
 pointer-events: none;
 background: linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(245,250,255,.88) 55%,rgba(255,249,243,.35) 100%), url('../images/page-visuals/crm-consulting-team.jpg.webp') center / cover no-repeat;
 transform-origin: center right;
 animation: heroKenBurns 16s ease-in-out infinite alternate;
}
@keyframes heroKenBurns {
 from { transform: scale(1); }
 to { transform: scale(1.08); }
}
@media (prefers-reduced-motion: reduce) {
 body main section.hero[data-section-surface]::after { animation: none; transform: none; }
}

/* Page-specific feature images now form the hero background. The overlay
   matches the homepage: 94% on the left, 88% middle, 35% on the right. */
body main section.page-hero.hero-feature-background[data-section-surface] {
 background-image: none !important;
 position: relative;
 overflow: hidden;
 isolation: isolate;
}
body main section.page-hero.hero-feature-background::after {
 content: '';
 display: block;
 position: absolute;
 inset: 0;
 width: auto;
 height: auto;
 border-radius: 0;
 z-index: -1;
 pointer-events: none;
 opacity: 1;
 transform: none;
 background: linear-gradient(90deg,rgba(255,255,255,.94) 0%,rgba(245,250,255,.88) 55%,rgba(255,249,243,.35) 100%), var(--hero-feature-image) center / cover no-repeat;
}
[data-hero-image="039d69da69"] { --hero-feature-image: url('../images/page-visuals/ai-software-development.jpg.webp'); }
[data-hero-image="1abede9c9b"] { --hero-feature-image: url('../images/page-visuals/retail-commerce-marketing.jpg.webp'); }
[data-hero-image="3a0889f9eb"] { --hero-feature-image: url('../images/page-visuals/business-consultation.jpg.webp'); }
[data-hero-image="53b8c3a50c"] { --hero-feature-image: url('../images/home-services-ai-development.jpg.webp'); }
[data-hero-image="60db6de029"] { --hero-feature-image: url('../images/page-visuals/crm-implementation-planning.jpg.webp'); }
[data-hero-image="63104b5ef2"] { --hero-feature-image: url('../images/page-visuals/crm-administration-support.jpg.webp'); }
[data-hero-image="6aa97f5cdc"] { --hero-feature-image: url('../images/page-visuals/policy-document-review.jpg.webp'); }
[data-hero-image="9b4e0d04b5"] { --hero-feature-image: url('../images/page-visuals/data-migration-validation.jpg.webp'); }
[data-hero-image="af0d436df2"] { --hero-feature-image: url('../images/home-services-integration.jpg.webp'); }
[data-hero-image="b38391e02c"] { --hero-feature-image: url('../images/page-visuals/financial-services-compliance.jpg.webp'); }
[data-hero-image="bcb8a2adce"] { --hero-feature-image: url('../images/page-visuals/secure-file-management.jpg.webp'); }
[data-hero-image="c60a399acb"] { --hero-feature-image: url('../images/page-visuals/crm-consulting-team.jpg.webp'); }
[data-hero-image="cfeaf52171"] { --hero-feature-image: url('../images/page-visuals/manufacturing-logistics-operations.jpg.webp'); }
[data-hero-image="d0a3315f79"] { --hero-feature-image: url('../images/page-visuals/education-student-services.jpg.webp'); }
[data-hero-image="df48a21754"] { --hero-feature-image: url('../images/page-visuals/system-integration-engineers.jpg.webp'); }

/* Service content uses the established site spacing and surfaces. */
.service-value-layout { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,1fr); gap: clamp(2rem,5vw,4rem); align-items: center; }
.service-value-layout h2 { margin-block: .75rem 1.25rem; }
.service-value-layout h3 { margin-block: 1.5rem .75rem; }
.service-value-layout .btn { margin-top: 1rem; }
.service-value-image { margin: 0; min-width: 0; }
.service-value-image img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; display: block; border-radius: 8px; border: 1px solid #dce6ee; }
.service-value-image figcaption { font-size: var(--type-small); color: var(--type-body-color); line-height: 1.7; margin-top: .75rem; }
.service-commercial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; }
.service-challenge-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1.5rem; }
:is(.service-commercial-grid,.service-challenge-grid) .card { padding: 1.75rem; min-width: 0; }
:is(.service-commercial-grid,.service-challenge-grid) h3 { margin-bottom: .75rem; }
.service-budget-cta { margin-top: 2rem; display: flex; gap: 2rem; align-items: center; justify-content: space-between; }
.service-budget-cta p { max-width: 750px; margin: 0; }
.service-partner-strip { margin-top: 3rem; padding-top: 2.5rem; border-top: 1px solid #dce6ee; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); gap: 2rem; align-items: center; }
.service-partner-strip img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 8px; }
.service-partner-strip h3 { margin-bottom: 1rem; }
@media(max-width: 900px) {
 .service-value-layout,.service-partner-strip { grid-template-columns: 1fr; }
 .service-commercial-grid { grid-template-columns: 1fr; }
 .service-budget-cta { align-items: stretch; flex-direction: column; gap: 1rem; }
}
@media(max-width: 600px) { .service-challenge-grid { grid-template-columns: 1fr; } }

/* Package comparison remains readable on narrow screens. */
.package-table-wrap { overflow-x: auto; border: 1px solid #dce6ee; border-radius: 8px; background: #fff; }
.package-table-wrap:focus-visible { outline: 3px solid var(--action-link); outline-offset: 4px; }
.package-comparison { width: 100%; min-width: 700px; border-collapse: collapse; text-align: left; }
.package-comparison caption { text-align: left; padding: 1.25rem; color: var(--type-body-color); font-size: var(--type-ui); border-bottom: 1px solid #dce6ee; }
.package-comparison :is(th,td) { padding: 1.15rem 1.25rem; border-bottom: 1px solid #dce6ee; vertical-align: top; line-height: 1.7; }
.package-comparison thead th { color: var(--type-heading-color); font-weight: 600; }
.package-comparison tbody th { width: 22%; font-weight: 600; }
.package-comparison tbody tr:last-child :is(th,td) { border-bottom: 0; }

/* Bold consultation CTA in desktop and mobile navigation. */
body .site-header .header-cta a.btn,
body .site-header .mobile-nav-cta a.btn { font-weight: 700 !important; }

/* Dark, readable publication dates on every blog hero. */
body.blog-page main .page-hero time,
body.blog-page main .page-hero [itemprop="datePublished"],
body.blog-page main .page-hero [itemprop="dateModified"] {
 color: #173b61 !important;
 -webkit-text-fill-color: #173b61 !important;
 opacity: 1;
}

/* Technology explorer: narrow category rail and wider technology panel. */
.tech-stack-section .tech-tabs { display: grid; grid-template-columns: minmax(210px,.8fr) minmax(0,2fr); gap: clamp(1.5rem,4vw,3rem); align-items: start; }
.tech-stack-section .tech-tab-nav { display: flex; flex-direction: column; flex-wrap: nowrap; align-items: stretch; justify-content: start; gap: .5rem; margin: 0; }
.tech-stack-section .tech-tab-btn { display: block; width: 100%; white-space: normal; text-align: left; border: 1px solid transparent; border-left: 3px solid transparent; border-radius: 4px; padding: 1rem 1.1rem; font-family: var(--ff-heading); font-size: var(--type-body); color: #526579; background: #fff; box-shadow: none; }
.tech-stack-section .tech-tab-btn:is(:hover,.is-active) { color: #173b61; background: var(--enterprise-section-background); border-left-color: var(--action-primary); box-shadow: none; }
.tech-stack-section .tech-tab-btn.is-active { font-weight: 700; }
.tech-stack-section .tech-tab-btn:focus-visible { outline: 3px solid #173b61; outline-offset: 3px; }
.tech-stack-section .tech-tab-panels { min-width: 0; min-height: 0; }
.tech-stack-section .tech-tab-panel[hidden] { display: none !important; }
.tech-stack-section .tech-logo-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; }
.tech-stack-section .tech-logo-card { min-height: 92px; padding: 1rem; background: #fff; border: 1px solid #dce6ee; box-shadow: none; }
.tech-stack-section .tech-logo-card span { overflow-wrap: anywhere; }
.tech-stack-section .section-header { margin-bottom: 2rem; }
.tech-stack-section.is-scroll-driven { height: calc(var(--tech-stage-height) + var(--tech-scroll-travel)); padding-block: 0 !important; overflow: visible; }
.tech-stack-section.is-scroll-driven .tech-stack-stage { position: sticky; top: var(--tech-header-offset); height: var(--tech-stage-height); display: flex; flex-direction: column; justify-content: center; padding-block: 1.5rem; }
@media(max-width: 1000px) {
 .tech-stack-section .tech-logo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .tech-stack-section .tech-logo-card { min-height: 76px; padding: .75rem; }
}
@media(max-width: 767px) {
 .tech-stack-section .tech-tabs { grid-template-columns: 1fr; }
 .tech-stack-section .tech-tab-btn { padding: .7rem 1rem; }
 .tech-stack-section .tech-logo-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Smooth category changes while preserving native page scrolling. */
.tech-stack-section .tech-tab-panel.is-active { animation: techPanelReveal .45s cubic-bezier(.22,1,.36,1) both; }
.tech-stack-section .tech-tab-btn { transition: color .25s ease, border-color .25s ease, box-shadow .25s ease; }
.tech-stack-section .tech-tab-btn.is-active { box-shadow: inset 0 0 0 1px rgba(23,59,97,.08); }
@keyframes techPanelReveal {
 from { opacity: 0; transform: translateY(16px); }
 to { opacity: 1; transform: translateY(0); }
}
@media(prefers-reduced-motion: reduce) {
 .tech-stack-section .tech-tab-panel.is-active { animation: none; }
 .tech-stack-section .tech-tab-btn { transition: none; }
}

/* Industry explorer mirrors the technology rail, with its narrow side on the right. */
.industries-stack-layout { display: grid; grid-template-columns: minmax(0,2.25fr) minmax(220px,1fr); gap: 2.5rem; align-items: start; }
.industry-stack-deck { display: grid; gap: 1.5rem; min-width: 0; }
.industry-stack-card { border: 1px solid #dce6ee; border-radius: 10px; background: #fff; overflow: hidden; scroll-margin-top: 100px; }
.industry-stack-card > img { display: block; width: 100%; height: 190px; object-fit: cover; }
.industry-stack-copy { padding: 1.25rem 1.5rem; }
.industry-stack-copy h3 { margin-bottom: .5rem; }
.industry-stack-copy p { margin-bottom: .75rem; }
body main .industry-stack-copy .industry-stack-tags { font-size: var(--type-small) !important; }
.industry-stack-copy a { font-size: var(--type-ui); font-weight: 600; }
.industry-stack-nav { display: grid; gap: .35rem; }
.industry-stack-tab { display: flex; gap: .85rem; align-items: center; text-align: left; padding: .75rem 1rem; border: 1px solid transparent; border-left: 3px solid transparent; border-radius: 4px; background: #fff; color: #526579; font: 400 .875rem/1.5 var(--ff-heading); cursor: pointer; transition: color .25s,border-color .25s; }
.industry-stack-tab:is(:hover,.is-active) { color: #173b61; background: var(--enterprise-section-background); border-left-color: var(--action-primary); }
.industry-stack-tab.is-active { font-weight: 700; }
.industry-stack-number { color: #a43b0b; font-size: .75rem; }
.industries-stack-section .section-header { margin-bottom: 1.5rem; }
.industries-stack-section.is-stack-driven { height: calc(var(--industry-stage-height) + var(--industry-travel)); padding-block: 0 !important; overflow: visible; }
.is-stack-driven .industries-stack-stage { position: sticky; top: var(--industry-header-offset); height: var(--industry-stage-height); display: flex; flex-direction: column; justify-content: center; padding-block: 1.5rem; }
.is-stack-driven .industry-stack-deck { position: relative; height: 460px; display: block; overflow: hidden; }
.is-stack-driven .industry-stack-card { position: absolute; inset: 24px 0 0; transform-origin: center top; }
@media(max-width: 899px) {
 .industries-stack-layout { grid-template-columns: 1fr; }
 .industry-stack-nav { grid-row: 1; grid-template-columns: repeat(2,minmax(0,1fr)); }
 .industry-stack-card > img { height: auto; aspect-ratio: 2 / 1; }
}
@media(prefers-reduced-motion: reduce) { .industry-stack-tab { transition: none; } }

/* Industry selectors share the technology-tab typography. */
.industry-stack-tab {
 font-family: var(--ff-heading);
 font-size: var(--type-body);
 font-weight: 400;
 line-height: normal;
 color: #526579;
}
.industry-stack-tab:is(:hover,.is-active) { color: #173b61; }
.industry-stack-tab.is-active { font-weight: 700; }

/* Technology cards now use the same continuous stacking motion as industries. */
.tech-stack-section.is-scroll-driven .tech-tab-panels { position: relative; height: var(--tech-deck-height); overflow: hidden; }
.tech-stack-section.is-scroll-driven .tech-tab-panel {
 display: block; position: absolute; inset: 24px 0 0; padding: 1.5rem;
 background: #fff; border: 1px solid #dce6ee; border-radius: 10px;
 transform-origin: center top; animation: none !important;
}
.tech-stack-section.is-scroll-driven .tech-tab-panel.is-active { animation: none !important; }
.tech-panel-title { margin-bottom: 1rem; }

/* Fit the stacked technology cards to the viewport, rather than disabling
   the interaction based on the larger unpinned layout. */
.tech-stack-section.is-scroll-driven .section-header { margin-bottom: 1.25rem; flex-shrink: 0; }
.tech-stack-section.is-scroll-driven .tech-tab-panel { padding: 1rem; }
.tech-stack-section.is-scroll-driven .tech-logo-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: .65rem; }
.tech-stack-section.is-scroll-driven .tech-logo-card { min-height: 0; padding: .65rem .5rem; gap: .35rem; }
.tech-stack-section.is-scroll-driven .tech-icon-img { width: 32px; height: 32px; }
.tech-stack-section.is-scroll-driven .tech-logo-card span { font-size: .8125rem; line-height: 1.3; }
.tech-stack-section.is-scroll-driven .tech-panel-title { margin-bottom: .75rem; }
@media(max-height: 760px) and (min-width: 768px) {
 .tech-stack-section.is-scroll-driven .tech-tab-btn { padding-block: .7rem; }
 .tech-stack-section.is-scroll-driven .section-header p { margin-bottom: 0; }
 .tech-stack-section.is-scroll-driven .tech-stack-stage { padding-block: 1rem; }
}
