:root {
	--musta: #000000;
	--valkoinen: #FFFFFF;
	--paavari: #C257AD;
	--lisavari: #F5ECF3;
	--alapalkki: #6E185D;
	--teksti: #6E185D;
	--footnote: #F5ECF3;
    --rajoittaja: 1720px;
    --rajoittajakapea: 1330px;
    --fonttikoko: 20px;
    --turva: 20px;
    --isoturva: 70px;
    --logo: 162px;
}

/*
Muli Regular
font-family: "muli", sans-serif;
font-weight: 400;
font-style: normal;

Muli Italic
font-family: "muli", sans-serif;
font-weight: 400;
font-style: italic;

Muli ExtraBold
font-family: "muli", sans-serif;
font-weight: 800;
font-style: normal;

Muli ExtraBold Italic
font-family: "muli", sans-serif;
font-weight: 800;
font-style: italic;
*/

head, body {
    margin: 0;
    padding: 0;
}

body {
    background: var(--valkoinen);
    color: var(--teksti);
    font-size: var(--fonttikoko);
    font-family: "Mulish", sans-serif;
    font-weight: 400;
    font-style: normal;
}

a {
    color: var(--teksti);
    text-decoration: underline;
    transition: 0.25s color;
}

a:hover {
    color: var(--paavari);
}

h1, h2, h3, h4, h5 {
    font-weight: 800;
    line-height: 1.154em;
    margin: 1em 0;
}

h1,
h2 {
    font-size: 3.250em;
    margin: 40px 0;
}

h2.pieni {
    font-size: 2.500em;
}

h3 {
    font-size: 1.500em;
}

h4 {
    font-size: 1.25em;
}

h5 {
    font-size: 1em;
}

.paavari {
    background: var(--paavari);
    color: var(--valkoinen);
}

.lisavari {
    background: var(--lisavari);
    color: var(--paavari);
}

.rajoittaja {
    display: block;
    width: var(--rajoittaja);
    padding-left: calc(var(--turva) * 2);
    padding-right: calc(var(--turva) * 2);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
    max-width: 100%;
}

.flex {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    max-width: 100%;
    box-sizing: border-box;
}

.flex.aligntop {
    align-items: flex-start;
}

.flex > div {
    display: block;
    box-sizing: border-box;
}

.solu_12 {
    width: 100%;
}

.solu_11 {
    width: calc(100% / 12 * 11);
}

.solu_10 {
    width: calc(100% / 12 * 10);
}

.solu_9 {
    width: 75%;
}

.solu_8 {
    width: calc(100% / 12 * 8);
}

.solu_7 {
    width: calc(100% / 12 * 7);
}

.solu_6 {
    width: 50%;
}

.solu_5 {
    width: calc(100% / 12 * 5);
}

.solu_4 {
    width: calc(100% / 12 * 4);
}

.solu_3 {
    width: 25%;
}

.solu_2 {
    width: calc(100% / 12 * 2);
}

.solu_1 {
    width: calc(100% / 12);
}

.hero_vasen, .hero_oikea {
    display: block;
    width: 50%;
}

.hero.flex {
    align-items: stretch;
}

.hero_vasen {
    background-size: cover !important;
    background-position: center !important;
}

.sisaltorivi > * > *:first-child,
.rajoittaja > *:first-child,
.alapalkki_solu > *:first-child,
.pystyteksti_sisalto > *:first-child {
    margin-top: 0 !important;
}

.sisaltorivi > * > *:last-child,
.rajoittaja > *:last-child,
.alapalkki_solu > *:last-child,
.pystyteksti_sisalto > *:last-child {
    margin-bottom: 0 !important;
}

.rajoittaja.puolikas {
    width: calc(var(--rajoittaja) / 2);
    padding-left: 0;
    padding-right: 0;
    margin-left: 0;
    margin-right: 0;
}

.sisaltorivi {
    margin-left: calc(var(--turva) * -1);
    margin-right: calc(var(--turva) * -1);
    width: calc(100% + (var(--turva) * 2));
    max-width: calc(100% + (var(--turva) * 2));
    padding-top: calc(var(--turva) * 6);
    padding-bottom: calc(var(--turva) * 6);
}

.sisaltorivi > * {
    display: block;
    padding: var(--turva);
    order: 1;
}

article.nosto {
    width: calc(100% / 3);
    text-align: center;
    padding: calc(var(--turva) * 2);
    box-sizing: border-box;
}

.nostot.flex {
    width: calc(100% + (var(--turva) * 4));
    max-width: calc(100% + (var(--turva) * 4));
    margin-left: calc(var(--turva) * -2);
    margin-right: calc(var(--turva) * -2);
    padding-top: calc(var(--turva) * 4);
    padding-bottom: calc(var(--turva) * 8);
}

.ylavalikko .rajoittaja {
    justify-content: space-between;
}

.rajoittaja.kapea {
    width: var(--rajoittajakapea);
}

.alapalkki_yla {
    background: var(--alapalkki);
    color: var(--valkoinen);
    padding-top: calc(var(--turva) * 7);
    padding-bottom: calc(var(--turva) * 7);
}

.alapalkki_logo {
    display: block;
    width: 100%;
    margin-bottom: 1.5em;
}

.alapalkki_logo img {
    display: block;
    margin: 0 auto;
}

.alapalkki_solu {
    display: block;
    width: 25%;
    text-align: center;
    padding: calc(var(--turva) * 2);
}

.alapalkki_ala {
    background: var(--footnote);
    padding-top: calc(var(--turva) * 2);
    padding-bottom: calc(var(--turva) * 2);
    color: var(--paavari);
}

a.paalogo {
    display: block;
    width: var(--logo);
}

.flex > div.mobile_nav_toggle {
    display: none;
}

nav.paavalikko {
    display: block;
    width: calc(100% - var(--logo));
}

nav.paavalikko ul {
    margin: 0;
    padding: 0;
    list-style: none;
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

nav.paavalikko a {
    display: block;
    color: var(--teksti);
    text-transform: uppercase;
    font-weight: 700;
    transition: 0.5s border;
    border-bottom: 2px solid rgba(0,0,0,0);
    padding: 5px 0;
    text-decoration: none !important;
    font-size: 1em;
}

nav.paavalikko li {
    display: block;
    margin-left: calc(var(--turva) * 2.75);
}

header.ylavalikko {
    display: block;
    padding-top: 13px;
    padding-bottom: 12px;
    position: relative;
}

.hero_oikea {
    padding: calc(var(--turva) * 10.5) calc(var(--turva) * 7);
}

.yksisisalto {
    display: block;
    padding-top: calc(var(--turva) * 7);
    padding-bottom: calc(var(--turva) * 8);
}

.alapalkki_ala p {
    margin: 0;
}

.alapalkki_ala .rajoittaja > div {
    margin: 0 var(--turva);
}

.alapalkki_ala a {
    color: var(--teksti);
    padding: 3px 0;
    text-decoration: none;
}

input[type="submit"],
a.nappula {
    font-family: "Mulish", sans-serif;
    display: inline-block;
    font-size: 1em;
    font-weight: 800;
    background: var(--paavari);
    color: var(--valkoinen);
    padding: 19px 50px;
    border-radius: 53px;
    line-height: 1em;
    margin: calc(var(--turva) * 2) calc(var(--turva) * 1.25) 0 0;
    transition: 0.25s background, 0.25s color;
    text-decoration: none !important;
    cursor: pointer;
    border: 0;
}

.paavari input[type="submit"],
.paavari a.nappula {
    background: var(--valkoinen);
    color: var(--paavari);
}

input[type="submit"]:hover,
.paavari input[type="submit"]:hover,
a.nappula:hover,
.paavari a.nappula:hover {
    background: var(--teksti);
    color: var(--valkoinen);
}

.kuvalaatikko {
    position: relative;
    display: block;
    padding-top: 100%;
}

.kuvalaatikko img {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
}

.tyhja_1 {
    width: calc(100% - (100% / 12));
    margin-left: calc(100% / 12);
}

.tyhja_2 {
    width: calc(100% - (100% / 12 * 2));
    margin-left: calc(100% / 12 * 2);
}

.tyhja_3 {
    width: 75%;
    margin-left: 25%;
}

.tyhja_4 {
    width: calc(100% - (100% / 12 * 4));
    margin-left: calc(100% / 12 * 4);
}

.tyhja_5 {
    width: calc(100% - (100% / 12 * 5));
    margin-left: calc(100% / 12 * 5);
}

.tyhja_6 {
    width: 50%;
    margin-left: 50%;
}

.tyhja_7 {
    width: calc(100% - (100% / 12 * 7));
    margin-left: calc(100% / 12 * 7);
}

.tyhja_8 {
    width: calc(100% - (100% / 12 * 8));
    margin-left: calc(100% / 12 * 8);
}

.tyhja_9 {
    width: 75%;
    margin-left: 25%;
}

.tyhja_10 {
    width: calc(100% - (100% / 12 * 10));
    margin-left: calc(100% / 12 * 10);
}

.tyhja_11 {
    width: calc(100% - (100% / 12 * 11));
    margin-left: calc(100% / 12 * 11);
}

nav.paavalikko a:hover {
    border-bottom: 2px solid var(--teksti);
}

p {
    margin: 1em 0;
    line-height: 1.750em;
    font-size: 1em;
}

.nostot h3 {
    margin-top: calc(var(--turva) * 1.5);
    margin-bottom: calc(var(--turva) * 2);
}

article.nosto img {
    display: block;
    margin: 0 auto;
}

a.nappula:last-child,
input[type="submit"]:last-child {
    margin-right: 0;
}

.alapalkki h3 {
    margin-bottom: calc(var(--turva) * 2);
}

.alapalkki_ala a:hover {
    color: var(--paavari);
}

a.paalogo img {
    display: block;
    width: 100%;
    height: auto;
}

.paavari a {
    color: var(--valkoinen);
}

.paavari a:hover {
    color: var(--teksti);
}

.alapalkki_yla a:hover {
    color: var(--lisavari);
}

.alapalkki_yla .flex {
    align-items: flex-start;
}

.hero_oikea h1 {
    margin-bottom: 33px;
}

.alapalkki_yla a {
    color: var(--valkoinen);
}

.nosto img {
    width: 70px;
    height: 70px;
    object-fit: contain;
    object-position: center;
}

.lisavari a {
    color: var(--paavari);
}

.lisavari a:hover {
    color: var(--teksti);
}

.lisavari a.nappula,
.lisavari input[type="submit"],
.lisavari a.nappula:hover,
.lisavari input[type="submit"]:hover {
    color: var(--valkoinen);
}

img {
    max-width: 100%;
    height: auto;
}

header.ylavalikko.alasivu {
    background: var(--paavari);
}

.alasivu nav.paavalikko a {
    color: var(--valkoinen);
}

.alasivu nav.paavalikko a:hover {
    border-bottom: 2px solid var(--valkoinen);
}

section.sivunnimi {
    display: block;
    background: var(--paavari);
    color: var(--valkoinen);
    text-align: center;
    padding-top: calc(5 * var(--turva));
    padding-bottom: calc(3 * var(--turva));
}

.flex.spacebetween {
    justify-content: space-between;
}

.pystyteksti_rajoittaja {
    display: flex;
    padding-left: 182px;
    padding-right: 0;
    position: relative;
}

h2.pystyotsikko {
    position: absolute;
    top: 0;
    left: 0px;
    transform: rotate(180deg);
    text-align: right;
    writing-mode: vertical-lr;
    font-weight: 800;
    margin: 0;
    white-space: nowrap;
    line-height: 1em;
}

.hinnasto_kohta {
    display: flex;
    width: 100%;
    justify-content: space-between;
    border-bottom: 1px solid var(--paavari);
    margin-bottom: 20px;
}

.hinnasto_kohta > * {
    display: block;
    padding-bottom: 10px;
}

.pystyteksti_sisalto {
    width: 100%;
    box-sizing: border-box;
}

.pystyteksti_sisalto h3 {
    margin-top: 2.5em;
    margin-bottom: 1.5em;
}

.hinnasto_vasen > * {
    display: block;
    margin-bottom: 10px;
}

.hinnasto_oikea {
    white-space: nowrap;
}

.hinnasto_vasen {
    padding-right: 2em;
    box-sizing: border-box;
}

.yhteyshenkilokuva {
    display: block;
    width: 345px;
    max-width: 100%;
    position: relative;
    margin: 0 auto 2em auto;
}

.yhteyshenkilokuva img {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    border-radius: 50%;
}

.yhteyshenkilokuva > span {
    display: block;
    padding-top: 100%;
}

.sisaltorivi > *.ylapadding,
.ylapadding > * {
    padding-top: calc(var(--turva) * 5);
}

.sisaltorivi > *.pohjapadding,
.pohjapadding > div,
.pohjapadding > section,
.pohjapadding > article {
    padding-bottom: calc(var(--turva) * 5);
}

.pohjapadding *.otsikkorivi {
    padding-bottom: calc(var(--turva) * 2);
}

.lomake input[type="text"],
.lomake input[type="email"],
.lomake input[type="tel"],
.lomake textarea {
    font-family: "Mulish", sans-serif;
    font-weight: 400;
    font-style: normal;
    display: block;
    width: 100%;
    border: 0;
    color: var(--teksti);
    font-size: 1em;
    padding: 14px 28px 15px 28px;
    box-sizing: border-box;
    margin-bottom: 17px;
}

.lomake textarea {
    min-height: 250px;
}

.lomake input::placeholder,
.lomake textarea::placeholder {
    color: var(--paavari);
    opacity: 1;
}
  
.lomake input::-ms-input-placeholder,
.lomake textarea::-ms-input-placeholder {
    color: var(--paavari);
}

.kartta {
    display: block;
    width: 100%;
    padding-top: 33.75%;
    position: relative;
}

.kartta > iframe {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
}

span.paivays {
    display: block;
    font-size: 1em;
}

img.arkisto_artikkelikuva {
    display: block;
    margin-bottom: 2.5em;
}

.arkisto_navigointi {
    text-align: center;
}

.arkisto_navigointi a.nappula {
    border: 2px solid var(--paavari);
    background: var(--valkoinen);
    color: var(--paavari);
    margin: 10px 8px;
}

.arkisto_navigointi a.nappula:hover {
    background: var(--paavari);
    color: var(--valkoinen);
}

.arkisto_navigointi a.nappula.disabled,
.arkisto_navigointi a.nappula.disabled:hover {
    background: var(--lisavari);
    border-color: var(--lisavari);
    color: var(--paavari);
    cursor: initial;
    pointer-events: none;
}

.blogiotsikko {
    text-decoration: none;
}

.sisaltorivi a:not(.nappula) {
    text-decoration: none;
    color: var(--paavari);
}

.sisaltorivi a:hover:not(.nappula) {
    color: var(--teksti);
}

p.avainsanat {
    display: block;
    margin-top: calc(var(--turva) * 7);
}

.blogiotsikko > h2 {
    margin-bottom: 0.5em;
}

@media screen and (min-width: 1801px) {
    .rajoittaja.isoturva {
        padding-left: var(--isoturva);
        padding-right: var(--isoturva);
        width: calc(var(--rajoittaja) + (var(--isoturva) * 2) - (var(--turva) * 4));
    }

    .rajoittaja.kapea.isoturva {
        padding-left: var(--isoturva);
        padding-right: var(--isoturva);
        width: calc(var(--rajoittajakapea) + (var(--isoturva) * 2) - (var(--turva) * 4));
    }
    
    .isoturva .sisaltorivi {
        margin-left: calc(var(--isoturva)* -1);
        margin-right: calc(var(--isoturva)* -1);
        width: calc(100% + (var(--isoturva)* 2));
        max-width: calc(100% + (var(--isoturva)* 2));
    }
    
    .isoturva .sisaltorivi > * {
        padding: var(--isoturva);
    }

    .isoturva .sisaltorivi > *.otsikkorivi {
        padding-bottom: var(--turva);
    }
}

@media screen and (max-width: 1500px) {
    :root {
        --fonttikoko: 18px;
        --turva: 15px;
        --logo: 150px;
    }
}

@media screen and (max-width: 1300px) {
    :root {
        --fonttikoko: 16px;
    }
}

@media screen and (max-width: 1000px) {
    h1,
    h2 {
        font-size: 2.50em;
        margin: 30px 0 20px 0;
    }

    h2.pieni {
        font-size: 2em;
    }

    h3 {
        font-size: 1.500em;
    }

    h4 {
        font-size: 1.2em;
    }
    
    .mobiiliensin {
        order: 0;
    }

    .mobiiliensin .kuvalaatikko {
        margin-bottom: calc(var(--turva) * 2);
    }

    nav.paavalikko {
        display: block;
        background: var(--valkoinen);
        position: absolute;
        top: 100%;
        right: 0;
        padding: calc(var(--turva)* 1) calc((var(--turva)* 3) - 12px);
        transform: scaleY(0);
        transform-origin: top;
        z-index: 1;
        min-width: 30vw;
        transition: 0.1s transform;
        left: initial;
        width: 100%;
        box-sizing: border-box;
    }

    .alasivu nav.paavalikko {
        background: var(--paavari);
    }

    .avattu+nav.paavalikko {
        transform: scaleY(1.0);
        transition: 0.5s transform;
    }
    
    nav.paavalikko ul {
        display: block;
    }
    
    nav.paavalikko li {
        margin-left: 0;
        text-align: center;
    }
    
    nav.paavalikko a {
        padding: 10px 0;
    }

    .hero.flex {
        display: block;
    }
    
    .hero_vasen, .hero_oikea {
        width: 100%;
    }
    
    .hero_vasen {
        padding-top: 60%;
    }
    
    .hero_oikea {
        padding: calc(var(--turva) * 5) calc(var(--turva) * 2) calc(var(--turva) * 6) calc(var(--turva) * 2);
        text-align: center;
    }
    
    .solu_7,
    .solu_8,
    .solu_9,
    .solu_10,
    .solu_11 {
        width: 100%;
    }
    
    .solu_3,
    .solu_4,
    .solu_5 {
        width: 50%;
    }
    
    .solu_2,
    .solu_1 {
        width: calc(100% / 3);
    }
    
    article.nosto {
        width: 50%;
    }
    
    .alapalkki_solu {
        width: 50%;
    }
    
    .alapalkki_ala .flex {
        display: block;
    }
    
    .alapalkki_ala .rajoittaja > div {
        text-align: center;
    }

    .tyhja_1,
    .tyhja_2,
    .tyhja_3,
    .tyhja_4,
    .tyhja_5,
    .tyhja_6,
    .tyhja_7,
    .tyhja_8,
    .tyhja_9,
    .tyhja_10,
    .tyhja_11 {
        width: 100%;
        margin-left: 0;
        box-sizing: border-box;
    }

    .tyhja_1,
    .tyhja_2,
    .tyhja_3 {
        padding: 0 10%;
    }

    .tyhja_4,
    .tyhja_5,
    .tyhja_6 {
        padding: 0 20%;
    }

    .tyhja_7,
    .tyhja_8,
    .tyhja_9 {
        padding: 0 30%;
    }

    .tyhja_10,
    .tyhja_11 {
        padding: 0 50%;
    }

    .flex > div.mobile_nav_toggle {
		display: block;
		width: 30px;
		box-sizing: border-box;
		cursor: pointer;
		padding: 0;
		background: var(--sininen);
		z-index: 2;
	}

	.viiva1, .viiva2, .viiva3 {
		width: 30px;
		height: 5px;
		background-color: var(--teksti);
		margin: 5px 0;
		transition: 0.4s;
	}

    .alasivu .viiva1,
    .alasivu .viiva2,
    .alasivu .viiva3 {
        background-color: var(--valkoinen);
    }

	.avattu .viiva1 {
		-webkit-transform: rotate(-45deg) translate(-9px, 6px);
		transform: rotate(-45deg) translate(-8px, 7px);
	}

	.avattu .viiva2 {
		opacity: 0;
	}

	.avattu .viiva3 {
		-webkit-transform: rotate(45deg) translate(-8px, -8px);
		transform: rotate(45deg) translate(-7px, -6px);
	}

    section.sivunnimi {
        padding-top: calc(3 * var(--turva));
    }

    .pystyteksti_rajoittaja {
        padding-left: 80px;
    }

    .mobiilikeski {
        text-align: center;
    }

    .kartta {
        padding-top: 50%;
    }

    .sisaltorivi {
        padding-top: calc(var(--turva)* 3);
        padding-bottom: calc(var(--turva)* 3);
    }
    
    .paivays + h2,
    .blogiotsikko > h2 {
        margin-top: 0.5em;
    }

    .arkisto_navigointi a.nappula {
        font-size: 0.8em;
        padding: 10px 30px;
    }

    nav.paavalikko a {
        border-bottom: 0 !important;
    }

    .yhteyshenkilokuva {
        width: 200px;
    }
}

@media screen and (max-width: 800px) {
    .hero_vasen {
        padding-top: 80%;
    }

    .solu_3,
    .solu_4,
    .solu_5,
    .solu_6 {
        width: 100%;
    }

    .solu_2,
    .solu_1 {
        width: 50%;
    }

    .pystyteksti_rajoittaja {
        display: block;
        padding-left: 0;
    }
    
    h2.pystyotsikko {
        position: initial;
        transform: none;
        writing-mode: initial;
        text-align: center;
        margin-bottom: 2em;
    }

    .kartta {
        display: block;
        width: 100%;
        padding-top: 33.75%;
        position: relative;
    }

    .kartta {
        padding-top: 65%;
    }

    .sisaltorivi > * {
        padding-bottom: calc(var(--turva) * 4);
    }

    .luelisaa {
        height: 125px;
        overflow: hidden;
        display: block;
        position: relative;
    }
    
    .luelisaa > *:first-child {
        margin-top: 0;
    }
    
    .luelisaa::after {
        content: '';
        display: block;
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 100px;
        background: rgb(255,255,255);
        background: linear-gradient(180deg, rgba(255,255,255,0) 0%, rgba(255,255,255,1) 100%);
    }
}

@media screen and (max-width: 600px) {
    h1,
    h2 {
        font-size: 2.2em;
    }

    h2.pieni {
        font-size: 1.8em;
    }

    .hero_vasen {
        padding-top: 100%;
    }

    article.nosto,
    .alapalkki_solu {
        width: 100%;
    }

    .tyhja_1,
    .tyhja_2,
    .tyhja_3,
    .tyhja_4,
    .tyhja_5,
    .tyhja_6,
    .tyhja_7,
    .tyhja_8,
    .tyhja_9,
    .tyhja_10,
    .tyhja_11 {
        padding: 0;
    }

    .kartta {
        padding-top: 80%;
    }
}

@media screen and (max-width: 400px) {
    .solu_2,
    .solu_1 {
        width: 100%;
    }
}