@layer components{.so-theme{background-color:var(--color-background);color:var(--color-ink)}.so-work{background-color:var(--color-background)}.so-work .section-heading-copy>.t-lead{max-inline-size:68ch}.so-subheading{font-size:1.0625rem;font-weight:500;line-height:1.5}.so-range-intro{max-width:64rem}.so-range-grid,.so-need-grid,.so-need-details,.so-case,.so-proof,.so-references,.so-requirements{gap:2rem;display:grid}.so-range-image{aspect-ratio:3;object-fit:cover;border-radius:.5rem;width:100%;margin-bottom:1.25rem;display:block}.so-range-grid p,.so-requirements p,.so-references p{color:var(--color-body);margin-top:.875rem;font-size:.9375rem;line-height:1.75}.so-range-links{flex-wrap:wrap;gap:1.25rem 2.5rem;margin-top:3.5rem;font-size:.875rem;display:flex}.so-needs-sheet{border:1px solid var(--color-line);background-color:var(--color-background);border-radius:.75rem}.so-tabs:not([hidden]){border-bottom:1px solid var(--color-line);background-color:var(--color-surface);border-radius:.75rem .75rem 0 0;grid-template-columns:repeat(2,minmax(0,1fr));gap:.25rem;padding:.5rem;display:grid;position:relative;overflow:hidden}.so-tabs button{z-index:1;min-width:0;min-height:3.25rem;color:var(--color-body);cursor:pointer;border-radius:999px;padding:.875rem .75rem;font-size:.875rem;font-weight:500;transition:color .2s;position:relative}.so-tab-indicator{width:var(--tab-width);height:var(--tab-height);transform:translate(var(--tab-x), var(--tab-y));background:var(--color-ink);pointer-events:none;border-radius:999px;position:absolute;top:0;left:0;box-shadow:0 3px 8px #1113151f}.so-tabs[data-animated] .so-tab-indicator{transition:transform .38s cubic-bezier(.22,1,.36,1),width .38s cubic-bezier(.22,1,.36,1),height .38s cubic-bezier(.22,1,.36,1)}.so-tabs button[aria-selected=true]{color:var(--color-onprimary)}.so-tabs button:hover:not([aria-selected=true]){background:var(--color-background)}.so-tabs button:focus-visible,.so-need:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.so-need[hidden]{display:none}[data-solution-needs][data-ready] .so-need:not([hidden]){animation:.22s ease-out so-panel-in}@keyframes so-panel-in{0%{opacity:.6}to{opacity:1}}.so-need{padding:clamp(1.25rem,3vw,2.5rem)}.so-need:focus-visible{outline-offset:-4px}.so-media{min-width:0}.so-media img{width:100%;height:auto;display:block}.so-need-media img{aspect-ratio:4/3;object-fit:cover}#procurement-delivery .so-need-media img{object-position:50% 48%}.so-media figcaption{color:var(--color-mute);margin-top:.75rem;font-size:.8125rem;line-height:1.6}.so-intro{color:var(--color-body);margin-top:1.25rem;font-size:1rem;line-height:1.75}.so-detail{border-top:1px solid var(--color-line);margin-top:1.5rem;padding-top:1.25rem}.so-detail p,.so-need-details p{color:var(--color-body);margin-top:.625rem;font-size:.9375rem;line-height:1.75}.so-products{flex-wrap:wrap;gap:.5rem;display:flex}.so-products li{background:var(--color-background);padding:.375rem .625rem;font-size:.8125rem}.so-link{gap:.375rem;margin-top:1.5rem;font-size:.875rem;display:inline-flex}.so-need-details{border-top:1px solid var(--color-line);margin-top:2rem;padding-top:1.75rem}.so-bring{border-left:2px solid var(--color-accent);padding-left:1.25rem}.so-need+.so-need{border-top:1px solid var(--color-line)}.so-open{flex-wrap:wrap;justify-content:space-between;gap:1.25rem;margin-top:2.5rem;font-size:.9375rem;display:flex}.so-open a{flex-shrink:0;font-size:.875rem}.so-case{align-items:start;row-gap:2.5rem}.so-case-heading{max-inline-size:64ch;margin-block-end:1.75rem}.so-case-heading h3{max-inline-size:28ch}.so-proof{grid-template-columns:minmax(0,1fr);gap:1rem}.so-facts{margin-block:0 1.5rem}.so-facts>div{border-top:1px solid var(--color-line);padding-block:1rem}.so-facts dt{margin-bottom:.5rem;font-size:.875rem;font-weight:500}.so-facts dd{color:var(--color-body);font-size:.9375rem;line-height:1.75}.so-case-copy>a{font-size:.875rem}.so-case-next{margin-block:1.75rem}.so-case-next p{color:var(--color-body);margin-block-start:.75rem;font-size:.9375rem;line-height:1.75}.so-references{border-top:1px solid var(--color-line);margin-top:3rem;padding-top:2.5rem}.so-references img{aspect-ratio:16/10;object-fit:cover}.so-poolside img{object-position:center 85%}.so-reference-detail{margin-top:1.5rem}.so-reference-detail img{aspect-ratio:16/9;object-fit:cover;object-position:center 40%}.so-reference-subtitle,.so-references h3{margin-top:1.25rem}.so-requirements{gap:1rem;position:relative}.so-requirement{flex-direction:column;min-width:0;display:flex}.so-requirement-node{text-align:left;min-height:3.25rem;color:var(--color-body);cursor:pointer;align-items:flex-start;gap:.625rem;padding-bottom:.5rem;font-size:.6875rem;font-weight:500;display:flex;position:relative}.so-requirement-node:before{content:"";top:1.875rem;background:var(--color-line);height:2px;transition:background .28s;position:absolute;inset-inline:0}.so-requirement[data-reached=true] .so-requirement-node:before{background:var(--color-accent)}.so-requirement-number{z-index:1;width:1.875rem;height:1.875rem;color:var(--color-onprimary);background:var(--color-body);border-radius:50%;flex-shrink:0;place-items:center;margin-top:.9375rem;transition:background .28s;display:grid;position:relative}.so-requirement[data-active=true] .so-requirement-number{background:var(--color-ink)}.so-requirement-node:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px;border-radius:.375rem}.so-requirement-card{border:1px solid var(--color-line);background:var(--color-surface);border-radius:.75rem;flex:1;padding:1.5rem;transition:background .28s,color .28s,box-shadow .28s;position:relative}.so-requirement-card-trigger{z-index:1;border-radius:inherit;cursor:pointer;position:absolute;inset:0}.so-requirement-card-trigger:disabled{display:none}.so-requirement-card-trigger:focus-visible{outline:2px solid var(--color-accent);outline-offset:4px}.so-requirement-card svg{color:var(--color-body);margin-bottom:1.5rem;transition:color .28s}.so-requirement-card h3{font-size:1.125rem;line-height:1.4}.so-requirement[data-active=true] .so-requirement-card{background:var(--color-ink);color:var(--color-onprimary);box-shadow:0 8px 24px #11131524}.so-requirement[data-active=true] p{color:color-mix(in srgb, var(--color-onprimary) 85%, var(--color-ink))}.so-requirement[data-active=true] svg{color:var(--color-accent)}.so-requirements-hint{color:var(--color-body);margin-top:1.25rem;font-size:.8125rem}@media (width>=48rem){.so-tabs:not([hidden]){grid-template-columns:repeat(4,minmax(0,1fr))}.so-tabs button{font-size:.9375rem}.so-proof{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}.so-range-grid,.so-need-details{grid-template-columns:repeat(3,minmax(0,1fr))}.so-references,.so-requirements{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width>=64rem){.so-case{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(2.5rem,4vw,4rem)}.so-case-primary{grid-area:1/1}.so-case-copy{border-left:1px solid var(--color-line);grid-area:1/2/3;padding-left:1.5rem}.so-proof{grid-area:2/1;align-self:start}.so-requirements{grid-template-columns:repeat(4,minmax(0,1fr))}.so-requirements:before,.so-requirements:after{content:"";inset-inline:0;background:var(--color-line);height:2px;position:absolute;top:1.875rem}.so-requirements:after{background:var(--color-accent);transform:scaleX(var(--requirement-progress,0));transform-origin:0;transition:transform .38s cubic-bezier(.22,1,.36,1)}.so-requirement-node:before{display:none}}@media (width>=80rem){.so-need-grid{--so-need-image-height:40rem;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;column-gap:clamp(2rem,3vw,3rem)}.so-need-media img{height:var(--so-need-image-height);aspect-ratio:auto}.so-need-copy{min-height:var(--so-need-image-height);flex-direction:column;display:flex}.so-need-copy>.so-link{margin-top:auto;padding-top:1.5rem}}@media (width>=96rem){.so-need-grid{--so-need-image-height:36rem}}@media (prefers-reduced-motion:reduce){.so-tabs button,.so-tabs[data-animated] .so-tab-indicator,.so-requirements:after,.so-requirement-node:before,.so-requirement-number,.so-requirement-card,.so-requirement-card svg{transition:none}[data-solution-needs][data-ready] .so-need:not([hidden]){animation:none}}}
