/* A separate software funnel using Swift's existing type and color system. */
/* Warm surfaces carry the layout; teal is reserved for actions and state. */
.software-page {
 --ink:#1d1e1c; --line:#d2ccc2; --muted:#615e58;
 --sw-accent:#007c6a; --sw-surface:#fcfaf6; --sw-stone:#e9e3da;
 --sw-line:#d2ccc2; --sw-muted:#615e58; --sw-on-dark:#c3c1ba;
 --sw-ease:cubic-bezier(.22,1,.36,1); background:var(--paper);
}
.software-page .container { max-width:1440px; }
.software-page [hidden] { display:none!important; }
.software-page section, #experience { scroll-margin-top:8px; }
.software-page .text-link { min-height:44px; }
.software-page a.button { --button-height:44px; --button-inset:20px; border-radius:10px; }
.software-page .site-header .header-inner>.button { --button-inset:14px; }
.software-page .mono { font-size:11px; letter-spacing:.04em; }
.sw-hero { background:var(--hero); padding:28px 0 clamp(40px,5.5vw,80px); overflow:clip; }
.sw-hero-grid { display:grid; grid-template-columns:1fr 1fr; gap:clamp(25px,3vw,48px); align-items:center; }
.sw-hero h1 { font-size:clamp(65px,7.8vw,120px); line-height:.96; letter-spacing:-.028em; }
.sw-hero h1 span { color:#006b5a; }
.sw-lead { font-size:20px; line-height:1.5; max-width:460px; margin-top:28px; }
.sw-actions { display:flex; align-items:center; gap:10px 23px; flex-wrap:wrap; margin-top:28px; }
.sw-section { padding:clamp(76px,8vw,116px) 0; }
.sw-section-head { display:grid; grid-template-columns:1fr 1fr; gap:22px 70px; margin-bottom:36px; }
.sw-section-head>p { align-self:end; max-width:450px; font-size:17px; }
.sw-section h2 { font-size:clamp(40px,4.5vw,68px); }
.sw-section-note { font-size:13px; color:var(--sw-on-dark); max-width:950px; }

/* One story per choice. The same content becomes an inline accordion on mobile. */
.sw-experience { background:var(--hero); padding-top:25px; padding-bottom:110px; }
.sw-experience .sw-section-head>p { color:var(--sw-muted); }
.sw-showcase { position:relative; }
.sw-offering { padding:14px 0; }
.sw-offering h3 { font:600 clamp(23px,2.3vw,34px)/1.2 var(--body); letter-spacing:-.03em; text-transform:none; }
.sw-choice { scroll-margin-top:8px; display:block; width:100%; min-height:48px; padding:8px 0 8px 24px; border:0; position:relative; border-radius:3px; color:var(--sw-muted); background:transparent; text-align:left; font:inherit; letter-spacing:inherit; transition:color .25s ease; }
.sw-choice:hover { color:var(--ink); }
.sw-choice[aria-expanded=true] { color:#006b5a; }
.sw-choice:focus-visible { outline:3px solid #007c6a; outline-offset:5px; }
.sw-example-copy { max-width:420px; padding:12px 0 16px 24px; }
.sw-example-copy p { font-size:15px; line-height:1.6; color:var(--sw-muted); }
.sw-example-copy .sw-example-lead { font-size:19px; line-height:1.4; color:var(--ink); max-width:360px; }
.sw-example-copy p+p { margin-top:14px; }
.sw-example-copy .sw-capabilities { margin-top:20px; font-size:12px; line-height:1.8; color:var(--sw-muted); }
.sw-example-disclosure { font-size:11px; color:var(--sw-muted); max-width:860px; margin-top:28px; }
.js-enhanced .sw-showcase { padding-right:57%; min-height:max(var(--showcase-art-height,550px),480px); }
.js-enhanced .sw-showcase .sw-scene { position:absolute; top:0; right:0; width:53%; }
.js-enhanced .sw-offering:first-child { padding-top:0; }
.js-enhanced .sw-example:not([hidden]) .sw-example-copy { animation:sw-reveal .3s ease-out both; }
.js-enhanced .sw-example:not([hidden]) .sw-scene { animation:sw-reveal .45s ease-out both; }
@keyframes sw-reveal { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

.sw-questions { background:var(--paper); }
.sw-faq-grid { display:grid; grid-template-columns:.9fr 1.1fr; gap:70px; }
.sw-faq-grid h2 { font-size:clamp(36px,4vw,58px); }
.sw-faq-grid>div>p { margin-top:25px; font-size:16px; color:var(--sw-muted); }
.sw-faq-grid .faqs { margin:0; }
.sw-faq-grid .faqs summary { font-size:17px; }
.sw-faq-grid .faqs details>p { font-size:15px; }

.sw-booking { background:var(--ink); color:var(--paper); border-radius:48px 48px 0 0; }
.sw-booking-grid { display:flex; align-items:center; justify-content:space-between; gap:45px; }
.sw-booking h2 { font-size:clamp(40px,4.2vw,64px); }
.sw-booking h2 span { color:var(--paper); }
.sw-booking-grid>div>p { font-size:17px; margin-top:22px; color:var(--sw-on-dark); }
.sw-booking-action { flex-shrink:0; }
.sw-booking .sw-booking-button { --booking-fill:var(--paper); --booking-hover:#e4ded3; --booking-text:var(--ink); min-height:44px; padding:0; border:0; border-radius:10px; background:var(--booking-fill); color:var(--booking-text); font-size:15px; font-weight:500; cursor:pointer; }
.sw-booking .sw-booking-button:hover { background:var(--booking-hover); color:var(--booking-text); }
.sw-booking .sw-booking-button:focus-visible { outline:3px solid var(--paper); outline-offset:5px; }
.sw-booking .sw-booking-action>p { font-size:12px; line-height:1.6; margin-top:13px; color:var(--sw-on-dark); }
.software-page .footer-main nav { flex-wrap:wrap; gap:10px 25px; }
.software-page .footer-main nav a { display:inline-flex; align-items:center; min-height:44px; }
.software-page .footer-main .text-link { font-size:14px; }
@media (min-width:981px) and (max-width:1120px) {
 .software-page .desktop-nav { display:none; }
 .software-page .menu-toggle { display:flex; }
 .software-page .header-inner>.button { margin-left:auto; }
}
@media (max-width:980px) {
 .sw-hero { padding-top:35px; }.sw-hero-grid { grid-template-columns:1fr 1fr; gap:25px; }.sw-hero h1 { font-size:clamp(48px,7.2vw,75px); }.sw-lead { font-size:19px; }
 .sw-section { padding-block:60px; }.sw-section-head { gap:20px 35px; }
 .sw-offering { padding-block:14px; }.sw-offering h3 { font-size:24px; }.sw-example-copy .sw-example-lead { font-size:18px; }.sw-example-copy p { font-size:14px; }
 .sw-faq-grid { gap:35px; }
}
@media (max-width:700px) {
 .software-page .container { padding-inline:24px; }
 .sw-hero-grid { grid-template-columns:1fr; gap:32px; }.sw-hero h1 { font-size:clamp(54px,12.5vw,86px); }.sw-lead { font-size:20px; margin-top:24px; }.sw-actions { gap:8px 20px; margin-top:22px; }
 .sw-section { padding-block:48px; }.sw-delivery,.sw-booking { border-radius:32px 32px 0 0; }
 .sw-section-head { display:block; margin-bottom:26px; }.sw-section h2 { font-size:clamp(38px,8.5vw,58px); }.sw-section-head>p { font-size:16px; margin-top:22px; }
 .js-enhanced .sw-showcase { padding-right:0; min-height:0; }
 .js-enhanced .sw-showcase .sw-scene { position:static; width:100%; }
 .sw-offering { padding:10px 0; }.sw-offering h3 { font-size:25px; }.sw-choice { padding-block:12px; }
 .sw-example-copy { padding-top:7px; max-width:100%; }.sw-example-copy p { font-size:15px; }.sw-example-copy .sw-example-lead { font-size:18px; max-width:100%; }.sw-example-copy .sw-capabilities { font-size:11px; margin-top:14px; }
 .sw-example-disclosure { margin-top:20px; }.sw-scene { margin-bottom:15px; }
 .sw-section-note { font-size:12px; line-height:1.6; }
 .sw-faq-grid { grid-template-columns:1fr; gap:30px; }
 .sw-faq-grid .faqs summary { font-size:16px; }.sw-faq-grid>div>p { font-size:15px; }
 .sw-booking-grid { flex-direction:column; align-items:flex-start; gap:26px; }.sw-booking-grid>div>p { font-size:16px; margin-top:18px; }.sw-booking .sw-booking-action>p { font-size:12px; margin-top:12px; }
 .software-page .footer-main nav { gap:4px 24px; }
}

/* Commissioned 3D artwork; workflow labels stay accessible website text. */
.sw-hero-copy { padding-block:30px; }
.sw-hero-art { margin:0; min-width:0; position:relative; }
.sw-hero-stage { aspect-ratio:1; }
.sw-motion-stage { position:relative; isolation:isolate; overflow:hidden; --art-edge:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent),linear-gradient(to bottom,transparent,#000 10%,#000 88%,transparent); -webkit-mask-image:var(--art-edge); mask-image:var(--art-edge); -webkit-mask-composite:source-in; mask-composite:intersect; }
.sw-motion-stage img { display:block; width:100%; height:100%; object-fit:cover; }
.sw-motion-stage video { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; visibility:hidden; opacity:0; transition:opacity .3s ease; }
.sw-motion-stage.is-started video { visibility:visible; opacity:1; }
.sw-scene { margin:0; min-width:0; }
.sw-scene-art { aspect-ratio:4/3; --art-edge:linear-gradient(to right,transparent,#000 8%,#000 92%,transparent),linear-gradient(to bottom,transparent,#000 12%,#000 87%,transparent); }
.sw-scene figcaption { padding-top:8px; }
.sw-scene-caption-head { margin-bottom:18px; }
.sw-scene-label { color:var(--sw-muted); margin:0; font-size:9px!important; }
.sw-scene-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); list-style:none; gap:18px; margin:0; padding:0; }
.sw-scene-flow li { position:relative; padding-top:15px; border-top:1px solid var(--sw-line); }
.sw-scene-flow strong { display:block; font-size:13px; font-weight:600; line-height:1.4; }
.sw-scene-flow li>span:last-child { display:block; font-size:12px; line-height:1.5; color:var(--sw-muted); margin-top:6px; }
.sw-scene.is-inview .sw-scene-flow li:before { content:''; position:absolute; top:-1px; left:0; width:100%; height:2px; background:#007c6a; transform-origin:left; animation:sw-flow-trace 1s ease-out both; }
.sw-scene.is-inview .sw-scene-flow li:nth-child(2):before { animation-delay:.75s; }
.sw-scene.is-inview .sw-scene-flow li:nth-child(3):before { animation-delay:1.5s; }
@keyframes sw-flow-trace { from { transform:scaleX(0); } to { transform:scaleX(1); } }
@media (max-width:980px) { .sw-hero-copy { padding-block:20px; }.sw-scene-flow { gap:12px; }.sw-scene-flow strong { font-size:12px; }.sw-scene-flow li>span:last-child { font-size:11px; } }
@media (max-width:700px) {
 .sw-hero { padding-top:14px; }.sw-hero-copy { padding-block:12px 0; }.sw-hero-grid { gap:30px; }.sw-hero h1 { font-size:clamp(64px,14.8vw,102px); line-height:.95; }.sw-hero h1 span br { display:none; }.sw-hero h1 span { display:block; }.sw-lead { font-size:18px; max-width:480px; }.sw-hero-art { width:100%; max-width:520px; justify-self:center; }.sw-scene-flow { gap:12px; }.sw-scene-flow strong { font-size:12px; }.sw-scene-flow li>span:last-child { font-size:11px; }.sw-scene figcaption { padding-top:8px; }
}
@media (max-width:374px) { .sw-hero h1 { font-size:15vw; }.sw-scene-flow { gap:9px; }.sw-scene-flow strong { font-size:11px; } }

@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; }.software-page *, .software-page *:before,.software-page *:after { animation:none!important; transition:none!important; } }

/* A connected system: quiet navigation, deliberate entrances, useful state changes. */
.software-page .desktop-nav { gap:22px; }
.software-page .desktop-nav .sw-service-link { color:var(--sw-muted); }
.software-page .site-header[data-tone=dark] .sw-service-link { color:var(--sw-on-dark); }
.software-page .sw-choice:before { content:''; position:absolute; left:0; top:50%; width:7px; height:7px; border:1px solid #8a867f; border-radius:50%; transform:translateY(-50%); transition:background .3s,border-color .3s; }
.software-page .sw-choice[aria-expanded=true]:before { background:var(--sw-accent); border-color:var(--sw-accent); box-shadow:0 0 0 5px #007c6a10; }
.sw-section-head h2 { max-width:700px; }
.sw-experience .sw-section-head { margin-bottom:48px; }
.software-page .sw-scene-flow li { border-top-color:var(--sw-line); }
.sw-delivery { background:var(--ink); color:var(--paper); border-radius:clamp(32px,4.4vw,64px) clamp(32px,4.4vw,64px) 0 0; }
.sw-delivery .sw-section-head>p { color:var(--sw-on-dark); }
.sw-delivery .sw-section-head { grid-template-columns:1.15fr .85fr; margin-bottom:56px; }
.sw-method { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(36px,6vw,85px); align-items:center; }
.sw-method-step { position:relative; padding:19px 0; }
.sw-method-step:first-child { padding-top:0; }
.sw-method-step h3 { font:600 28px/1.2 var(--body); text-transform:none; letter-spacing:-.035em; }
.sw-method-step button { display:flex; align-items:center; gap:18px; width:100%; min-height:44px; text-align:left; font:inherit; letter-spacing:inherit; color:#aaa79f; background:none; border:0; padding:0; }
.sw-method-step button:hover { color:var(--paper); }
.sw-stage-mark { width:11px; height:11px; flex:0 0 11px; border:1px solid #8a867f; border-radius:50%; transition:background .3s,box-shadow .3s; }
.sw-method-step button[aria-expanded=true] { color:var(--paper); }
.sw-method-step button[aria-expanded=true] .sw-stage-mark { background:var(--paper); border-color:var(--paper); box-shadow:0 0 0 5px #f5f2eb12; }
.sw-method-step>p { font-size:15px; color:var(--sw-on-dark); line-height:1.65; padding:12px 0 5px 29px; max-width:405px; }
.js-enhanced .sw-method-step:not(.is-selected)>p { display:none; }
.sw-method-views { min-width:0; }
.sw-method-view { color:var(--ink); background:var(--paper); border:1px solid var(--sw-line); border-radius:19px; overflow:hidden; }
.sw-method-view+.sw-method-view { margin-top:24px; }
.js-enhanced .sw-method-view+.sw-method-view { margin-top:0; }
.js-enhanced .sw-method-view:not([hidden]) { animation:sw-map-enter .6s var(--sw-ease) both; }
.sw-map-toolbar { padding:20px 24px; display:flex; gap:9px; align-items:center; border-bottom:1px solid var(--sw-line); color:var(--ink); font-size:12px; }
.sw-map-dot { width:6px; height:6px; border-radius:50%; background:var(--sw-accent); }
.sw-map-category { margin-left:auto; color:var(--sw-muted); font:10px var(--body); }
.sw-map-note { padding:19px 24px; border-top:1px solid var(--sw-line); color:var(--sw-muted); font-size:12px; line-height:1.6; min-height:77px; }
.sw-scope-map { min-height:350px; position:relative; display:grid; grid-template-columns:1fr 1fr; gap:130px 28px; padding:28px; background-image:radial-gradient(#77716826 .75px,transparent .75px); background-size:18px 18px; }
.sw-map-node { position:relative; z-index:1; background:var(--sw-surface); border:1px solid var(--sw-line); padding:15px 17px; border-radius:9px; }
.sw-map-node>span { display:block; font-size:10px; color:var(--sw-muted); margin-bottom:5px; }
.sw-map-node>strong { font-size:13px; font-weight:400; color:var(--ink); }
.sw-map-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); display:flex; align-items:center; gap:17px; background:var(--ink); color:var(--paper); border-radius:14px; padding:18px 24px; box-shadow:0 8px 24px #00000012; }
.sw-map-center:before,.sw-map-center:after { content:''; position:absolute; width:1px; height:50px; background:#9b958b; left:50%; }
.sw-map-center:before { bottom:100%; }.sw-map-center:after { top:100%; }
.sw-map-center strong { font:600 18px/1.2 var(--body); white-space:nowrap; letter-spacing:-.025em; }
.sw-core-symbol { display:block; width:30px; height:35px; position:relative; flex-shrink:0; }
.sw-core-symbol i { position:absolute; width:22px; height:22px; border:1px solid currentColor; transform:rotate(30deg) skew(-5deg); left:4px; top:0; border-radius:3px; opacity:.6; }
.sw-core-symbol i:nth-child(2) { top:6px; }.sw-core-symbol i:nth-child(3) { top:12px; }
.sw-design-map,.sw-build-map,.sw-launch-map { min-height:350px; padding:28px; }
.sw-journey { display:flex; justify-content:space-between; gap:10px; margin-bottom:28px; }
.sw-journey>div { font-size:10px; color:var(--sw-muted); display:flex; flex-direction:column; gap:10px; flex:1; position:relative; }
.sw-journey>div:not(:last-child):after { content:''; position:absolute; height:1px; background:var(--sw-line); top:4px; left:14px; right:0; }
.sw-journey-dot { width:9px; height:9px; border-radius:50%; background:var(--ink); }
.sw-wire-window { display:flex; border:1px solid var(--sw-line); background:var(--sw-surface); color:var(--ink); border-radius:9px; min-height:175px; box-shadow:0 10px 30px #0003; }
.sw-wire-sidebar { width:48px; padding:18px 12px; border-right:1px solid var(--sw-line); display:flex; flex-direction:column; gap:16px; }
.sw-wire-sidebar i { width:21px; height:4px; background:#aaa297; }
.sw-wire-content { padding:20px 25px; flex:1; }
.sw-wire-overline { display:block; font-size:9px; margin-bottom:8px; color:var(--sw-muted); }
.sw-wire-content>strong { font-size:20px; font-weight:600; letter-spacing:-.025em; }
.sw-wire-lines { display:grid; gap:5px; margin:13px 0; }.sw-wire-lines i { width:90%; max-width:250px; background:#d9d2c7; height:4px; }.sw-wire-lines i:last-child { width:70%; }
.sw-wire-fields { display:flex; gap:8px; margin-bottom:14px; }.sw-wire-fields i { height:16px; border:1px solid var(--sw-line); border-radius:3px; width:32%; }
.sw-wire-action { display:inline-block; padding:7px 13px; color:var(--paper); background:var(--sw-accent); border-radius:4px; font-size:9px; }
.sw-definition-tags { display:flex; gap:18px; margin-top:18px; color:var(--sw-muted); font-size:10px; flex-wrap:wrap; }
.sw-build-map { display:flex; gap:28px; align-items:center; }
.sw-build-core { flex:1; display:flex; flex-direction:column; align-items:flex-start; color:var(--ink); gap:25px; }.sw-build-core>strong { font-size:27px; font-weight:400; letter-spacing:-.04em; line-height:1.15; }.sw-build-core>span:last-child { font-size:11px; max-width:130px; color:var(--sw-muted); }
.sw-test-list { list-style:none; margin:0; padding:0; flex:1.3; display:grid; gap:12px; }.sw-test-list li { border:1px solid var(--sw-line); background:var(--sw-surface); border-radius:7px; padding:16px 12px; display:flex; align-items:center; gap:10px; font-size:12px; color:var(--ink); }.sw-test-list li>span { width:11px; height:11px; border:1px solid #7d766b; border-radius:3px; flex-shrink:0; }
.sw-release-path { display:flex; margin:15px 0 45px; }.sw-release-path>div { flex:1; position:relative; }.sw-release-path>div>span { display:block; width:12px; height:12px; border:1px solid var(--sw-accent); background:var(--sw-accent); border-radius:50%; margin-bottom:17px; }.sw-release-path>div:not(:last-child):after { content:''; height:1px; background:var(--sw-line); position:absolute; top:5px; left:21px; right:10px; }.sw-release-path strong { font-size:14px; font-weight:400; }.sw-release-path small { display:block; color:var(--sw-muted); font-size:10px; margin-top:7px; }
.sw-handover { display:flex; align-items:center; gap:25px; padding:25px; border-radius:9px; background:var(--sw-stone); color:var(--ink); }.sw-handover>div>span { font-size:10px; display:block; margin-bottom:8px; }.sw-handover strong { font-size:23px; line-height:1.2; font-weight:400; letter-spacing:-.03em; }
.sw-method-view:not([hidden]) .sw-map-node,.sw-method-view:not([hidden]) .sw-test-list li,.sw-method-view:not([hidden]) .sw-release-path>div { animation:sw-map-enter .65s var(--sw-ease) both; }
.sw-method-view:not([hidden]) :is(.sw-map-node,.sw-test-list li,.sw-release-path>div):nth-child(2) { animation-delay:.1s; }.sw-method-view:not([hidden]) :is(.sw-map-node,.sw-test-list li,.sw-release-path>div):nth-child(3) { animation-delay:.2s; }.sw-method-view:not([hidden]) :is(.sw-map-node,.sw-test-list li,.sw-release-path>div):nth-child(4) { animation-delay:.3s; }
@keyframes sw-map-enter { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:none; } }
.sw-faq-grid .faqs summary:after { content:'+'; font-size:24px; line-height:1; font-weight:400; color:var(--sw-muted); }
.sw-faq-grid .faqs details[open] summary:after { content:'−'; }
.sw-faq-grid .faqs details { padding-block:22px; }
.sw-booking { border-radius:clamp(32px,4.4vw,64px) clamp(32px,4.4vw,64px) 0 0; }
.sw-booking h2 { font-size:clamp(42px,5vw,75px); }
.software-page .footer-main nav { max-width:390px; }
.software-page .site-footer { background:var(--paper); }
.sw-reveal-ready [data-reveal] { opacity:0; transform:translateY(24px); transition:opacity .75s var(--sw-ease),transform .75s var(--sw-ease); transition-delay:var(--reveal-delay,0ms); }
.sw-reveal-ready [data-reveal].is-revealed { opacity:1; transform:none; }
@media (max-width:1120px) { .software-page .desktop-nav { display:none; }.software-page .menu-toggle { display:flex; }.software-page .header-inner>.button { margin-left:auto; } }
@media (max-width:980px) {
 .sw-method { grid-template-columns:.75fr 1.25fr; gap:28px; }.sw-method-step h3 { font-size:23px; }.sw-method-step>p { font-size:14px; padding-left:27px; }
 .sw-scope-map,.sw-design-map,.sw-build-map,.sw-launch-map { padding:23px; }.sw-map-node { padding:13px; }.sw-map-node>strong { font-size:11px; }.sw-map-toolbar { padding-inline:20px; }.sw-map-category { display:none; }
 .sw-map-center { padding:18px; gap:12px; }.sw-map-center strong { font-size:16px; }.sw-build-map { gap:17px; }.sw-test-list li { font-size:10px; padding:16px 10px; }.sw-build-core>strong { font-size:23px; }
 .sw-handover { padding:20px; gap:18px; }.sw-handover strong { font-size:21px; }.sw-release-path small { font-size:9px; }
}
@media (max-width:700px) {
 .sw-experience { padding-top:24px; padding-bottom:64px; }.sw-experience .sw-section-head { margin-bottom:28px; }
 .sw-method { grid-template-columns:1fr; gap:28px; }.sw-delivery .sw-section-head { margin-bottom:30px; }
 .sw-method-choices { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 16px; }
 .sw-method-step { display:contents; }.sw-method-step h3 { font-size:18px; }.sw-method-step button { min-height:48px; gap:10px; }.sw-stage-mark { width:8px; height:8px; flex-basis:8px; }
 .sw-method-step>p { grid-column:1/-1; order:1; font-size:15px; max-width:100%; padding:12px 0 0; min-height:88px; }
 .sw-scope-map { min-height:330px; gap:120px 18px; }.sw-map-toolbar { font-size:11px; padding:17px 20px; }.sw-map-note { font-size:11px; min-height:70px; padding:16px 20px; }
 .sw-design-map,.sw-build-map,.sw-launch-map { min-height:330px; }.sw-wire-content { padding:17px; }.sw-wire-content>strong { font-size:18px; }.sw-wire-sidebar { width:38px; padding-inline:8px; }.sw-definition-tags { gap:10px; font-size:9px; }
 .sw-build-map { gap:17px; }.sw-test-list li { font-size:10px; }.sw-build-core>strong { font-size:23px; }
 .sw-handover strong { font-size:20px; }.sw-release-path strong { font-size:12px; }.sw-release-path small { max-width:70px; }
 .sw-faq-grid .faqs details:first-child { padding-top:0; }.sw-booking { padding-block:60px; }
}
@media (max-width:374px) {
 .sw-map-node>strong { font-size:10px; }.sw-map-node { padding:11px; }.sw-scope-map,.sw-design-map,.sw-build-map,.sw-launch-map { padding:17px; }
 .sw-wire-content>strong { font-size:16px; }.sw-wire-content { padding:15px; }.sw-journey>div { font-size:9px; }.sw-handover { padding:17px; }.sw-handover strong { font-size:17px; }.sw-method-step h3 { font-size:16px; }
}
@media (prefers-reduced-motion:reduce) {
 .sw-reveal-ready [data-reveal] { opacity:1!important; transform:none!important; }
}

/* Match header and focus contrast to each neutral surface. */
.software-page .site-header[data-surface=ink] { --header-surface:var(--ink); }
.software-page .site-header[data-tone=dark] { --booking-fill:var(--paper); --booking-hover:#e4ded3; --booking-text:var(--ink); }
.software-page .sw-faq-grid .faqs details>p { color:var(--sw-muted); }
.software-page :is(.sw-delivery,.sw-booking,.site-header[data-tone=dark]) :focus-visible { outline-color:var(--paper); }
