/* Archivo (SIL Open Font License), omasta palvelimesta */
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;
  src:url('/assets/fonts/archivo-latin.woff') format('woff')}
:root{
  --c-rust:#d24d2c;
  --c-gold:#f2c744;
  --c-petrol:#167c8c;
  --c-sky:#a9dde6;
  --c-ink:#15262b;
  --gold:#f2c744;
  --bg:#fbfaf6;
  --mist:#e6f3f2;
  --surface:#ffffff;
  --ink:#15262b;
  --muted:#4f6267;
  --line:#d5e1df;
  --head:#12707f;
  --rust:#c2431f;
  --gold-t:#a97c00;
  --sky-t:#12707f;
  --soft:#fde5dc;
  --btn-bg:#d24d2c;
  --btn-ink:#ffffff;
  --img-filter:none;
  --paper:#fbfaf6;
  --panel:#23282b;
  --panel-ink:#f2f0ea;
  --panel-muted:#b9bdbf;
  --cut:clamp(24px,4vw,56px);
  --gutter:clamp(16px,4vw,40px);
  --display:'Archivo','Helvetica Neue',Arial,sans-serif;
  --serif:'Archivo','Helvetica Neue',Arial,sans-serif;
  --sans:'Archivo','Helvetica Neue',Arial,sans-serif;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0f1517;
    --mist:#152126;
    --surface:#182227;
    --ink:#eef3f2;
    --muted:#a3b2b5;
    --line:#2a383c;
    --head:#7fd0dd;
    --rust:#f0805f;
    --gold-t:#f2c744;
    --sky-t:#8fd3df;
    --soft:#2a201d;
    --btn-bg:#e0553a;
    --btn-ink:#ffffff;
    --img-filter:brightness(.8);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0f1517;
  --mist:#152126;
  --surface:#182227;
  --ink:#eef3f2;
  --muted:#a3b2b5;
  --line:#2a383c;
  --head:#7fd0dd;
  --rust:#f0805f;
  --gold-t:#f2c744;
  --sky-t:#8fd3df;
  --soft:#2a201d;
  --btn-bg:#e0553a;
  --btn-ink:#ffffff;
  --img-filter:brightness(.8);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--serif);
  font-size:1.0625rem;
  line-height:1.65;
}
a{color:var(--rust)}
:focus-visible{outline:2px solid var(--rust);outline-offset:3px;border-radius:2px}

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

/* Header */
.site-head{
  position:sticky;
  top:env(safe-area-inset-top,0px);
  z-index:10;
  background:color-mix(in srgb,var(--bg) 90%,transparent);
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.head-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 32px;padding-block:16px}
.brand{
  position:relative;
  display:inline-flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  text-decoration:none;
  color:var(--btn-ink);
  background:var(--btn-bg);
  padding:11px 20px 9px;
  border-radius:12px 3px 12px 3px;
  isolation:isolate;
  line-height:1;
  font-family:var(--display);
  font-weight:800;
  font-stretch:125%;
  --fs:1.35rem;--tm:max(calc(var(--fs)*.24),8px);
  font-size:var(--fs);
  letter-spacing:.09em;
  text-transform:uppercase;
}
.brand::before{content:"";position:absolute;left:-6px;bottom:-5px;width:16px;height:16px;background:var(--gold);z-index:-1;border-radius:0 0 0 4px}
.brand::after{content:"";position:absolute;right:-5px;top:-4px;width:14px;height:14px;background:var(--gold);z-index:-1;border-radius:0 3px 0 0}
.banner{background:#ececec;border-bottom:1px solid var(--line)}
.banner img{display:block;width:100%;height:clamp(190px,30vw,340px);object-fit:cover;object-position:50% 45%;filter:var(--img-filter)}
nav ul{display:flex;flex-wrap:wrap;gap:2px 24px;list-style:none;margin:0;padding:0}
nav a{
  display:inline-block;
  font-family:var(--display);
  font-size:1.05rem;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--ink);
  text-decoration:none;
  padding:6px 0 4px;
  border-bottom:2px solid transparent;
}
nav a:hover{border-bottom-color:var(--line)}
nav a[aria-current="page"]{border-bottom-color:var(--gold)}

/* Page basics */
main{padding-block:clamp(28px,5vw,56px) clamp(40px,7vw,88px)}
h1{
  font-family:var(--display);
  font-weight:400;
  font-size:clamp(2.7rem,8vw,4.75rem);
  line-height:1;
  letter-spacing:.01em;
  text-transform:uppercase;
  margin:0 0 .35em;
  text-wrap:balance;
}
h2,h3{text-wrap:balance}
.lead{font-size:clamp(1.15rem,2.3vw,1.4rem);line-height:1.55;max-width:60ch;margin:0 0 2rem}
p{margin:0 0 1em;max-width:65ch}
.label{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Service rows */
.index{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 clamp(28px,5vw,48px);padding:0}
.index a{
  display:inline-block;
  font-family:var(--sans);
  font-size:.82rem;
  font-weight:500;
  color:var(--ink);
  text-decoration:none;
  padding:6px 13px;
  border:1px solid var(--line);
  border-radius:999px;
  background:var(--surface);
}
.index a:hover{border-color:var(--rust);color:var(--rust)}

.svc{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px 48px;
  padding-block:30px;
  border-top:1px solid var(--line);
  scroll-margin-top:130px;
}
.svc h2,.sec h2{
  font-family:var(--display);
  font-weight:400;
  font-size:1.5rem;
  line-height:1.15;
  letter-spacing:.03em;
  text-transform:uppercase;
  color:var(--rust);
  margin:0;
}
.svc .body>*:last-child{margin-bottom:0}
@media (min-width:860px){
  .svc{grid-template-columns:minmax(200px,300px) minmax(0,1fr)}
}
.dash{list-style:none;margin:0 0 1.2em;padding:0}
.dash li{position:relative;padding-left:1.5em}
.dash li::before{content:"";position:absolute;left:0;top:.82em;width:.8em;height:2px;background:var(--gold)}

/* Call to action */
.cta{
  margin-top:20px;
  padding:clamp(20px,4vw,32px);
  background:var(--soft);
  border-radius:4px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:18px 32px;
}
.cta h2{font-family:var(--display);font-weight:400;font-size:1.6rem;letter-spacing:.03em;text-transform:uppercase;margin:0 0 4px}
.cta p{margin:0;font-family:var(--sans);font-size:.95rem;color:var(--muted)}
.btns{display:flex;flex-wrap:wrap;gap:10px}
.btn{
  display:inline-block;
  font-family:var(--sans);
  font-weight:600;
  font-size:.95rem;
  text-decoration:none;
  padding:11px 20px;
  border-radius:3px;
  border:2px solid var(--btn-bg);
  background:var(--btn-bg);
  color:var(--btn-ink);
}
.btn.alt{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn:hover{filter:brightness(1.08)}

/* About page */
.about-top{display:grid;grid-template-columns:minmax(0,1fr);gap:36px 64px;margin-block:8px clamp(36px,6vw,64px)}
@media (min-width:860px){.about-top{grid-template-columns:300px minmax(0,1fr)}}
.tl{list-style:none;margin:14px 0 0;padding:0;border-left:2px solid var(--line)}
.tl li{position:relative;padding:0 0 26px 22px}
.tl li:last-child{padding-bottom:0}
.tl li::before{content:"";position:absolute;left:-8px;top:.4em;width:14px;height:14px;border-radius:50%;background:var(--bg);border:2px solid var(--rust)}
.tl .yrs{display:block;font-family:var(--sans);font-size:.85rem;font-weight:500;letter-spacing:.06em;color:var(--muted);font-variant-numeric:tabular-nums}
.tl .org{display:block;overflow-wrap:anywhere;font-family:var(--display);font-size:1.3rem;line-height:1.2;text-transform:uppercase;letter-spacing:.02em}
blockquote{margin:0}
.quote p{font-size:clamp(1.12rem,2.1vw,1.32rem);line-height:1.65;max-width:62ch}
.quote cite{display:block;font-family:var(--sans);font-style:normal;font-size:.85rem;color:var(--muted);margin-top:.5rem}
.sec{padding-block:30px;border-top:1px solid var(--line)}
.sec h2{margin-bottom:14px}
.sec .quote p{font-size:1.1rem}
.art{margin-top:8px;padding:clamp(22px,4vw,36px);background:var(--soft);border-radius:4px}
.art h2{margin-bottom:14px}
.art p:last-child{margin-bottom:0}

/* English page + checker */
.calc{
  margin-top:28px;
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:4px;
  padding:clamp(18px,3.5vw,32px);
}
.calc h3{font-family:var(--display);font-weight:400;font-size:1.5rem;letter-spacing:.03em;text-transform:uppercase;margin:0 0 4px}
.calc .note{font-family:var(--sans);font-size:.85rem;color:var(--muted);margin:0 0 20px}
.metric{padding-block:14px;border-top:1px solid var(--line)}
.metric-name{font-family:var(--sans);font-size:.95rem;font-weight:600;margin:0 0 8px;max-width:none}
.metric-name span{font-weight:400;color:var(--muted)}
.pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.field-head{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:4px;min-height:1.4em}
.field-head label{font-family:var(--sans);font-size:.78rem;color:var(--muted)}
.flag{font-family:var(--sans);font-size:.7rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--rust)}
.calc input[type="text"]{
  width:100%;
  font-family:var(--sans);
  font-size:1rem;
  font-variant-numeric:tabular-nums;
  color:var(--ink);
  background:var(--bg);
  border:1px solid var(--line);
  border-radius:3px;
  padding:9px 11px;
}
.calc input[type="text"]:focus-visible{outline-offset:1px}
.check-row{display:flex;gap:10px;align-items:flex-start;padding-block:14px;border-top:1px solid var(--line);font-family:var(--sans);font-size:.9rem;line-height:1.5}
.check-row input{margin-top:.25em;width:1.05rem;height:1.05rem;accent-color:var(--rust);flex:none}
.result{margin-top:6px;padding:16px 18px;border-radius:3px;background:var(--soft);border-left:4px solid var(--gold);font-family:var(--sans)}
.result.yes{border-left-color:var(--rust)}
.result strong{display:block;font-size:1.05rem;margin-bottom:2px}
.result span{display:block;font-size:.88rem;color:var(--muted)}
.fine{font-family:var(--sans);font-size:.78rem;color:var(--muted);margin:14px 0 0;max-width:none}
.person{margin-top:36px;padding-top:24px;border-top:1px solid var(--line);font-style:normal;line-height:1.55}
.person strong{font-family:var(--display);font-weight:400;font-size:1.4rem;letter-spacing:.03em;text-transform:uppercase;display:block}

/* Contact page */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:40px 64px;margin-top:8px}
@media (min-width:860px){.contact-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.contact-grid h2{font-family:var(--display);font-weight:400;font-size:1.7rem;letter-spacing:.03em;text-transform:uppercase;color:var(--rust);margin:0 0 12px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:4px;padding:clamp(20px,4vw,32px)}
.card dl{margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.card dt{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:16px}
.card dt:first-child{margin-top:0}
.card dd{margin:2px 0 0;font-size:1.15rem;overflow-wrap:anywhere}
.card .name{font-family:var(--display);font-size:1.6rem;letter-spacing:.03em;text-transform:uppercase;line-height:1.15}
.card .btns{margin-top:24px}

/* Etusivu */
.banner.tall img{height:clamp(240px,40vw,460px)}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:4px}
.facts{display:grid;grid-template-columns:minmax(0,1fr);border-top:1px solid var(--line);margin-top:clamp(32px,6vw,56px)}
.fact{padding:20px 0;border-bottom:1px solid var(--line)}
.fact p{margin:6px 0 0;font-size:1rem}
@media (min-width:860px){
  .facts{grid-template-columns:repeat(3,minmax(0,1fr))}
  .fact{padding:24px 28px 24px 0;border-bottom:0}
  .fact+.fact{padding-left:28px;border-left:1px solid var(--line)}
}
.home-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 24px;margin:clamp(40px,7vw,72px) 0 18px}
.home-head h2{font-family:var(--display);font-weight:400;font-size:clamp(1.7rem,3.5vw,2.2rem);letter-spacing:.03em;text-transform:uppercase;margin:0}
.home-head a{font-family:var(--sans);font-size:.9rem;font-weight:500}
.svc-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:minmax(0,1fr);border-bottom:1px solid var(--line)}
@media (min-width:860px){.svc-list{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:56px}}
.svc-list a{display:block;height:100%;padding:18px 0 20px;border-top:1px solid var(--line);text-decoration:none;color:var(--ink)}
.svc-list .n{display:flex;justify-content:space-between;gap:12px;font-family:var(--display);font-size:1.3rem;line-height:1.2;letter-spacing:.03em;text-transform:uppercase;color:var(--rust)}
.svc-list .n::after{content:"\2192";font-family:var(--sans);color:var(--muted);transition:transform .15s}
.svc-list a:hover .n::after{transform:translateX(3px)}
.svc-list .d{display:block;font-size:.98rem;line-height:1.55;color:var(--muted);margin-top:4px;max-width:52ch}
.home-statement{margin-top:clamp(40px,7vw,72px)}
.home-statement a{font-family:var(--sans);font-weight:500;font-size:.95rem}

/* Kuvat */
:root{--paper:#f6f5f3;--panel:#23282b;--panel-ink:#f2f0ea;--panel-muted:#b9bdbf}
.pic{margin:0;background:var(--paper);border-radius:6px}
.pic img{display:block;width:100%;height:auto;mix-blend-mode:multiply}
.cloud{margin:0 0 clamp(24px,4vw,40px)}
.portrait{max-width:260px;margin-bottom:28px}
.split{display:grid;grid-template-columns:minmax(0,1fr);gap:8px 56px;align-items:start}
.split .pic{max-width:300px}
@media (min-width:860px){.split{grid-template-columns:minmax(0,1fr) minmax(220px,300px)}}
.sec-split{border-top:1px solid var(--line)}
.sec-split .sec{border-top:0}
@media (min-width:860px){.sec-split{grid-template-columns:minmax(0,1fr) minmax(260px,340px)}.sec-split .pic{margin-top:34px;max-width:none}}
.card-head{display:flex;align-items:center;gap:20px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}
.card-head div{font-size:1.05rem;line-height:1.4}
.avatar{width:96px;height:96px;flex:none;border-radius:50%;overflow:hidden;background:var(--paper)}
.avatar img{height:100%;object-fit:cover;object-position:50% 30%;transform:scale(1.3);transform-origin:50% 32%}

/* Uusi kirjaintyyli: leveä, tanakka versaali */
h1{font-weight:800;font-stretch:125%;font-size:clamp(1.9rem,5.2vw,3.4rem);line-height:1.08;letter-spacing:.01em;margin-bottom:.5em}
nav a{font-weight:700;font-stretch:118%;font-size:.8rem;letter-spacing:.1em}
.label{color:var(--rust)}
.art h2{font-family:var(--display)}
.svc h2,.sec h2,.art h2{font-weight:700;font-stretch:118%;font-size:1.05rem;letter-spacing:.07em;line-height:1.35;color:var(--ink)}
.home-head h2{font-weight:800;font-stretch:125%;font-size:clamp(1.3rem,2.6vw,1.7rem);letter-spacing:.04em}
.svc-list .n{font-weight:700;font-stretch:118%;font-size:1.02rem;letter-spacing:.06em;color:var(--ink)}
.svc-list a{transition:background .15s}
.svc-list a:hover{background:var(--surface);box-shadow:-14px 0 0 var(--surface),14px 0 0 var(--surface)}
.svc-list a:hover .n{color:var(--rust)}
.calc h3,.contact-grid h2{font-weight:800;font-stretch:120%;font-size:1.15rem;letter-spacing:.05em;color:var(--ink)}
.tl .org{font-weight:700;font-stretch:118%;font-size:1.02rem;letter-spacing:.05em}
.card .name,.person strong{font-weight:800;font-stretch:118%;font-size:1.05rem;letter-spacing:.05em}
.btn{font-family:var(--display);font-weight:700;font-stretch:118%;font-size:.8rem;letter-spacing:.09em;text-transform:uppercase;border-radius:2px;padding:13px 20px}
.index a,.calc,.card,.art,.cta,.pic,.result{border-radius:2px}
.index a{border-radius:2px}

/* Nauhamotiivi: kultainen kulma kuten logossa */
.card{position:relative;isolation:isolate}
.card::after{content:"";position:absolute;right:-5px;top:-5px;width:22px;height:22px;background:var(--gold);z-index:-1}
.cta{position:relative;isolation:isolate;background:var(--panel);color:var(--panel-ink)}
.cta::before{content:"";position:absolute;left:-6px;bottom:-6px;width:26px;height:26px;background:var(--gold);z-index:-1}
.cta::after{content:"";position:absolute;right:-6px;top:-6px;width:26px;height:26px;background:var(--gold);z-index:-1}
.cta h2{font-weight:800;font-stretch:120%;font-size:1.15rem;letter-spacing:.06em;color:var(--panel-ink)}
.cta p{color:var(--panel-muted)}
.cta .btn{background:var(--gold);border-color:var(--gold);color:#1b1c1d}
.cta .btn.alt{background:transparent;border-color:var(--panel-ink);color:var(--panel-ink)}
.svc{scroll-margin-top:110px}
@media (max-width:640px){
  .site-head{position:static}
  .svc{scroll-margin-top:16px}
}

/* Yhtenäinen tyylisuunta: kaikki teksti Archivo-perheellä */
body{font-size:1rem;font-stretch:100%}
.lead{font-weight:500;font-stretch:104%;font-size:clamp(1.08rem,2vw,1.3rem);line-height:1.55}
.quote p,.sec .quote p{font-size:clamp(1rem,1.7vw,1.1rem);line-height:1.7}
.quote cite{font-stretch:112%;font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem}
.label{font-stretch:114%;font-weight:700;letter-spacing:.16em}
.index a{font-stretch:112%;font-weight:600;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:7px 13px}
.card dd{font-size:1.05rem}
.tl .yrs{font-stretch:112%;font-weight:600}
.svc-list .d,.fact p,.cta p{font-size:.95rem}
.metric-name{font-stretch:112%}
.field-head label{font-stretch:108%}
.banner{border-bottom:4px solid var(--gold)}

/* Sanapilvi kirjaintyylillä */
.words{
  --u:1;
  --unit:clamp(8px,1.5vw,15px);
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:calc(var(--unit)*.6) calc(var(--unit)*1.5);
  padding-block:clamp(22px,4vw,40px);
  margin:0 0 clamp(24px,4vw,40px);
  border-block:1px solid var(--line);
  text-transform:uppercase;
  line-height:1;
}
.w{font-family:var(--display);font-size:calc(var(--unit)*var(--u));font-weight:var(--wt);font-stretch:var(--s);letter-spacing:.015em;white-space:nowrap}
.w.v{writing-mode:vertical-rl;transform:rotate(180deg)}
.t-ink{color:var(--ink)}
.t-muted{color:var(--muted)}
.t-rust{color:var(--rust)}
.t-gold{color:var(--gold)}

/* Kuvien yhtenäinen käsittely: värillinen pohja ja nauhakulmat */
.pic{position:relative;isolation:isolate}
.pic.tint-gold{background:#eee1b6}
.pic.tint-rust{background:#efd3c9}
.pic.tint-grey{background:#e2e0dc}
.pic::before{content:"";position:absolute;left:-6px;bottom:-6px;width:22px;height:22px;background:var(--rust);z-index:-1}
.pic::after{content:"";position:absolute;right:-6px;top:-6px;width:22px;height:22px;background:var(--gold);z-index:-1}
.avatar::before,.avatar::after{display:none}

/* ===== ROHKEA VÄRIMAAILMA ===== */
main{padding:0}
.site-head{background:var(--bg);border-bottom:4px solid var(--c-gold);-webkit-backdrop-filter:none;backdrop-filter:none}
.brand{background:var(--c-rust);color:#fff}
nav a{color:var(--ink)}
nav a:hover{border-bottom-color:var(--line)}
nav a[aria-current="page"]{border-bottom-color:var(--c-rust)}
:focus-visible{outline-color:var(--c-rust)}
.b-paper :focus-visible,.band:not([class*="b-"]) :focus-visible{outline-color:var(--c-rust)}

.band{position:relative;padding-block:clamp(44px,7vw,92px);background:var(--bg);color:var(--ink)}
.in{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding-inline:var(--gutter)}

.b-rust{--bg:var(--c-rust);--ink:#fff;--muted:rgba(255,255,255,.9);--line:rgba(255,255,255,.45);--rust:#ffe08a;--head:#fff;--surface:rgba(255,255,255,.16);--soft:rgba(255,255,255,.16);--btn-bg:var(--c-gold);--btn-ink:#15262b}
.b-petrol{--bg:var(--c-petrol);--ink:#fff;--muted:rgba(255,255,255,.9);--line:rgba(255,255,255,.35);--rust:#ffe08a;--head:#d5f1f6;--surface:rgba(255,255,255,.14);--soft:rgba(255,255,255,.14);--btn-bg:var(--c-gold);--btn-ink:#15262b}
.b-mist{--bg:var(--mist)}
.b-gold{--bg:var(--c-gold);--ink:#15262b;--muted:#4a4320;--line:rgba(21,38,43,.35);--rust:#15262b;--head:#15262b;--surface:rgba(255,255,255,.5);--soft:rgba(255,255,255,.5);--btn-bg:#15262b;--btn-ink:#fbfaf6}
.b-sky{--bg:var(--c-sky);--ink:#0d3038;--muted:#1c4b55;--line:rgba(13,48,56,.35);--rust:#0d3038;--head:#0d3038;--surface:rgba(255,255,255,.55);--soft:rgba(255,255,255,.55);--btn-bg:#0d3038;--btn-ink:#fff}
.b-rust :focus-visible,.b-petrol :focus-visible{outline-color:var(--c-gold)}
.b-gold :focus-visible,.b-sky :focus-visible{outline-color:#14181a}
.band a:not(.btn){color:var(--rust)}
.b-gold a:not(.btn),.b-sky a:not(.btn){text-decoration-thickness:2px}


.pic.tint-white{background:#fbfaf6}
/* TM-tunnus logossa: kapiteelien yläreunaan tasattu, kuten logotiedostoissa */
.tm{font-size:var(--tm);line-height:0;vertical-align:calc((var(--fs) - var(--tm))*.686);letter-spacing:.04em;margin-left:-.05em}
/* Etusivun kuvan päivitetty logo */
.banner{position:relative;overflow:hidden}
.logo-xl{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  font-family:var(--display);font-weight:800;font-stretch:125%;
  --fs:clamp(1.5rem,5.2vw,4.9rem);--tm:max(calc(var(--fs)*.24),9px);
  font-size:var(--fs);letter-spacing:.09em;line-height:1;text-transform:uppercase;
  color:#fff;background:var(--c-rust);
  padding:.46em .68em .38em .66em;
  border-radius:.3em .07em .3em .07em;
  isolation:isolate;white-space:nowrap;
  box-shadow:0 .25em .9em rgba(20,24,26,.18);
}
.logo-xl::before{content:"";position:absolute;left:-.22em;bottom:-.2em;width:.62em;height:.62em;background:var(--c-gold);z-index:-1;border-radius:0 0 0 .12em}
.logo-xl::after{content:"";position:absolute;right:-.18em;top:-.16em;width:.55em;height:.55em;background:var(--c-gold);z-index:-1;border-radius:0 .1em 0 0}

/* Hero: iso väripinta, vino alareuna */
.hero{--pad:clamp(48px,8vw,110px);padding-block:var(--pad) calc(var(--pad) + var(--cut));z-index:2;overflow:hidden;clip-path:polygon(0 0,100% 0,100% calc(100% - var(--cut)),0 100%)}
.hero::before{content:"";position:absolute;top:-10%;bottom:-10%;right:-4%;width:20%;background:rgba(255,255,255,.16);transform:skew(-14deg)}
.hero::after{content:"";position:absolute;top:-10%;bottom:-10%;right:calc(-4% + 20% + 1.5%);width:2%;background:var(--c-gold);opacity:.95;transform:skew(-14deg)}
@media (max-width:859px){.hero::after{display:none}.hero::before{width:16%}}
.b-gold.hero::before,.b-sky.hero::before{background:rgba(255,255,255,.35)}
.b-gold.hero::after,.b-sky.hero::after{background:var(--c-rust)}
.hero + .band{z-index:1;margin-top:calc(var(--cut)*-1);padding-top:calc(var(--cut) + clamp(44px,7vw,92px))}
.hero h1{font-size:clamp(1.5rem,5.4vw,4rem);line-height:1;font-weight:900;font-stretch:120%;letter-spacing:0;margin:0 0 .4em;text-transform:uppercase;overflow-wrap:break-word;color:var(--ink)}
.hero .lead{max-width:56ch;color:var(--ink);margin-bottom:1.6rem}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:32px 56px;align-items:end}
@media (min-width:860px){.hero-grid{grid-template-columns:minmax(0,1fr) minmax(220px,320px)}}
.hero-grid .pic{max-width:320px;margin:0}
.hero p{max-width:60ch}

.cut-top{z-index:2;margin-top:calc(var(--cut)*-1);padding-top:calc(var(--cut) + clamp(36px,5vw,64px));clip-path:polygon(0 var(--cut),100% 0,100% 100%,0 100%)}
.hero + .band.cut-top{margin-top:calc(var(--cut)*-1)}

.big{font-family:var(--display);font-weight:900;font-stretch:120%;font-size:clamp(1.5rem,4.4vw,3.2rem);line-height:1.06;letter-spacing:.005em;text-transform:uppercase;margin:0 0 .55em;max-width:20ch;text-wrap:balance;color:var(--ink)}
.big.m{font-size:clamp(1.25rem,3.3vw,2.3rem);max-width:none}
.band .quote p{color:var(--ink)}

/* Väripaneelit */
.tiles{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
@media (min-width:860px){.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}}
.tile{display:flex;flex-direction:column;justify-content:space-between;gap:28px;min-height:200px;padding:clamp(22px,3vw,32px);clip-path:polygon(0 0,calc(100% - 34px) 0,100% 34px,100% 100%,0 100%)}
.tile.petrol{background:var(--c-petrol);color:#fff}
.tile.gold{background:var(--c-gold);color:#14181a}
.tile.rust{background:var(--c-rust);color:#fff}
.tile .label{color:inherit;opacity:.9}
.tile p{margin:0;font-weight:700;font-stretch:112%;font-size:clamp(1.05rem,1.8vw,1.25rem);line-height:1.35;max-width:none}

/* Palvelulista tummalla pohjalla */
.home-head h2{color:var(--ink)}
.home-head h2{font-size:clamp(1.8rem,5vw,3.4rem);font-weight:900;font-stretch:125%;line-height:1}
.home-head a{color:var(--rust)}
.svc-list a:hover{background:var(--c-rust);box-shadow:-14px 0 0 var(--c-rust),14px 0 0 var(--c-rust)}
.svc-list a:hover .n,.svc-list a:hover .d{color:#fff}
.svc-list .n{font-size:1.08rem;font-weight:800}
.svc-list .n::after{color:var(--rust)}

/* Sanapilvi tummalla */
.words{border-block:0;padding-block:0;margin:0}
.t-ink{color:var(--ink)}
.t-muted{color:var(--muted)}
.t-rust{color:var(--rust)}
.t-gold{color:var(--gold-t)}
.t-sky{color:var(--sky-t)}

/* Palvelurivit */
.svc h2{color:var(--head)}
.svc{border-top-width:2px}
.index a{background:transparent;border:2px solid var(--line);color:var(--ink)}
.index a:hover{background:var(--c-rust);border-color:var(--c-rust);color:#fff}

@media (min-width:860px){.split.wide-pic{grid-template-columns:minmax(0,1fr) minmax(280px,420px)}.split.wide-pic .pic{max-width:none;margin-top:8px}}

/* Kutsu toimintaan */
.cta-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 40px}
.cta-in h2{font-size:clamp(2rem,6.4vw,4.4rem);font-weight:900;font-stretch:125%;line-height:1;text-transform:uppercase;margin:0 0 .25em;color:var(--ink)}
.cta-in p{margin:0;font-weight:600;font-stretch:108%;font-size:1.05rem}
.btn.alt{border-color:var(--ink);color:var(--ink);background:transparent}
.cta-band .btn{padding:15px 24px}

/* Reviisori-sivu */
.about-top{margin-block:0}
.b-gold .person,.person.big-person{border-top:0;margin:0;padding:0}
.person.big-person strong{font-size:clamp(1.6rem,4vw,2.6rem);font-weight:900;font-stretch:125%;line-height:1.05;margin-bottom:10px}
.person.big-person{font-size:1.1rem;font-weight:500}
.person.big-person a{color:var(--ink)}

/* Yhteystiedot */
.contact-card{max-width:720px}

.card::after{background:var(--c-gold)}

.pic::before{background:var(--c-rust)}
.pic::after{background:var(--c-gold)}




/* Yhteydenottopalkki: väripinta, vinot raidat ja valkoinen yhteystietokortti */
.cta-band{padding-block:clamp(48px,7vw,88px);overflow:hidden}
.cta-band::before{content:"";position:absolute;top:-10%;bottom:-10%;right:-4%;width:20%;background:rgba(255,255,255,.16);transform:skew(-14deg)}
.cta-band::after{content:"";position:absolute;top:-10%;bottom:-10%;right:calc(-4% + 20% + 1.5%);width:2%;background:var(--c-gold);opacity:.95;transform:skew(-14deg)}
.b-gold.cta-band::before,.b-sky.cta-band::before{background:rgba(255,255,255,.35)}
.b-gold.cta-band::after{background:var(--c-rust)}
@media (max-width:859px){.cta-band::after{display:none}.cta-band::before{width:16%}}
.cta-in{display:grid;grid-template-columns:minmax(0,1fr);gap:28px 48px;align-items:center}
@media (min-width:860px){.cta-in{grid-template-columns:minmax(0,1fr) minmax(300px,400px)}}
.cta-in h2{margin:0}
.cta-card{--ink:#15262b;--muted:#4f6267;--rust:#c2431f;--line:#d5e1df;--btn-bg:var(--c-rust);--btn-ink:#fff;position:relative;isolation:isolate;background:#fff;color:var(--ink);padding:clamp(20px,3vw,30px);border-radius:2px}
.cta-card::after{content:"";position:absolute;right:-6px;top:-6px;width:24px;height:24px;background:var(--c-gold);z-index:-1}
.b-gold .cta-card::after{background:var(--c-rust)}
.cta-who{display:flex;align-items:center;gap:18px;padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line);font-size:1rem;line-height:1.4}
.cta-who .name{font-family:var(--display);font-weight:800;font-stretch:118%;font-size:1.05rem;letter-spacing:.05em;text-transform:uppercase}
.cta-card .avatar{width:88px;height:88px}
.cta-card .avatar img{transform:none;object-position:50% 50%}
.cta-card .btns{flex-direction:column;gap:10px}
.cta-card .btn{text-align:center}
.cta-card .btn.alt{border-color:var(--ink);color:var(--ink)}


/* Pitkät sanat eivät ylitä laatikoita kapeilla näytöillä */
.tile p{font-size:clamp(.92rem,4vw,1.25rem);overflow-wrap:anywhere}
.svc-list .n,.svc h2,.sec h2,.art h2,.tl .org,.cta-in h2,.big{overflow-wrap:anywhere}
.lead,p{overflow-wrap:break-word}
@media (max-width:640px){.words{--unit:clamp(8.5px,2.7vw,11px)}}
@media (prefers-reduced-motion:no-preference){
  .index a,.btn,nav a{transition:border-color .15s,color .15s,filter .15s}
}
/* Alatunniste: vaalea väripinta, vino yläreuna ja kultaiset aksentit kuten muualla sivustolla */
.site-foot{--f-ink:#15262b;--f-acc:#b83f1d;position:relative;z-index:2;margin-top:calc(var(--cut)*-.6);padding-block:calc(var(--cut)*.6 + clamp(32px,5vw,52px)) clamp(28px,4vw,40px);background:#d3eaee;color:var(--f-ink);font-family:var(--sans);clip-path:polygon(0 calc(var(--cut)*.6),100% 0,100% 100%,0 100%);overflow:hidden}
.site-foot::before{content:"";position:absolute;top:-10%;bottom:-10%;right:-4%;width:16%;background:rgba(255,255,255,.5);transform:skew(-14deg)}
.site-foot::after{content:"";position:absolute;top:-10%;bottom:-10%;right:calc(-4% + 16% + 1.2%);width:1.6%;background:var(--c-gold);transform:skew(-14deg)}
.site-foot .wrap{position:relative;z-index:1;display:grid;grid-template-columns:auto auto auto;justify-content:space-between;gap:24px clamp(24px,4vw,56px);align-items:start}
.site-foot .f-name{margin:0;font-family:var(--display);font-weight:800;font-stretch:122%;font-size:clamp(.85rem,3.9vw,1.3rem);line-height:1.12;letter-spacing:.05em;text-transform:uppercase;color:var(--f-ink);padding-left:16px;border-left:6px solid var(--c-gold)}
.site-foot .f-name span{display:block;color:var(--f-acc)}
.site-foot dl{margin:0}
.site-foot dt{font-family:var(--sans);font-size:.72rem;font-weight:700;font-stretch:114%;letter-spacing:.16em;text-transform:uppercase;color:var(--f-acc)}
.site-foot dd{margin:4px 0 0;font-family:var(--display);font-weight:700;font-stretch:112%;font-size:clamp(1rem,1.9vw,1.2rem);letter-spacing:.03em;color:var(--f-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.site-foot a{color:var(--f-ink);text-decoration:none;border-bottom:2px solid var(--c-gold);padding-bottom:1px;transition:color .15s,border-color .15s}
.site-foot a:hover{color:var(--f-acc);border-color:var(--f-acc)}
.site-foot a:focus-visible{outline:3px solid var(--c-rust);outline-offset:4px}
@media (max-width:820px){.site-foot .wrap{grid-template-columns:minmax(0,auto) minmax(0,auto);justify-content:start}.site-foot .f-name{grid-column:1/-1}}
@media (max-width:520px){.site-foot .wrap{grid-template-columns:minmax(0,1fr)}.site-foot::before{width:10%}.site-foot::after{display:none}}

/* Uudet kuvitukset: leveämpi kuvasarake herossa */
@media (min-width:860px){.hero-grid.wide-pic{grid-template-columns:minmax(0,1fr) minmax(300px,440px)}.hero-grid.wide-pic .pic{max-width:none;margin:0}}
@media (min-width:860px){
  .hero-grid.h-top{align-items:start}
  .hero-grid.h-top h1{grid-column:1/-1;margin-bottom:.2em}
}
.b-rust .pic::before{background:var(--c-petrol)}
.b-petrol .pic::after{background:var(--c-gold)}

/* Ohita valikko -linkki näppäimistökäyttäjille */
.skip{position:absolute;left:12px;top:-60px;z-index:100;background:var(--c-ink);color:#fff;padding:10px 16px;font-family:var(--display);font-weight:700;font-size:.85rem;text-decoration:none;border-radius:2px}
.skip:focus{top:12px}
