/* ------------------------------------------------------------------
   Hienox Oy — sivuston tyylit
   Rakennettu brändiohjeiston 1.0 / 2026 mukaan.
   Päävärit, typografia ja suhteet: ks. brändimanuaali s. 8–10.
   ------------------------------------------------------------------ */

:root{
  /* Brändivärit — älä muuta ilman ohjeiston päivitystä */
  --sininen:#003040;          /* Hienox-sininen, pääväri */
  --sininen-syva:#002230;     /* tummennettu, sallittu syvennyksiin */
  --vihrea:#40C080;           /* Hienox-vihreä, yksivärisenä */
  --vihrea-vaalea:#48E898;    /* liukuvärin vaalea pää */
  --x-sininen:#B8D0E0;        /* X-sininen, aputeksti tummalla */
  --paperi:#F2F2F3;           /* vaalea pohja */
  --leipa:#1D1F20;            /* leipätekstin väri vaalealla */

  /* Johdetut sävyt */
  --harmaa-vaalealla:#59696F; /* aputeksti vaalealla, kontrasti 4,9:1 */
  --viiva-vaalealla:#D3D7D8;
  --viiva-tummalla:#1A4453;
  --pinta-vaalealla:#FFFFFF;
  --pinta-tummalla:#00394C;

  --radius:2px;
  --max:1180px;
  --luku:580px;   /* tekstipalstan leveys — sama joka sivulla */
  --varjo:0 1px 2px rgba(0,48,64,.06),0 12px 30px -20px rgba(0,48,64,.35);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:110px}

body{
  margin:0;
  font-family:"Barlow","Helvetica Neue",Arial,sans-serif;
  font-size:17px;line-height:1.55;font-weight:400;
  -webkit-font-smoothing:antialiased;
  background:var(--paperi);color:var(--leipa);
}
/* Sama sivu ei käytä molempia pohjia (ohjeisto s. 9).
   Etusivu on julistemainen ja tumma, sisältösivut vaaleita. */
body.tumma{background:var(--sininen);color:var(--paperi)}

h1,h2,h3,h4{margin:0;font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;
  font-weight:600;letter-spacing:0;line-height:1.06;text-wrap:balance;color:var(--sininen);
  /* Suomen pitkat yhdyssanat eivat saa katketa keskelta ilman tavuviivaa.
     Tavutus hoitaa rajatapaukset; katkaisu sallitaan vasta kapealla naytolla. */
  overflow-wrap:normal;hyphens:auto}
@media(max-width:520px){h1,h2,h3,h4{overflow-wrap:break-word}}
body.tumma h1,body.tumma h2,body.tumma h3,body.tumma h4{color:var(--paperi)}
p{margin:0}
a{color:inherit}
img{max-width:100%;height:auto}
:focus-visible{outline:3px solid var(--vihrea-vaalea);outline-offset:3px}
@media (prefers-reduced-motion: reduce){*{transition:none!important;scroll-behavior:auto!important}}

.wrap{max-width:var(--max);margin-inline:auto;padding-inline:24px}

/* tunniste — versaali vain lyhyissä tunnisteissa (ohjeisto s. 10) */
.tunniste{font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;font-weight:600;
  font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--vihrea)}
body:not(.tumma) .tunniste{color:var(--sininen);opacity:.7}

.skip{position:absolute;left:-9999px;top:0;background:var(--vihrea);color:var(--sininen);
  padding:12px 18px;z-index:300;font-weight:600}
.skip:focus{left:0}

/* ---------------- header: aina umpisininen palkki (ohjeisto s. 5) ---- */
header.site{position:sticky;top:0;z-index:100;background:var(--sininen);
  border-bottom:1px solid var(--viiva-tummalla)}
/* padding-block eika padding: lyhenne nollaisi .wrapin sivupehmusteen */
.bar{display:flex;align-items:center;gap:20px;min-height:78px;padding-block:12px}
.brand{display:flex;align-items:center;text-decoration:none;flex:0 0 auto}
.brand img{width:150px;height:auto;display:block}
@media(max-width:520px){.brand img{width:124px}}
nav.main{display:flex;gap:26px;margin-left:auto;align-items:center}
nav.main > a,.ryhma-nappi{font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;
  font-weight:600;font-size:16px;letter-spacing:.11em;text-transform:uppercase;text-decoration:none;
  color:var(--vihrea);padding:8px 0;border-bottom:2px solid transparent}
nav.main > a:hover{color:var(--vihrea-vaalea);border-bottom-color:var(--vihrea-vaalea)}
nav.main > a[aria-current="page"]{color:var(--paperi);border-bottom-color:var(--vihrea)}
@media(max-width:960px){nav.main{display:none}}

/* ---------------- valikkoryhmät (Palvelut / Hankkeet) ----------------
   Ryhmä on painike ja sen alle avautuva lista. Valikon leveys ei kasva,
   vaikka palveluita tai hankkeita tulisi lisää. */
.ryhma{position:relative}
.ryhma-nappi{background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;
  display:inline-flex;align-items:center;gap:8px;line-height:1.2}
.ryhma-nappi:hover{color:var(--vihrea-vaalea);border-bottom-color:var(--vihrea-vaalea)}
.ryhma-nappi[data-aktiivinen]{color:var(--paperi);border-bottom-color:var(--vihrea)}
.ryhma-nappi .nuoli{width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;transition:transform .15s ease}
.ryhma-nappi[aria-expanded="true"] .nuoli{transform:rotate(180deg)}
.ryhma-lista{position:absolute;top:calc(100% + 10px);left:-18px;z-index:120;
  min-width:200px;list-style:none;margin:0;padding:8px 0;
  background:var(--pinta-tummalla);border:1px solid var(--vihrea);border-radius:var(--radius);
  box-shadow:0 14px 34px rgba(0,20,28,.42)}
.ryhma-lista::before{content:"";position:absolute;bottom:100%;left:0;right:0;height:10px}
.ryhma-lista a{display:block;padding:11px 18px;text-decoration:none;color:var(--paperi);
  font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;font-weight:600;
  font-size:16px;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.ryhma-lista a:hover{background:var(--sininen-syva);color:var(--vihrea-vaalea)}
.ryhma-lista a[aria-current="page"]{color:var(--vihrea-vaalea)}

/* mobiilivalikon ryhmäotsikot */
#mobiilivalikko .mob-otsikko{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-weight:600;font-size:14px;letter-spacing:.16em;text-transform:uppercase;
  color:var(--x-sininen);padding:18px 0 4px}
#mobiilivalikko .mob-otsikko + li a{padding-top:6px}

/* ---------------- painikkeet: vihreä on painikkeen väri (ohjeisto s. 9) */
.btn{font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;font-weight:600;
  font-size:17px;letter-spacing:.05em;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:48px;padding:12px 24px;border-radius:var(--radius);cursor:pointer;
  text-decoration:none;border:2px solid transparent;
  background:linear-gradient(100deg,var(--vihrea-vaalea),var(--vihrea));
  color:var(--sininen);transition:filter .15s ease}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:none;border-color:var(--sininen);color:var(--sininen)}
.btn.ghost:hover{background:none;filter:none;border-color:var(--vihrea);color:var(--sininen)}
body.tumma .btn.ghost{border-color:var(--x-sininen);color:var(--paperi)}
body.tumma .btn.ghost:hover{border-color:var(--vihrea-vaalea);color:var(--paperi)}
.btn.small{min-height:42px;padding:9px 18px;font-size:16px}
.btn-row{display:flex;flex-wrap:wrap;gap:14px;align-items:center}

.puhelin{font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;font-weight:600;
  font-size:18px;letter-spacing:.04em;text-decoration:none;color:var(--sininen);
  border-bottom:2px solid var(--vihrea);padding-bottom:2px}
body.tumma .puhelin{color:var(--paperi)}
.puhelin:hover{border-bottom-color:var(--vihrea-vaalea)}

/* ---------------- hero ---------------- */
.hero{padding-block:68px 14px}
.hero h1{font-size:clamp(30px,4.6vw,56px);max-width:min(700px,100%);margin:18px 0 22px}
@media(max-width:430px){.hero h1{font-size:29px}}
.hero .lede{font-size:clamp(18px,1.7vw,21px);max-width:var(--luku);margin-bottom:30px;
  color:var(--harmaa-vaalealla)}
body.tumma .hero .lede{color:var(--x-sininen)}
.hero .vastaa{font-family:"Barlow",Arial,sans-serif;font-size:14.5px;margin-top:18px;
  color:var(--harmaa-vaalealla)}
body.tumma .hero .vastaa{color:var(--x-sininen);opacity:.85}

/* kuvahero: valokuva + sininen kalvo 40–60 % (ohjeisto s. 11) */
.hero-kuva{position:relative;isolation:isolate;padding-block:96px 84px;overflow:hidden;min-height:600px;display:flex;align-items:center}
.hero-kuva > .wrap{width:100%}
.hero-kuva::before{content:"";position:absolute;inset:0;z-index:-2;
  background-image:var(--hero);background-size:cover;background-position:64% 0}
.hero-kuva::after{content:"";position:absolute;inset:0;z-index:-1;
  background:linear-gradient(90deg,rgba(0,48,64,.92) 0%,rgba(0,48,64,.78) 46%,rgba(0,48,64,.5) 100%)}
.hero-kuva h1,.hero-kuva .lede,.hero-kuva .vastaa{color:var(--paperi)}
.hero-kuva .lede{color:var(--x-sininen)}
@media(max-width:760px){
  .hero-kuva{padding-block:64px 56px;min-height:0;display:block}
  .hero-kuva::before{background-position:70% 0}
  .hero-kuva::after{background:rgba(0,48,64,.86)}
}

/* ---------------- lukupalkki ---------------- */
.luvut{border-top:1px solid var(--viiva-tummalla);border-bottom:1px solid var(--viiva-tummalla);
  padding:34px 0;background:var(--sininen-syva)}
body:not(.tumma) .luvut{background:var(--pinta-vaalealla);
  border-color:var(--viiva-vaalealla)}
.luvut-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
@media(max-width:820px){.luvut-grid{grid-template-columns:1fr;gap:22px}}
.luku .n{font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;font-weight:600;
  font-size:clamp(28px,3.4vw,38px);line-height:1.05;color:var(--vihrea-vaalea);
  font-variant-numeric:tabular-nums}
body:not(.tumma) .luku .n{color:var(--sininen)}
.luku .t{font-size:15.5px;margin-top:6px;color:var(--x-sininen)}
body:not(.tumma) .luku .t{color:var(--harmaa-vaalealla)}

/* ---------------- osiot ---------------- */
section.osio{padding:74px 0;border-bottom:1px solid var(--viiva-vaalealla)}
body.tumma section.osio{border-bottom-color:var(--viiva-tummalla)}
section.osio.pinta{background:var(--pinta-vaalealla)}
body.tumma section.osio.pinta{background:var(--sininen-syva)}
.otsake{max-width:var(--luku);margin-bottom:40px}
.otsake h2{font-size:clamp(28px,3.8vw,42px);margin:12px 0 14px}
.otsake p{color:var(--harmaa-vaalealla)}
.otsake p + p{margin-top:12px}
body.tumma .otsake p{color:var(--x-sininen)}

/* ---------------- reittikortit ---------------- */
.reitit{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
@media(max-width:860px){.reitit{grid-template-columns:1fr}}
.reitti{display:flex;flex-direction:column;gap:12px;text-decoration:none;
  background:var(--pinta-vaalealla);border:1px solid var(--viiva-vaalealla);
  border-left:3px solid var(--vihrea);border-radius:var(--radius);
  padding:28px 26px;box-shadow:var(--varjo);transition:transform .15s ease,border-color .15s ease}
body.tumma .reitti{background:var(--pinta-tummalla);border-color:var(--viiva-tummalla);
  border-left-color:var(--vihrea);box-shadow:none}
.reitti:hover{transform:translateY(-2px)}
.reitti .q{font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;font-weight:600;
  font-size:22px;line-height:1.2;color:var(--sininen)}
body.tumma .reitti .q{color:var(--paperi)}
.reitti .a{font-size:16px;color:var(--harmaa-vaalealla)}
body.tumma .reitti .a{color:var(--x-sininen)}
.reitti .go{margin-top:auto;padding-top:10px;
  font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;font-weight:600;
  font-size:17px;letter-spacing:.04em;color:var(--sininen)}
body.tumma .reitti .go{color:var(--vihrea-vaalea)}
.reitti .tag{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:13px;
  letter-spacing:.15em;text-transform:uppercase;color:var(--harmaa-vaalealla)}
body.tumma .reitti .tag{color:var(--x-sininen);opacity:.8}

/* ---------------- palstat ja teksti ---------------- */
.palstat{display:grid;grid-template-columns:minmax(0,var(--luku)) minmax(0,1fr);gap:54px}
@media(max-width:900px){.palstat{grid-template-columns:1fr;gap:36px}}
.teksti p + p{margin-top:16px}
.teksti h3{font-size:25px;margin:32px 0 10px}
.teksti ul{margin:14px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px}
.teksti ul li{position:relative;padding-left:22px;color:var(--harmaa-vaalealla)}
body.tumma .teksti ul li{color:var(--x-sininen)}
.teksti ul li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;
  background:var(--vihrea)}

/* ---------------- sopii / ei sovi ---------------- */
.sopii{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:780px){.sopii{grid-template-columns:1fr}}
.laatikko{background:var(--pinta-vaalealla);border:1px solid var(--viiva-vaalealla);
  border-radius:var(--radius);padding:26px 24px}
body.tumma .laatikko{background:var(--pinta-tummalla);border-color:var(--viiva-tummalla)}
.laatikko h3{font-size:20px;margin-bottom:14px}
.laatikko .merkki{display:inline-block;width:22px;font-weight:700;color:var(--sininen)}
body.tumma .laatikko .merkki{color:var(--vihrea)}
.laatikko.ei .merkki{color:var(--x-sininen)}
body:not(.tumma) .laatikko.ei .merkki{color:var(--harmaa-vaalealla)}
.laatikko ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.laatikko li{font-size:16px;color:var(--harmaa-vaalealla);padding-left:22px;position:relative}
body.tumma .laatikko li{color:var(--x-sininen)}
.laatikko li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:2px;
  background:var(--viiva-vaalealla)}
body.tumma .laatikko li::before{background:var(--viiva-tummalla)}

/* ---------------- vaiheet ---------------- */
ol.vaiheet{list-style:none;counter-reset:v;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:26px}
ol.vaiheet li{counter-increment:v;padding-top:16px;border-top:2px solid var(--vihrea)}
ol.vaiheet li::before{content:counter(v,decimal-leading-zero);display:block;
  font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:15px;
  letter-spacing:.12em;color:var(--vihrea);margin-bottom:10px}
body:not(.tumma) ol.vaiheet li::before{color:var(--sininen)}
ol.vaiheet li h4{font-size:20px;margin-bottom:7px}
ol.vaiheet li p{font-size:15.5px;color:var(--harmaa-vaalealla)}
body.tumma ol.vaiheet li p{color:var(--x-sininen)}

/* ---------------- aiheet (numeroimaton, sama ruudukko kuin vaiheet) ---------------- */
ul.aiheet{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:26px}
ul.aiheet li{padding-top:16px;border-top:2px solid var(--vihrea)}
ul.aiheet li h4{font-size:20px;margin-bottom:7px}
ul.aiheet li p{font-size:15.5px;color:var(--harmaa-vaalealla)}
body.tumma ul.aiheet li p{color:var(--x-sininen)}

/* ---------------- kysymykset ---------------- */
.kysymykset{border-top:1px solid var(--viiva-vaalealla)}
body.tumma .kysymykset{border-top-color:var(--viiva-tummalla)}
.kysymykset details{border-bottom:1px solid var(--viiva-vaalealla)}
body.tumma .kysymykset details{border-bottom-color:var(--viiva-tummalla)}
.kysymykset summary{cursor:pointer;padding:20px 0;list-style:none;display:flex;gap:16px;
  align-items:baseline;font-family:"Barlow Condensed","Arial Narrow","Barlow",Arial,sans-serif;
  font-weight:600;font-size:21px;color:var(--sininen)}
body.tumma .kysymykset summary{color:var(--paperi)}
.kysymykset summary::-webkit-details-marker{display:none}
.kysymykset summary::after{content:"+";margin-left:auto;color:var(--vihrea);font-size:24px;line-height:1}
body:not(.tumma) .kysymykset summary::after{color:var(--sininen)}
.kysymykset details[open] summary::after{content:"–"}
.kysymykset details > div{padding:0 0 24px;max-width:66ch;color:var(--harmaa-vaalealla)}
body.tumma .kysymykset details > div{color:var(--x-sininen)}
.kysymykset details > div p + p{margin-top:12px}

/* ---------------- päätöskehotus ---------------- */
.paatos{background:var(--sininen);color:var(--paperi);padding:66px 0}
body.tumma .paatos{background:var(--sininen-syva)}
.paatos h2{color:var(--paperi);font-size:clamp(28px,3.6vw,40px);max-width:20ch;margin-bottom:14px}
.paatos p{color:var(--x-sininen);max-width:54ch;margin-bottom:26px}
.paatos .btn.ghost{border-color:var(--x-sininen);color:var(--paperi)}
.paatos .btn.ghost:hover{border-color:var(--vihrea-vaalea)}

/* ---------------- täydennettävä ---------------- */
.taydenna{border-left:3px solid var(--vihrea);background:var(--pinta-vaalealla);
  padding:18px 22px;border-radius:0 var(--radius) var(--radius) 0;margin:16px 0;
  box-shadow:var(--varjo)}
body.tumma .taydenna{background:var(--pinta-tummalla);box-shadow:none}
.taydenna b{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:13px;
  letter-spacing:.15em;text-transform:uppercase;color:var(--sininen);display:block;margin-bottom:7px}
body.tumma .taydenna b{color:var(--vihrea-vaalea)}
.taydenna p{font-size:15.5px;color:var(--harmaa-vaalealla)}
body.tumma .taydenna p{color:var(--x-sininen)}

/* ---------------- ihmiset ---------------- */
.ihmiset{display:flex;flex-direction:column}
.ihminen{display:flex;flex-wrap:wrap;gap:6px 18px;align-items:baseline;
  padding:18px 0;border-bottom:1px solid var(--viiva-vaalealla)}
body.tumma .ihminen{border-bottom-color:var(--viiva-tummalla)}
.ihminen:first-child{border-top:1px solid var(--viiva-vaalealla)}
body.tumma .ihminen:first-child{border-top-color:var(--viiva-tummalla)}
.ihminen .nm{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:22px;
  color:var(--sininen)}
body.tumma .ihminen .nm{color:var(--paperi)}
.ihminen .rl{font-size:15.5px;color:var(--harmaa-vaalealla);flex:1 1 auto}
body.tumma .ihminen .rl{color:var(--x-sininen)}
.ihminen .lk{display:flex;flex-wrap:wrap;gap:16px;font-size:15.5px}
.ihminen .lk a{color:var(--sininen);text-decoration:none;border-bottom:2px solid var(--vihrea);
  padding-bottom:1px}
body.tumma .ihminen .lk a{color:var(--paperi)}
.ihminen .lk a:hover{border-bottom-color:var(--vihrea-vaalea)}

/* ---------------- lomake ---------------- */
form.yhteys{display:flex;flex-direction:column;gap:18px;max-width:560px}
.kentta{display:flex;flex-direction:column;gap:7px}
label{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:14px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--sininen)}
body.tumma label{color:var(--x-sininen)}
label .vap{text-transform:none;letter-spacing:0;font-weight:400;font-size:14px;
  color:var(--harmaa-vaalealla)}
input,textarea,select{font-family:"Barlow",Arial,sans-serif;font-size:17px;color:var(--leipa);
  background:var(--pinta-vaalealla);border:2px solid var(--viiva-vaalealla);
  border-radius:var(--radius);padding:12px 14px;width:100%;min-height:50px}
input:focus,textarea:focus,select:focus{border-color:var(--vihrea);outline:none}
textarea{min-height:140px;resize:vertical}
.vihje{font-size:15px;color:var(--harmaa-vaalealla)}
.huomio{font-size:15.5px;color:var(--harmaa-vaalealla);background:var(--pinta-vaalealla);
  border:1px solid var(--viiva-vaalealla);padding:16px 18px;border-radius:var(--radius)}

/* ---------------- tiedot ---------------- */
.tiedot{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:44px;
  padding-top:26px;border-top:1px solid var(--viiva-vaalealla)}
body.tumma .tiedot{border-top-color:var(--viiva-tummalla)}
@media(max-width:800px){.tiedot{grid-template-columns:1fr;gap:20px}}
.tiedot h4{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:13px;
  letter-spacing:.15em;text-transform:uppercase;color:var(--harmaa-vaalealla);margin:0 0 8px}
.tiedot p{font-size:16px;color:var(--harmaa-vaalealla)}

/* ---------------- polku ---------------- */
.polku{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:14px;
  letter-spacing:.1em;text-transform:uppercase;color:var(--harmaa-vaalealla);
  padding:22px 0 0;display:flex;gap:10px;flex-wrap:wrap}
.polku a{text-decoration:none;color:var(--harmaa-vaalealla)}
.polku a:hover{color:var(--sininen)}

/* ---------------- footer ---------------- */
footer.site{background:var(--sininen);color:var(--paperi);padding:56px 0 42px}
/* Sarakemaara tulee muuttujasta, jonka build.py laskee NAV-ryhmista.
   Uusi ryhma lisaa sarakkeen ilman CSS-muutosta. */
.footgrid{display:grid;grid-template-columns:1.5fr repeat(var(--sarakkeet,3),minmax(120px,1fr));gap:38px}
@media(max-width:1000px){.footgrid{grid-template-columns:1fr 1fr;gap:32px}}
@media(max-width:520px){.footgrid{grid-template-columns:1fr;gap:26px}}
@media(max-width:860px){.footgrid{grid-template-columns:1fr;gap:28px}}
footer.site h4{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:13px;
  letter-spacing:.15em;text-transform:uppercase;color:var(--vihrea);margin-bottom:14px}
footer.site p,footer.site li{font-size:16px;color:var(--x-sininen)}
footer.site ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
footer.site a{color:var(--x-sininen);text-decoration:none;border-bottom:1px solid transparent}
footer.site a:hover{color:var(--paperi);border-bottom-color:var(--vihrea)}
.footlogo{width:132px;margin-bottom:18px;display:block}
.laki{margin-top:36px;padding-top:20px;border-top:1px solid var(--viiva-tummalla);
  font-size:14.5px;color:var(--x-sininen);opacity:.85;line-height:1.7}

/* ---------------- kiinteä mobiilipainike ---------------- */
.kiintea{position:fixed;left:0;right:0;bottom:0;z-index:110;display:none;gap:10px;
  padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:var(--sininen);border-top:1px solid var(--viiva-tummalla)}
.kiintea .btn{flex:1}
.kiintea .btn.ghost{border-color:var(--x-sininen);color:var(--paperi)}
@media(max-width:960px){.kiintea{display:flex}body:has(.kiintea){padding-bottom:80px}}


/* ---------------- mobiilivalikko ---------------- */
.valikko-nappi{display:none;margin-left:auto;align-items:center;gap:9px;
  font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:16px;
  letter-spacing:.11em;text-transform:uppercase;color:var(--vihrea);
  background:none;border:2px solid var(--vihrea);border-radius:var(--radius);
  min-height:44px;padding:8px 14px;cursor:pointer}
.valikko-nappi .viivat{display:inline-flex;flex-direction:column;gap:3px}
.valikko-nappi .viivat i{display:block;width:16px;height:2px;background:var(--vihrea)}
#mobiilivalikko{background:var(--sininen-syva);border-bottom:1px solid var(--viiva-tummalla)}
#mobiilivalikko ul{list-style:none;margin:0;padding:8px 0 16px;display:flex;flex-direction:column}
#mobiilivalikko a{display:block;padding:14px 0;text-decoration:none;color:var(--paperi);
  font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;font-size:20px;
  letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid var(--viiva-tummalla)}
#mobiilivalikko a:hover,#mobiilivalikko a[aria-current="page"]{color:var(--vihrea-vaalea)}
@media(max-width:960px){
  .valikko-nappi{display:inline-flex}
  .bar .btn.small{display:none}
}
@media(min-width:961px){#mobiilivalikko{display:none}}

/* ---------------- havainnekaaviot ----------------
   Yksinkertaisia HTML-kaavioita ja SVG-havainnekuvia. Ei valokuvia.
   Kaaviot ovat lukupalstaa leveämpiä, joten ne ovat .wrapin lapsia. */
.kaavio{margin:34px 0 0}
.kaavio figcaption{margin-top:16px;font-size:14.5px;color:var(--harmaa-vaalealla);max-width:var(--luku)}

/* vaakaketju: mittauspisteet ja prosessivaiheet */
.ketju{list-style:none;margin:0;padding:0;display:grid;gap:18px;
  grid-template-columns:repeat(var(--askelia,4),minmax(0,1fr))}
.ketju li{position:relative;background:var(--pinta-vaalealla);
  border:1px solid var(--viiva-vaalealla);border-top:2px solid var(--vihrea);
  border-radius:var(--radius);padding:16px 16px 18px}
section.osio.pinta .ketju li{background:var(--paperi)}
.ketju .nro{display:block;font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sininen);margin-bottom:8px}
.ketju .nimi{display:block;font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-weight:600;font-size:19px;line-height:1.15;color:var(--sininen)}
.ketju .lisa{display:block;margin-top:8px;font-size:14px;line-height:1.45;color:var(--harmaa-vaalealla)}
/* nuoli edellisestä laatikosta tähän */
.ketju li + li::before{content:"";position:absolute;left:-18px;top:50%;
  width:18px;height:2px;background:var(--viiva-vaalealla)}
.ketju li + li::after{content:"";position:absolute;left:-7px;top:50%;
  width:0;height:0;transform:translateY(-50%);
  border-top:5px solid transparent;border-bottom:5px solid transparent;
  border-left:7px solid var(--vihrea);border-right:0}
@media(max-width:800px){
  .ketju{grid-template-columns:1fr;gap:30px}
  .ketju li + li::before{left:26px;top:-30px;width:2px;height:30px}
  .ketju li + li::after{left:26px;top:-9px;transform:translateX(-50%);
    border-left:5px solid transparent;border-right:5px solid transparent;
    border-top:7px solid var(--vihrea);border-bottom:0}
}

/* signaalivertailu */
.vertailu{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin:0}
@media(max-width:760px){.vertailu{grid-template-columns:1fr;gap:22px}}
.signaali{margin:0;background:var(--pinta-vaalealla);border:1px solid var(--viiva-vaalealla);
  border-radius:var(--radius);padding:18px 18px 14px}
section.osio.pinta .signaali{background:var(--paperi)}
.signaali h3{font-size:18px;margin:0 0 4px}
.signaali .selite{font-size:14px;color:var(--harmaa-vaalealla);margin:0 0 12px}
.signaali svg{display:block;width:100%;height:auto}

/* hankekortti */
.hankekortti{background:var(--sininen);color:var(--paperi);border-radius:var(--radius);
  padding:44px 40px;margin-top:8px}
@media(max-width:600px){.hankekortti{padding:32px 24px}}
.hankekortti .merkki-rivi{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:22px}
.hankekortti .merkki-rivi span{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-weight:600;font-size:13px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--sininen);background:var(--vihrea);border-radius:var(--radius);padding:6px 12px}
.hankekortti .merkki-rivi span.reuna{background:none;color:var(--vihrea-vaalea);
  border:1px solid var(--vihrea)}
.hankekortti h2{color:var(--paperi);margin-bottom:16px}
.hankekortti p{color:var(--x-sininen);max-width:var(--luku)}
.hankekortti .logorivi{margin-top:30px}
.hankekortti .ulkolinkki{color:var(--paperi)}

/* ---------------- pitkä tekstisivu ---------------- */
.lukupalsta{max-width:var(--luku)}
.lukupalsta h2{font-size:clamp(26px,3.2vw,34px);margin:0 0 16px}
.lukupalsta p{margin:0 0 16px;color:var(--harmaa-vaalealla)}
body.tumma .lukupalsta p{color:var(--x-sininen)}
.lukupalsta p:last-child{margin-bottom:0}
.lukupalsta ul.lista{list-style:none;margin:0 0 16px;padding:0;display:flex;flex-direction:column;gap:10px}
.lukupalsta ul.lista li{color:var(--harmaa-vaalealla);padding-left:22px;position:relative}
.lukupalsta ul.lista li::before{content:"";position:absolute;left:0;top:.7em;width:10px;height:2px;background:var(--vihrea)}
.lukupalsta ul.lista li b{color:var(--leipa)}
.lukupalsta a{color:var(--sininen);border-bottom:2px solid var(--vihrea);text-decoration:none}
.lukupalsta h2:first-child{margin-top:0}
.lukupalsta h3{font-size:25px;margin:34px 0 12px}
.lukupalsta h3:first-child{margin-top:0}
figure.kuva{margin:28px 0 0;max-width:100%}
figure.kuva img{display:block;width:100%;height:auto;background:var(--pinta-vaalealla);
  border:1px solid var(--viiva-vaalealla);border-radius:var(--radius);padding:12px}

/* ---------------- palautteet ---------------- */
.palautteet{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:26px;margin-top:8px}
.palaute{background:var(--pinta-vaalealla);border:1px solid var(--viiva-vaalealla);
  border-radius:var(--radius);padding:26px 24px;margin:0;display:flex;flex-direction:column}
.palaute blockquote{margin:0;padding:0;border:0;font-size:17px;line-height:1.62;color:var(--leipa)}
.palaute blockquote p{margin:0 0 12px;font-size:17px;color:var(--leipa)}
.palaute blockquote p:last-child{margin-bottom:0}
.palaute::before{content:"”";display:block;font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-size:52px;line-height:.7;color:var(--vihrea);margin-bottom:10px}
.palaute figcaption{margin-top:auto;padding-top:16px;border-top:1px solid var(--viiva-vaalealla);
  font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;font-size:14px;color:var(--harmaa-vaalealla)}
.mittarit{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:26px;margin-top:34px}
.mittari{border-top:2px solid var(--vihrea);padding-top:14px}
.mittari .luku{display:block;font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-weight:600;font-size:40px;line-height:1;color:var(--sininen)}
.mittari .selite{display:block;margin-top:8px;font-size:15px;color:var(--harmaa-vaalealla)}
.laheteet{margin-top:26px;font-size:14.5px;color:var(--harmaa-vaalealla)}
.laatikko p.hinta{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;
  font-size:34px;line-height:1;color:var(--sininen);margin:-2px 0 6px}
.laatikko p.hinta .alv{font-size:15px;font-weight:600;letter-spacing:.04em;color:var(--harmaa-vaalealla)}
.laatikko p.kesto{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;
  letter-spacing:.06em;text-transform:uppercase;font-size:15px;color:var(--harmaa-vaalealla);
  margin:0 0 14px;padding-bottom:12px;border-bottom:1px solid var(--viiva-vaalealla)}

/* ---------------- hero, jossa kasvokuva ----------------
   Coachingissa ostetaan ihminen, joten kuva on heti otsikon vieressä. */
.hero-henkilo{display:grid;grid-template-columns:minmax(0,var(--luku)) minmax(0,300px);
  gap:54px;align-items:center}
.hero-kasvot{margin:0}
.hero-kasvot img{display:block;width:100%;height:auto;border-radius:var(--radius)}
@media(max-width:900px){
  .hero-henkilo{grid-template-columns:1fr;gap:26px}
  .hero-kasvot{order:-1;max-width:190px}
}
figure.kuva.henkilo{margin:0 0 18px}
figure.kuva.henkilo img{border:0;padding:0;background:none;border-radius:var(--radius)}
figure.kuva.pilotti{max-width:820px}
figure.kuva.logo{margin:22px 0 0;max-width:300px}
figure.kuva.logo img{border:0;padding:0;background:none}
.ulkolinkki{display:inline-flex;align-items:center;gap:8px;
  font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;
  font-size:18px;letter-spacing:.04em;color:var(--sininen);text-decoration:none;
  border-bottom:2px solid var(--vihrea);padding-bottom:2px;margin-top:18px}
body.tumma .ulkolinkki{color:var(--paperi)}
.ulkolinkki:hover{border-bottom-color:var(--vihrea-vaalea)}

/* EU-rahoituksen tunnus ja hankelogot */
.logorivi{display:flex;flex-wrap:wrap;align-items:center;gap:28px 36px;margin-top:26px}
.logorivi figure.kuva.logo{margin:0}
figure.kuva.logo.eu{max-width:330px}
@media(max-width:520px){.logorivi{gap:22px}figure.kuva.logo.eu{max-width:100%}}

/* Jos ingressin jalkeen ei tule painikkeita, ei jateta turhaa valia */
.hero .lede:last-child{margin-bottom:0}

/* ---------------- teksti + nostolaatikot rinnakkain ---------------- */
.palstat .teksti h2{font-size:clamp(26px,3.2vw,34px);margin:0 0 16px}
.palstat .teksti h2 + p{margin-top:0}
.nostot{display:flex;flex-direction:column;gap:16px}
.laatikko p{color:var(--harmaa-vaalealla);font-size:16px;margin:0}
body.tumma .laatikko p{color:var(--x-sininen)}
.laatikko h3 .aihe{display:block;font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-size:13px;letter-spacing:.15em;text-transform:uppercase;color:var(--sininen);
  opacity:.65;margin-bottom:4px}
body.tumma .laatikko h3 .aihe{color:var(--vihrea);opacity:1}

/* Leveä kuva sisältöpalstan ulkopuolella */
figure.kuva.levea{margin:0;max-width:100%}
figure.kuva.levea img{border:0;padding:0;background:none;border-radius:var(--radius)}
figure.kuva.levea figcaption{font-size:15px;color:var(--harmaa-vaalealla);margin-top:10px;max-width:var(--luku)}

/* ---------------- Sauna 2.0 ----------------
   Hankesivu saa olla muita design-vetoisempi: koko leveyden kuvakaista,
   vailja avaus ja kuuden teeman ruudukko. Ei uusia varaja eika fontteja. */

/* koko leveyden kuvakaista — mainin suora lapsi, ei .wrapin sisalla */
.kuvakaista{margin:0}
.kuvakaista img{display:block;width:100%;height:clamp(300px,42vw,560px);
  object-fit:cover;object-position:34% 45%;border-radius:0}
.kuvakaista figcaption{font-size:14.5px;color:var(--harmaa-vaalealla);padding-top:12px}

/* vailja avaus: teksti ja yksi nostoluku */
.avaus{display:grid;grid-template-columns:minmax(0,var(--luku)) minmax(0,1fr);
  gap:64px;align-items:start}
@media(max-width:900px){.avaus{grid-template-columns:1fr;gap:34px}}
.avaus .teksti p + p{margin-top:18px}
.iso-luku{border-top:2px solid var(--vihrea);padding-top:20px}
.iso-luku .n{display:block;font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-weight:600;font-size:clamp(46px,5.6vw,70px);line-height:1;color:var(--sininen);
  font-variant-numeric:tabular-nums}
.iso-luku .t{display:block;margin-top:12px;font-size:15.5px;line-height:1.5;
  color:var(--harmaa-vaalealla);max-width:270px}

/* kuuden teeman ruudukko (2 x 3) */
.helmet{list-style:none;margin:0;padding:0;display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;
  background:var(--viiva-vaalealla);border:1px solid var(--viiva-vaalealla);
  border-radius:var(--radius);overflow:hidden}
.helmet li{background:var(--pinta-vaalealla);padding:34px 30px 36px}
.helmet .aihe{display:block;font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-weight:600;font-size:13px;letter-spacing:.15em;text-transform:uppercase;
  color:var(--sininen);opacity:.65;margin-bottom:10px}
.helmet h3{font-size:23px;margin-bottom:10px}
.helmet p{font-size:15.5px;color:var(--harmaa-vaalealla)}
@media(max-width:900px){.helmet{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.helmet{grid-template-columns:1fr}}

/* lyhyt tilannekatsaus */
.tilanne{max-width:760px;background:var(--pinta-vaalealla);border-radius:var(--radius);
  border:1px solid var(--viiva-vaalealla);border-top:2px solid var(--vihrea);
  padding:34px 34px 36px}
section.osio.pinta .tilanne{background:var(--paperi)}
@media(max-width:600px){.tilanne{padding:28px 24px 30px}}
.tilanne h2{font-size:clamp(24px,2.8vw,30px);margin-bottom:14px}
.tilanne p{color:var(--harmaa-vaalealla)}
.tilanne p + p{margin-top:12px}

figure.kuva.detalji{margin:6px 0 0}
figure.kuva.detalji img{border:0;padding:0;background:none;border-radius:var(--radius)}
figure.kuva.detalji figcaption{font-size:14.5px;line-height:1.5;
  color:var(--harmaa-vaalealla);margin-top:12px}

/* yhteyshenkilokortit kuvalla (Sauna 2.0) */
.yhteyskortit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  gap:40px;margin-top:6px;max-width:720px}
@media(max-width:600px){.yhteyskortit{grid-template-columns:1fr;gap:30px}}
.yhteyskortti{margin:0}
.yhteyskortti img{display:block;width:100%;max-width:200px;height:auto;
  border-radius:var(--radius)}
.yhteyskortti .nm{display:block;font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  font-weight:600;font-size:22px;line-height:1.15;color:var(--sininen);margin-top:18px}
.yhteyskortti .rl{display:block;font-size:15.5px;color:var(--harmaa-vaalealla);margin-top:3px}
.yhteyskortti .lk{margin-top:12px;font-size:15.5px;line-height:2.1}
.yhteyskortti .lk a{display:inline-block}
.yhteyskortti .lk a{color:var(--sininen);text-decoration:none;
  border-bottom:2px solid var(--vihrea);padding-bottom:1px}
.yhteyskortti .lk a:hover{border-bottom-color:var(--vihrea-vaalea)}

/* ---------------- syva osio: tumma kaista vaalealla sivulla ----------------
   Kaytetaan mittausdatalle. Kuvat ovat lapinakyvia PNG:ita, joiden
   varit on tehty tummalle pohjalle (#003040), joten pohja on pakko olla sama. */
section.osio.syva{background:var(--sininen);border-bottom-color:var(--viiva-tummalla)}
section.osio.syva h2,section.osio.syva h3,section.osio.syva h4{color:var(--paperi)}
section.osio.syva p{color:var(--x-sininen)}
section.osio.syva .tunniste{color:var(--vihrea);border-bottom-color:var(--vihrea)}
section.osio.syva figure.kaavio{max-width:940px}
section.osio.syva figure.kaavio img{display:block;width:100%;height:auto;
  background:none;border:0;padding:0}
section.osio.syva figcaption{color:var(--x-sininen);opacity:.9}
section.osio.syva ul.aiheet li{border-top-color:var(--vihrea)}
section.osio.syva ul.aiheet li p{color:var(--x-sininen)}

/* yksittainen kuvaaja: otsikko, ajanjakso, kuva, selite */
.kuvaaja{margin-top:54px}
.kuvaaja h3{font-size:clamp(22px,2.4vw,27px);margin-bottom:6px}
.kuvaaja .ala{font-family:"Barlow Condensed","Arial Narrow",Arial,sans-serif;font-weight:600;
  font-size:14px;letter-spacing:.13em;text-transform:uppercase;
  color:var(--vihrea);margin-bottom:20px}
.kuvaaja picture,.kuvaaja img{display:block;width:100%;height:auto}
.kuvaaja .selite{margin-top:18px;max-width:var(--luku);font-size:16px}
ul.aiheet.tiedot{margin-top:60px}
.tiedot li p{font-size:15px}

/* Hero ilman ingressia: ilman valitekstia otsikon ja leipatekstin vali
   kasvaa liian isoksi. Kaytossa vain Tarina-sivulla. */
.hero.tiivis h1{margin-bottom:0}
.hero.tiivis + section.osio{padding-top:60px}
