/* Service descriptions and an interactive delivery diagram, scoped to the homepage. */
.home-services { background:#f0f4f7; color:#102033; }
.services-layout { display:grid; grid-template-columns:minmax(230px,.8fr) minmax(0,1.7fr); gap:clamp(32px,6vw,80px); align-items:start; }
@media(min-width:1001px) { .services-intro { position:sticky; top:112px; } }
.content-eyebrow { margin:0 0 16px; color:#1262a6; font-size:12px; line-height:1.5; font-weight:750; letter-spacing:.12em; text-transform:uppercase; }
.services-intro h2 { margin:0 0 24px; font-size:clamp(32px,3.5vw,48px); line-height:1.1; letter-spacing:-.035em; color:#0a1930; }
.services-intro > p:not(.content-eyebrow) { margin:0 0 24px; color:#526478; font-size:16px; line-height:1.8; }
.services-overview,.service-copy > a { display:inline-block; color:#1262a6; font-size:14px; font-weight:700; text-decoration:underline; text-underline-offset:5px; }
.services-list { border-top:1px solid #cad6df; }
.service-row { display:grid; grid-template-columns:minmax(0,1fr) 148px; gap:28px; padding:28px 0; border-bottom:1px solid #cad6df; align-items:center; }
.service-purpose { margin:0 0 7px; color:#62778a; font-size:11px; line-height:1.5; font-weight:600; }
.service-copy h3 { margin:0 0 12px; font-size:23px; line-height:1.2; letter-spacing:-.025em; color:#12253a; }
.service-copy > p:not(.service-purpose) { margin:0; font-size:14px; line-height:1.75; color:#4c6176; }
.service-deliverables { display:flex; gap:6px 14px; flex-wrap:wrap; list-style:none; padding:0; margin:15px 0 0; font-size:11px; line-height:1.6; color:#12647a; font-weight:650; }
.service-copy > a { margin-top:13px; font-size:12px; }
.service-art { min-height:148px; position:relative; display:flex; align-items:center; justify-content:center; flex-direction:column; color:#16607b; font-size:11px; }
.art-caption { text-align:center; display:block; margin-top:17px; color:#526c80; font-size:10px; line-height:1.5; }
.art-label { padding:10px 16px; border:1px solid #8bbccb; border-radius:6px; background:#e1f0f2; font-weight:700; }
.art-branch { height:27px; width:90px; display:flex; justify-content:space-between; position:relative; }
.art-branch::before { content:""; position:absolute; top:14px; left:0; right:0; height:1px; background:#7ba9bd; }
.art-branch i { height:13px; width:1px; background:#7ba9bd; margin-top:14px; }
.art-branch i:nth-child(2) { height:27px; margin-top:0; }
.art-plan { display:flex; gap:9px; }
.art-plan b { display:block; width:34px; height:27px; background:#e2e9f0; border:1px solid #b9cbd7; border-radius:4px; }
.art-plan b:nth-child(2) { background:#177e99; border-color:#177e99; }
.art-docs { display:flex; gap:10px; margin-bottom:16px; }
.art-docs i { position:relative; width:24px; height:29px; background:#fff; border:1px solid #a6bccd; border-radius:3px; transform:rotate(-8deg); }
.art-docs i::after { content:""; position:absolute; inset:9px 5px; border-block:2px solid #a6bccd; }
.art-docs i:nth-child(2) { transform:translateY(-5px); }
.art-docs i:nth-child(3) { transform:rotate(8deg); }
.art-ai-core { border:1px solid #278c9c; background:#dceff1; border-radius:10px; padding:10px 23px; font-size:23px; font-weight:700; text-align:center; box-shadow:0 0 0 6px #e7f0f3; }
.art-ai-core span { display:block; font-size:9px; font-weight:500; margin-top:3px; }
.art-window { width:140px; padding:9px; background:#fff; border:1px solid #9fbaca; border-radius:8px; box-shadow:0 7px 20px #193f5310; }
.art-window-top { display:flex; gap:4px; padding-bottom:8px; border-bottom:1px solid #e2e9ee; }
.art-window-top i { width:4px; height:4px; background:#a2bac8; border-radius:50%; }
.art-window-body { display:flex; gap:10px; padding-top:10px; height:65px; }
.art-sidebar { width:23px; background:repeating-linear-gradient(#d8e4eb 0 4px,transparent 4px 12px); }
.art-chart { display:flex; align-items:end; gap:6px; flex:1; }
.art-chart i { flex:1; height:42%; background:#96c9d5; border-radius:2px 2px 0 0; }
.art-chart i:nth-child(2) { height:65%; }.art-chart i:nth-child(3) { height:55%; }.art-chart i:nth-child(4) { height:90%; background:#197e99; }
.art-source,.art-crm,.art-owner { padding:7px 12px; border:1px solid #b2c6d3; border-radius:5px; background:#fff; font-size:10px; }
.art-crm { background:#176f8b; border-color:#176f8b; color:#fff; font-weight:650; }
.art-connection { width:1px; height:14px; background:#84a9bd; }
.art-owner { display:flex; align-items:center; gap:7px; }.art-owner i { width:6px; height:6px; background:#409084; border-radius:50%; }
.home-process { background:radial-gradient(ellipse at 70% 30%,#102d46,transparent 60%),#0a1628; color:#fff; }
.home-process .content-eyebrow { color:#77d2e0; }
.process-heading { display:grid; grid-template-columns:1.4fr 1fr; gap:60px; align-items:end; margin-bottom:46px; }
.process-heading h2 { color:#f5f8fc; font-size:clamp(31px,4vw,52px); letter-spacing:-.035em; line-height:1.12; margin:0; }
.process-heading > p { font-size:15px; line-height:1.8; color:#a9bdce; margin:0; max-width:390px; }
.process-diagram { position:relative; padding-top:38px; }
.process-connectors { position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.process-track { stroke:#28485e; stroke-width:2; fill:none; }.process-trail { stroke:#6edcea; stroke-width:2; fill:none; stroke-dasharray:1; stroke-dashoffset:calc(1 - var(--process-progress,0)); filter:drop-shadow(0 0 4px #00bcd4); }
.process-feedback { stroke:#5b859c; stroke-width:1; stroke-dasharray:3 5; fill:none; }.process-particle { fill:#d1fbff; filter:drop-shadow(0 0 6px #00bcd4); opacity:0; }.process-playing .process-particle { opacity:1; }
.process-feedback-label { position:absolute; top:0; left:50%; transform:translateX(-50%); font-size:10px; color:#8aa9bd; text-align:center; }
.process-nodes { position:relative; display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
.process-node { background:transparent; border:0; padding:0 8px 28px; color:#c0d1df; font:inherit; text-align:center; display:flex; flex-direction:column; align-items:center; cursor:pointer; }
.process-node:disabled { cursor:default; }
.process-symbol { display:grid; place-items:center; width:64px; height:64px; flex-shrink:0; border:1px solid #416078; border-radius:50%; background:#0c2135; color:#87b6cc; transition:background .4s,box-shadow .4s,border-color .4s,transform .4s; }
.process-symbol svg { width:27px; height:27px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.process-symbol svg circle { fill:#0c2135; }
.process-node-copy { display:grid; gap:7px; margin-top:18px; }.process-node-copy strong { color:#f4f7fb; font-size:17px; line-height:1.3; font-weight:650; }.process-node-copy > span { font-size:11px; color:#97b1c5; line-height:1.5; }
.process-node.is-selected .process-symbol { color:#d4fbff; background:#13475c; border-color:#73d9e7; box-shadow:0 0 0 7px #00bcd410,0 0 30px #00bcd42b; transform:translateY(-2px); }
.process-node:hover .process-symbol { border-color:#93c7dc; }.process-node:focus-visible { outline:2px solid #75dbe6; outline-offset:5px; border-radius:8px; }
.process-detail { margin-top:18px; padding:28px 0; border-top:1px solid #2b465d; border-bottom:1px solid #2b465d; display:grid; grid-template-columns:1.5fr 1fr; gap:60px; }
.process-detail-label { color:#79d6e2; font-size:11px; letter-spacing:.04em; margin:0 0 10px; }.process-detail h3 { font-size:25px; line-height:1.25; letter-spacing:-.02em; margin:0 0 14px; color:#fff; }
.process-detail-description { font-size:14px; line-height:1.8; color:#b1c4d4; margin:0; min-height:76px; }
.process-outcome { border-left:1px solid #35536a; padding-left:30px; align-self:center; }.process-outcome > span { color:#8daabd; font-size:11px; }.process-outcome p { font-size:18px; line-height:1.5; color:#deedf5; margin:12px 0 0; }
.process-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:20px; }.process-footer > p { color:#8aa5b9; font-size:11px; line-height:1.6; margin:0; }
.process-replay { padding:8px 0; border:0; border-bottom:1px solid #406c83; background:transparent; color:#a7dce7; font:inherit; font-size:12px; cursor:pointer; white-space:nowrap; }.process-replay[hidden] { display:none; }.process-replay span { margin-left:8px; }.process-replay:focus-visible { outline:2px solid #75dbe6; outline-offset:5px; }
.home-v5 .home5-case-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.home-v5 .home5-case-main { grid-column:auto; }
.home-v5 .home5-case-media { height:auto; aspect-ratio:16/10; flex-shrink:0; }
.home-v5 .home5-case-media img { width:100%; height:100%; object-fit:cover; object-position:top; }
@media(max-width:1000px) { .services-layout { grid-template-columns:1fr; gap:24px; }.services-intro { display:grid; grid-template-columns:1fr 1fr; gap:0 32px; }.services-intro .content-eyebrow { grid-column:1/-1; }.services-intro h2 { grid-row:2/4; }.services-intro > p:not(.content-eyebrow) { font-size:14px; }.services-overview { justify-self:start; }.process-heading { gap:30px; }.process-detail { gap:30px; } }
@media(max-width:650px) {
 .home-services,.home-process { padding:52px 0; }.services-intro { display:block; }.services-intro h2 { max-width:440px; }.service-row { grid-template-columns:minmax(0,1fr) 106px; gap:18px; padding:25px 0; }.service-copy h3 { font-size:20px; }.service-art { transform:scale(.8); transform-origin:center; }.service-copy > p:not(.service-purpose) { font-size:13px; }.service-deliverables { gap:5px 10px; font-size:10px; }
 .process-heading { grid-template-columns:1fr; gap:22px; margin-bottom:24px; }.process-heading > p { font-size:14px; }.process-diagram { padding-top:0; }.process-feedback,.process-feedback-label { display:none; }.process-nodes { grid-template-columns:1fr; gap:0; }.process-node { flex-direction:row; gap:20px; text-align:left; padding:16px 0; }.process-node-copy { margin-top:0; }.process-symbol { width:58px; height:58px; }.process-node-copy strong { font-size:18px; }.process-node-copy > span { font-size:12px; }.process-detail { grid-template-columns:1fr; gap:24px; margin-top:8px; }.process-detail h3 { font-size:23px; }.process-detail-description { min-height:0; }.process-outcome { border-left:2px solid #35637a; padding-left:18px; }.process-outcome p { font-size:17px; margin-top:8px; }.process-footer { align-items:start; flex-direction:column; gap:12px; }.process-replay { min-height:44px; }
 .home-v5 .home5-case-grid { grid-template-columns:1fr; }
}
@media(max-width:400px) { .service-row { grid-template-columns:minmax(0,1fr); }.service-art { display:none; }.service-copy > p:not(.service-purpose) { font-size:14px; }.service-deliverables { font-size:11px; } }
@media(prefers-reduced-motion:reduce) { .process-symbol { transition:none; }.process-particle { display:none; } }
