*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--canvas);color:var(--text-body);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-body);margin:0;-webkit-font-smoothing:antialiased}img{height:auto;max-width:100%}h1,h2,h3,h4{color:var(--text-primary);font-weight:var(--w-bold);line-height:var(--lh-head);margin:0;text-wrap:balance}p{margin:0}a{color:var(--link);text-underline-offset:3px}a:visited{color:var(--link-visited)}a:hover{text-decoration-thickness:2px}:focus-visible{border-radius:2px;outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;scroll-behavior:auto!important;transition:none!important}}.sr-only{height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;clip:rect(0 0 0 0);border:0;white-space:nowrap}[hidden]{display:none!important}.skip-link{background:var(--accent-1);border-radius:var(--radius);color:var(--text-on-accent);font-weight:var(--w-medium);left:var(--sp-2);padding:var(--sp-1) var(--sp-2);position:absolute;top:-100px;z-index:100}.skip-link:focus{top:var(--sp-2)}.dnd-section{padding:0!important}.dnd-section>.row-fluid{margin:0;max-width:none}.row-fluid{display:flex;flex-wrap:wrap;width:100%}.row-fluid>[class*=span]{min-height:1px;min-width:0;width:100%}@media (min-width:768px){.row-fluid>.span6{width:50%}.row-fluid>.span4{width:33.333%}.row-fluid>.span8{width:66.666%}.row-fluid>.span3{width:25%}.row-fluid>.span9{width:75%}}.inner{margin:0 auto;max-width:var(--wrap);padding-left:max(var(--sp-2),env(safe-area-inset-left,0px));padding-right:max(var(--sp-2),env(safe-area-inset-right,0px))}@media (min-width:768px){.inner{padding-left:max(var(--sp-4),env(safe-area-inset-left,0px));padding-right:max(var(--sp-4),env(safe-area-inset-right,0px))}}.band{background:var(--canvas);color:var(--text-body)}.band>.inner{padding-block:var(--sp-7)}.band--tiivis>.inner{padding-block:var(--sp-5)}.band+.band,.dnd-section+.dnd-section .band{border-top:1px solid var(--stroke)}.stack{gap:var(--sp-2)}.stack,.stack-l{display:flex;flex-direction:column}.stack-l{gap:var(--sp-4)}.head{display:flex;flex-direction:column;gap:var(--sp-2);max-width:var(--measure)}.head--center{align-items:center;margin-inline:auto;text-align:center}.eyebrow{color:var(--accent-2);font-size:var(--fs-label);font-weight:var(--w-medium);letter-spacing:.2em;text-transform:uppercase}.rule{background:var(--rule);border:0;height:2px;margin:0;width:64px}.lead{color:var(--text-secondary);font-size:var(--fs-lead);max-width:58ch}.h-display{font-size:var(--fs-display);letter-spacing:-.025em;line-height:1.08}.h-1,.h-display{font-weight:var(--w-light)}.h-1{font-size:var(--fs-h1);letter-spacing:-.02em}.h-2{font-size:var(--fs-h2);font-weight:var(--w-light);letter-spacing:-.01em}.h-3{font-size:var(--fs-h3)}.h-1 b,.h-1 strong,.h-2 b,.h-2 strong,.h-3,.h-display b,.h-display strong{font-weight:var(--w-bold)}.muted{color:var(--text-muted)}.small{font-size:var(--fs-small)}.rt{display:flex;flex-direction:column;gap:var(--sp-2);max-width:var(--measure)}.rt--leveä{max-width:none}.rt h2{font-size:var(--fs-h2);font-weight:var(--w-light);margin-top:var(--sp-3)}.rt h3{font-size:var(--fs-h3);margin-top:var(--sp-2)}.rt h2:first-child,.rt h3:first-child{margin-top:0}.rt ol,.rt ul{display:flex;flex-direction:column;gap:var(--sp-1);margin:0;padding-left:1.25em}.rt strong{color:var(--text-primary);font-weight:var(--w-medium)}.rt blockquote{border-left:2px solid var(--accent-1);color:var(--text-primary);font-size:var(--fs-lead);margin:0;padding-left:var(--sp-3)}.rt table,.taulukko{border-collapse:collapse;font-size:var(--fs-small);width:100%}.rt td,.rt th,.taulukko td,.taulukko th{border-bottom:1px solid var(--stroke);padding:12px 16px 12px 0;text-align:left;vertical-align:top}.rt th,.taulukko th{color:var(--text-muted);font-size:var(--fs-label);font-weight:var(--w-medium);letter-spacing:.08em;text-transform:uppercase}.rt td strong,.taulukko td strong{color:var(--text-primary)}.rt .table-wrap,.taulukko-wrap{max-width:100%;overflow-x:auto}.btn,.rt img{border-radius:var(--radius)}.btn{align-items:center;border:1px solid transparent;cursor:pointer;display:inline-flex;font:inherit;font-size:15px;font-weight:var(--w-medium);gap:var(--sp-1);line-height:1.2;min-height:44px;padding:12px 24px;text-decoration:none;transition:background var(--t),border-color var(--t)}.btn--primary,.btn--primary:visited{background:var(--accent-1);color:var(--text-on-accent)}.btn--primary:hover{filter:brightness(1.08);text-decoration:none}.btn--secondary,.btn--secondary:visited{background:transparent;border-color:var(--stroke);color:var(--text-primary)}.btn--secondary:hover{background:var(--surface-1);border-color:var(--stroke-hover);text-decoration:none}.btn--s{font-size:var(--fs-small);min-height:40px;padding:8px 16px}.actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--sp-2)}.site-header{background:var(--canvas);border-bottom:1px solid var(--stroke);position:relative;z-index:20}[data-global-resource-path$="partials/header.html"]{position:sticky;top:0;z-index:20}html{scroll-padding-top:96px}.site-header .inner{align-items:center;display:flex;gap:var(--sp-4);min-height:72px;padding-block:12px}.wordmark{align-items:center;display:inline-flex;font-size:22px;font-weight:var(--w-bold);letter-spacing:-.02em;text-decoration:none}.wordmark,.wordmark:visited{color:var(--text-primary)}.wordmark img{display:block;height:28px;width:auto}.nav{flex:1}.nav>ul{align-items:center;display:flex;flex-wrap:wrap;gap:var(--sp-3);list-style:none;margin:0;padding:0}.nav .dd-btn,.nav a{align-items:center;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;display:inline-flex;font:inherit;font-size:15px;gap:4px;padding:8px 0;text-decoration:none}.nav .dd-btn,.nav a,.nav a:visited{color:var(--text-secondary)}.nav .dd-btn.on,.nav .dd-btn:hover,.nav a:hover,.nav a[aria-current=page]{color:var(--text-primary)}.nav .dd-btn.on,.nav a[aria-current=page]{border-bottom-color:var(--accent-1)}.nav .dd{position:relative}.nav .dd-btn:after{border-bottom:1.5px solid;border-right:1.5px solid;content:"";height:6px;margin-left:4px;transform:rotate(45deg) translateY(-2px);width:6px}.nav .dd-panel{background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);display:flex;flex-direction:column;left:-16px;list-style:none;margin:0;min-width:260px;padding:8px;position:absolute;top:calc(100% + 8px)}.nav .dd-panel a{border-bottom:0;border-radius:6px;color:var(--text-body);display:block;padding:10px 12px}.nav .dd-panel a:hover,.nav .dd-panel a[aria-current=page]{background:var(--surface-2);color:var(--text-primary)}.hdr-actions{align-items:center;display:flex;gap:var(--sp-2);margin-left:auto}.lang-link,.lang-link:visited{color:var(--text-secondary);font-family:var(--mono);font-size:13px;padding:8px 4px;text-decoration:none}.lang-link:hover,.nav-toggle{color:var(--text-primary)}.nav-toggle{background:none;border:1px solid var(--stroke);border-radius:var(--radius);cursor:pointer;display:none;font:inherit;font-size:var(--fs-small);min-height:40px;padding:8px 12px}@media (max-width:1023px){.site-header .inner{flex-wrap:wrap;gap:var(--sp-2)}.nav-toggle{display:inline-flex}.nav{display:none;flex-basis:100%;order:3}.nav.open{display:block;max-height:calc(100vh - 80px);max-height:calc(100dvh - 80px);overflow-y:auto}.nav>ul{align-items:stretch;flex-direction:column;gap:0;padding-block:var(--sp-1) var(--sp-2)}.nav>ul>li{border-top:1px solid var(--stroke)}.nav .dd-btn,.nav a{border-bottom:0;padding:12px 0;width:100%}.nav a[aria-current=page]{border-bottom:0;color:var(--accent-1)}.nav .dd-panel{background:none;border:0;min-width:0;padding:0 0 8px 16px;position:static}.hdr-actions{margin-left:auto}}@media (max-width:479px){.site-header .btn--primary{font-size:var(--fs-small);padding:8px 12px}}.site-footer{background:var(--canvas);border-top:1px solid var(--stroke);color:var(--text-secondary);font-size:var(--fs-small)}.site-footer .inner{display:flex;flex-direction:column;gap:var(--sp-5);padding-block:var(--sp-6) var(--sp-4)}.footer-grid{display:grid;gap:var(--sp-4);grid-template-columns:minmax(0,1.4fr) repeat(4,minmax(0,1fr))}.footer-grid h2{color:var(--text-muted);font-size:var(--fs-label);font-weight:var(--w-medium);letter-spacing:.14em;margin-bottom:12px;text-transform:uppercase}.footer-grid ul{display:flex;flex-direction:column;gap:8px;list-style:none;margin:0;padding:0}.site-footer a,.site-footer a:visited{color:var(--text-body);text-decoration:none}.site-footer a:hover{color:var(--text-primary);text-decoration:underline}.footer-company{display:flex;flex-direction:column;gap:8px}.footer-company .wordmark{font-size:20px}.footer-legal{align-items:center;border-top:1px solid var(--stroke);color:var(--text-muted);display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-3);padding-top:var(--sp-3)}.footer-legal button{background:none;border:0;color:var(--text-body);cursor:pointer;font:inherit;padding:0}.footer-legal button:hover{color:var(--text-primary);text-decoration:underline}@media (max-width:899px){.footer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-company{grid-column:1/-1}}.hero>.inner{align-items:center;display:grid;gap:56px;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);padding-block:88px 72px}.hero--yksi>.inner{grid-template-columns:minmax(0,1fr)}.hero--yksi .hero-text{max-width:860px}.hero-text{gap:var(--sp-3)}.hero-text,.hero-visual{display:flex;flex-direction:column;min-width:0}.hero-visual{gap:var(--sp-1);margin:0}.hero-visual img{border-radius:var(--radius);display:block;height:auto;width:100%}.caption{color:var(--text-muted);font-size:var(--fs-label);font-style:italic}.clients{align-items:baseline;border-top:1px solid var(--stroke);display:flex;flex-wrap:wrap;gap:var(--sp-1) var(--sp-4);padding-top:var(--sp-3)}.clients .lbl{color:var(--text-muted);font-size:var(--fs-label);letter-spacing:.2em;text-transform:uppercase}.clients .c{color:var(--text-secondary);font-size:20px;font-weight:var(--w-bold);letter-spacing:-.01em}@media (max-width:899px){.hero>.inner{gap:var(--sp-5);grid-template-columns:minmax(0,1fr);padding-block:var(--sp-6) var(--sp-5)}}.band--kuva,.hero--tausta:not(.hero--kb){overflow:hidden;position:relative}.band-kuva,.hero--tausta:not(.hero--kb) .hero-tausta{bottom:0;left:50%;margin:0;position:absolute;right:0;top:0;z-index:0}.band-kuva img,.hero--tausta:not(.hero--kb) .hero-tausta img{border-radius:0;display:block;height:100%;-webkit-mask-image:linear-gradient(90deg,transparent,#000 45%);mask-image:linear-gradient(90deg,transparent,#000 45%);object-fit:cover;object-position:60% 50%;width:100%}.band--kuva>.inner,.hero--tausta:not(.hero--kb)>.inner{position:relative;z-index:1}.hero--tausta:not(.hero--kb)>.inner{min-height:520px}.hero--tausta:not(.hero--kb) .hero-text{max-width:min(560px,calc(50vw - var(--sp-6)))}.band--kuva>.inner>*{max-width:calc(50% - var(--sp-5))}.band--kuva .grid{--cols:1!important}@keyframes kuva-esiin{0%{opacity:0}to{opacity:1}}.hero--tausta:not(.hero--kb) .hero-tausta img{animation:kuva-esiin .4s ease-out both}.band-kuva img{transition:opacity .4s ease-out}.band-kuva.odottaa img{opacity:0}@media (prefers-reduced-motion:reduce){.hero--tausta:not(.hero--kb) .hero-tausta img{animation:none}.band-kuva img{transition:none}.band-kuva.odottaa img{opacity:1}}@media (max-width:899px){.hero--tausta:not(.hero--kb){display:flex;flex-direction:column}.hero--tausta:not(.hero--kb)>.inner{min-height:0}.hero--tausta:not(.hero--kb) .hero-text{max-width:none}.band-kuva,.hero--tausta:not(.hero--kb) .hero-tausta{height:160px;position:static}.band-kuva img,.hero--tausta:not(.hero--kb) .hero-tausta img{-webkit-mask-image:linear-gradient(180deg,#000 55%,transparent);mask-image:linear-gradient(180deg,#000 55%,transparent);object-position:60% 50%}.band-kuva--mob-piilota,.hero--mob-piilota .hero-tausta{display:none}.band--kuva>.inner>*{max-width:none}.band--kuva .grid{--cols:1}}.hero--kb{overflow:hidden;position:relative;--tl:calc(max((100% - var(--wrap)) / 2, var(--sp-4)) + 600px)}.hero--kb .hero-tausta{inset:0;margin:0;position:absolute;z-index:0}.hero--kb .hero-tausta:after{background:linear-gradient(90deg,rgba(7,12,24,.95) 0,rgba(7,12,24,.92) var(--tl),rgba(7,12,24,0) calc(var(--tl) + 240px));content:"";inset:0;position:absolute;z-index:1}.hero--kb>.inner{min-height:520px;position:relative;z-index:1}.hero--kb .hero-text{max-width:560px}@media (max-width:899px){.hero--kb{display:flex;flex-direction:column}.hero--kb .hero-tausta:after{display:none}.hero--kb>.inner{min-height:0}}.kb{border-radius:var(--radius);overflow:hidden}.kb img{display:block;height:auto;width:100%}.kb--js img{animation:kb var(--kb-kesto) ease-in-out infinite alternate;transform:scale(var(--kb-z)) translate(var(--kb-x0),var(--kb-y0))}.kb--tauko img{animation-play-state:paused}@keyframes kb{0%{transform:scale(var(--kb-z)) translate(var(--kb-x0),var(--kb-y0))}to{transform:scale(var(--kb-z)) translate(var(--kb-x1),var(--kb-y1))}}.hero--kb .hero-tausta{overflow:hidden}.kb--tausta{border-radius:0}.kb--tausta,.kb-kuva{inset:0;position:absolute}.kb-kuva{background:var(--canvas) var(--kb-kuva) center /cover no-repeat}.kb--js .kb-kuva{animation:kb var(--kb-kesto) ease-in-out infinite alternate;transform:scale(var(--kb-z)) translate(var(--kb-x0),var(--kb-y0))}.kb--tauko .kb-kuva{animation-play-state:paused}.kb--sarja .kb-otos{animation:none;transform:none}.kb--sarja .kb-otos:not(:first-child){opacity:0}.kb--sarja.kb--js .kb-otos{transform:scale(var(--z0)) translate(var(--x0),var(--y0));will-change:transform,opacity}.kb--sarja.kb--js .kb-otos[data-ladattu]{background-image:var(--kb-laiska)}.kb--sarja.kb--tauko .kb-otos{animation-play-state:paused}.kb-nappi{background:rgba(7,12,24,.6);border:1px solid var(--stroke-hover);border-radius:var(--radius);bottom:var(--sp-3);color:var(--text-primary);cursor:pointer;display:grid;height:40px;opacity:.7;padding:0;place-items:center;position:absolute;right:var(--sp-3);transition:opacity var(--t),background-color var(--t);width:40px;z-index:2}.kb-nappi:focus,.kb-nappi:focus-visible,.kb-nappi:hover{background:var(--canvas);opacity:1}.kb-nappi:before{border-left:4px solid;border-right:4px solid;box-sizing:border-box;content:"";height:14px;width:12px}.kb-nappi[aria-pressed=true]:before{border-color:transparent transparent transparent currentcolor;border-style:solid;border-width:7px 0 7px 12px;border-right:0;height:0;width:0}.hero{position:relative}@media (max-width:899px){.kb--js .kb-kuva,.kb--js img{animation:none!important;transform:none!important}.kb--sarja .kb-otos:not(:first-child){display:none}.kb img{aspect-ratio:4/3;object-fit:cover;object-position:var(--kb-pos)}.hero--kb .hero-tausta{aspect-ratio:16/9;order:2;position:static;position:relative}.kb-kuva{background-image:var(--kb-kuva-s);background-position:var(--kb-pos)}.kb-nappi{display:none}}@media (prefers-reduced-motion:reduce){.kb--js .kb-kuva,.kb--js img{transform:none}.kb-nappi{display:none}}.app{background:var(--surface-app);border:1px solid var(--stroke);border-radius:var(--radius);color:var(--text-body);font-size:13px;min-width:0;overflow:hidden}.app-top{align-items:center;background:var(--surface-app-top);border-bottom:1px solid var(--stroke);display:flex;gap:12px;padding:10px 14px}.app-top .brand{color:var(--text-primary);font-weight:var(--w-bold);letter-spacing:.04em}.app-top .tag{border:1px solid var(--stroke);border-radius:var(--radius);color:var(--text-muted);font-family:var(--mono);font-size:11px;margin-left:auto;padding:2px 8px}.app-main{display:flex;flex-direction:column;gap:12px;min-width:0;padding:14px}.app-kpis{display:grid;gap:8px;grid-template-columns:repeat(3,minmax(0,1fr))}.app-kpi{background:var(--surface-1);border:1px solid var(--stroke);border-radius:6px;display:flex;flex-direction:column;gap:2px;min-width:0;padding:10px 12px}.app-kpi .k{color:var(--text-secondary);font-size:11px}.app-kpi .n{color:var(--text-primary);font-size:22px;font-variant-numeric:tabular-nums;font-weight:var(--w-bold)}.app-kpi.alert{border-color:var(--warn)}.app-kpi.alert .n{color:var(--warn)}.app-kpi .s{color:var(--text-muted);font-size:11px}.app-card{background:var(--surface-1);border:1px solid var(--stroke);border-radius:6px;display:flex;flex-direction:column;gap:8px;min-width:0;padding:10px 12px}.app-card .t{color:var(--text-primary);display:flex;font-size:12px;font-weight:var(--w-medium);gap:8px;justify-content:space-between}.app-card .t em{color:var(--text-muted);font-family:var(--mono);font-size:10px;font-style:normal;font-weight:var(--w-regular)}.sugg{display:flex;flex-direction:column;list-style:none;margin:0;padding:0}.sugg li{align-items:center;border-top:1px solid var(--stroke);display:grid;font-variant-numeric:tabular-nums;gap:12px;grid-template-columns:minmax(0,1fr) auto auto;padding:6px 0}.sugg li:first-child{border-top:0}.sugg b{color:var(--text-primary);font-weight:var(--w-medium)}.sugg .ok{border:1px solid var(--stroke);border-radius:6px;color:var(--text-secondary);font-family:var(--mono);font-size:10px;padding:1px 6px}.sugg .ok.on{border-color:var(--accent-1);color:var(--text-primary)}@media (max-width:479px){.app-kpis{grid-template-columns:minmax(0,1fr)}}.tila{align-items:center;border:1px solid;border-radius:var(--radius);display:inline-flex;font-family:var(--mono);font-size:11px;gap:6px;letter-spacing:.06em;line-height:1.3;padding:3px 8px;text-transform:uppercase;white-space:nowrap}.tila:before{background:currentColor;border-radius:50%;content:"";height:6px;width:6px}.tila--kaytossa{color:var(--status-live)}.tila--aidux10{color:var(--status-next)}.tila--suunta{color:var(--status-dir)}.tila--suunta:before{background:transparent;border:1px solid}.tila--kayttoonotossa{color:var(--status-next)}.tila--kayttoonotossa:before{background:transparent;border:1px solid}.tila-selite{align-items:center;color:var(--text-secondary);display:flex;flex-wrap:wrap;font-size:var(--fs-small);gap:var(--sp-1) var(--sp-3)}.grid{display:grid;gap:var(--sp-3);grid-template-columns:repeat(var(--cols,3),minmax(0,1fr))}.card{background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);display:flex;flex-direction:column;gap:12px;min-width:0;padding:var(--sp-3)}.card h3,.card-top h2{font-size:var(--fs-h3)}.card .rt{gap:12px}.card .card-link{font-weight:var(--w-medium);margin-top:auto;padding-top:var(--sp-1)}.card-top{align-items:flex-start;display:flex;flex-wrap:wrap;gap:12px;justify-content:space-between}.card--linkki{position:relative;transition:border-color var(--t)}.card--linkki:hover{border-color:var(--stroke-hover)}@media (max-width:899px){.grid{grid-template-columns:repeat(min(var(--cols,3),2),minmax(0,1fr))}}@media (max-width:599px){.grid{grid-template-columns:minmax(0,1fr)}}.ladder{border:1px solid var(--stroke);border-radius:var(--radius);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));list-style:none;margin:0;overflow:hidden;padding:0}.ladder>li{background:var(--surface-1);border-top:3px solid transparent;display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;padding:var(--sp-3)}.ladder>li+li{border-left:1px solid var(--stroke)}.ladder>li.on{background:var(--surface-2);border-top-color:var(--accent-1)}.ladder .n{color:var(--accent-2);font-family:var(--mono);font-size:var(--fs-label)}.ladder h3{font-size:18px}.ladder .k,.ladder p{font-size:var(--fs-small)}.ladder .k{color:var(--text-primary);font-weight:var(--w-medium);margin-top:auto}@media (max-width:899px){.ladder{grid-template-columns:repeat(2,minmax(0,1fr))}.ladder>li:nth-child(3){border-left:0}.ladder>li:nth-child(n+3){border-top:1px solid var(--stroke)}.ladder>li.on:nth-child(n+3){border-top:3px solid var(--accent-1)}}@media (max-width:599px){.ladder{grid-template-columns:minmax(0,1fr)}.ladder>li+li{border-left:0;border-top:1px solid var(--stroke)}.ladder>li.on{border-top:3px solid var(--accent-1)}}.kyvyt{border-top:1px solid var(--stroke);list-style:none;margin:0;padding:0}.kyvyt li{align-items:baseline;border-bottom:1px solid var(--stroke);display:grid;gap:var(--sp-3);grid-template-columns:minmax(140px,220px) minmax(0,1fr) auto;padding:20px 0}.kyvyt .nimi{color:var(--text-primary);font-size:18px;font-weight:var(--w-bold)}.kyvyt--ei-tilaa li{grid-template-columns:minmax(140px,220px) minmax(0,1fr)}.kyvyt--kenelle li{grid-template-columns:minmax(140px,220px) minmax(0,1fr) minmax(160px,240px)}.kyvyt .kenelle{color:var(--text-primary);display:flex;flex-direction:column;font-size:var(--fs-small);gap:2px}.kyvyt .kenelle .lbl{color:var(--text-muted);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}@media (max-width:699px){.kyvyt li,.kyvyt--ei-tilaa li,.kyvyt--kenelle li{gap:var(--sp-1) var(--sp-2);grid-template-columns:minmax(0,1fr) auto}.kyvyt .kuvaus{grid-column:1/-1;grid-row:2}.kyvyt .kenelle{grid-column:1/-1;grid-row:3}}.kpis{border-bottom:1px solid var(--stroke);border-top:1px solid var(--stroke);display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));margin:0}.kpi{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0;padding:var(--sp-3) var(--sp-3) var(--sp-3) 0}.kpi+.kpi{border-left:1px solid var(--stroke);padding-left:var(--sp-3)}.kpi dt{color:var(--text-secondary);font-size:var(--fs-small);order:2}.kpi dd{margin:0}.kpi .v{color:var(--text-primary);font-size:var(--fs-kpi);font-variant-numeric:tabular-nums;font-weight:var(--w-light);letter-spacing:-.02em;line-height:1.1;order:1}.kpi .v b,.kpi .v strong{font-weight:var(--w-bold)}.kpi .v .nw{white-space:nowrap}.kpi .v .v-teksti{font-size:var(--fs-h2);line-height:1.15}@media (min-width:700px) and (max-width:1099px){.kpis[style*="--cols: 3"],.kpis[style*="--cols: 4"]{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis .kpi:nth-child(odd){border-left:0;padding-left:0}.kpis .kpi:nth-child(n+3){border-top:1px solid var(--stroke)}}.kpi .src{color:var(--text-muted);font-family:var(--mono);font-size:11px;letter-spacing:.06em;order:3}@media (max-width:699px){.kpis{grid-template-columns:minmax(0,1fr)}.kpi,.kpi+.kpi{border-left:0;padding:20px 0}.kpi+.kpi{border-top:1px solid var(--stroke)}}.quote{background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--sp-2);margin:0;max-width:880px;padding:var(--sp-4)}.quote blockquote{color:var(--text-primary);font-size:22px;font-weight:var(--w-light);line-height:1.4;margin:0}.quote blockquote p+p{margin-top:12px}.quote figcaption{color:var(--text-secondary);font-size:var(--fs-small)}.quote figcaption b{color:var(--text-primary);font-weight:var(--w-medium)}.compare{display:grid;gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr))}.compare>div{border:1px solid var(--stroke);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--sp-2);min-width:0;padding:var(--sp-3)}.compare>div.b{background:var(--surface-1);border-color:var(--accent-1)}.compare h3{color:var(--text-muted);font-size:var(--fs-label);font-weight:var(--w-medium);letter-spacing:.14em;text-transform:uppercase}.compare .b h3{color:var(--accent-1)}.compare ul{display:flex;flex-direction:column;gap:12px;list-style:none;margin:0;padding:0}.compare li{padding-left:20px;position:relative}.compare li:before{background:var(--text-muted);content:"";height:1px;left:0;position:absolute;top:.7em;width:10px}.compare .b li:before{background:var(--accent-1)}@media (max-width:699px){.compare{grid-template-columns:minmax(0,1fr)}}.faq{border-top:1px solid var(--stroke);max-width:880px}.faq details{border-bottom:1px solid var(--stroke)}.faq summary{color:var(--text-primary);cursor:pointer;display:flex;font-size:18px;font-weight:var(--w-medium);gap:var(--sp-2);justify-content:space-between;list-style:none;padding:20px 0}.faq summary::-webkit-details-marker{display:none}.faq summary:after{color:var(--text-muted);content:"+";font-size:22px;font-weight:var(--w-light);line-height:1}.faq details[open] summary:after{content:"–"}.faq .rt{padding-bottom:20px}.timeline{display:flex;flex-direction:column;gap:var(--sp-4);list-style:none;margin:0;max-width:880px;padding:0;position:relative}.timeline:before{background:var(--rule);bottom:8px;content:"";left:7px;position:absolute;top:8px;width:2px}.timeline li{align-items:baseline;display:grid;gap:var(--sp-2);grid-template-columns:16px 96px minmax(0,1fr)}.timeline .dot{background:var(--canvas);border:2px solid var(--accent-1);border-radius:50%;height:16px;position:relative;top:2px;width:16px}.timeline .yr{color:var(--accent-2);font-family:var(--mono);font-size:var(--fs-small)}.timeline h3{font-size:18px;margin-bottom:4px}@media (max-width:599px){.timeline li{grid-template-columns:16px minmax(0,1fr)}.timeline .tl-body,.timeline .yr{grid-column:2}}.people{display:grid;gap:var(--sp-4);grid-template-columns:repeat(2,minmax(0,1fr))}.person{align-items:start;display:grid;gap:var(--sp-3);grid-template-columns:160px minmax(0,1fr)}.person img{display:block;object-fit:cover}.person .ph,.person img{border-radius:var(--radius);height:200px;width:160px}.person .ph{background:var(--surface-2);border:1px solid var(--stroke)}.person h2,.person h3{font-size:22px}.person .role{color:var(--accent-2);font-size:var(--fs-small);font-weight:var(--w-medium)}.person .contact{display:flex;flex-direction:column;font-size:var(--fs-small);gap:4px}.person .contact a{display:inline-block;padding-block:3px}@media (max-width:899px){.people{grid-template-columns:minmax(0,1fr)}}@media (max-width:479px){.person{grid-template-columns:minmax(0,1fr)}}.people--pieni .person,.people--pieni .person:only-child{align-items:center;grid-template-columns:96px minmax(0,1fr)}.people--pieni .person .ph,.people--pieni .person img{height:96px;width:96px}.steps{counter-reset:s;display:grid;gap:var(--sp-2);grid-template-columns:repeat(var(--cols,4),minmax(0,1fr));list-style:none;margin:0;padding:0}.steps>li{background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--sp-1);min-width:0;padding:var(--sp-3)}.steps>li.on{border-color:var(--accent-1)}.steps .n{color:var(--accent-2);font-family:var(--mono);font-size:var(--fs-label)}.steps h3{font-size:18px}.steps .meta{color:var(--text-muted);font-size:var(--fs-small);margin-top:auto}@media (max-width:899px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:599px){.steps{grid-template-columns:minmax(0,1fr)}}.cta>.inner{align-items:end;display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.cta .contact{color:var(--text-secondary);font-size:var(--fs-small)}.cta-henkilo{align-items:center;display:flex;gap:var(--sp-2);padding-top:var(--sp-1)}.cta-henkilo img{border-radius:var(--radius);display:block;height:64px;object-fit:cover;width:64px}.cta-henkilo p{color:var(--text-secondary);display:flex;flex-direction:column;font-size:var(--fs-small);gap:2px}.cta-henkilo b{color:var(--text-primary);font-size:var(--fs-body);font-weight:var(--w-medium)}.cta-henkilo .lbl{color:var(--text-muted);font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase}@media (max-width:899px){.cta>.inner{gap:var(--sp-3);grid-template-columns:minmax(0,1fr)}}.meetings{background:#fff;border:1px solid var(--stroke);border-radius:var(--radius);min-height:640px;overflow:hidden}.meetings-fallback{border:1px dashed var(--stroke);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--sp-2);padding:var(--sp-4)}.flow{align-items:stretch;display:grid;gap:var(--sp-2);grid-template-columns:minmax(0,1fr) 48px minmax(0,1.1fr)}.flow--paluu{grid-template-columns:minmax(0,1fr) 48px minmax(0,1.1fr) 48px minmax(0,1fr)}.flow-col{display:flex;flex-direction:column;gap:12px;justify-content:center;min-width:0}.flow-lbl{color:var(--text-muted);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}.flow ul{gap:var(--sp-1);list-style:none;margin:0;padding:0}.flow ul,.flow-lahteet li{display:flex;flex-direction:column}.flow-lahteet li{background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);color:var(--text-secondary);font-size:var(--fs-small);gap:2px;padding:10px 14px}.flow-lahteet li span{color:var(--text-body)}.flow-lahteet small{color:var(--text-muted);font-size:var(--fs-label)}.flow-kohteet li{border:1px solid var(--accent-2);border-radius:var(--radius);display:flex;flex-direction:column;gap:2px;padding:12px 16px}.flow-kohteet b{color:var(--text-primary);font-weight:var(--w-medium)}.flow-kohteet span{color:var(--text-secondary);font-size:var(--fs-small)}.flow-kohde{align-items:center;align-self:stretch;background:var(--surface-1);border:2px solid var(--accent-1);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--sp-1);justify-content:center;padding:var(--sp-5) var(--sp-3);text-align:center}.flow-rooli{color:var(--accent-2);font-family:var(--mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase}.flow-brand{color:var(--text-primary);font-size:var(--fs-h1);font-weight:var(--w-bold);letter-spacing:.02em;line-height:1.05}.flow-sub{color:var(--text-secondary);font-size:var(--fs-small);max-width:24ch}.flow-arrow{align-self:center;background:var(--rule);height:2px;position:relative}.flow-arrow:after{border-right:2px solid var(--accent-2);border-top:2px solid var(--accent-2);content:"";height:10px;position:absolute;right:-1px;top:50%;transform:translateY(-50%) rotate(45deg);width:10px}@media (max-width:899px){.flow,.flow--paluu{gap:var(--sp-1);grid-template-columns:minmax(0,1fr)}.flow-arrow{background:linear-gradient(180deg,var(--accent-1),var(--accent-2));height:40px;margin-inline:auto;width:2px}.flow-arrow:after{bottom:0;left:50%;right:auto;top:auto;transform:translateX(-50%) rotate(135deg)}.flow-kohde{padding:var(--sp-4) var(--sp-3)}.flow-kohteet{flex-direction:row!important;flex-wrap:wrap}.flow-kohteet li{flex:1 1 140px}}.rt table.uimarata{border-collapse:separate;border-spacing:6px;min-width:820px;table-layout:fixed}.uimarata td,.uimarata th{border-bottom:0;border-radius:var(--radius);padding:10px 12px}.uimarata thead th{padding-bottom:4px}.uimarata th[scope=row]{background:var(--surface-2);color:var(--text-primary);font-size:var(--fs-small);font-weight:var(--w-bold);letter-spacing:0;text-transform:none;width:150px}.uimarata td{background:var(--surface-1);border:1px solid var(--stroke);color:var(--text-body)}.uimarata td:empty{background:transparent;border:1px dashed var(--stroke)}.uimarata tr.rata-aidux th[scope=row]{background:var(--accent-1);color:var(--text-on-accent)}.uimarata tr.rata-aidux td:not(:empty){border-color:var(--accent-1)}.site-footer .sposti a,.sposti a{overflow-wrap:anywhere;text-decoration:underline}.lomake .form-title:empty{display:none}.kerrokset{display:flex;flex-direction:column;gap:var(--sp-1);list-style:none;margin:0;padding:0}.kerros{align-items:center;background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);display:grid;gap:var(--sp-3);grid-template-columns:minmax(180px,260px) minmax(0,1fr);padding:var(--sp-2) var(--sp-3);position:relative}.kerros-nimi{display:flex;flex-direction:column;gap:2px}.kerros-nimi b{color:var(--text-primary);font-weight:var(--w-bold)}.kerros-nimi span{color:var(--text-muted);font-family:var(--mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase}.kerros-sisalto{flex-direction:column;min-width:0}.kerros-sisalto,.sirut{display:flex;gap:var(--sp-1)}.sirut{flex-wrap:wrap;list-style:none;margin:0;padding:0}.siru{align-items:baseline;background:var(--canvas);border:1px solid var(--stroke);border-radius:var(--radius);color:var(--text-body);display:inline-flex;font-size:var(--fs-small);gap:6px;padding:6px 12px}.siru small{color:var(--text-muted);font-size:var(--fs-label)}.piste{color:var(--accent-1);font-size:10px;line-height:1}.kerros--aidux{background:var(--surface-2);border:2px solid var(--accent-1);padding-block:var(--sp-3)}.kerros--aidux:before{background:var(--rule);content:"";height:2px;left:var(--sp-3);position:absolute;right:var(--sp-3);top:-2px}.kerros--aidux .kerros-nimi b{font-size:var(--fs-h3)}.kerros--aidux .kerros-nimi span{color:var(--link)}.kerros-teksti{color:var(--text-primary);font-weight:var(--w-medium)}.kerros-omistaja{color:var(--text-secondary);font-size:var(--fs-small);font-style:italic}.kerros--himmea{background:transparent}.kerros--himmea .kerros-nimi b,.kerros--himmea .siru{color:var(--text-muted)}.kerros--himmea .siru{background:transparent}.kerros--tanaan .siru{border-color:var(--accent-2);color:var(--text-primary)}.kerros--suunta,.kerros--suunta .siru{background:transparent;border-style:dashed}.kerros--suunta .siru{border-color:var(--stroke-hover)}.kerros-selite{color:var(--text-secondary);font-size:var(--fs-small)}@media (max-width:699px){.kerros{gap:var(--sp-1);grid-template-columns:minmax(0,1fr);padding:var(--sp-2)}}.flow,.flow *,.flow text,.flow tspan,.kerrokset,.kerrokset *,.kerrokset text,.kerrokset tspan,.ladder,.ladder *,.ladder text,.ladder tspan{font-family:var(--font)!important}.band--jatko{border-top:0!important}.band--jatko>.inner{padding-top:0}.kk-ryhma{display:flex;flex-direction:column;gap:var(--sp-2)}.kk-ryhma-otsikko{font-size:var(--fs-h3)}.kk-kortit{display:grid;gap:var(--sp-3);grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));list-style:none;margin:0;padding:0}.kk{background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);display:flex;flex-direction:column;gap:12px;min-width:0;padding:var(--sp-3)}.kk-logo{align-items:center;display:flex;height:56px;margin:0}.kk-logo a{align-items:center;display:inline-flex;height:100%;text-decoration:none}.kk-logo img{display:block;height:auto;max-height:36px;max-width:160px;object-fit:contain;width:auto}.kk-logo--laatta{align-self:flex-start;background:var(--surface-1);border-radius:var(--radius);padding:8px 14px}.kk-nimi{color:var(--text-primary);font-size:22px;font-weight:var(--w-bold);hyphens:auto;letter-spacing:-.01em;overflow-wrap:anywhere}.kk-rooli{align-self:flex-start;border:1px solid var(--stroke-hover);border-radius:var(--radius);color:var(--text-secondary);font-family:var(--mono);font-size:11px;letter-spacing:.08em;padding:3px 8px;text-transform:uppercase}.kk-ala,.kk-teksti{font-size:var(--fs-small)}.kk-ala{align-items:baseline;border-top:1px solid var(--stroke);color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:auto;padding-top:12px}.kk-ala a{font-weight:var(--w-medium)}@media (max-width:767px){.kk-kortit{grid-template-columns:minmax(0,1fr)}}.clients a.c,.clients a.c:visited{border-bottom:1px solid var(--stroke-hover);color:var(--text-secondary);text-decoration:none}.clients a.c:hover{border-bottom-color:currentColor;color:var(--text-primary)}.kasite{position:relative}.kasite-btn{background:none;border:0;color:inherit;cursor:help;font:inherit;margin:0;padding:0;text-align:inherit;text-decoration:underline dotted;text-decoration-color:var(--accent-2);text-decoration-thickness:2px;text-underline-offset:4px}.kasite-btn:hover,.kasite-btn[aria-expanded=true]{text-decoration-style:solid}.kasite-kortti{background:var(--surface-2);border:1px solid var(--stroke-hover);border-radius:var(--radius);color:var(--text-body);display:flex;flex-direction:column;font-size:var(--fs-small);font-weight:var(--w-regular);gap:6px;left:0;letter-spacing:0;line-height:1.5;max-width:calc(100vw - 32px);padding:var(--sp-2);position:absolute;text-align:left;text-transform:none;top:calc(100% + 6px);white-space:normal;width:320px;z-index:30}.kasite-kortti .kk-nimi{color:var(--text-primary);font-weight:var(--w-bold)}.kasite-kortti .kk-rivi{display:block}.kasite-kortti b{color:var(--text-primary);font-weight:var(--w-medium)}@media (max-width:699px){.kasite-kortti{display:flex;margin:var(--sp-1) 0;max-width:none;position:static;width:auto}}.logot{display:flex;flex-wrap:wrap;gap:var(--sp-2);list-style:none;margin:0;padding:0}.logot li{align-items:center;background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);display:flex;justify-content:center;min-height:72px;min-width:150px;padding:var(--sp-2) var(--sp-3)}.logot img{display:block;max-height:40px;width:auto}.logot .logo-ph{border-style:dashed;color:var(--text-secondary);font-size:18px;font-weight:var(--w-bold)}.kuva-ph{align-items:center;background:var(--surface-1);border:1px dashed var(--stroke-hover);border-radius:var(--radius);color:var(--text-muted);display:flex;font-size:var(--fs-small);justify-content:center;min-height:240px;padding:var(--sp-3);text-align:center}.lomake-grid{align-items:start;display:grid;gap:var(--sp-5);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}@media (max-width:899px){.lomake-grid{grid-template-columns:minmax(0,1fr)}}.post-list{display:grid;gap:var(--sp-3);grid-template-columns:repeat(3,minmax(0,1fr));list-style:none;margin:0;padding:0}.post-card{background:var(--surface-1);border:1px solid var(--stroke);border-radius:var(--radius);display:flex;flex-direction:column;gap:12px;min-width:0;padding:var(--sp-3)}.post-card img{aspect-ratio:16/9;border-radius:6px;object-fit:cover;width:100%}.post-card h2{font-size:var(--fs-h3)}.post-card h2 a,.post-card h2 a:visited{color:var(--text-primary);text-decoration:none}.post-card h2 a:hover{text-decoration:underline}.post-meta{color:var(--text-muted);display:flex;flex-wrap:wrap;font-size:var(--fs-small);gap:4px 12px}.post-body{display:block;max-width:var(--measure)}.post-body .hs_cos_wrapper_type_rich_text{display:flex;flex-direction:column;gap:var(--sp-3)}.post-body [style*=color]{background-color:transparent!important;color:inherit!important}.post-body [style*=font-size]{font-size:inherit!important}.post-body [style*=font-family]{font-family:inherit!important}.post-body [style*=line-height]{line-height:inherit!important}.post-body h2{font-size:var(--fs-h2);font-weight:var(--w-light);margin-top:var(--sp-4)}.post-body .post-vali,.post-body h3{color:var(--text-primary);font-size:var(--fs-h3);font-weight:var(--w-bold);line-height:var(--lh-head);margin-top:var(--sp-3)}.post-body .post-vali *{font-weight:inherit!important}.post-body .post-vali+*,.post-body h2+*,.post-body h3+*{margin-top:calc(var(--sp-1) - var(--sp-3))}.post-body :is(h2,h3,.post-vali):first-child{margin-top:0}.post-body h2 *,.post-body h3 *{font-weight:inherit}.post-body .post-tyhja{display:none}.post-body ol,.post-body ul{display:flex;flex-direction:column;gap:var(--sp-1);margin:0;padding-left:1.25em}.post-body img{border-radius:var(--radius)}.pagination{display:flex;gap:var(--sp-2);justify-content:space-between}@media (max-width:899px){.post-list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:599px){.post-list{grid-template-columns:minmax(0,1fr)}}.crumbs{color:var(--text-muted);font-size:var(--fs-small)}.crumbs ol{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0}.crumbs li+li:before{color:var(--text-muted);content:"/";margin-right:4px}.crumbs a,.crumbs a:visited{color:var(--text-secondary)}.sandbox-bar{background:#f5a524;color:#070c18;font-size:13px;font-weight:var(--w-medium);padding:6px 16px;text-align:center}.hs-form fieldset{max-width:none!important}.hs-form label{color:var(--text-primary);font-size:var(--fs-small);font-weight:var(--w-medium)}.hs-form .hs-input{background:var(--canvas);border:1px solid var(--stroke-hover);border-radius:var(--radius);color:var(--text-primary);font:inherit;padding:10px 12px;width:100%!important}.hs-form .hs-button{background:var(--accent-1);border:0;border-radius:var(--radius);color:var(--text-on-accent);cursor:pointer;font:inherit;font-weight:var(--w-medium);padding:12px 24px}.hs-error-msgs{color:var(--warn);font-size:var(--fs-small);list-style:none;margin:6px 0 0;padding:0}.hs-form .hs-error-msg,.hs-form .hs-error-msgs label{color:var(--warn);font-size:var(--fs-small);font-weight:var(--w-regular)}.hs-form .hs-error-msgs.inputs-list,.hs-form .hs-main-font-element{margin-top:6px}.hs-form .hs-form-field{margin-bottom:var(--sp-2)}.lomake .grecaptcha-badge,.lomake .hs_recaptcha .grecaptcha-badge{position:absolute!important;visibility:hidden}.lomake .hs_recaptcha{height:0;margin:0}.recaptcha-huom{color:var(--text-muted);font-size:var(--fs-label);margin-top:var(--sp-2);max-width:52ch}.recaptcha-huom a,.recaptcha-huom a:visited{color:var(--text-secondary)}.bars{align-items:end;display:grid;gap:6px;grid-template-columns:repeat(7,1fr);height:64px}.bars i{background:var(--stroke);border-radius:2px 2px 0 0;display:block}.bars i.hot{background:var(--accent-1)}.bar-l{color:var(--text-muted);display:grid;font-family:var(--mono);font-size:10px;gap:6px;grid-template-columns:repeat(7,1fr);text-align:center}
205:51	⚠  Lexical error on line 1: Unrecognized text.

  Erroneous area:
1: max((100% - var(--wrap)) / 2, var(--sp-4)) + 600px
^..............................^ [postcss-calc]