:root {
    --fontti: Lato;
    --väri: hsl(0, 0%, 10%);
    user-select: text;
    scrollbar-width: thin;
    font-family: var(--fontti);
    font-weight: 300;
    min-height: 100%;
}

body {
    background-color: hsl(0, 0%, 70%);
    background:
        linear-gradient(hsl(0, 0%, 80%), transparent),
        linear-gradient(to top right, hsl(0, 0%, 90%), transparent),
        linear-gradient(to top left, hsl(0, 0%, 70%), transparent);
    background-blend-mode: screen;
    color: var(--väri);
}

.osio {
    position: relative;
    top: 30px;
    left: 10%;
    width: 80%;
    height: auto;
    gap: 20px;
    margin-bottom: 60px;
}

#lista {
    grid-template-columns: 1fr;
    left: 0;
    margin: -30px 0px 20px 0px;
    width: 100%;
}

.ruutu,
.kortti {
    text-align: center;
    padding: 20px 30px;
    margin-bottom: 30px;
    text-wrap: balance;
}

.kortti {
    display: grid;
    grid-template-columns: 1fr 2fr;
    text-align: left;
}

.korostus {
    background-color: hsla(212, 52%, 90%, 50%);
    box-shadow: 0 0 50px 50px hsla(212, 50%, 90%, 50%);
    border-radius: 50px;
}

.varaus {
    background-color: hsla(0, 0%, 85%, 80%);
    border-radius: 20px;
    margin-top: 50px;
    margin-bottom: 100px;
    grid-column: span 2;
    position: relative;
}

#varaussulje {
    position: absolute;
    top: 5px;
    right: 10px;
    padding: 10px;
    cursor: pointer;
}

#kalenteri {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
}

.boksi {
    position: relative;
    margin: auto;
    margin-top: 30px;
    width: max(300px, 40%);
    text-align: left;
}

#hakuboksi {
    margin-top: 50px;
    margin-bottom: 70px;
    text-align: center !important;
}

#hakuboksi label {
    position: relative;
    top: -10px;
}


.label {
    position: absolute;
    top: -20px;
    left: 15px;
}

textarea,
input {
    width: calc(100% - 20px);
    border-radius: 10px;
    border: none;
    padding: 10px;
    border: 2px transparent solid;
    background-color: hsl(212, 10%, 95%);
    font-family: var(--fontti);
}

textarea {
    resize: vertical;
    min-height: 20px;
    max-height: 300px;
}


input:user-invalid {
    border: 2px red solid;
    box-shadow: 0px 0px 3px hsl(0, 100%, 70%);
}

input[type=submit] {
    font-family: var(--fontti);
    background-color: hsl(212, 50%, 75%);
    cursor: pointer;
    width: 100%;
    margin-bottom: 30px;
}

input[type=submit]:hover {
    background-color: hsl(212, 80%, 70%);
}

input[type=checkbox] {
    appearance: none;
    width: 3ch;
    height: 3ch;
    border-radius: 5px;
    color: white;
    box-sizing: border-box;
    transform: translateY(8px);
}

input[type=checkbox]:checked {
    background-color: hsl(121, 60%, 70%);
}

input[type=checkbox]:checked::before {
    content: '\2713';
    position: absolute;
    left: 0.3rem;
    top: 0.05rem;
}

h1 {
    font-weight: bold;
    font-size: 3rem;
}

p {
    font-size: 1rem;
    line-height: 2.5ch;
}

.klik,
a {
    color: var(--väri);
    text-decoration: underline 1px;
    cursor: pointer;
}

.kapea {
    margin-top: 20px;
}

button {
    color: var(--väri);
    background-color: hsl(212, 50%, 75%);
    font-family: var(--fontti);
    font-weight: 300;
    padding: 20px 30px;
    border-radius: 50px;
    font-size: 1rem;
    border: transparent;
    margin: 5px;
    text-decoration: none;
}

button:hover {
    background-color: hsl(212, 80%, 70%);
    cursor: pointer;
}

.ladataan {
    background-color: hsl(212, 85%, 75%) !important;
    box-shadow: 0 0 15px hsl(212, 90%, 70%);
}

img {
    pointer-events: none;
    user-select: none;
    margin: auto;
    max-height: 300px;
    max-width: 100%;
}

@media (orientation: portrait) {
    .osio {
        top: 10px;
        left: 0px;
        width: 100%;
    }

    .kortti img {
        max-height: 200px;
    }

    .kortti {
        grid-template-columns: 1fr;
        text-align: center;
        padding: 0;
        margin-top: 50px;
    }

    .boksi {
        width: 90%;
    }

    .varaus {
        grid-column: span 1;
    }
}