/* Service catalogue: shared category and offering presentation. */
.service-hero{position:relative;overflow:hidden;background:linear-gradient(120deg,#f2f6ff,#fafcff 70%);padding:44px 0 70px;border-bottom:1px solid #dce5f2}
.service-hero::after{content:"";position:absolute;right:-130px;top:30px;width:520px;height:520px;border:1px solid #d9e5fa;border-radius:50%;box-shadow:0 0 0 60px #e8effa66,0 0 0 120px #eef3fb77;pointer-events:none}
.service-hero .container{position:relative;z-index:1}
.service-hero h1{max-width:19ch;font-size:clamp(2.1rem,4.5vw,4.1rem);line-height:1.12;letter-spacing:-.045em;margin:24px 0}
.service-hero .service-intro{max-width:740px;color:#42546c;font-size:1.13rem;line-height:1.8;margin:0 0 28px}
.service-hero .breadcrumb{margin-bottom:30px;flex-wrap:wrap}
.service-hero .breadcrumb,.service-hero .breadcrumb a,.service-hero .breadcrumb span{color:#536b89}
.service-hero .breadcrumb a:hover{color:#225db7}
.service-label{display:block;color:#235db7;font-size:.76rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.service-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
.service-section{padding:70px 0}
.service-section--soft{background:#f5f8fc}
.service-section-head{max-width:790px;margin-bottom:32px}
.service-section-head h2{font-size:clamp(1.8rem,3vw,2.6rem);line-height:1.2;letter-spacing:-.035em;margin:12px 0 18px}
.service-section-head p{line-height:1.8;color:#465972;margin:0}
.service-category-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.service-category-card{position:relative;display:flex;flex-direction:column;align-items:flex-start;padding:30px;border:1px solid #dce5f1;background:#fff;border-radius:12px;transition:border-color .18s,box-shadow .18s,transform .18s;min-width:0}
.service-category-card:hover{border-color:#85a9e5;box-shadow:0 12px 34px #193e7810;transform:translateY(-3px)}
.service-category-card .service-icon{width:42px;height:42px;color:#2c65c7;margin-bottom:22px}
.service-category-card h3{font-size:1.28rem;line-height:1.4;margin:0 0 14px;color:#122b4e}
.service-category-card p{font-size:.94rem;line-height:1.8;color:#4b5e77;margin:0 0 24px}
.service-category-card .service-card-link{margin-top:auto;font-size:.89rem;font-weight:700;color:#245db6;padding-top:8px}
.service-category-card a::after{content:"";position:absolute;inset:0;border-radius:12px}
.service-category-card:focus-within{outline:3px solid #2d6bce;outline-offset:4px}
.service-card-link span{display:inline-block;margin-left:8px}
.service-meta{font-size:.78rem;color:#65748a;margin-top:15px}
.service-offers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.service-offer{padding:30px;background:#fff;border:1px solid #dce5f1;border-radius:10px;scroll-margin-top:110px;min-width:0}
.service-offer:target{outline:3px solid #3770cb;outline-offset:5px}
.service-offer h3{font-size:1.3rem;line-height:1.4;color:#152f52;margin:0 0 16px}
.service-offer>p{font-size:.97rem;line-height:1.85;color:#465972;margin:0 0 20px}
.service-offer details{border-top:1px solid #e1e7f0;padding-top:16px;margin:16px 0 22px}
.service-offer summary{font-size:.9rem;font-weight:700;color:#255baa;cursor:pointer;list-style-position:outside;margin-left:18px;padding-left:3px}
.service-capabilities h4{font-size:.8rem;letter-spacing:.1em;text-transform:uppercase;color:#63758c;margin:22px 0 12px}
.service-capabilities ul{padding-left:19px;line-height:1.8;color:#465972;font-size:.92rem;margin:14px 0 24px}
.service-capabilities li{padding:3px 0}
.service-offer>.btn-link{font-size:.89rem;font-weight:700;color:#255baa}
.service-category-nav{display:flex;flex-wrap:wrap;gap:9px;list-style:none;padding:0;margin:26px 0 0}
.service-category-nav a{display:block;padding:9px 15px;font-size:.82rem;border:1px solid #cddbed;background:#fff;border-radius:30px;color:#23466f;font-weight:600}
.service-category-nav a:hover,.service-category-nav a[aria-current="page"]{background:#1e55ad;color:#fff;border-color:#1e55ad}
.service-section-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:25px}
.service-section-heading .service-section-head{margin-bottom:0}
.service-section-heading>a{white-space:nowrap;color:#245db6;font-weight:700;font-size:.9rem}
.service-cta{background:#102d53;color:#fff;border-radius:16px;padding:44px;display:flex;justify-content:space-between;align-items:center;gap:30px}
.service-cta h2{color:#fff;font-size:clamp(1.6rem,2.8vw,2.3rem);line-height:1.3;margin:0 0 12px;max-width:26ch}
.service-cta p{color:#d6e3f5;line-height:1.8;margin:0;max-width:65ch}
.service-cta .btn{flex-shrink:0}
.service-home{padding:76px 0}
.service-home .service-category-card p{font-size:.93rem}
.service-nav-menu{min-width:340px;max-height:calc(100vh - 120px);overflow-y:auto}
.service-nav-menu a{white-space:normal!important;line-height:1.5}
.service-nav-menu .service-nav-all{border-bottom:1px solid #dce5f1;color:#245db6;margin-bottom:7px}
.service-footer-links a{font-size:.84rem;line-height:1.6;margin-bottom:8px}
.service-enquiry-context{padding:14px 18px;border-left:3px solid #2d67c4;background:#e9f0fb;color:#193f77!important;font-weight:600}
.ai-product-context{color:#536b89;font-size:.93rem;line-height:1.8;margin:24px 0 0;max-width:70ch}
.ai-products-page .platform-module{scroll-margin-top:110px}
.ai-products-page .module-purpose{display:block;color:#255baa;font-weight:700;font-size:.8rem;letter-spacing:.03em;margin-bottom:12px}
.ai-products-page .module-gives{font-size:.96rem;line-height:1.85}
.ai-products-page .module-head{flex-wrap:wrap}
.ai-products-page .module-head h3{font-size:1.16rem;overflow-wrap:anywhere}
.ai-products-page #products{background:#f7f9fc}
.ai-products-page #products .section-head{max-width:790px}
.ai-products-hero h1{max-width:21ch}
.partner-logo-link,.concept-logos .partner-logo-link{display:flex;align-items:center;justify-content:center;width:100%;margin:0;padding:0}
.partner-logo-link:focus-visible{outline:3px solid #73bfed;outline-offset:8px}
@media(min-width:1081px){.service-nav-menu.open{transform:translate(-50%,0)}}
@media(max-width:1080px){.service-category-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service-nav-menu{min-width:0;max-height:none}.service-hero::after{opacity:.5}}
@media(max-width:700px){.service-category-grid,.service-offers{grid-template-columns:1fr}.service-section,.service-home{padding:46px 0}.service-hero{padding:26px 0 44px}.service-hero h1{max-width:22ch}.service-hero .service-intro{font-size:1rem}.service-hero .breadcrumb{font-size:.76rem;margin-bottom:24px}.service-category-card,.service-offer{padding:24px}.service-cta{padding:28px;display:block}.service-cta .btn{margin-top:24px}.service-section-heading{display:block}.service-section-heading>a{display:inline-block;margin-top:18px}.service-category-nav{gap:7px}.service-category-nav a{font-size:.75rem;padding:8px 12px}}
@media(prefers-reduced-motion:reduce){.service-category-card{transition:none}.service-category-card:hover{transform:none}}

/* Hover bridge on the group, not the menu: the menu scrolls (overflow-y:auto), which clips its own ::before. */
@media(min-width:1081px){.nav-group:has(> .service-nav-menu.open)::after{content:"";position:absolute;top:100%;left:50%;width:340px;height:20px;transform:translateX(-50%)}}
