
/* ============================================================
   SUOMEN PARAS - redesign v2 "ystavallinen instituutio"
   Paperinlammin editorial-pohja, pinkki auktoriteettivarina,
   Fredoka-tyyppi, mono-numerot, ohuet viivat, iso ilma.
   ============================================================ */
:root{
  --paper:#F9EFC7; --card:#FFFFFF; --night:#2A0A1B; --night-2:#3B1226;
  --ink:#2A0A1B; --mut:#94627B; --faint:#C9A9B9;
  --line:#ECDFAF; --line-2:#DCCB8E;
  --pink:#D6246E; --deep:#A61E4D; --pink-soft:#FCE9F1; --pink-ghost:#FBF1F5;
  --gold:#FFC61A; --gold-deep:#E2A500; --cream:#FFF6E9;
  --ok:#1E9E63; --ok-soft:#E4F5EC; --bad:#E5484D;
  --r:16px; --rs:10px;
  --shadow:0 1px 2px rgba(42,10,27,.04),0 8px 28px rgba(42,10,27,.05);
  --shadow-hover:0 2px 4px rgba(42,10,27,.06),0 16px 40px rgba(42,10,27,.10);
  --blue:var(--pink); --blue-deep:var(--deep); --blue-soft:var(--pink-soft);
  --cream-bg:var(--paper); --gold-line:var(--gold);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:'Fredoka',system-ui,sans-serif;font-weight:400;background:var(--paper);
  color:var(--ink);line-height:1.65;font-size:16.5px}
img{max-width:100%}
a{color:var(--deep);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
b,strong{font-weight:600}
.wrap{max-width:1160px;margin:0 auto;padding:0 28px}
.mono{font-family:'IBM Plex Mono',monospace}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- typografia ---------- */
h1,h2,h3,h4{font-weight:600;line-height:1.12;letter-spacing:-.01em;text-wrap:balance}
h1{font-size:clamp(2.1rem,4.6vw,3.4rem)}
h2.sec{font-size:clamp(1.5rem,2.6vw,2.1rem);margin-bottom:10px}
.sec-sub{color:var(--mut);max-width:62ch;margin-bottom:26px}
.k,.kicker,.np-k,.sp-tag,.tag,.upd,.q-label,.qlab{
  font-family:'IBM Plex Mono',monospace;font-size:.66rem;font-weight:600;
  letter-spacing:.16em;text-transform:uppercase;color:var(--pink)}
.lead{font-size:1.06rem;color:var(--mut);max-width:68ch}
.crumb{font-size:.8rem;color:var(--mut);padding:22px 0 6px}
.crumb a{color:var(--mut)}
.crumb b{color:var(--ink);font-weight:500}
.note{font-size:.86rem;color:var(--mut);background:var(--pink-ghost);
  border:1px solid var(--line);border-radius:var(--rs);padding:13px 16px;margin:18px 0}
.fine{font-size:.74rem;line-height:1.6;opacity:.55;margin:26px 0 14px}

/* ---------- header ---------- */
header.site{position:sticky;top:0;z-index:50;background:rgba(249,239,199,.9);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:30px;height:66px}
.brand{display:flex;align-items:center;gap:11px;font-weight:600;font-size:1.16rem;
  color:var(--ink);letter-spacing:-.01em}
.brand:hover{text-decoration:none}
.brand img{width:30px !important;height:42px !important}
.brand .tm{color:var(--pink)}
nav.main{display:flex;gap:4px;margin-left:auto;align-items:center}
nav.main a{color:var(--ink);font-weight:500;font-size:.9rem;padding:8px 13px;
  border-radius:999px;white-space:nowrap}
nav.main a:hover{background:var(--pink-ghost);text-decoration:none}
nav.main a.on{background:var(--night);color:var(--cream)}
.navburger{display:none}

/* ---------- napit ---------- */
.btn,.sp-btn,.cbtn,.go{display:inline-block;background:var(--pink);color:#fff;
  font-family:inherit;font-weight:600;font-size:.94rem;border:0;border-radius:999px;
  padding:13px 26px;cursor:pointer;transition:transform .15s,box-shadow .15s;
  box-shadow:0 2px 10px rgba(214,36,110,.25)}
.btn:hover,.sp-btn:hover{transform:translateY(-1px);box-shadow:0 6px 18px rgba(214,36,110,.32);text-decoration:none}
.btn.ghost{background:transparent;color:var(--ink);border:1.5px solid var(--line-2);box-shadow:none}
.btn.ghost:hover{border-color:var(--pink);color:var(--deep)}

/* ---------- hero ---------- */
.hero{background:var(--paper);padding:64px 0 0;position:relative;overflow:hidden}
.hero-rays{display:none}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:center;position:relative}
.hero h1{margin:14px 0 16px}
.hero h1 em{font-style:normal;color:var(--pink)}
.hero .sub,.hero p{color:var(--mut);max-width:54ch}
.hero-cta{display:flex;gap:12px;margin-top:26px;flex-wrap:wrap}

/* haku */
.sp-search{position:relative;margin-top:30px;max-width:560px}
.sp-search input{width:100%;font-family:inherit;font-size:1.02rem;color:var(--ink);
  background:var(--card);border:1.5px solid var(--line-2);border-radius:999px;
  padding:17px 130px 17px 52px;outline:none;box-shadow:var(--shadow)}
.sp-search input:focus{border-color:var(--pink)}
.sp-search input::placeholder{color:var(--faint)}
.sp-ico{position:absolute;left:20px;top:50%;transform:translateY(-50%);width:20px;height:20px;color:var(--mut);pointer-events:none;z-index:2}
.sp-btn{position:absolute;right:7px;top:50%;transform:translateY(-50%);padding:11px 24px;z-index:2}
.sp-hint{font-size:.82rem;color:var(--mut);margin-top:10px}
.sp-results{position:absolute;top:calc(100% + 8px);left:0;right:0;background:var(--card);
  border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-hover);
  z-index:40;max-height:340px;overflow:auto;display:none}
.sp-results.open{display:block}
.sp-row{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:12px 18px;color:var(--ink);border-top:1px solid var(--line)}
.sp-row:first-child{border-top:0}
.sp-row:hover{background:var(--pink-ghost);text-decoration:none}
.sp-nm{font-weight:500}
.sp-sc{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--deep)}
.sp-empty{padding:16px 18px;color:var(--mut);font-size:.9rem}

/* herostatistiikka */
.hero-stats{display:flex;gap:40px;margin:38px 0 0;padding:22px 0 26px;border-top:1px solid var(--line)}
.hero-stat{display:block}
.hero-stat b,.hero-stat .n{display:block;font-family:'IBM Plex Mono',monospace;
  font-weight:600;font-size:1.55rem;color:var(--ink);letter-spacing:-.02em}
.hero-stat span{font-size:.8rem;color:var(--mut)}
.hs-ic{display:none}

/* ---------- bandit ---------- */
.band{padding:58px 0}
.band.light{background:var(--card);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.searchband{background:var(--night);color:var(--cream);padding:44px 0}
.searchband h2{color:var(--cream)}

/* ---------- top-taulut (etusivun karkilistat) ---------- */
.top-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}
.top-board{display:block;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);
  transition:box-shadow .18s,transform .18s;color:var(--ink)}
.top-board:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px);text-decoration:none}
.tb-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;
  padding:16px 20px 10px}
.tb-head h3{font-size:1.04rem}
.tb-head .mono{font-size:.66rem;color:var(--mut)}
.tb-row{display:flex;align-items:center;gap:12px;padding:9px 20px;border-top:1px solid var(--line);font-size:.94rem}
.tb-n{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:.8rem;width:20px;color:var(--faint)}
.tb-row:nth-child(2) .tb-n{color:var(--gold-deep)}
.tb-row .nm{font-weight:500;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tb-row .sc{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--deep)}
.tb-foot{padding:11px 20px 14px;font-size:.84rem;font-weight:600;color:var(--pink)}
.board-row .dots,.tb-row .dots{flex:1;border-bottom:2px dotted var(--line-2);margin:0 4px;min-width:14px}

/* board (kategoriasivun mini + muut) */
.board-wrap{position:relative}
.board{background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
.board-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.board-row{display:flex;align-items:center;gap:10px;padding:10px 18px;border-top:1px solid var(--line);color:var(--ink)}
.board-row:first-child{border-top:0}
.board-foot{padding:12px 18px;font-weight:600;color:var(--pink);font-size:.9rem}
.live-dot{width:8px;height:8px;border-radius:99px;background:var(--ok);display:inline-block;margin-right:6px}
.lb-fade{display:none}

/* ---------- steps (miten toimii) ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:20px;margin:30px 0}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:26px 24px;box-shadow:var(--shadow)}
.step .k{display:block;margin-bottom:12px}
.step h3{font-size:1.14rem;margin-bottom:8px}
.step p{font-size:.92rem;color:var(--mut)}

/* ---------- kategoriaruudukko ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px}
.cat-tile{display:flex;justify-content:space-between;align-items:center;gap:10px;
  background:var(--card);border:1px solid var(--line);border-radius:var(--rs);
  padding:13px 16px;font-weight:500;font-size:.92rem;color:var(--ink);
  transition:border-color .15s,box-shadow .15s}
.cat-tile:hover{text-decoration:none;border-color:var(--pink);box-shadow:var(--shadow)}
.cat-tile .st{font-family:'IBM Plex Mono',monospace;font-size:.6rem;letter-spacing:.1em;color:var(--mut)}
.cat-tile.live-cat .st{color:var(--ok)}
.cat-tile.off{opacity:.45;pointer-events:none}
.cat-group{margin-bottom:34px}
.cat-group h3{font-size:1.1rem;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}

/* ---------- sivuotsake ---------- */
.pageh{padding:26px 0 20px}
.meta-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-top:12px;
  font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--mut)}
.meta-row .upd{color:var(--ok)}
.count-pill{font-family:'IBM Plex Mono',monospace;font-size:.7rem;background:var(--pink-ghost);
  border:1px solid var(--line);border-radius:999px;padding:3px 10px;color:var(--deep)}

/* ---------- chipsit ---------- */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}
.chip{font-family:inherit;font-weight:500;font-size:.86rem;color:var(--ink);
  background:var(--card);border:1.5px solid var(--line-2);border-radius:999px;
  padding:9px 18px;cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--pink)}
.chip.on{background:var(--night);border-color:var(--night);color:var(--cream)}

/* ---------- ranking-rivit ---------- */
#ranking{display:flex;flex-direction:column;gap:14px;margin:6px 0 30px}
.rank-card{position:relative;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow);padding:22px 24px;cursor:pointer;
  transition:box-shadow .18s,transform .18s}
.rank-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}
.rank-card.m1{border-color:var(--gold);border-width:1.5px}
.rank-head{display:flex;align-items:flex-start;gap:18px}
.pos{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:1.5rem;
  color:var(--faint);min-width:44px;line-height:1.2;padding-top:2px}
.m1 .pos{color:var(--gold-deep)}
.m2 .pos,.m3 .pos{color:var(--mut)}
.medal{display:none}
.rank-main{flex:1;min-width:0}
.rank-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rank-title h3,.rank-title h2{font-size:1.22rem;font-weight:600}
.rank-meta{font-size:.82rem;color:var(--mut);margin-top:2px}
.rank-strength{font-size:.88rem;color:var(--ok);margin-top:10px;font-weight:500}
.rank-side{display:flex;flex-direction:column;align-items:flex-end;gap:10px}
.rank-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}
.rank-btns .btn{padding:9px 18px;font-size:.84rem}
.cardlink{position:static}

/* pisteleima */
.stamp{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;
  background:var(--night);color:var(--cream);border-radius:14px;padding:10px 16px 8px;min-width:82px}
.stamp b,.stamp .big{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:1.5rem;line-height:1}
.stamp span,.stamp .sub{font-family:'IBM Plex Mono',monospace;font-size:.56rem;letter-spacing:.14em;opacity:.65;margin-top:4px}
.stamp.gold{background:linear-gradient(160deg,var(--gold) 0%,var(--gold-deep) 100%);color:var(--night)}
.stamp.gold span{opacity:.75}
.stamp-big b{font-size:2rem}
.scorepill{font-family:'IBM Plex Mono',monospace;font-weight:600;background:var(--pink);color:#fff;border-radius:999px;padding:4px 12px;font-size:.86rem}

/* pilarit */
.pillars{display:grid;grid-template-columns:1fr 1fr;gap:7px 26px;margin-top:12px;max-width:520px}
.pillar{display:grid;grid-template-columns:110px 1fr 34px;gap:10px;align-items:center;font-size:.78rem;color:var(--mut)}
.pillar .v{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ink);text-align:right}
.bar{height:6px;border-radius:99px;background:var(--pink-ghost);overflow:hidden}
.bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--pink),var(--deep))}
.m1 .bar i{background:linear-gradient(90deg,var(--pink),var(--gold-deep))}

/* ---------- kuitit (profiilin pistetaulukot) ---------- */
.receipt{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);margin-bottom:20px;overflow:hidden}
.receipt-head{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:15px 20px;border-bottom:1px solid var(--line);background:var(--pink-ghost)}
.receipt-head h3{font-size:1rem}
.receipt-head .sub{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--mut)}
.receipt table{width:100%;border-collapse:collapse;font-size:.9rem}
.receipt td{padding:11px 20px;border-top:1px solid var(--line);vertical-align:top}
.receipt tr:first-child td{border-top:0}
.receipt .pts{font-family:'IBM Plex Mono',monospace;font-weight:600;text-align:right;white-space:nowrap;color:var(--ink)}
.receipt .src{font-size:.78rem;color:var(--mut)}
.receipt .plus{color:var(--ok)}
.receipt .minus{color:var(--bad)}
.quote{display:block;font-size:.8rem;color:var(--mut);border-left:2px solid var(--line-2);
  padding-left:10px;margin-top:6px;font-style:italic}
.tot td{background:var(--pink-ghost);font-weight:600}

/* profiilihero */
.p-hero{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--shadow);padding:30px;display:grid;grid-template-columns:1fr auto;gap:26px;margin-bottom:22px}
.p-facts{font-size:.88rem;color:var(--mut)}
.p-facts b{color:var(--ink)}

/* ---------- paneelit ---------- */
.panel,.critbox,.ai-note{background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow);padding:24px;margin-bottom:20px}
.critbox{border-left:4px solid var(--pink)}
.critbox-foot{font-size:.8rem;color:var(--mut);margin-top:10px}
.ai-note .tag{display:block;margin-bottom:8px}

/* tumma CTA-paneeli */
.b2b{background:var(--night);color:var(--cream);border-radius:var(--r);
  border:0;box-shadow:0 18px 44px rgba(42,10,27,.28);padding:38px 36px;margin:34px 0}
.b2b h3{color:var(--cream);font-size:1.4rem;margin-bottom:10px}
.b2b p{color:var(--cream);opacity:.8;max-width:64ch}
.b2b .btn{margin-top:18px;background:var(--gold);color:var(--night);box-shadow:none}
.b2b .btn:hover{background:var(--cream)}
.b2b small{display:block;margin-top:16px;opacity:.55;font-size:.78rem}
.b2b a{color:var(--gold)}

/* ---------- opas + ukk ---------- */
.opas{max-width:76ch}
.opas h3{margin:26px 0 8px}
.opas p,.opas li{color:var(--ink);font-size:.96rem}
.opas ul{padding-left:22px;margin:10px 0}
.opas-intro{font-size:1.02rem;color:var(--mut)}
details.ukk{background:var(--card);border:1px solid var(--line);border-radius:var(--rs);
  margin-bottom:10px;overflow:hidden}
details.ukk summary{list-style:none;cursor:pointer;padding:15px 44px 15px 18px;font-weight:500;position:relative}
details.ukk summary::-webkit-details-marker{display:none}
details.ukk summary::after{content:"+";position:absolute;right:16px;top:50%;transform:translateY(-50%);
  font-size:1.2rem;color:var(--pink);font-weight:600}
details.ukk[open] summary::after{content:"–"}
details.ukk div,details.ukk p{padding:0 18px 15px;color:var(--mut);font-size:.92rem}

/* ---------- kannattaako vaihtaa ---------- */
.kv-promo{display:block;background:linear-gradient(120deg,var(--pink) 0%,var(--deep) 100%);
  color:#fff;border-radius:var(--r);padding:30px 32px;margin:26px 0;box-shadow:0 14px 36px rgba(166,30,77,.3)}
.kv-promo:hover{text-decoration:none;transform:translateY(-2px)}
.kv-promo h3{color:#fff}
.kv-promo p{color:#fff;opacity:.85}
.kv-panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:26px;margin-bottom:20px}
.kv-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.kv-field label{display:block;font-size:.82rem;font-weight:500;color:var(--mut);margin-bottom:6px}
.kv-field input,.kv-field select{width:100%;font-family:inherit;font-size:1rem;padding:12px 14px;
  border:1.5px solid var(--line-2);border-radius:var(--rs);background:var(--card);color:var(--ink)}
.kv-field input:focus,.kv-field select:focus{outline:none;border-color:var(--pink)}
.kv-verdict{border-radius:var(--r);padding:26px;margin:20px 0;font-size:1.05rem}
.kv-verdict.v-yes{background:var(--ok-soft);border:1px solid var(--ok)}
.kv-verdict.v-no{background:var(--pink-ghost);border:1px solid var(--line-2)}
.kv-verdict.v-maybe{background:var(--cream);border:1px solid var(--gold)}
.kv-table{width:100%;border-collapse:collapse;font-size:.9rem}
.kv-table td,.kv-table th{padding:10px 12px;border-top:1px solid var(--line);text-align:left}
.kv-table th{font-family:'IBM Plex Mono',monospace;font-size:.68rem;letter-spacing:.1em;color:var(--mut);text-transform:uppercase}
.kv-badge{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:.62rem;letter-spacing:.1em;
  background:var(--pink-soft);color:var(--deep);border-radius:999px;padding:3px 10px}
.kv-src,.kv-note{font-size:.8rem;color:var(--mut)}
.kv-check label{font-size:.9rem}
.kv-actions{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.kv-alt{font-size:.9rem}
.kv-vs{font-family:'IBM Plex Mono',monospace;color:var(--mut)}
.kv-bd{border:1px solid var(--line);border-radius:var(--rs)}
.kv-bd-t{border-top:1px solid var(--line)}
.kv-bd-r{border-right:1px solid var(--line)}

/* ---------- lomakkeet (arvio, vahti, yhteiso) ---------- */
.aform input,.aform select,.aform textarea,.vahti input,.vahti select{
  width:100%;font-family:inherit;font-size:.98rem;padding:12px 14px;background:var(--card);
  border:1.5px solid var(--line-2);border-radius:var(--rs);color:var(--ink)}
.aform input:focus,.aform textarea:focus,.vahti input:focus{outline:none;border-color:var(--pink)}
.aform-note,.vahti-note{font-size:.78rem;color:var(--mut)}
.vahti{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:24px;margin:24px 0}
.vahti-row{display:flex;gap:10px;flex-wrap:wrap}
.vahti-row input{flex:1;min-width:180px}
.vahti-msg{font-size:.9rem;margin-top:10px}
.arvio-form{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.feel-row{display:flex;gap:8px;flex-wrap:wrap}
.feel{font-size:1.4rem;background:var(--card);border:1.5px solid var(--line-2);border-radius:var(--rs);
  padding:8px 14px;cursor:pointer}
.feel.on,.feel:hover{border-color:var(--pink);background:var(--pink-ghost)}
.claim-row{display:flex;justify-content:space-between;gap:12px;align-items:center;
  padding:10px 0;border-top:1px solid var(--line);font-size:.94rem}
.claim{display:flex;gap:6px}
.claim button{font-family:inherit;background:var(--card);border:1.5px solid var(--line-2);
  border-radius:999px;padding:6px 14px;cursor:pointer;font-size:.84rem}
.claim button.on{background:var(--night);color:var(--cream);border-color:var(--night)}
.a-err{color:var(--bad);font-size:.86rem}
.a-thanks{background:var(--ok-soft);border:1px solid var(--ok);border-radius:var(--rs);padding:14px 16px}
.comment-list{display:flex;flex-direction:column;gap:12px}
.comment{background:var(--card);border:1px solid var(--line);border-radius:var(--rs);padding:14px 16px}
.c-head{display:flex;gap:8px;align-items:baseline;font-size:.8rem;color:var(--mut)}
.c-name{font-weight:600;color:var(--ink)}
.c-text{font-size:.92rem;margin-top:4px}
.c-emo{font-size:1.1rem}
.agg{display:flex;gap:18px;flex-wrap:wrap;margin:14px 0}
.agg-claims{font-size:.86rem;color:var(--mut)}

/* ---------- badge/upotus ---------- */
.embed-preview{display:flex;gap:14px;flex-wrap:wrap;margin:12px 0}
.embed-preview img{border-radius:12px;border:1px solid var(--line);background:#fff}
.embed-code,.embedcode{width:100%;font-family:'IBM Plex Mono',monospace;font-size:.78rem;
  background:var(--night);color:var(--cream);border:0;border-radius:var(--rs);padding:14px 16px;overflow-x:auto}
.embedcode code{white-space:pre;color:inherit;font-family:inherit}
.copybtn{font-size:.84rem;padding:9px 18px}
.badge-yl{font-size:.8rem}

/* ---------- footer ---------- */
footer.site{background:var(--night);color:var(--cream);margin-top:70px;padding:54px 0 30px}
footer.site a{color:var(--cream);opacity:.85}
footer.site a:hover{opacity:1;color:var(--gold)}
footer.site h4{font-size:.98rem;margin-bottom:10px;color:var(--gold)}
footer.site p{font-size:.88rem;opacity:.85}
.cols{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:36px}
.foot-legal{font-size:.76rem;line-height:2;opacity:.6;border-top:1px solid rgba(255,246,233,.14);padding-top:18px}
.foot-bottom{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:20px;flex-wrap:wrap}
.foot-bottom .btn{background:transparent;border:1.5px solid rgba(255,246,233,.3);box-shadow:none}
.oy{font-family:'IBM Plex Mono',monospace;font-size:.72rem;opacity:.55}

/* ---------- langbar ---------- */
.langbar{display:flex;gap:8px;align-items:center}
.langsw{opacity:.55;cursor:pointer}
.langsw.on{opacity:1}
.flagsvg{border-radius:3px}
.langbar-bottom{display:flex;gap:12px;justify-content:center;padding:18px 0;background:var(--paper);border-top:1px solid var(--line)}

/* ---------- sekalaiset ---------- */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.specs td{padding:9px 12px;border-top:1px solid var(--line);font-size:.9rem}
.tscroll{overflow-x:auto}
.err{color:var(--bad)}
.math{font-family:'IBM Plex Mono',monospace;font-size:.84rem;background:var(--pink-ghost);
  border-radius:var(--rs);padding:14px 16px;border:1px solid var(--line)}
.cert-wrap{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.cert-demo{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
.cert-list{padding-left:20px}
.cert-list li{margin-bottom:8px}
.np-head{display:flex;gap:10px;align-items:baseline}
.npost{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px 22px;margin-bottom:14px;box-shadow:var(--shadow)}
.np-d{font-family:'IBM Plex Mono',monospace;font-size:.72rem;color:var(--mut)}
.np-link{display:inline-block;margin-top:8px;font-weight:600;color:var(--deep)}
.demo-ribbon{display:none}


/* --- v2 hionta 1: rankinumerot, #1-chip, stamppi --- */
#ranking{counter-reset:rank}
.rank-card{padding-left:74px;counter-increment:rank}
.rank-card::before{content:counter(rank);position:absolute;left:22px;top:24px;
  font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:1.7rem;
  color:var(--faint);line-height:1}
.rank-card.m1::before{color:var(--gold-deep)}
.rank-card.m2::before,.rank-card.m3::before{color:var(--mut)}
.rank-title .tag,.rank-title .kv-badge{background:var(--cream);border:1px solid var(--gold);
  color:var(--gold-deep);border-radius:999px;padding:3px 11px;letter-spacing:.1em}
.stamp{min-width:92px}
.stamp b,.stamp .big{font-size:1.65rem;color:var(--cream)}
.stamp.gold b,.stamp.gold .big{color:var(--night)}
.stamp span,.stamp .sub{opacity:.8}
@media(max-width:720px){.rank-card{padding-left:58px}.rank-card::before{left:16px;font-size:1.3rem}}


/* --- v3: tumma tulostaulu-hero --- */
.hero2{background:var(--night);color:var(--cream);padding:76px 0 0;text-align:left}
.hero2 .wrap{max-width:880px}
.hero2 h1{font-size:clamp(2.6rem,6vw,4.3rem);color:var(--cream);margin:14px 0 18px}
.hero2 h1 em{font-style:normal;color:var(--gold)}
.h2-lead{color:rgba(255,246,233,.75);max-width:56ch;font-size:1.05rem}
.gold-k{color:var(--gold)}
.hero2 .sp-search{margin-top:32px;max-width:640px}
.hero2 .sp-search input{background:var(--night-2);border-color:#57263E;color:var(--cream);box-shadow:none}
.hero2 .sp-search input::placeholder{color:rgba(255,246,233,.4)}
.hero2 .sp-search input:focus{border-color:var(--gold)}
.hero2 .sp-btn{background:var(--gold);color:var(--night)}
.hero2 .sp-ico{color:rgba(255,246,233,.5)}
.h2-stats{font-size:.74rem;letter-spacing:.04em;color:rgba(255,246,233,.55);margin:26px 0 44px}
.ticker{overflow:hidden;border-top:1px solid rgba(255,246,233,.12);padding:14px 0;position:relative}
.ticker-track{display:inline-flex;gap:44px;white-space:nowrap;animation:tick 90s linear infinite;padding-right:44px}
@keyframes tick{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.ticker-track{animation:none}}
.tick{display:inline-flex;gap:10px;align-items:baseline;font-family:'IBM Plex Mono',monospace;font-size:.7rem}
.tk-c{color:rgba(255,246,233,.5);text-transform:uppercase;letter-spacing:.08em}
.tk-w{color:var(--cream)}
.tk-s{color:var(--gold);font-weight:600}

/* --- v3: indeksilista --- */
.idx-split{display:grid;grid-template-columns:.8fr 1.2fr;gap:56px;align-items:start}
.idx-left{position:sticky;top:96px}
.idx-left .btn{margin-top:8px}
.idx-rows{display:flex;flex-direction:column}
.idx-row{display:grid;grid-template-columns:1.1fr 1fr auto 22px;gap:16px;align-items:baseline;
  padding:15px 10px;border-bottom:1px solid var(--line-2);color:var(--ink);border-radius:6px}
.idx-row:first-child{border-top:1px solid var(--line-2)}
.idx-row:hover{background:var(--card);text-decoration:none;box-shadow:var(--shadow)}
.ir-c{font-weight:600}
.ir-w{color:var(--mut);font-size:.92rem}
.ir-s{font-weight:600;color:var(--deep)}
.ir-a{color:var(--pink);font-weight:600}

/* --- v3: podium --- */
.podium{display:grid;grid-template-columns:1.15fr .85fr;gap:36px;align-items:center;
  background:var(--night);color:var(--cream);border-radius:var(--r);
  padding:40px 42px;margin:18px 0 34px;box-shadow:0 22px 54px rgba(42,10,27,.3)}
.podium h2{font-size:clamp(1.8rem,3.4vw,2.7rem);margin:10px 0 4px}
.podium h2 a{color:var(--cream)}
.podium h2 a:hover{text-decoration:none;color:var(--gold)}
.pd-meta{font-family:'IBM Plex Mono',monospace;font-size:.74rem;color:rgba(255,246,233,.55)}
.pd-strength{margin-top:14px;color:#8FE3B4;font-size:.94rem}
.pd-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.gold-btn{background:var(--gold);color:var(--night);box-shadow:none}
.gold-btn:hover{background:var(--cream)}
.podium .btn.ghost{border-color:rgba(255,246,233,.3);color:var(--cream)}
.podium .btn.ghost:hover{border-color:var(--gold);color:var(--gold)}
.pd-side{display:flex;gap:26px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.pd-pillars{flex:1;min-width:190px;display:flex;flex-direction:column;gap:9px}
.pd-p{display:grid;grid-template-columns:92px 1fr 26px;gap:8px;align-items:center;
  font-size:.68rem;color:rgba(255,246,233,.6)}
.pd-p b{font-family:'IBM Plex Mono',monospace;color:var(--cream);text-align:right}
.pd-bar{height:5px;border-radius:99px;background:rgba(255,246,233,.14);overflow:hidden}
.pd-bar i{display:block;height:100%;background:var(--gold);border-radius:99px}

/* --- v3: tulostaulukko --- */
.rt-tools{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin:26px 0 12px}
.rtable-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:26px}
.rtable{width:100%;border-collapse:collapse;min-width:760px}
.rtable thead th{font-family:'IBM Plex Mono',monospace;font-size:.62rem;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;color:var(--mut);text-align:left;
  padding:13px 14px;border-bottom:1px solid var(--line-2)}
.rtable td{padding:14px;border-top:1px solid var(--line);vertical-align:middle}
tr.rank-card{cursor:pointer;transition:background .12s}
tr.rank-card:hover{background:var(--pink-ghost)}
tr.rank-card.m1{background:linear-gradient(90deg,rgba(255,198,26,.09),transparent 60%)}
.rt-pos{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--faint);width:34px}
.m1 .rt-pos{color:var(--gold-deep)}
.m2 .rt-pos,.m3 .rt-pos{color:var(--mut)}
.rt-name a.cardlink{font-weight:600;font-size:1.02rem;color:var(--ink);position:static}
.rt-name small{display:block;color:var(--mut);font-size:.76rem;margin-top:2px}
.badge-yl{display:inline-block;margin-left:8px;font-family:'IBM Plex Mono',monospace;font-size:.62rem;
  background:var(--cream);border:1px solid var(--gold);color:var(--gold-deep);
  border-radius:999px;padding:2px 8px;vertical-align:2px}
.rt-p{width:86px}
.rt-p b{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:.82rem}
.pb{display:block;height:4px;border-radius:99px;background:var(--pink-ghost);overflow:hidden;margin-top:5px;max-width:60px}
.pb i{display:block;height:100%;background:linear-gradient(90deg,var(--pink),var(--deep))}
.rt-score{width:70px}
.rt-go{width:40px;text-align:center}
.rt-go a{font-size:1.1rem;color:var(--pink)}
tr.rank-card{opacity:1 !important;transform:none !important;box-shadow:none;border-radius:0;padding:0}
tbody#ranking{display:table-row-group !important;gap:0}
#ranking tr.rank-card::before{content:none !important}
tr.rank-card:hover{transform:none !important;box-shadow:none}
@media(max-width:900px){
  .idx-split{grid-template-columns:1fr}
  .idx-left{position:static}
  .podium{grid-template-columns:1fr;padding:28px 24px}
  .pd-side{justify-content:flex-start}
}


/* --- v4: vaalea maailma (Anton 1.9.2026): ei tummia pintoja, pinkit otsikot,
   haalistunut keltainen pohja, musta leipateksti --- */
h1,h2.sec{color:var(--pink)}
.hero2{background:var(--paper);color:var(--ink);border-bottom:1px solid var(--line)}
.hero2 h1{color:var(--pink)}
.hero2 h1 em{color:var(--deep)}
.h2-lead{color:var(--ink);opacity:.78}
.gold-k{color:var(--deep)}
.hero2 .sp-search input{background:#fff;border-color:var(--line-2);color:var(--ink);box-shadow:var(--shadow)}
.hero2 .sp-search input::placeholder{color:var(--faint)}
.hero2 .sp-search input:focus{border-color:var(--pink)}
.hero2 .sp-btn{background:var(--pink);color:#fff}
.hero2 .sp-ico{color:var(--mut)}
.h2-stats{color:var(--mut)}
.ticker{border-top:0;margin-top:8px}
.tk-c{color:var(--mut)}
.tk-w{color:var(--ink)}
.tk-s{color:var(--deep)}
.podium{background:#fff;color:var(--ink);border:1px solid var(--line-2);box-shadow:var(--shadow)}
.podium h2{color:var(--pink)}
.podium h2 a{color:var(--pink)}
.podium h2 a:hover{color:var(--deep)}
.pd-meta{color:var(--mut)}
.pd-strength{color:#14804A}
.gold-btn{background:var(--pink);color:#fff}
.gold-btn:hover{background:var(--deep);color:#fff}
.podium .btn.ghost{border-color:var(--line-2);color:var(--ink)}
.podium .btn.ghost:hover{border-color:var(--pink);color:var(--deep)}
.pd-p{color:var(--mut)}
.pd-p b{color:var(--ink)}
.pd-bar{background:rgba(42,10,27,.08)}
.pd-bar i{background:var(--pink)}
.stamp{background:var(--pink);color:#fff}
.stamp b,.stamp .big{color:#fff}
.stamp.gold{background:var(--gold);color:var(--night)}
.b2b{background:#fff;color:var(--ink);border:1px solid var(--line-2);box-shadow:var(--shadow)}
.b2b h3{color:var(--pink)}
.b2b p{color:var(--ink);opacity:.8}
.b2b .btn{background:var(--pink);color:#fff}
.b2b .btn:hover{background:var(--deep)}
.b2b small{opacity:.6}
.b2b a{color:var(--deep)}
.searchband{background:var(--paper);color:var(--ink)}
.searchband h2{color:var(--pink)}
footer.site{background:transparent;border-top:1px solid var(--line-2);color:var(--ink);margin-top:70px}
footer.site a{color:var(--deep);opacity:1}
footer.site a:hover{color:var(--pink)}
footer.site h4{color:var(--pink)}
footer.site p{opacity:.85}
.foot-legal{border-top:1px solid var(--line);opacity:.65}
.foot-bottom .btn{background:transparent;border:1.5px solid var(--line-2);color:var(--ink)}
.oy{opacity:.6}
nav.main a.on{background:var(--pink);color:#fff}
.chip.on{background:var(--pink);border-color:var(--pink);color:#fff}
.embed-code,.embedcode{background:#fff;border:1px solid var(--line-2);color:var(--ink)}
.receipt-head{background:#FCF6DD}
.tot td{background:#FCF6DD}
.note{background:#FCF6DD;border-color:var(--line)}
.kv-verdict.v-no{background:#FDF9EC}
.rank-title .tag,.rank-title .kv-badge,.badge-yl{background:#FFF9E0}
tr.rank-card:hover{background:#FCF6DD}
tr.rank-card.m1{background:linear-gradient(90deg,rgba(255,198,26,.14),transparent 60%)}
.idx-row:hover{background:#fff}
.pillar .bar,.pb{background:rgba(42,10,27,.07)}


/* --- v5: PriceRunner-layout --- */
header.site .wrap.topbar{display:grid;grid-template-columns:46px 1fr 46px;align-items:center;height:64px;gap:0}
.topbar .brand{justify-self:center}
.topbar .navburger{display:flex;flex-direction:column;justify-content:center;gap:5px;
  background:none;border:0;cursor:pointer;padding:10px;justify-self:start;
  -webkit-tap-highlight-color:transparent}
.topbar .navburger span{display:block;width:23px;height:2.5px;background:var(--ink);border-radius:2px;
  transition:transform .22s,opacity .16s}
header.site.nav-open .navburger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
header.site.nav-open .navburger span:nth-child(2){opacity:0}
header.site.nav-open .navburger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
.hsearch{background:none;border:0;cursor:pointer;color:var(--ink);padding:10px;justify-self:end}
.hsearch:hover{color:var(--pink)}
.topbar nav.main{display:none;position:absolute;top:100%;left:0;right:0;margin:0;
  flex-direction:column;align-items:stretch;gap:0;padding:6px 0 12px;
  background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(42,10,27,.12)}
header.site.nav-open .topbar nav.main{display:flex}
.topbar nav.main a{padding:14px 26px;font-size:1rem;text-align:left;border-radius:0;white-space:normal}
.topbar nav.main a.on{background:var(--pink);color:#fff}

/* pinkki herokupla */
.bubble-band{padding:14px 0 0}
.bubble{background:var(--pink);color:#fff;border-radius:26px;
  padding:clamp(30px,5vw,62px) clamp(22px,4.5vw,64px);position:relative;overflow:hidden;
  box-shadow:0 20px 50px rgba(214,36,110,.28)}
.bubble h1{color:#fff;font-size:clamp(2rem,4.6vw,3.5rem);line-height:1.06;margin:0 0 18px;max-width:14ch}
.bubble .bsub{color:rgba(255,255,255,.9);font-size:1.05rem;max-width:46ch;margin-bottom:26px}
.bubble .bsub b{color:#fff}
.bubble .sp-search{max-width:440px;margin:0}
.bubble .sp-search input{font-size:.9rem;padding:14px 96px 14px 46px}
.bubble .sp-btn{padding:9px 20px;font-size:.86rem}
.bubble .sp-btn:hover{transform:translateY(-50%);box-shadow:0 2px 8px rgba(10,10,12,.25)}
.bubble .sp-search input{background:#fff;border:0;color:var(--ink);border-radius:999px;box-shadow:0 4px 16px rgba(80,5,40,.25)}
.bubble .sp-search input::placeholder{color:#8A8A90}
.bubble .sp-btn{background:var(--night);color:#fff;border-radius:999px}
.bubble .sp-ico{color:#8A8A90}
.bubble .h2-stats{color:rgba(255,255,255,.75);margin:20px 0 0}
.bubble .sp-results{color:var(--ink)}

/* kategoriapillerit kuplan alla */
.pillrow{display:flex;gap:12px;overflow-x:auto;padding:20px 0 6px;scrollbar-width:none}
.pillrow::-webkit-scrollbar{display:none}
.pill{flex:0 0 auto;background:var(--card);border:1px solid var(--line-2);border-radius:999px;
  padding:13px 24px;font-weight:600;font-size:.95rem;color:var(--ink);white-space:nowrap}
.pill:hover{border-color:var(--pink);color:var(--deep);text-decoration:none}
.pill.lead-pill{background:var(--night);color:#fff;border-color:var(--night)}
.pill.lead-pill:hover{color:#fff;background:var(--pink);border-color:var(--pink)}
@media(max-width:720px){.bubble{border-radius:20px}.topbar{height:58px}}

/* ---------- reveal ---------- */
@media(prefers-reduced-motion:no-preference){
  .rank-card,.receipt,.step,.panel,.ai-note,.b2b,.cat-group,.p-hero,.note,.cat-tile{
    opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
  .rank-card.in,.receipt.in,.step.in,.panel.in,.ai-note.in,.b2b.in,.cat-group.in,.p-hero.in,.note.in,.cat-tile.in{
    opacity:1;transform:none}
}

/* ---------- responsiivisuus ---------- */
@media(max-width:1180px) and (min-width:951px){
  nav.main a{font-size:.82rem;padding:8px 9px}
}
@media(max-width:950px){
  header.site .wrap{height:60px}
  .navburger{display:flex;flex-direction:column;justify-content:center;gap:5px;
    margin-left:auto;background:none;border:0;cursor:pointer;padding:12px 6px;
    -webkit-tap-highlight-color:transparent}
  .navburger span{display:block;width:24px;height:2.5px;background:var(--ink);border-radius:2px;transition:transform .22s,opacity .16s}
  header.site.nav-open .navburger span:nth-child(1){transform:translateY(7.5px) rotate(45deg)}
  header.site.nav-open .navburger span:nth-child(2){opacity:0}
  header.site.nav-open .navburger span:nth-child(3){transform:translateY(-7.5px) rotate(-45deg)}
  nav.main{display:none;position:absolute;top:100%;left:0;right:0;margin-left:0;
    flex-direction:column;align-items:stretch;gap:0;padding:6px 0 12px;
    background:var(--paper);border-bottom:1px solid var(--line);box-shadow:0 18px 30px rgba(42,10,27,.12)}
  header.site.nav-open nav.main{display:flex}
  nav.main a{padding:13px 24px;font-size:1rem;text-align:right;border-radius:0}
  nav.main a.on{background:var(--pink-ghost);color:var(--deep)}
}
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:30px}
  .cols{grid-template-columns:1fr}
  .duo{grid-template-columns:1fr}
  .cert-wrap{grid-template-columns:1fr}
  .p-hero{grid-template-columns:1fr}
}
@media(max-width:720px){
  .wrap{padding:0 18px}
  body{font-size:15.5px}
  .hero{padding-top:40px}
  .hero-stats{gap:22px;flex-wrap:wrap}
  .rank-head{flex-wrap:wrap}
  .rank-side{flex-direction:row;align-items:center;width:100%;justify-content:space-between}
  .pillars{grid-template-columns:1fr}
  .band{padding:40px 0}
  .b2b{padding:28px 22px}
  .sp-search input{padding-right:112px}
}


/* ===== NEUTRAALI PRODUKTITEEMA (SP_THEME=neutral): valkoinen, Inter,
   musta teksti, pinkki AINOANA aksenttina ===== */
:root{
  --paper:#FFFFFF; --card:#FFFFFF; --night:#0E0E10; --night-2:#1A1A1E;
  --ink:#141416; --mut:#6B6B72; --faint:#A8A8B0;
  --line:#ECECEF; --line-2:#DDDDE2;
  --pink:#D6246E; --deep:#B01B59; --pink-soft:#FCE9F1; --pink-ghost:#FAFAFB;
  --gold:#FFC61A; --gold-deep:#E2A500; --cream:#FFFFFF;
  --shadow:0 1px 2px rgba(10,10,12,.05),0 6px 24px rgba(10,10,12,.05);
  --shadow-hover:0 2px 6px rgba(10,10,12,.07),0 14px 40px rgba(10,10,12,.10);
}
body,h1,h2,h3,h4,.brand,.btn,.sp-btn,.chip,input,select,textarea,button{
  font-family:Inter,-apple-system,'Segoe UI',system-ui,sans-serif !important}
h1,h2,h3{letter-spacing:-.025em;font-weight:700}
h1,h2.sec{color:var(--ink)}
.hero2{background:#fff;border-bottom:1px solid var(--line)}
.hero2 h1{color:var(--ink)}
.hero2 h1 em{color:var(--pink)}
.gold-k,.k,.kicker{color:var(--mut)}
header.site{background:rgba(255,255,255,.85)}
.podium{border-color:var(--line)}
.podium h2,.podium h2 a{color:var(--ink)}
.b2b h3{color:var(--ink)}
footer.site h4{color:var(--ink)}
.searchband h2{color:var(--ink)}
.receipt-head,.tot td,.note,tr.rank-card:hover{background:#F7F7F9}
.kv-verdict.v-no{background:#F7F7F9}
.rank-title .tag,.rank-title .kv-badge,.badge-yl{background:#FFF6D6}
.idx-row:hover{background:#F7F7F9}
.stamp{border-radius:10px}
.btn,.sp-btn{border-radius:10px}
.chip{border-radius:10px}
.sp-search input{border-radius:12px}
.hero2 .sp-search input{border-radius:12px}
.cat-tile,.idx-row{border-radius:8px}
