.service-landing .service-hero{padding-bottom:90px}
.service-landing .service-lead{grid-template-columns:1fr 1fr;gap:60px}
.service-landing .service-lead h1{font-size:clamp(40px,4vw,56px);max-width:17ch}
.service-landing .service-lead p{max-width:48ch}
.service-landing .software-hero-visual{background:transparent;width:100%}
.service-landing .software-hero-visual a{display:block}
.service-landing .software-hero-visual img{width:100%;height:auto;aspect-ratio:1;object-fit:contain}
.service-landing .service-actions{max-width:540px}
.service-landing .service-actions .button{min-height:50px}
.software-fit{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;border-top:1px solid var(--line)}
.software-fit h2{font-size:clamp(32px,3.1vw,44px)}
.software-fit p{max-width:55ch}
.software-needs{display:grid;gap:14px;margin-top:28px;color:var(--muted);font-size:14px}
.software-needs li{padding-left:19px;position:relative}
.software-needs li::before{content:"";position:absolute;left:0;top:.65em;width:5px;height:5px;border-radius:50%;background:var(--olive)}
.software-system{position:relative;isolation:isolate;min-height:460px;aspect-ratio:1;background:var(--panel);color:var(--ink);border-radius:12px;overflow:hidden}
.software-paper{position:absolute;width:42%;height:165px;padding:20px;background:#f3f5ec;border:1px solid #d0d8c4;border-radius:7px;box-shadow:0 8px 16px #20251c0a}
.software-paper span{display:block;font-size:13px;color:#46583b;white-space:nowrap;margin-bottom:20px}
.software-paper i{display:block;height:4px;margin-top:9px;background:#c8d2ba;width:88%}
.software-paper i:nth-of-type(2){width:65%}
.software-paper-tools{top:6%;left:29%;transform:rotate(-2deg);background:#d4dec2}
.software-paper-team{top:20%;left:6%;transform:rotate(-10deg);background:#e2e9d7}
.software-paper-customers{top:18%;right:6%;transform:rotate(8deg)}
.software-workspace{position:absolute;z-index:3;top:40%;left:9%;width:82%;padding:25px;background:#fafbf6;border:1px solid #cdd7c1;border-radius:9px;transform:rotate(-3deg);box-shadow:0 14px 28px #20251c12}
.software-workspace>strong{display:block;font-size:24px;font-weight:500;line-height:1.3;letter-spacing:-.025em;margin-bottom:20px}
.software-workspace-row{display:flex;align-items:center;gap:12px;padding:12px 14px;font-size:14px;line-height:1.4;color:#46583b;border-bottom:1px solid #dde3d5}
.software-workspace-row:last-child{border-bottom:0}
.software-workspace-row svg{flex-shrink:0}
.software-workspace-active{background:#2b3921;border:0;border-radius:5px;color:#f3f6ec}
.software-workspace-active svg{color:var(--lime)}
.software-work{padding-top:70px}
.software-work .split-heading{margin-bottom:45px;align-items:center}
.software-work .split-heading>p{max-width:370px}
.software-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:55px 32px}
.software-work-grid article{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.software-case-image{width:100%;display:block;border-radius:12px;overflow:hidden;background:var(--panel)}
.software-case-image img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:contain;transition:filter .25s}
.software-case-image:hover img{filter:brightness(1.04)}
.software-work-grid .project-tags{margin:24px 0 16px}
.software-work-grid h3{font-size:29px;margin-bottom:18px}
.software-work-grid p{font-size:15px;line-height:1.85;max-width:62ch}
.software-project-features{display:grid;gap:9px;font-size:13px;color:var(--olive);margin:0 0 25px}
.software-work-grid .text-link{margin-top:auto}
.software-process .process-intro{position:sticky;top:120px;align-self:start;display:block}
.software-process .process-art{margin:40px 0;max-width:350px}
.software-process .software-change-note{font-size:13px;line-height:1.8;max-width:43ch}
.software-process .process-steps li{padding-bottom:32px;margin-bottom:32px}
.software-process .process-steps h3{font-size:26px;line-height:1.2}
.software-process .process-steps p{font-size:15px;max-width:63ch}
.software-process .deliverable{font-size:13px}
.software-practical{display:grid;grid-template-columns:1fr 1fr;gap:90px}
.software-practical h2{font-size:clamp(32px,3.1vw,44px)}
.software-agreements{margin:35px 0 0}
.software-agreements>div{padding:19px 0;border-top:1px solid var(--line)}
.software-agreements dt{font-size:15px;margin-bottom:7px}
.software-agreements dd{margin:0;color:var(--muted);font-size:14px;line-height:1.8}
.software-questions h3{font-size:28px;margin-bottom:25px}
.software-questions details{border-top:1px solid var(--line)}
.software-questions details:last-child{border-bottom:1px solid var(--line)}
.software-questions summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;cursor:pointer;list-style:none;font-size:16px;line-height:1.5}
.software-questions summary::-webkit-details-marker{display:none}
.software-questions summary svg{width:18px;transform:rotate(45deg);transition:transform .2s}
.software-questions details[open] summary svg{transform:rotate(-45deg)}
.software-questions details p{font-size:14px;line-height:1.9;padding-right:20px}
.software-enquiry{max-width:none}
.software-enquiry .contact-layout{max-width:1218px}
.software-enquiry h2{font-size:clamp(34px,3.7vw,50px)}
.software-enquiry .software-enquiry-prompt{font-size:14px;max-width:38ch;margin-top:35px}
.software-enquiry .form-note{margin-top:18px}
@media(max-width:1000px){
 .service-landing .service-lead{gap:35px}
 .service-landing .service-actions{grid-template-columns:1fr}
 .software-fit{gap:40px}
 .software-practical{gap:50px}
 .software-process .process-layout{gap:55px}
}
@media(max-width:800px){
 .service-landing .service-lead{grid-template-columns:1fr;gap:35px}
 .service-landing .service-lead h1{max-width:19ch}
 .service-landing .service-actions{grid-template-columns:repeat(2,minmax(0,1fr));max-width:540px}
 .service-landing .software-hero-visual{max-width:540px;margin:0 auto}
 .software-fit{grid-template-columns:1fr;gap:35px}
 .software-fit>div:first-child{max-width:640px}
 .software-system{max-width:600px;width:100%;margin:auto}
 .software-work-grid{gap:45px 25px}
 .software-work-grid h3{font-size:25px}
 .software-work-grid p{font-size:14px}
 .software-work .split-heading{margin-bottom:35px}
 .software-process .process-intro{position:static;display:block}
 .software-process .process-intro>p{max-width:58ch}
 .software-process .process-art{display:block;max-width:350px;transform:rotate(-2deg)}
 .software-process .process-layout{gap:45px}
 .software-practical{grid-template-columns:1fr;gap:55px}
 .software-enquiry .contact-layout{max-width:650px}
}
@media(max-width:540px){
 .service-landing .service-hero{padding-bottom:55px}
 .service-landing .service-lead h1{font-size:38px;max-width:17ch}
 .service-landing .service-actions{gap:10px}
 .service-landing .service-actions .button{font-size:12px;gap:8px;padding:12px 10px}
 .software-fit{gap:30px}
 .software-fit h2,.software-practical h2{font-size:32px}
 .software-fit p{font-size:14px}
 .software-system{min-height:420px}
 .software-paper{padding:16px;height:145px}
 .software-paper span{font-size:12px}
 .software-workspace{padding:20px 17px;top:39%}
 .software-workspace>strong{font-size:21px;margin-bottom:17px}
 .software-workspace-row{font-size:13px;padding:12px 9px;gap:10px}
 .software-work{padding-top:55px}
 .software-work-grid{grid-template-columns:1fr;gap:45px}
 .software-work-grid h3{font-size:28px}
 .software-work-grid .project-tags{margin-top:20px}
 .software-work-grid .text-link{font-size:14px}
 .software-process .process-intro h2{font-size:32px}
 .software-process .process-art{margin:30px 0 35px;max-width:310px;padding:22px}
 .software-process .process-steps h3{font-size:24px}
 .software-process .process-steps p{font-size:14px}
 .software-process .deliverable{font-size:12px}
 .software-questions summary{font-size:15px}
 .software-enquiry h2{font-size:35px}
}
@media(prefers-reduced-motion:reduce){.software-case-image img,.software-questions summary svg{transition:none}}

.service-concept-hero .software-system{min-height:0;aspect-ratio:1;display:grid;align-items:center}
.service-concept-hero .software-paper{height:120px;padding:12px}
.service-concept-hero .software-composition{position:relative;display:flow-root;width:100%}
.service-concept-hero .software-paper-tools{top:0}
.service-concept-hero .software-paper-team{top:22%}
.service-concept-hero .software-paper-customers{top:19%}
.service-concept-hero .software-workspace{position:relative;top:auto;margin-top:29%;margin-bottom:6px;padding:16px}
.service-concept-hero .software-workspace>strong{font-size:20px;margin-bottom:14px}
.service-concept-hero .software-workspace-row{font-size:12px;padding:8px}

.software-agreements .agreement-with-icon dt{display:flex;align-items:center;gap:14px}
.software-agreements .agreement-with-icon dt svg{flex-shrink:0;color:var(--olive)}
.software-agreements .agreement-with-icon dd{margin-left:36px}

@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 :is(.service-concept-hero,.software-fit-animated) .software-system{transition:transform .5s cubic-bezier(.16,1,.3,1),box-shadow .5s}
 :is(.service-concept-hero,.software-fit-animated) .software-paper,:is(.service-concept-hero,.software-fit-animated) .software-workspace{transition:transform .55s cubic-bezier(.16,1,.3,1),box-shadow .4s}
 :is(.service-concept-hero,.software-fit-animated) .software-system:hover{transform:translateY(-3px);box-shadow:0 16px 32px #20251c0a}
 :is(.service-concept-hero,.software-fit-animated) .software-system:hover .software-paper-tools{transform:translateY(-10px) rotate(1deg)}
 :is(.service-concept-hero,.software-fit-animated) .software-system:hover .software-paper-team{transform:translate(-8px,-4px) rotate(-13deg)}
 :is(.service-concept-hero,.software-fit-animated) .software-system:hover .software-paper-customers{transform:translate(8px,-3px) rotate(11deg)}
 :is(.service-concept-hero,.software-fit-animated) .software-system:hover .software-workspace{transform:translateY(7px) rotate(-1deg)}
 :is(.service-concept-hero,.software-fit-animated) .software-system .software-paper-tools:hover{transform:translateY(-18px) rotate(3deg)}
 :is(.service-concept-hero,.software-fit-animated) .software-system .software-paper-team:hover{transform:translate(-12px,-14px) rotate(-16deg)}
 :is(.service-concept-hero,.software-fit-animated) .software-system .software-paper-customers:hover{transform:translate(12px,-13px) rotate(14deg)}
 :is(.service-concept-hero,.software-fit-animated) .software-system .software-workspace:hover{transform:translateY(2px) rotate(0deg);box-shadow:0 20px 35px #20251c18}
 :is(.service-concept-hero,.software-fit-animated) .software-system:hover .software-workspace-row svg{animation:workflow-check .5s cubic-bezier(.16,1,.3,1) both}
 :is(.service-concept-hero,.software-fit-animated) .software-system:hover .software-workspace-row:nth-of-type(2) svg{animation-delay:.12s}
 :is(.service-concept-hero,.software-fit-animated) .software-system:hover .software-workspace-row:nth-of-type(3) svg{animation-delay:.24s}
}
@keyframes workflow-check{from{opacity:.35;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}

@media(min-width:801px){
 .software-fit-animated>div:first-child{grid-column:2;grid-row:1}
 .software-fit-animated>.software-system{grid-column:1;grid-row:1}
}

/* Separate teams and tools settle into a shared workspace on viewport entry. */
@media(prefers-reduced-motion:no-preference){
 .software-system-motion.is-animating .software-paper-tools{animation:software-tools-connect 1.8s cubic-bezier(.16,1,.3,1) both}
 .software-system-motion.is-animating .software-paper-team{animation:software-team-connect 1.8s .15s cubic-bezier(.16,1,.3,1) both}
 .software-system-motion.is-animating .software-paper-customers{animation:software-customers-connect 1.8s .3s cubic-bezier(.16,1,.3,1) both}
 .software-system-motion.is-animating .software-workspace{animation:software-workspace-connect 1.6s .55s cubic-bezier(.16,1,.3,1) both}
 .software-system-motion.is-animating .software-workspace-row svg{animation:workflow-check .65s 1.1s cubic-bezier(.16,1,.3,1) both}
 .software-system-motion.is-animating .software-workspace-row:nth-of-type(2) svg{animation-delay:1.4s}
 .software-system-motion.is-animating .software-workspace-row:nth-of-type(3) svg{animation-delay:1.7s}
 .software-system-motion.is-animating .software-paper i{transform-origin:left;animation:software-record-connect 1.4s .5s cubic-bezier(.16,1,.3,1) both}
}
@keyframes software-tools-connect{from{transform:translateY(-22px) rotate(-6deg)}to{transform:rotate(-2deg)}}
@keyframes software-team-connect{from{transform:translate(-25px,10px) rotate(-17deg)}to{transform:rotate(-10deg)}}
@keyframes software-customers-connect{from{transform:translate(25px,10px) rotate(15deg)}to{transform:rotate(8deg)}}
@keyframes software-workspace-connect{from{transform:translateY(26px) rotate(0deg)}to{transform:rotate(-3deg)}}
@keyframes software-record-connect{from{transform:scaleX(.6);opacity:.4}to{transform:scaleX(1);opacity:1}}
