* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}



/* basic layout */
body {
    font-family: "Open Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
    font-style: normal;
    font-variation-settings: "wdth" 100;
    display: grid;
    grid-template-rows: 5em 25em 1fr auto;
    height: 100dvh;
    background-color: #f8fafc;
}

.full-width {
    display: grid;
    grid-template-columns: auto 1140px auto;
}

.nav {
    background-color: #be123c;
}

.nav nav {
    grid-column: 2;
}

.header {
    background-color: #e7e5e4;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    background: url('../assets/olomouc3.jpg') no-repeat center center/cover;
    align-items: center;
}

.header header {
    grid-column: 2;
}

.contrast  {
    padding: 2em;
    display: inline-block;
    background-color: rgb(255 255 255 / 0.8);
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
    text-align: center;
    border-radius: 10px;
}

.contrast img {
    width: 16rem;
}

.header__time, .header__location {
    font-size: 1.25rem;
    font-weight: 500;
}

.content main {
    grid-column: 2;
}

.footer {
    background-color: #e7e5e4;
    color: gray;
}

.footer footer {
    grid-column: 2;
    padding: 3vw 0;
}


/* navigation */
.nav ul {
    display: flex;
    align-items: center;
    list-style-type: none;
    height: 100%;
    gap: 1rem;
}

.nav ul li a {
    text-decoration: none;
    color: white;
    border: 1px solid #881337;
    background-color: #881337;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    text-transform: uppercase;
    font-size: 0.8rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.nav ul li a.important {
    color: #881337;
    background-color: white;
    border: 1px solid white;
}

main {
    padding-top: 4vw;
}

.link {
    color: #881337
}

h1 {
    text-transform: uppercase;
    font-weight: 900;
    color: #881337
}

h2 {
    text-transform: uppercase;
    margin-bottom: 1rem;
    color: #881337
}

h3 {
    margin-bottom: 0.75rem;
}

.mt-4 {
    margin-top: 4vw;
}

.map {
    filter: grayscale(100%);
    border: none;
    width: 100%;
    height: 20em;
    margin: 2vw 0;
}

p {
    margin-bottom: 0.75rem;
}

.gray {
    color: gray;
}

.food-item {
    display: grid;
    grid-template-columns: 7rem 6rem 6rem;
}

.food-item > div {
    display: grid;
    align-items: center;
    margin-bottom: 1rem;
}

.food-item > span {
    display: inline-block;
    text-align: right;
    padding-right: 1rem;
}

.help {
    display: block;
    font-size: 0.875rem;
}


.sponzori {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
    padding: 2rem 0;
    background-color: white;
}

.sponzori div {
    display: grid;
    width: 100%;
    align-items: center;
    justify-items: center;
}

.sponzori img {
    width: 80%;
    height: auto;
}

/* form */
form {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    accent-color: #be123c;
    align-items: baseline;
}

label {
    text-align: right;
    display: inline-block;
}

label span {
    color: gray;
}

form .left {
    grid-column: 1;
}

form .right {
    grid-column: 2;
}

.error {
    color: #be123c;
    font-size: 1rem;
    padding: 1rem;
    border: 1px solid rgb(190, 18, 60);
    margin-bottom: 2rem;
    font-weight: 400;
    background-color: rgb(190, 18, 60, 0.1);
    border-radius: 5px;
}

.success {
    color: #0f5132;
    font-size: 1rem;
    padding: 1rem;
    border: 1px solid rgb(15, 81, 50);
    margin-bottom: 2rem;
    font-weight: 400;
    background-color: rgb(15, 81, 50, 0.1);
    border-radius: 5px;
}

.abstrakta-table {
    width: 100%;
    overflow-y: auto;
}

.abstrakta-table tr td:last-child {
    text-align: right;
}

.option {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 1rem;
    align-items: center;
}

input[type="radio"]+label {
    text-align: left;
    display: inline-block;
}

input[type="checkbox"]+label {
    text-align: left;
    display: inline-block;
}

input[type="radio"], input[type="checkbox"] {
    width: 1.25rem;
    height: 1.25rem;
}


input[type="text"], input[type="email"], textarea, select {
    padding: 0.5rem;
    border: 1px solid #e7e5e4;
    border-radius: 5px;
    font-size: 1rem;
    font-family: "Open Sans", sans-serif;
    font-optical-sizing: auto;
    font-weight: 300;
}

input[type="text"]:focus, input[type="email"]:focus, select:focus, textarea:focus {
    outline: none;
    border: 1px solid #be123c;
}

.input-m {
    width: 50%;
}

.input-s {
    width: 33%;
}

form h3 {
    grid-column: span 2;
}


.ai-top {
    align-self: start;
}

button {
    text-decoration: none;
    color: white;
    border: 1px solid #881337;
    background-color: #881337;
    padding: 0.75rem 1rem;
    border-radius: 10px;
    text-transform: uppercase;
    cursor: pointer;
    font-size: 0.8rem;
    box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
}

.sub-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.mt-m {
    margin-top: 2rem;
}

.mb-m {
    margin-bottom: 2rem;
}

.mb-s {
    margin-bottom: 1rem;
}

.hide {
    display: none;
}

@media screen and (max-width: 1200px) {
    .full-width {
        grid-template-columns: 3vw 1fr 3vw;
    }
}

@media screen and (max-width: 976px) {
    form {
        grid-column: 1fr;
    }
    .input-m {
        width: 100%;
    }
    
    .input-s {
        width: 100%;
    }
}

@media screen and (max-width: 768px) {
    nav {
        overflow: auto;
        scrollbar-color: rgb(0 0 0 / 0.1) #be123c;
        scrollbar-width: thin;
    }

    .abstrakta-table tr {
        display: flex;
        flex-direction: column;
        margin-bottom: 1rem;
    }

    .abstrakta-table tr td:last-child {
        text-align: left;
    }
}

@media screen and (max-width: 576px) {


    form {
        grid-template-columns: 1fr;
        gap: 1rem 0;
    }

    form > * {
        grid-column: 1;
    }

    form .left {
        grid-column: 1;
    }

    form .right {
        grid-column: 1;
    }

    label {
        text-align: left;
    }

    label + input {
        margin-top: -0.5rem;
    }

    .sponzori {
        grid-template-columns: 1fr;
    }
}
