/* Vahvuusmatka: presentation and accessibility improvements. */
:root { --muted:#4e625b; --focus-ring:#004b5a; }
html { scroll-padding-top:8rem; }
body { overflow-wrap:break-word; }
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
 outline:3px solid #004b5a !important; outline-offset:4px !important;
 box-shadow:0 0 0 4px #fff !important;
}
.vm-skip-link { position:fixed;top:1rem;left:1rem;z-index:1000;padding:1rem 1.5rem;background:#fff;color:#122d35;font-weight:700;transform:translateY(-200%); }
.vm-skip-link:focus { transform:translateY(0); }
#paasisalto:focus { outline:none; }
.site-header { background:#f5f1e8;box-shadow:none; }
.nav-links a { display:inline-flex;align-items:center;min-height:44px; }
.nav-links a:hover { text-decoration:underline;text-underline-offset:5px; }
.vm-hero { width:100%;max-width:100%;margin-inline:0;min-height: min(46rem,90svh);padding-bottom:6.5rem; }
.vm-hero::before { animation:vm-landscape 20s ease-in-out infinite alternate;animation-play-state:paused;transform-origin:70% 50%; }
.vm-hero[data-motion="playing"]::before { animation-play-state:running; }
@keyframes vm-landscape { from {transform:scale(1.02) translateX(.4%)} to {transform:scale(1.14) translateX(-1.4%)} }
.vm-walker-track { position:absolute;inset:0;z-index:1;pointer-events:none;animation:vm-walk-path 14s ease-in-out infinite alternate;animation-play-state:paused; }
.vm-hero[data-motion="playing"] .vm-walker-track { animation-play-state:running; }
.vm-walker { position:absolute;right:15%;bottom:7%;width:clamp(3rem,5vw,5.5rem);height:auto;filter:drop-shadow(0 .3rem .35rem rgba(18,45,53,.28));animation:vm-walk-step .72s ease-in-out infinite alternate;animation-play-state:paused; }
.vm-hero[data-motion="playing"] .vm-walker { animation-play-state:running; }
@keyframes vm-walk-path { from {transform:translate(0,0) scale(1)} to {transform:translate(3.5%,-30%) scale(.68)} }
@keyframes vm-walk-step { from {translate:0 0;rotate:-.8deg} to {translate:0 -.18rem;rotate:.8deg} }
.vm-hero::after { background:linear-gradient(90deg,rgba(18,45,53,.98) 0%,rgba(18,45,53,.94) 42%,rgba(18,45,53,.78) 65%,rgba(18,45,53,.10) 100%); }
.vm-hero .hero-content { max-width:42rem; }
.vm-hero h1 { color:#f5f1e8;font-size:clamp(2.4rem,4.6vw,3.8rem);line-height:1.08;text-wrap:balance; }
.vm-hero .hero-lead { color:#f5f1e8;font-size:clamp(1.05rem,1.5vw,1.22rem);max-width:35rem;line-height:1.7; }
.vm-hero .hero-microcopy { color:#f5f1e8; }
.vm-hero .hero-emphasis,.vm-hero .section-kicker { color:#a8dfc6; }
.vm-hero .button-primary { color:#122d35;min-height:48px; }
.vm-motion-toggle { position:absolute;bottom:1.5rem;right:max(1.25rem,calc((100% - 1120px)/2));z-index:2;display:inline-flex;align-items:center;gap:.7rem;min-height:44px;padding:.65rem 1rem;border:1px solid #a8dfc6;border-radius:999px;background:#122d35;color:#f5f1e8;font:600 .875rem/1.4 Manrope,system-ui,sans-serif;cursor:pointer; }
.vm-motion-toggle:hover { background:#004b5a; }
.vm-motion-toggle[aria-pressed="true"] { border-style:dashed; }
.vm-motion-icon { width:1rem;text-align:center; }
.help-card { border-color:#c4d1cb; }
.help-card-link { text-decoration:underline;text-underline-offset:4px; }
a,button { touch-action:manipulation; }
@media(max-width:960px) {
 .site-header { position:relative;flex-wrap:wrap; }
 .nav-links { width:100%;flex-wrap:wrap;white-space:normal;gap:.35rem 1rem; }
 .vm-hero { min-height:0;grid-template-columns:1fr;padding:3.5rem 1.25rem 6rem; }
 .vm-hero .hero-content { max-width:40rem; }
 .vm-hero::after { background:linear-gradient(90deg,rgba(18,45,53,.96),rgba(18,45,53,.88) 65%,rgba(18,45,53,.76)); }
 .vm-hero .hero-visual-space { display:none; }
 .vm-walker-track { display:none; }
 .vm-motion-toggle { right:1.25rem; }
}
@media(prefers-reduced-motion:reduce) {
 html { scroll-behavior:auto; }
 *,*::before,*::after { scroll-behavior:auto !important;transition:none !important; }
 .vm-hero::before { animation:none !important;transform:none !important; }
 .vm-walker-track,.vm-walker { animation:none !important; }
 .vm-motion-toggle { display:none; }
}
@media(forced-colors:active) {
 .vm-hero::before,.vm-hero::after { display:none; }
 .vm-hero { background:Canvas; }
 .vm-hero h1,.vm-hero p,.vm-hero .section-kicker { color:CanvasText; }
 .vm-motion-toggle { display:none; }
 :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible { outline-color:Highlight !important; }
}
