html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
    margin: 0;
    padding: 0;
    border: 0;
    vertical-align: baseline;
}

* {
    box-sizing: border-box;
}

body {
    font-family: 'Lato', sans-serif;
    font-size: 1em;
    background: #F6F6F6;
    color: #222;
}

.container {
    max-width: 1080px;
    margin: 0 auto;
    width: 90%;
}

header {
    height: 80px;
    background: #124f6e;
    color: #FFF;
    position: fixed;
    width: 100%;
    z-index: 10;
    top: 0;
    left: 0;
}

.nav-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 80px;
}

#main-menu ul {
    display: flex;
    list-style: none;
}

#main-menu li {
    margin-left: 25px;
}

#main-menu a {
    color: #FFF;
    text-decoration: none;
    font-weight: 700;
    letter-spacing: 1px;
    font-size: 1.13em;
    transition: color 0.3s;
}

#main-menu a:hover {
    color: #FFCA00;
}

#logo img {
    height: 60px;
}

section {
    padding: 120px 0 54px 0;
    width: 100%;
    box-sizing: border-box;
}

@media (max-width: 900px) {
    section {
        padding-top: 85px;
    }
}

#banner {
    padding: 130px 0 90px 0;
    background: url('../img/banner.jpg') no-repeat center center;
    background-size: cover;
    text-align: center;
    min-height: 340px;
}

.banner-inner {
    max-width: 650px;
    margin: 0 auto;
    background: rgba(0, 0, 0, 0.3);
}

#banner h1 {
    font-size: 2.6em;
    color: #FFF;
    margin-bottom: 26px;
    text-shadow: 1px 1px 4px #111;
}

#banner h2 {
    font-size: 1.4em;
    color: #D4EDFF;
    margin-bottom: 20px;
    text-shadow: 1px 1px 2px #111;
    text-transform: uppercase;
}

.button {
    display: inline-block;
    padding: 12px 28px;
    margin: 18px 0;
    text-decoration: none;
    text-transform: uppercase;
    border: none;
    border-radius: 5px;
    font-size: 1em;
    cursor: pointer;
    font-weight: 700;
    transition: background 0.3s, color 0.3s;
}

.button-light {
    background: #FFF;
    color: #124f6e;
}

.button-light:hover {
    background: #FFCA00;
    color: #111;
}

.button-dark {
    background: #124f6e;
    color: #FFF;
}

.button-dark:hover {
    background: #104D77;
}

#oferta h2 {
    color: #124f6e;
    text-align: center;
    font-size: 2em;
    margin-bottom: 38px;
}

.columns-wrapper {
    display: flex;
    gap: 2.3%;
    justify-content: center;
    flex-wrap: wrap;
}

.three-columns {
    display: flex;
    flex-direction: column;
    align-items: center;
    flex: 1 1 300px;
    min-width: 260px;
    min-height: 410px;
    background: #FAFAFA;
    border: 1px solid #DCDCDC;
    border-radius: 7px;
    margin: 0;
    margin-bottom: 18px;
    padding: 2.2% 1.2% 1.8% 1.2%;
    box-shadow: 0 1px 4px #e7e7e773;
}

.three-columns img {
    height: 100px;
    max-width: 100%;
    margin-bottom: 10px;
}

.three-columns h3 {
    color: #104D77;
    font-size: 1.15em;
    margin: 10px 0 14px 0;
}

.three-columns p {
    font-size: 1.05em;
}

.three-columns .button {
    margin-top: auto;
}

#motto {
    background: #fafaea;
    text-align: center;
    padding: 64px 0 50px 0;
}

#motto h2, #motto p {
    text-align: center;
    width: 100%;
    margin: 16px auto;
}

#motto h2 {
    font-size: 2em;
    color: #124f6e;
}

#motto p {
    font-size: 1.2em;
    line-height: 1.3em;
}

#kontakt .contact-flex {
    display: flex;
    gap: 3.5%;
    justify-content: center;
    align-items: stretch;
    flex-wrap: wrap;
}

.two-columns {
    flex: 1 1 340px;
    min-width: 280px;
    background: #FAFAFA;
    border-radius: 7px;
    margin: 0 0 10px 0;
    padding: 28px 25px 20px 25px;
    box-sizing: border-box;
    box-shadow: 0 0 4px #e7e7e799;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
}

.two-columns h2 {
    text-align: center;
    color: #124f6e;
    font-size: 1.5em;
    margin-bottom: 20px;
}

#kontakt label {
    font-weight: bold;
    margin-top: 12px;
}

#kontakt input, #kontakt textarea {
    width: 100%;
    margin-bottom: 14px;
    border-radius: 5px;
    border: 1px solid #DDD;
    padding: 9px;
    font-size: 1.08em;
}

#kontakt button {
    width: 100%;
    margin-top: 8px;
}

.two-columns.info {
    min-height: 445px;
}

.contact-group {
    flex: 1 0 auto;
}

.contact-row {
    margin: 10px 0;
    font-size: 1.09em;
}

.icon {
    margin-right: 7px;
    font-size: 1.19em;
}

.about-note {
    margin-top: 15px;
    font-size: 1.1em;
    color: #105;
    text-align: center;
    font-style: italic;
}

.mapbox {
    margin: 20px 0 0 0;
}

.two-columns.info a {
    color: #104D77;
    text-decoration: underline;
    margin-left: 3px;
}

footer {
    background: #124f6e;
    color: #fff;
    padding: 20px 0 15px 0;
    text-align: center;
    width: 100%;
}

footer p {
    margin: 0;
}

@media (max-width: 1050px) {
    .container, .banner-inner {
        width: 98%;
    }
}

@media (max-width: 800px) {
    .columns-wrapper, #kontakt .contact-flex {
        flex-direction: column;
        gap: 0;
    }

    .three-columns, .two-columns {
        max-width: 97%;
        margin: 12px auto;
    }

    #banner {
        padding-top: 90px;
    }
}

@media (max-width: 570px) {
    header {
        height: 52px;
    }

    .nav-flex {
        height: 52px;
    }

    #banner {
        padding-top: 70px;
    }

    #main-menu ul {
        font-size: 0.8rem;
        align-items: center;
    }

    section {
        padding: 70px 0 35px 0;
    }
}
