/*
Theme Name: Koivula Networks
Author: Koivula Networks
Description: Selkeä lohkoteema IT-tuelle ja sovelluskehitykselle.
Version: 0.2.0
Requires at least: 6.6
Text Domain: koivula-networks
*/

:root { --kn-ink:#173b2c; --kn-green:#246a43; --kn-mist:#edf7ef; --kn-line:#d3e4d7; --kn-cream:#ffffff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; }
a { text-underline-offset:.18em; }
a:focus-visible, button:focus-visible { outline:3px solid #c78121; outline-offset:4px; }
.kn-skip-link { position:absolute; top:-80px; left:12px; z-index:100; background:#fff; color:var(--kn-ink); padding:.75rem 1rem; }
.kn-skip-link:focus { top:12px; }
.wp-site-blocks { overflow-x:clip; }
.kn-header { border-bottom:1px solid var(--kn-line); }
.kn-header .wp-block-site-title { letter-spacing:-.045em; font-size:1.45rem; font-weight:800; color:var(--kn-green); }
.kn-header .wp-block-site-title a { text-decoration:none; }
.kn-header .wp-block-navigation { font-size:.92rem; font-weight:650; }
.kn-hero { background:var(--kn-cream); padding:clamp(3.4rem,7vw,6rem) max(1.25rem, calc((100vw - 1160px)/2)); }
.kn-kicker { text-transform:uppercase; color:var(--kn-green); font-size:.78rem; font-weight:800; letter-spacing:.16em; }
.kn-hero h1 { font-size:clamp(2.8rem,6vw,5.4rem); line-height:1.04; letter-spacing:-.065em; max-width:790px; }
.kn-lead { font-size:clamp(1.1rem,2vw,1.3rem); color:#355445; line-height:1.6; max-width:660px; }
.kn-hero .wp-block-buttons { margin-top:2rem; }
.kn-secondary a { border:1px solid var(--kn-green)!important; background:transparent!important; color:var(--kn-ink)!important; }
.kn-secondary a:hover { background:var(--kn-mist)!important; }
.kn-hero-visual { position:relative; display:grid; place-items:center; min-height:340px; isolation:isolate; }
.kn-hero-visual::before { content:""; position:absolute; z-index:-1; width:90%; aspect-ratio:1; border-radius:50%; background:var(--kn-mist); }
.kn-hero-illustration { margin:0!important; width:100%; max-width:520px; }
.kn-hero-illustration img { width:100%; height:auto; display:block; }
.kn-section { padding:clamp(4rem,7vw,7rem) 1.25rem; }
.kn-section > .wp-block-group { max-width:1160px; margin-inline:auto; }
.kn-section h2 { font-size:clamp(2rem,3.4vw,3.35rem); letter-spacing:-.045em; line-height:1.13; }
.kn-card { height:100%; padding:clamp(1.5rem,3vw,2.5rem); border:1px solid var(--kn-line); border-radius:1rem; background:white; }
.kn-card h3 { font-size:1.55rem; letter-spacing:-.03em; }
.kn-card p { color:#3d5949; line-height:1.65; }
.kn-card .kn-card-index { color:var(--kn-green); font-weight:800; font-size:.8rem; letter-spacing:.12em; }
.kn-tint { background:var(--kn-mist); }
.kn-values { background:var(--kn-mist); }
.kn-values .wp-block-columns { align-items:center; }
.kn-values .kn-value-note { border-left:4px solid var(--kn-green); padding-left:1.5rem; font-size:1.15rem; }
.kn-process { border-top:1px solid #c9d9d3; padding-top:1.1rem; }
.kn-process strong { color:var(--kn-green); }
.kn-contact { background:var(--kn-ink); color:#fff; }
.kn-contact .kn-kicker { color:#a3dbc5; }
.kn-contact p { color:#d1e1dc; }
.kn-contact .wp-block-button__link { background:white!important; color:var(--kn-ink)!important; }
.kn-footer { border-top:1px solid var(--kn-line); padding:2rem 1.25rem; }
.kn-footer p { font-size:.9rem; color:#4a6252; }
.kn-page { padding:4rem 1.25rem 6rem; }
.kn-page h1 { letter-spacing:-.05em; }
@media (max-width:781px) {
  .kn-hero .wp-block-columns, .kn-section .wp-block-columns { gap:1.25rem; }
  .kn-hero { padding-block:4.5rem; }
  .kn-hero-visual { min-height:240px; max-width:500px; margin-inline:auto; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
