/* ============================================================
   KaksiMo — jaettu tyylitiedosto
   Muuta värit, fontit ja perusasettelu TÄSTÄ yhdestä paikasta.
   ============================================================ */

:root{
  /* brändipaletti */
  --musta:#111111;
  --harmaa:#9FA9AD;
  --sininen:#0E5BA5;
  --vaalea-sininen:#73A4CF;
  --beige:#D6C8BF;
  /* paletista johdetut laajennusvärit */
  --navy:#0A2540;
  --paper:#F7F6F3;
  --paper-2:#ffffff;
  /* semanttiset */
  --line:rgba(17,17,17,.12);
  --line-dark:rgba(255,255,255,.14);
  --text:#1a1c1f;
  --text-soft:#4a4f56;
  --maxw:1160px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--paper);color:var(--text);
  font-family:'Inter',sans-serif;font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
main{flex:1;display:flex;flex-direction:column;}
main > section{flex:1;}

img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
.grotesk{font-family:'Space Grotesk',sans-serif;}
.eyebrow{
  font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:500;
  letter-spacing:.12em;text-transform:uppercase;color:var(--sininen);
}
::selection{background:var(--vaalea-sininen);color:var(--navy);}

/* ---------- nav ---------- */
header.site{
  position:fixed;top:0;left:0;right:0;z-index:50;
  padding:18px 0;transition:background .25s, box-shadow .25s;
}
header.site.scrolled{background:rgba(247,246,243,.9);backdrop-filter:blur(10px);box-shadow:0 1px 0 var(--line);}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;}
.logo{display:flex;align-items:center;gap:10px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:18px;letter-spacing:-.01em;color:#fff;transition:color .25s;}
.logo .mark{display:flex;}
.logo-kaksi { color: #2156A1; }
.logo-mo    { color: #A7B0B5; }

/* OLETUS: header on tumman heron päällä -> vaalea teksti */
nav.main ul{list-style:none;display:flex;gap:30px;margin:0;padding:0;align-items:center;}
nav.main a{font-size:14.5px;font-weight:500;color:rgba(255,255,255,.82);transition:color .2s;}
nav.main a:hover,nav.main a[aria-current="page"]{color:#fff;}
nav.main a[aria-current="page"]{position:relative;}
nav.main a[aria-current="page"]::after{content:'';position:absolute;left:0;right:0;bottom:-6px;height:2px;background:var(--sininen);border-radius:2px;}
.nav-cta{background:var(--sininen);color:#fff !important;padding:9px 18px;border-radius:8px;font-size:14px;}
.nav-cta:hover{background:#0a4a87;color:#fff !important;}
.nav-cta::after{display:none !important;}
.nav-toggle{display:none;background:none;border:none;cursor:pointer;padding:8px;}
.nav-toggle span{display:block;width:22px;height:2px;background:#fff;margin:4px 0;transition:.2s;}

/* SCROLLATTU: header saa vaalean taustan -> tumma teksti */
header.site.scrolled .logo{color:var(--musta);}
header.site.scrolled nav.main a{color:var(--text-soft);}
header.site.scrolled nav.main a:hover,
header.site.scrolled nav.main a[aria-current="page"]{color:var(--musta);}
header.site.scrolled .nav-toggle span{background:var(--musta);}

@media(max-width:820px){
  nav.main ul{
    position:absolute;top:100%;left:0;right:0;flex-direction:column;gap:0;
    background:var(--paper-2);border-top:1px solid var(--line);box-shadow:0 20px 40px rgba(10,37,64,.1);
    display:none;padding:8px 0;
  }
  nav.main ul.open{display:flex;}
  nav.main li{width:100%;}
  /* mobiilivalikko on aina vaalea paneeli -> tummat linkit riippumatta scrollista */
  nav.main a,
  header.site.scrolled nav.main a{display:block;padding:14px 32px;color:var(--text-soft);}
  nav.main a:hover,
  nav.main a[aria-current="page"],
  header.site.scrolled nav.main a[aria-current="page"]{color:var(--musta);}
  nav.main a[aria-current="page"]::after{display:none;}
  .nav-cta,
  header.site.scrolled nav.main a.nav-cta{margin:8px 32px;border-radius:8px;text-align:center;color:#fff !important;}
  .nav-toggle{display:block;}
}

/* ---------- buttons ---------- */
.btn{
  font-family:'Space Grotesk',sans-serif;font-weight:500;font-size:15px;
  padding:13px 26px;border-radius:9px;display:inline-flex;align-items:center;gap:8px;
  transition:transform .15s,background .2s,border-color .2s;
}
.btn-primary{background:var(--sininen);color:#fff;}
.btn-primary:hover{background:#1568b8;}
.btn-ghost{border:1px solid rgba(255,255,255,.28);color:#fff;}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.06);}
.btn-dark{background:var(--navy);color:#fff;}
.btn-dark:hover{background:#0d2f52;}

/* ---------- hero (home) ---------- */
.hero{background:var(--navy);color:#fff;padding:170px 0 96px;position:relative;overflow:hidden;}
.hero::after{content:'';position:absolute;right:-160px;top:-160px;width:520px;height:520px;background:radial-gradient(circle, rgba(115,164,207,.28), transparent 68%);pointer-events:none;}
.hero .wrap{position:relative;z-index:1;}
.hero h1{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(38px,6vw,68px);line-height:1.02;letter-spacing:-.02em;margin:20px 0 0;max-width:16ch;}
.hero h1 em{font-style:normal;color:var(--vaalea-sininen);}
.hero p.lead{margin:26px 0 0;max-width:56ch;font-size:18px;color:rgba(255,255,255,.72);}
.hero-actions{margin-top:38px;display:flex;gap:14px;flex-wrap:wrap;}

/* ---------- interior page hero ---------- */
.page-hero{background:var(--navy);color:#fff;padding:150px 0 70px;position:relative;overflow:hidden;}
.page-hero::after{content:'';position:absolute;left:-140px;bottom:-180px;width:460px;height:460px;background:radial-gradient(circle, rgba(115,164,207,.22), transparent 68%);pointer-events:none;}
.page-hero .wrap{position:relative;z-index:1;}
.page-hero h1{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(32px,5vw,54px);line-height:1.04;letter-spacing:-.02em;margin:16px 0 0;max-width:18ch;}
.page-hero p{margin:20px 0 0;max-width:56ch;font-size:17px;color:rgba(255,255,255,.72);}

/* ---------- trust strip ---------- */
.strip{background:var(--musta);color:rgba(255,255,255,.7);padding:20px 0;}
.strip .wrap{display:flex;gap:40px;flex-wrap:wrap;justify-content:center;align-items:center;font-family:'Space Grotesk',sans-serif;font-size:13.5px;letter-spacing:.04em;}
.strip span.item{display:flex;align-items:center;gap:9px;}
.strip .dot{width:6px;height:6px;border-radius:50%;background:var(--vaalea-sininen);}

/* ---------- section base ---------- */
section{padding:100px 0;}
.sec-head{max-width:660px;margin-bottom:52px;}
.sec-head h2{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(28px,3.6vw,40px);line-height:1.1;letter-spacing:-.015em;margin:12px 0 14px;}
.sec-head p{color:var(--text-soft);font-size:17px;margin:0;}
.bg-paper{background:var(--paper);}
.bg-white{background:var(--paper-2);}
.bg-beige{background:var(--beige);}
.bg-navy{background:var(--navy);color:#fff;}

/* ---------- service cards ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
.svc{background:var(--paper-2);border:1px solid var(--line);border-radius:16px;padding:34px 32px 30px;display:flex;flex-direction:column;transition:border-color .2s,transform .2s,box-shadow .2s;}
.svc:hover{border-color:var(--vaalea-sininen);transform:translateY(-3px);box-shadow:0 14px 40px rgba(10,37,64,.08);}
.svc-cat{font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--harmaa);}
.svc h3{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:23px;margin:10px 0 0;letter-spacing:-.01em;}
.svc .tags{display:flex;flex-wrap:wrap;gap:7px;margin:16px 0 18px;}
.svc .tags span{font-size:12px;font-weight:500;padding:4px 11px;border-radius:999px;background:rgba(14,91,165,.08);color:var(--sininen);}
.svc p{color:var(--text-soft);font-size:14.5px;margin:0;flex:1;}
.svc .more{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-family:'Space Grotesk',sans-serif;font-weight:500;font-size:14px;color:var(--sininen);display:inline-flex;align-items:center;gap:7px;transition:gap .2s;}
.svc:hover .more{gap:11px;}
.svc.feature{background:var(--navy);border-color:var(--navy);}
.svc.feature .svc-cat{color:var(--vaalea-sininen);}
.svc.feature h3{color:#fff;}
.svc.feature p{color:rgba(255,255,255,.72);}
.svc.feature .tags span{background:rgba(115,164,207,.18);color:#cfe0f0;}
.svc.feature .more{color:var(--vaalea-sininen);border-top-color:var(--line-dark);}
@media(max-width:760px){.svc-grid{grid-template-columns:1fr;}}

/* ---------- detailed service block (palvelut.html) ---------- */
.svc-detail{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start;padding:64px 0;border-top:1px solid var(--line);}
.svc-detail:first-of-type{border-top:none;}
.svc-detail .label{font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--harmaa);}
.svc-detail h3{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(24px,3vw,32px);letter-spacing:-.015em;margin:12px 0 14px;}
.svc-detail .intro{color:var(--text-soft);font-size:16px;margin:0;}
.svc-detail ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:18px;}
.svc-detail li{padding-left:26px;position:relative;}
.svc-detail li::before{content:'';position:absolute;left:0;top:8px;width:9px;height:9px;border-radius:50%;background:var(--sininen);}
.svc-detail li strong{display:block;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:15.5px;margin-bottom:3px;}
.svc-detail li span{color:var(--text-soft);font-size:14.5px;}
@media(max-width:760px){.svc-detail{grid-template-columns:1fr;gap:26px;}}

/* ---------- philosophy split ---------- */
.phil .wrap{display:grid;grid-template-columns:1fr 1fr;gap:56px;}
.phil .col h3{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(24px,3vw,32px);margin:0 0 14px;color:var(--musta);letter-spacing:-.01em;}
.phil .col p{color:#514c46;font-size:15.5px;margin:0;}
.phil .col .num{font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:600;letter-spacing:.1em;color:var(--sininen);}
@media(max-width:760px){.phil .wrap{grid-template-columns:1fr;gap:36px;}}

/* ---------- vision / mission (yritys.html) ---------- */
.vm{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.vm.reverse .vm-text{order:2;}
.vm-text h2{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(26px,3.4vw,38px);letter-spacing:-.015em;margin:12px 0 16px;}
.vm-text p{color:var(--text-soft);font-size:16.5px;margin:0;}
.vm-visual{aspect-ratio:4/3;width:100%;object-fit:cover;border-radius:18px;background:linear-gradient(135deg,var(--sininen),var(--navy));position:relative;overflow:hidden;}
/* koko: näytä koko kuva sen omassa muodossa (ei rajausta, ei tyhjää) */
img.vm-visual.koko{aspect-ratio:auto;height:auto;object-fit:initial;background:none;}
/* sovita: pidä 4:3-laatikko, mahduta koko kuva sisään (voi jäädä tyhjää reunoille) */
img.vm-visual.sovita{object-fit:contain;background:var(--navy);}
.vm-visual.alt{background:linear-gradient(135deg,var(--vaalea-sininen),var(--sininen));}
.vm-visual::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 70% 30%, rgba(255,255,255,.18), transparent 60%);}
@media(max-width:760px){.vm{grid-template-columns:1fr;gap:28px;}.vm.reverse .vm-text{order:0;}}

/* ---------- values grid ---------- */
.values{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.value{background:var(--paper-2);padding:38px 34px;}
.value .vnum{font-family:'Space Grotesk',sans-serif;font-size:13px;font-weight:600;color:var(--vaalea-sininen);letter-spacing:.08em;}
.value h4{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:21px;margin:8px 0 10px;letter-spacing:-.01em;}
.value p{color:var(--text-soft);font-size:14.5px;margin:0;}
@media(max-width:640px){.values{grid-template-columns:1fr;}}

/* ---------- founders ---------- */
.story{max-width:720px;margin-bottom:56px;}
.story p{color:var(--text-soft);font-size:16.5px;}
.founders{display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.founder{background:var(--paper-2);border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;}
.founder img{width:100%;aspect-ratio:1/1;object-fit:cover;background:var(--harmaa);}
.founder .fb{padding:24px 26px 28px;}
.founder h4{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:21px;margin:0 0 3px;}
.founder .role{font-size:13px;font-weight:600;color:var(--sininen);letter-spacing:.03em;margin-bottom:12px;display:block;}
.founder p{font-size:14px;color:var(--text-soft);margin:0;}
.founder a{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-family:'Space Grotesk',sans-serif;font-weight:500;font-size:13.5px;color:var(--sininen);}
@media(max-width:640px){.founders{grid-template-columns:1fr;}}

/* ---------- capabilities grid ---------- */
.caps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.cap{background:var(--paper-2);border:1px solid var(--line);border-radius:12px;padding:24px 22px;}
.cap .cnum{font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:600;letter-spacing:.08em;color:var(--vaalea-sininen);}
.cap h5{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:16px;margin:10px 0 6px;letter-spacing:-.01em;}
.cap p{color:var(--text-soft);font-size:13.5px;margin:0;line-height:1.5;}
@media(max-width:820px){.caps{grid-template-columns:1fr 1fr;}}
@media(max-width:520px){.caps{grid-template-columns:1fr;}}

/* ---------- network band ---------- */
.network .wrap{display:flex;gap:56px;align-items:flex-start;flex-wrap:wrap;}
.network h3{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:26px;max-width:320px;margin:0;letter-spacing:-.01em;}
.network p{max-width:520px;color:var(--text-soft);flex:1;min-width:260px;margin:0;}

/* ---------- CTA band ---------- */
.cta-band{background:var(--navy);color:#fff;text-align:center;}
.cta-band h2{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(28px,4vw,44px);letter-spacing:-.015em;margin:0 0 16px;}
.cta-band p{color:rgba(255,255,255,.72);max-width:52ch;margin:0 auto 30px;font-size:17px;}

/* ---------- contact ---------- */
.contact .wrap{display:grid;grid-template-columns:.85fr 1.15fr;gap:56px;}
.contact h2{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:clamp(28px,3.6vw,40px);margin:12px 0 16px;letter-spacing:-.015em;color:#fff;}
.contact .lead{color:rgba(255,255,255,.7);max-width:38ch;margin:0 0 24px;}
.contact .direct{font-family:'Space Grotesk',sans-serif;font-size:15px;color:rgba(255,255,255,.85);line-height:2;}
.contact .direct a{color:var(--vaalea-sininen);}
form{display:flex;flex-direction:column;gap:15px;}
.frow{display:grid;grid-template-columns:1fr 1fr;gap:15px;}
label{font-family:'Space Grotesk',sans-serif;font-size:11.5px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.55);display:block;margin-bottom:6px;}
input,select,textarea{width:100%;background:rgba(255,255,255,.05);border:1px solid var(--line-dark);border-radius:9px;padding:12px 14px;color:#fff;font-family:'Inter',sans-serif;font-size:14.5px;}
input::placeholder,textarea::placeholder{color:rgba(255,255,255,.35);}
input:focus,select:focus,textarea:focus{outline:2px solid var(--vaalea-sininen);outline-offset:1px;background:rgba(255,255,255,.08);}
select option{color:#111;}
textarea{min-height:110px;resize:vertical;}
button[type=submit]{align-self:flex-start;margin-top:4px;background:var(--sininen);border:none;color:#fff;font-family:'Space Grotesk',sans-serif;font-weight:500;font-size:15px;padding:13px 30px;border-radius:9px;cursor:pointer;transition:background .2s;}
button[type=submit]:hover{background:#1568b8;}
button[type=submit]:disabled{opacity:.6;cursor:default;}
.form-note{font-size:13px;margin:6px 0 0;}
.form-note.ok{color:var(--vaalea-sininen);}
.form-note.err{color:#ff9c8a;}
@media(max-width:820px){.contact .wrap{grid-template-columns:1fr;}.frow{grid-template-columns:1fr;}}

/* ---------- legal / text pages ---------- */
.prose{max-width:720px;}
.prose h2{font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:24px;margin:38px 0 10px;letter-spacing:-.01em;}
.prose h2:first-child{margin-top:0;}
.prose p{color:var(--text-soft);font-size:15.5px;}
.prose ul{color:var(--text-soft);font-size:15.5px;padding-left:20px;}

/* ---------- footer ---------- */
footer.site{background:var(--musta);padding:34px 0 40px;}
footer.site .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
footer.site p{margin:0;color:rgba(255,255,255,.45);font-family:'Space Grotesk',sans-serif;font-size:13px;}
footer.site ul{list-style:none;display:flex;gap:22px;margin:0;padding:0;flex-wrap:wrap;}
footer.site a{color:rgba(255,255,255,.6);font-size:13.5px;}
footer.site a:hover{color:#fff;}

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


.strip.js-marquee .wrap {
  overflow: hidden;
  display: block;           /* kumoaa mahdollisen flex-asettelun */
  padding-left: 0;
  padding-right: 0;
  -webkit-mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
  mask-image: linear-gradient(to right, transparent, black 8%, black 92%, transparent);
}

.strip.js-marquee .marquee-track {
  display: flex;
  width: max-content;
  animation: strip-scroll 30s linear infinite;
}

.strip.js-marquee .marquee-group {
  display: flex;
  align-items: center;
  gap: 2.5rem;              /* itemien väli — säädä omaan tyyliin sopivaksi */
  padding-right: 2.5rem;    /* sama kuin gap, jotta sauma ei näy */
  flex-shrink: 0;
}

/* Liike oikealle: nauha siirtyy -50 % -kohdasta nollaan ja alkaa alusta */
@keyframes strip-scroll {
  from { transform: translateX(-50%); }
  to   { transform: translateX(0); }
}

/* Pysäytä hiiren ollessa päällä */
.strip.js-marquee:hover .marquee-track {
  animation-play-state: paused;
}

/* Ei liikettä, jos käyttäjä on estänyt animaatiot */
@media (prefers-reduced-motion: reduce) {
  .strip.js-marquee .marquee-track {
    animation: none;
  }
}

