:root:where(:has(.lkw-pg-palvelut)){
  --ink:#14110D; --ink-2:#1E1A14; --ink-3:#2A241B;
  --paper:#F7F3EA; --paper-2:#EDE6D8;
  --accent:#D4791C; --accent-deep:#9A520C;
  --on-ink:rgba(247,243,234,.87); --on-ink-soft:rgba(247,243,234,.60);
  --on-paper:#1A1710; --on-paper-soft:#5B5346;
  --rule-ink:rgba(247,243,234,.16); --rule-paper:rgba(26,23,16,.18);
  --space-1:8px; --space-2:16px; --space-3:24px; --space-4:32px;
  --space-5:48px; --space-6:64px; --space-7:96px; --space-8:128px; --space-9:160px;
  --step--1:clamp(13px, 0.8rem + 0.1vw, 14px);
  --step-0:clamp(17px, 1rem + 0.2vw, 19px);
  --step-1:clamp(20px, 1.1rem + 0.4vw, 23px);
  --step-2:clamp(24px, 1.2rem + 0.8vw, 28px);
  --step-3:clamp(30px, 1.4rem + 1.4vw, 38px);
  --step-4:clamp(34px, 1.6rem + 2.4vw, 52px);
  --step-5:clamp(46px, 2rem + 3.6vw, 76px);
  --radius:12px; --radius-btn:12px; --container-max:1240px; --gutter:24px; --nav-h:72px;
  --ease-out:cubic-bezier(0.05, 0.7, 0.1, 1);
  --lkw-host-accent:var(--accent); --lkw-host-ink:var(--paper); --lkw-host-paper:var(--ink);
  --lkw-host-radius:var(--radius); --lkw-host-display:'Sentient', Georgia, serif; --lkw-host-btn-fg:var(--ink);
}
:root:where(:not(:has(.lkw-pg-palvelut))){
  /* ground + ramp: warm near-black, warm paper, one amber accent (their brick-red hue, pushed bright) */
  --ink:#14110D;
  --ink-2:#1E1A14;
  --ink-3:#2A241B;
  --paper:#F7F3EA;
  --paper-2:#EDE6D8;
  --accent:#D4791C;
  --accent-deep:#9A520C;
  --on-ink:rgba(247,243,234,.87);
  --on-ink-soft:rgba(247,243,234,.60);
  --on-paper:#1A1710;
  --on-paper-soft:#5B5346;
  --rule-ink:rgba(247,243,234,.16);
  --rule-paper:rgba(26,23,16,.18);

  /* 8-point spacing ladder, no value off it */
  --space-1:8px; --space-2:16px; --space-3:24px; --space-4:32px;
  --space-5:48px; --space-6:64px; --space-7:96px; --space-8:128px; --space-9:160px;

  /* fluid scale, ratio about 1.3, seven steps */
  --step--1:clamp(13px, 0.8rem + 0.1vw, 14px);
  --step-0:clamp(17px, 1rem + 0.2vw, 19px);
  --step-1:clamp(20px, 1.1rem + 0.4vw, 23px);
  --step-2:clamp(24px, 1.2rem + 0.8vw, 28px);
  --step-3:clamp(30px, 1.4rem + 1.4vw, 38px);
  --step-4:clamp(34px, 1.6rem + 2.4vw, 52px);
  --step-5:clamp(44px, 1.4rem + 6.6vw, 96px);

  --radius:12px;
  --radius-btn:12px;
  --container-max:1240px;
  --gutter:24px;
  --nav-h:72px;
  --ease-out:cubic-bezier(0.05, 0.7, 0.1, 1);
  --dur:.6s;

  /* host alias tokens for the injected sales footer (C04) */
  --lkw-host-accent:var(--accent);
  --lkw-host-ink:var(--paper);
  --lkw-host-paper:var(--ink);
  --lkw-host-radius:var(--radius);
  --lkw-host-display:'Sentient', Georgia, serif;
  --lkw-host-btn-fg:var(--ink);
}
*,*::before,*::after{box-sizing:border-box}
figure,ul,ol,dl,dd,blockquote{margin:0}
button{font:inherit;border:0;background:none}
html{scroll-behavior:auto;scroll-padding-top:var(--nav-h)}
body{
  margin:0;background:var(--ink);color:var(--on-ink);
  font-family:'Supreme',system-ui,sans-serif;font-size:var(--step-0);line-height:1.5;
  font-optical-sizing:auto;-webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
h1,h2,h3{font-family:'Sentient',Georgia,serif;font-weight:700;margin:0;text-wrap:balance}
p{margin:0;text-wrap:pretty;hyphens:auto}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:var(--space-2);top:-64px;z-index:60;background:var(--accent);color:var(--ink);
  padding:var(--space-2) var(--space-3);border-radius:var(--radius);font-size:var(--step-0);text-decoration:none}
.skip:focus{top:var(--space-2)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{max-width:var(--container-max);margin:0 auto;padding-inline:var(--gutter)}
.site-head{position:fixed;inset:0 0 auto 0;z-index:50;transition:background .3s var(--ease-out),border-color .3s var(--ease-out);
  background:transparent;border-bottom:1px solid transparent}
.site-head.is-solid{background:rgba(20,17,13,.94);backdrop-filter:blur(8px);border-bottom-color:var(--rule-ink)}
.head-in{max-width:var(--container-max);margin:0 auto;padding-inline:var(--gutter);
  min-height:var(--nav-h);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-3)}
.brand{grid-column:2;justify-self:center;font-family:'Sentient',Georgia,serif;font-weight:700;font-size:20px;
  letter-spacing:-.01em;color:var(--paper);text-decoration:none;white-space:nowrap;
  min-height:44px;display:inline-flex;align-items:center}
.nav-links{grid-column:1;display:flex;align-items:center;gap:var(--space-4);list-style:none;padding:0}
.nav-right{grid-column:3;justify-self:end;display:flex;align-items:center;gap:var(--space-4)}
.nav-links a,.nav-right a{color:var(--on-ink);text-decoration:none;font-size:16px;line-height:1;
  min-height:44px;display:inline-flex;align-items:center}
.nav-links a:hover,.nav-right a:hover{color:var(--paper)}
.nav-tel{font-variant-numeric:tabular-nums;white-space:nowrap;min-width:44px;justify-content:center}
.nav-tel b{font-weight:400;border-bottom:1px solid var(--accent);padding-bottom:2px}
.only-mobile{display:none}
.burger{display:none;width:44px;height:44px;align-items:center;justify-content:center;color:var(--paper);
  background:none;border-radius:var(--radius-btn)}
.burger span{display:block;width:22px;height:1px;background:currentColor;position:relative}
.burger span::before,.burger span::after{content:"";position:absolute;left:0;width:22px;height:1px;background:currentColor}
.burger span::before{top:-7px}
.burger span::after{top:7px}
.hero:where(:root:has(.lkw-pg-palvelut) *){padding-block:calc(var(--nav-h) + var(--space-7)) var(--space-7);background:var(--ink)}
.crumb:where(:root:has(.lkw-pg-palvelut) *){font-size:var(--step--1);color:var(--on-ink-soft)}
.crumb a:where(:root:has(.lkw-pg-palvelut) *){color:var(--on-ink-soft);text-decoration:none;border-bottom:1px solid var(--rule-ink)}
.hero h1:where(:root:has(.lkw-pg-palvelut) *){margin-top:var(--space-4);font-size:var(--step-5);line-height:.92;letter-spacing:-.03em;color:var(--paper);max-width:16ch}
.hero .lede:where(:root:has(.lkw-pg-palvelut) *){margin-top:var(--space-4);max-width:52ch;color:var(--on-ink-soft)}
.hero:where(:root:not(:has(.lkw-pg-palvelut)) *){position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero__media:where(:root:not(:has(.lkw-pg-palvelut)) *){position:absolute;inset:0;z-index:-1;overflow:hidden}
.hero__media img:where(:root:not(:has(.lkw-pg-palvelut)) *){width:100%;height:100%;object-fit:cover;object-position:50% 46%;filter:url(#grade)}
.hero__media:where(:root:not(:has(.lkw-pg-palvelut)) *)::after{content:"";position:absolute;inset:0;
  background:linear-gradient(118deg, rgba(20,17,13,.34) 0%, rgba(20,17,13,.04) 26%, rgba(20,17,13,.40) 58%, rgba(20,17,13,.78) 100%),
             linear-gradient(to top, rgba(20,17,13,.97) 0%, rgba(20,17,13,.94) 38%, rgba(20,17,13,.70) 62%, rgba(20,17,13,.44) 100%)}
.hero__copy:where(:root:not(:has(.lkw-pg-palvelut)) *){position:relative;width:100%;max-width:var(--container-max);margin:0 auto;
  padding:var(--space-9) var(--gutter) var(--space-7)}
.hero h1:where(:root:not(:has(.lkw-pg-palvelut)) *){font-size:var(--step-5);line-height:.9;letter-spacing:-.03em;color:var(--paper);max-width:14ch}
.deck:where(:root:not(:has(.lkw-pg-palvelut)) *){margin-top:var(--space-4);max-width:56ch;color:var(--on-ink);line-height:1.5}
.arrow:where(:root:not(:has(.lkw-pg-palvelut)) *){display:inline-flex;align-items:center;gap:var(--space-1);margin-top:var(--space-5);
  min-height:44px;color:var(--paper);text-decoration:none;font-size:var(--step-0);
  border-bottom:1px solid var(--accent);padding-bottom:var(--space-1)}
.arrow:hover:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--accent)}
.head:where(:root:not(:has(.lkw-pg-palvelut)) *){display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:var(--space-4);row-gap:var(--space-3);align-items:start}
.head:where(:root:not(:has(.lkw-pg-palvelut)) *)::before{content:"";display:block;height:1px;background:var(--accent);margin-top:var(--space-3)}
.head h2:where(:root:not(:has(.lkw-pg-palvelut)) *),.head .lede:where(:root:not(:has(.lkw-pg-palvelut)) *){grid-column:2}
.head h2:where(:root:not(:has(.lkw-pg-palvelut)) *){font-size:var(--step-3);line-height:.95;letter-spacing:-.02em}
.head .lede:where(:root:not(:has(.lkw-pg-palvelut)) *){max-width:46ch;line-height:1.5}
.on-paper .head:where(:root:not(:has(.lkw-pg-palvelut)) *)::before{background:var(--accent-deep)}
section:where(:root:not(:has(.lkw-pg-palvelut)) *){position:relative}
.band{padding-block:clamp(64px, 7vw, 112px)}
.on-paper{background:var(--paper);color:var(--on-paper)}
.on-paper .lede{color:var(--on-paper-soft)}
.on-ink{background:var(--ink)}
.on-ink .lede{color:var(--on-ink-soft)}
.head:where(:root:has(.lkw-pg-palvelut) *){display:grid;grid-template-columns:120px minmax(0,1fr);column-gap:var(--space-4);row-gap:var(--space-3);align-items:start}
.head:where(:root:has(.lkw-pg-palvelut) *)::before{content:"";display:block;height:1px;background:var(--accent-deep);margin-top:var(--space-3)}
.on-ink .head:where(:root:has(.lkw-pg-palvelut) *)::before{background:var(--accent)}
.head h2:where(:root:has(.lkw-pg-palvelut) *),.head .lede:where(:root:has(.lkw-pg-palvelut) *){grid-column:2}
.head h2:where(:root:has(.lkw-pg-palvelut) *){font-size:var(--step-3);line-height:.95;letter-spacing:-.02em}
.head .lede:where(:root:has(.lkw-pg-palvelut) *){max-width:46ch}
.ledger:where(:root:has(.lkw-pg-palvelut) *){margin-top:var(--space-6);display:flex;flex-direction:column;gap:var(--space-3)}
.card:where(:root:has(.lkw-pg-palvelut) *){border-radius:var(--radius);padding:clamp(28px, 3vw, 48px);background:var(--paper-2);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:var(--space-5);align-items:start}
.card h3:where(:root:has(.lkw-pg-palvelut) *){font-size:var(--step-2);line-height:1;letter-spacing:-.02em}
.card ul:where(:root:has(.lkw-pg-palvelut) *){list-style:none;padding:0;display:flex;flex-direction:column}
.card li:where(:root:has(.lkw-pg-palvelut) *){border-top:1px solid var(--rule-paper);padding-block:var(--space-2);color:var(--on-paper)}
.where:where(:root:has(.lkw-pg-palvelut) *){margin-top:var(--space-6);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--space-5);
  border-top:1px solid var(--rule-ink);padding-top:var(--space-4)}
.where p:where(:root:has(.lkw-pg-palvelut) *){color:var(--on-ink-soft);line-height:1.7}
.where a:where(:root:has(.lkw-pg-palvelut) *){color:var(--on-ink);display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid var(--rule-ink)}
.btn:where(:root:has(.lkw-pg-palvelut) *){display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 var(--space-4);
  border-radius:var(--radius-btn);font-size:var(--step-0);text-decoration:none}
.bleed-figure:where(:root:not(:has(.lkw-pg-palvelut)) *){margin-top:var(--space-5)}
.bleed-figure img:where(:root:not(:has(.lkw-pg-palvelut)) *){width:100%;border-radius:var(--radius)}
figcaption:where(:root:not(:has(.lkw-pg-palvelut)) *){margin-top:var(--space-2);font-size:var(--step--1);color:var(--on-paper-soft)}
.on-ink figcaption:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--on-ink-soft)}
.stack:where(:root:not(:has(.lkw-pg-palvelut)) *){margin-top:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}
.stack .card:where(:root:not(:has(.lkw-pg-palvelut)) *){position:sticky;top:calc(var(--nav-h) + var(--space-3));border-radius:var(--radius);
  padding:clamp(32px, 4vw, 64px);min-height:44svh;display:flex;flex-direction:column;justify-content:center;
  will-change:transform}
.card--paper:where(:root:not(:has(.lkw-pg-palvelut)) *){background:var(--paper);color:var(--on-paper)}
.card--ink:where(:root:not(:has(.lkw-pg-palvelut)) *){background:var(--ink-2);color:var(--on-ink)}
.card__body:where(:root:not(:has(.lkw-pg-palvelut)) *){display:flex;flex-direction:column;align-items:flex-start}
.card__top:where(:root:not(:has(.lkw-pg-palvelut)) *){display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--space-5);
  border-top:1px solid var(--rule-paper);padding-top:var(--space-4)}
.card--ink .card__top:where(:root:not(:has(.lkw-pg-palvelut)) *){border-top-color:var(--rule-ink)}
.stack .card h3:where(:root:not(:has(.lkw-pg-palvelut)) *){font-size:var(--step-4);line-height:.95;letter-spacing:-.025em}
.stack .card p:where(:root:not(:has(.lkw-pg-palvelut)) *){max-width:40ch;line-height:1.5}
.card--paper p:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--on-paper-soft)}
.card--ink p:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--on-ink-soft)}
.card__link:where(:root:not(:has(.lkw-pg-palvelut)) *){margin-top:var(--space-4);align-self:flex-start;min-height:44px;display:inline-flex;align-items:center;
  font-size:var(--step-0);text-decoration:none;border-bottom:1px solid var(--accent);padding-bottom:var(--space-1)}
.card--paper .card__link:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--on-paper);border-bottom-color:var(--accent-deep)}
.card--ink .card__link:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--paper)}
.plate:where(:root:not(:has(.lkw-pg-palvelut)) *){margin-top:var(--space-6);display:flex;flex-direction:column}
.person:where(:root:not(:has(.lkw-pg-palvelut)) *){border-top:1px solid var(--rule-paper);padding-block:var(--space-4);
  display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-4);align-items:baseline}
.person h3:where(:root:not(:has(.lkw-pg-palvelut)) *){font-size:var(--step-4);line-height:.95;letter-spacing:-.025em;color:var(--on-paper)}
.person .lines:where(:root:not(:has(.lkw-pg-palvelut)) *){display:flex;flex-direction:column;gap:var(--space-1)}
.person a:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--on-paper);text-decoration:none;font-variant-numeric:tabular-nums;
  min-height:44px;display:inline-flex;align-items:center;width:fit-content;border-bottom:1px solid var(--rule-paper)}
.person a:hover:where(:root:not(:has(.lkw-pg-palvelut)) *){border-bottom-color:var(--accent-deep)}
.where:where(:root:not(:has(.lkw-pg-palvelut)) *){margin-top:var(--space-6);display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-5);
  border-top:1px solid var(--rule-paper);padding-top:var(--space-4)}
.where p:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--on-paper-soft);line-height:1.6}
.where a:where(:root:not(:has(.lkw-pg-palvelut)) *){color:var(--on-paper);display:inline-flex;align-items:center;min-height:44px;border-bottom:1px solid var(--rule-paper)}
.badge:where(:root:not(:has(.lkw-pg-palvelut)) *){align-self:start}
.badge img:where(:root:not(:has(.lkw-pg-palvelut)) *){width:200px;border-radius:0}
.btn:where(:root:not(:has(.lkw-pg-palvelut)) *){display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 var(--space-4);
  border-radius:var(--radius-btn);font-size:var(--step-0);text-decoration:none;cursor:pointer;
  transition:background .2s var(--ease-out),color .2s var(--ease-out)}
.btn--fill{background:var(--accent);color:var(--ink);font-weight:700}
.btn--fill:hover:where(:root:not(:has(.lkw-pg-palvelut)) *){background:var(--accent-deep);color:var(--paper)}
.btn--ghost{background:none;color:inherit;border:1px solid currentColor}
.contact-action{margin-top:var(--space-6)}
.band-figure:where(:root:has(.lkw-pg-palvelut) *){margin-top:var(--space-6)}
.band-figure img:where(:root:has(.lkw-pg-palvelut) *){width:100%;aspect-ratio:16 / 5;object-fit:cover;object-position:50% 42%;border-radius:var(--radius)}
.band-figure figcaption:where(:root:has(.lkw-pg-palvelut) *){margin-top:var(--space-2);font-size:var(--step--1);color:var(--on-paper-soft)}
.on-ink .band-figure figcaption:where(:root:has(.lkw-pg-palvelut) *){color:var(--on-ink-soft)}
.badge:where(:root:has(.lkw-pg-palvelut) *){margin-top:var(--space-5)}
.badge img:where(:root:has(.lkw-pg-palvelut) *){width:200px}
.badge figcaption:where(:root:has(.lkw-pg-palvelut) *){margin-top:var(--space-2);font-size:var(--step--1);color:var(--on-ink-soft)}
.site-foot{background:var(--ink);color:var(--on-ink-soft);padding-block:var(--space-6) var(--space-5);
  border-top:1px solid var(--rule-ink)}
.foot-in{max-width:var(--container-max);margin:0 auto;padding-inline:var(--gutter);
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);gap:var(--space-5);align-items:start}
.foot-brand{font-family:'Sentient',Georgia,serif;font-weight:700;font-size:24px;color:var(--paper);line-height:1}
.site-foot p{font-size:var(--step--1);line-height:1.7}
.site-foot a{color:var(--on-ink);text-decoration:none;border-bottom:1px solid var(--rule-ink);
  display:inline-flex;align-items:center;min-height:44px}
.site-foot ul{list-style:none;padding:0;display:flex;flex-direction:column;gap:var(--space-1)}
.site-foot li{font-size:var(--step--1)}
@media (prefers-reduced-motion: no-preference){
html.js [data-reveal]{opacity:0;transform:translateY(16px)}
}
@media (hover: hover) and (pointer: fine){
.nav-links a,.nav-right a{transition:color .16s var(--ease-out)}
}
@media (max-width: 899px){
:root{--nav-h:64px}
.head-in{grid-template-columns:auto 1fr auto}
.brand{grid-column:1;justify-self:start}
.nav-right{grid-column:3}
.nav-links{grid-column:1 / -1;display:none}
.nav-links.is-open{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);
    padding-block:var(--space-3) var(--space-4)}
.burger{display:inline-flex}
.only-mobile{display:block}
.nav-right .nav-contact{display:none}
.nav-right{gap:var(--space-2)}
.head-in{gap:var(--space-2)}
.head{grid-template-columns:1fr;row-gap:var(--space-2)}
.head h2,.head .lede{grid-column:1}
.head::before{width:64px;margin-top:0}
.card:where(:root:has(.lkw-pg-palvelut) *){grid-template-columns:1fr;gap:var(--space-3)}
.card__top:where(:root:not(:has(.lkw-pg-palvelut)) *){grid-template-columns:1fr;gap:var(--space-3)}
.person:where(:root:not(:has(.lkw-pg-palvelut)) *){grid-template-columns:1fr;gap:var(--space-2)}
.where{grid-template-columns:1fr}
.foot-in{grid-template-columns:1fr;gap:var(--space-4)}
.hero__copy:where(:root:not(:has(.lkw-pg-palvelut)) *){padding-block:var(--space-8) var(--space-6)}
.stack .card:where(:root:not(:has(.lkw-pg-palvelut)) *){position:static;min-height:0}
.stack:where(:root:not(:has(.lkw-pg-palvelut)) *){gap:var(--space-2)}
}
@media (max-width: 420px){
.nav-right{gap:var(--space-1)}
.brand{font-size:18px}
.nav-tel{font-size:15px}
.badge img:where(:root:not(:has(.lkw-pg-palvelut)) *){width:168px}
}
