.elementor-kit-8{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-8 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* GeoAgri - prototyypin tyylit siirrettyna WordPressiin.
   1) Prototyypin perusresetti rajattuna HTML-widgetin sisaan
   2) Prototyypin luokkasaannot sellaisenaan
   3) GeoAgri-teeman muuttujat
   4) Elementor-sovitin */

.elementor-widget-html *,.geo *,.elementor-widget-html *::before,.geo *::before,.elementor-widget-html *::after,.geo *::after{box-sizing: border-box; margin: 0; padding: 0}
.elementor-widget-html,.geo{font-family: var(--fontti-leipa); font-size: 15.5px; font-weight: 400; line-height: 1.72; color: var(--vari-leipa); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale}
.elementor-widget-html img,.geo img,.elementor-widget-html svg,.geo svg,.elementor-widget-html video,.geo video{max-width: 100%; height: auto; display: block}
.elementor-widget-html a,.geo a{color: inherit; text-decoration: none; transition: color var(--siirtyma-nopea), border-color var(--siirtyma-nopea)}
.elementor-widget-html ul,.geo ul,.elementor-widget-html ol,.geo ol{list-style: none}
.elementor-widget-html button,.geo button{font: inherit; cursor: pointer}
.elementor-widget-html h1,.geo h1,.elementor-widget-html h2,.geo h2,.elementor-widget-html h3,.geo h3,.elementor-widget-html h4,.geo h4{font-family: var(--fontti-otsikko); font-weight: var(--otsikko-paino); line-height: var(--otsikko-korkeus); letter-spacing: var(--otsikko-valistys); text-transform: var(--otsikko-tyyli); color: var(--vari-otsikko)}
.elementor-widget-html h1,.geo h1{font-size: clamp(30px, 3.9vw, 54px)}
.elementor-widget-html h2,.geo h2{font-size: clamp(28px, 3.3vw, 46px)}
.elementor-widget-html h3,.geo h3{font-size: clamp(19px, 2vw, 26px)}
.elementor-widget-html h4,.geo h4{font-size: 17px}
.elementor-widget-html p,.geo p{margin-bottom: 1.1rem}
.elementor-widget-html p:last-child,.geo p:last-child{margin-bottom: 0}
.elementor-widget-html strong,.geo strong{font-weight: 600; color: var(--vari-leipa-vahva)}
.elementor-widget-html p,.geo p,.elementor-widget-html a,.geo a,.elementor-widget-html span,.geo span,.elementor-widget-html strong,.geo strong,.elementor-widget-html li,.geo li,.elementor-widget-html label,.geo label,.elementor-widget-html input,.geo input,.elementor-widget-html textarea,.geo textarea,.elementor-widget-html dt,.geo dt,.elementor-widget-html dd,.geo dd,.elementor-widget-html h1,.geo h1,.elementor-widget-html h2,.geo h2,.elementor-widget-html h3,.geo h3,.elementor-widget-html h4,.geo h4{overflow-wrap: break-word}
.elementor-widget-html,.geo{font-size: 17px; line-height: 1.7}
.elementor-widget-html h2,.geo h2{font-size: clamp(32px, 3.7vw, 52px)}
.elementor-widget-html h3,.geo h3{font-size: clamp(20px, 2.1vw, 27px)}

:root{--aksentti: #ffcc33; --aksentti-kirkas: #ffd75c; --aksentti-tumma: #e0ac10; --aksentti-teksti: #141619; --aksentti-himmea: rgba(255, 204, 51, 0.16); --aksentti-hohde: rgba(255, 204, 51, 0.30); --pohja: #080d16; --pohja-2: #141619; --pohja-3: #0f1114; --pinta: #17191d; --pinta-korkea: #1c1f24; --vari-otsikko: #ffffff; --vari-kuvalla: #ffffff; --vari-kuvalla-2: rgba(255, 255, 255, 0.85); --vari-kuvalla-3: rgba(255, 255, 255, 0.70); --vari-leipa: #a9aeb6; --vari-leipa-vahva: #d4d8de; --vari-himmea: #7c828b; --reuna: rgba(255, 255, 255, 0.09); --reuna-vahva: rgba(255, 255, 255, 0.22); --virhe: #ff8080; --virhe-tausta: rgba(255, 128, 128, 0.12); --onnistui: #6ee7a8; --fontti-otsikko: 'Oswald', 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif; --fontti-leipa: 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; --otsikko-tyyli: uppercase; --otsikko-paino: 700; --otsikko-valistys: 0.004em; --otsikko-korkeus: 1.12; --kortti-tausta: var(--pinta); --kortti-reuna: var(--reuna); --kortti-varjo: var(--varjo-kortti); --kortti-pyoristys: var(--pyoristys-l); --varjo-kortti: none; --varjo-nosto: none; --varjo-valikko: -10px 0 30px rgba(0, 0, 0, 0.35); --pehmennys: cubic-bezier(0.16, 1, 0.3, 1); --siirtyma: 0.25s cubic-bezier(0.16, 1, 0.3, 1); --siirtyma-nopea: 0.18s ease; --pyoristys-s: 4px; --pyoristys-m: 8px; --pyoristys-l: 14px; --pilleri: 9999px; --mitta-teksti: 680px; --mitta-lohko: 880px; --leveys: 1440px; --reunus: 4%; --reunus-mobiili: 6%; --header-korkeus: 92px; --hero-peite: 8, 13, 22; --hero-haivytys: var(--pohja-2); --header-tausta: rgba(8, 13, 22, 0.72); --header-tausta-kiinni: var(--pohja); --peite-tausta: rgba(5, 8, 13, 0.75); --hero-kuva: url('images/hero.jpg')}
.korostus, .heading-accent{color: var(--aksentti)}
.ohita-linkki{position: absolute; left: -9999px; top: 0; z-index: 999; background-color: var(--aksentti); color: var(--aksentti-teksti); padding: 12px 22px; font-weight: 700; border-radius: 0 0 var(--pyoristys-m) var(--pyoristys-m)}
.ohita-linkki:focus{left: 20px; top: 10px}
.kontti{width: 100%; max-width: var(--leveys); margin-left: auto; margin-right: auto; padding-left: var(--reunus); padding-right: var(--reunus)}
.tekstilohko{max-width: var(--mitta-lohko)}
.tekstilohko p{max-width: var(--mitta-teksti)}
.osio{padding: 110px 0 120px; position: relative; z-index: 5}
.osio-pohja{background-color: var(--pohja)}
.osio-vuoro{background-color: var(--pohja-2); border-top: 1px solid var(--reuna)}
.osio-otsikko{max-width: var(--mitta-lohko); margin-bottom: 68px}
.osio-otsikko-jaettu{display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: end; max-width: 100%; margin-bottom: 68px}
.osio-otsikko-jaettu .osio-johdanto{margin-top: 0; max-width: 100%}
.osio-otsikko-keskella{max-width: 820px; margin: 0 auto 68px; text-align: center}
.osio-johdanto{font-size: 15.5px; line-height: 1.85; color: var(--vari-leipa); margin-top: 24px; max-width: var(--mitta-teksti)}
.osio-otsikko-keskella .osio-johdanto{margin-left: auto; margin-right: auto}
.kicker{display: inline-flex; align-items: center; gap: 14px; font-family: var(--fontti-leipa); font-size: 13px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--aksentti); margin-bottom: 22px}
.kicker::before{content: ''; display: block; width: 34px; height: 2px; background-color: var(--aksentti); flex: none}
.parivaljakko{display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 100px; align-items: center}
.murupolku{display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: var(--vari-himmea); margin-bottom: 20px}
.murupolku a:hover{color: var(--aksentti)}
.murupolku span[aria-current]{color: var(--vari-leipa-vahva)}
.ilmesty{opacity: 0; transform: translateY(30px); transition: opacity 0.8s var(--pehmennys), transform 0.8s var(--pehmennys)}
.ilmesty.esiin{opacity: 1; transform: translateY(0)}
.btn{display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-family: var(--fontti-leipa); font-size: 16.5px; font-weight: 700; line-height: 1.3; padding: 17px 40px; border: 1.5px solid transparent; border-radius: var(--pilleri); text-align: center; cursor: pointer; transition: all var(--siirtyma)}
.btn:active{transform: scale(0.985)}
.btn svg{width: 18px; height: 18px; transition: transform var(--siirtyma-nopea)}
.btn:hover svg{transform: translateX(4px)}
.btn-aksentti{background-color: var(--aksentti); color: var(--aksentti-teksti); border-color: var(--aksentti)}
.btn-aksentti:hover{background-color: var(--aksentti-kirkas); border-color: var(--aksentti-kirkas); transform: translateY(-2px)}
.btn-reuna{background-color: rgba(255, 255, 255, 0.06); color: var(--vari-kuvalla); border-color: rgba(255, 255, 255, 0.55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px)}
.btn-reuna:hover{background-color: rgba(255, 255, 255, 0.16); border-color: var(--vari-kuvalla); transform: translateY(-2px)}
.btn-tumma{background-color: var(--pohja-2); color: var(--vari-otsikko); border-color: var(--pohja-2)}
.btn-tumma:hover{background-color: var(--pohja); border-color: var(--pohja); transform: translateY(-2px)}
.btn-levea{width: 100%}
.nuolilinkki{display: inline-flex; align-items: center; gap: 10px; font-size: 15px; font-weight: 600; color: var(--aksentti)}
.nuolilinkki::after{content: '2192'; transition: transform var(--siirtyma-nopea)}
.nuolilinkki:hover::after{transform: translateX(5px)}
.header{width: 100%; padding: 30px var(--reunus) 14px; position: relative; z-index: 60}
.header-kiinnitetty{position: sticky; top: 0; padding-top: 18px; padding-bottom: 18px; background-color: var(--header-tausta); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid transparent; transition: padding var(--siirtyma-nopea), background-color var(--siirtyma-nopea), border-color var(--siirtyma-nopea)}
.header-kiinnitetty.vieritetty{padding-top: 10px; padding-bottom: 10px; background-color: var(--header-tausta-kiinni); border-bottom-color: var(--reuna)}
.logo{display: flex; align-items: center; gap: 12px; color: var(--vari-kuvalla); transition: opacity var(--siirtyma-nopea)}
.logo:hover{opacity: 0.9}
.navi-linkki{font-size: 15.5px; font-weight: 600; color: var(--vari-kuvalla); padding: 6px 0; border-bottom: 2px solid transparent}
.navi-linkki:hover, .navi-linkki.aktiivinen{border-bottom-color: var(--aksentti)}
.header-btn{font-size: 16px; padding: 12px 30px}
.valikko-btn{display: none; flex-direction: column; align-items: center; justify-content: center; gap: 5px; background: transparent; border: none; color: var(--vari-kuvalla); padding: 2px 4px; transition: opacity var(--siirtyma-nopea)}
.valikko-btn:hover{opacity: 0.8}
.palkit{display: flex; flex-direction: column; gap: 4px; width: 24px}
.palkki{width: 100%; height: 2.5px; background-color: var(--vari-kuvalla); border-radius: 2px}
.valikko-btn .teksti{font-size: 13.5px; font-weight: 600; line-height: 1}
.hero-kaare .murupolku, .alasivu-hero .murupolku{color: var(--vari-kuvalla-3)}
.hero-kaare .murupolku a, .alasivu-hero .murupolku a{color: var(--vari-kuvalla-2)}
.hero-kaare .murupolku span[aria-current], .alasivu-hero .murupolku span[aria-current]{color: var(--vari-kuvalla)}
.header-kiinnitetty .logo, .header-kiinnitetty .logo-nimi-paa, .header-kiinnitetty .navi-linkki, .header-kiinnitetty .header-puhelin, .header-kiinnitetty .header-puhelin strong, .header-kiinnitetty .valikko-btn{color: var(--vari-otsikko)}
.header-kiinnitetty .palkki{background-color: var(--vari-otsikko)}
@media (max-width: 980px){.header-navi, .header-puhelin{display: none}
.valikko-btn{display: flex}
}
@media (max-width: 768px){.header-btn{display: none}
}
.hero-sisalto{width: 100%; max-width: var(--leveys); margin: 0 auto}
.hero-teksti{max-width: 900px}
.hero-otsikko{font-size: clamp(30px, 3.9vw, 54px); line-height: 1.1; color: var(--vari-kuvalla); margin-bottom: 24px}
.hero-kuvaus{font-size: clamp(16.5px, 1.22vw, 19.5px); line-height: 1.68; color: rgba(255, 255, 255, 0.9); max-width: var(--mitta-teksti); margin-bottom: 38px}
.hero-napit{display: flex; align-items: center; gap: 20px; flex-wrap: wrap}
.alasivu-hero{min-height: 56vh; display: flex; flex-direction: column; position: relative; background-image: linear-gradient(to right, rgba(var(--hero-peite), 0.92) 0%, rgba(var(--hero-peite), 0.70) 55%, rgba(var(--hero-peite), 0.90) 100%), var(--hero-kuva); background-size: cover; background-position: center center}
.alasivu-hero::after{content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 220px; background: linear-gradient(to bottom, rgba(var(--hero-peite), 0) 0%, rgba(var(--hero-peite), 0.5) 45%, rgba(var(--hero-peite), 0.88) 78%, var(--hero-haivytys) 100%); pointer-events: none; z-index: 1}
.alasivu-hero-runko{flex: 1; display: flex; align-items: center; padding: 60px var(--reunus) 96px; position: relative; z-index: 5}
.alasivu-hero-sisalto{width: 100%; max-width: var(--leveys); margin: 0 auto}
.sivu-otsikko{font-size: clamp(30px, 3.8vw, 52px); line-height: 1.1; color: var(--vari-kuvalla); max-width: 900px; margin-bottom: 22px}
.sivu-johdanto{font-size: clamp(15.5px, 1.15vw, 17.5px); line-height: 1.75; color: rgba(255, 255, 255, 0.88); max-width: 680px}
@supports (min-height: 100svh){.hero-kaare{min-height: 100svh}
}
.palvelu-kortti{display: flex; flex-direction: column; align-items: flex-start}
.palvelu-kuvake{display: inline-flex; color: var(--aksentti); margin-bottom: 20px}
.palvelu-kuvake svg{width: 29px; height: 29px}
.palvelu-otsikko{font-family: var(--fontti-otsikko); font-size: clamp(21px, 2vw, 30px); font-weight: 600; line-height: 1.16; text-transform: var(--otsikko-tyyli); color: var(--vari-otsikko); margin-bottom: 16px}
.palvelu-teksti{font-size: 15px; line-height: 1.8; color: var(--vari-leipa); margin-bottom: 26px}
.kuvakortit{display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px}
.kuvakortti{display: flex; flex-direction: column; background-color: var(--kortti-tausta); border: 1px solid var(--kortti-reuna); border-radius: var(--kortti-pyoristys); box-shadow: var(--kortti-varjo); overflow: hidden; transition: transform var(--siirtyma), border-color var(--siirtyma), box-shadow var(--siirtyma)}
.kuvakortti:hover{transform: translateY(-4px); border-color: var(--aksentti)}
.kuvakortti-kuva{position: relative; aspect-ratio: 4 / 3; overflow: hidden; background-color: var(--pinta-korkea)}
.kuvakortti-kuva img{width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s var(--pehmennys)}
.kuvakortti:hover .kuvakortti-kuva img{transform: scale(1.04)}
.kuvakortti-sisalto{padding: 28px 28px 30px; display: flex; flex-direction: column; flex: 1}
.kuvakortti-sisalto h3{margin-bottom: 12px}
.kuvakortti-sisalto p{font-size: 14.5px; line-height: 1.75; color: var(--vari-leipa); margin-bottom: 20px}
.kuvakortti-sisalto .nuolilinkki{margin-top: auto}
.palvelulohkot{display: grid; gap: 30px}
.palvelulohko{background-color: var(--kortti-tausta); border: 1px solid var(--kortti-reuna); border-left: 3px solid var(--aksentti); box-shadow: var(--kortti-varjo); padding: 42px 46px}
.palvelulohko-otsikko{display: flex; align-items: center; gap: 18px; margin-bottom: 16px}
.palvelulohko-otsikko .palvelu-kuvake{margin-bottom: 0}
.palvelulohko h3{margin: 0}
.palvelulohko p{font-size: 15.5px; line-height: 1.8; color: var(--vari-leipa); max-width: 720px; margin-bottom: 26px}
.pillerilista{display: flex; flex-wrap: wrap; gap: 12px 14px}
.pillerilista li{font-size: 14.5px; font-weight: 500; color: var(--vari-leipa-vahva); background-color: var(--pohja-3); border: 1px solid var(--reuna); border-radius: var(--pilleri); padding: 9px 18px}
.esittely-visuaali{position: relative; max-width: 520px; width: 100%}
.esittely-kuva{position: relative; z-index: 1; overflow: hidden; line-height: 0; background-color: var(--pinta)}
.esittely-kuva img{width: 100%; aspect-ratio: 4 / 5; object-fit: cover}
.esittely-teksti{max-width: 700px}
.esittely-johdanto{font-size: 15.5px; line-height: 1.85; color: var(--vari-leipa); margin-bottom: 44px}
.kohtalista{list-style: none; margin: 0 0 46px; padding: 0; border-top: 1px solid var(--reuna)}
.kohtalista li{display: flex; align-items: flex-start; gap: 22px; padding: 24px 0; border-bottom: 1px solid var(--reuna)}
.kohta-otsikko{font-family: var(--fontti-otsikko); font-size: 19px; font-weight: 600; line-height: 1.3; text-transform: var(--otsikko-tyyli); color: var(--vari-otsikko); margin-bottom: 7px}
.kohta-teksti{font-size: 14.5px; line-height: 1.7; color: var(--vari-leipa)}
.kohderyhmat{display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 30px}
.kohderyhma-kortti{background-color: var(--kortti-tausta); border: 1px solid var(--kortti-reuna); border-top: 3px solid var(--aksentti); box-shadow: var(--kortti-varjo); padding: 38px 40px}
.kohderyhma-kortti h3{margin-bottom: 14px}
.kohderyhma-kortti p{font-size: 15px; line-height: 1.8; color: var(--vari-leipa)}
.vaiheet{list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; margin: 0; padding: 0}
.vaihe{border-top: 2px solid var(--reuna-vahva); padding-top: 24px}
.vaihe-numero.kicker{display: inline-flex; font-family: var(--fontti-leipa); font-size: 12px}
.vaihe-numero{display: block; font-family: var(--fontti-otsikko); font-size: 34px; font-weight: 700; line-height: 1; color: var(--aksentti); margin-bottom: 16px}
.vaihe h3{font-size: 19px; margin-bottom: 12px}
.vaihe p{font-size: 14.5px; line-height: 1.75; color: var(--vari-leipa); margin: 0}
.galleria{display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px}
.ukk-lista{margin: 0; padding: 0; border-top: 1px solid var(--reuna)}
.ukk-kohta{padding: 26px 0; border-bottom: 1px solid var(--reuna)}
.ukk-kohta dt{font-family: var(--fontti-otsikko); font-size: 19px; font-weight: 600; letter-spacing: var(--otsikko-valistys); text-transform: var(--otsikko-tyyli); color: var(--vari-otsikko); margin-bottom: 10px}
.ukk-kohta dd{margin: 0; font-size: 15px; line-height: 1.8; color: var(--vari-leipa)}
.ukk-lista.haitari .ukk-kohta dt{margin-bottom: 0}
.ukk-lista.haitari dd{padding-top: 14px}
.ukk-lista.haitari dd[hidden]{display: none}
.cta-palkki{background-color: var(--aksentti); color: var(--aksentti-teksti); padding: 46px var(--reunus); position: relative; z-index: 5}
.cta-palkki-sisalto{width: 100%; max-width: var(--leveys); margin: 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap}
.cta-palkki h2{font-size: clamp(22px, 2.2vw, 32px); line-height: 1.15; color: var(--aksentti-teksti)}
.cta-palkki p{font-size: 15px; line-height: 1.6; color: var(--aksentti-teksti); opacity: 0.78; margin: 8px 0 0}
.cta-kuva{position: relative; padding: 100px var(--reunus); text-align: center; color: #ffffff; background-image: linear-gradient(rgba(var(--hero-peite), 0.78), rgba(var(--hero-peite), 0.78)), var(--hero-kuva); background-size: cover; background-position: center}
.cta-kuva-sisalto{max-width: 780px; margin: 0 auto}
.cta-kuva h2{font-size: clamp(26px, 3.2vw, 42px); color: #ffffff; margin-bottom: 16px}
.cta-kuva p{font-size: 17px; line-height: 1.7; color: rgba(255, 255, 255, 0.94); margin-bottom: 32px}
.cta-napit{display: flex; justify-content: center; gap: 18px; flex-wrap: wrap}
.lupaukset{display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; background-color: var(--pinta); border-top: 1px solid var(--reuna); border-bottom: 1px solid var(--reuna); padding: 40px var(--reunus)}
.lupaus{display: flex; align-items: center; gap: 16px; justify-content: center}
.lupaus svg{width: 26px; height: 26px; color: var(--aksentti); flex: none}
.lupaus strong{display: block; font-size: 15px; color: var(--vari-otsikko)}
.lupaus span{font-size: 13.5px; color: var(--vari-leipa)}
.yhteys-ruudukko{display: grid; grid-template-columns: 0.9fr 1.1fr; gap: 100px; align-items: start}
.yhteys-lista{list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--reuna)}
.yhteys-lista li{padding: 18px 0; border-bottom: 1px solid var(--reuna)}
.yhteys-nimio{display: block; font-size: 12px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--aksentti); margin-bottom: 6px}
.yhteys-arvo{font-size: 15.5px; color: var(--vari-otsikko)}
a.yhteys-arvo:hover{color: var(--aksentti)}
.lomake{background-color: var(--kortti-tausta); border: 1px solid var(--kortti-reuna); border-top: 3px solid var(--aksentti); box-shadow: var(--kortti-varjo); padding: 46px 46px 40px}
.lomake h3{margin-bottom: 30px}
.lomake fieldset{border: none; margin: 0 0 28px; padding: 0}
.lomake legend{font-family: var(--fontti-otsikko); font-size: 15px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--aksentti); margin-bottom: 18px; padding: 0}
.kentta-rivi{display: grid; grid-template-columns: 1fr 1fr; gap: 20px}
.kentta{margin-bottom: 22px}
.kentta label{display: block; font-size: 12px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--vari-leipa); margin-bottom: 9px}
.kentta input, .kentta textarea, .kentta select{width: 100%; background-color: var(--pohja-3); border: 1px solid var(--reuna-vahva); border-radius: var(--pyoristys-m); padding: 14px 16px; font-family: var(--fontti-leipa); font-size: 15px; color: var(--vari-otsikko); transition: border-color var(--siirtyma-nopea), box-shadow var(--siirtyma-nopea)}
.kentta input::placeholder, .kentta textarea::placeholder{color: var(--vari-himmea)}
.kentta input:focus, .kentta textarea:focus, .kentta select:focus{outline: none; border-color: var(--aksentti); box-shadow: 0 0 0 3px var(--aksentti-himmea)}
.kentta textarea{min-height: 150px; resize: vertical}
.kentta select{appearance: none; -webkit-appearance: none; cursor: pointer; padding-right: 44px; background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23a9aeb6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 14px center; background-size: 18px 18px}
.kentta select option{background-color: var(--pinta); color: var(--vari-otsikko)}
.kentta input[aria-invalid="true"], .kentta textarea[aria-invalid="true"], .kentta select[aria-invalid="true"]{border-color: var(--virhe); background-color: var(--virhe-tausta)}
.virhe{display: block; min-height: 0; font-size: 12.5px; font-weight: 500; color: var(--virhe); margin-top: 7px}
.virhe:empty{display: none}
.virhekooste{border: 1px solid var(--virhe); background-color: var(--virhe-tausta); color: var(--virhe); border-radius: var(--pyoristys-m); padding: 14px 18px; font-size: 14px; margin-bottom: 24px}
.virhekooste:empty{display: none}
.valintaruutu{display: flex; align-items: flex-start; gap: 12px; margin: 4px 0 26px; cursor: pointer}
.valintaruutu input[type="checkbox"]{appearance: none; -webkit-appearance: none; flex: 0 0 auto; width: 20px; height: 20px; margin-top: 2px; border: 1px solid var(--reuna-vahva); border-radius: var(--pyoristys-s); background-color: var(--pohja-3); cursor: pointer; transition: all var(--siirtyma-nopea)}
.valintaruutu input[type="checkbox"]:checked{background-color: var(--aksentti); border-color: var(--aksentti); background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23141619' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); background-size: 14px 14px; background-position: center; background-repeat: no-repeat}
.valintaruutu span{font-size: 13.5px; line-height: 1.6; color: var(--vari-leipa)}
.valintaruutu a{color: var(--aksentti); text-decoration: underline}
.kiitos{background-color: var(--pinta); border: 1px solid var(--aksentti); border-radius: var(--pyoristys-l); padding: 46px 40px; text-align: center}
.kiitos h3{margin-bottom: 14px}
.kiitos p{color: var(--vari-leipa)}
.lomake-huomio{font-size: 12.5px; line-height: 1.6; color: var(--vari-himmea); margin-top: 16px}
.kuvapaikka{position: relative; width: 100%; height: 100%; min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 24px; background-color: var(--pinta-korkea); border: 1px dashed var(--reuna-vahva)}
.kuvapaikka svg{width: 48px; height: 48px; color: var(--aksentti); opacity: 0.9}
.kuvapaikka strong{font-family: var(--fontti-otsikko); font-size: 15px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--vari-otsikko)}
.kuvapaikka span{font-size: 12.5px; line-height: 1.5; color: var(--vari-himmea); max-width: 260px}
.mobiili-peite{position: fixed; inset: 0; background-color: var(--peite-tausta); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); opacity: 0; visibility: hidden; transition: opacity 0.28s ease, visibility 0.28s ease; z-index: 110}
.mobiili-peite.nakyy{opacity: 1; visibility: visible}
.mobiili-valikko{position: fixed; top: 0; right: 0; bottom: 0; width: min(350px, 88vw); z-index: 120; background-color: var(--pohja-3); border-left: 1px solid var(--reuna); box-shadow: var(--varjo-valikko); padding: 22px 24px 30px; transform: translateX(100%); transition: transform 0.3s var(--pehmennys); overflow-y: auto; -webkit-overflow-scrolling: touch; display: flex; flex-direction: column}
.mobiili-valikko.nakyy{transform: translateX(0)}
.mobiili-valikko-yla{display: flex; align-items: center; justify-content: space-between; padding-bottom: 16px; border-bottom: 1px solid var(--reuna)}
.mobiili-valikko .sulje{width: 42px; height: 42px; display: flex; align-items: center; justify-content: center; background: transparent; border: 1px solid var(--reuna-vahva); border-radius: 50%; color: var(--vari-otsikko); font-size: 24px; line-height: 1}
.mobiili-navi{display: flex; flex-direction: column; margin-top: 12px}
.mobiili-navi a{display: flex; align-items: center; justify-content: space-between; font-family: var(--fontti-otsikko); font-size: 20px; font-weight: 600; letter-spacing: var(--otsikko-valistys); text-transform: var(--otsikko-tyyli); color: var(--vari-otsikko); padding: 16px 0; border-bottom: 1px solid var(--reuna)}
.mobiili-navi a .nuoli{color: var(--aksentti); font-size: 18px}
.mobiili-navi a.aktiivinen{color: var(--aksentti)}
.mobiili-yhteys{margin-top: auto; padding-top: 24px}
.mobiili-yhteys-kortti{background-color: var(--pinta); border: 1px solid var(--reuna); border-radius: var(--pyoristys-m); padding: 12px 14px}
.mobiili-yhteys-kortti + .mobiili-yhteys-kortti{margin-top: 10px}
.mobiili-yhteys-kortti .nimio{display: block; font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--aksentti); margin-bottom: 2px}
.mobiili-puhelin{font-size: 15px; font-weight: 700; color: var(--vari-otsikko)}
.mobiili-aukiolo{font-size: 12px; color: var(--vari-himmea); text-align: center; margin: 12px 0 0}
.mobiili-valikko .btn{margin-top: 16px; width: 100%}
.mobiilipalkki{display: none; position: fixed; left: 0; right: 0; bottom: 0; z-index: 90; gap: 10px; background-color: var(--header-tausta-kiinni); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-top: 1px solid var(--aksentti-hohde); padding: 10px 14px calc(10px + env(safe-area-inset-bottom))}
.mobiilipalkki .btn{flex: 1; font-size: 14px; font-weight: 600; padding: 13px 8px}
.mobiilipalkki .btn-reuna{color: var(--vari-otsikko); border-color: var(--reuna-vahva); background-color: transparent}
.mobiilipalkki .btn-aksentti{flex: 1.2}
.edistymispalkki{position: fixed; top: 0; left: 0; height: 3px; width: 100%; transform: scaleX(0); transform-origin: 0 50%; background-color: var(--aksentti); z-index: 130; pointer-events: none}
.ylos{position: fixed; right: 24px; bottom: 24px; z-index: 80; width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; border-radius: 50%; background-color: var(--aksentti); color: var(--aksentti-teksti); border: none; opacity: 0; visibility: hidden; transform: translateY(10px); transition: opacity var(--siirtyma), visibility var(--siirtyma), transform var(--siirtyma)}
.ylos.nakyy{opacity: 1; visibility: visible; transform: translateY(0)}
.ylos svg{width: 20px; height: 20px}
@media (max-width: 1024px){.portfolio{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 768px){.huomiopalkki{padding: 28px var(--reunus)}
.ylos{bottom: 86px; right: 16px}
}
.napit-pyoristetty{--pilleri: 8px}
.kortit-reunallinen{--kortti-tausta: var(--pinta); --kortti-reuna: var(--reuna); --kortti-varjo: none; --kortti-pyoristys: var(--pyoristys-l)}
.hero-jaettu .hero-teksti{max-width: 620px}
@media (max-width: 768px){.hero-jaettu .hero-kaare{min-height: 72vh}
}
@media (max-width: 1200px){.palvelut-ruudukko{column-gap: 60px}
}
@media (max-width: 1024px){.osio{padding: 84px 0 90px}
.parivaljakko, .parivaljakko-tasa, .yhteys-ruudukko{grid-template-columns: 1fr; gap: 56px}
.esittely-visuaali, .esittely-teksti{max-width: 100%}
.kuvakortit, .referenssit, .galleria, .hintakortit{grid-template-columns: repeat(2, minmax(0, 1fr))}
.vaiheet{grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px}
.lupaukset{grid-template-columns: 1fr; gap: 20px}
.lupaus{justify-content: flex-start}
}
@media (max-width: 768px){:root{--reunus: var(--reunus-mobiili)}
.osio{padding: 64px 0 70px}
.osio-otsikko, .osio-otsikko-keskella{margin-bottom: 44px}
.header{padding: 20px var(--reunus) 10px}
.hero-napit{flex-direction: column; align-items: stretch; width: 100%}
.hero-napit .btn{width: 100%}
.alasivu-hero{min-height: 46vh}
.alasivu-hero-runko{padding: 40px var(--reunus) 70px}
.kuvakortit, .referenssit, .galleria, .hintakortit, .kohderyhmat, .vaiheet, .vaiheet-kolme{grid-template-columns: 1fr; gap: 26px}
.palvelulohko{padding: 30px 24px}
.palvelulohko-otsikko{align-items: flex-start; gap: 14px}
.esittely-kuva img{aspect-ratio: 4 / 3}
.cta-palkki{padding: 40px var(--reunus)}
.cta-palkki .btn{width: 100%}
.cta-kuva{padding: 70px var(--reunus)}
.cta-napit .btn{width: 100%}
.lomake{padding: 28px 22px}
.kentta-rivi, .kentta-rivi-kolme{grid-template-columns: 1fr; gap: 0}
.lomake .btn{width: 100%}
.kentta input, .kentta textarea, .kentta select{font-size: 16px}
.valintaruutu{gap: 14px}
.valintaruutu input[type="checkbox"]{width: 24px; height: 24px}
.alatunniste-sposti, .alatunniste-puhelin, a.yhteys-arvo, .nuolilinkki{display: inline-flex; align-items: center; padding: 11px 0}
.valikko-btn{min-width: 46px; min-height: 46px; justify-content: center}
.mobiilipalkki{display: flex}
}
@media (max-width: 480px){.mobiili-navi a{font-size: 19px; padding: 15px 0}
.pillerilista li{font-size: 13.5px; padding: 8px 14px}
.lomake h3{font-size: 22px}
}
@media print{.header, .mobiili-valikko, .mobiili-peite, .mobiilipalkki, .cta-palkki, .cta-kuva, .alatunniste-wordmark, .ohita-linkki{display: none !important}
.osio{padding: 20px 0}
}
.btn-vaalea{background-color: var(--vari-kuvalla); color: var(--pohja); border-color: var(--vari-kuvalla)}
.btn-vaalea:hover{background-color: rgba(255, 255, 255, 0.86); transform: translateY(-2px)}
.btn[disabled], .btn.poistettu{opacity: 0.45; pointer-events: none}
@keyframes pyori{to{transform: rotate(360deg)}
}
.palstat{column-count: 2; column-gap: 56px; max-width: 900px}
.palstat p{margin-bottom: 1.1rem; break-inside: avoid}
.neliosa{display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 34px}
@media (max-width: 1024px){.otsikko-jaettu, .osio-otsikko-jaettu{grid-template-columns: 1fr; gap: 24px}
.neliosa{grid-template-columns: repeat(2, minmax(0, 1fr))}
.palstat{column-count: 1}
}
@media (max-width: 768px){.kolmiosa, .neliosa{grid-template-columns: 1fr; gap: 26px}
}
@media (max-width: 768px){.vaakakortti{grid-template-columns: 1fr}
}
@media (max-width: 1024px){.numeroruudukko{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 768px){.numeroruudukko, .kaksipalstainen-lista{grid-template-columns: 1fr}
}
@keyframes nauha{from{transform: translateX(0)}
to{transform: translateX(-50%)}
}
@media (prefers-reduced-motion: reduce){.kuvanauha-raita{animation: none}
}
@media (max-width: 1024px){.kuvateksti{grid-template-columns: 1fr; gap: 34px}
}
@media (max-width: 768px){.kollaasi{grid-template-columns: 1fr; grid-template-rows: none; aspect-ratio: auto}
}
@media (max-width: 768px){.pikalomake .btn{width: 100%}
}
@media (max-width: 1024px){.hintakortit-nelja{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 768px){.hintakortit-nelja{grid-template-columns: 1fr}
}
@media (max-width: 768px){.iso-palaute{grid-template-columns: 1fr; gap: 26px; text-align: left}
}
.sanamerkki{display: inline-flex; align-items: baseline; font-family: var(--fontti-otsikko); font-size: 24px; font-weight: 800; letter-spacing: -0.02em; line-height: 1; color: var(--vari-otsikko)}
.logo-kuva{display: block; width: auto; height: 34px}
.alatunniste-simppeli .logo-kuva{height: 32px}
.mobiili-valikko-yla .logo-kuva{height: 28px}
@media (max-width: 768px){.logo-kuva{height: 28px}
}
.header-rivi{display: flex; align-items: center; justify-content: space-between; gap: 40px; width: 100%; max-width: var(--leveys); margin: 0 auto}
.header-oikea{display: flex; align-items: center; gap: 30px}
.header-navi-2{display: flex; align-items: center; gap: 28px}
.header-navi-2 a{font-size: 14.5px; font-weight: 500; color: var(--vari-otsikko); padding: 4px 0; border-bottom: 1px solid transparent}
.header-navi-2 a:hover, .header-navi-2 a.aktiivinen{border-bottom-color: var(--aksentti)}
.header-puh{font-size: 15px; font-weight: 500; color: var(--vari-otsikko); white-space: nowrap}
.header-puh:hover{color: var(--aksentti)}
.hero-wrapper{display: flex; flex-direction: column; position: relative; background: var(--pohja)}
.hero-body{width: 100%; min-height: 76vh; display: flex; align-items: center; padding: 92px 0 104px; position: relative; background-image: linear-gradient(to right, rgba(var(--hero-peite), 0.94) 0%, rgba(var(--hero-peite), 0.86) 46%, rgba(var(--hero-peite), 0.55) 78%, rgba(var(--hero-peite), 0.42) 100%), var(--hero-kuva); background-size: cover; background-position: center; background-repeat: no-repeat}
.hero-teksti{max-width: 840px; display: flex; flex-direction: column; align-items: flex-start}
.hero-otsikko{font-family: var(--fontti-otsikko); font-size: clamp(36px, 4.8vw, 62px); font-weight: 800; line-height: 1.08; letter-spacing: -0.03em; color: var(--vari-kuvalla); margin-bottom: 22px}
.hero-korostus{color: var(--aksentti)}
.hero-kuvaus{font-size: 18px; line-height: 1.7; color: var(--vari-kuvalla-2); max-width: 58ch; margin-bottom: 34px}
.alatunniste-simppeli{background: var(--pohja); color: var(--vari-leipa); border-top: 2px solid var(--vari-otsikko); padding: 56px 0 34px}
.simppeli-footer-sisalto{display: flex; align-items: center; justify-content: space-between; gap: 40px; flex-wrap: wrap; padding-bottom: 44px}
.simppeli-brand{display: flex; flex-direction: column; gap: 12px}
.alatunniste-simppeli .sanamerkki{color: var(--vari-otsikko)}
.simppeli-osoite{font-size: 14.5px; line-height: 1.7; color: var(--vari-leipa); margin: 0}
.simppeli-puh{color: var(--vari-otsikko); font-weight: 600}
.simppeli-puh:hover{color: var(--aksentti)}
.simppeli-sposti{color: var(--vari-leipa)}
.simppeli-sposti:hover{color: var(--aksentti)}
.simppeli-linkit{display: flex; align-items: center; gap: 24px; flex-wrap: wrap}
.simppeli-linkit a:not(.btn){font-size: 15px; font-weight: 500; color: var(--vari-otsikko)}
.simppeli-linkit a:not(.btn):hover{color: var(--aksentti)}
.simppeli-ala{display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; font-size: 13.5px; color: var(--vari-himmea)}
.simppeli-ala a{color: var(--vari-himmea)}
.simppeli-ala a:hover{color: var(--aksentti)}
@media (max-width: 980px){.header-navi-2, .header-puh{display: none}
}
@media (max-width: 768px){.hero-body{min-height: 64vh; padding: 64px 0 72px}
.hero-kuvaus{font-size: 16.5px}
.hero-napit{flex-direction: column; align-items: stretch; width: 100%}
.hero-napit .btn{width: 100%}
.simppeli-footer-sisalto{flex-direction: column; align-items: flex-start; gap: 28px}
.simppeli-linkit{gap: 16px 20px; width: 100%}
.simppeli-linkit .btn{flex-basis: 100%; text-align: center}
.simppeli-ala{flex-direction: column; align-items: flex-start; gap: 8px}
}
.header, .cta-palkki, .cta-kuva, .huomiopalkki{padding-left: 0; padding-right: 0}
.header-rivi, .cta-palkki-sisalto, .huomiopalkki-sisalto, .lupaukset{max-width: var(--leveys); margin-left: auto; margin-right: auto; padding-left: var(--reunus); padding-right: var(--reunus)}
.cta-kuva{padding-top: 100px; padding-bottom: 100px}
.cta-kuva-sisalto{max-width: var(--leveys); margin-left: auto; margin-right: auto; padding-left: var(--reunus); padding-right: var(--reunus)}
.cta-kuva-sisalto h2, .cta-kuva-sisalto p{max-width: 780px; margin-left: auto; margin-right: auto}
@media (max-width: 768px){.cta-kuva{padding-top: 70px; padding-bottom: 70px}
}
.osio-johdanto{font-size: 17.5px; line-height: 1.78}
.header-navi-2 a{font-size: 15.5px}
.header-puh{font-size: 16px; font-weight: 600}
.kicker{font-size: 12.5px}
.palvelu-teksti, .kuvakortti-sisalto p, .miksi-kohta p, .vaihe p, .kohta-teksti{font-size: 16px; line-height: 1.72}
.vaihe h3{font-size: 21px}
.osio-pohja{background-color: var(--pohja); border-top: 1px solid var(--reuna)}
.hero-kuvalla .hero-body{min-height: 76vh; padding: 96px 0 100px; background-image: linear-gradient(to bottom, rgba(var(--hero-peite), 0.30) 0%, rgba(var(--hero-peite), 0.52) 46%, rgba(var(--hero-peite), 0.93) 100%), linear-gradient(100deg, rgba(var(--hero-peite), 0.93) 0%, rgba(var(--hero-peite), 0.78) 44%, rgba(var(--hero-peite), 0.30) 82%, rgba(var(--hero-peite), 0.18) 100%), var(--hero-kuva)}
.hero-label{display: inline-flex; align-items: center; gap: 14px; font-size: 12.5px; font-weight: 600; letter-spacing: 0.16em; text-transform: uppercase; color: var(--vari-kuvalla-2); margin-bottom: 26px}
.hero-label::before{content: ''; width: 34px; height: 2px; background-color: var(--aksentti-kirkas)}
.hero-kuvalla .hero-otsikko{font-size: clamp(38px, 5.2vw, 68px)}
.hero-kuvalla .hero-kuvaus{font-size: 19px; max-width: 52ch}
.aluekortit{display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px}
.aluekortti{position: relative; display: block; overflow: hidden; isolation: isolate; border-radius: var(--kortti-pyoristys); background-color: var(--tumma-2); transition: transform var(--siirtyma)}
.aluekortti:hover{transform: translateY(-4px)}
.aluekortti-kuva{position: absolute; inset: 0; display: block; overflow: hidden}
.aluekortti-kuva img{width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s var(--pehmennys)}
.aluekortti:hover .aluekortti-kuva img{transform: scale(1.06)}
.aluekortti-kuva::after{content: ''; position: absolute; inset: 0; background: linear-gradient(to top, rgba(8, 14, 20, 0.97) 0%, rgba(8, 14, 20, 0.93) 40%, rgba(8, 14, 20, 0.66) 62%, rgba(8, 14, 20, 0.24) 84%, rgba(8, 14, 20, 0.10) 100%)}
.aluekortti-teksti{position: relative; z-index: 1; display: flex; flex-direction: column; height: 100%; justify-content: flex-end; padding: 32px 30px 30px}
.aluekortti-yla{font-size: 12.5px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--aksentti-kirkas); margin-bottom: 12px}
.aluekortti-otsikko{font-family: var(--fontti-otsikko); font-size: 26px; font-weight: 700; line-height: 1.16; letter-spacing: -0.02em; color: #ffffff; margin-bottom: 10px}
.aluekortti-kuvaus{font-size: 15.5px; line-height: 1.62; color: rgba(255, 255, 255, 0.76)}
.aluekortti .nuolilinkki{margin-top: 18px; color: #ffffff}
.aluekortti:hover .nuolilinkki{color: var(--aksentti-kirkas)}
.aluekortti-paikalla{aspect-ratio: auto; display: flex; flex-direction: column; background-color: var(--pinta); border: 1px solid var(--kortti-reuna)}
.aluekortti-paikalla:hover{transform: none}
.aluekortti-paikalla .aluekortti-kuva{position: static; aspect-ratio: 4 / 3}
.aluekortti-paikalla .aluekortti-kuva::after{display: none}
.aluekortti-paikalla .aluekortti-teksti{height: auto; padding: 26px 26px 28px}
.aluekortti-paikalla .aluekortti-yla{color: var(--aksentti)}
.aluekortti-paikalla .aluekortti-otsikko{font-size: 22px; color: var(--vari-otsikko)}
.aluekortti-paikalla .aluekortti-kuvaus{color: var(--vari-leipa)}
.aluekortti-paikalla .nuolilinkki{color: var(--aksentti)}
.aluevideo{margin-top: 24px; aspect-ratio: 21 / 7; border-radius: var(--kortti-pyoristys); overflow: hidden}
.aluevideo iframe{width: 100%; height: 100%; border: 0}
.aluevideo-paikka{display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; padding: 32px; background-color: var(--pinta); border: 1px dashed var(--reuna-vahva)}
.aluevideo-paikka svg{color: var(--aksentti-kirkas)}
.aluevideo-paikka strong{font-family: var(--fontti-otsikko); font-size: 16px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--vari-otsikko)}
.aluevideo-paikka span{font-size: 14px; line-height: 1.6; color: var(--vari-himmea); max-width: 46ch}
.vahvuudet-kaksi{display: grid; grid-template-columns: 0.95fr 1fr; gap: 60px; align-items: start}
.vahvuus-blokki{background-color: var(--aksentti); padding: 54px 48px 50px; border-radius: var(--kortti-pyoristys)}
.vahvuus-blokki h2{font-size: clamp(30px, 3.2vw, 42px); line-height: 1.14; color: #ffffff; margin-bottom: 22px}
.vahvuus-otsikko-2{display: block; color: rgba(255, 255, 255, 0.76)}
.vahvuus-blokki p{font-size: 17px; line-height: 1.72; color: rgba(255, 255, 255, 0.88); margin-bottom: 32px}
.btn-vaalea{background-color: #ffffff; border: 1px solid #ffffff; color: var(--aksentti-tumma)}
.btn-vaalea:hover{background-color: rgba(255, 255, 255, 0.9); border-color: rgba(255, 255, 255, 0.9); color: var(--aksentti-tumma)}
.vahvuuslista{list-style: none; margin: 0; padding: 0}
.vahvuuslista li{display: flex; gap: 22px; padding: 26px 0; border-bottom: 1px solid var(--reuna)}
.vahvuuslista li:first-child{padding-top: 4px}
.vahvuuslista li:last-child{border-bottom: 0; padding-bottom: 0}
.vahvuus-merkki{flex: none; display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; background-color: var(--aksentti); color: var(--aksentti-teksti)}
.vahvuuslista h3{font-size: 19.5px; margin-bottom: 8px}
.vahvuuslista p{font-size: 16px; line-height: 1.7; color: var(--vari-leipa); margin: 0}
.kuvakortit-nelja{grid-template-columns: repeat(4, minmax(0, 1fr))}
.kuvakortti-kuva{aspect-ratio: 4 / 3}
.kuvakortti-sisalto{padding: 28px 26px 30px}
.kuvakortti-sisalto h3{font-size: 21px; margin-bottom: 12px}
.kuvakortti-sisalto .nuolilinkki{padding-top: 20px}
.kuvakortti-kuva .kuvapaikka{min-height: 0}
.vaihe{border-top-width: 3px; padding-top: 26px}
.vaihe-numero{font-size: 46px; letter-spacing: -0.03em; margin-bottom: 18px}
@media (max-width: 1080px){.aluekortit{grid-template-columns: repeat(2, minmax(0, 1fr))}
.aluekortit > *:last-child:nth-child(odd){grid-column: 1 / -1; aspect-ratio: 16 / 9}
}
@media (max-width: 768px){.hero-kuvalla .hero-body{min-height: 0; padding: 72px 0 84px}
.hero-kuvalla .hero-kuvaus{font-size: 17.5px}
.aluekortit{grid-template-columns: 1fr}
}
.cta-kuva{background-color: var(--tumma); background-image: linear-gradient(to bottom, rgba(var(--hero-peite), 0.86) 0%, rgba(var(--hero-peite), 0.78) 50%, rgba(var(--hero-peite), 0.90) 100%), var(--hero-kuva); background-size: cover; background-position: center; padding: 108px 0 112px}
.cta-kuva h2{font-size: clamp(32px, 4vw, 50px); color: var(--vari-kuvalla); margin-bottom: 18px}
.cta-kuva p{font-size: 18.5px; line-height: 1.7; color: var(--vari-kuvalla-2); max-width: 60ch; margin: 0 auto 34px}
@media (max-width: 768px){.kuvakortit-nelja, .kuvakortit-kaksi{grid-template-columns: 1fr}
.aluevideo{aspect-ratio: 16 / 10}
.cta-kuva{padding: 72px 0 76px}
}
@media (min-width: 769px) and (max-width: 1100px){.kuvakortit-nelja{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
.ukk-kohta dt{font-size: 17.5px}
.ukk-kohta dd{font-size: 16px; line-height: 1.75}
@media (max-width: 980px){.vahvuudet-kaksi{grid-template-columns: 1fr; gap: 40px}
.vahvuus-blokki{padding: 40px 32px 38px}
}
.osio{padding: 96px 0 104px}
.aluekortti{aspect-ratio: 4 / 5}
.aluekortti-paikalla{aspect-ratio: auto}
.aluekortti-paikalla .aluekortti-kuva{aspect-ratio: 3 / 2}
.aluevideo{max-width: 680px; margin-left: auto; margin-right: auto; margin-top: 34px; aspect-ratio: 16 / 9}
.kuvakortti-kuva{max-height: 300px}
.kuvakortti-kuva .kuvapaikka svg{width: 38px; height: 38px}
.kuvakortti-kuva .kuvapaikka strong{font-size: 14px}
@media (max-width: 768px){.aluevideo{max-width: 100%; margin-top: 24px}
}
.kortti-tiedot{list-style: none; margin: 0 0 22px; padding: 16px 0 0; border-top: 1px solid var(--reuna); display: grid; gap: 7px}
.kortti-tiedot li{display: flex; gap: 10px; font-size: 14.5px; line-height: 1.5; color: var(--vari-leipa)}
.kortti-tiedot li::before{content: ''; flex: none; width: 6px; height: 6px; margin-top: 8px; background-color: var(--aksentti)}
.palvelulohkot{grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px}
.palvelulohko{border-left: 1px solid var(--kortti-reuna); border-top: 3px solid var(--aksentti); padding: 32px 30px 34px}
.palvelulohko{display: flex; flex-direction: column}
.palvelulohko p{font-size: 16px; max-width: 100%; margin-bottom: 22px}
.palvelulohko .pillerilista{margin-bottom: 22px}
.palvelulohko .nuolilinkki{margin-top: auto}
@media (max-width: 1024px){.palvelulohkot{grid-template-columns: repeat(2, minmax(0, 1fr))}
}
@media (max-width: 768px){.palvelulohkot{grid-template-columns: 1fr}
}
.alasivu-hero-runko{padding-left: 0; padding-right: 0}
.alasivu-hero-sisalto{padding-left: var(--reunus); padding-right: var(--reunus)}
.palvelulohko-otsikko{align-items: flex-start; gap: 14px; margin-bottom: 14px}
.palvelulohko-otsikko .palvelu-kuvake{margin-top: 3px}
.palvelulohko-otsikko .palvelu-kuvake svg{width: 24px; height: 24px}
.palvelulohko .palvelu-otsikko{font-size: 21px; line-height: 1.2; letter-spacing: -0.01em}
.palvelulohko p{line-height: 1.7}
.lupaus{justify-content: flex-start}
@media (max-width: 768px){.lupaus{justify-content: flex-start}
}
.alasivu-hero{min-height: 64vh}
.alasivu-hero::after{display: none}
.alasivu-hero-runko{padding-top: 84px; padding-bottom: 118px}
@media (max-width: 768px){.alasivu-hero{min-height: 0}
.alasivu-hero-runko{padding-top: 56px; padding-bottom: 72px}
}

/* --- GeoAgri-teeman muuttujat (prototyypin sivukohtainen style-lohko) --- */
:root{--hero-peite:10, 16, 24;--aksentti:#c0430f;--aksentti-kirkas:#d75a23;--aksentti-tumma:#96330b;--aksentti-teksti:#ffffff;--aksentti-himmea:color-mix(in srgb, #c0430f 10%, transparent);--aksentti-hohde:color-mix(in srgb, #c0430f 26%, transparent);--pohja:#ffffff;--pohja-2:#eff3f6;--pohja-3:#e5ebf0;--pinta:#ffffff;--pinta-korkea:#eff3f6;--vari-otsikko:#101a24;--vari-leipa:#54626f;--vari-leipa-vahva:#1d2a36;--vari-himmea:#7d8b99;--reuna:rgba(16, 26, 36, 0.10);--reuna-vahva:rgba(16, 26, 36, 0.22);--varjo-kortti:none;--varjo-nosto:0 18px 44px rgba(16, 26, 36, 0.10);--varjo-valikko:-10px 0 30px rgba(0, 0, 0, 0.15);--header-tausta:#ffffff;--header-tausta-kiinni:#ffffff;--peite-tausta:rgba(10, 16, 24, 0.55);--tumma:#0a1119;--tumma-2:#101c28;--tumma-reuna:rgba(255, 255, 255, 0.10);--tumma-leipa:rgba(255, 255, 255, 0.72);--fontti-otsikko:'Archivo', -apple-system, sans-serif;--fontti-leipa:'IBM Plex Sans', -apple-system, sans-serif;--otsikko-tyyli:none;--pilleri:8px}

/* --- Elementor-sovitin --- */
/* Prototyypin .kontti hoitaa leveydet: Elementorin kontti ei saa rajata mitaan */
.e-con.geo-osio,.e-con.geo-osio > .e-con-inner{max-width:100% !important;width:100% !important;padding:0 !important;margin:0 !important;--gap:0px;gap:0;--padding-top:0;--padding-bottom:0;--padding-left:0;--padding-right:0}
.e-con.geo-osio > .elementor-widget,.e-con.geo-osio > .e-con-inner > .elementor-widget{width:100%;max-width:100%}
.elementor-widget-html > .elementor-widget-container{width:100%}
.elementor-widget-html .kontti{box-sizing:border-box}
/* Napin teksti ei saa katketa kahdelle riville */
.elementor-widget-html .btn,.geo .btn{white-space:nowrap}
/* Ilmestymisanimaatio nakyviin kunnes JS ottaa sen haltuun */
.elementor-widget-html .ilmesty,.geo .ilmesty{opacity:1;transform:none}
.geo-anim .ilmesty{opacity:0;transform:translateY(30px)}
.geo-anim .ilmesty.esiin{opacity:1;transform:translateY(0)}

/* --- Teeman reset.css:n hover-varit pois (pinkki #CC3366 ja sininen #333366).
   :where() pitaa tarkkuuden samana kuin teeman saannolla, joten prototyypin
   omat hoverit (.btn-aksentti:hover ym.) voittavat edelleen. --- */
:where(.elementor-widget-html,.geo) a:hover,:where(.elementor-widget-html,.geo) a:active{color:inherit}
:where(.elementor-widget-html,.geo) button:hover,:where(.elementor-widget-html,.geo) button:focus{background-color:transparent;color:inherit}
:where(.elementor-widget-html,.geo) [type="button"]:hover,:where(.elementor-widget-html,.geo) [type="submit"]:hover{background-color:transparent;color:inherit}
.elementor-widget-html .btn-aksentti:hover{background-color:var(--aksentti-kirkas);color:var(--aksentti-teksti)}
.elementor-widget-html .btn-vaalea:hover{color:var(--aksentti-tumma)}
.elementor-widget-html .ukk-nappi:hover{color:var(--aksentti)}
.elementor-widget-html .navi-linkki:hover,.elementor-widget-html .header-puh:hover,
.elementor-widget-html .simppeli-puh:hover,.elementor-widget-html .simppeli-sposti:hover,
.elementor-widget-html .simppeli-linkit a:not(.btn):hover,.elementor-widget-html .simppeli-ala a:hover{color:var(--aksentti)}
.elementor-widget-html .aluekortti:hover .nuolilinkki{color:var(--aksentti-kirkas)}

/* Elementorin oma header/footer-kaari ei saa rajata prototyypin leveytta */
.elementor-location-header .e-con,.elementor-location-header .e-con > .e-con-inner,
.elementor-location-footer .e-con,.elementor-location-footer .e-con > .e-con-inner{max-width:100% !important;width:100% !important;padding:0 !important;margin:0 !important;--gap:0px;gap:0}
.elementor-location-header .elementor-widget,.elementor-location-footer .elementor-widget{width:100%}
/* Sticky header tarvitsee leikkaamattoman ketjun */
.elementor-location-header,.elementor-location-header > .e-con,.elementor-location-header .elementor-widget-html,
.elementor-location-header .elementor-widget-html > .elementor-widget-container{overflow:visible}

/* ==========================================================================
   NATIIVISOVITIN - prototyypin luokat Elementorin widget-kaareisiin.
   Elementor kaaria sisallon: .elementor-element > .elementor-widget-container
   > varsinainen elementti. Luokka menee uloimpaan, joten sisin pitaa asettaa
   perimaan tyypografia ja laatikkotyylit.
   ========================================================================== */
.geo .elementor-widget-container{margin:0;padding:0}

/* Otsikkowidgetit */
.geo .kicker .elementor-heading-title,
.geo .aluekortti-yla .elementor-heading-title,
.geo .aluekortti-otsikko .elementor-heading-title,
.geo .vahvuus-otsikko .elementor-heading-title,
.geo .vaihe-numero .elementor-heading-title,
.geo .kuvakortti-otsikko .elementor-heading-title,
.geo .osio-otsikko-teksti .elementor-heading-title{font:inherit;color:inherit;letter-spacing:inherit;line-height:inherit;text-transform:inherit;margin:0}
.geo .elementor-widget-heading .elementor-heading-title{margin:0}

/* Tekstieditorit: prototyypissa nama ovat itse <p>, Elementorissa <div><p> */
.geo .osio-johdanto p,.geo .aluekortti-kuvaus p,.geo .vahvuus-teksti p,
.geo .vaihe-teksti p,.geo .kuvakortti-teksti p,.geo .cta-teksti p{font:inherit;color:inherit;line-height:inherit;margin:0}
.geo .elementor-widget-text-editor p:last-child{margin-bottom:0}

/* Napit */
.geo .btn .elementor-button-wrapper{display:flex}
.geo .btn .elementor-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--fontti-leipa);font-size:16.5px;font-weight:700;line-height:1.3;padding:17px 40px;border:1.5px solid transparent;border-radius:var(--pilleri);text-align:center;white-space:nowrap;transition:all var(--siirtyma);background-image:none}
.geo .btn .elementor-button-content-wrapper{gap:10px}
.geo .btn-aksentti .elementor-button{background-color:var(--aksentti);color:var(--aksentti-teksti);border-color:var(--aksentti)}
.geo .btn-aksentti .elementor-button:hover{background-color:var(--aksentti-kirkas);border-color:var(--aksentti-kirkas);color:var(--aksentti-teksti);transform:translateY(-2px)}
.geo .btn-reuna .elementor-button{background-color:rgba(255,255,255,0.06);color:var(--vari-kuvalla);border-color:rgba(255,255,255,0.55)}
.geo .btn-reuna .elementor-button:hover{background-color:rgba(255,255,255,0.16);border-color:var(--vari-kuvalla);color:var(--vari-kuvalla);transform:translateY(-2px)}
.geo .btn-vaalea .elementor-button{background-color:#fff;border-color:#fff;color:var(--aksentti-tumma)}
.geo .btn-vaalea .elementor-button:hover{background-color:rgba(255,255,255,0.9);color:var(--aksentti-tumma)}

/* Nuolilinkki napista */
.geo .nuolilinkki .elementor-button-wrapper{display:flex}
.geo .nuolilinkki .elementor-button{display:inline-flex;align-items:center;gap:10px;background:none;background-image:none;border:0;padding:0;font-family:var(--fontti-leipa);font-size:15px;font-weight:600;color:inherit;border-radius:0}
.geo .nuolilinkki .elementor-button:hover{background:none;color:inherit}
.geo .nuolilinkki .elementor-button-text::after{content:'2192';margin-left:10px;display:inline-block;transition:transform var(--siirtyma-nopea)}
.geo .nuolilinkki:hover .elementor-button-text::after{transform:translateX(5px)}

/* Kicker-palkki: luokka on kaareessa, joten ::before piirtyy sen sisaan */
.geo .kicker.elementor-widget{display:inline-flex;align-items:center;width:auto}

/* Aluekortti natiivikonttina: kuva taustana, liukuvari ::after-kerroksena */
.e-con.aluekortti{position:relative;display:flex;overflow:hidden;isolation:isolate;aspect-ratio:4/5;border-radius:var(--kortti-pyoristys);background-color:var(--tumma-2);background-size:cover;background-position:center;transition:transform var(--siirtyma)}
.e-con.aluekortti::after{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to top,rgba(8,14,20,0.97) 0%,rgba(8,14,20,0.93) 40%,rgba(8,14,20,0.66) 62%,rgba(8,14,20,0.24) 84%,rgba(8,14,20,0.10) 100%)}
.e-con.aluekortti > .elementor-element{position:relative;z-index:1}
.e-con.aluekortti:hover{transform:translateY(-4px)}
.e-con.aluekortti .aluekortti-yla{color:var(--aksentti-kirkas)}
.e-con.aluekortti .aluekortti-otsikko{color:#fff}
.e-con.aluekortti .aluekortti-kuvaus{color:rgba(255,255,255,0.76)}
.e-con.aluekortti .nuolilinkki{color:#fff}
.e-con.aluekortti:hover .nuolilinkki{color:var(--aksentti-kirkas)}

/* Ruudukot natiivikontteina */
.e-con.aluekortit,.e-con.kuvakortit,.e-con.vaiheet-kontti{display:grid}
.e-con.aluekortit{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.e-con.kuvakortit{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.e-con.vaiheet-kontti{grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}
.e-con.osio-otsikko-jaettu{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end;margin-bottom:68px}
.e-con.kontti{max-width:var(--leveys);width:100%;margin-left:auto;margin-right:auto;padding-left:var(--reunus);padding-right:var(--reunus)}
@media (max-width:1080px){.e-con.aluekortit{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1024px){.e-con.osio-otsikko-jaettu{grid-template-columns:1fr;gap:24px}.e-con.kuvakortit{grid-template-columns:repeat(2,minmax(0,1fr))}.e-con.vaiheet-kontti{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px}}
@media (max-width:768px){.e-con.aluekortit,.e-con.kuvakortit,.e-con.vaiheet-kontti{grid-template-columns:1fr;gap:26px}}

/* Aluekortin sisapehmuste tulee luokasta, koska .geo * nollaa Elementorin omat */
.e-con.aluekortti{padding:32px 30px 30px}

/* Kicker: prototyypissa inline-flex lohkon sisalla, joten kaare on lohko
   (17px/1.7 riviboksi) ja itse kicker on kaareen sisalla. */
.geo .kicker.elementor-widget{display:block;width:100%;font-size:17px;line-height:1.7;letter-spacing:normal;text-transform:none;margin:0}
.geo .kicker.elementor-widget::before{content:none}
.geo .kicker .elementor-widget-container{display:inline-flex;align-items:center;gap:14px;font-family:var(--fontti-leipa);font-size:12.5px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--aksentti);margin-bottom:22px}
.geo .kicker .elementor-widget-container::before{content:'';display:block;width:34px;height:2px;background-color:var(--aksentti);flex:none}

/* Elementor 4 ei enaa renderoi .elementor-widget-container -kaarta otsikoille,
   joten kicker rakennetaan .elementor-heading-title -elementin varaan. */
.geo .kicker .elementor-heading-title{display:inline-flex;align-items:center;gap:14px;font-family:var(--fontti-leipa);font-size:12.5px;font-weight:600;letter-spacing:0.2em;text-transform:uppercase;color:var(--aksentti);line-height:1.7;margin-bottom:22px}
.geo .kicker .elementor-heading-title::before{content:'';display:block;width:34px;height:2px;background-color:var(--aksentti);flex:none}

/* Hero natiivikonttina: kuva Elementorin taustana (muokattavissa),
   prototyypin kaksoisliukuvari ::before-kerroksena. */
.e-con.geo-hero{position:relative;width:100%;min-height:76vh;display:flex;align-items:center;justify-content:center;padding:96px 0 100px;background-size:cover;background-position:center;background-repeat:no-repeat;overflow:hidden}
.e-con.geo-hero::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to bottom,rgba(10,16,24,0.30) 0%,rgba(10,16,24,0.52) 46%,rgba(10,16,24,0.93) 100%),linear-gradient(100deg,rgba(10,16,24,0.93) 0%,rgba(10,16,24,0.78) 44%,rgba(10,16,24,0.30) 82%,rgba(10,16,24,0.18) 100%)}
.e-con.geo-hero > *{position:relative;z-index:1;width:100%}
@media (max-width:768px){.e-con.geo-hero{min-height:0;padding:72px 0 84px}}

/* Loppukehotus natiivikonttina */
.e-con.cta-kuva{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:108px 0 112px;background-color:var(--tumma);background-size:cover;background-position:center;overflow:hidden}
.e-con.cta-kuva::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to bottom,rgba(10,16,24,0.86) 0%,rgba(10,16,24,0.78) 50%,rgba(10,16,24,0.90) 100%)}
.e-con.cta-kuva > *{position:relative;z-index:1}
@media (max-width:768px){.e-con.cta-kuva{padding:72px 0 76px}}

/* --- Kuvakortti: Elementorin kuvawidget prototyypin kuvakehyksena --- */
.e-con.kuvakortti{padding:0}
.geo .kuvakortti-kuva{position:relative;width:100%;aspect-ratio:4/3;max-height:300px;overflow:hidden;background-color:var(--pinta-korkea);line-height:0}
.geo .kuvakortti-kuva img{width:100%;height:100%;object-fit:cover;display:block;border-radius:0;transition:transform 0.6s var(--pehmennys)}
.geo .kuvakortti:hover .kuvakortti-kuva img{transform:scale(1.04)}
.geo .kuvakortti-kuva .elementor-widget-container,.geo .kuvakortti-kuva figure,.geo .kuvakortti-kuva .elementor-image{height:100%;margin:0;line-height:0}

/* --- Vaihe --- */
.e-con.vaihe{padding-top:26px;border-top:3px solid var(--reuna-vahva)}

/* --- Referenssien paikanvaraajakortit --- */
.e-con.aluekortti-paikalla{padding:0;aspect-ratio:auto;flex-direction:column;background-color:var(--pinta);border:1px solid var(--kortti-reuna);background-image:none}
.e-con.aluekortti-paikalla::after{display:none}
.e-con.aluekortti-paikalla:hover{transform:none}
.e-con.aluekortti-teksti{padding:26px 26px 28px;display:flex;flex-direction:column;height:auto;position:static}
.e-con.kuvapaikka{position:static;width:100%;aspect-ratio:3/2;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;background-color:var(--pinta-korkea);border:1px dashed var(--reuna-vahva)}
.geo .kuvapaikka .elementor-icon,.geo .kuvapaikka .elementor-widget-icon{color:var(--aksentti);font-size:38px;opacity:0.9}
.geo .kuvapaikka svg{width:38px;height:38px;fill:currentColor}
.geo .kuvapaikka .elementor-heading-title{font-family:var(--fontti-otsikko);font-size:14px;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--vari-otsikko)}
.geo .kuvapaikka p{font-size:12.5px;line-height:1.5;color:var(--vari-himmea);max-width:260px;margin:0 auto}
.e-con.aluevideo{max-width:680px;width:100%;margin:34px auto 0;aspect-ratio:16/9;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:32px;background-color:var(--pinta);border:1px dashed var(--reuna-vahva);border-radius:var(--kortti-pyoristys)}
.geo .aluevideo .elementor-icon{color:var(--aksentti-kirkas);font-size:40px}
.geo .aluevideo .elementor-heading-title{font-family:var(--fontti-otsikko);font-size:16px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;color:var(--vari-otsikko)}
.geo .aluevideo p{font-size:14px;line-height:1.6;color:var(--vari-himmea);max-width:46ch;margin:0 auto}

/* --- Loppukehotuksen sisalto --- */
.e-con.cta-kuva-sisalto{max-width:var(--leveys);width:100%;margin:0 auto;padding-left:var(--reunus);padding-right:var(--reunus);align-items:center;text-align:center}
.e-con.cta-napit{display:flex;flex-direction:row;justify-content:center;gap:14px;flex-wrap:wrap;width:auto;margin-top:0}
.geo .cta-kuva-sisalto .elementor-widget-heading,.geo .cta-kuva-sisalto .elementor-widget-text-editor{width:100%}

/* Kuvakorttien valistys on prototyypissa 32px, ei 24px */
.e-con.kuvakortit{gap:32px}
/* Loppukehotuksen napit yhdelle riville koko leveydelle */
.e-con.cta-napit{width:100%}

/* ==========================================================================
   MARGINAALIKORJAUKSET
   Elementorin .e-con .elementor-widget.elementor-widget{margin-block-end:0}
   on tarkkuudeltaan (0,3,0) ja nollaa prototyypin luokkamarginaalit, joten
   ne palautetaan samalla tarkkuudella.
   ========================================================================== */
.e-con .elementor-widget.vaihe-numero{margin-block-end:18px}
.e-con .elementor-widget.aluekortti-yla{margin-block-end:12px}
.e-con .elementor-widget.aluekortti-otsikko{margin-block-end:10px}
.e-con .elementor-widget.osio-johdanto{margin-block-end:0}

/* Otsikoiden sisamarginaalit prototyypin mukaan */
.geo .kuvakortti-sisalto h3.elementor-heading-title{margin-bottom:12px}
.geo .vaihe h3.elementor-heading-title{margin-bottom:12px}
.geo .cta-kuva-sisalto h2.elementor-heading-title{margin-bottom:18px}

/* Leipatekstien marginaalit: aiempi p:last-child -saanto oli liian laaja */
.geo .kuvakortti-sisalto .elementor-widget-text-editor p:last-child{margin-bottom:20px}
.geo .cta-kuva-sisalto p{max-width:60ch;margin:0 auto 34px}
.geo .aluekortti-teksti .elementor-widget-text-editor p:last-child{margin-bottom:0}

/* Kuvakortin nuolilinkki painuu alas kuten prototyypissa */
.e-con .elementor-widget.nuolilinkki{margin-block-end:0}
.geo .kuvakortti-sisalto .nuolilinkki{margin-top:auto;padding-top:20px}

/* Elementorin globaalit fonttimuuttujat GeoAgrin fontteihin.
   Tehdaan CSS:lla, koska kitin asetusten kirjoittaminen pyyhkii taman CSS:n. */
.elementor-kit-8{--e-global-typography-primary-font-family:"Archivo";--e-global-typography-secondary-font-family:"Archivo";--e-global-typography-text-font-family:"IBM Plex Sans";--e-global-typography-accent-font-family:"IBM Plex Sans"}
.elementor-widget-heading .elementor-heading-title{font-family:var(--fontti-otsikko)}
.geo .elementor-widget-text-editor,.geo .elementor-widget-button{font-family:var(--fontti-leipa)}

/* Nappiluokka on Elementorissa kaareessa: kaari ei saa toistaa pehmusteita */
.geo .btn.elementor-widget{padding:0;border:0;background:none;background-color:transparent;border-radius:0;display:inline-flex;width:auto;white-space:normal}
.geo .btn.elementor-widget::after,.geo .btn.elementor-widget::before{content:none}
.geo .nuolilinkki.elementor-widget{padding:0;border:0;background:none;display:inline-flex;width:auto}
.geo .nuolilinkki.elementor-widget::after{content:none}
.geo .cta-napit .elementor-widget{width:auto}
.geo .cta-kuva-sisalto .elementor-widget-text-editor{width:100%}
.geo .cta-kuva-sisalto .elementor-widget-text-editor p:last-child{margin-bottom:34px}

/* Kuvakortin nuolilinkki: pehmuste takaisin nappisovittimen jalkeen */
.geo .kuvakortti-sisalto .nuolilinkki.elementor-widget{margin-top:auto;padding-top:20px}
.geo .nuolilinkki .elementor-button{line-height:1.7}

/* ==========================================================================
   HEADER: Elementorin natiivit osat prototyypin luokilla
   ========================================================================== */
.e-con.header{position:sticky;top:0;z-index:60;width:100%;padding:18px 0;background-color:var(--header-tausta);border-bottom:1px solid transparent;transition:padding var(--siirtyma-nopea),background-color var(--siirtyma-nopea),border-color var(--siirtyma-nopea)}
.e-con.header.vieritetty{padding:10px 0;background-color:var(--header-tausta-kiinni);border-bottom-color:var(--reuna)}
.e-con.header-rivi{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:40px;width:100%;max-width:var(--leveys);margin:0 auto;padding-left:var(--reunus);padding-right:var(--reunus)}
.e-con.header-logo{width:auto;flex:none}
.e-con.header-oikea{display:flex;flex-direction:row;align-items:center;gap:30px;width:auto;flex:none}
.geo .header-oikea > .elementor-widget{width:auto;flex:none;display:flex;align-items:center}
.geo .logo-kuva img{height:34px;width:auto;max-width:none;display:block}
.geo .logo-kuva figure,.geo .logo-kuva .elementor-image{margin:0;line-height:0}

/* Paavalikko: Elementorin nav-menu prototyypin navin nakoiseksi */
.geo .header-navi-2 .elementor-nav-menu{display:flex;flex-direction:row;align-items:center;gap:28px;list-style:none;margin:0;padding:0;flex-wrap:nowrap}
.geo .header-navi-2 .elementor-nav-menu li{margin:0;padding:0}
.geo .header-navi-2 .elementor-nav-menu a.elementor-item{font-family:var(--fontti-leipa);font-size:15.5px;font-weight:500;line-height:1.7;color:var(--vari-otsikko);padding:4px 0;border-bottom:1px solid transparent;background:none;background-color:transparent}
.geo .header-navi-2 .elementor-nav-menu a.elementor-item:hover,
.geo .header-navi-2 .elementor-nav-menu a.elementor-item:focus,
.geo .header-navi-2 .elementor-nav-menu a.elementor-item.highlighted,
.geo .header-navi-2 .elementor-nav-menu a.elementor-item-active{border-bottom-color:var(--aksentti);color:var(--vari-otsikko);background:none;background-color:transparent}
.geo .header-navi-2 .elementor-menu-toggle,.geo .header-navi-2 .elementor-nav-menu--dropdown{display:none !important}

/* Puhelinnumero linjaan muiden kanssa */
.geo .header-puh{font-family:var(--fontti-leipa);font-size:16px;font-weight:600;color:var(--vari-otsikko);white-space:nowrap;display:flex;align-items:center}
.geo .header-puh p{margin:0;font:inherit;color:inherit}
.geo .header-puh a{color:var(--vari-otsikko)}
.geo .header-puh a:hover{color:var(--aksentti)}
.geo .header-btn .elementor-button{font-size:16px;padding:12px 30px}

/* Valikkonappi nakyy vasta mobiilissa, kuten prototyypissa */
.geo .valikko-btn{display:none;flex-direction:column;align-items:center;justify-content:center;gap:5px;background:transparent;border:none;color:var(--vari-otsikko);padding:2px 4px}
.geo .palkki{background-color:var(--vari-otsikko)}
@media (max-width:980px){
  .geo .header-navi-2,.geo .header-puh{display:none}
  .geo .valikko-btn{display:flex;min-width:46px;min-height:46px}
}
@media (max-width:768px){.geo .header-btn{display:none}.e-con.header{padding:12px 0}}

/* Aiempi .elementor-location-header .e-con -saanto oli liian laaja (!important),
   joten headerin omat mitat palautetaan samalla painolla. */
.elementor-location-header .e-con.header{padding:18px 0 !important;width:100% !important;max-width:100% !important}
.elementor-location-header .e-con.header.vieritetty{padding:10px 0 !important}
.elementor-location-header .e-con.header-rivi{max-width:var(--leveys) !important;width:100% !important;padding-left:var(--reunus) !important;padding-right:var(--reunus) !important;margin-left:auto !important;margin-right:auto !important;gap:40px}
.elementor-location-header .e-con.header-logo{width:auto !important;max-width:none !important;flex:none}
.elementor-location-header .e-con.header-oikea{width:auto !important;max-width:none !important;flex:none;gap:30px}
.elementor-location-header .elementor-widget{width:auto}
.elementor-location-header .e-con.header > .elementor-widget-html{width:100%}
@media (max-width:768px){.elementor-location-header .e-con.header{padding:12px 0 !important}}

/* Prototyypissa body on overflow-x: clip, jotta piilossa oleva mobiilivalikko
   ei leventaisi sivua. Ilman tata sivulle tulee vaakavieritys. */
html,body{overflow-x:clip}
/* Paavalikon kohteiden pehmuste tulee prototyypin mukaan, ei Elementorin */
.geo .header-navi-2 .elementor-nav-menu--main .elementor-item{padding:4px 0;border-radius:0}
.geo .header-navi-2 .elementor-nav-menu--main .elementor-item:hover,
.geo .header-navi-2 .elementor-nav-menu--main .elementor-item.elementor-item-active{background:none;background-color:transparent;color:var(--vari-otsikko);border-bottom:1px solid var(--aksentti)}
.geo .header-navi-2 .elementor-nav-menu--main .elementor-item{border-bottom:1px solid transparent}
.geo .header-navi-2 .e--pointer-underline .elementor-item:after,.geo .header-navi-2 .e--pointer-underline .elementor-item:before{display:none}

/* Valikon kohteiden valistys tulee ul:n gapista, ei kohteiden marginaalista */
.geo .header-navi-2 .elementor-nav-menu--main .elementor-item{margin:0}
.geo .header-navi-2 .elementor-nav-menu--main li{margin:0}

/* UKK-haitarin napit luodaan JS:lla, joten ne eivat olleet prototyypin
   HTML:ssa eivatka paatyneet automaattiseen poimintaan. */
.ukk-nappi{display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; width: 100%; background: none; border: none; padding: 0; text-align: left; font: inherit; color: inherit}
.ukk-nappi:hover{color: var(--aksentti)}
.ukk-merkki{flex: none; width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--reuna-vahva); color: var(--aksentti); display: flex; align-items: center; justify-content: center; font-family: var(--fontti-leipa); font-size: 18px; line-height: 1; transition: transform var(--siirtyma-nopea)}
.ukk-nappi[aria-expanded="true"] .ukk-merkki{transform: rotate(45deg)}

/* ==========================================================================
   ALATUNNISTE: sama laaja !important-saanto kumotaan kuin headerissa
   ========================================================================== */
.elementor-location-footer .e-con.alatunniste-simppeli{padding:56px 0 34px !important;width:100% !important;max-width:100% !important;background:var(--pohja);border-top:2px solid var(--vari-otsikko)}
.elementor-location-footer .e-con.kontti{max-width:var(--leveys) !important;width:100% !important;padding-left:var(--reunus) !important;padding-right:var(--reunus) !important;margin-left:auto !important;margin-right:auto !important}
.elementor-location-footer .e-con.simppeli-footer-sisalto{display:flex !important;flex-direction:row;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-bottom:44px !important;width:100% !important;max-width:100% !important}
.elementor-location-footer .e-con.simppeli-brand{display:flex;flex-direction:column;gap:12px;width:auto !important;max-width:none !important;flex:none}
.elementor-location-footer .e-con.simppeli-linkit{display:flex;flex-direction:row;align-items:center;gap:24px;flex-wrap:wrap;width:auto !important;max-width:none !important;flex:none}
.elementor-location-footer .e-con.simppeli-ala{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;width:100% !important;max-width:100% !important;font-size:13.5px;color:var(--vari-himmea)}
.elementor-location-footer .elementor-widget{width:auto}
.geo .simppeli-osoite p{margin:0;font-size:14.5px;line-height:1.7;color:var(--vari-leipa)}
.geo .simppeli-ala p{margin:0;font-size:13.5px;color:var(--vari-himmea)}
.geo .simppeli-ala a{color:var(--vari-himmea)}
.geo .simppeli-ala a:hover{color:var(--aksentti)}
.geo .simppeli-navi .elementor-nav-menu{display:flex;flex-direction:row;align-items:center;gap:24px;list-style:none;margin:0;padding:0;flex-wrap:wrap}
.geo .simppeli-navi .elementor-nav-menu--main .elementor-item{font-family:var(--fontti-leipa);font-size:15px;font-weight:500;color:var(--vari-otsikko);padding:0;margin:0;background:none}
.geo .simppeli-navi .elementor-nav-menu--main .elementor-item:hover,
.geo .simppeli-navi .elementor-nav-menu--main .elementor-item.elementor-item-active{color:var(--aksentti);background:none}
.geo .simppeli-navi .elementor-menu-toggle,.geo .simppeli-navi .elementor-nav-menu--dropdown{display:none !important}
.elementor-location-footer .e-con.simppeli-ala .elementor-widget{width:auto;flex:1}

.e-con.cta-kuva-sisalto{gap:0}
.geo .header-navi-2 nav.elementor-nav-menu--main{padding:0;margin:0}
.geo .header-navi-2 .elementor-nav-menu--main ul.elementor-nav-menu{padding:0;margin:0}

/* ==========================================================================
   MOBIILI: navi, puhelin ja nappi piiloon kuten prototyypissa.
   Tarkkuus (0,4,0), koska .geo .header-oikea > .elementor-widget on (0,3,0).
   ========================================================================== */
@media (max-width:980px){
  .geo .header-oikea > .elementor-widget.header-navi-2,
  .geo .header-oikea > .elementor-widget.header-puh{display:none !important}
}
@media (max-width:768px){
  .geo .header-oikea > .elementor-widget.header-btn{display:none !important}
  .elementor-location-header .e-con.header{padding:10px 0 11px !important}
  .geo .logo-kuva img{height:28px}
}
html,body{overflow-x:clip !important}

/* Elementorin konttien oletus flex-wrap:wrap heittaa kortin sisallon
   uuteen sarakkeeseen, kun korkeus on sidottu kuvasuhteeseen. */
.e-con.aluekortti,.e-con.kuvakortti,.e-con.vaihe,.e-con.aluekortti-teksti,.e-con.kuvakortti-sisalto,.e-con.kuvapaikka,.e-con.aluevideo,.e-con.cta-kuva-sisalto,.e-con.kontti,.e-con.geo-hero{flex-wrap:nowrap}
.e-con.aluekortti{min-height:0}

/* Yksisarakkeisissa ruudukoissa sarake ei saa kasvaa sisallon min-leveyteen */
@media (max-width:1024px){
  .parivaljakko,.parivaljakko-tasa,.yhteys-ruudukko{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:768px){
  .aluekortit,.kuvakortit,.vaiheet,.kohderyhmat,.referenssit,.galleria,
  .e-con.aluekortit,.e-con.kuvakortit,.e-con.vaiheet-kontti{grid-template-columns:minmax(0,1fr)}
  .vahvuudet-kaksi,.osio-otsikko-jaettu,.e-con.osio-otsikko-jaettu{grid-template-columns:minmax(0,1fr)}
}
.ukk-lista,.ukk-kohta,.ukk-nappi{min-width:0;max-width:100%}
.ukk-nappi > span:first-child{min-width:0;overflow-wrap:break-word}

/* ==========================================================================
   Elementorin globaalit varit GeoAgrin palettiin. Tehdaan CSS:lla, koska
   kitin asetusten kirjoittaminen pyyhkii taman tiedoston.
   ========================================================================== */
.elementor-kit-8{--e-global-color-primary:#101A24;--e-global-color-secondary:#54626F;--e-global-color-text:#54626F;--e-global-color-accent:#C0430F}

/* Otsikot tummalla taustalla valkoisiksi (Elementorin widget-saanto on 0,2,0) */
.geo .cta-kuva .elementor-widget-heading .elementor-heading-title{color:var(--vari-kuvalla)}
.geo .aluekortti .elementor-widget-heading .elementor-heading-title{color:#fff}
.geo .aluekortti-paikalla .aluekortti-otsikko .elementor-heading-title{color:var(--vari-otsikko)}
.geo .aluekortti-paikalla .aluekortti-yla .elementor-heading-title{color:var(--aksentti)}
.geo .aluekortti .aluekortti-yla .elementor-heading-title{color:var(--aksentti-kirkas)}
.geo .kuvapaikka .elementor-heading-title{color:var(--vari-otsikko)}
.geo .aluevideo .elementor-heading-title{color:var(--vari-otsikko)}

/* Loppukehotus: sisalto keskitetaan koko leveydelta, ei sisallon mukaan */
.e-con.cta-kuva{align-items:stretch}
.e-con.cta-kuva-sisalto{align-items:stretch;text-align:center}
.geo .cta-kuva-sisalto > .elementor-widget{width:100%}
.geo .cta-kuva-sisalto .elementor-heading-title{max-width:780px;margin-left:auto;margin-right:auto}
.geo .cta-kuva-sisalto p{max-width:780px;margin-left:auto;margin-right:auto}
.e-con.cta-napit{width:100%;justify-content:center;align-items:center}

/* .geo ja .cta-kuva ovat samassa elementissa, joten valitsimessa ei saa olla valia */
.geo.cta-kuva .elementor-widget-heading .elementor-heading-title{color:var(--vari-kuvalla)}
/* Korttien otsikkovarit tulevat kaareen luokasta (valkoinen kuvakortti,
   tumma paikanvaraaja), joten sisin perii sen sellaisenaan. */
.geo .aluekortti .elementor-widget-heading .elementor-heading-title,
.geo .aluekortti-paikalla .elementor-widget-heading .elementor-heading-title{color:inherit}

/* Skoopattu perusresetti (.geo h1) on tarkkuudeltaan (0,1,1) ja voittaa
   prototyypin luokkasaannot (0,1,0). Otsikkoluokat palautetaan samalla
   prefiksilla, jolloin ne voittavat taas. */
.elementor-widget-html .hero-otsikko,.geo .hero-otsikko{color:var(--vari-kuvalla)}
.elementor-widget-html .sivu-otsikko,.geo .sivu-otsikko{font-size:clamp(30px,3.8vw,52px);line-height:1.1;color:var(--vari-kuvalla);max-width:900px;margin-bottom:22px}
.elementor-widget-html .palvelu-otsikko,.geo .palvelu-otsikko{font-family:var(--fontti-otsikko);font-size:21px;line-height:1.2;letter-spacing:-0.01em;color:var(--vari-otsikko)}
.elementor-widget-html .kohta-otsikko,.geo .kohta-otsikko{font-family:var(--fontti-otsikko);font-size:19px;line-height:1.3;color:var(--vari-otsikko)}
.elementor-widget-html .vahvuus-otsikko-2,.geo .vahvuus-otsikko-2{display:block;color:rgba(255,255,255,0.76)}

/* Leipatekstiluokat: skoopattu p-resetti (0,1,1) voitti nama (0,1,0) */
.elementor-widget-html .hero-kuvaus,.geo .hero-kuvaus{margin-bottom:34px}
.elementor-widget-html .osio-johdanto,.geo .osio-johdanto{margin-bottom:0}
.elementor-widget-html .sivu-johdanto,.geo .sivu-johdanto{margin-bottom:0}
.elementor-widget-html .esittely-johdanto,.geo .esittely-johdanto{margin-bottom:44px}
.elementor-widget-html .simppeli-osoite,.geo .simppeli-osoite{margin-bottom:0}
.elementor-widget-html .mobiili-aukiolo,.geo .mobiili-aukiolo{margin:12px 0 0}
.elementor-widget-html .kohta-teksti,.geo .kohta-teksti{margin-bottom:0}
.elementor-widget-html .palvelu-teksti,.geo .palvelu-teksti{margin-bottom:26px}

.elementor-widget-html .hero-otsikko,.geo .hero-otsikko{font-family:var(--fontti-otsikko);font-size:clamp(38px,5.2vw,68px);font-weight:800;line-height:1.08;letter-spacing:-0.03em;color:var(--vari-kuvalla);margin-bottom:22px;text-transform:none}
.elementor-widget-html .hero-korostus,.geo .hero-korostus{color:var(--aksentti)}

/* ==========================================================================
   LINKKIEN JA NAPPIEN VARIT
   Skoopattu resetti .geo a / .elementor-widget-html a on tarkkuudeltaan (0,1,1)
   ja voittaa prototyypin luokat (0,1,0). Luokat palautetaan samalla
   prefiksilla, jolloin ne voittavat taas — kuten prototyypissa.
   ========================================================================== */
.elementor-widget-html .btn-aksentti,.geo .btn-aksentti{color:var(--aksentti-teksti)}
.elementor-widget-html .btn-reuna,.geo .btn-reuna{color:var(--vari-kuvalla)}
.elementor-widget-html .btn-vaalea,.geo .btn-vaalea{color:var(--aksentti-tumma)}
.elementor-widget-html .btn-tumma,.geo .btn-tumma{color:var(--vari-otsikko)}
.elementor-widget-html .nuolilinkki,.geo .nuolilinkki{color:var(--aksentti)}
.elementor-widget-html .aluekortti .nuolilinkki,.geo .aluekortti .nuolilinkki{color:#fff}
.elementor-widget-html .aluekortti-paikalla .nuolilinkki,.geo .aluekortti-paikalla .nuolilinkki{color:var(--aksentti)}
.elementor-widget-html .navi-linkki,.geo .navi-linkki{color:var(--vari-otsikko)}
.elementor-widget-html .header-puh,.geo .header-puh,
.elementor-widget-html .header-puh a,.geo .header-puh a{color:var(--vari-otsikko)}
.elementor-widget-html .simppeli-puh,.geo .simppeli-puh{color:var(--vari-otsikko)}
.elementor-widget-html .simppeli-sposti,.geo .simppeli-sposti{color:var(--vari-leipa)}
.elementor-widget-html .simppeli-linkit a:not(.btn),.geo .simppeli-linkit a:not(.btn){color:var(--vari-otsikko)}
.elementor-widget-html .simppeli-ala a,.geo .simppeli-ala a{color:var(--vari-himmea)}
.elementor-widget-html .mobiili-puhelin,.geo .mobiili-puhelin{color:var(--vari-otsikko)}
.elementor-widget-html .mobiili-navi a,.geo .mobiili-navi a{color:var(--vari-otsikko)}
.elementor-widget-html .yhteys-arvo,.geo .yhteys-arvo{color:var(--vari-otsikko)}
.elementor-widget-html .murupolku a,.geo .murupolku a{color:var(--vari-kuvalla-2)}
.elementor-widget-html .valintaruutu a,.geo .valintaruutu a{color:var(--aksentti)}
.elementor-widget-html .logo,.geo .logo{color:var(--vari-otsikko)}

/* Teeman reset.css: a:hover #333366 ja button:hover #CC3366 pois */
.elementor-widget-html a:hover,.geo a:hover{color:inherit}
.elementor-widget-html button:hover,.geo button:hover,
.elementor-widget-html button:focus,.geo button:focus{background-color:transparent;color:inherit}
.elementor-widget-html .ukk-nappi:hover,.geo .ukk-nappi:hover{color:var(--aksentti);background:none}
.elementor-widget-html .btn-aksentti:hover,.geo .btn-aksentti:hover{color:var(--aksentti-teksti);background-color:var(--aksentti-kirkas)}
.elementor-widget-html .btn-reuna:hover,.geo .btn-reuna:hover{color:var(--vari-kuvalla)}
.elementor-widget-html .btn-vaalea:hover,.geo .btn-vaalea:hover{color:var(--aksentti-tumma)}
.elementor-widget-html .nuolilinkki:hover,.geo .nuolilinkki:hover{color:var(--aksentti)}
.elementor-widget-html .aluekortti:hover .nuolilinkki,.geo .aluekortti:hover .nuolilinkki{color:var(--aksentti-kirkas)}
.elementor-widget-html .header-puh:hover,.geo .header-puh:hover,
.elementor-widget-html .header-puh a:hover,.geo .header-puh a:hover,
.elementor-widget-html .simppeli-puh:hover,.geo .simppeli-puh:hover,
.elementor-widget-html .simppeli-sposti:hover,.geo .simppeli-sposti:hover,
.elementor-widget-html .simppeli-linkit a:not(.btn):hover,.geo .simppeli-linkit a:not(.btn):hover,
.elementor-widget-html .simppeli-ala a:hover,.geo .simppeli-ala a:hover,
.elementor-widget-html .mobiili-navi a:hover,.geo .mobiili-navi a:hover,
.elementor-widget-html .yhteys-arvo:hover,.geo .yhteys-arvo:hover{color:var(--aksentti)}

/* Loppukehotus: Elementorin boxed-kaari lisasi 10px+10px pehmusteen */
.e-con.cta-kuva-sisalto > .e-con-inner{padding:0;gap:0;max-width:100%;width:100%}

/* Alatunniste pinoutuu mobiilissa kuten prototyypissa */
@media (max-width:768px){
  .elementor-location-footer .e-con.simppeli-footer-sisalto{flex-direction:column;align-items:flex-start;gap:28px}
  .elementor-location-footer .e-con.simppeli-linkit{width:100% !important;gap:16px 20px}
  .elementor-location-footer .e-con.simppeli-ala{flex-direction:column;align-items:flex-start;gap:8px}
  .elementor-location-footer .e-con.simppeli-linkit .btn{flex-basis:100%}
}

/* UKK-napin kysymysteksti saa rivittya mobiilissa */
.ukk-nappi > span:first-child{flex:1 1 auto;min-width:0;white-space:normal;overflow-wrap:break-word}
.ukk-nappi{flex-wrap:nowrap}

/* Elementorin nappi on <a class="elementor-button">, joten .btn-luokka on
   kaareessa eika ankkurissa — a:not(.btn) osui vaarin alatunnisteen nappiin. */
.geo .simppeli-linkit .btn .elementor-button,.geo .btn .elementor-button{color:var(--aksentti-teksti)}
.geo .btn-vaalea .elementor-button{color:var(--aksentti-tumma)}
.geo .btn-reuna .elementor-button{color:var(--vari-kuvalla)}
.geo .nuolilinkki .elementor-button{color:inherit}

/* ==========================================================================
   ALASIVUJEN KOMPONENTIT natiivikontteina
   ========================================================================== */
.e-con.alasivu-hero{position:relative;width:100%;min-height:64vh;display:flex;flex-direction:column;justify-content:center;padding:84px 0 118px;background-size:cover;background-position:center;overflow:hidden;flex-wrap:nowrap}
.e-con.alasivu-hero::before{content:'';position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(to right,rgba(10,16,24,0.92) 0%,rgba(10,16,24,0.70) 55%,rgba(10,16,24,0.90) 100%)}
.e-con.alasivu-hero::after{display:none}
.e-con.alasivu-hero > *{position:relative;z-index:1}
.e-con.alasivu-hero-sisalto{width:100%;max-width:var(--leveys);margin:0 auto;padding-left:var(--reunus);padding-right:var(--reunus);align-items:flex-start;flex-wrap:nowrap}
.geo .alasivu-hero .murupolku{color:var(--vari-kuvalla-3)}
.geo .alasivu-hero .murupolku a{color:var(--vari-kuvalla-2)}
.geo .alasivu-hero .murupolku span[aria-current]{color:var(--vari-kuvalla)}
.geo .alasivu-hero .sivu-otsikko .elementor-heading-title{color:var(--vari-kuvalla)}
.geo .alasivu-hero .sivu-johdanto p{font-size:clamp(15.5px,1.15vw,17.5px);line-height:1.75;color:rgba(255,255,255,0.88);max-width:680px;margin:0}
.e-con .elementor-widget.sivu-otsikko{margin-block-end:22px}
@media (max-width:768px){.e-con.alasivu-hero{min-height:0;padding:56px 0 72px}}

/* Keskitetty osio-otsikko */
.geo .osio-otsikko-keskella{max-width:820px;margin-left:auto;margin-right:auto;text-align:center;width:100%}
.e-con .elementor-widget.osio-otsikko-keskella{margin-block-end:68px}
@media (max-width:768px){.e-con .elementor-widget.osio-otsikko-keskella{margin-block-end:44px}}

/* Kohderyhmakortit */
.e-con.kohderyhmat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:30px;width:100%}
.e-con.kohderyhma-kortti{display:flex;flex-direction:column;flex-wrap:nowrap;background-color:var(--kortti-tausta);border:1px solid var(--kortti-reuna);border-top:3px solid var(--aksentti);padding:38px 40px}
.geo .kohderyhma-kortti h3.elementor-heading-title{margin-bottom:14px}
.geo .kohderyhma-kortti p{font-size:15px;line-height:1.8;color:var(--vari-leipa);margin:0}
@media (max-width:768px){.e-con.kohderyhmat{grid-template-columns:minmax(0,1fr);gap:26px}.e-con.kohderyhma-kortti{padding:30px 24px}}

/* CTA-palkki */
.e-con.cta-palkki{background-color:var(--aksentti);color:var(--aksentti-teksti);padding:46px 0;width:100%}
.e-con.cta-palkki-sisalto{width:100%;max-width:var(--leveys);margin:0 auto;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;padding-left:var(--reunus);padding-right:var(--reunus)}
.e-con.cta-palkki-teksti{width:auto;flex:1 1 auto;flex-wrap:nowrap}
.geo .cta-palkki .elementor-widget{width:auto}
.geo .cta-palkki .elementor-heading-title{font-size:clamp(22px,2.2vw,32px);line-height:1.15;color:var(--aksentti-teksti)}
.geo .cta-palkki p{font-size:15px;line-height:1.6;color:var(--aksentti-teksti);opacity:0.78;margin:8px 0 0}
.geo .btn-tumma .elementor-button{background-color:var(--pohja-2);color:var(--vari-otsikko);border-color:var(--pohja-2)}
.geo .btn-tumma .elementor-button:hover{background-color:var(--pohja);border-color:var(--pohja);color:var(--vari-otsikko)}
@media (max-width:768px){.e-con.cta-palkki{padding:40px 0}.e-con.cta-palkki-sisalto{flex-direction:column;align-items:flex-start}.geo .cta-palkki .btn .elementor-button{width:100%}}

/* Palvelulohkojen kuvakkeet HTML-widgetissa */
.elementor-widget-html .palvelu-kuvake svg{width:24px;height:24px}

.geo .alasivu-hero-sisalto > .elementor-widget{width:100%}
.geo .alasivu-hero .sivu-otsikko .elementor-heading-title{max-width:900px}

.geo .alasivu-hero .sivu-otsikko .elementor-heading-title{line-height:1.1;font-size:clamp(30px,3.8vw,52px)}
.geo .alasivu-hero .sivu-johdanto{max-width:680px}

/* .geo ja .alasivu-hero / .cta-palkki ovat samassa elementissa */
.geo.alasivu-hero .murupolku{color:var(--vari-kuvalla-3)}
.geo.alasivu-hero .murupolku a{color:var(--vari-kuvalla-2)}
.geo.alasivu-hero .murupolku span[aria-current]{color:var(--vari-kuvalla)}
.geo.alasivu-hero .sivu-otsikko .elementor-heading-title{color:var(--vari-kuvalla);line-height:1.1;font-size:clamp(30px,3.8vw,52px);max-width:900px}
.geo.alasivu-hero .sivu-johdanto{max-width:680px}
.geo.alasivu-hero .sivu-johdanto p{font-size:clamp(15.5px,1.15vw,17.5px);line-height:1.75;color:rgba(255,255,255,0.88);max-width:680px;margin:0}
.geo.alasivu-hero-sisalto > .elementor-widget,.geo .alasivu-hero-sisalto > .elementor-widget{width:100%}
.geo.alasivu-hero .alasivu-hero-sisalto > .elementor-widget{width:100%}
.geo.cta-palkki .elementor-widget{width:auto}
.geo.cta-palkki .elementor-heading-title{font-size:clamp(22px,2.2vw,32px);line-height:1.15;color:var(--aksentti-teksti)}
.geo.cta-palkki p{font-size:15px;line-height:1.6;color:var(--aksentti-teksti);opacity:0.78;margin:8px 0 0}
@media (max-width:768px){.geo.cta-palkki .btn .elementor-button{width:100%}}

/* Prototyypissa header on alasivun heron sisalla (min-height 64vh kattaa sen),
   WordPressissa header on erillinen. Vahennetaan headerin korkeus. */
.e-con.alasivu-hero{min-height:calc(64vh - 84px)}
@media (max-width:768px){.e-con.alasivu-hero{min-height:0}}

/* Osioiden ja konttien lapset taysleveiksi (Elementorin align-items:center
   kutisti HTML-widgetit sisallon levyisiksi) */
.e-con.osio,.e-con.kontti,.e-con.alasivu-hero{align-items:stretch}
.e-con.osio > .elementor-widget,.e-con.kontti > .elementor-widget{width:100%}
.e-con.tekstilohko{align-self:flex-start;max-width:880px;width:100%;align-items:flex-start}
.geo .tekstilohko p{max-width:var(--mitta-teksti)}

.geo .tekstilohko .elementor-widget-text-editor p:last-child{margin-bottom:1.1rem}

/* ==========================================================================
   YRITYS- JA YHTEYSTIETOSIVUN KOMPONENTIT natiivikontteina
   ========================================================================== */
.e-con.parivaljakko{display:grid;grid-template-columns:0.9fr 1.1fr;gap:100px;align-items:center;width:100%}
.e-con.esittely-visuaali{position:relative;max-width:520px;width:100%;flex-wrap:nowrap}
.geo .esittely-kuva{position:relative;z-index:1;overflow:hidden;line-height:0;background-color:var(--pinta);width:100%}
.geo .esittely-kuva img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block}
.e-con.esittely-teksti{max-width:700px;width:100%;align-items:flex-start;flex-wrap:nowrap}
.geo .esittely-johdanto p{font-size:15.5px;line-height:1.85;color:var(--vari-leipa);margin:0}
.e-con .elementor-widget.esittely-johdanto{margin-block-end:44px}
@media (max-width:1024px){
  .e-con.parivaljakko{grid-template-columns:minmax(0,1fr);gap:56px}
  .e-con.esittely-visuaali,.e-con.esittely-teksti{max-width:100%}
}
@media (max-width:768px){.geo .esittely-kuva img{aspect-ratio:4/3}}

/* Palstat tekstieditorina */
.geo .palstat{column-count:2;column-gap:56px;max-width:900px}
.geo .palstat p{margin-bottom:1.1rem;break-inside:avoid}
.geo .palstat p:last-child{margin-bottom:0}
@media (max-width:1024px){.geo .palstat{column-count:1}}

/* Lupauspalkki omassa osiossaan */
.geo .lupaukset{width:100%}

/* ==========================================================================
   PAAVALIKON PUDOTUSVALIKKO (Ratkaisut > Automaattiohjaus, Koneohjaus, Mittaus)
   Aiempi .elementor-nav-menu--dropdown{display:none !important} piilotti myos
   alavalikon, joten se kumotaan tarkemmalla saannolla.
   ========================================================================== */
.geo .header-navi-2 .elementor-nav-menu--main li.menu-item-has-children{position:relative}
.geo .header-navi-2 .elementor-nav-menu--main ul.sub-menu{display:block !important;position:absolute !important;top:calc(100% + 12px) !important;left:-18px !important;right:auto !important;min-width:236px;margin:0;padding:8px 0;list-style:none;background-color:var(--pohja);border:1px solid var(--reuna);border-radius:var(--pyoristys-m);box-shadow:var(--varjo-nosto);opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity var(--siirtyma-nopea),transform var(--siirtyma-nopea),visibility var(--siirtyma-nopea);z-index:70}
.geo .header-navi-2 .elementor-nav-menu--main li.menu-item-has-children:hover > ul.sub-menu,
.geo .header-navi-2 .elementor-nav-menu--main li.menu-item-has-children:focus-within > ul.sub-menu{opacity:1;visibility:visible;transform:translateY(0)}
.geo .header-navi-2 .elementor-nav-menu--main ul.sub-menu li{margin:0;width:100%}
.geo .header-navi-2 .elementor-nav-menu--main ul.sub-menu a{display:block;width:100%;padding:9px 20px;font-family:var(--fontti-leipa);font-size:15px;font-weight:500;line-height:1.6;color:var(--vari-otsikko);border:0;background:none;white-space:nowrap}
.geo .header-navi-2 .elementor-nav-menu--main ul.sub-menu a:hover,
.geo .header-navi-2 .elementor-nav-menu--main ul.sub-menu a.elementor-item-active{color:var(--aksentti);background-color:var(--pohja-2)}
/* Silta linkin ja valikon valiin, ettei hover katkea */
.geo .header-navi-2 .elementor-nav-menu--main li.menu-item-has-children::after{content:'';position:absolute;top:100%;left:0;right:0;height:14px}
/* Nuoli paalinkin perassa */
.geo .header-navi-2 .elementor-nav-menu--main .sub-arrow{display:inline-flex;align-items:center;margin-left:7px;pointer-events:none}
.geo .header-navi-2 .elementor-nav-menu--main .sub-arrow svg{width:9px;height:9px;fill:currentColor;transition:transform var(--siirtyma-nopea)}
.geo .header-navi-2 .elementor-nav-menu--main li.menu-item-has-children:hover .sub-arrow svg{transform:rotate(180deg)}

/* Mobiilivalikon alakohdat sisennettyina */
.geo .mobiili-navi .ala-linkki{padding-left:18px;font-size:17px;color:var(--vari-leipa)}
.geo .mobiili-navi .ala-linkki .nuoli{font-size:15px}

/* .palvelu-otsikko on 21px vain palvelulohkoissa; neliosassa se seuraa
   prototyypin clamp-arvoa. Aiempi liian laaja saanto kumotaan. */
.elementor-widget-html .palvelu-otsikko,.geo .palvelu-otsikko{font-size:clamp(21px,2vw,30px);line-height:1.16;letter-spacing:normal;margin-bottom:16px}
.elementor-widget-html .palvelulohko .palvelu-otsikko,.geo .palvelulohko .palvelu-otsikko{font-size:21px;line-height:1.2;letter-spacing:-0.01em;margin-bottom:0}

/* Osion suorat widget-lapset taysleveiksi (lupauspalkki ym.) */
.e-con.geo > .elementor-widget{width:100%}

/* Elementorin globaalit fonttipainot prototyypin mukaisiksi (otsikot 700) */
.elementor-kit-8{--e-global-typography-primary-font-weight:700;--e-global-typography-secondary-font-weight:600;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-weight:600}
.geo .elementor-widget-heading .elementor-heading-title{font-weight:var(--otsikko-paino)}
.geo .kicker .elementor-heading-title{font-weight:600}
.geo .aluekortti-yla .elementor-heading-title{font-weight:700}

/* Tekstilohkon viimeisen kappaleen alamarginaali vain jos perassa on nappi */
.geo .tekstilohko .elementor-widget-text-editor:not(:last-child) p:last-child{margin-bottom:1.1rem}
.geo .tekstilohko .elementor-widget-text-editor:last-child p:last-child{margin-bottom:0}

/* --- Paikanvaraajakortin varit: oma .e-con.aluekortti -saanto (0,3,0) voitti
   prototyypin .aluekortti-paikalla -saannot (0,2,0). --- */
.e-con.aluekortti.aluekortti-paikalla .aluekortti-yla{color:var(--aksentti)}
.e-con.aluekortti.aluekortti-paikalla .aluekortti-otsikko{color:var(--vari-otsikko)}
.e-con.aluekortti.aluekortti-paikalla .aluekortti-kuvaus{color:var(--vari-leipa)}
.e-con.aluekortti.aluekortti-paikalla .nuolilinkki{color:var(--aksentti)}
.e-con.aluekortti.aluekortti-paikalla:hover .nuolilinkki{color:var(--aksentti-tumma)}
.geo .aluekortti-paikalla .aluekortti-otsikko .elementor-heading-title{color:var(--vari-otsikko)}
.geo .aluekortti-paikalla .aluekortti-yla .elementor-heading-title{color:var(--aksentti)}
.geo .aluekortti-paikalla .aluekortti-kuvaus p{color:var(--vari-leipa)}

/* --- Nuolimerkki: kaytetaan merkkia suoraan, ei escape-koodia --- */
.geo .nuolilinkki .elementor-button-text::after{content:"\2192";margin-left:10px;display:inline-block;transition:transform var(--siirtyma-nopea)}
.geo .nuolilinkki:hover .elementor-button-text::after{transform:translateX(5px)}

/* --- CTA-palkin teksti vasempaan reunaan, ei keskitettyna --- */
.e-con.cta-palkki-teksti{align-items:flex-start;text-align:left;width:auto;max-width:none;flex:0 1 auto}
.geo .cta-palkki-teksti > .elementor-widget{width:auto}
.geo.cta-palkki .cta-palkki-teksti .elementor-heading-title,
.geo.cta-palkki .cta-palkki-teksti p{text-align:left}

/* Nuolimerkki myos HTML-widgettien nuolilinkeille (aiempi escape katosi) */
.nuolilinkki::after{content:"\2192"}

/* Paikanvaraajakortin nuolilinkin hover kuten prototyypissa */
.e-con.aluekortti.aluekortti-paikalla:hover .nuolilinkki{color:var(--aksentti-kirkas)}

/* Pudotusvalikon hover-silta on nakymaton apualue: ei reunuksia eika taustaa */
.geo .header-navi-2 .elementor-nav-menu--main li.menu-item-has-children::after{border:0;background:none;box-shadow:none;pointer-events:auto}

/* Nykyisen sivun valikkolinkki: Elementor ei merkitse mukautettuja linkkeja
   luokalla elementor-item-active, joten kaytetaan JS:n lisaamaa .aktiivinen */
.geo .header-navi-2 .elementor-nav-menu--main .elementor-item.aktiivinen{border-bottom-color:var(--aksentti)}
.geo .header-navi-2 .elementor-nav-menu--main ul.sub-menu a.aktiivinen{color:var(--aksentti);background-color:var(--pohja-2)}

/* ==========================================================================
   GRAVITY FORMS prototyypin .lomake -ilmeeseen
   ========================================================================== */
.geo .lomake-kaari .gform_wrapper{
  --gform-theme-color-primary:var(--aksentti);
  --gform-theme-color-primary-rgb:192,67,15;
  --gform-theme-color-primary-contrast:#ffffff;
  --gform-theme-color-secondary:var(--pohja-3);
  --gform-theme-color-inside-control:var(--pohja-3);
  --gform-theme-color-inside-control-primary:var(--aksentti);
  --gform-theme-color-outside-control-light:var(--reuna-vahva);
  --gform-theme-color-outside-control-dark:var(--vari-otsikko);
  --gform-theme-font-family-primary:var(--fontti-otsikko);
  --gform-theme-font-family-secondary:var(--fontti-leipa);
  --gform-theme-border-radius:var(--pyoristys-m);
  --gform-theme-control-border-radius:var(--pyoristys-m);
  --gform-theme-control-border-color:var(--reuna-vahva);
  --gform-theme-control-background-color:var(--pohja-3);
  --gform-theme-control-color:var(--vari-otsikko);
  --gform-theme-control-placeholder-color:var(--vari-himmea);
  --gform-theme-control-accent-color:var(--aksentti);
  background-color:var(--kortti-tausta);
  border:1px solid var(--kortti-reuna);
  border-top:3px solid var(--aksentti);
  box-shadow:var(--kortti-varjo);
  padding:46px 46px 40px;
  font-family:var(--fontti-leipa);
  color:var(--vari-leipa)}
.geo .lomake-kaari .gform_heading{margin:0 0 30px}
.geo .lomake-kaari .gform_title{font-family:var(--fontti-otsikko);font-size:clamp(20px,2.1vw,27px);font-weight:700;line-height:1.12;color:var(--vari-otsikko);margin:0}
.geo .lomake-kaari .gform_description{display:none}
.geo .lomake-kaari .gform_required_legend{display:none}
.geo .lomake-kaari .gfield_label{display:block;font-family:var(--fontti-leipa);font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--vari-leipa);margin:0 0 9px}
.geo .lomake-kaari .gfield_required{color:var(--aksentti)}
.geo .lomake-kaari .gform_fields{row-gap:22px}
.geo .lomake-kaari input[type=text],.geo .lomake-kaari input[type=email],.geo .lomake-kaari input[type=tel],
.geo .lomake-kaari input[type=url],.geo .lomake-kaari input[type=number],.geo .lomake-kaari textarea,.geo .lomake-kaari select{
  width:100%;background-color:var(--pohja-3);border:1px solid var(--reuna-vahva);border-radius:var(--pyoristys-m);
  padding:14px 16px;font-family:var(--fontti-leipa);font-size:15px;line-height:1.5;color:var(--vari-otsikko);
  transition:border-color var(--siirtyma-nopea),box-shadow var(--siirtyma-nopea)}
.geo .lomake-kaari input::placeholder,.geo .lomake-kaari textarea::placeholder{color:var(--vari-himmea)}
.geo .lomake-kaari input:focus,.geo .lomake-kaari textarea:focus,.geo .lomake-kaari select:focus{
  outline:none;border-color:var(--aksentti);box-shadow:0 0 0 3px var(--aksentti-himmea)}
.geo .lomake-kaari textarea{min-height:150px;resize:vertical}
.geo .lomake-kaari .gfield_description{font-size:12.5px;line-height:1.6;color:var(--vari-himmea);padding-top:6px}
.geo .lomake-kaari .gfield_validation_message,.geo .lomake-kaari .validation_message{
  background:none;border:0;padding:6px 0 0;font-size:12.5px;font-weight:500;color:var(--virhe)}
.geo .lomake-kaari .gform_validation_errors{border:1px solid var(--virhe);background-color:var(--virhe-tausta);
  border-radius:var(--pyoristys-m);padding:14px 18px;box-shadow:none;margin:0 0 24px}
.geo .lomake-kaari .gform_validation_errors > h2{font-family:var(--fontti-leipa);font-size:14px;font-weight:600;color:var(--virhe);margin:0}
.geo .lomake-kaari .gform_footer{margin:26px 0 0;padding:0}
.geo .lomake-kaari .gform_button{display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;
  font-family:var(--fontti-leipa);font-size:16.5px;font-weight:700;line-height:1.3;padding:17px 40px;
  background-color:var(--aksentti);color:var(--aksentti-teksti);border:1.5px solid var(--aksentti);
  border-radius:var(--pilleri);cursor:pointer;transition:all var(--siirtyma)}
.geo .lomake-kaari .gform_button:hover{background-color:var(--aksentti-kirkas);border-color:var(--aksentti-kirkas);
  color:var(--aksentti-teksti);transform:translateY(-2px)}
.geo .lomake-kaari .gform_confirmation_wrapper,.geo .lomake-kaari .gform_confirmation_message{
  background-color:var(--pinta);border:1px solid var(--aksentti);border-radius:var(--pyoristys-l);
  padding:46px 40px;text-align:center;font-size:16px;color:var(--vari-leipa)}
.geo .lomake-kaari .gchoice label{font-size:13.5px;line-height:1.6;color:var(--vari-leipa);text-transform:none;letter-spacing:normal;font-weight:400}
.geo .lomake-kaari .gchoice a{color:var(--aksentti);text-decoration:underline}
@media (max-width:768px){
  .geo .lomake-kaari .gform_wrapper{padding:28px 22px}
  .geo .lomake-kaari input,.geo .lomake-kaari textarea,.geo .lomake-kaari select{font-size:16px}
}

/* Kiinteä alapalkki: reunanappi on vaalealla pohjalla, joten teksti tummaksi */
.geo .mobiilipalkki .btn-reuna,.elementor-widget-html .mobiilipalkki .btn-reuna{color:var(--vari-otsikko);border-color:var(--reuna-vahva);background-color:transparent}
.geo .mobiilipalkki .btn-reuna:hover,.elementor-widget-html .mobiilipalkki .btn-reuna:hover{color:var(--vari-otsikko);background-color:var(--pohja-2);border-color:var(--reuna-vahva)}
.geo .mobiilipalkki .btn-reuna svg,.elementor-widget-html .mobiilipalkki .btn-reuna svg{color:var(--vari-otsikko)}

/* ==========================================================================
   ALATUNNISTEEN VALIKKO nakyy kaikilla leveyksilla (ei hampurilaista),
   kuten prototyypissa. Elementor piilottaa paavalikon tabletista alaspain.
   ========================================================================== */
.geo .simppeli-navi nav.elementor-nav-menu--main{display:block !important}
.geo .simppeli-navi .elementor-nav-menu--main .elementor-nav-menu{display:flex !important;flex-direction:row;flex-wrap:wrap;align-items:center;gap:24px;list-style:none;margin:0;padding:0}
.geo .simppeli-navi .elementor-menu-toggle,.geo .simppeli-navi nav.elementor-nav-menu--dropdown{display:none !important}
.geo .simppeli-navi{width:auto}

@media (max-width:768px){
  /* Prototyypissa alatunnisteen nappi on taysleveä ja linkit rivittyvat */
  .geo .simppeli-linkit .btn .elementor-button{width:100%}
  .geo .simppeli-navi .elementor-nav-menu--main .elementor-nav-menu{gap:16px 20px}
  .geo .simppeli-navi{width:100%}
}

/* Gravity Formsin oma kehyssaanto on tarkkuudeltaan (0,4,0) ja latautuu
   post-8.css:n jalkeen, joten napille tarvitaan (0,5,0) + GF:n muuttujat. */
.geo .lomake-kaari .gform_wrapper{
  --gf-color-primary:var(--aksentti);
  --gf-ctrl-accent-color:var(--aksentti);
  --gf-ctrl-bg-color:var(--pohja-3);
  --gf-ctrl-border-color:var(--reuna-vahva);
  --gf-ctrl-radius:var(--pyoristys-m);
  --gf-ctrl-color:var(--vari-otsikko);
  --gf-ctrl-label-color-primary:var(--vari-leipa);
  --gf-ctrl-btn-bg-color-primary:var(--aksentti);
  --gf-ctrl-btn-bg-color-hover-primary:var(--aksentti-kirkas);
  --gf-ctrl-btn-border-color-primary:var(--aksentti);
  --gf-ctrl-btn-border-color-hover-primary:var(--aksentti-kirkas);
  --gf-ctrl-btn-color-primary:#ffffff;
  --gf-ctrl-btn-color-hover-primary:#ffffff;
  --gf-ctrl-btn-radius:var(--pilleri);
  --gf-ctrl-btn-font-size:16.5px;
  --gf-ctrl-btn-font-weight:700;
  --gf-ctrl-btn-padding-x:40px;
  --gf-ctrl-btn-padding-y:17px;
  --gf-ctrl-btn-size:auto}
.geo .lomake-kaari .gform_wrapper .gform_footer .gform_button,
.geo .lomake-kaari .gform_wrapper .gform_footer input[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;width:100%;height:auto;
  font-family:var(--fontti-leipa);font-size:16.5px;font-weight:700;line-height:1.3;padding:17px 40px;
  background-color:var(--aksentti);color:var(--aksentti-teksti);border:1.5px solid var(--aksentti);
  border-radius:var(--pilleri);cursor:pointer;transition:all var(--siirtyma)}
.geo .lomake-kaari .gform_wrapper .gform_footer .gform_button:hover,
.geo .lomake-kaari .gform_wrapper .gform_footer input[type=submit]:hover{
  background-color:var(--aksentti-kirkas);border-color:var(--aksentti-kirkas);color:var(--aksentti-teksti);transform:translateY(-2px)}
.geo .lomake-kaari .gform_wrapper .gfield_label,
.geo .lomake-kaari .gform_wrapper .gform-field-label{font-family:var(--fontti-leipa);font-size:12px;font-weight:600;letter-spacing:0.14em;text-transform:uppercase;color:var(--vari-leipa)}

/* GF:n kehys kayttaa -md-paatteisia muuttujia napin koolle */
.geo .lomake-kaari .gform_wrapper{
  --gf-ctrl-btn-font-size-md:16.5px;
  --gf-ctrl-btn-padding-x-md:40px;
  --gf-ctrl-btn-padding-y-md:17px;
  --gf-ctrl-btn-size-md:auto;
  --gf-ctrl-btn-line-height-md:1.3}
.geo .lomake-kaari .gform_wrapper .gform_footer .gform_button{width:100% !important;min-height:0;font-size:16.5px;padding-inline:40px}

/* ==========================================================================
   MOBIILIKORJAUKSET (tietoinen poikkeama prototyypista)
   ========================================================================== */

/* 1. Prototyypin saanto ".aluekortit > *:last-child:nth-child(odd)" antaa
   viimeiselle kortille 16:9-suhteen. Se on tarkoitettu kahden palstan
   tablettinakymaan; yhden palstan mobiilissa se tekee kortista puolet
   muita matalamman ja sisalto valuu yli. Palautetaan yhtenaiset kortit. */
@media (max-width:768px){
  .aluekortit > *:last-child:nth-child(odd),
  .e-con.aluekortit > *:last-child:nth-child(odd){grid-column:auto;aspect-ratio:4/5}
  .aluekortti-paikalla,.e-con.aluekortti-paikalla,
  .aluekortit > .aluekortti-paikalla:last-child:nth-child(odd),
  .e-con.aluekortit > .aluekortti-paikalla:last-child:nth-child(odd){aspect-ratio:auto}
}

/* 2. Hero mobiilissa: pienemmat tekstit ja napit vierekkain */
@media (max-width:768px){
  .elementor-widget-html .hero-label,.geo .hero-label{font-size:11.5px;letter-spacing:0.14em;margin-bottom:20px}
  .elementor-widget-html .hero-otsikko,.geo .hero-otsikko{font-size:clamp(30px,8vw,38px);line-height:1.1;margin-bottom:18px}
  .elementor-widget-html .hero-kuvaus,.geo .hero-kuvaus{font-size:16px;line-height:1.65;margin-bottom:28px}
  .elementor-widget-html .hero-napit,.geo .hero-napit{flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:12px;width:100%}
  .elementor-widget-html .hero-napit .btn,.geo .hero-napit .btn{flex:1 1 0;width:auto;min-width:0;font-size:14.5px;font-weight:700;padding:15px 10px;gap:8px}
  .elementor-widget-html .hero-napit .btn svg,.geo .hero-napit .btn svg{width:15px;height:15px}
}/* End custom CSS */