/* Services carousel, with a stacked fallback when JavaScript is unavailable. */
.services-operating-model { background:radial-gradient(ellipse at 50% 100%, #10324d 0%, transparent 75%), var(--navy); }
.operating-model-intro { display:grid; grid-template-columns:1.1fr 1fr; align-items:center; gap:clamp(30px, 6vw, 90px); margin-bottom:38px; }
.operating-model-intro h2 { max-width:22ch; margin:0; font-size:clamp(2rem, 3.1vw, 2.9rem); line-height:1.13; overflow-wrap:normal; }
.operating-model-intro p { margin:0; max-width:48ch; font-size:1rem; line-height:1.7; color:#b8cbdc; }
.operating-model-grid { display:grid; grid-template-columns:repeat(8, minmax(0, 1fr)); border:1px solid #2c4e68; border-radius:16px; overflow:hidden; background:linear-gradient(140deg, #102d44, #071e33); }
.operating-model-node { position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px; min-width:0; min-height:164px; padding:24px 10px; color:#eaf4ff; font-size:.94rem; font-weight:600; line-height:1.4; text-align:center; }
.operating-model-node + .operating-model-node { border-left:1px solid #29485f; }
.operating-model-icon { display:grid; place-items:center; width:54px; height:54px; border:1px solid #2d6886; border-radius:14px; color:#64e4eb; background:linear-gradient(145deg, #174660, #0b2d46); box-shadow:0 6px 18px #00101d33; }
.operating-model-icon .icon { width:28px; height:28px; stroke-width:1.65; }
@media(max-width:1100px) {
 .operating-model-grid { grid-template-columns:repeat(4, minmax(0, 1fr)); }
 .operating-model-node:nth-child(5) { border-left:0; }
 .operating-model-node:nth-child(n+5) { border-top:1px solid #29485f; }
}
@media(max-width:800px) {
 .operating-model-intro { grid-template-columns:1fr; gap:20px; margin-bottom:30px; }
}
@media(max-width:550px) {
 .operating-model-grid { grid-template-columns:repeat(2, minmax(0, 1fr)); }
 .operating-model-node { min-height:142px; padding:22px 12px; gap:14px; }
 .operating-model-node:nth-child(odd) { border-left:0; }
 .operating-model-node:nth-child(n+3) { border-top:1px solid #29485f; }
 .operating-model-icon { width:48px; height:48px; border-radius:12px; }
 .operating-model-icon .icon { width:26px; height:26px; }
}
.services-engagement { background:#fff; }
.engagement-intro { display:grid; grid-template-columns:1.1fr 1fr; gap:clamp(30px, 6vw, 90px); align-items:center; margin-bottom:38px; }
.engagement-intro h2 { max-width:22ch; margin:0; font-size:clamp(2rem, 3.1vw, 2.9rem); line-height:1.13; }
.engagement-intro .lead { max-width:46ch; margin:0; font-size:1rem; line-height:1.7; }
.engagement-steps { display:grid; grid-template-columns:repeat(3, minmax(0, 1fr)); gap:22px; list-style:none; padding:0; margin:0; }
.engagement-step { min-width:0; padding:30px; border:1px solid #d8e5f2; border-radius:14px; background:linear-gradient(135deg, #f3f8ff, #fff 85%); }
.engagement-step-top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:24px; }
.engagement-icon { display:grid; place-items:center; width:60px; height:60px; flex-shrink:0; border:1px solid #bbd9fc; border-radius:16px; background:linear-gradient(135deg, #e5f0ff, #f2faff); color:#1478e0; }
.engagement-icon .icon { width:30px; height:30px; stroke-width:1.65; }
.engagement-number { color:#44759e; font-size:.72rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.engagement-step h3 { font-size:1.15rem; line-height:1.35; letter-spacing:-.02em; margin:0 0 12px; }
.engagement-step p { color:var(--muted); font-size:.92rem; line-height:1.7; margin:0; }
@media(max-width:1000px) {
 .engagement-step { padding:24px; }
 .engagement-steps { gap:16px; }
}
@media(max-width:800px) {
 .engagement-intro { grid-template-columns:1fr; gap:20px; margin-bottom:30px; }
 .engagement-steps { grid-template-columns:1fr; }
 .engagement-step-top { margin-bottom:18px; }
 .engagement-icon { width:54px; height:54px; border-radius:14px; }
}
.services-catalog-section { padding:38px 0 32px; background:#fff; scroll-margin-top:calc(var(--header-height) + 16px); overflow:hidden; }
.services-catalog-section > .section-heading { margin-bottom:0; }
.services-catalog-section > .section-heading h2 { font-size:clamp(1.85rem,2.7vw,2.35rem); }
.service-offering { position:relative; }
.service-anchor { position:absolute; top:0; left:0; scroll-margin-top:calc(var(--header-height) + 20px); }
.service-offering .service-security-link { display:block; margin-top:12px; font-size:.8rem; color:#0068cd; text-decoration:underline; text-underline-offset:3px; }
.service-start-guide { background:radial-gradient(ellipse at 100% 20%, #0b2942 0%, transparent 60%), var(--navy); }
.service-start-layout { display:grid; grid-template-columns:minmax(280px, .85fr) minmax(0, 2fr); gap:clamp(36px, 4.5vw, 72px); align-items:center; }
.service-start-intro h2 { font-size:clamp(2.1rem, 3.1vw, 2.9rem); line-height:1.12; max-width:15ch; overflow-wrap:normal; margin-bottom:22px; }
.service-start-intro > p { max-width:34ch; font-size:.98rem; line-height:1.7; }
.service-start-cta { margin-top:30px; }
.service-start-cta .button { min-height:48px; gap:14px; }
.service-start-cta .button .icon { flex-shrink:0; }
.service-start-cta p { margin:14px 0 0; max-width:30ch; font-size:.8rem; line-height:1.6; color:#9fb4c8; }
.service-start-options { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:14px; }
.service-start-options li { min-width:0; }
.service-start-option { display:flex; align-items:center; gap:14px; height:100%; min-height:108px; padding:20px; border:1px solid #294961; border-radius:12px; background:linear-gradient(125deg, #0c2840, #071d31); transition:border-color .2s, background .2s, transform .2s; }
.service-start-icon { width:38px; height:38px; flex-shrink:0; display:grid; place-items:center; border:1px solid #245775; border-radius:10px; background:#10344d; color:#54d9e5; }
.service-start-icon .icon { width:21px; height:21px; }
.service-start-copy { flex:1; min-width:0; }
.service-start-problem { display:block; margin-bottom:7px; font-size:.78rem; line-height:1.5; color:#a8bed1; }
.service-start-copy strong { display:block; font-size:.95rem; line-height:1.4; font-weight:600; color:#f0f7ff; }
.service-start-arrow { width:17px; height:17px; flex-shrink:0; color:#4bd7e0; }
.service-start-option:hover { border-color:#47b9d3; background:#10314a; transform:translateY(-2px); }
.service-start-option:focus-visible { outline:2px solid #58e3ee; outline-offset:4px; }
@media(max-width:1100px) {
 .service-start-layout { grid-template-columns:1fr; }
 .service-start-intro h2 { max-width:24ch; }
 .service-start-intro > p { max-width:58ch; }
 .service-start-cta p { max-width:none; }
}
@media(max-width:600px) {
 .service-start-options { grid-template-columns:1fr; gap:12px; }
 .service-start-option { min-height:98px; padding:18px; gap:12px; }
 .service-start-intro h2 { max-width:16ch; }
 .service-start-cta { margin-top:24px; }
}
.service-catalog { display:grid; gap:24px; max-width:880px; width:72%; margin:auto; }
.service-offering { min-width:0; border:1px solid #7399ba; border-radius:18px; overflow:hidden; background:#fff; box-shadow:none; scroll-margin-top:calc(var(--header-height) + 20px); }
.service-offering-visual { position:relative; display:flex; justify-content:center; width:100%; height:220px; margin:0; background:linear-gradient(120deg,#eaf6ff,#f5fbff); border-bottom:1px solid #dfedf7; }
.service-offering-visual img { display:block; height:100%; width:auto; max-width:100%; object-fit:contain; mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent); }
.service-offering-copy { padding:24px 28px 20px; }
.service-offering h3 { font-size:clamp(1.25rem,1.8vw,1.55rem); line-height:1.2; letter-spacing:-.025em; color:#0a2142; margin:0 0 10px; }
.service-offering-copy > p { color:#536c85; font-size:.92rem; line-height:1.6; margin:0 0 16px; min-height:3.2em; }
.service-highlights { display:flex; flex-wrap:wrap; gap:7px; list-style:none; padding:0; margin:0 0 17px; }
.service-highlights li { font-size:.72rem; line-height:1.4; background:#edf6fd; border:1px solid #dcebf7; color:#245479; border-radius:6px; padding:6px 9px; }
.service-inclusions { border-block:1px solid #e0eaf3; }
.service-inclusions summary { min-height:44px; display:flex; align-items:center; justify-content:space-between; gap:12px; cursor:pointer; list-style:none; color:#38516a; font-size:.82rem; font-weight:600; }
.service-inclusions summary::-webkit-details-marker { display:none; }
.service-inclusions summary span { color:#078ed8; font-size:1.25rem; font-weight:400; transition:transform .2s; }
.service-inclusions[open] summary span { transform:rotate(45deg); }
.service-inclusions .check-list { gap:8px; padding:0 0 16px; margin:0; }
.service-inclusions .check-list li { color:#536c85; font-size:.83rem; line-height:1.5; }
.service-offering .learn-link { display:inline-flex; align-items:center; gap:10px; min-height:44px; margin-top:8px; color:#0068cd; font-size:.84rem; font-weight:600; }
.service-offering .learn-link .icon { width:18px; height:18px; }
.service-offering a:focus-visible,.service-inclusions summary:focus-visible,.service-category-nav a:focus-visible { outline:2px solid #139af1; outline-offset:3px; border-radius:4px; }


.service-offering { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; }
.service-offering-visual { height:100%; min-height:380px; border-bottom:0; border-right:1px solid #d0e3f3; align-items:center; }
.service-offering-visual img { width:100%; height:auto; aspect-ratio:3/2; }
.service-offering-copy { padding:32px; }
.service-offering h3 { font-size:clamp(1.5rem,2.3vw,2rem); }
.service-offering-copy > p { min-height:0; }
.service-carousel-controls,.service-carousel-status { display:none; }
.services-catalog-section.is-enhanced .service-catalog { gap:0; }
.is-enhanced .service-offering { grid-area:1/1; visibility:hidden; opacity:0; transform:translateX(0) scale(.9); transition:transform .45s ease,opacity .35s ease,visibility .45s; pointer-events:none; }
.is-enhanced .service-offering.is-active { visibility:visible; opacity:1; transform:translateX(0) scale(1); pointer-events:auto; z-index:3; box-shadow:0 12px 24px rgba(10,25,40,.08); }
.is-enhanced .service-offering.is-previous { visibility:visible; opacity:.58; z-index:1; transform:translateX(-24%) perspective(1200px) rotateY(24deg) scale(.78); }
.is-enhanced .service-offering.is-next { visibility:visible; opacity:.58; z-index:1; transform:translateX(24%) perspective(1200px) rotateY(-24deg) scale(.78); }
.service-carousel-viewport { width:min(calc(100% - clamp(28px,4vw,48px)),var(--container)); margin-inline:auto; overflow:hidden; padding:24px 0 30px; touch-action:pan-y; isolation:isolate; }
.service-carousel-viewport:focus-visible { outline:2px solid #1589df; outline-offset:-4px; }
.is-enhanced .service-carousel-controls { display:flex; align-items:center; justify-content:center; gap:26px; margin:auto; }
.service-carousel-arrow { display:grid; place-items:center; width:46px; height:46px; border:1px solid #87afd0; border-radius:50%; background:#fff; color:#086cbe; cursor:pointer; box-shadow:none; }
.service-carousel-arrow svg { width:23px; height:23px; }
.service-carousel-arrow:hover { color:#fff; background:#0876d1; border-color:#0876d1; }
.service-carousel-dots { display:flex; align-items:center; padding:0 8px; border-radius:30px; background:#eaf3fc; }
.service-carousel-dots button { display:grid; place-items:center; width:28px; height:44px; border:0; background:transparent; cursor:pointer; padding:0; }
.service-carousel-dots button span { width:7px; height:7px; border-radius:6px; background:#86a8c6; transition:width .2s,background .2s; }
.service-carousel-dots button[aria-current="true"] span { width:20px; background:#0875d5; }
.service-carousel-controls button:focus-visible { outline:2px solid #0875d5; outline-offset:3px; }
.is-enhanced .service-carousel-status { display:block; text-align:center; margin:12px 20px 0; color:#536e88; font-size:.78rem; }
@media(min-width:801px) {
 .is-enhanced .service-offering.is-previous .service-offering-visual { grid-column:2; grid-row:1; }
 .is-enhanced .service-offering.is-previous .service-offering-copy { grid-column:1; grid-row:1; }
}
@media(max-width:1100px) and (min-width:801px) {
 .service-catalog { width:80%; }
 .service-offering-copy { padding:24px; }
 .service-offering h3 { font-size:1.55rem; }
}
@media(max-width:800px) {
 .service-catalog { width:calc(100% - 40px); max-width:600px; }
 .service-offering { grid-template-columns:1fr; grid-template-rows:220px 1fr; align-items:start; }
 .service-offering-visual { height:220px; min-height:0; border-right:0; border-bottom:1px solid #d0e3f3; }
 .service-offering-visual img { height:100%; width:auto; max-width:100%; }
 .service-offering-copy { padding:22px 24px; }
 .service-offering h3 { font-size:1.45rem; }
}
@media(max-width:480px) {
 .services-catalog-section { padding:20px 0 26px; }
 .service-catalog { width:calc(100% - 24px); }
 .service-offering-visual { height:185px; }
 .service-offering { grid-template-rows:185px 1fr; }
 .service-offering-copy { padding:20px; }
 .service-offering h3 { font-size:1.3rem; }
 .service-offering-copy > p { font-size:.87rem; }
 .service-carousel-controls { gap:10px!important; }
 .service-carousel-arrow { width:40px; height:40px; }
 .service-carousel-dots { padding:0 4px; }
 .service-carousel-dots button { width:23px; }
}
@media(prefers-reduced-motion:reduce) { .is-enhanced .service-offering,.service-carousel-dots button span { transition:none; } }

/* A useful next step beside the Services FAQs. */
.services-faq .faq-intro::after { display:none; }
.services-faq .faq-intro h2::after { content:''; display:block; width:42px; height:3px; border-radius:3px; background:var(--blue); margin-top:26px; }
.faq-contact-card { max-width:360px; margin-top:32px; padding:24px; border:1px solid #dce8f5; border-radius:14px; background:linear-gradient(135deg,#edf5ff,#f8fbff); }
.faq-contact-icon { display:grid; place-items:center; width:42px; height:42px; margin-bottom:16px; border:1px solid #cbdff9; border-radius:12px; color:#0873df; background:#fff; }
.faq-contact-icon svg { width:24px; height:24px; }
.faq-contact-card h3 { margin:0 0 9px; font-size:1.1rem; line-height:1.35; }
.services-faq .faq-contact-card p { font-size:.92rem; line-height:1.65; }
.faq-contact-card a { display:inline-flex; align-items:center; gap:14px; min-height:44px; margin-top:12px; color:#0868c7; font-size:.9rem; font-weight:600; text-decoration:none; }
.faq-contact-card a:hover { text-decoration:underline; text-underline-offset:4px; }
.faq-contact-card a:focus-visible { outline:2px solid #0875d5; outline-offset:4px; border-radius:3px; }
@media(max-width:800px) { .faq-contact-card { max-width:none; margin-top:24px; } }
