/* veroarkki.fi — « Verokartta » : clair froid, une seule famille (Onest, servie par le site), carte ou instrument
   à gauche sur fond de glace, lecture à droite. Les @font-face sont dans base.html (adresses avec empreinte). */
:root{
  --bg:#ffffff; --ice:#eef3f7; --ice2:#e2eaf1; --ink:#0f1a2b; --muted:#4f5f74; --blue:#163b6e; --red:#b3261e; --focus:#0b57d0; --kehys:#6b7a8f;
  --viiva:#c9d4e0;
  --c1:#dce8f2; --c2:#b7cfe3; --c3:#8bb0d2; --c4:#5b8bbe; --c5:#2f63a0; --c6:#163b6e;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 19px/1.5 "Onest",system-ui,-apple-system,"Segoe UI",sans-serif;font-variant-numeric:tabular-nums;overflow-wrap:break-word}
a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--red)}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
.piilo{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.hyppy{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 12px;z-index:30}
.hyppy:focus{left:8px}

/* ---------- yläosa ---------- */
.yla{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:18px 32px;flex-wrap:wrap}
.merkki{font-weight:700;font-size:26px;letter-spacing:-.01em;text-decoration:none;color:var(--ink);display:inline-flex;align-items:center;min-height:44px}
.merkki span{color:var(--blue)}
.yla .paavalikko{display:flex;flex-wrap:wrap;gap:4px 22px}
.yla .paavalikko a{text-decoration:none;color:var(--ink);padding:10px 0;font-weight:500;font-size:17px;display:inline-block}
.yla .paavalikko a:hover,.yla .paavalikko a[aria-current]{color:var(--red);text-decoration:underline}
.valikko{display:none;position:relative}
.valikko summary{list-style:none;cursor:pointer;min-height:44px;min-width:44px;display:flex;align-items:center;gap:8px;padding:0 14px;border:1.5px solid var(--kehys);border-radius:4px;font-weight:500;font-size:17px}
.valikko summary::-webkit-details-marker{display:none}
.valikko summary::after{content:"";width:9px;height:9px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg) translateY(-3px)}
.valikko[open] summary::after{transform:rotate(-135deg) translate(-2px,-1px)}
.valikko nav{position:absolute;right:0;top:calc(100% + 6px);z-index:20;width:min(300px,calc(100vw - 36px));max-height:calc(100vh - 90px);overflow-y:auto;background:#fff;border:1.5px solid var(--kehys);border-radius:4px;padding:6px 0}
.valikko ul{list-style:none;margin:0;padding:0}
.valikko li a{display:flex;align-items:center;min-height:44px;padding:0 16px;color:var(--ink);text-decoration:none;font-size:17px}
.valikko li a:hover,.valikko li a[aria-current]{background:var(--ice);color:var(--blue)}
.riippumaton{margin:0;padding:0 32px 14px;color:var(--muted);font-size:16px}

/* ---------- asettelu : kartta / paneeli vasemmalla, lukema oikealla ---------- */
.asettelu{display:grid;grid-template-columns:46% minmax(0,1fr);align-items:start}
.kartta,.paneeli{background:var(--ice);position:sticky;top:0}
.kartta{height:calc(100vh - 124px);min-height:560px;padding:20px 28px 16px;display:flex;flex-direction:column}
.kartta svg{flex:1;min-height:0;width:100%;display:block}
.kunta{fill:var(--c3);stroke:#ffffff;stroke-width:.9;cursor:pointer;transition:fill .15s}
.kunta.l0,.s0{fill:var(--c1);background:var(--c1)} .kunta.l1,.s1{fill:var(--c2);background:var(--c2)} .kunta.l2,.s2{fill:var(--c3);background:var(--c3)}
.kunta.l3,.s3{fill:var(--c4);background:var(--c4)} .kunta.l4,.s4{fill:var(--c5);background:var(--c5)} .kunta.l5,.s5{fill:var(--c6);background:var(--c6)}
.kunta:hover{fill:#f6b6ae}
.kunta.valittu{fill:var(--red);stroke:#ffffff;stroke-width:3}
.selite{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px;font-size:15px;color:var(--muted)}
.selite li{display:flex;align-items:center;gap:6px}
.selite i{display:inline-block;width:18px;height:18px}
.karttalahde{margin:8px 0 0;font-size:14px;color:var(--muted)}

.asettelu > .kartta{grid-column:1;grid-row:1}
.asettelu > .lukema{grid-column:2;grid-row:1}
.asettelu.sivu{grid-template-columns:42% minmax(0,1fr)}
.sivu .ylaosa{grid-column:2;grid-row:1;padding-bottom:0}
.sivu .paneeli{grid-column:1;grid-row:1 / span 2;align-self:start}
.sivu .alaosa{grid-column:2;grid-row:2;padding-top:0}
.paneeli{max-height:100vh;overflow-y:auto;padding:24px 28px 32px;min-height:calc(100vh - 124px)}
.paneeli h2{font-size:24px;margin:0 0 16px}
.paneeli .tyokalut{columns:1}

.lukema{padding:8px 56px 48px 48px;max-width:860px;min-width:0}
h1{font-size:44px;line-height:1.08;font-weight:500;letter-spacing:-.015em;margin:8px 0 20px;max-width:18ch}
h2{font-size:28px;line-height:1.2;font-weight:500;letter-spacing:-.01em;margin:56px 0 14px}
h3{font-size:20px;font-weight:500;margin:28px 0 8px}
.johdanto{font-size:19px;color:var(--muted);margin:0 0 24px;max-width:46ch}
.johdanto p{margin:0}
.paivays{font-size:16px;color:var(--muted);margin:0 0 8px}
.murut{font-size:16px;color:var(--muted);margin:14px 0 0}
.murut a{display:inline-block;padding:8px 0}

/* ---------- lomakkeet ---------- */
.haku{display:grid;grid-template-columns:1fr 1fr;gap:18px 28px;align-items:end;max-width:640px}
.laskin .haku{grid-template-columns:1fr}
.laskin .haku.kaksi{grid-template-columns:1fr 1fr}
.kentta{min-width:0}
.kentta label,.kentta legend,.kentta .nimio{display:block;font-size:16px;color:var(--muted);margin-bottom:6px}
.kentta input[type=text],.kentta input[type=number],.kentta input[type=date],.kentta input[type=time],.kentta input[type=search],.kentta select{width:100%;height:52px;font:inherit;font-size:21px;padding:0 12px;border:1.5px solid var(--kehys);border-radius:4px;background:#fff;color:var(--ink)}
.kentta select{font-size:19px;padding-right:8px}
.kentta input:focus,.kentta select:focus{border-color:var(--focus)}
.valinnat{border:0;padding:0;margin:0;grid-column:1 / -1;display:flex;gap:4px 22px;flex-wrap:wrap;min-width:0}
.valinnat legend{float:left;width:100%;font-size:16px;color:var(--muted);margin-bottom:2px;padding:0}
.valinnat label{display:inline-flex;align-items:center;gap:8px;min-height:44px;color:var(--ink);font-size:18px}
.valinnat input{width:22px;height:22px;accent-color:var(--blue);margin:0;flex:none}
.valinnat.pysty{flex-direction:column;gap:0}
.virhe{color:var(--red);font-size:16px;margin:6px 0 0}
.koko{grid-column:1 / -1}
.haku .vastaus{margin-top:6px}
#km-autolle > * + *{margin-top:16px}

/* ---------- vastaus ---------- */
.vastaus{margin-top:28px}
.iso{font-size:112px;line-height:.95;font-weight:700;letter-spacing:-.03em;margin:0;color:var(--ink)}
.iso .yks{font-size:.42em;font-weight:500;letter-spacing:0;margin-left:.08em;color:var(--muted)}
.laskin .iso{font-size:72px}
.lause{font-size:21px;margin:10px 0 0;max-width:34ch;color:var(--muted)}
.lause strong{color:var(--ink);font-weight:500}
.laskin .lause{font-size:19px;max-width:none}
.eikortti{font-size:19px;margin:14px 0 0;max-width:44ch;color:var(--ink)}
.eikortti strong{font-weight:700;color:var(--red)}
.vastaus.vanha .iso,.vastaus.vanha .lause{color:var(--muted)}

.erittely{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 36px;margin:30px 0 0;max-width:600px}
.laskin .erittely{grid-template-columns:1fr;gap:0;margin-top:22px}
.erittely div{display:flex;justify-content:space-between;gap:12px;padding:6px 0}
.laskin .erittely div{border-bottom:1px solid var(--viiva)}
.erittely dt{color:var(--muted);font-size:17px}
.erittely dd{margin:0;font-weight:500;text-align:right}
.erittely .summa dd{font-weight:700}
.erittely .summa{background:var(--ice);padding:6px 10px;margin:0 -10px}
.paneeli .erittely .summa{background:#fff}
.rajaus,.pieni{color:var(--muted);font-size:16.5px;max-width:64ch}
#sijoitus{font-size:21px;max-width:40ch}
#sijoitus strong{font-weight:500}
.aarilaidat{display:grid;grid-template-columns:1fr 1fr;gap:24px 40px;max-width:720px}
.aarilaidat h3{margin-top:8px}
.aarilaidat ol{margin:0;padding-left:1.3em}
.aarilaidat li{padding:3px 0}
.aarilaidat li span{color:var(--muted)}

/* ---------- mainospaikat (piilossa, kunnes sivulla on mainoksia) ---------- */
.mainos[hidden]{display:none}
.mainos{display:block;min-height:120px;margin:40px 0 0;background:var(--ice);position:relative}
.mainos .mainos-merkki{position:absolute;top:8px;left:12px;font-size:14px;color:var(--muted)}

/* ---------- luvut, taulukot, listat ---------- */
.luvut{list-style:none;margin:0;padding:0;max-width:720px}
.luvut li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 24px;padding:12px 0;align-items:baseline}
.luvut .nimi{font-size:17px;color:var(--muted)}
.luvut .arvo{font-size:30px;font-weight:700;letter-spacing:-.02em;grid-column:1;grid-row:2}
.luvut .arvo small{display:block;font-size:17px;font-weight:400;color:var(--muted);letter-spacing:0}
.luvut .linkki{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:17px;white-space:nowrap;padding:10px 0}

.taulukko-selite{color:var(--muted);font-size:16px;margin:0 0 8px;max-width:64ch}
.taulu{overflow-x:auto;max-width:100%}
table.asteikko{border-collapse:collapse;width:100%;max-width:720px;font-size:18px}
table.asteikko th{text-align:left;font-weight:500;color:var(--muted);font-size:16px;padding:8px 12px;border-bottom:1px solid var(--viiva);vertical-align:bottom}
table.asteikko td{padding:10px 12px}
table.asteikko tbody tr:nth-child(odd) td{background:var(--ice)}
table.asteikko tr.nyt td{font-weight:700;background:var(--c1)}

.tyokalut{list-style:none;margin:0;padding:0;columns:2;column-gap:40px;max-width:760px}
.tyokalut li{break-inside:avoid;padding:2px 0}
.tyokalut li a{display:inline-block;padding:10px 0;min-height:44px}
.tyokalut li a[aria-current]{color:var(--red)}
.tyokalut li span{display:block;color:var(--muted);font-size:16px}
.lahteet{padding-left:1.2em;font-size:16.5px;color:var(--muted);max-width:760px}
.lahteet li{margin:6px 0}
.lahteet a{display:inline;padding:2px 0}

/* ---------- artikkeli (sivujen Markdown-teksti) ---------- */
.artikkeli{max-width:68ch}
.artikkeli h2:first-child{margin-top:8px}
.artikkeli p,.artikkeli li{max-width:68ch}
.artikkeli ul,.artikkeli ol{padding-left:1.3em}
.artikkeli li{margin:6px 0}
.artikkeli table{display:block;overflow-x:auto;max-width:100%;border-collapse:collapse;font-size:17px;margin:12px 0 18px}
.artikkeli th{text-align:left;font-weight:500;color:var(--muted);font-size:15.5px;padding:8px 12px;border-bottom:1px solid var(--viiva);vertical-align:bottom}
.artikkeli td{padding:9px 12px;vertical-align:top}
.artikkeli tbody tr:nth-child(odd) td{background:var(--ice)}
.artikkeli blockquote{margin:16px 0;padding:4px 0 4px 18px;border-left:4px solid var(--c4);color:var(--muted)}
.artikkeli code{font-size:.9em}

/* ---------- haku-taulukot (ulkomaa, kiinteistö) ---------- */
.hakutaulu{max-height:60vh;overflow:auto;margin-top:18px;border-top:1px solid var(--viiva)}
.hakutaulu table{border-collapse:collapse;width:100%;font-size:17px}
.hakutaulu th{position:sticky;top:0;background:var(--ice);text-align:left;font-weight:500;color:var(--muted);font-size:15px;padding:8px 10px;border-bottom:1px solid var(--viiva)}
.hakutaulu td{padding:8px 10px;border-bottom:1px solid #fff}
.hakutaulu td.luku,.hakutaulu th.luku{text-align:right}
.hakutaulu tr.kaupunki td:first-child{padding-left:26px}
.hakutaulu tr.valittu td{background:var(--c1);font-weight:700}
.paivarivit{margin:16px 0 0;padding:0;list-style:none}
.paivarivit li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--viiva)}
.paivarivit .kentta{grid-column:1 / -1}

.ala{padding:28px 32px 40px;background:var(--ice);color:var(--muted);font-size:16px}
.ala p{margin:6px 0;max-width:80ch}
.ala a{display:inline-block;padding:10px 0}

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

@media (max-width:1100px){
  .lukema{padding:8px 32px 40px 32px}
  .iso{font-size:88px}
  .laskin .iso{font-size:60px}
  h1{font-size:36px}
  .paneeli{padding:20px 20px 28px}
}
@media (max-width:760px){
  body{font-size:18px}
  .yla{padding:14px 18px}
  .yla .paavalikko{display:none}
  .valikko{display:block}
  .riippumaton{padding:0 18px 10px;font-size:15px}
  .asettelu{grid-template-columns:minmax(0,1fr) 150px;column-gap:14px;padding:0 18px}
  .asettelu.sivu{display:flex;flex-direction:column;align-items:stretch;padding:0 18px}
  .lukema{display:contents}
  .ylaosa{display:contents}
  .ylaosa h1{grid-column:1;grid-row:1}
  .ylaosa .haku{grid-column:1;grid-row:2;min-width:0}
  .ylaosa .johdanto{grid-column:1 / -1;grid-row:4;margin:24px 0 0}
  .asettelu > .kartta{grid-column:2;grid-row:1 / span 2;position:static;height:auto;background:none;padding:6px 0 0;display:block;min-height:0}
  .kartta svg{width:150px;height:263px}
  .selite{display:none}
  .karttalahde{font-size:12px;line-height:1.3;margin-top:6px}
  .vastausosa{grid-column:1 / -1;grid-row:3;min-width:0}
  .alaosa{grid-column:1 / -1;grid-row:5;min-width:0}
  .sivu .lukema{display:block;padding:0;max-width:none}
  .sivu .paneeli{position:static;max-height:none;min-height:0;overflow:visible;margin:0 -18px;padding:20px 18px 26px}
  h1{font-size:28px;margin:4px 0 14px;max-width:none}
  .johdanto{font-size:18px;margin-bottom:18px}
  h2{font-size:24px;margin-top:40px}
  .paneeli h2{font-size:22px}
  .haku,.laskin .haku.kaksi{grid-template-columns:1fr;gap:12px}
  .kentta input[type=text],.kentta input[type=number],.kentta input[type=date],.kentta input[type=time],.kentta input[type=search],.kentta select{height:48px;font-size:19px}
  .valinnat{gap:2px 14px}
  .valinnat label{font-size:17px;min-height:44px}
  .eikortti{font-size:18px}
  .iso{font-size:60px}
  .laskin .iso{font-size:52px}
  .lause{font-size:18px}
  .erittely{grid-template-columns:1fr;gap:0}
  .aarilaidat{grid-template-columns:1fr}
  .tyokalut{columns:1}
  .luvut li{grid-template-columns:minmax(0,1fr)}
  .luvut .arvo{font-size:26px}
  .luvut .linkki{grid-column:1;grid-row:auto;padding:6px 0}
  table.asteikko{font-size:15px}
  table.asteikko th{font-size:14px}
  table.asteikko th,table.asteikko td{padding:8px 5px}
  .artikkeli table{font-size:15.5px}
  .artikkeli th,.artikkeli td{padding:8px 6px}
  .ala{padding:22px 18px 32px}
}
@media (max-width:340px){
  .asettelu{grid-template-columns:minmax(0,1fr) 110px}
  .kartta svg{width:110px;height:193px}
  .iso{font-size:48px}
}
