/* albert-sans-regular - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Albert Sans';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/albert-sans-v3-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* albert-sans-700 - latin */
@font-face {
    font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
    font-family: 'Albert Sans';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/albert-sans-v3-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}

/* Globales Reset bzw. Basis-Styles */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    font-size: 20px;
    font-family: 'Albert Sans', sans-serif;
    font-weight: 500;
}

body {
    background-color: #FFF;
    color: #003E71;
    line-height: 28px;
}

/* effects */
a,
.effect { -webkit-transition: all .3s ease-in-out; -moz-transition: all .3s ease-in-out; -o-transition: all .3s ease-in-out; transition: all .3s ease-in-out; }


/* Container: begrenzte Breite und etwas Padding */
.container {
    overflow-x: hidden;
}

.inner { max-width: 1120px; padding: 0 20px; margin: 0 auto; }
.inner-720 { max-width: 720px; margin: 0 auto; }

.background.beige { background-color: rgba(187, 158, 133, 0.1); }

/* Kopfbereich */
.header {
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.header .logo { width: 287px; margin-bottom: 50px; padding-top: 60px; }

.banner { position: relative; height: 444px; background-image: url(../images/praxis_hanse_mkg.jpg); background-size: cover; background-repeat: no-repeat; background-position: center; }
.banner:before { content: ''; display: block; background-color: #070606; opacity: 0.5; position: absolute; top: 0; left: 0; width: 100%; height: 100%; z-index: 50; }
.banner-text { position: absolute; top: 135px; left: 0; z-index: 60; width: 100%; }
.banner-text h1 { color: #FFF; font-weight: 700; font-size: 40px; line-height: 46px; margin-bottom: 50px; }
.banner-text h3 { color: #FFF; font-weight: 700; font-size: 30px; line-height: 46px; }

/* Hauptinhalt */
.main-content {
}

.headline { text-align: center; padding-top: 90px; margin-bottom: 100px; }
.headline h2 { font-weight: 700; font-size: 30px; line-height: 40px; }

.grid-50-50 { display: flex; }
.col-50-1 { width: 50%; }
.col-50-2 { width: calc(50% - 1px); }

/* „Work in Progress“ Block */
.hero {
    margin-bottom: 2rem;
    padding-top: 30px;
}

.content a {
    color: #BB9E85;
    text-decoration: none;
}

.content a:hover {
    color: #003E71;
}

/* Info-Text */
.info-text {
    padding-top: 30px;
    padding-bottom: 30px;
    padding-left: 100px;
    margin-bottom: 75px;
    line-height: 1.6;
    border-left: 1px solid rgba(5, 63, 115, 0.6);
}

.info-text h2 {
    font-size: 24px;
    font-weight: 500;
    margin-bottom: 30px;
    line-height: 28px;
}

.info-text a {
    color: #003E71;
    text-decoration: none;
}

.info-text a:hover {
    color: #BB9E85;
}

.opening span.top { padding-right: 30px; }
.opening span.bottom { padding-right: 81px; }
.opening span { display: inline-block; padding-right: 40px; }

.main-content p {
    margin-bottom: 35px;
}

.content h1 { font-size: 40px; font-weight: 700; line-height: 46px; margin-bottom: 50px; }
.content h2 { font-size: 30px; font-weight: 700; line-height: 46px; margin-bottom: 30px; }
.content h3 { font-size: 25px; font-weight: 700; margin-bottom: 20px; }
.content h4 { font-size: 20px; font-weight: 700; }

.content ul { padding-left: 22px; margin-bottom: 35px; }

.content a {
    color: #003E71;
    text-decoration: none;
}
.content a:hover {
    color: #BB9E85;
    text-decoration: none;
}

.call-to-action { text-align: center; padding-bottom: 85px; }
.button { display: inline-block; padding: 15px 30px 15px 75px; border-radius: 20px; background-color: #EA7381; color: #FFF; font-size: 24px; font-weight: 700; text-decoration: none; background-image: url(../images/icon-telefon-white.svg); background-size: 21px 36px; background-position: left 35px center; background-repeat: no-repeat; }
.button:hover { background-color: rgba(234, 115, 129, 0.75); }

.map { padding-top: 90px; margin-bottom: 100px; text-align: center; }
.map h2 { font-size: 30px; line-height: 40px; margin-bottom: 90px; }

/* Fußbereich */
.footer { }

.footer-top { background-color: #053F73; color: #FFF; padding-top: 60px; padding-bottom: 70px; }
.footer-top h4 { margin-bottom: 35px; }

.grid-30-30-30 { display: flex; }
.grid-30-30-30 .col { width: 33.33%; }
.col-30-1 { padding-left: 64px; background-image: url(../images/icon-pin.svg); background-repeat: no-repeat; background-size: 40px 56px; }
.col-30-2 { padding-left: 50px; }
.col-30-3 { padding-left: 85px; }

.footer-bottom { padding-top: 70px; padding-bottom: 70px; }

.footer-nav { display: flex; justify-content: center; }

.footer-nav p { font-size: 18px; padding-right: 50px; }

.footer-nav a {
    font-size: 18px;
    color: #003E71;
    text-decoration: none;
    margin: 0 35px;
}

.footer-nav a:hover {
    color: #BB9E85;
    text-decoration: none;
}

@media (max-width: 900px) {
    .grid-30-30-30 { flex-direction: column; }
    .grid-30-30-30 .col { width: 100%; padding-left: 64px; margin-bottom: 50px; }
    .grid-30-30-30 .col:last-child { margin-bottom: 0px; }
}


@media (max-width: 760px) {
    .footer-bottom { padding: 50px 0; }
    .footer-nav { flex-direction: column; }
    .footer-nav a { margin: 0; }

    .content h1 { font-size: 35px; line-height: 46px; margin-bottom: 50px; }
    .content h2 { font-size: 25px; line-height: 46px; margin-bottom: 30px; }
    .content h3 { font-size: 20px; margin-bottom: 20px; }
    .content h4 { font-size: 20px; }
}

@media (max-width: 700px) {
    .banner-text { top: 100px; }
    .banner-text h1 { font-size: 35px; line-height: 46px; margin-bottom: 50px; }
    .banner-text h3 { font-size: 25px; line-height: 46px; }

    .headline { margin-bottom: 50px; }
    .headline h2 { font-size: 25px; line-height: 35px; }
    .grid-50-50 { flex-direction: column; }
    .grid-50-50 .col { width: 100%; }
    .info-text { border: none;  padding-left: 0; padding-bottom: 0; }
}

@media (max-width: 600px) {
    .map h2 { font-size: 25px; line-height: 35px; margin-bottom: 50px; }
}

@media (max-width: 550px) {
    .header .logo { width: 200px; }
    .banner { height: 300px; }
    .banner-text { top: 50px; }
    .banner-text h1 { font-size: 25px; line-height: 36px; margin-bottom: 30px; }
    .banner-text h3 { font-size: 20px; line-height: 36px; }

    .content h1 { font-size: 30px; line-height: 36px; margin-bottom: 50px; }
    .content h2 { font-size: 20px; line-height: 36px; margin-bottom: 30px; }
    .content h3 { font-size: 20px; margin-bottom: 20px; }
    .content h4 { font-size: 20px; }
}

