:root{
  --purple:#6B47A6;--purple-deep:#3E2766;--purple-soft:#EFEAF7;
  --coral:#E4523F;--saffron:#F0A332;
  --ink:#221B30;--muted:#5E566E;--paper:#FFFFFF;--tint:#F7F5FB;--line:#E3DDEE;
  --f-display:"Unbounded","Montserrat",system-ui,sans-serif;
  --f-body:"Montserrat",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-label:"Barlow Condensed","Arial Narrow",sans-serif;
  --gutter:clamp(16px,4vw,40px);
  color-scheme:light;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font:400 16px/1.7 var(--f-body);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:var(--purple)}
a:focus-visible{outline:3px solid var(--saffron);outline-offset:3px;border-radius:4px}
.wrap{max-width:1180px;margin:0 auto;padding-inline:var(--gutter)}
.topbar{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.topbar .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand img{height:30px;width:auto}
.brand span{font:600 .9rem/1.1 var(--f-label);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);border-left:1px solid var(--line);padding-left:12px}
.back{font-weight:600;text-decoration:none;padding:10px 16px;border-radius:999px;background:var(--purple);color:#fff;font-size:.9rem;white-space:nowrap}
.back:hover{background:var(--purple-deep)}
@media (max-width:560px){.brand span{display:none}}

.head{background:linear-gradient(180deg,var(--tint),var(--paper));padding-block:clamp(40px,6vw,72px) 24px}
.eyebrow{font:600 .95rem/1 var(--f-label);letter-spacing:.14em;text-transform:uppercase;color:var(--purple);display:flex;align-items:center;gap:10px}
.dots{display:inline-flex;gap:5px}.dots i{width:9px;height:9px;border-radius:50%;display:block}
.dots i:nth-child(1){background:var(--coral)}.dots i:nth-child(2){background:var(--saffron)}.dots i:nth-child(3){background:#B9B3C4}
h1,h2{font-family:var(--f-display);line-height:1.18;text-wrap:balance;margin:0}
h1{font-size:clamp(1.9rem,4.4vw,3rem);font-weight:800;color:var(--purple-deep);margin-top:16px}
.meta{margin-top:14px;color:var(--muted);font-size:.95rem}

.layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(24px,5vw,64px);padding-block:24px 80px}
.toc{position:sticky;top:92px;align-self:start;font-size:.92rem}
.toc ol{list-style:none;margin:0;padding:0;display:grid;gap:2px;border-left:2px solid var(--line)}
.toc a{display:block;padding:6px 14px;text-decoration:none;color:var(--muted);margin-left:-2px;border-left:2px solid transparent}
.toc a:hover{color:var(--purple);border-left-color:var(--purple)}
@media (max-width:860px){.layout{grid-template-columns:1fr}.toc{position:static}.toc ol{grid-template-columns:1fr 1fr}}

article{max-width:70ch;min-width:0}
article section{padding-block:8px 28px;border-bottom:1px solid var(--line);margin-bottom:28px}
article section:last-child{border-bottom:0}
h2{font-size:clamp(1.15rem,2vw,1.4rem);font-weight:700;color:var(--purple-deep);margin-bottom:14px}
h3{font-size:1rem;margin:20px 0 6px}
p{margin:0 0 12px}
ul{margin:0 0 12px;padding-left:20px}
li{margin-bottom:6px}
.box{background:var(--tint);border:1px solid var(--line);border-radius:14px;padding:18px 20px;margin:14px 0}
.box dl{margin:0;display:grid;grid-template-columns:max-content 1fr;gap:6px 16px}
.box dt{font:600 .85rem/1.6 var(--f-label);letter-spacing:.1em;text-transform:uppercase;color:var(--purple)}
.box dd{margin:0;word-break:break-word}
@media (max-width:520px){.box dl{grid-template-columns:1fr}.box dd{margin-bottom:8px}}
.cookie{background:#EAF6EE;border-color:#BFE3CB}
.cookie strong{color:#1E6B3A}
/* Täydennettävät kohdat – poista luokka kun tieto on lisätty */
.todo{background:#FFF1C2;border-radius:4px;padding:0 4px;font-weight:600}

footer{padding-block:28px;border-top:1px solid var(--line);color:var(--muted);font-size:.9rem}
footer .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
footer .wrap{align-items:center}
footer img{height:26px;width:auto}
footer .legal{display:flex;gap:18px;flex-wrap:wrap}
footer .legal a{color:var(--muted);font-weight:600;text-decoration:underline;text-underline-offset:3px}
footer .legal a:hover{color:var(--purple)}
.cookie p:last-child{margin:0}
